Merge tag 'upstream/1.9.1' into debian-experimental

Upstream version 1.9.1
diff --git a/ChangeLog b/ChangeLog
index 4b624f5..c058c1e 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,17 +1,478 @@
-=== release 1.8.2 ===
+=== release 1.9.1 ===
 
-2016-06-09  Sebastian Dröge <slomo@coaxion.net>
+2016-07-06  Sebastian Dröge <slomo@coaxion.net>
 
 	* configure.ac:
-	  releasing 1.8.2
+	  releasing 1.9.1
 
-2016-06-09 10:05:03 +0300  Sebastian Dröge <sebastian@centricular.com>
+2016-07-06 10:18:00 +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/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: Update translations
 
+2016-06-30 16:36:27 +0200  Philippe Normand <philn@igalia.com>
+
+	* gst-libs/gst/video/gstvideodecoder.c:
+	  videodecoder: Take stream lock one time only on drain
+	  When the drain is triggered from the chain function the lock is already
+	  taken so there is no need to take it one more time.
+	  https://bugzilla.gnome.org/show_bug.cgi?id=767641
+
+2016-07-04 11:16:55 +0200  Sebastian Dröge <sebastian@centricular.com>
+
+	* gst-libs/gst/video/gstvideodecoder.c:
+	  videodecoder: fix criticals fixating a non existent field
+	  https://bugzilla.gnome.org/show_bug.cgi?id=766970
+
+2016-07-04 11:12:25 +0200  Sebastian Dröge <sebastian@centricular.com>
+
+	* gst-libs/gst/audio/gstaudiodecoder.c:
+	  audiodecoder: Protect samples_in/bytes_out and audio info with object lock
+	  It might cause invalid calculations during the CONVERT query otherwise.
+
+2016-07-04 11:07:54 +0200  Sebastian Dröge <sebastian@centricular.com>
+
+	* gst-libs/gst/audio/gstaudioencoder.c:
+	  audioencoder: Protect samples_in/bytes_out and audio info with object lock
+	  It might cause invalid calculations during the CONVERT query otherwise.
+
+2016-07-04 11:00:51 +0200  Sebastian Dröge <sebastian@centricular.com>
+
+	* gst-libs/gst/audio/gstaudiodecoder.c:
+	* gst-libs/gst/audio/gstaudioencoder.c:
+	* gst-libs/gst/audio/gstaudioutilsprivate.c:
+	* gst-libs/gst/audio/gstaudioutilsprivate.h:
+	  audioencoder/decoder: Move encoded audio conversion function to a common place
+	  No need to duplicate this non-trivial function.
+
+2016-07-04 09:15:03 +0100  Vincent Penquerc'h <vincent.penquerch@collabora.co.uk>
+
+	* gst-libs/gst/audio/gstaudiodecoder.c:
+	  audiodecoder: fix criticals fixating a non existent field
+	  https://bugzilla.gnome.org/show_bug.cgi?id=766970
+
+2016-07-04 10:55:07 +0200  Sebastian Dröge <sebastian@centricular.com>
+
+	* gst-libs/gst/video/gstvideodecoder.c:
+	  videodecoder: Use the object lock to protect bytes/time tracking
+	  And especially don't use the stream lock for that, as otherwise non-serialized
+	  queries (CONVERT) will cause the stream lock to be taken and easily causes the
+	  application to deadlock.
+	  https://bugzilla.gnome.org/show_bug.cgi?id=768361
+
+2016-07-04 10:52:24 +0200  Sebastian Dröge <sebastian@centricular.com>
+
+	* gst-libs/gst/video/gstvideoencoder.c:
+	  videoencoder: Use the object lock to protect bytes/time tracking
+
+2016-07-04 10:47:36 +0200  Sebastian Dröge <sebastian@centricular.com>
+
+	* gst-libs/gst/video/gstvideodecoder.c:
+	* gst-libs/gst/video/gstvideoencoder.c:
+	* gst-libs/gst/video/gstvideoutilsprivate.c:
+	* gst-libs/gst/video/gstvideoutilsprivate.h:
+	  videoencoder/decoder: Move conversion utility functions to a common header and use consistently in encoder/decoder
+
+2016-03-17 00:19:18 +0200  Sebastian Dröge <sebastian@centricular.com>
+
+	* gst-libs/gst/app/gstappsrc.c:
+	  appsrc: If do-timestamp=TRUE, capture the time when the buffer was pushed to the source
+	  ... instead of the time when it was pushed further downstream.
+	  https://bugzilla.gnome.org/show_bug.cgi?id=763630
+
+2016-04-29 00:59:42 -0700  Zaheer Abbas Merali <zaheermerali@gmail.com>
+
+	* gst-libs/gst/rtp/gstrtpbasedepayload.c:
+	  basertpdepayload: create valid segment when given non-time segment
+	  This will become an error in 1.10.
+	  https://bugzilla.gnome.org/show_bug.cgi?id=765796
+
+2016-06-30 18:53:07 +0100  Tim-Philipp Müller <tim@centricular.com>
+
+	* gst-libs/gst/tag/gsttagdemux.c:
+	  tagdemux: fix handling of very short files in push mode
+	  By default we'll wait for a certain amount of data before
+	  attempting typefinding. However, if the stream is fairly
+	  short, we might get EOS before we ever attempted any
+	  typefinding, so at this point we should force typefinding
+	  and output any pending data if we manage to detect the
+	  type.
+	  https://bugzilla.gnome.org//show_bug.cgi?id=768178
+
+2016-06-30 17:30:34 +0100  Tim-Philipp Müller <tim@centricular.com>
+
+	* gst-libs/gst/tag/gsttagdemux.c:
+	  tagdemux: fix erroring out if we reach EOS without detecting type
+	  In 0.10 the source pad was a dynamic pad that was only added once
+	  the type had been detected, but in 1.x it's an always source pad,
+	  so checking whether it's still NULL won't work to detect if the
+	  type has been detected.
+	  Makes tagdemux error out when we get EOS but haven't managed to
+	  identify the format of the data after the tag.
+	  https://bugzilla.gnome.org//show_bug.cgi?id=768178
+
+2016-06-30 17:26:56 +0200  Edward Hervey <edward@centricular.com>
+
+	* gst/playback/gstparsebin.c:
+	  parsebin: Fix authors and description
+
+2016-06-30 17:26:14 +0200  Edward Hervey <edward@centricular.com>
+
+	* gst/playback/Makefile.am:
+	* gst/playback/gstplayback.c:
+	* gst/playback/gstplayback.h:
+	* gst/playback/gsturidecodebin3.c:
+	  playback: Remove uridecodebin3
+	  This was committed by mistake. The solution forward is to use the
+	  appropriate combination of urisourcebin and decodebin3
+
+2016-06-29 18:14:51 +0200  Edward Hervey <edward@centricular.com>
+
+	* configure.ac:
+	* gst/playback/Makefile.am:
+	* gst/playback/gstdecodebin3-parse.c:
+	* gst/playback/gstdecodebin3.c:
+	* gst/playback/gstparsebin.c:
+	* gst/playback/gstplayback.c:
+	* gst/playback/gstplayback.h:
+	* gst/playback/gstplaybin3.c:
+	* gst/playback/gsturidecodebin3.c:
+	* gst/playback/gsturisourcebin.c:
+	* tests/examples/Makefile.am:
+	* tests/examples/decodebin_next/.gitignore:
+	* tests/examples/decodebin_next/Makefile.am:
+	* tests/examples/decodebin_next/decodebin3.c:
+	* tests/examples/decodebin_next/playbin-test.c:
+	  playback: New elements
+	  With contributions from Jan Schmidt <jan@centricular.com>
+	  * decodebin3 and playbin3 have the same purpose as the decodebin and
+	  playbin elements, except make usage of more 1.x features and the new
+	  GstStream API. This allows them to be more memory/cpu efficient.
+	  * parsebin is a new element that demuxers/depayloads/parses an incoming
+	  stream and exposes elementary streams. It is used by decodebin3.
+	  It also automatically creates GstStream and GstStreamCollection for
+	  elements that don't natively create them and sends the corresponding
+	  events and messages
+	  * Any application using playbin can use playbin3 by setting the env
+	  variable USE_PLAYBIN3=1 without reconfiguration/recompilation.
+
+2016-06-29 18:14:51 +0200  Sebastian Dröge <sebastian@centricular.com>
+
+	* gst-libs/gst/audio/audio-channels.c:
+	* gst/audioconvert/gstaudioconvert.c:
+	  audioconvert: Handle fallback channel mask for mono correctly
+	  It's 0 and no mask should be set for mono at all.
+	  https://bugzilla.gnome.org/show_bug.cgi?id=757472
+
+2016-06-27 20:53:37 +0300  Sebastian Dröge <sebastian@centricular.com>
+
+	* gst/playback/gstplaysink.c:
+	  playsink: Don't send another step event to the audio-sink if we got step-done from there
+	  Otherwise we would end up with a deadlock as the audio-sink emits step-done
+	  from its streaming thread.
+
+2016-06-27 20:49:38 +0300  Sebastian Dröge <sebastian@centricular.com>
+
+	* gst/playback/gstplaysink.c:
+	  playsink: Force STEP events on the video-sink for GST_FORMAT_BUFFERS
+	  It does not make much sense for audio sinks.
+
+2016-06-24 01:56:11 +0530  Nirbheek Chauhan <nirbheek@centricular.com>
+
+	* configure.ac:
+	  configure: Need to add -DGST_STATIC_COMPILATION when building only statically
+	  https://bugzilla.gnome.org/show_bug.cgi?id=767463
+
+2016-06-23 10:22:35 +0100  Vincent Penquerc'h <vincent.penquerch@collabora.co.uk>
+
+	* ext/ogg/gstoggdemux.c:
+	  oggdemux: demote an expected error to debug
+	  Dropping a buffer because we have a seek pending is normal,
+	  and will now happen when we trigger a seek while going through
+	  the packets in a page. So this should not be an error.
+
+2016-06-22 16:02:37 +0200  Wim Taymans <wtaymans@redhat.com>
+
+	* gst-libs/gst/video/video-converter.c:
+	* gst-libs/gst/video/video-resampler.c:
+	* gst-libs/gst/video/video-resampler.h:
+	* gst-libs/gst/video/video-scaler.c:
+	  video-converter: fix interlaced scaling some more
+	  Fix problem with the line cache where it would forget the first line in
+	  the cache in some cases.
+	  Keep as much backlog as we have taps. This generally works better and we
+	  could do even better by calculating the overlap in all taps.
+	  Allocated enough lines for the line cache.
+	  Use only half the number of taps for the interlaced lines because we
+	  only have half the number of lines.
+	  The pixel shift should be relative to the new output pixel size so scale
+	  it.
+	  Fixes: https://bugzilla.gnome.org/show_bug.cgi?id=767921
+
+2016-06-21 14:53:36 -0400  Nicolas Dufresne <nicolas.dufresne@collabora.com>
+
+	* docs/plugins/gst-plugins-base-plugins-docs.sgml:
+	  plugin-doc: Minor re-order
+
+2016-06-21 14:40:17 -0400  Nicolas Dufresne <nicolas.dufresne@collabora.com>
+
+	* docs/plugins/Makefile.am:
+	* docs/plugins/gst-plugins-base-plugins-sections.txt:
+	* docs/plugins/gst-plugins-base-plugins.signals:
+	* docs/plugins/inspect/plugin-pango.xml:
+	* docs/plugins/inspect/plugin-videoconvert.xml:
+	* docs/plugins/inspect/plugin-videoscale.xml:
+	* docs/plugins/inspect/plugin-videotestsrc.xml:
+	  Automatic update of plugins doc files
+
+2016-06-21 18:04:23 +0100  Tim-Philipp Müller <tim@centricular.com>
+
+	* tests/check/libs/discoverer.c:
+	  tests: discoverer: handle missing ogg/codec plugins gracefully
+	  https://bugzilla.gnome.org/show_bug.cgi?id=767859
+
+2016-06-21 11:45:49 -0400  Nicolas Dufresne <nicolas.dufresne@collabora.com>
+
+	* common:
+	  Automatic update of common submodule
+	  From ac2f647 to f363b32
+
+2016-06-20 12:42:28 +0100  Vincent Penquerc'h <vincent.penquerch@collabora.co.uk>
+
+	* ext/opus/gstopusdec.c:
+	* ext/opus/gstopusdec.h:
+	  opusdec: handle missing buffers with no duration
+	  If buffer duration is missing, it is parsed from the packet data.
+	  This is not foolproof, since Opus can change durations on the
+	  fly.
+	  https://bugzilla.gnome.org/show_bug.cgi?id=767826
+
+2016-06-17 15:11:20 +0200  Michael Olbrich <m.olbrich@pengutronix.de>
+
+	* gst-libs/gst/tag/gsttagdemux.c:
+	  tagdemux: preserve duration when skipping a tag at the beginning of a buffer
+	  gst_buffer_copy_region() does not copy the duration if it doesn't start
+	  with the first byte. We just skip the tag here, so the duration is still
+	  valid.
+	  https://bugzilla.gnome.org/show_bug.cgi?id=767791
+
+2016-06-21 10:24:15 +0300  Sebastian Dröge <sebastian@centricular.com>
+
+	* gst-libs/gst/pbutils/gstdiscoverer.c:
+	* tests/check/libs/discoverer.c:
+	  discoverer: Only allow serializing OK discoverer infos to GVariants
+	  They will be incomplete otherwise and we can't generate the full serialized
+	  information, and instead will crash somewhere on the way.
+	  https://bugzilla.gnome.org/show_bug.cgi?id=767859
+
+2016-04-14 14:02:27 +0100  Vincent Penquerc'h <vincent.penquerch@collabora.co.uk>
+
+	* ext/ogg/gstoggdemux.c:
+	  oggdemux: fix audio glitches with low bitrate vorbis
+	  A low bitrate stream which can pack more than 2 seconds of audio
+	  in a page would cause the stream's position to be updated not
+	  often enough, and would trigger a spurious "jump" via a GAP
+	  event. Instead, we update the stream position after calculating
+	  the new overall segment position.
+	  https://bugzilla.gnome.org/show_bug.cgi?id=764966
+
+2016-06-16 10:55:52 +0100  Mikhail Fludkov <misha@pexip.com>
+
+	* tests/check/elements/opus.c:
+	  opusdec: test for PLC timestamp when FEC is enabled.
+
+2016-04-05 12:41:45 +0200  Mikhail Fludkov <misha@pexip.com>
+
+	* gst-libs/gst/audio/gstaudiodecoder.c:
+	* tests/check/libs/audiodecoder.c:
+	  audiodecoder: fix invalid timestamps when PLC and delay
+	  Elements inherited from GstAudioDecoder, supporting PLC and introducing
+	  delay produce invalid timestamps. Good example is opusdec with in-band FEC
+	  enabled. After receiving GAP event it delays the audio concealment until
+	  the next buffer arrives. The next buffer will have DISCONT flag set which
+	  will make GstAudioDecoder to reset it's internal state, thus forgetting
+	  the timestamp of GAP event. As a result the concealed audio will have the
+	  timestamp of the next buffer (with DISCONT flag) but not the timestamp
+	  from the event.
+
+2016-06-11 17:11:30 +0200  Paulo Neves <pneves@airborneprojects.com>
+
+	* gst-libs/gst/tag/gstexiftag.c:
+	* tests/check/libs/tag.c:
+	  exiftag: Increase serialized geo precision
+	  The serialization of double typed geographical
+	  coordinates to DMS system supported by the exif
+	  standards was previously truncated without need.
+	  The previous code truncated the seconds part of
+	  the coordinate to a fraction with denominator
+	  equal to 1 causing a bug on the deserialization
+	  when the test for the coordinate to be serialized
+	  was more precise.
+	  This patch applies a 10E6 multiplier to the numerator
+	  equal to the denominator of the rational number.
+	  Eg. Latitude = 89.5688643 Serialization
+	  DMS Old code = 89/1 deg, 34/1 min, 7/1 sec
+	  DMS New code = 89/1 deg, 34/1 min, 79114800UL/10000000UL
+	  Deserialization
+	  DMS Old code = 89.5686111111
+	  DMS New code = 89.5688643
+	  The new test tries to serialize a higher precision
+	  coordinate.
+	  The types of the coordinates are also guint32 instead
+	  of gint like previously. guint32 is the type of the
+	  fraction components in the exif.
+	  https://bugzilla.gnome.org/show_bug.cgi?id=767537
+
+2016-06-10 22:36:32 -0400  Thomas Jones <thomas.jones@utoronto.ca>
+
+	* gst-libs/gst/pbutils/gstaudiovisualizer.c:
+	  audiovisualizer: Fix calculations for bytes<->samples conversions
+	  Use bpf instead of channels * sizeof(gint16).
+	  https://bugzilla.gnome.org/show_bug.cgi?id=767505
+
+2016-06-10 14:04:36 -0400  Thomas Jones <thomas.jones@utoronto.ca>
+
+	* gst-libs/gst/pbutils/gstaudiovisualizer.c:
+	  audiovisualizer: Use GST_BUFFER_PTS() instead of GST_BUFFER_TIMESTAMP()
+	  https://bugzilla.gnome.org/show_bug.cgi?id=767506
+
+2016-06-10 22:50:41 -0400  Thomas Jones <thomas.jones@utoronto.ca>
+
+	* gst-libs/gst/pbutils/gstaudiovisualizer.c:
+	  audiovisualizer: fix timestamp calculation for audio channels > 1
+	  We have to use bps*channels instead of just bps, which is exactly what bpf is for.
+	  https://bugzilla.gnome.org/show_bug.cgi?id=767507
+
+2015-04-09 19:09:17 +0200  Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
+
+	* gst-libs/gst/video/gstvideodecoder.c:
+	  videodecoder: handle buffer's flags at offset
+	  For reverse playback it is important to handle correctly the frame sync
+	  points, which is set when the input buffer doesn't have the DELTA_UNIT flag.
+	  This is handled correctly when decoder is packetized, but when it is not the
+	  frame's sync point is not copied, and the reverse playback never decodes frame
+	  batches.
+	  The current patch adds the buffer's flags to the Timestamp list, where the
+	  timestamp and duration of the input buffers are hold.
+
+2015-04-09 19:18:58 +0200  Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
+
+	* gst-libs/gst/video/gstvideodecoder.c:
+	  videodecoder: squash two message logs into one
+	  There were two consecutive log messages in gst_video_decoder_decode_frame().
+	  Given the information they provide, it is more efficient to squash them into a
+	  single one.
+
+2015-04-09 19:16:10 +0200  Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
+
+	* gst-libs/gst/video/gstvideodecoder.c:
+	  videodecoder: playback rate is in input_segment
+	  The playback rate is hold in the input_segment member variable, not in the
+	  output_segment, and the parse_gather list was never filled because of that.
+	  This patch changes the comparison with input_segment.
+
+2016-06-09 19:02:49 +0300  Sebastian Dröge <sebastian@centricular.com>
+
+	* gst-libs/gst/video/gstvideodecoder.c:
+	  videodecoder: Use input segment rate instead of output segment rate to decide whether the drain on keyframes
+	  The output segment is only set up after data is output, which might be far in
+	  the future for reverse playback. Also we are here interested in the state at
+	  the current *input* frame (which is the keyframe), not any possible output.
+
+2016-06-09 18:53:54 +0300  Sebastian Dröge <sebastian@centricular.com>
+
+	* gst-libs/gst/video/gstvideodecoder.c:
+	  videodecoder: Only drain in KEY_UNITS trick mode after a keyframe in forwards playback mode
+	  For reverse playback the same behaviour was already implemented in
+	  flush_parse().
+	  For reverse playback, chain_forward() is only used to gather frames and not
+	  for decoding, and it is actually called by the draining logic, causing an
+	  infinite recursion.
+
+2016-06-07 09:48:35 +0200  Edward Hervey <edward@centricular.com>
+
+	* gst-libs/gst/video/gstvideodecoder.c:
+	  videodecoder: Don't push late frames
+	  While it's a bit tricky to discard frames *before* decoding (because
+	  we might not be sure which data is needed or not by the decoder), we
+	  can discard them after decoding if they are too late anyway.
+	  Any following basetransform based element or similar would drop the frame too.
+
+2016-06-07 10:31:59 +0200  Edward Hervey <edward@centricular.com>
+
+	* gst-libs/gst/video/gstvideodecoder.c:
+	  videodecoder: Avoid recursive drain/flush calls
+	  _chain_forward() can also be called with reverse playback. Blindly
+	  calling drain_out() on DISCONT buffers would end up in a recursive
+	  call.
+
+2016-06-04 09:51:17 +0200  Edward Hervey <edward@centricular.com>
+
+	* gst-libs/gst/video/gstvideodecoder.c:
+	  videodecoder: Drain out keyframes in TRICK_MODE_KEY_UNITS
+	  When asked to just decode keyframe, if we got a keyframe drain out
+	  the decoder straight away.
+	  This avoids having to wait for the next frame and reduces delay even
+	  more.
+	  https://bugzilla.gnome.org/show_bug.cgi?id=767232
+
+2016-06-04 09:49:00 +0200  Edward Hervey <edward@centricular.com>
+
+	* gst-libs/gst/video/gstvideodecoder.c:
+	  videodecoder: Drain decoder on DISCONT buffers
+	  This ensures the decoder is properly drained out when receiving a
+	  DISCONT buffer. The optimal way of doing this would have been to
+	  receive a GAP event before hand but it is not always possible.
+	  Fixes big delays with some decoders (ex gst-libav) that will not
+	  drain out data when only decoding keyframes.
+	  https://bugzilla.gnome.org/show_bug.cgi?id=767232
+
+2016-06-01 11:02:12 +0200  Michael Olbrich <m.olbrich@pengutronix.de>
+
+	* gst-libs/gst/tag/gsttagdemux.c:
+	  tagdemux: preserve timestamp when skipping a tag at the beginning of a buffer
+	  gst_buffer_copy_region() does not copy the timestamp if it doesn't start
+	  with the first byte. We just skip the tag here, so the timestamp is still
+	  valid.
+	  https://bugzilla.gnome.org/show_bug.cgi?id=767173
+
 2016-05-10 13:56:13 +0200  Stian Selnes <stian@pexip.com>
 
 	* gst-libs/gst/video/video-color.c:
@@ -21,6 +482,100 @@
 	  actual table causing IS_UNKNOWN() to sometimes fail.
 	  https://bugzilla.gnome.org/show_bug.cgi?id=767163
 
+2016-06-02 13:07:01 +0200  Guillaume Desmottes <guillaume.desmottes@collabora.co.uk>
+
+	* ext/opus/gstopusenc.c:
+	* gst/playback/gstsubtitleoverlay.c:
+	  opusenc, subtitleoverlay: use MAY_BE_LEAKED flag
+	  Flag caps that are cached locally and will never be freed.
+	  https://bugzilla.gnome.org/show_bug.cgi?id=767155
+
+2016-06-01 16:56:13 +0300  Sebastian Dröge <sebastian@centricular.com>
+
+	* gst/playback/gstdecodebin2.c:
+	  decodebin: Create a new decode element with the parser/convert capsfilter if there is a multiqueue after the parser
+	  https://bugzilla.gnome.org/show_bug.cgi?id=767102
+
+2016-05-23 15:11:53 +0200  Edward Hervey <edward@centricular.com>
+
+	* gst-libs/gst/video/gstvideodecoder.c:
+	  videodecoder: Make sure the DISCONT flag is set on the outgoing buffer
+	  The base class was setting the DISCONT flag before checking whether the buffer
+	  would be in segment or not.
+	  Fix issues with DISCONT flags not being properly propagated downstream when
+	  decoders buffers were out of segment.
+	  https://bugzilla.gnome.org/show_bug.cgi?id=766800
+
+2016-06-01 15:31:52 +0200  Joan Pau Beltran <joanpau.beltran@socib.cat>
+
+	* docs/design/part-mediatype-video-raw.txt:
+	  docs: design: add IYU2 raw video format description
+	  https://bugzilla.gnome.org/show_bug.cgi?id=763026
+
+2016-06-01 12:36:38 +0100  Tim-Philipp Müller <tim@centricular.com>
+
+	* ext/pango/gstbasetextoverlay.c:
+	  textoverlay: enable shaded background drawing for new IYU2 format
+
+2016-05-30 16:40:26 +0200  Joan Pau Beltran <joanpau.beltran@socib.cat>
+
+	* gst-libs/gst/video/video-converter.c:
+	* gst-libs/gst/video/video-format.c:
+	* gst-libs/gst/video/video-format.h:
+	* gst-libs/gst/video/video-info.c:
+	* gst-libs/gst/video/video-scaler.c:
+	* tests/check/libs/video.c:
+	  video: add IYU2 format
+	  This existed in 0.10 and is needed by dc1394src.
+	  IYU2 format is a YUV fully-sampled packed format similar to v308
+	  but with different component order (U-Y-V instead of Y-U-V).
+	  http://www.fourcc.org/yuv.php#IYU2
+	  https://bugzilla.gnome.org/show_bug.cgi?id=763026#c5
+
+2016-03-17 23:47:48 +0530  Nirbheek Chauhan <nirbheek.chauhan@gmail.com>
+
+	* ext/libvisual/visual.c:
+	  libvisual: Factor out endian-order RGB formats
+	  MSVC seems to ignore preprocessor conditionals inside static
+	  pad templates. Also remove unnecessary quotes inside caps strings.
+
+2016-05-24 00:44:21 +0100  Tim-Philipp Müller <tim@centricular.com>
+
+	* gst-libs/gst/allocators/Makefile.am:
+	* gst-libs/gst/app/Makefile.am:
+	* gst-libs/gst/audio/Makefile.am:
+	* gst-libs/gst/fft/Makefile.am:
+	* gst-libs/gst/pbutils/Makefile.am:
+	* gst-libs/gst/riff/Makefile.am:
+	* gst-libs/gst/rtp/Makefile.am:
+	* gst-libs/gst/rtsp/Makefile.am:
+	* gst-libs/gst/sdp/Makefile.am:
+	* gst-libs/gst/tag/Makefile.am:
+	* gst-libs/gst/video/Makefile.am:
+	  g-i: pass compiler env to g-ir-scanner
+	  It's what introspection.mak does as well. Should
+	  fix spurious build failures on gnome-continuous.
+
+2016-05-23 19:28:39 +0100  Tim-Philipp Müller <tim@centricular.com>
+
+	* ext/opus/gstopusdec.c:
+	* ext/opus/gstopusenc.c:
+	  opus: use default error messages in some more cases
+
+2016-05-23 15:35:39 +0100  Tim-Philipp Müller <tim@centricular.com>
+
+	* ext/opus/gstopusdec.c:
+	  opusdec: use default error message strings in more cases
+	  Details should go into the debug message. We should probably
+	  make up new codes for encoder/decoder lib init failures too.
+
+2016-05-19 12:26:05 -0400  Olivier Crête <olivier.crete@collabora.com>
+
+	* ext/opus/gstopusdec.c:
+	* ext/opus/gstopusenc.c:
+	  opus: Post error message on GST_FLOW_ERROR
+	  https://bugzilla.gnome.org/show_bug.cgi?id=766265
+
 2016-05-14 14:41:28 +0200  Olivier Crête <olivier.crete@collabora.com>
 
 	* ext/opus/gstopusdec.c:
@@ -49,37 +604,168 @@
 	  Fix a leak with the 'test_suburi_error_wrongproto' test.
 	  https://bugzilla.gnome.org/show_bug.cgi?id=766515
 
+2016-05-16 09:52:35 +0100  Tim-Philipp Müller <tim@centricular.com>
+
+	* tests/check/elements/playbin.c:
+	  tests: playbin: add test for new "element-setup" signal
+	  https://bugzilla.gnome.org/show_bug.cgi?id=578933
+
+2016-05-14 11:28:01 +0100  Tim-Philipp Müller <tim@centricular.com>
+
+	* gst/playback/gstplaybin2.c:
+	  playbin: add "element-setup" signal
+	  Allows configuration of plugged elements.
+	  https://bugzilla.gnome.org/show_bug.cgi?id=578933
+
+2016-05-15 14:43:11 +0100  Tim-Philipp Müller <tim@centricular.com>
+
+	* Makefile.am:
+	* gst-libs/gst/app/.gitignore:
+	* gst-libs/gst/app/gstapp-marshal.list:
+	  app: remove marshaller files from git
+
+2016-05-15 14:37:41 +0100  Tim-Philipp Müller <tim@centricular.com>
+
+	* gst-libs/gst/app/Makefile.am:
+	* gst-libs/gst/app/gstappsink.c:
+	* gst-libs/gst/app/gstappsrc.c:
+	  app: use generic marshallers
+
+2016-05-15 12:01:17 +0200  Edward Hervey <bilboed@bilboed.com>
+
+	* ext/ogg/gstoggdemux.c:
+	  oggdemux: Reset keyframe_granule when needed
+	  This avoids ending up with bogus values when doing flushing seeks
+	  in push-mode.
+	  https://bugzilla.gnome.org/show_bug.cgi?id=766467
+
+2016-05-15 13:31:03 +0300  Sebastian Dröge <sebastian@centricular.com>
+
+	* docs/plugins/gst-plugins-base-plugins.args:
+	* docs/plugins/inspect/plugin-adder.xml:
+	* docs/plugins/inspect/plugin-alsa.xml:
+	* docs/plugins/inspect/plugin-app.xml:
+	* docs/plugins/inspect/plugin-audioconvert.xml:
+	* docs/plugins/inspect/plugin-audiorate.xml:
+	* docs/plugins/inspect/plugin-audioresample.xml:
+	* docs/plugins/inspect/plugin-audiotestsrc.xml:
+	* docs/plugins/inspect/plugin-cdparanoia.xml:
+	* docs/plugins/inspect/plugin-encoding.xml:
+	* docs/plugins/inspect/plugin-gio.xml:
+	* docs/plugins/inspect/plugin-libvisual.xml:
+	* docs/plugins/inspect/plugin-ogg.xml:
+	* docs/plugins/inspect/plugin-opus.xml:
+	* docs/plugins/inspect/plugin-pango.xml:
+	* docs/plugins/inspect/plugin-playback.xml:
+	* docs/plugins/inspect/plugin-subparse.xml:
+	* docs/plugins/inspect/plugin-tcp.xml:
+	* docs/plugins/inspect/plugin-theora.xml:
+	* docs/plugins/inspect/plugin-typefindfunctions.xml:
+	* docs/plugins/inspect/plugin-videoconvert.xml:
+	* docs/plugins/inspect/plugin-videorate.xml:
+	* docs/plugins/inspect/plugin-videoscale.xml:
+	* docs/plugins/inspect/plugin-videotestsrc.xml:
+	* docs/plugins/inspect/plugin-volume.xml:
+	* docs/plugins/inspect/plugin-vorbis.xml:
+	* docs/plugins/inspect/plugin-ximagesink.xml:
+	* docs/plugins/inspect/plugin-xvimagesink.xml:
+	  docs: Update for git master
+
+2016-05-14 15:43:24 +0300  Matthew Waters <matthew@centricular.com>
+
+	* gst-libs/gst/video/gstvideoaffinetransformationmeta.h:
+	  video/affinetransformationmeta: define the coordinate space used
+	  Based on the expected output from the already existing usage by androidmedia
+	  and the opengl plugins.
+	  https://bugzilla.gnome.org/show_bug.cgi?id=764667
+
+2015-12-17 19:38:33 +0000  Tim-Philipp Müller <tim@centricular.com>
+
+	* gst-libs/gst/pbutils/descriptions.c:
+	  pbutils: add description for WebVTT
+
+2015-09-30 17:55:22 +0100  Tim-Philipp Müller <tim@centricular.com>
+
+	* tests/check/Makefile.am:
+	* tests/check/elements/playsink.c:
+	  tests: playsink: add minimal test for playsink element
+	  Attempt to reproduce leak.
+	  https://bugzilla.gnome.org/show_bug.cgi?id=755867
+
+2016-05-10 12:17:34 +0200  Guillaume Desmottes <guillaume.desmottes@collabora.co.uk>
+
+	* tests/check/elements/vorbistag.c:
+	  vorbistag: fix buffer leaks in tests
+	  It internally uses gst_check_chain_func() so we
+	  should call gst_check_drop_buffers() when tearing down tests to free
+	  the buffers which have been exchanged through the pipeline.
+	  https://bugzilla.gnome.org/show_bug.cgi?id=766226
+
+2016-05-10 12:17:34 +0200  Guillaume Desmottes <guillaume.desmottes@collabora.co.uk>
+
+	* tests/check/elements/appsrc.c:
+	  appsrc: fix buffer leaks in tests
+	  It internally uses gst_check_chain_func() so we
+	  should call gst_check_drop_buffers() when tearing down tests to free
+	  the buffers which have been exchanged through the pipeline.
+	  https://bugzilla.gnome.org/show_bug.cgi?id=766226
+
+2016-05-10 12:17:34 +0200  Guillaume Desmottes <guillaume.desmottes@collabora.co.uk>
+
+	* tests/check/elements/audiorate.c:
+	  audiorate: fix buffer leaks in tests
+	  It internally uses gst_check_chain_func() so we
+	  should call gst_check_drop_buffers() when tearing down tests to free
+	  the buffers which have been exchanged through the pipeline.
+	  https://bugzilla.gnome.org/show_bug.cgi?id=766226
+
 2016-05-10 21:34:53 +0900  Hyunjun Ko <zzoon@igalia.com>
 
 	* gst-libs/gst/sdp/gstsdpmessage.c:
 	  sdp: parse sdp attributes in case that sdp message doesn't contain mikey message
 	  https://bugzilla.gnome.org/show_bug.cgi?id=766204
 
-2016-04-29 11:06:49 +0300  Sebastian Dröge <sebastian@centricular.com>
+2016-05-10 16:44:04 +0300  Sebastian Dröge <sebastian@centricular.com>
 
-	* gst-libs/gst/pbutils/encoding-profile.c:
-	  encoding-profile: Fix caps memory leak
+	* docs/libs/gst-plugins-base-libs-sections.txt:
+	* gst-libs/gst/app/gstappsrc.c:
+	* gst-libs/gst/app/gstappsrc.h:
+	* win32/common/libgstapp.def:
+	  appsrc: Add duration property for providing a duration in TIME format
+	  https://bugzilla.gnome.org/show_bug.cgi?id=766229
 
-2016-04-28 11:18:23 +0300  Sebastian Dröge <sebastian@centricular.com>
+2016-05-10 10:01:12 +0300  Sebastian Dröge <sebastian@centricular.com>
 
-	* gst-libs/gst/pbutils/encoding-profile.c:
-	  encoding-profile: Fail to create encoding profile from discoverer info if no streams could be added
-	  https://bugzilla.gnome.org/show_bug.cgi?id=765708
+	* gst-libs/gst/video/gstvideodecoder.h:
+	* gst-libs/gst/video/gstvideoencoder.h:
+	  videodecoder/encoder: Correct GST_IS_*CODER_CLASS macros
+	  They are currently not used, but would result in a compiler error due to wrong
+	  variable name usage.
+	  https://bugzilla.gnome.org/show_bug.cgi?id=766203
 
-2016-04-28 11:21:47 +0300  Sebastian Dröge <sebastian@centricular.com>
+2016-05-05 13:16:57 +0300  Sebastian Dröge <sebastian@centricular.com>
 
-	* gst-libs/gst/pbutils/encoding-profile.c:
-	  encoding-profile: Recurse into nested container profiles and only add the final audio/video streams
-	  If we e.g. have AVI with DV container with video/audio inside the DV
-	  container, we can't handle this at this point with an encoding profile.
-	  Instead of erroring out, flatten the container hierarchy.
-	  https://bugzilla.gnome.org/show_bug.cgi?id=765708
+	* gst/tcp/gstmultihandlesink.c:
+	  multihandlesink: Warn if trying to change the state from the streaming thread
+	  Instead of silently returning GST_STATE_CHANGE_FAILURE.
 
-2016-04-28 11:15:53 +0300  Sebastian Dröge <sebastian@centricular.com>
+2016-05-04 11:33:50 +1000  Alessandro Decina <alessandro.d@gmail.com>
 
-	* gst-libs/gst/pbutils/encoding-profile.c:
-	  encoding-profile: Move adding of each stream to a helper function
-	  https://bugzilla.gnome.org/show_bug.cgi?id=765708
+	* gst/playback/gstdecodebin2.c:
+	  decodebin: an element can negotiate before we block it
+	  When we initialize an element in decodebin, we 1) set it to PAUSED and
+	  push sticky events on its sinkpad to trigger negotiation 2) block its
+	  src pad(s) to detect CAPS events. We can't block before 1) as that
+	  would lead to a deadlock.
+	  It's possible (and common) tho that an element configures its srcpad
+	  during 1) and before 2). Therefore before this change we would
+	  typically block and expose an element's pad only once the element
+	  output its first buffer, triggering sticky events to be resent. One
+	  consequence of this behaviour is that it sometimes broke
+	  renegotiation.
+	  With this change now we consider a pad ready to be exposed when it's
+	  ->blocked or has fixed caps (which were set before we could block it).
+	  https://bugzilla.gnome.org/show_bug.cgi?id=765456
 
 2016-05-02 14:21:55 -0300  Thiago Santos <thiagoss@osg.samsung.com>
 
@@ -118,6 +804,52 @@
 	* tests/check/elements/opus.c:
 	  tests: opus: remove apparently useless macro in tests
 
+2016-04-29 11:06:49 +0300  Sebastian Dröge <sebastian@centricular.com>
+
+	* gst-libs/gst/pbutils/encoding-profile.c:
+	  encoding-profile: Fix caps memory leak
+
+2016-04-28 11:21:47 +0300  Sebastian Dröge <sebastian@centricular.com>
+
+	* gst-libs/gst/pbutils/encoding-profile.c:
+	  encoding-profile: Recurse into nested container profiles and only add the final audio/video streams
+	  If we e.g. have AVI with DV container with video/audio inside the DV
+	  container, we can't handle this at this point with an encoding profile.
+	  Instead of erroring out, flatten the container hierarchy.
+	  https://bugzilla.gnome.org/show_bug.cgi?id=765708
+
+2016-04-28 11:18:23 +0300  Sebastian Dröge <sebastian@centricular.com>
+
+	* gst-libs/gst/pbutils/encoding-profile.c:
+	  encoding-profile: Fail to create encoding profile from discoverer info if no streams could be added
+	  https://bugzilla.gnome.org/show_bug.cgi?id=765708
+
+2016-04-28 11:15:53 +0300  Sebastian Dröge <sebastian@centricular.com>
+
+	* gst-libs/gst/pbutils/encoding-profile.c:
+	  encoding-profile: Move adding of each stream to a helper function
+	  https://bugzilla.gnome.org/show_bug.cgi?id=765708
+
+2015-08-21 10:40:33 +0200  Aurélien Zanelli <aurelien.zanelli@darkosphere.fr>
+
+	* gst-libs/gst/tag/gstexiftag.c:
+	* tests/check/libs/tag.c:
+	  exiftag: handle GST_TAG_CAPTURING_FOCAL_LENGTH_35_MM tag
+	  This tag match the EXIF_TAG_FOCAL_LENGTH_IN_35_MM_FILM exif tag and is
+	  stored on a short. Hence there is a precision loss compared to the
+	  GstTag which is a double value.
+	  https://bugzilla.gnome.org/show_bug.cgi?id=753930
+
+2015-08-21 10:39:36 +0200  Aurélien Zanelli <aurelien.zanelli@darkosphere.fr>
+
+	* gst-libs/gst/tag/tag.h:
+	* gst-libs/gst/tag/tags.c:
+	  tag: add GST_TAG_CAPTURING_FOCAL_LENGTH_35_MM tag
+	  It is the 35 mm equivalent focal length of the lens, mainly used in
+	  photography. Tag value is stored in a double value to be consistent with
+	  GST_TAG_CAPTURING_FOCAL_LENGTH.
+	  https://bugzilla.gnome.org/show_bug.cgi?id=753930
+
 2016-04-28 09:59:25 +0300  Guillaume Desmottes <guillaume.desmottes@collabora.co.uk>
 
 	* ext/opus/gstopusdec.c:
@@ -125,6 +857,29 @@
 	  The caps returned by gst_pad_get_allowed_caps() was leaked.
 	  https://bugzilla.gnome.org/show_bug.cgi?id=765706
 
+2016-04-27 18:08:46 +0900  Kipp Cannon <kipp.cannon@ligo.org>
+
+	* gst-libs/gst/audio/audio.c:
+	* gst-libs/gst/audio/audio.h:
+	  audio: Add const to segment parameter of gst_audio_buffer_clip()
+	  e.g., allows this to be used with the reference retrieved by
+	  gst_event_parse_segment().
+	  https://bugzilla.gnome.org/show_bug.cgi?id=765663
+
+2016-04-21 08:45:40 +0200  Jakub Adam <jakub.adam@ktknet.cz>
+
+	* sys/ximage/ximagesink.c:
+	  ximagesink: generate reconfigure on window handle change
+	  When ximagesink is given a new window handle, it should check
+	  its geometry and if the size of the new window differs from
+	  the previous one, create reconfigure event in order to get
+	  a chance to negotiate a more suitable image resolution with
+	  the upstream elements.
+	  We can't rely on receiving Expose or ConfigureNotify from
+	  the X server for the newly assigned window, which would also
+	  generate reconfigure.
+	  https://bugzilla.gnome.org/show_bug.cgi?id=765424
+
 2016-04-25 17:16:04 +0300  Sebastian Dröge <sebastian@centricular.com>
 
 	* gst/encoding/gstsmartencoder.c:
@@ -133,13 +888,6 @@
 	  event before EOS
 	  https://bugzilla.gnome.org/show_bug.cgi?id=765541
 
-2016-04-25 16:47:00 +0300  Sebastian Dröge <sebastian@centricular.com>
-
-	* gst-libs/gst/pbutils/codec-utils.c:
-	  codec-utils: H264 level idc 0 is not valid
-	  Don't put level=0 into the caps, it confuses other elements.
-	  https://bugzilla.gnome.org/show_bug.cgi?id=765538
-
 2016-04-25 16:48:36 +0300  Sebastian Dröge <sebastian@centricular.com>
 
 	* gst-libs/gst/pbutils/codec-utils.c:
@@ -147,6 +895,13 @@
 	  Don't put level=0 into the caps, it confuses other elements.
 	  https://bugzilla.gnome.org/show_bug.cgi?id=765538
 
+2016-04-25 16:47:00 +0300  Sebastian Dröge <sebastian@centricular.com>
+
+	* gst-libs/gst/pbutils/codec-utils.c:
+	  codec-utils: H264 level idc 0 is not valid
+	  Don't put level=0 into the caps, it confuses other elements.
+	  https://bugzilla.gnome.org/show_bug.cgi?id=765538
+
 2016-04-25 16:06:39 +0300  Sebastian Dröge <sebastian@centricular.com>
 
 	* gst-libs/gst/pbutils/encoding-profile.c:
@@ -162,96 +917,15 @@
 	  encoding-profile: Don't put G_BEGIN_DECLS around #include statements
 	  It should only be around our own declarations.
 
-=== release 1.8.1 ===
+2016-04-22 15:07:10 +0200  Wim Taymans <wtaymans@redhat.com>
 
-2016-04-20 18:15:39 +0300  Sebastian Dröge <sebastian@centricular.com>
-
-	* ChangeLog:
-	* NEWS:
-	* RELEASE:
-	* configure.ac:
-	* docs/plugins/inspect/plugin-adder.xml:
-	* docs/plugins/inspect/plugin-alsa.xml:
-	* docs/plugins/inspect/plugin-app.xml:
-	* docs/plugins/inspect/plugin-audioconvert.xml:
-	* docs/plugins/inspect/plugin-audiorate.xml:
-	* docs/plugins/inspect/plugin-audioresample.xml:
-	* docs/plugins/inspect/plugin-audiotestsrc.xml:
-	* docs/plugins/inspect/plugin-cdparanoia.xml:
-	* docs/plugins/inspect/plugin-encoding.xml:
-	* docs/plugins/inspect/plugin-gio.xml:
-	* docs/plugins/inspect/plugin-libvisual.xml:
-	* docs/plugins/inspect/plugin-ogg.xml:
-	* docs/plugins/inspect/plugin-opus.xml:
-	* docs/plugins/inspect/plugin-pango.xml:
-	* docs/plugins/inspect/plugin-playback.xml:
-	* docs/plugins/inspect/plugin-subparse.xml:
-	* docs/plugins/inspect/plugin-tcp.xml:
-	* docs/plugins/inspect/plugin-theora.xml:
-	* docs/plugins/inspect/plugin-typefindfunctions.xml:
-	* docs/plugins/inspect/plugin-videoconvert.xml:
-	* docs/plugins/inspect/plugin-videorate.xml:
-	* docs/plugins/inspect/plugin-videoscale.xml:
-	* docs/plugins/inspect/plugin-videotestsrc.xml:
-	* docs/plugins/inspect/plugin-volume.xml:
-	* docs/plugins/inspect/plugin-vorbis.xml:
-	* docs/plugins/inspect/plugin-ximagesink.xml:
-	* docs/plugins/inspect/plugin-xvimagesink.xml:
-	* gst-plugins-base.doap:
-	* win32/common/_stdint.h:
-	* win32/common/config.h:
-	  Release 1.8.1
-
-2016-04-20 18:02:22 +0300  Sebastian Dröge <sebastian@centricular.com>
-
-	* po/af.po:
-	* po/az.po:
-	* po/bg.po:
-	* po/ca.po:
-	* po/cs.po:
-	* po/de.po:
-	* po/el.po:
-	* po/en_GB.po:
-	* po/eo.po:
-	* po/es.po:
-	* po/eu.po:
-	* po/fi.po:
-	* po/fr.po:
-	* po/gl.po:
-	* po/hr.po:
-	* po/hu.po:
-	* po/id.po:
-	* po/it.po:
-	* po/ja.po:
-	* po/lt.po:
-	* po/lv.po:
-	* po/nb.po:
-	* po/nl.po:
-	* po/or.po:
-	* po/pl.po:
-	* po/pt_BR.po:
-	* po/ro.po:
-	* po/ru.po:
-	* po/sk.po:
-	* po/sl.po:
-	* po/sq.po:
-	* po/sr.po:
-	* po/sv.po:
-	* po/tr.po:
-	* po/uk.po:
-	* po/vi.po:
-	* po/zh_CN.po:
-	  Update .po files
-
-2016-04-15 17:48:26 +0100  Tim-Philipp Müller <tim@centricular.com>
-
-	* win32/common/libgstsdp.def:
-	  win32: update .def for new API
-
-2016-04-20 15:30:04 +0300  Sebastian Dröge <sebastian@centricular.com>
-
-	* po/da.po:
-	  po: Update translations
+	* gst-libs/gst/video/video-converter.c:
+	* gst-libs/gst/video/video-orc-dist.c:
+	* gst-libs/gst/video/video-orc-dist.h:
+	* gst-libs/gst/video/video-orc.orc:
+	  video-converter: add more fastpaths for I420 -> RGB
+	  Use the I420->BGRA and a new I420->ARGB to speed up any I420 to RGB
+	  operation.
 
 2016-04-19 17:36:20 +0200  Josep Torra <n770galaxy@gmail.com>
 
@@ -260,6 +934,42 @@
 	  sdp: update since markers to 1.8.1 for some new APIs
 	  As we decided to backport some fixes we update the since markers.
 
+2016-04-17 16:21:32 +0100  Tim-Philipp Müller <tim@centricular.com>
+
+	* tests/check/pipelines/vorbisenc.c:
+	  tests: vorbisenc: fix with CK_FORK=no
+
+2016-04-12 16:32:20 +0300  Vivia Nikolaidou <vivia@toolsonair.com>
+
+	* gst/playback/gstdecodebin2.c:
+	  decodebin: Always add a multiqueue in single-stream use-buffering pipelines
+	  If we are configured to use buffering and there is no demuxer in the chain, we
+	  still want a multiqueue, otherwise we will ignore the use-buffering property.
+	  In that case, we will insert a multiqueue after the parser or decoder - not
+	  elsewhere, otherwise we won't have timestamps.
+	  https://bugzilla.gnome.org/show_bug.cgi?id=764948
+
+2016-04-18 17:39:02 +0300  Guillaume Desmottes <guillaume.desmottes@collabora.co.uk>
+
+	* tools/gst-play.c:
+	  gst-play: call gst_deinit()
+	  So we can use gst-play to track memory leaks.
+	  https://bugzilla.gnome.org/show_bug.cgi?id=765216
+
+2016-04-15 17:48:26 +0100  Tim-Philipp Müller <tim@centricular.com>
+
+	* win32/common/libgstsdp.def:
+	  win32: update .def for new API
+
+2016-04-16 02:11:59 +1000  Jan Schmidt <jan@centricular.com>
+
+	* gst-libs/gst/audio/gstaudioringbuffer.c:
+	  Revert "audioringbuffer: start ringbuffer if needed upon commit"
+	  This reverts commit 13ee94ef1091f8a8a90dbd395b39876c26c5188e.
+	  Causes audio glitches at startup by starting to output segments
+	  from the ringbuffer before it has been filled / fully prerolled.
+	  https://bugzilla.gnome.org/show_bug.cgi?id=657076
+
 2016-04-15 00:18:50 -0700  Aleix Conchillo Flaqué <aconchillo@gmail.com>
 
 	* gst-libs/gst/sdp/gstsdpmessage.c:
@@ -277,14 +987,19 @@
 	* gst-libs/gst/sdp/gstsdpmessage.c:
 	  mikey: add new function gst_mikey_message_to_caps
 
-2016-04-16 02:11:59 +1000  Jan Schmidt <jan@centricular.com>
+2016-04-15 12:54:32 +0100  Vincent Penquerc'h <vincent.penquerch@collabora.co.uk>
 
-	* gst-libs/gst/audio/gstaudioringbuffer.c:
-	  Revert "audioringbuffer: start ringbuffer if needed upon commit"
-	  This reverts commit 13ee94ef1091f8a8a90dbd395b39876c26c5188e.
-	  Causes audio glitches at startup by starting to output segments
-	  from the ringbuffer before it has been filled / fully prerolled.
-	  https://bugzilla.gnome.org/show_bug.cgi?id=657076
+	* gst/subparse/gstsubparse.c:
+	  subparse: fix build with GCC 4.6.3
+	  gstsubparse.c: In function ‘parse_subrip’:
+	  gstsubparse.c:988:7: error: ignoring return value of ‘strtol’, declared with attribute warn_unused_result [-Werror=unused-result]
+	  cc1: all warnings being treated as errors
+	  https://bugzilla.gnome.org/show_bug.cgi?id=765042
+
+2016-04-15 13:08:38 +0200  Josep Torra <n770galaxy@gmail.com>
+
+	* tests/icles/.gitignore:
+	  .gitignore: add test-resample binary
 
 2016-04-14 17:26:54 -0700  Aleix Conchillo Flaqué <aconchillo@gmail.com>
 
@@ -296,6 +1011,112 @@
 	  both are given srtp parametres will be preferred.
 	  https://bugzilla.gnome.org/show_bug.cgi?id=765027
 
+2016-04-14 10:00:06 +0100  Julien Isorce <j.isorce@samsung.com>
+
+	* README:
+	* common:
+	  Automatic update of common submodule
+	  From 6f2d209 to ac2f647
+
+2016-04-13 10:07:33 +0300  Sebastian Dröge <sebastian@centricular.com>
+
+	* gst-libs/gst/video/gstvideometa.c:
+	* gst-libs/gst/video/video-multiview.c:
+	* gst-libs/gst/video/video-overlay-composition.c:
+	  videometa: Initialize all fields of all metas with default values
+	  The metas are not allocated with all fields initialized to zeroes.
+	  https://bugzilla.gnome.org/show_bug.cgi?id=764902
+
+2016-04-11 15:28:00 +0000  Arjen Veenhuizen <arjen.veenhuizen@tno.nl>
+
+	* gst-libs/gst/video/gstvideometa.c:
+	  videometa: Explicitly initialize GstVideoCropMeta on init
+	  It is not allocated with all fields initialized to 0.
+	  https://bugzilla.gnome.org/show_bug.cgi?id=764902
+
+2016-03-21 16:34:37 +0100  Guillaume Desmottes <guillaume.desmottes@collabora.co.uk>
+
+	* ext/alsa/gstalsa.c:
+	  alsa: properly convert position-less channels from ALSA
+	  The only way for ALSA to expose a position-less multi channels is to
+	  return an array full of SND_CHMAP_MONO. Converting this to a
+	  GST_AUDIO_CHANNEL_POSITION_MONO array would be invalid as
+	  GST_AUDIO_CHANNEL_POSITION_MONO is meant to be used only with one
+	  channel.
+	  Fix this by using GST_AUDIO_CHANNEL_POSITION_NONE which is meant to be
+	  used for position-less channels.
+	  https://bugzilla.gnome.org/show_bug.cgi?id=763799
+
+2016-03-21 16:29:39 +0100  Guillaume Desmottes <guillaume.desmottes@collabora.co.uk>
+
+	* gst-libs/gst/audio/gstaudioringbuffer.c:
+	  audioringbuffer: don't attempt to reorder position-less channels
+	  As said in its doc GST_AUDIO_CHANNEL_POSITION_NONE is meant to be used
+	  for "position-less channels, e.g. from a sound card that records 1024
+	  channels; mutually exclusive with any other channel position".
+	  But at the moment using such positions would raise a
+	  'g_return_if_reached' warning as gst_audio_get_channel_reorder_map()
+	  would reject it.
+	  Fix this by preventing any attempt to reorder in such case as that's not
+	  what we want anyway.
+	  https://bugzilla.gnome.org/show_bug.cgi?id=763799
+
+2016-03-21 07:26:50 -0400  Guillaume Desmottes <guillaume.desmottes@collabora.co.uk>
+
+	* gst-libs/gst/audio/gstaudioringbuffer.c:
+	  audio: add debug output if channels mapping does not match
+	  https://bugzilla.gnome.org/show_bug.cgi?id=763985
+
+2016-03-21 11:58:13 +0100  Guillaume Desmottes <guillaume.desmottes@collabora.co.uk>
+
+	* ext/alsa/gstalsa.c:
+	  alsa: add some debugging output to alsa_detect_channels_mapping()
+	  https://bugzilla.gnome.org/show_bug.cgi?id=763985
+
+2016-03-21 11:46:45 +0100  Guillaume Desmottes <guillaume.desmottes@collabora.co.uk>
+
+	* docs/libs/gst-plugins-base-libs-sections.txt:
+	* gst-libs/gst/audio/audio-channels.c:
+	* gst-libs/gst/audio/audio-channels.h:
+	* win32/common/libgstaudio.def:
+	  gst-audio: add gst_audio_channel_positions_to_string()
+	  We currently don't log much about channel positions making debugging
+	  harder as it should be. This is the first step in my attempt to improve
+	  this.
+	  https://bugzilla.gnome.org/show_bug.cgi?id=763985
+
+2016-03-21 05:09:10 -0400  Guillaume Desmottes <guillaume.desmottes@collabora.co.uk>
+
+	* ext/alsa/gstalsa.c:
+	* ext/alsa/gstalsa.h:
+	* ext/alsa/gstalsasink.c:
+	* ext/alsa/gstalsasrc.c:
+	  alsa: factor out alsa_detect_channels_mapping()
+	  This code was duplicated in alsasrc and alsasink.
+	  https://bugzilla.gnome.org/show_bug.cgi?id=763985
+
+2016-03-21 05:06:18 -0400  Guillaume Desmottes <guillaume.desmottes@collabora.co.uk>
+
+	* ext/alsa/gstalsa.h:
+	  alsa: coding style fix
+	  Was using tabs instead of spaces.
+	  https://bugzilla.gnome.org/show_bug.cgi?id=763985
+
+2016-04-12 16:34:00 +0300  Vivia Nikolaidou <vivia@ahiru.eu>
+
+	* gst-libs/gst/allocators/gstfdmemory.c:
+	* gst-libs/gst/rtp/gstrtpbasedepayload.c:
+	  fdmemory, rtpbasedepayload: Ran gst-indent
+	  https://bugzilla.gnome.org/show_bug.cgi?id=764948
+
+2016-04-12 16:25:12 +0300  Vivia Nikolaidou <vivia@ahiru.eu>
+
+	* gst/playback/gstdecodebin2.c:
+	  decodebin: Rename misleading variable is_parser_converter into is_parser
+	  In that place, the variable isn't checking whether the element is a
+	  converter, only if it is a parser.
+	  https://bugzilla.gnome.org/show_bug.cgi?id=764948
+
 2016-04-11 11:28:09 +0200  Fabrice Bellet <fabrice@bellet.info>
 
 	* gst-libs/gst/audio/gstaudiosink.c:
@@ -307,6 +1128,736 @@
 	  g_thread_self().
 	  https://bugzilla.gnome.org/show_bug.cgi?id=764865
 
+2016-04-06 17:57:28 +0100  Tim-Philipp Müller <tim@centricular.com>
+
+	* tests/check/libs/gstlibscpp.cc:
+	  tests: libscpp: test RTP/RTCP buffer init macros with C++ compiler
+
+2016-04-06 21:03:19 +1000  Jan Schmidt <jan@centricular.com>
+
+	* gst/playback/gstsubtitleoverlay.c:
+	  subtitleoverlay: Don't complain when stream-start is the first event.
+	  When blocking the subtitle pad, it's expected that stream-start
+	  is the first event, and that it can precede caps arriving on the
+	  peer pad - in fact the caps can only have arrived on the peer
+	  pad when it was pre-primed with sticky events previously.
+	  Instead, just pass the stream-start and don't block, because
+	  stream-start is sticky anyway.
+
+2016-04-06 21:00:10 +1000  Jan Schmidt <jan@centricular.com>
+
+	* gst/subparse/gstsubparse.c:
+	  subparse: WebVTT Cue identifiers are optional
+	  Don't require a cue identifier preceding the time range line
+	  when parsing WebVTT. We could also store the CueID, but it's
+	  not using anywhere, so just ignore it for now.
+
+2016-04-05 14:26:55 +0300  Sebastian Dröge <sebastian@centricular.com>
+
+	* win32/common/libgstaudio.def:
+	  win32: Add new libgstaudio symbols
+
+2016-04-01 12:25:14 +0200  Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
+
+	* gst-libs/gst/audio/gstaudiodecoder.c:
+	* gst-libs/gst/audio/gstaudiodecoder.h:
+	* gst-libs/gst/audio/gstaudioencoder.c:
+	* gst-libs/gst/audio/gstaudioencoder.h:
+	  libs: audio: split allocation query caps and pad caps
+	  Since the allocation query caps contains memory size and the pad's caps
+	  contains the display size, an audio encoder or decoder might need to allocate
+	  a different buffer size than the size negotiated in the caps.
+	  This patch splits this logic distinction for audiodecoder and audioencoder.
+	  Thus the user, if needs a different allocation caps, should set it through
+	  gst_audio_{encoder,decoder}_set_allocation_cap() before calling the negotiate()
+	  vmethod. Otherwise the allocation_caps will be the same as the caps in the
+	  src pad.
+	  https://bugzilla.gnome.org/show_bug.cgi?id=764421
+
+2016-03-31 15:31:31 +0200  Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
+
+	* gst-libs/gst/video/gstvideodecoder.c:
+	* gst-libs/gst/video/gstvideoencoder.c:
+	* gst-libs/gst/video/gstvideoutils.c:
+	* gst-libs/gst/video/gstvideoutils.h:
+	  libs: video: split allocation query caos and pad caps
+	  Since the allocation query caps contains memory size and the pad's caps
+	  contains the display size, a video encoder or decoder might need to allocate
+	  a different frame size than the size negotiated in the caps.
+	  This patch splits this logic distinction for videodecoder and videoencoder.
+	  The user if needs a different allocation caps, should set the allocation_caps
+	  in the GstVideoCodecState before calling negotiate() vmethod. Otherwise the
+	  allocation_caps will be the same as the caps set in the src pad.
+	  https://bugzilla.gnome.org/show_bug.cgi?id=764421
+
+2016-04-04 16:39:21 +0200  Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
+
+	* gst-libs/gst/audio/gstaudioencoder.c:
+	  audioencoder: fix gtk-doc comment format
+
+2016-04-02 10:37:55 +0200  Mikhail Fludkov <misha@pexip.com>
+
+	* gst-libs/gst/rtp/gstrtpbasedepayload.c:
+	* tests/check/libs/rtpbasedepayload.c:
+	  rtpbasedepayload: look at ssrc before sequence numbers
+	  Doing so prevents us dropping buffers in the rare, but possible, situations,
+	  when the stream changes SSRC and new sequence numbers does not differ
+	  much from the last sequence number from previous SSRC. For example:
+	  ssrc - 0xaaaa 101,102,103,104 ssrc - 0xbbbb 102, 103, 104, 105...
+	  In the scenario above we don't want to drop the first 3 packets of
+	  0xbbbb stream.
+	  https://bugzilla.gnome.org/show_bug.cgi?id=764459
+
+2016-04-03 11:40:50 +0300  Sebastian Dröge <sebastian@centricular.com>
+
+	* gst/videorate/gstvideorate.c:
+	  videorate: Don't fill up the segment with duplicate buffers if drop_only==TRUE
+
+2016-04-03 11:38:28 +0300  Sebastian Dröge <sebastian@centricular.com>
+
+	* gst/videorate/gstvideorate.c:
+	  videorate: Remove dead code
+	  We never get into this code path at all if drop_only==TRUE.
+
+2016-03-29 17:19:41 +0200  Frédéric Bertolus <frederic.bertolus@parrot.com>
+
+	* gst/videorate/gstvideorate.c:
+	  videorate: avoid useless buffer copy in drop-only mode
+	  Make writable the buffer before pushing it lead to a buffer copy. It's
+	  because a reference is keep for the previous buffer.
+	  The previous buffer reference is only need to duplicate the buffer. In
+	  drop-only mode, the previous buffer is release just after pushing the
+	  buffer so a copy is done but it's useless.
+	  https://bugzilla.gnome.org/show_bug.cgi?id=764319
+
+2016-04-02 15:19:44 +0100  Tim-Philipp Müller <tim@centricular.com>
+
+	* gst-libs/gst/video/video-frame.c:
+	  video: fix example code in gst_video_frame_map() docs
+	  GST_VIDEO_FRAME_PLANE_PSTRIDE() does not exist.
+	  https://bugzilla.gnome.org/show_bug.cgi?id=764414
+
+2016-04-02 10:09:07 +0100  Tim-Philipp Müller <tim@centricular.com>
+
+	* gst-libs/gst/pbutils/gstdiscoverer-types.c:
+	  discoverer: copy over result and seekable fields when copying a discoverer info
+	  The function gst_discoverer_info_copy doesn't copy the data members seekable
+	  and result of the source GstDiscovererInfo.
+	  In the case of copying a GstDiscovererInfo for later use, the seekbale will be
+	  undefined, which in practice usually will be false, even though the seekable of
+	  the original GstDiscovererInfo is true.
+	  https://bugzilla.gnome.org/show_bug.cgi?id=762710
+
+2016-03-31 13:32:32 -0400  Nicolas Dufresne <nicolas.dufresne@collabora.com>
+
+	* gst-libs/gst/video/video-format.h:
+	  video-format: Fix macro documentation
+	  The parameter type was wrongly documenting that a GstVideoInfo structure
+	  pointer was needed, while it needs a GstVideoFormatInfo structure
+	  pointer.
+	  https://bugzilla.gnome.org/show_bug.cgi?id=764414
+
+2016-03-26 20:53:08 +0000  Tim-Philipp Müller <tim@centricular.com>
+
+	* tests/check/elements/subparse.c:
+	* tests/check/libs/rtp.c:
+	  test: fix indentation
+
+2016-03-26 20:52:16 +0000  Tim-Philipp Müller <tim@centricular.com>
+
+	* gst-libs/gst/rtp/gstrtcpbuffer.c:
+	  rtp: rtcpbuffer: fix indentation
+	  https://bugzilla.gnome.org/show_bug.cgi?id=761944
+
+2016-03-26 20:50:31 +0000  Tim-Philipp Müller <tim@centricular.com>
+
+	* gst-libs/gst/rtp/gstrtcpbuffer.c:
+	  rtp: rtpcbuffer: fix Since markers
+	  https://bugzilla.gnome.org/show_bug.cgi?id=761944
+
+2016-03-30 11:16:49 +1100  Alessandro Decina <alessandro.d@gmail.com>
+
+	* gst-libs/gst/audio/audio-resampler.c:
+	  audio-resampler: disable neon on arm64
+	  Fix the build on arm64 by using HAVE_ARM_NEON instead of __ARM_NEON__.
+
+2016-03-29 22:16:38 +1100  Jan Schmidt <jan@centricular.com>
+
+	* gst/subparse/gstsubparse.c:
+	  subparse: Add more parsing guards
+	  Insert extra checks for the validity of the incoming
+	  data when parsing subrip/webvtt content and debug log
+	  output for invalid content.
+	  Should fix Coverity warnings.
+
+2016-03-29 10:23:08 +0100  Luis de Bethencourt <luisbg@osg.samsung.com>
+
+	* gst/subparse/gstsubparse.c:
+	  subparse: add missing break between formats
+	  A break is missing at the end of case GST_SUB_PARSE_FORMAT_LRC or it will
+	  fallthrough to WebVTT. This fixes commit fd2a14144a7a.
+
+2016-03-29 12:11:22 +0300  Sebastian Dröge <sebastian@centricular.com>
+
+	* gst-libs/gst/audio/audio-resampler-x86.h:
+	  audio-resampler: Use _mm_set_epi64x(0, x) instead of _mm_cvtsi64_si128(x) in more places
+
+2016-03-29 11:25:15 +0300  Sreerenj Balachandran <sreerenj.balachandran@intel.com>
+
+	* win32/common/video-enumtypes.c:
+	  win32: Update exports for new video formats
+	  Update win32 exports for P010_10BE and P010_10LE
+	  video formats.
+
+2016-03-29 11:16:42 +0300  Scott D Phillips <scott.d.phillips@intel.com>
+
+	* gst-libs/gst/video/video-converter.c:
+	* gst-libs/gst/video/video-format.c:
+	* gst-libs/gst/video/video-format.h:
+	* gst-libs/gst/video/video-info.c:
+	  video: add P010 format support
+	  P010 is a YUV420 format with an interleaved U-V plane and 2-bytes per
+	  component with the the color value stored in the 10 most significant
+	  bits.
+	  https://bugzilla.gnome.org/show_bug.cgi?id=761607
+	  ---
+	  Changes since v2:
+	  - Set bits=16 in DPTH10_10_10_HI
+	  Changes since v1:
+	  - Fixed x-offset calculation in uv.
+	  - Added 6-bit shifts to FormatInfo.
+
+2016-03-29 10:15:07 +0300  Sebastian Dröge <sebastian@centricular.com>
+
+	* gst-libs/gst/audio/audio-resampler-x86.h:
+	  resampler: Use _mm_set_epi64x(0, x) instead of _mm_cvtsi64_si128(x)
+	  The latter is only available on x86-64 for some reason.
+
+2016-03-29 08:21:54 +0200  Edward Hervey <bilboed@bilboed.com>
+
+	* gst-libs/gst/audio/Makefile.am:
+	  audio: Fix distcheck
+	  Don't forget to dist the needed files (which don't need to be installed)
+
+2016-03-28 15:37:36 +0200  Wim Taymans <wtaymans@redhat.com>
+
+	* gst-libs/gst/audio/audio-resampler.c:
+	  audio-resampler: estimate memory usage in auto mode
+	  Estimate the memory usage and use this to decide between full or
+	  interpolated filter.
+
+2016-03-28 12:51:26 +0200  Wim Taymans <wtaymans@redhat.com>
+
+	* gst/audioresample/Makefile.am:
+	* gst/audioresample/README:
+	* gst/audioresample/gstaudioresample.c:
+	  audioresample: remove last ORC remains
+
+2016-03-16 12:55:56 +0100  Wim Taymans <wtaymans@redhat.com>
+
+	* gst-libs/gst/audio/audio-resampler-x86.h:
+	* gst-libs/gst/audio/audio-resampler.c:
+	  audio-resampler: small optimizations
+
+2016-03-04 17:15:44 +0100  Wim Taymans <wtaymans@redhat.com>
+
+	* gst-libs/gst/audio/audio-converter.c:
+	* gst-libs/gst/audio/audio-resampler.c:
+	* gst-libs/gst/audio/audio-resampler.h:
+	  audio-resampler: improve non-interleaved flags
+	  Make it possible to have different interleaving on input and output
+	  because we can quite trivially do that.
+
+2016-03-02 11:40:15 +0100  Wim Taymans <wtaymans@redhat.com>
+
+	* gst-libs/gst/audio/audio-resampler-x86.h:
+	* gst-libs/gst/audio/audio-resampler.c:
+	  audio-resampler: unroll some more loops
+	  Unroll some loops.
+
+2016-03-01 16:31:18 +0100  Wim Taymans <wtaymans@redhat.com>
+
+	* gst-libs/gst/audio/audio-resampler-x86.h:
+	  audio-resampler: keep precision
+	  Transpose and add before applying the cubic interpolation to avoid
+	  overflows when using full precision.
+
+2016-03-01 16:26:15 +0100  Wim Taymans <wtaymans@redhat.com>
+
+	* gst-libs/gst/audio/audio-resampler.c:
+	  audio-resampler: small cleanups
+
+2016-02-25 15:38:46 +0100  Wim Taymans <wtaymans@redhat.com>
+
+	* gst-libs/gst/audio/audio-resampler.c:
+	  audio-resampler: optimize no resampling
+	  Switch to the faster nearest resample method when are doing no rate
+	  conversion.
+
+2016-02-25 14:09:44 +0100  Wim Taymans <wtaymans@redhat.com>
+
+	* gst-libs/gst/audio/audio-converter.c:
+	* gst-libs/gst/audio/audio-resampler.c:
+	* gst-libs/gst/audio/audio-resampler.h:
+	  audio-resampler: add VARIABLE_RATE flag
+	  Add a VARIABLE rate flag that selects an interpolating filter.
+	  Move some function setup code in the _new function.
+
+2016-02-23 04:46:55 -0500  Wim Taymans <wtaymans@redhat.com>
+
+	* gst-libs/gst/audio/audio-resampler-neon.h:
+	  audio-resampler: more neon optimizations
+
+2016-02-24 12:57:26 +0100  Wim Taymans <wtaymans@redhat.com>
+
+	* gst-libs/gst/audio/audio-resampler-x86.h:
+	  audio-resampler: avoid overflow in cubic interpolation
+	  Shift out an extra bit to have some more headroom when doing cubic
+	  interpolation.
+
+2016-02-24 12:56:39 +0100  Wim Taymans <wtaymans@redhat.com>
+
+	* gst-libs/gst/audio/audio-resampler.c:
+	  audio-resampler: overread only 8 taps
+	  We only need 8 taps of zeroes as headroom for the SIMD optimized
+	  functions.
+
+2016-02-24 12:55:28 +0100  Wim Taymans <wtaymans@redhat.com>
+
+	* gst-libs/gst/audio/audio-converter.c:
+	  audio-converter: use helper to check intermediate format
+
+2016-02-23 15:37:37 +0100  Wim Taymans <wtaymans@redhat.com>
+
+	* gst-libs/gst/audio/audio-resampler.c:
+	  audio-resampler: fix phase
+
+2016-02-22 11:16:28 -0500  Wim Taymans <wtaymans@redhat.com>
+
+	* gst-libs/gst/audio/audio-resampler-neon.h:
+	  audio-resampler: fix neon assembler
+
+2016-02-22 13:19:02 +0100  Wim Taymans <wtaymans@redhat.com>
+
+	* gst-libs/gst/audio/audio-resampler-x86.h:
+	* gst-libs/gst/audio/audio-resampler.c:
+	  audio-resampler: avoid some format conversion
+	  Store the filter in the desired sample format so that we can simply do a
+	  linear or cubic interpolation to get the new filter instead of having to
+	  go through gdouble and then convert.
+
+2016-02-22 03:28:21 -0500  Wim Taymans <wtaymans@redhat.com>
+
+	* gst-libs/gst/audio/audio-resampler-neon.h:
+	  audio-resampler: fix neon linear float interpolation
+
+2016-02-19 16:39:43 +0100  Wim Taymans <wtaymans@redhat.com>
+
+	* gst-libs/gst/audio/audio-resampler-neon.h:
+	* gst-libs/gst/audio/audio-resampler-x86.h:
+	* gst-libs/gst/audio/audio-resampler.c:
+	  audio-resampler: reorder filter coefficients for more speed
+	  Reorder the filter coefficients to make it easier to use SIMD for
+	  interpolation.
+	  Fix orc flags a little.
+	  Add specialized nearest resampling function.
+
+2016-02-19 10:40:03 +0100  Wim Taymans <wtaymans@redhat.com>
+
+	* gst-libs/gst/audio/audio-resampler-neon.h:
+	* gst-libs/gst/audio/audio-resampler-x86.h:
+	* gst-libs/gst/audio/audio-resampler.c:
+	  audio-resampler: remove stereo optimizations
+	  The stereo optimizations don't give enough benefit.
+	  Rename none to full to make it clear that we use a full filter instead
+	  of an interpolated one
+
+2016-02-18 12:48:45 -0500  Wim Taymans <wtaymans@redhat.com>
+
+	* gst-libs/gst/audio/audio-resampler-neon.h:
+	  audio-resample: remove neon double stubs
+	  NEON does not have double types.
+
+2016-02-18 12:38:49 -0500  Wim Taymans <wtaymans@redhat.com>
+
+	* gst-libs/gst/audio/audio-resampler-neon.h:
+	  audio-resampler: add more neon optimizations
+
+2016-02-18 11:05:18 -0500  Wim Taymans <wtaymans@redhat.com>
+
+	* gst-libs/gst/audio/audio-resampler-neon.h:
+	  audio-resampler: add more neon optimizations
+
+2016-02-17 11:20:06 -0500  Wim Taymans <wtaymans@redhat.com>
+
+	* gst-libs/gst/audio/audio-resampler-neon.h:
+	* gst-libs/gst/audio/audio-resampler-x86.h:
+	* gst-libs/gst/audio/audio-resampler.c:
+	  audio-resampler: add neon optimizations
+	  Unroll some more loops in the fallback code that seems to work fine
+	  for ARM.
+	  Add some simple ARM optimizations taken from speex.
+
+2016-02-17 13:12:31 +0100  Wim Taymans <wtaymans@redhat.com>
+
+	* gst-libs/gst/audio/audio-resampler.c:
+	  audio-resampler: give better hints about the precision
+	  Give better hints to the compiler about the precision we expect from
+	  the multiplications.
+
+2016-02-17 12:05:58 +0100  Wim Taymans <wtaymans@redhat.com>
+
+	* gst-libs/gst/audio/audio-resampler.c:
+	  audio-resample: small optimizations
+	  Remove some inline functions that are called in the slow path.
+	  Unroll C fallback functions a little.
+
+2016-02-16 09:18:13 +0100  Wim Taymans <wtaymans@redhat.com>
+
+	* gst-libs/gst/audio/audio-resampler.c:
+	  audio-resampler: Use n_phases when calculating taps offset
+	  Tweak linear interpolation oversampling.
+	  Clear filter cache on rate changes when using a full filter.
+
+2016-02-15 18:06:19 +0100  Wim Taymans <wtaymans@redhat.com>
+
+	* gst-libs/gst/audio/audio-converter.c:
+	* gst-libs/gst/audio/audio-resampler-x86.h:
+	* gst-libs/gst/audio/audio-resampler.c:
+	* gst/audioresample/gstaudioresample.c:
+	* gst/audioresample/gstaudioresample.h:
+	  audio-resampler: improve filter construction
+	  Remove some unused variables from the inner product functions.
+	  Make filter coefficients by interpolating if required.
+	  Rename some fields.
+	  Try hard to not recalculate filters when just chaging the rate.
+	  Add more proprties to audioresample.
+
+2016-02-12 10:00:22 +0100  Wim Taymans <wtaymans@redhat.com>
+
+	* gst-libs/gst/audio/audio-resampler.c:
+	  audio-resampler: avoid overflow in fraction calculation
+
+2016-02-11 19:42:31 +0100  Wim Taymans <wtaymans@redhat.com>
+
+	* gst-libs/gst/audio/audio-resampler.c:
+	  audio-resampler: increase precision
+
+2016-02-11 17:40:56 +0100  Wim Taymans <wtaymans@redhat.com>
+
+	* gst-libs/gst/audio/audio-resampler-x86.h:
+	  audio-resampler: add more optimizations
+
+2016-02-11 13:23:07 +0100  Wim Taymans <wtaymans@redhat.com>
+
+	* gst-libs/gst/audio/audio-resampler-x86.h:
+	* gst-libs/gst/audio/audio-resampler.c:
+	  audio-resample: fix taps conversion
+	  We do taps conversion in place so make sure we don't overwrite the
+	  input with temporary data.
+	  Optimize some more gint16 functions.
+
+2016-02-11 11:57:26 +0100  Wim Taymans <wtaymans@redhat.com>
+
+	* gst-libs/gst/audio/audio-resampler-x86.h:
+	* gst-libs/gst/audio/audio-resampler.c:
+	  audio-resampler: Improve taps memory layout
+	  Rearrange the oversampled taps in memory to make it easier to use
+	  SIMD instructions on them. this simplifies some sse code.
+	  Add some more optimizations
+
+2016-02-10 17:28:24 +0100  Wim Taymans <wtaymans@redhat.com>
+
+	* gst-libs/gst/audio/audio-resampler-x86.h:
+	* gst-libs/gst/audio/audio-resampler.c:
+	  audio-resampler: add cubic interpolation
+
+2016-02-10 13:31:11 +0100  Wim Taymans <wtaymans@redhat.com>
+
+	* gst-libs/gst/audio/audio-resampler-x86.h:
+	* gst-libs/gst/audio/audio-resampler.c:
+	* win32/common/libgstaudio.def:
+	  audio-resampler: add more functions
+	  Use some macros to generate more functions
+
+2016-02-10 12:04:12 +0100  Wim Taymans <wtaymans@redhat.com>
+
+	* gst-libs/gst/audio/audio-resampler-x86.h:
+	* gst-libs/gst/audio/audio-resampler.c:
+	* gst-libs/gst/audio/audio-resampler.h:
+	  audio-resampler: add linear interpolation method
+	  Make more functions into macros.
+	  Add linear interpolation of filter coefficients.
+
+2016-02-04 15:22:39 +0100  Wim Taymans <wtaymans@redhat.com>
+
+	* tests/icles/Makefile.am:
+	* tests/icles/test-resample.c:
+	  tests: add resample test
+
+2016-02-04 15:21:40 +0100  Wim Taymans <wtaymans@redhat.com>
+
+	* gst-libs/gst/audio/audio-resampler.c:
+	* gst-libs/gst/audio/audio-resampler.h:
+	  audio-resampler: add max-phase-error config
+
+2016-02-04 15:19:53 +0100  Wim Taymans <wtaymans@redhat.com>
+
+	* gst-libs/gst/audio/audio-resampler.c:
+	  audio-resampler: improve tap calculation
+	  Return the taps from make_taps, this makes it possible to not actually
+	  have to cache the taps when we want to.
+	  Fix overflow in phase calculation.
+
+2016-02-02 12:06:44 +0100  Wim Taymans <wtaymans@redhat.com>
+
+	* gst-libs/gst/audio/audio-resampler.c:
+	* gst-libs/gst/audio/audio-resampler.h:
+	  audio-resampler: fix guint -> gint
+
+2016-02-02 11:48:16 +0100  Wim Taymans <wtaymans@redhat.com>
+
+	* gst-libs/gst/audio/audio-resampler.c:
+	  audio-resampler: improve phase error
+	  Accept a phase error of maximum 10%, which turns out to be inaudible.
+
+2016-02-01 17:18:32 +0100  Wim Taymans <wtaymans@redhat.com>
+
+	* gst-libs/gst/audio/audio-resampler.c:
+	  audio-resampler: improve phase calculation
+	  Also calculate the GCD with the current phase so that we can accurately
+	  represent the current phase with the new resample rates.
+
+2016-01-26 22:53:33 +0100  Wim Taymans <wtaymans@redhat.com>
+
+	* gst-libs/gst/audio/audio-resampler.c:
+	  audio-resampler: fix history after buffer resize
+	  When we resize the temp buffer, move the history in its new place.
+
+2016-01-26 16:42:16 +0100  Wim Taymans <wtaymans@redhat.com>
+
+	* gst-libs/gst/audio/audio-converter.c:
+	* gst-libs/gst/audio/audio-resampler.c:
+	* gst-libs/gst/audio/audio-resampler.h:
+	* gst/audioresample/gstaudioresample.c:
+	* win32/common/libgstaudio.def:
+	  audio-resampler: add reset function
+	  Add a function to reset the audio-resampler.
+	  Use new function in audio-converter
+	  Use the new functions in gstaudioresample and fixup drain functions.
+
+2016-01-26 16:40:57 +0100  Wim Taymans <wtaymans@redhat.com>
+
+	* gst-libs/gst/audio/audio-resampler.c:
+	  audio-resampler: Small fixes
+	  Fix the phase.
+	  Reset the new sample buffer with 0.
+	  Move samples around when we change the filter size.
+
+2016-01-26 16:38:50 +0100  Wim Taymans <wtaymans@redhat.com>
+
+	* gst-libs/gst/audio/audio-resampler.c:
+	  audio-resampler: Rework make_taps
+	  Make it return a pointer to the generated taps. That way we can later
+	  decide to actually cache it or not.
+
+2016-01-26 09:57:03 +0100  Wim Taymans <wtaymans@redhat.com>
+
+	* gst-libs/gst/audio/audio-resampler.c:
+	* gst/audioresample/gstaudioresample.c:
+	  audio-resampler: handle filter length changes
+	  Update the buffer with history samples when the filter length changes
+	  because of an update of the parameters or sample rates.
+
+2016-01-22 17:34:39 +0100  Wim Taymans <wtaymans@redhat.com>
+
+	* gst-libs/gst/audio/audio-resampler.c:
+	  audio-resampler: fix samples_avail
+	  We only know the taps after we calculate them.
+
+2016-01-22 16:45:28 +0100  Wim Taymans <wtaymans@redhat.com>
+
+	* gst-libs/gst/audio/audio-resampler.c:
+	  audio-resampler: work on dynamically changing the samplerate
+	  Calculate the new phase for the new sample rate.
+	  Fix some docs.
+
+2016-01-22 10:28:13 +0100  Wim Taymans <wtaymans@redhat.com>
+
+	* gst-libs/gst/audio/audio-converter.c:
+	* gst-libs/gst/audio/audio-resampler.c:
+	  audio-resampler: small cleanups
+
+2016-01-21 10:38:17 +0100  Wim Taymans <wtaymans@redhat.com>
+
+	* gst-libs/gst/audio/audio-resampler.c:
+	  audio-resampler: add fallback to mono function
+	  Remove stereo implementations. Implement fall back to mono functions
+	  when the stereo function is missing.
+
+2016-01-18 12:52:41 +0100  Wim Taymans <wtaymans@redhat.com>
+
+	* gst-libs/gst/audio/audio-resampler-x86.h:
+	* gst-libs/gst/audio/audio-resampler.c:
+	  audio-resampler: add float stereo SSE function
+
+2016-01-15 12:45:47 +0100  Wim Taymans <wtaymans@redhat.com>
+
+	* configure.ac:
+	* gst-libs/gst/audio/audio-resampler-x86.h:
+	  audio-resampler: Fix compilation of intrinsics
+	  Only compile intrinsics when we are building for the selected
+	  architecture.
+	  Add sse4.1 optimized int32 resampler code.
+
+2016-01-15 11:43:13 +0100  Wim Taymans <wtaymans@redhat.com>
+
+	* gst-libs/gst/audio/audio-converter.c:
+	  audioconvert: only resample on supported formats
+
+2016-01-15 11:20:29 +0100  Wim Taymans <wtaymans@redhat.com>
+
+	* gst-libs/gst/audio/audio-converter.c:
+	* gst-libs/gst/audio/audio-resampler.c:
+	* gst/audioresample/gstaudioresample.c:
+	  audio-converter: make some optimized functions
+	  Make an optimized function that just calls the resampler when possible.
+	  Optimize the resampler transform_size function a little.
+
+2016-01-15 10:26:02 +0100  Wim Taymans <wtaymans@redhat.com>
+
+	* gst-libs/gst/audio/audio-resampler.c:
+	  audio-resampler: remove mirror function
+	  We don't need to mirror the input, just assume 0 samples.
+	  Always move the processed samples to the start of the buffer.
+	  Add some G_LIKELY
+
+2016-01-13 17:50:38 +0100  Wim Taymans <wtaymans@redhat.com>
+
+	* gst-libs/gst/audio/audio-resampler-x86.h:
+	  audio-resampler: also enable sse when sse2 is available
+
+2016-01-13 17:44:39 +0100  Wim Taymans <wtaymans@redhat.com>
+
+	* gst-libs/gst/audio/audio-resampler-x86.h:
+	* gst-libs/gst/audio/audio-resampler.c:
+	  audio-resampler: optimizations
+	  Improve int16 resampling by using pmaddwd
+	  Use intrinsics to scale and pack int16 samples
+	  Align the coefficients so that we can use aligned loads
+	  Add padding to taps and samples so that we don't have to use partial
+	  loads for the remainder of the loops.
+	  Remove copy_n, we can reuse the plain copy function with some new
+	  parameters.
+	  Align and pad the sample array.
+
+2016-01-12 18:55:19 +0100  Wim Taymans <wtaymans@redhat.com>
+
+	* gst-libs/gst/audio/audio-resampler-core.h:
+	* gst-libs/gst/audio/audio-resampler-x86.h:
+	* gst-libs/gst/audio/audio-resampler.c:
+	  audio-resampler: make pluggable optimized functions
+	  Add support for x86 specialized functions and select them at runtime.
+
+2016-01-12 10:23:53 +0100  Wim Taymans <wtaymans@redhat.com>
+
+	* gst-libs/gst/audio/audio-resampler-core.h:
+	* gst-libs/gst/audio/audio-resampler.c:
+	  audio-resampler: combine functions
+
+2016-01-11 16:25:02 +0100  Wim Taymans <wtaymans@redhat.com>
+
+	* win32/common/libgstaudio.def:
+	  defs: update
+
+2016-01-05 16:06:22 +0100  Wim Taymans <wtaymans@redhat.com>
+
+	* gst-libs/gst/audio/audio-converter.c:
+	* gst-libs/gst/audio/audio-converter.h:
+	* gst-libs/gst/audio/audio-resampler.c:
+	* gst-libs/gst/audio/audio-resampler.h:
+	* gst/audioresample/gstaudioresample.c:
+	  audio-converter: simplify API
+	  Remove the consumed/produced output fields from the resampler and
+	  converter. Let the caler specify the right number of input/output
+	  samples so we can be more optimal.
+	  Use just one function to update the converter configuration.
+	  Simplify some things internally.
+	  Make it possible to use writable input as temp space in audioconvert.
+
+2016-01-04 18:28:38 +0100  Wim Taymans <wtaymans@redhat.com>
+
+	* gst-libs/gst/audio/audio-converter.c:
+	* gst-libs/gst/audio/audio-converter.h:
+	* gst-libs/gst/audio/audio-resampler.c:
+	* gst-libs/gst/audio/audio-resampler.h:
+	* gst/audioresample/gstaudioresample.c:
+	* gst/audioresample/gstaudioresample.h:
+	  audio-converter: more work on resampling
+	  - Fix the resampler in the audio converter
+	  - fix memory leaks
+
+2015-11-13 15:32:29 +0100  Wim Taymans <wtaymans@redhat.com>
+
+	* gst-libs/gst/audio/Makefile.am:
+	* gst-libs/gst/audio/audio-converter.c:
+	* gst-libs/gst/audio/audio-converter.h:
+	* gst-libs/gst/audio/audio-resampler-core.h:
+	* gst-libs/gst/audio/audio-resampler.c:
+	* gst-libs/gst/audio/audio-resampler.h:
+	* gst-libs/gst/audio/audio.h:
+	* gst-libs/gst/audio/dbesi0.c:
+	* gst/audioresample/Makefile.am:
+	* gst/audioresample/arch.h:
+	* gst/audioresample/fixed_arm4.h:
+	* gst/audioresample/fixed_arm5e.h:
+	* gst/audioresample/fixed_bfin.h:
+	* gst/audioresample/fixed_debug.h:
+	* gst/audioresample/fixed_generic.h:
+	* gst/audioresample/gstaudioresample.c:
+	* gst/audioresample/gstaudioresample.h:
+	* gst/audioresample/resample.c:
+	* gst/audioresample/resample_neon.h:
+	* gst/audioresample/resample_sse.h:
+	* gst/audioresample/speex_resampler.h:
+	* gst/audioresample/speex_resampler_double.c:
+	* gst/audioresample/speex_resampler_float.c:
+	* gst/audioresample/speex_resampler_int.c:
+	* gst/audioresample/speex_resampler_wrapper.h:
+	  audio-converter: add resampler
+	  Add a resampler to the processing chain when needed.
+	  port the audio resampler to the new audioconverter library
+
+2016-03-25 01:13:54 +1100  Jan Schmidt <jan@centricular.com>
+
+	* win32/common/libgstpbutils.def:
+	* win32/common/libgstrtp.def:
+	  win32: update win32 exports for new API
+
+2016-03-07 23:29:43 +1100  Jan Schmidt <jan@centricular.com>
+
+	* gst/subparse/gstsubparse.c:
+	* gst/subparse/gstsubparse.h:
+	* tests/check/elements/subparse.c:
+	  subparse: WebVTT parsing support
+	  WebVTT is a new subtitle format for HTML5 video. In this first
+	  version of the parser the cue settings are parsed but only stored in
+	  the internal parser state structure. Later on these settings could be
+	  part of the GstBuffer metadata.
+	  https://bugzilla.gnome.org/show_bug.cgi?id=629764
+
+2016-02-26 02:58:26 +1100  Jan Schmidt <jan@centricular.com>
+
+	* gst/typefind/gsttypefindfunctions.c:
+	  typefind: Add a typefinder for WebVTT files
+
+2016-02-26 02:56:15 +1100  Jan Schmidt <jan@centricular.com>
+
+	* gst/typefind/gsttypefindfunctions.c:
+	  typefind: Reduce URI typefinder from MAX to LIKELY
+	  Don't claim maximum likelihood for anything that starts
+	  with text that looks like a uri, it's too broad.
+
 2016-03-24 14:59:48 +1100  Jan Schmidt <jan@centricular.com>
 
 	* gst/playback/gstdecodebin2.c:
@@ -318,12 +1869,124 @@
 	  in multiqueue.
 	  https://bugzilla.gnome.org/show_bug.cgi?id=764020
 
-2016-02-26 02:56:15 +1100  Jan Schmidt <jan@centricular.com>
+2016-03-08 19:22:18 +0000  Tim-Philipp Müller <tim@centricular.com>
 
-	* gst/typefind/gsttypefindfunctions.c:
-	  typefind: Reduce URI typefinder from MAX to LIKELY
-	  Don't claim maximum likelihood for anything that starts
-	  with text that looks like a uri, it's too broad.
+	* gst-libs/gst/audio/gstaudiodecoder.c:
+	  audiodecoder: avoid unnecessary gst_pad_has_current_caps() checks
+	  No need to do this for each input buffer, we have the input caps
+	  stored somewhere already.
+	  https://bugzilla.gnome.org/show_bug.cgi?id=763337
+
+2016-03-22 11:25:49 +0900  Jimmy Ohn <yongjin.ohn@lge.com>
+
+	* docs/libs/gst-plugins-base-libs-sections.txt:
+	* gst-libs/gst/pbutils/codec-utils.c:
+	* gst-libs/gst/pbutils/codec-utils.h:
+	* win32/common/libgstpbutils.def:
+	  codec-utils: Add utilities for AAC and the AACHead header
+	  Add utilities about the channels and sample rate for AAC.
+	  https://bugzilla.gnome.org/show_bug.cgi?id=749110
+
+2016-03-21 16:06:20 +0900  Jimmy Ohn <yongjin.ohn@lge.com>
+
+	* gst/playback/gstdecodebin2.c:
+	  decodebin: Modify result of seekable in check_upstream_seekable function
+	  In check_upstream_seekable function, it returns FALSE value even though
+	  we already declare about the seekable variable. So, This patch return
+	  result of seekable in check_upstream_seekable function.
+	  https://bugzilla.gnome.org/show_bug.cgi?id=763975
+
+2016-03-03 16:46:24 +0900  Vineeth TM <vineeth.tm@samsung.com>
+
+	* ext/alsa/gstalsamidisrc.c:
+	* ext/alsa/gstalsasink.c:
+	* ext/alsa/gstalsasrc.c:
+	* ext/libvisual/visual.c:
+	* ext/ogg/gstoggaviparse.c:
+	* ext/ogg/gstoggdemux.c:
+	* ext/ogg/gstoggmux.c:
+	* ext/ogg/gstoggparse.c:
+	* ext/ogg/gstogmparse.c:
+	* ext/opus/gstopusdec.c:
+	* ext/opus/gstopusenc.c:
+	* ext/pango/gstbasetextoverlay.c:
+	* ext/pango/gsttextoverlay.c:
+	* ext/pango/gsttextrender.c:
+	* ext/theora/gsttheoradec.c:
+	* ext/theora/gsttheoraenc.c:
+	* ext/theora/gsttheoraparse.c:
+	* ext/vorbis/gstvorbisdec.c:
+	* ext/vorbis/gstvorbisenc.c:
+	* ext/vorbis/gstvorbisparse.c:
+	* gst-libs/gst/app/gstappsink.c:
+	* gst-libs/gst/app/gstappsrc.c:
+	* gst-libs/gst/audio/gstaudiocdsrc.c:
+	* gst-libs/gst/tag/gsttagdemux.c:
+	* gst/adder/gstadder.c:
+	* gst/audioconvert/gstaudioconvert.c:
+	* gst/audiorate/gstaudiorate.c:
+	* gst/audioresample/gstaudioresample.c:
+	* gst/audiotestsrc/gstaudiotestsrc.c:
+	* gst/encoding/gstencodebin.c:
+	* gst/encoding/gstsmartencoder.c:
+	* gst/encoding/gststreamcombiner.c:
+	* gst/encoding/gststreamsplitter.c:
+	* gst/gio/gstgiobasesink.c:
+	* gst/gio/gstgiobasesrc.c:
+	* gst/playback/gstdecodebin2.c:
+	* gst/playback/gstplaysink.c:
+	* gst/playback/gstplaysinkconvertbin.c:
+	* gst/playback/gststreamsynchronizer.c:
+	* gst/playback/gstsubtitleoverlay.c:
+	* gst/playback/gsturidecodebin.c:
+	* gst/subparse/gstssaparse.c:
+	* gst/subparse/gstsubparse.c:
+	* gst/tcp/gstmultihandlesink.c:
+	* gst/tcp/gstsocketsrc.c:
+	* gst/tcp/gsttcpclientsink.c:
+	* gst/tcp/gsttcpclientsrc.c:
+	* gst/tcp/gsttcpserversrc.c:
+	* gst/videoconvert/gstvideoconvert.c:
+	* gst/videorate/gstvideorate.c:
+	* gst/videotestsrc/gstvideotestsrc.c:
+	* sys/ximage/ximagesink.c:
+	* sys/xvimage/xvimagesink.c:
+	* tests/check/elements/audiorate.c:
+	* tests/check/elements/decodebin.c:
+	* tests/check/elements/playbin-complex.c:
+	* tests/check/elements/playbin.c:
+	* tests/check/elements/videoscale.c:
+	* tests/check/libs/audiodecoder.c:
+	* tests/check/libs/audioencoder.c:
+	* tests/check/libs/baseaudiovisualizer.c:
+	* tests/check/libs/rtpbasedepayload.c:
+	* tests/check/libs/rtpbasepayload.c:
+	* tests/check/libs/videodecoder.c:
+	* tests/check/libs/videoencoder.c:
+	  base: use new gst_element_class_add_static_pad_template()
+	  https://bugzilla.gnome.org/show_bug.cgi?id=763075
+
+2015-10-06 17:02:03 +0200  Stian Selnes <stian@pexip.com>
+
+	* gst-libs/gst/rtp/gstrtcpbuffer.c:
+	* gst-libs/gst/rtp/gstrtcpbuffer.h:
+	* tests/check/libs/rtp.c:
+	  rtcpbuffer: Add API for APP packets
+	  https://bugzilla.gnome.org/show_bug.cgi?id=761944
+
+2014-07-29 15:37:12 +0200  Haakon Sporsheim <haakon@pexip.com>
+
+	* gst-libs/gst/rtp/gstrtcpbuffer.c:
+	* gst-libs/gst/rtp/gstrtcpbuffer.h:
+	* tests/check/libs/rtp.c:
+	* win32/common/libgstrtp.def:
+	  rtcpbuffer: Add profile-specific extension API.
+	  https://bugzilla.gnome.org/show_bug.cgi?id=761950
+
+2016-03-24 13:32:52 +0200  Sebastian Dröge <sebastian@centricular.com>
+
+	* configure.ac:
+	  Back to development
 
 === release 1.8.0 ===
 
diff --git a/Makefile.am b/Makefile.am
index 5fc3e10..fc34e1d 100644
--- a/Makefile.am
+++ b/Makefile.am
@@ -81,6 +81,8 @@
 	$(top_builddir)/common/shave \
 	$(top_builddir)/common/shave-libtool \
 	$(top_builddir)/gst-libs/gst/audio/testchannels \
+        $(top_builddir)/gst-libs/gst/app/gstapp-marshal.c \
+        $(top_builddir)/gst-libs/gst/app/gstapp-marshal.h \
 	$(top_builddir)/tests/check/elements/gdppay \
 	$(top_builddir)/tests/check/elements/gdpdepay \
 	$(top_builddir)/tests/check/pipelines/streamheader \
diff --git a/Makefile.in b/Makefile.in
index d1e8f1f..a7d6757 100644
--- a/Makefile.in
+++ b/Makefile.in
@@ -597,6 +597,8 @@
 	$(top_builddir)/common/shave \
 	$(top_builddir)/common/shave-libtool \
 	$(top_builddir)/gst-libs/gst/audio/testchannels \
+        $(top_builddir)/gst-libs/gst/app/gstapp-marshal.c \
+        $(top_builddir)/gst-libs/gst/app/gstapp-marshal.h \
 	$(top_builddir)/tests/check/elements/gdppay \
 	$(top_builddir)/tests/check/elements/gdpdepay \
 	$(top_builddir)/tests/check/pipelines/streamheader \
diff --git a/NEWS b/NEWS
index f67d1f3..4c3baab 100644
--- a/NEWS
+++ b/NEWS
@@ -1,26 +1 @@
-### 1.8.2
-
-The first 1.8 bug-fix release (1.8.2) was released on 9 June 2016.
-This release only contains bugfixes and it should be safe to update from 1.8.0.
-
-#### Major bugfixes in 1.8.2
-
- - Fix vp8enc and flacenc segmentation faults on Windows
- - Fix Android build failure due to BSD sed on OS X
- - Fix Android build failure with applications targetting API > 20
- - Fix playback of live MS SmoothStreaming streams
- - Fix various issues with vtdec and caopengllayersink on OS X
- - Fix severe performance degradation in various image decoders
- - Fix sample rate negotiation in opusdec
- - Fix regression in typefind, causing deadlocks in some situations
- - Fix mpegtsmux to set PTS on all output buffers again
- - Fix extraction of frame dimensions from SDP in RTP JPEG depayloader
- - Fix failure in v4l2videodec when setting of format fails after starting
- - ... and many, many more!
-
-For a full list of bugfixes see [Bugzilla][buglist-1.8.2]. Note that this is
-not the full list of changes. For the full list of changes please refer to the
-GIT logs or ChangeLogs of the particular modules.
-
-[buglist-1.8.2]: https://bugzilla.gnome.org/buglist.cgi?bug_status=RESOLVED&bug_status=VERIFIED&classification=Platform&limit=0&list_id=130196&order=bug_id&product=GStreamer&query_format=advanced&resolution=FIXED&target_milestone=1.8.2
-
+This is GStreamer 1.9.1
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 2612b60..06ff335 100644
--- a/RELEASE
+++ b/RELEASE
@@ -1,16 +1,17 @@
 
-Release notes for GStreamer Base Plugins 1.8.2
+Release notes for GStreamer Base Plugins 1.9.1
 
-The GStreamer team is proud to announce the second bugfix release in the stable
-1.8 release series of your favourite cross-platform multimedia framework!
+The GStreamer team is pleased to announce the first release of the unstable
+1.9 release series. The 1.9 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. The unstable 1.9 release series
+will lead to the stable 1.10 release series in the next weeks. Any newly added
+API can still change until that point.
 
 
-This release only contains bugfixes and it is safe to update from 1.8.1. For a
-full list of bugfixes see Bugzilla.
+Binaries for Android, iOS, Mac OS X and Windows will be provided in the next days.
 
 
-See /releases/1.8/ for the full release notes.
-
 
 This module contains a set of reference plugins, base classes for other
 plugins, and helper libraries. It also includes essential elements such
@@ -58,17 +59,47 @@
 
 Bugs fixed in this release
      
-      * 765534 : encoding-profile: Remove codec_data and streamheader fields from constraint caps
-      * 765538 : codec-utils: Don't put level=0 into the caps
-      * 765541 : smartencoder: Only accept TIME segments for real
-      * 765684 : opusdec: Won't negotiate sampling rate anymore
-      * 765706 : opusdec: caps leak in gst_opus_dec_negotiate()
-      * 765708 : encoding-profile: Make creation of encoding profile from discoverer info more robust
-      * 766204 : sdp: rtpjpegdepay regression: Does not extract frame dimensions from SDP anymore
-      * 766265 : opusdec with FEC breaks when packet sizes change
-      * 766510 : videosink: test_video_center_rect raise a warning when turning on debug
-      * 766515 : playbin: fix suburidecodebin leak
-      * 767163 : video-color: Fix colorimetry IS_UNKNOWN
+      * 578933 : Need generic " deep-element-added " signal and/or playbin " element-setup " signal
+      * 629764 : subparse: Add WebVTT support
+      * 747574 : videodecoder: reverse playback in non-packetized decoders
+      * 753930 : tag:  add GST_TAG_CAPTURING_FOCAL_LENGTH_35_MM and handle it in exiftag
+      * 761944 : rtcpbuffer: Add API for APP packets
+      * 761950 : rtcpbuffer: Add profile-specific extension API.
+      * 763058 : opusdec: add unit test for PLC timestamp when FEC is enabled
+      * 763075 : base plugins: use new gst_element_class_add_static_pad_template()
+      * 763630 : appsrc: If do-timestamp=true should take the timestamp when queueing the buffer
+      * 763799 : alsasrc: should not always assume that 8 channels implies 7.1 setup
+      * 763975 : decodebin: Modify result of seekable in check_upstream_seekable function
+      * 763985 : audio: add some debug output about channels mapping
+      * 764201 : video: Provide fast path for I420 to BGRA (and/or RGBA) conversion and back
+      * 764319 : videorate : avoid useless buffer copy un drop-only mode
+      * 764459 : GstRTPBasedepayload fail to detect new stream after SSRC change
+      * 764631 : GstAudioDecoder produce invalid timestamps when PLC and delay
+      * 764667 : videoaffinetransformationmeta: doesn't define the coordinate space
+      * 764902 : Explicitly initialize GstVideoCropMeta fields to 0 on init.
+      * 764948 : decodebin: use-buffering property ignored on non-muxed streams
+      * 764966 : oggdemux: Gaps when playing test sine wave VBR file
+      * 765042 : subparse: fix build error with GCC 4.6.3
+      * 765216 : gst-play: call gst_deinit()
+      * 765424 : ximagesink: generate reconfigure on window handle change
+      * 765663 : gst_audio_buffer_clip() needs const on segment
+      * 766226 : base: fix leaks in tests
+      * 766229 : appsrc: Add duration property for providing a duration in TIME format
+      * 766467 : oggdemux: Reset keyframe_granule when needed
+      * 766800 : videodecoder: Make sure the DISCONT flag is set on the outgoing buffer
+      * 767102 : decodebin: hits ASSERT with H264 byte-stream as input
+      * 767155 : base: use MAY_BE_LEAKED flag
+      * 767173 : tagdemux: preserve timestamp when skipping a tag at the  beginning of a buffer
+      * 767232 : videodecoder: Drain data in more situations
+      * 767505 : audiovisualizer: produces wrong timestamps with non-16 bit audio formats
+      * 767506 : audiovisualizer: still uses old GST_BUFFER_TIMESTAMP() macro switch it to GST_BUFFER_PTS()
+      * 767507 : audiovisualizer: Timestamp adjustment calculations wrong for > 1 channel
+      * 767537 : exiftag: Increase serialized geo coordinate precision
+      * 767641 : videodecoder: Missing drain vfunc GST_FIXME flood on Raspberry Pi
+      * 767791 : tagdemux: preserve duration when skipping a tag at the  beginning of a buffer
+      * 767826 : opusdec with plc enabled failing to decode audio
+      * 768361 : videodecoder: Takes stream lock for non-serialized queries
+      * 766203 : videoencoder/decoder: Wrong variable names used in GST_IS_*CODER_CLASS macros
 
 ==== Download ====
 
@@ -105,10 +136,43 @@
         
 Contributors to this release
     
+      * Aleix Conchillo Flaqué
+      * Alessandro Decina
+      * Arjen Veenhuizen
+      * Aurélien Zanelli
+      * Edward Hervey
+      * Fabrice Bellet
+      * Frédéric Bertolus
       * Guillaume Desmottes
+      * Haakon Sporsheim
       * Hyunjun Ko
+      * Jakub Adam
+      * Jan Schmidt
+      * Jimmy Ohn
+      * Joan Pau Beltran
+      * Josep Torra
+      * Julien Isorce
+      * Kipp Cannon
+      * Luis de Bethencourt
+      * Matthew Waters
+      * Michael Olbrich
+      * Mikhail Fludkov
+      * Nicolas Dufresne
+      * Nirbheek Chauhan
       * Olivier Crête
+      * Paulo Neves
+      * Philippe Normand
+      * Scott D Phillips
       * Sebastian Dröge
+      * Sreerenj Balachandran
       * Stian Selnes
       * Thiago Santos
+      * Thomas Jones
+      * Tim-Philipp Müller
+      * Vincent Penquerc'h
+      * Vineeth TM
+      * Vivia Nikolaidou
+      * Víctor Manuel Jáquez Leal
+      * Wim Taymans
+      * Zaheer Abbas Merali
  
\ No newline at end of file
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..4beebcf 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/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/config.h.in b/config.h.in
index d433b89..6d38831 100644
--- a/config.h.in
+++ b/config.h.in
@@ -248,6 +248,9 @@
 /* Define if RDTSC is available */
 #undef HAVE_RDTSC
 
+/* Define to 1 if you have the <smmintrin.h> header file. */
+#undef HAVE_SMMINTRIN_H
+
 /* Define to 1 if you have the <stdint.h> header file. */
 #undef HAVE_STDINT_H
 
diff --git a/configure b/configure
index bf26212..5fc42f9 100755
--- a/configure
+++ b/configure
@@ -1,6 +1,6 @@
 #! /bin/sh
 # Guess values for system-dependent variables and create Makefiles.
-# Generated by GNU Autoconf 2.69 for GStreamer Base Plug-ins 1.8.2.
+# Generated by GNU Autoconf 2.69 for GStreamer Base Plug-ins 1.9.1.
 #
 # Report bugs to <http://bugzilla.gnome.org/enter_bug.cgi?product=GStreamer>.
 #
@@ -591,8 +591,8 @@
 # Identity of this package.
 PACKAGE_NAME='GStreamer Base Plug-ins'
 PACKAGE_TARNAME='gst-plugins-base'
-PACKAGE_VERSION='1.8.2'
-PACKAGE_STRING='GStreamer Base Plug-ins 1.8.2'
+PACKAGE_VERSION='1.9.1'
+PACKAGE_STRING='GStreamer Base Plug-ins 1.9.1'
 PACKAGE_BUGREPORT='http://bugzilla.gnome.org/enter_bug.cgi?product=GStreamer'
 PACKAGE_URL=''
 
@@ -1789,7 +1789,7 @@
   # Omit some internal or obsolete options to make the list less imposing.
   # This message is too long to be a string in the A/UX 3.1 sh.
   cat <<_ACEOF
-\`configure' configures GStreamer Base Plug-ins 1.8.2 to adapt to many kinds of systems.
+\`configure' configures GStreamer Base Plug-ins 1.9.1 to adapt to many kinds of systems.
 
 Usage: $0 [OPTION]... [VAR=VALUE]...
 
@@ -1862,7 +1862,7 @@
 
 if test -n "$ac_init_help"; then
   case $ac_init_help in
-     short | recursive ) echo "Configuration of GStreamer Base Plug-ins 1.8.2:";;
+     short | recursive ) echo "Configuration of GStreamer Base Plug-ins 1.9.1:";;
    esac
   cat <<\_ACEOF
 
@@ -2157,7 +2157,7 @@
 test -n "$ac_init_help" && exit $ac_status
 if $ac_init_version; then
   cat <<\_ACEOF
-GStreamer Base Plug-ins configure 1.8.2
+GStreamer Base Plug-ins configure 1.9.1
 generated by GNU Autoconf 2.69
 
 Copyright (C) 2012 Free Software Foundation, Inc.
@@ -2930,7 +2930,7 @@
 This file contains any messages produced by compilers while
 running configure, to aid debugging if configure makes a mistake.
 
-It was created by GStreamer Base Plug-ins $as_me 1.8.2, which was
+It was created by GStreamer Base Plug-ins $as_me 1.9.1, which was
 generated by GNU Autoconf 2.69.  Invocation command line was
 
   $ $0 $@
@@ -3909,7 +3909,7 @@
 
 # Define the identity of the package.
  PACKAGE='gst-plugins-base'
- VERSION='1.8.2'
+ VERSION='1.9.1'
 
 
 cat >>confdefs.h <<_ACEOF
@@ -4120,9 +4120,9 @@
 
 
 
-  PACKAGE_VERSION_MAJOR=$(echo 1.8.2 | cut -d'.' -f1)
-  PACKAGE_VERSION_MINOR=$(echo 1.8.2 | cut -d'.' -f2)
-  PACKAGE_VERSION_MICRO=$(echo 1.8.2 | cut -d'.' -f3)
+  PACKAGE_VERSION_MAJOR=$(echo 1.9.1 | cut -d'.' -f1)
+  PACKAGE_VERSION_MINOR=$(echo 1.9.1 | cut -d'.' -f2)
+  PACKAGE_VERSION_MICRO=$(echo 1.9.1 | cut -d'.' -f3)
 
 
 
@@ -4133,7 +4133,7 @@
   { $as_echo "$as_me:${as_lineno-$LINENO}: checking nano version" >&5
 $as_echo_n "checking nano version... " >&6; }
 
-  NANO=$(echo 1.8.2 | cut -d'.' -f4)
+  NANO=$(echo 1.9.1 | cut -d'.' -f4)
 
   if test x"$NANO" = x || test "x$NANO" = "x0" ; then
     { $as_echo "$as_me:${as_lineno-$LINENO}: result: 0 (release)" >&5
@@ -8967,10 +8967,10 @@
 done
 
 
-  GST_CURRENT=802
+  GST_CURRENT=901
   GST_REVISION=0
-  GST_AGE=802
-  GST_LIBVERSION=802:0:802
+  GST_AGE=901
+  GST_LIBVERSION=901:0:901
 
 
 
@@ -13598,7 +13598,7 @@
 
 
 
-GST_REQ=1.8.0
+GST_REQ=1.9.1
 
 
 
@@ -23004,7 +23004,7 @@
 fi
 
 
-for ac_header in xmmintrin.h emmintrin.h
+for ac_header in xmmintrin.h emmintrin.h smmintrin.h
 do :
   as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh`
 ac_fn_c_check_header_mongrel "$LINENO" "$ac_header" "$as_ac_Header" "$ac_includes_default"
@@ -25830,6 +25830,10 @@
 fi
 
 
+if test x$enable_static = xyes -a x$enable_shared = xno; then
+  GST_STATIC_CFLAGS="-DGST_STATIC_COMPILATION"
+fi
+
 # set by AG_GST_PARSE_SUBSYSTEM_DISABLES above
 NO_WARNINGS=""
 
@@ -31140,7 +31144,7 @@
 GST_PLUGINS_BASE_CFLAGS="-I\$(top_srcdir)/gst-libs -I\$(top_builddir)/gst-libs"
 
 
-GST_CFLAGS="$GST_CFLAGS"
+GST_CFLAGS="$GST_CFLAGS $GST_STATIC_CFLAGS"
 GST_CXXFLAGS="$GLIB_CFLAGS $GST_CFLAGS \$(GLIB_EXTRA_CFLAGS) \$(GST_OPTION_CXXFLAGS)"
 GST_CFLAGS="$GLIB_CFLAGS $GST_CFLAGS \$(GLIB_EXTRA_CFLAGS) \$(GST_OPTION_CFLAGS)"
 
@@ -31163,7 +31167,7 @@
 
 $MKDIR_P tests/check/orc
 
-ac_config_files="$ac_config_files Makefile gst-plugins-base.spec gst/Makefile gst/adder/Makefile gst/app/Makefile gst/audioconvert/Makefile gst/audiorate/Makefile gst/audiotestsrc/Makefile gst/encoding/Makefile gst/videoconvert/Makefile gst/gio/Makefile gst/playback/Makefile gst/audioresample/Makefile gst/subparse/Makefile gst/tcp/Makefile gst/typefind/Makefile gst/videotestsrc/Makefile gst/videorate/Makefile gst/videoscale/Makefile gst/volume/Makefile sys/Makefile sys/ximage/Makefile sys/xvimage/Makefile ext/Makefile ext/alsa/Makefile ext/cdparanoia/Makefile ext/libvisual/Makefile ext/ogg/Makefile ext/opus/Makefile ext/pango/Makefile ext/theora/Makefile ext/vorbis/Makefile gst-libs/Makefile gst-libs/gst/Makefile gst-libs/gst/allocators/Makefile gst-libs/gst/audio/Makefile gst-libs/gst/app/Makefile gst-libs/gst/fft/Makefile gst-libs/gst/riff/Makefile gst-libs/gst/rtp/Makefile gst-libs/gst/rtsp/Makefile gst-libs/gst/sdp/Makefile gst-libs/gst/tag/Makefile gst-libs/gst/pbutils/Makefile gst-libs/gst/pbutils/gstpluginsbaseversion.h gst-libs/gst/video/Makefile tools/Makefile pkgconfig/Makefile pkgconfig/gstreamer-allocators.pc pkgconfig/gstreamer-allocators-uninstalled.pc pkgconfig/gstreamer-audio.pc pkgconfig/gstreamer-audio-uninstalled.pc pkgconfig/gstreamer-app.pc pkgconfig/gstreamer-app-uninstalled.pc pkgconfig/gstreamer-fft.pc pkgconfig/gstreamer-fft-uninstalled.pc pkgconfig/gstreamer-pbutils.pc pkgconfig/gstreamer-pbutils-uninstalled.pc pkgconfig/gstreamer-riff.pc pkgconfig/gstreamer-riff-uninstalled.pc pkgconfig/gstreamer-rtp.pc pkgconfig/gstreamer-rtp-uninstalled.pc pkgconfig/gstreamer-rtsp.pc pkgconfig/gstreamer-rtsp-uninstalled.pc pkgconfig/gstreamer-sdp.pc pkgconfig/gstreamer-sdp-uninstalled.pc pkgconfig/gstreamer-tag.pc pkgconfig/gstreamer-tag-uninstalled.pc pkgconfig/gstreamer-video.pc pkgconfig/gstreamer-video-uninstalled.pc pkgconfig/gstreamer-plugins-base.pc pkgconfig/gstreamer-plugins-base-uninstalled.pc tests/Makefile tests/check/Makefile tests/examples/Makefile tests/examples/app/Makefile tests/examples/audio/Makefile tests/examples/dynamic/Makefile tests/examples/encoding/Makefile tests/examples/fft/Makefile tests/examples/gio/Makefile tests/examples/overlay/Makefile tests/examples/seek/Makefile tests/examples/snapshot/Makefile tests/examples/playback/Makefile tests/examples/playrec/Makefile tests/files/Makefile tests/icles/Makefile tests/icles/playback/Makefile docs/Makefile docs/design/Makefile docs/libs/Makefile docs/plugins/Makefile docs/version.entities po/Makefile.in common/Makefile common/m4/Makefile m4/Makefile"
+ac_config_files="$ac_config_files Makefile gst-plugins-base.spec gst/Makefile gst/adder/Makefile gst/app/Makefile gst/audioconvert/Makefile gst/audiorate/Makefile gst/audiotestsrc/Makefile gst/encoding/Makefile gst/videoconvert/Makefile gst/gio/Makefile gst/playback/Makefile gst/audioresample/Makefile gst/subparse/Makefile gst/tcp/Makefile gst/typefind/Makefile gst/videotestsrc/Makefile gst/videorate/Makefile gst/videoscale/Makefile gst/volume/Makefile sys/Makefile sys/ximage/Makefile sys/xvimage/Makefile ext/Makefile ext/alsa/Makefile ext/cdparanoia/Makefile ext/libvisual/Makefile ext/ogg/Makefile ext/opus/Makefile ext/pango/Makefile ext/theora/Makefile ext/vorbis/Makefile gst-libs/Makefile gst-libs/gst/Makefile gst-libs/gst/allocators/Makefile gst-libs/gst/audio/Makefile gst-libs/gst/app/Makefile gst-libs/gst/fft/Makefile gst-libs/gst/riff/Makefile gst-libs/gst/rtp/Makefile gst-libs/gst/rtsp/Makefile gst-libs/gst/sdp/Makefile gst-libs/gst/tag/Makefile gst-libs/gst/pbutils/Makefile gst-libs/gst/pbutils/gstpluginsbaseversion.h gst-libs/gst/video/Makefile tools/Makefile pkgconfig/Makefile pkgconfig/gstreamer-allocators.pc pkgconfig/gstreamer-allocators-uninstalled.pc pkgconfig/gstreamer-audio.pc pkgconfig/gstreamer-audio-uninstalled.pc pkgconfig/gstreamer-app.pc pkgconfig/gstreamer-app-uninstalled.pc pkgconfig/gstreamer-fft.pc pkgconfig/gstreamer-fft-uninstalled.pc pkgconfig/gstreamer-pbutils.pc pkgconfig/gstreamer-pbutils-uninstalled.pc pkgconfig/gstreamer-riff.pc pkgconfig/gstreamer-riff-uninstalled.pc pkgconfig/gstreamer-rtp.pc pkgconfig/gstreamer-rtp-uninstalled.pc pkgconfig/gstreamer-rtsp.pc pkgconfig/gstreamer-rtsp-uninstalled.pc pkgconfig/gstreamer-sdp.pc pkgconfig/gstreamer-sdp-uninstalled.pc pkgconfig/gstreamer-tag.pc pkgconfig/gstreamer-tag-uninstalled.pc pkgconfig/gstreamer-video.pc pkgconfig/gstreamer-video-uninstalled.pc pkgconfig/gstreamer-plugins-base.pc pkgconfig/gstreamer-plugins-base-uninstalled.pc tests/Makefile tests/check/Makefile tests/examples/Makefile tests/examples/app/Makefile tests/examples/audio/Makefile tests/examples/decodebin_next/Makefile tests/examples/dynamic/Makefile tests/examples/encoding/Makefile tests/examples/fft/Makefile tests/examples/gio/Makefile tests/examples/overlay/Makefile tests/examples/seek/Makefile tests/examples/snapshot/Makefile tests/examples/playback/Makefile tests/examples/playrec/Makefile tests/files/Makefile tests/icles/Makefile tests/icles/playback/Makefile docs/Makefile docs/design/Makefile docs/libs/Makefile docs/plugins/Makefile docs/version.entities po/Makefile.in common/Makefile common/m4/Makefile m4/Makefile"
 
 
 sed \
@@ -32083,7 +32087,7 @@
 # report actual input values of CONFIG_FILES etc. instead of their
 # values after options handling.
 ac_log="
-This file was extended by GStreamer Base Plug-ins $as_me 1.8.2, which was
+This file was extended by GStreamer Base Plug-ins $as_me 1.9.1, which was
 generated by GNU Autoconf 2.69.  Invocation command line was
 
   CONFIG_FILES    = $CONFIG_FILES
@@ -32149,7 +32153,7 @@
 cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
 ac_cs_config="`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`"
 ac_cs_version="\\
-GStreamer Base Plug-ins config.status 1.8.2
+GStreamer Base Plug-ins config.status 1.9.1
 configured by $0, generated by GNU Autoconf 2.69,
   with options \\"\$ac_cs_config\\"
 
@@ -32768,6 +32772,7 @@
     "tests/examples/Makefile") CONFIG_FILES="$CONFIG_FILES tests/examples/Makefile" ;;
     "tests/examples/app/Makefile") CONFIG_FILES="$CONFIG_FILES tests/examples/app/Makefile" ;;
     "tests/examples/audio/Makefile") CONFIG_FILES="$CONFIG_FILES tests/examples/audio/Makefile" ;;
+    "tests/examples/decodebin_next/Makefile") CONFIG_FILES="$CONFIG_FILES tests/examples/decodebin_next/Makefile" ;;
     "tests/examples/dynamic/Makefile") CONFIG_FILES="$CONFIG_FILES tests/examples/dynamic/Makefile" ;;
     "tests/examples/encoding/Makefile") CONFIG_FILES="$CONFIG_FILES tests/examples/encoding/Makefile" ;;
     "tests/examples/fft/Makefile") CONFIG_FILES="$CONFIG_FILES tests/examples/fft/Makefile" ;;
diff --git a/configure.ac b/configure.ac
index a18f1c8..8da80d5 100644
--- a/configure.ac
+++ b/configure.ac
@@ -5,7 +5,7 @@
 dnl initialize autoconf
 dnl releases only do -Wall, git and prerelease does -Werror too
 dnl use a three digit version number for releases, and four for git/prerelease
-AC_INIT([GStreamer Base Plug-ins],[1.8.2],[http://bugzilla.gnome.org/enter_bug.cgi?product=GStreamer],[gst-plugins-base])
+AC_INIT([GStreamer Base Plug-ins],[1.9.1],[http://bugzilla.gnome.org/enter_bug.cgi?product=GStreamer],[gst-plugins-base])
 
 AG_GST_INIT
 
@@ -56,10 +56,10 @@
 dnl      1.10.9 (who knows) => 1009
 dnl
 dnl sets GST_LT_LDFLAGS
-AS_LIBTOOL(GST, 802, 0, 802)
+AS_LIBTOOL(GST, 901, 0, 901)
 
 dnl *** required versions of GStreamer stuff ***
-GST_REQ=1.8.0
+GST_REQ=1.9.1
 
 dnl *** autotools stuff ****
 
@@ -174,7 +174,7 @@
 
 dnl check for GCC specific SSE headers
 dnl these are used by the speex resampler code
-AC_CHECK_HEADERS([xmmintrin.h emmintrin.h])
+AC_CHECK_HEADERS([xmmintrin.h emmintrin.h smmintrin.h])
 
 dnl used in gst/tcp
 AC_CHECK_HEADERS([sys/socket.h],
@@ -396,6 +396,12 @@
 AC_SUBST(GST_PLUGIN_LIBTOOLFLAGS)
 AM_CONDITIONAL(GST_PLUGIN_BUILD_STATIC, test "x$enable_static_plugins" = "xyes")
 
+dnl If only building static libraries, define GST_STATIC_COMPILATION. This is
+dnl needed only on Windows, but it doesn't hurt to have it everywhere.
+if test x$enable_static = xyes -a x$enable_shared = xno; then
+  GST_STATIC_CFLAGS="-DGST_STATIC_COMPILATION"
+fi
+
 # set by AG_GST_PARSE_SUBSYSTEM_DISABLES above
 dnl make sure it doesn't complain about unused variables if debugging is disabled
 NO_WARNINGS=""
@@ -801,7 +807,7 @@
 
 dnl FIXME: do we want to rename to GST_ALL_* ?
 dnl add GST_OPTION_CFLAGS, but overridable
-GST_CFLAGS="$GST_CFLAGS"
+GST_CFLAGS="$GST_CFLAGS $GST_STATIC_CFLAGS"
 GST_CXXFLAGS="$GLIB_CFLAGS $GST_CFLAGS \$(GLIB_EXTRA_CFLAGS) \$(GST_OPTION_CXXFLAGS)"
 GST_CFLAGS="$GLIB_CFLAGS $GST_CFLAGS \$(GLIB_EXTRA_CFLAGS) \$(GST_OPTION_CFLAGS)"
 AC_SUBST(GST_CFLAGS)
@@ -912,6 +918,7 @@
 tests/examples/Makefile
 tests/examples/app/Makefile
 tests/examples/audio/Makefile
+tests/examples/decodebin_next/Makefile
 tests/examples/dynamic/Makefile
 tests/examples/encoding/Makefile
 tests/examples/fft/Makefile
diff --git a/docs/design/part-mediatype-video-raw.txt b/docs/design/part-mediatype-video-raw.txt
index 541b366..c7fc837 100644
--- a/docs/design/part-mediatype-video-raw.txt
+++ b/docs/design/part-mediatype-video-raw.txt
@@ -754,6 +754,30 @@
           default rstride: RU4 (width * 3)
           default size:    rstride (image) * height
 
+ "IYU2" packed 4:4:4 YUV, U-Y-V order
+
+       +--+--+--+ +--+--+--+
+       |U0|Y0|V0| |U1|Y1|V1| ...
+       +--+--+--+ +--+--+--+
+
+        Component 0: Y
+          depth:           8
+          pstride:         3
+          offset:          1
+
+        Component 1: U
+          depth            8
+          pstride:         3
+          offset:          0
+
+        Component 2: V
+          depth:           8
+          pstride:         3
+          offset:          2
+
+        Image
+          default rstride: RU4 (width * 3)
+          default size:    rstride (image) * height
 
  "RGB16" rgb 5-6-5 bits per component
 
diff --git a/docs/libs/Makefile.in b/docs/libs/Makefile.in
index 433b8d1..1c97088 100644
--- a/docs/libs/Makefile.in
+++ b/docs/libs/Makefile.in
@@ -901,7 +901,11 @@
 
 @ENABLE_GTK_DOC_TRUE@sgml-build.stamp: setup-build.stamp $(DOC_MODULE)-decl.txt $(SCANOBJ_FILES) $(DOC_MODULE)-sections.txt $(expand_content_files)
 @ENABLE_GTK_DOC_TRUE@	@echo '  DOC   Building XML'
-@ENABLE_GTK_DOC_TRUE@	@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)
+@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 --module=$(DOC_MODULE) $$(_source_dir)  --expand-content-files="$(expand_content_files)" --main-sgml-file=$(DOC_MAIN_SGML_FILE) --output-format=xml $(MKDB_OPTIONS)
 @ENABLE_GTK_DOC_TRUE@	@cp ../version.entities xml
 @ENABLE_GTK_DOC_TRUE@	@touch sgml-build.stamp
 
diff --git a/docs/libs/gst-plugins-base-libs-sections.txt b/docs/libs/gst-plugins-base-libs-sections.txt
index d00e67c..71623e1 100644
--- a/docs/libs/gst-plugins-base-libs-sections.txt
+++ b/docs/libs/gst-plugins-base-libs-sections.txt
@@ -49,6 +49,8 @@
 gst_app_src_set_latency
 gst_app_src_set_size
 gst_app_src_get_size
+gst_app_src_set_duration
+gst_app_src_get_duration
 gst_app_src_set_stream_type
 gst_app_src_get_stream_type
 gst_app_src_set_max_bytes
@@ -512,6 +514,7 @@
 gst_audio_buffer_reorder_channels
 gst_audio_reorder_channels
 gst_audio_get_channel_reorder_map
+gst_audio_channel_positions_to_string
 GstAudioChannelMixer
 GstAudioChannelMixerFlags
 gst_audio_channel_mixer_new
@@ -2217,6 +2220,8 @@
 gst_codec_utils_aac_get_index_from_sample_rate
 gst_codec_utils_aac_get_profile
 gst_codec_utils_aac_get_level
+gst_codec_utils_aac_get_channels
+gst_codec_utils_aac_get_sample_rate
 gst_codec_utils_aac_caps_set_level_and_profile
 <SUBSECTION>
 gst_codec_utils_h264_get_profile
diff --git a/docs/libs/html/annotation-glossary.html b/docs/libs/html/annotation-glossary.html
deleted file mode 100644
index 6bea2fb..0000000
--- a/docs/libs/html/annotation-glossary.html
+++ /dev/null
@@ -1,78 +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>Annotation Glossary: GStreamer Base Plugins 1.0 Library Reference Manual</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.79.1">
-<link rel="home" href="index.html" title="GStreamer Base Plugins 1.0 Library Reference Manual">
-<link rel="up" href="index.html" title="GStreamer Base Plugins 1.0 Library Reference Manual">
-<link rel="prev" href="api-index-deprecated.html" title="Index of deprecated API">
-<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"><span id="nav_glossary"><a class="shortcut" href="#glsA">A</a>
-                     <span class="dim">|</span> 
-                  <a class="shortcut" href="#glsC">C</a>
-                     <span class="dim">|</span> 
-                  <a class="shortcut" href="#glsE">E</a>
-                     <span class="dim">|</span> 
-                  <a class="shortcut" href="#glsN">N</a>
-                     <span class="dim">|</span> 
-                  <a class="shortcut" href="#glsO">O</a>
-                     <span class="dim">|</span> 
-                  <a class="shortcut" href="#glsR">R</a>
-                     <span class="dim">|</span> 
-                  <a class="shortcut" href="#glsS">S</a>
-                     <span class="dim">|</span> 
-                  <a class="shortcut" href="#glsT">T</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><img src="up-insensitive.png" width="16" height="16" border="0"></td>
-<td><a accesskey="p" href="api-index-deprecated.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="glossary">
-<div class="titlepage"><div><div><h1 class="title">
-<a name="annotation-glossary"></a>Annotation Glossary</h1></div></div></div>
-<a name="glsA"></a><h3 class="title">A</h3>
-<dt><span class="glossterm"><a name="annotation-glossterm-allow-none"></a>allow-none</span></dt>
-<dd class="glossdef"><p>NULL is OK, both for passing and for returning.</p></dd>
-<dt><span class="glossterm"><a name="annotation-glossterm-array"></a>array</span></dt>
-<dd class="glossdef"><p>Parameter points to an array of items.</p></dd>
-<a name="glsC"></a><h3 class="title">C</h3>
-<dt><span class="glossterm"><a name="annotation-glossterm-closure"></a>closure</span></dt>
-<dd class="glossdef"><p>This parameter is a 'user_data', for callbacks; many bindings can pass NULL here.</p></dd>
-<a name="glsE"></a><h3 class="title">E</h3>
-<dt><span class="glossterm"><a name="annotation-glossterm-element-type"></a>element-type</span></dt>
-<dd class="glossdef"><p>Generics and defining elements of containers and arrays.</p></dd>
-<a name="glsN"></a><h3 class="title">N</h3>
-<dt><span class="glossterm"><a name="annotation-glossterm-nullable"></a>nullable</span></dt>
-<dd class="glossdef"><p>NULL may be passed as the value in, out, in-out; or as a return value.</p></dd>
-<a name="glsO"></a><h3 class="title">O</h3>
-<dt><span class="glossterm"><a name="annotation-glossterm-out"></a>out</span></dt>
-<dd class="glossdef"><p>Parameter for returning results. Default is <acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>.</p></dd>
-<a name="glsR"></a><h3 class="title">R</h3>
-<dt><span class="glossterm"><a name="annotation-glossterm-rename-to"></a>rename-to</span></dt>
-<dd class="glossdef"><p>Rename the original symbol's name to SYMBOL.</p></dd>
-<a name="glsS"></a><h3 class="title">S</h3>
-<dt><span class="glossterm"><a name="annotation-glossterm-scope%20async"></a>scope async</span></dt>
-<dd class="glossdef"><p>The callback is valid until first called.</p></dd>
-<dt><span class="glossterm"><a name="annotation-glossterm-scope%20call"></a>scope call</span></dt>
-<dd class="glossdef"><p>The callback is valid only during the call to the method.</p></dd>
-<dt><span class="glossterm"><a name="annotation-glossterm-skip"></a>skip</span></dt>
-<dd class="glossdef"><p>Exposed in C code, not necessarily available in other languages.</p></dd>
-<a name="glsT"></a><h3 class="title">T</h3>
-<dt><span class="glossterm"><a name="annotation-glossterm-transfer%20floating"></a>transfer floating</span></dt>
-<dd class="glossdef"><p>Alias for <acronym title="Don't free data after the code is done."><span class="acronym">transfer none</span></acronym>, used for objects with floating refs.</p></dd>
-<dt><span class="glossterm"><a name="annotation-glossterm-transfer%20full"></a>transfer full</span></dt>
-<dd class="glossdef"><p>Free data after the code is done.</p></dd>
-<dt><span class="glossterm"><a name="annotation-glossterm-transfer%20none"></a>transfer none</span></dt>
-<dd class="glossdef"><p>Don't free data after the code is done.</p></dd>
-<dt><span class="glossterm"><a name="annotation-glossterm-type"></a>type</span></dt>
-<dd class="glossdef"><p>Override the parsed C type with given type.</p></dd>
-</div>
-<div class="footer">
-<hr>Generated by GTK-Doc V1.25</div>
-</body>
-</html>
\ No newline at end of file
diff --git a/docs/libs/html/api-index-deprecated.html b/docs/libs/html/api-index-deprecated.html
index 4267675..7021e9c 100644
--- a/docs/libs/html/api-index-deprecated.html
+++ b/docs/libs/html/api-index-deprecated.html
@@ -7,40 +7,21 @@
 <link rel="home" href="index.html" title="GStreamer Base Plugins 1.0 Library Reference Manual">
 <link rel="up" href="index.html" title="GStreamer Base Plugins 1.0 Library Reference Manual">
 <link rel="prev" href="api-index-full.html" title="Index">
-<link rel="next" href="annotation-glossary.html" title="Annotation Glossary">
 <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"><span id="nav_index"><a class="shortcut" href="#idxD">D</a>
-                     <span class="dim">|</span> 
-                  <a class="shortcut" href="#idxR">R</a>
-                     <span class="dim">|</span> 
-                  <a class="shortcut" href="#idxV">V</a></span></td>
+<td width="100%" align="left" class="shortcuts"><span id="nav_index"><a class="shortcut" href="#idxV">V</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><img src="up-insensitive.png" width="16" height="16" border="0"></td>
 <td><a accesskey="p" href="api-index-full.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td>
-<td><a accesskey="n" href="annotation-glossary.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="index">
 <div class="titlepage"><div><div><h1 class="title">
 <a name="api-index-deprecated"></a>Index of deprecated API</h1></div></div></div>
-<a name="idx"></a><a name="idxD"></a><h3 class="title">D</h3>
-<dt>
-<a class="link" href="gst-plugins-base-libs-gstdiscoverer.html#gst-discoverer-info-get-misc" title="gst_discoverer_info_get_misc ()">gst_discoverer_info_get_misc</a>, function in <a class="link" href="gst-plugins-base-libs-gstdiscoverer.html" title="gstdiscoverer">gstdiscoverer</a>
-</dt>
-<dd></dd>
-<dt>
-<a class="link" href="gst-plugins-base-libs-gstdiscoverer.html#gst-discoverer-stream-info-get-misc" title="gst_discoverer_stream_info_get_misc ()">gst_discoverer_stream_info_get_misc</a>, function in <a class="link" href="gst-plugins-base-libs-gstdiscoverer.html" title="gstdiscoverer">gstdiscoverer</a>
-</dt>
-<dd></dd>
-<a name="idxR"></a><h3 class="title">R</h3>
-<dt>
-<a class="link" href="gst-plugins-base-libs-gstrtsptransport.html#gst-rtsp-transport-get-mime" title="gst_rtsp_transport_get_mime ()">gst_rtsp_transport_get_mime</a>, function in <a class="link" href="gst-plugins-base-libs-gstrtsptransport.html" title="gstrtsptransport">gstrtsptransport</a>
-</dt>
-<dd></dd>
-<a name="idxV"></a><h3 class="title">V</h3>
+<a name="idx"></a><a name="idxV"></a><h3 class="title">V</h3>
 <dt>
 <a class="link" href="gst-plugins-base-libs-GstVideoEncoder.html#GST-VIDEO-ENCODER-FLOW-DROPPED:CAPS" title="GST_VIDEO_ENCODER_FLOW_DROPPED">GST_VIDEO_ENCODER_FLOW_DROPPED</a>, macro in <a class="link" href="gst-plugins-base-libs-GstVideoEncoder.html" title="GstVideoEncoder">GstVideoEncoder</a>
 </dt>
diff --git a/docs/libs/html/api-index-full.html b/docs/libs/html/api-index-full.html
index 2885655..c1bd9dc 100644
--- a/docs/libs/html/api-index-full.html
+++ b/docs/libs/html/api-index-full.html
@@ -122,6 +122,10 @@
 </dt>
 <dd></dd>
 <dt>
+<a class="link" href="gst-plugins-base-libs-appsrc.html#gst-app-src-get-duration" title="gst_app_src_get_duration ()">gst_app_src_get_duration</a>, function in <a class="link" href="gst-plugins-base-libs-appsrc.html" title="appsrc">appsrc</a>
+</dt>
+<dd></dd>
+<dt>
 <a class="link" href="gst-plugins-base-libs-appsrc.html#gst-app-src-get-emit-signals" title="gst_app_src_get_emit_signals ()">gst_app_src_get_emit_signals</a>, function in <a class="link" href="gst-plugins-base-libs-appsrc.html" title="appsrc">appsrc</a>
 </dt>
 <dd></dd>
@@ -158,6 +162,10 @@
 </dt>
 <dd></dd>
 <dt>
+<a class="link" href="gst-plugins-base-libs-appsrc.html#gst-app-src-set-duration" title="gst_app_src_set_duration ()">gst_app_src_set_duration</a>, function in <a class="link" href="gst-plugins-base-libs-appsrc.html" title="appsrc">appsrc</a>
+</dt>
+<dd></dd>
+<dt>
 <a class="link" href="gst-plugins-base-libs-appsrc.html#gst-app-src-set-emit-signals" title="gst_app_src_set_emit_signals ()">gst_app_src_set_emit_signals</a>, function in <a class="link" href="gst-plugins-base-libs-appsrc.html" title="appsrc">appsrc</a>
 </dt>
 <dd></dd>
@@ -610,6 +618,10 @@
 </dt>
 <dd></dd>
 <dt>
+<a class="link" href="gst-plugins-base-libs-gstaudiochannels.html#gst-audio-channel-positions-to-string" title="gst_audio_channel_positions_to_string ()">gst_audio_channel_positions_to_string</a>, function in <a class="link" href="gst-plugins-base-libs-gstaudiochannels.html" title="gstaudiochannels">gstaudiochannels</a>
+</dt>
+<dd></dd>
+<dt>
 <a class="link" href="gst-plugins-base-libs-gstaudiochannels.html#gst-audio-channel-positions-to-valid-order" title="gst_audio_channel_positions_to_valid_order ()">gst_audio_channel_positions_to_valid_order</a>, function in <a class="link" href="gst-plugins-base-libs-gstaudiochannels.html" title="gstaudiochannels">gstaudiochannels</a>
 </dt>
 <dd></dd>
@@ -1440,6 +1452,10 @@
 </dt>
 <dd></dd>
 <dt>
+<a class="link" href="gst-plugins-base-libs-gstpbutilscodecutils.html#gst-codec-utils-aac-get-channels" title="gst_codec_utils_aac_get_channels ()">gst_codec_utils_aac_get_channels</a>, function in <a class="link" href="gst-plugins-base-libs-gstpbutilscodecutils.html" title="gstpbutilscodecutils">gstpbutilscodecutils</a>
+</dt>
+<dd></dd>
+<dt>
 <a class="link" href="gst-plugins-base-libs-gstpbutilscodecutils.html#gst-codec-utils-aac-get-index-from-sample-rate" title="gst_codec_utils_aac_get_index_from_sample_rate ()">gst_codec_utils_aac_get_index_from_sample_rate</a>, function in <a class="link" href="gst-plugins-base-libs-gstpbutilscodecutils.html" title="gstpbutilscodecutils">gstpbutilscodecutils</a>
 </dt>
 <dd></dd>
@@ -1452,6 +1468,10 @@
 </dt>
 <dd></dd>
 <dt>
+<a class="link" href="gst-plugins-base-libs-gstpbutilscodecutils.html#gst-codec-utils-aac-get-sample-rate" title="gst_codec_utils_aac_get_sample_rate ()">gst_codec_utils_aac_get_sample_rate</a>, function in <a class="link" href="gst-plugins-base-libs-gstpbutilscodecutils.html" title="gstpbutilscodecutils">gstpbutilscodecutils</a>
+</dt>
+<dd></dd>
+<dt>
 <a class="link" href="gst-plugins-base-libs-gstpbutilscodecutils.html#gst-codec-utils-aac-get-sample-rate-from-index" title="gst_codec_utils_aac_get_sample_rate_from_index ()">gst_codec_utils_aac_get_sample_rate_from_index</a>, function in <a class="link" href="gst-plugins-base-libs-gstpbutilscodecutils.html" title="gstpbutilscodecutils">gstpbutilscodecutils</a>
 </dt>
 <dd></dd>
diff --git a/docs/libs/html/gst-plugins-base-libs-1.0.devhelp2 b/docs/libs/html/gst-plugins-base-libs-1.0.devhelp2
index 5fa911b..3a5daee 100644
--- a/docs/libs/html/gst-plugins-base-libs-1.0.devhelp2
+++ b/docs/libs/html/gst-plugins-base-libs-1.0.devhelp2
@@ -111,35 +111,36 @@
     <sub name="Object Hierarchy" link="gstreamer-libs-hierarchy.html"/>
     <sub name="Index" link="api-index-full.html"/>
     <sub name="Index of deprecated API" link="api-index-deprecated.html"/>
-    <sub name="Annotation Glossary" link="annotation-glossary.html"/>
   </chapters>
   <functions>
-    <keyword type="function" name="gst_dmabuf_allocator_new ()" link="gst-plugins-base-libs-dmabuf.html#gst-dmabuf-allocator-new" since="1.2"/>
-    <keyword type="function" name="gst_dmabuf_allocator_alloc ()" link="gst-plugins-base-libs-dmabuf.html#gst-dmabuf-allocator-alloc" since="1.2"/>
-    <keyword type="function" name="gst_dmabuf_memory_get_fd ()" link="gst-plugins-base-libs-dmabuf.html#gst-dmabuf-memory-get-fd" since="1.2"/>
-    <keyword type="function" name="gst_is_dmabuf_memory ()" link="gst-plugins-base-libs-dmabuf.html#gst-is-dmabuf-memory" since="1.2"/>
-    <keyword type="function" name="gst_fd_allocator_alloc ()" link="gst-plugins-base-libs-fdmemory.html#gst-fd-allocator-alloc" since="1.6"/>
+    <keyword type="function" name="gst_dmabuf_allocator_new ()" link="gst-plugins-base-libs-dmabuf.html#gst-dmabuf-allocator-new"/>
+    <keyword type="function" name="gst_dmabuf_allocator_alloc ()" link="gst-plugins-base-libs-dmabuf.html#gst-dmabuf-allocator-alloc"/>
+    <keyword type="function" name="gst_dmabuf_memory_get_fd ()" link="gst-plugins-base-libs-dmabuf.html#gst-dmabuf-memory-get-fd"/>
+    <keyword type="function" name="gst_is_dmabuf_memory ()" link="gst-plugins-base-libs-dmabuf.html#gst-is-dmabuf-memory"/>
+    <keyword type="function" name="gst_fd_allocator_alloc ()" link="gst-plugins-base-libs-fdmemory.html#gst-fd-allocator-alloc"/>
     <keyword type="function" name="gst_fd_allocator_get_type ()" link="gst-plugins-base-libs-fdmemory.html#gst-fd-allocator-get-type"/>
-    <keyword type="function" name="gst_fd_allocator_new ()" link="gst-plugins-base-libs-fdmemory.html#gst-fd-allocator-new" since="1.6"/>
-    <keyword type="function" name="gst_fd_memory_get_fd ()" link="gst-plugins-base-libs-fdmemory.html#gst-fd-memory-get-fd" since="1.6"/>
-    <keyword type="function" name="gst_is_fd_memory ()" link="gst-plugins-base-libs-fdmemory.html#gst-is-fd-memory" since="1.6"/>
-    <keyword type="enum" name="enum GstFdMemoryFlags" link="gst-plugins-base-libs-fdmemory.html#GstFdMemoryFlags" since="1.6"/>
+    <keyword type="function" name="gst_fd_allocator_new ()" link="gst-plugins-base-libs-fdmemory.html#gst-fd-allocator-new"/>
+    <keyword type="function" name="gst_fd_memory_get_fd ()" link="gst-plugins-base-libs-fdmemory.html#gst-fd-memory-get-fd"/>
+    <keyword type="function" name="gst_is_fd_memory ()" link="gst-plugins-base-libs-fdmemory.html#gst-is-fd-memory"/>
+    <keyword type="enum" name="enum GstFdMemoryFlags" link="gst-plugins-base-libs-fdmemory.html#GstFdMemoryFlags"/>
     <keyword type="function" name="gst_app_src_set_caps ()" link="gst-plugins-base-libs-appsrc.html#gst-app-src-set-caps"/>
     <keyword type="function" name="gst_app_src_get_caps ()" link="gst-plugins-base-libs-appsrc.html#gst-app-src-get-caps"/>
     <keyword type="function" name="gst_app_src_get_latency ()" link="gst-plugins-base-libs-appsrc.html#gst-app-src-get-latency"/>
     <keyword type="function" name="gst_app_src_set_latency ()" link="gst-plugins-base-libs-appsrc.html#gst-app-src-set-latency"/>
     <keyword type="function" name="gst_app_src_set_size ()" link="gst-plugins-base-libs-appsrc.html#gst-app-src-set-size"/>
     <keyword type="function" name="gst_app_src_get_size ()" link="gst-plugins-base-libs-appsrc.html#gst-app-src-get-size"/>
+    <keyword type="function" name="gst_app_src_set_duration ()" link="gst-plugins-base-libs-appsrc.html#gst-app-src-set-duration"/>
+    <keyword type="function" name="gst_app_src_get_duration ()" link="gst-plugins-base-libs-appsrc.html#gst-app-src-get-duration"/>
     <keyword type="function" name="gst_app_src_set_stream_type ()" link="gst-plugins-base-libs-appsrc.html#gst-app-src-set-stream-type"/>
     <keyword type="function" name="gst_app_src_get_stream_type ()" link="gst-plugins-base-libs-appsrc.html#gst-app-src-get-stream-type"/>
     <keyword type="function" name="gst_app_src_set_max_bytes ()" link="gst-plugins-base-libs-appsrc.html#gst-app-src-set-max-bytes"/>
     <keyword type="function" name="gst_app_src_get_max_bytes ()" link="gst-plugins-base-libs-appsrc.html#gst-app-src-get-max-bytes"/>
-    <keyword type="function" name="gst_app_src_get_current_level_bytes ()" link="gst-plugins-base-libs-appsrc.html#gst-app-src-get-current-level-bytes" since="1.2"/>
+    <keyword type="function" name="gst_app_src_get_current_level_bytes ()" link="gst-plugins-base-libs-appsrc.html#gst-app-src-get-current-level-bytes"/>
     <keyword type="function" name="gst_app_src_get_emit_signals ()" link="gst-plugins-base-libs-appsrc.html#gst-app-src-get-emit-signals"/>
     <keyword type="function" name="gst_app_src_set_emit_signals ()" link="gst-plugins-base-libs-appsrc.html#gst-app-src-set-emit-signals"/>
     <keyword type="function" name="gst_app_src_set_callbacks ()" link="gst-plugins-base-libs-appsrc.html#gst-app-src-set-callbacks"/>
     <keyword type="function" name="gst_app_src_push_buffer ()" link="gst-plugins-base-libs-appsrc.html#gst-app-src-push-buffer"/>
-    <keyword type="function" name="gst_app_src_push_sample ()" link="gst-plugins-base-libs-appsrc.html#gst-app-src-push-sample" since="1.6"/>
+    <keyword type="function" name="gst_app_src_push_sample ()" link="gst-plugins-base-libs-appsrc.html#gst-app-src-push-sample"/>
     <keyword type="function" name="gst_app_src_end_of_stream ()" link="gst-plugins-base-libs-appsrc.html#gst-app-src-end-of-stream"/>
     <keyword type="enum" name="enum GstAppStreamType" link="gst-plugins-base-libs-appsrc.html#GstAppStreamType"/>
     <keyword type="struct" name="GstAppSrcCallbacks" link="gst-plugins-base-libs-appsrc.html#GstAppSrcCallbacks"/>
@@ -167,7 +168,7 @@
     <keyword type="function" name="gst_audio_info_free ()" link="gst-plugins-base-libs-gstaudio.html#gst-audio-info-free"/>
     <keyword type="function" name="gst_audio_info_new ()" link="gst-plugins-base-libs-gstaudio.html#gst-audio-info-new"/>
     <keyword type="function" name="gst_audio_info_set_format ()" link="gst-plugins-base-libs-gstaudio.html#gst-audio-info-set-format"/>
-    <keyword type="function" name="gst_audio_info_is_equal ()" link="gst-plugins-base-libs-gstaudio.html#gst-audio-info-is-equal" since="1.2"/>
+    <keyword type="function" name="gst_audio_info_is_equal ()" link="gst-plugins-base-libs-gstaudio.html#gst-audio-info-is-equal"/>
     <keyword type="function" name="gst_audio_format_build_integer ()" link="gst-plugins-base-libs-gstaudio.html#gst-audio-format-build-integer"/>
     <keyword type="function" name="gst_audio_format_fill_silence ()" link="gst-plugins-base-libs-gstaudio.html#gst-audio-format-fill-silence"/>
     <keyword type="function" name="gst_audio_format_from_string ()" link="gst-plugins-base-libs-gstaudio.html#gst-audio-format-from-string"/>
@@ -215,9 +216,9 @@
     <keyword type="struct" name="struct GstAudioInfo" link="gst-plugins-base-libs-gstaudio.html#GstAudioInfo"/>
     <keyword type="enum" name="enum GstAudioLayout" link="gst-plugins-base-libs-gstaudio.html#GstAudioLayout"/>
     <keyword type="enum" name="enum GstAudioPackFlags" link="gst-plugins-base-libs-gstaudio.html#GstAudioPackFlags"/>
-    <keyword type="macro" name="GST_META_TAG_AUDIO_STR" link="gst-plugins-base-libs-gstaudio.html#GST-META-TAG-AUDIO-STR:CAPS" since="1.2"/>
-    <keyword type="macro" name="GST_META_TAG_AUDIO_CHANNELS_STR" link="gst-plugins-base-libs-gstaudio.html#GST-META-TAG-AUDIO-CHANNELS-STR:CAPS" since="1.2"/>
-    <keyword type="macro" name="GST_META_TAG_AUDIO_RATE_STR" link="gst-plugins-base-libs-gstaudio.html#GST-META-TAG-AUDIO-RATE-STR:CAPS" since="1.8"/>
+    <keyword type="macro" name="GST_META_TAG_AUDIO_STR" link="gst-plugins-base-libs-gstaudio.html#GST-META-TAG-AUDIO-STR:CAPS"/>
+    <keyword type="macro" name="GST_META_TAG_AUDIO_CHANNELS_STR" link="gst-plugins-base-libs-gstaudio.html#GST-META-TAG-AUDIO-CHANNELS-STR:CAPS"/>
+    <keyword type="macro" name="GST_META_TAG_AUDIO_RATE_STR" link="gst-plugins-base-libs-gstaudio.html#GST-META-TAG-AUDIO-RATE-STR:CAPS"/>
     <keyword type="macro" name="GST_AUDIO_RATE_RANGE" link="gst-plugins-base-libs-gstaudio.html#GST-AUDIO-RATE-RANGE:CAPS"/>
     <keyword type="macro" name="GST_AUDIO_CHANNELS_RANGE" link="gst-plugins-base-libs-gstaudio.html#GST-AUDIO-CHANNELS-RANGE:CAPS"/>
     <keyword type="macro" name="GST_AUDIO_FORMATS_ALL" link="gst-plugins-base-libs-gstaudio.html#GST-AUDIO-FORMATS-ALL:CAPS"/>
@@ -227,10 +228,10 @@
     <keyword type="function" name="gst_buffer_add_audio_downmix_meta ()" link="gst-plugins-base-libs-gstaudiometa.html#gst-buffer-add-audio-downmix-meta"/>
     <keyword type="macro" name="gst_buffer_get_audio_downmix_meta()" link="gst-plugins-base-libs-gstaudiometa.html#gst-buffer-get-audio-downmix-meta"/>
     <keyword type="function" name="gst_buffer_get_audio_downmix_meta_for_channels ()" link="gst-plugins-base-libs-gstaudiometa.html#gst-buffer-get-audio-downmix-meta-for-channels"/>
-    <keyword type="function" name="gst_buffer_add_audio_clipping_meta ()" link="gst-plugins-base-libs-gstaudiometa.html#gst-buffer-add-audio-clipping-meta" since="1.8"/>
+    <keyword type="function" name="gst_buffer_add_audio_clipping_meta ()" link="gst-plugins-base-libs-gstaudiometa.html#gst-buffer-add-audio-clipping-meta"/>
     <keyword type="macro" name="gst_buffer_get_audio_clipping_meta()" link="gst-plugins-base-libs-gstaudiometa.html#gst-buffer-get-audio-clipping-meta"/>
     <keyword type="struct" name="struct GstAudioDownmixMeta" link="gst-plugins-base-libs-gstaudiometa.html#GstAudioDownmixMeta"/>
-    <keyword type="struct" name="struct GstAudioClippingMeta" link="gst-plugins-base-libs-gstaudiometa.html#GstAudioClippingMeta" since="1.8"/>
+    <keyword type="struct" name="struct GstAudioClippingMeta" link="gst-plugins-base-libs-gstaudiometa.html#GstAudioClippingMeta"/>
     <keyword type="function" name="gst_audio_cd_src_add_track ()" link="gst-plugins-base-libs-gstaudiocdsrc.html#gst-audio-cd-src-add-track"/>
     <keyword type="struct" name="struct GstAudioCdSrc" link="gst-plugins-base-libs-gstaudiocdsrc.html#GstAudioCdSrc-struct"/>
     <keyword type="struct" name="struct GstAudioCdSrcClass" link="gst-plugins-base-libs-gstaudiocdsrc.html#GstAudioCdSrcClass"/>
@@ -276,7 +277,7 @@
     <keyword type="function" name="gst_audio_decoder_set_plc_aware ()" link="gst-plugins-base-libs-gstaudiodecoder.html#gst-audio-decoder-set-plc-aware"/>
     <keyword type="function" name="gst_audio_decoder_set_tolerance ()" link="gst-plugins-base-libs-gstaudiodecoder.html#gst-audio-decoder-set-tolerance"/>
     <keyword type="function" name="gst_audio_decoder_merge_tags ()" link="gst-plugins-base-libs-gstaudiodecoder.html#gst-audio-decoder-merge-tags"/>
-    <keyword type="function" name="gst_audio_decoder_proxy_getcaps ()" link="gst-plugins-base-libs-gstaudiodecoder.html#gst-audio-decoder-proxy-getcaps" since="1.6"/>
+    <keyword type="function" name="gst_audio_decoder_proxy_getcaps ()" link="gst-plugins-base-libs-gstaudiodecoder.html#gst-audio-decoder-proxy-getcaps"/>
     <keyword type="struct" name="struct GstAudioDecoder" link="gst-plugins-base-libs-gstaudiodecoder.html#GstAudioDecoder-struct"/>
     <keyword type="struct" name="struct GstAudioDecoderClass" link="gst-plugins-base-libs-gstaudiodecoder.html#GstAudioDecoderClass"/>
     <keyword type="macro" name="GST_AUDIO_DECODER_SINK_NAME" link="gst-plugins-base-libs-gstaudiodecoder.html#GST-AUDIO-DECODER-SINK-NAME:CAPS"/>
@@ -332,7 +333,7 @@
     <keyword type="struct" name="struct GstAudioSinkClass" link="gst-plugins-base-libs-gstaudiosink.html#GstAudioSinkClass"/>
     <keyword type="struct" name="struct GstAudioSrc" link="gst-plugins-base-libs-gstaudiosrc.html#GstAudioSrc-struct"/>
     <keyword type="struct" name="struct GstAudioSrcClass" link="gst-plugins-base-libs-gstaudiosrc.html#GstAudioSrcClass"/>
-    <keyword type="function" name="GstAudioBaseSinkCustomSlavingCallback ()" link="gst-plugins-base-libs-gstaudiobasesink.html#GstAudioBaseSinkCustomSlavingCallback" since="1.6"/>
+    <keyword type="function" name="GstAudioBaseSinkCustomSlavingCallback ()" link="gst-plugins-base-libs-gstaudiobasesink.html#GstAudioBaseSinkCustomSlavingCallback"/>
     <keyword type="macro" name="GST_AUDIO_BASE_SINK_CLOCK()" link="gst-plugins-base-libs-gstaudiobasesink.html#GST-AUDIO-BASE-SINK-CLOCK:CAPS"/>
     <keyword type="macro" name="GST_AUDIO_BASE_SINK_PAD()" link="gst-plugins-base-libs-gstaudiobasesink.html#GST-AUDIO-BASE-SINK-PAD:CAPS"/>
     <keyword type="function" name="gst_audio_base_sink_create_ringbuffer ()" link="gst-plugins-base-libs-gstaudiobasesink.html#gst-audio-base-sink-create-ringbuffer"/>
@@ -346,12 +347,12 @@
     <keyword type="function" name="gst_audio_base_sink_get_alignment_threshold ()" link="gst-plugins-base-libs-gstaudiobasesink.html#gst-audio-base-sink-get-alignment-threshold"/>
     <keyword type="function" name="gst_audio_base_sink_set_discont_wait ()" link="gst-plugins-base-libs-gstaudiobasesink.html#gst-audio-base-sink-set-discont-wait"/>
     <keyword type="function" name="gst_audio_base_sink_get_discont_wait ()" link="gst-plugins-base-libs-gstaudiobasesink.html#gst-audio-base-sink-get-discont-wait"/>
-    <keyword type="function" name="gst_audio_base_sink_set_custom_slaving_callback ()" link="gst-plugins-base-libs-gstaudiobasesink.html#gst-audio-base-sink-set-custom-slaving-callback" since="1.6"/>
-    <keyword type="function" name="gst_audio_base_sink_report_device_failure ()" link="gst-plugins-base-libs-gstaudiobasesink.html#gst-audio-base-sink-report-device-failure" since="1.6"/>
+    <keyword type="function" name="gst_audio_base_sink_set_custom_slaving_callback ()" link="gst-plugins-base-libs-gstaudiobasesink.html#gst-audio-base-sink-set-custom-slaving-callback"/>
+    <keyword type="function" name="gst_audio_base_sink_report_device_failure ()" link="gst-plugins-base-libs-gstaudiobasesink.html#gst-audio-base-sink-report-device-failure"/>
     <keyword type="struct" name="struct GstAudioBaseSink" link="gst-plugins-base-libs-gstaudiobasesink.html#GstAudioBaseSink-struct"/>
     <keyword type="struct" name="struct GstAudioBaseSinkClass" link="gst-plugins-base-libs-gstaudiobasesink.html#GstAudioBaseSinkClass"/>
     <keyword type="enum" name="enum GstAudioBaseSinkSlaveMethod" link="gst-plugins-base-libs-gstaudiobasesink.html#GstAudioBaseSinkSlaveMethod"/>
-    <keyword type="enum" name="enum GstAudioBaseSinkDiscontReason" link="gst-plugins-base-libs-gstaudiobasesink.html#GstAudioBaseSinkDiscontReason" since="1.6"/>
+    <keyword type="enum" name="enum GstAudioBaseSinkDiscontReason" link="gst-plugins-base-libs-gstaudiobasesink.html#GstAudioBaseSinkDiscontReason"/>
     <keyword type="property" name="The “alignment-threshold” property" link="gst-plugins-base-libs-gstaudiobasesink.html#GstAudioBaseSink--alignment-threshold"/>
     <keyword type="property" name="The “buffer-time” property" link="gst-plugins-base-libs-gstaudiobasesink.html#GstAudioBaseSink--buffer-time"/>
     <keyword type="property" name="The “can-activate-pull” property" link="gst-plugins-base-libs-gstaudiobasesink.html#GstAudioBaseSink--can-activate-pull"/>
@@ -380,11 +381,12 @@
     <keyword type="function" name="gst_audio_channel_positions_to_mask ()" link="gst-plugins-base-libs-gstaudiochannels.html#gst-audio-channel-positions-to-mask"/>
     <keyword type="function" name="gst_audio_channel_positions_from_mask ()" link="gst-plugins-base-libs-gstaudiochannels.html#gst-audio-channel-positions-from-mask"/>
     <keyword type="function" name="gst_audio_channel_positions_to_valid_order ()" link="gst-plugins-base-libs-gstaudiochannels.html#gst-audio-channel-positions-to-valid-order"/>
-    <keyword type="function" name="gst_audio_channel_get_fallback_mask ()" link="gst-plugins-base-libs-gstaudiochannels.html#gst-audio-channel-get-fallback-mask" since="1.8"/>
+    <keyword type="function" name="gst_audio_channel_get_fallback_mask ()" link="gst-plugins-base-libs-gstaudiochannels.html#gst-audio-channel-get-fallback-mask"/>
     <keyword type="function" name="gst_audio_check_valid_channel_positions ()" link="gst-plugins-base-libs-gstaudiochannels.html#gst-audio-check-valid-channel-positions"/>
     <keyword type="function" name="gst_audio_buffer_reorder_channels ()" link="gst-plugins-base-libs-gstaudiochannels.html#gst-audio-buffer-reorder-channels"/>
     <keyword type="function" name="gst_audio_reorder_channels ()" link="gst-plugins-base-libs-gstaudiochannels.html#gst-audio-reorder-channels"/>
     <keyword type="function" name="gst_audio_get_channel_reorder_map ()" link="gst-plugins-base-libs-gstaudiochannels.html#gst-audio-get-channel-reorder-map"/>
+    <keyword type="function" name="gst_audio_channel_positions_to_string ()" link="gst-plugins-base-libs-gstaudiochannels.html#gst-audio-channel-positions-to-string"/>
     <keyword type="function" name="gst_audio_channel_mixer_new ()" link="gst-plugins-base-libs-gstaudiochannels.html#gst-audio-channel-mixer-new"/>
     <keyword type="function" name="gst_audio_channel_mixer_free ()" link="gst-plugins-base-libs-gstaudiochannels.html#gst-audio-channel-mixer-free"/>
     <keyword type="function" name="gst_audio_channel_mixer_is_passthrough ()" link="gst-plugins-base-libs-gstaudiochannels.html#gst-audio-channel-mixer-is-passthrough"/>
@@ -567,7 +569,7 @@
     <keyword type="function" name="gst_rtp_buffer_get_extension ()" link="gst-plugins-base-libs-gstrtpbuffer.html#gst-rtp-buffer-get-extension"/>
     <keyword type="function" name="gst_rtp_buffer_set_extension ()" link="gst-plugins-base-libs-gstrtpbuffer.html#gst-rtp-buffer-set-extension"/>
     <keyword type="function" name="gst_rtp_buffer_get_extension_data ()" link="gst-plugins-base-libs-gstrtpbuffer.html#gst-rtp-buffer-get-extension-data"/>
-    <keyword type="function" name="gst_rtp_buffer_get_extension_bytes ()" link="gst-plugins-base-libs-gstrtpbuffer.html#gst-rtp-buffer-get-extension-bytes" since="1.2"/>
+    <keyword type="function" name="gst_rtp_buffer_get_extension_bytes ()" link="gst-plugins-base-libs-gstrtpbuffer.html#gst-rtp-buffer-get-extension-bytes"/>
     <keyword type="function" name="gst_rtp_buffer_get_ssrc ()" link="gst-plugins-base-libs-gstrtpbuffer.html#gst-rtp-buffer-get-ssrc"/>
     <keyword type="function" name="gst_rtp_buffer_set_ssrc ()" link="gst-plugins-base-libs-gstrtpbuffer.html#gst-rtp-buffer-set-ssrc"/>
     <keyword type="function" name="gst_rtp_buffer_get_csrc_count ()" link="gst-plugins-base-libs-gstrtpbuffer.html#gst-rtp-buffer-get-csrc-count"/>
@@ -584,7 +586,7 @@
     <keyword type="function" name="gst_rtp_buffer_get_payload_buffer ()" link="gst-plugins-base-libs-gstrtpbuffer.html#gst-rtp-buffer-get-payload-buffer"/>
     <keyword type="function" name="gst_rtp_buffer_get_payload_subbuffer ()" link="gst-plugins-base-libs-gstrtpbuffer.html#gst-rtp-buffer-get-payload-subbuffer"/>
     <keyword type="function" name="gst_rtp_buffer_get_payload_len ()" link="gst-plugins-base-libs-gstrtpbuffer.html#gst-rtp-buffer-get-payload-len"/>
-    <keyword type="function" name="gst_rtp_buffer_get_payload_bytes ()" link="gst-plugins-base-libs-gstrtpbuffer.html#gst-rtp-buffer-get-payload-bytes" since="1.2"/>
+    <keyword type="function" name="gst_rtp_buffer_get_payload_bytes ()" link="gst-plugins-base-libs-gstrtpbuffer.html#gst-rtp-buffer-get-payload-bytes"/>
     <keyword type="function" name="gst_rtp_buffer_get_payload ()" link="gst-plugins-base-libs-gstrtpbuffer.html#gst-rtp-buffer-get-payload"/>
     <keyword type="function" name="gst_rtp_buffer_default_clock_rate ()" link="gst-plugins-base-libs-gstrtpbuffer.html#gst-rtp-buffer-default-clock-rate"/>
     <keyword type="function" name="gst_rtp_buffer_compare_seqnum ()" link="gst-plugins-base-libs-gstrtpbuffer.html#gst-rtp-buffer-compare-seqnum"/>
@@ -599,8 +601,8 @@
     <keyword type="macro" name="GST_RTP_BUFFER_INIT" link="gst-plugins-base-libs-gstrtpbuffer.html#GST-RTP-BUFFER-INIT:CAPS"/>
     <keyword type="function" name="gst_rtcp_buffer_new_take_data ()" link="gst-plugins-base-libs-gstrtcpbuffer.html#gst-rtcp-buffer-new-take-data"/>
     <keyword type="function" name="gst_rtcp_buffer_new_copy_data ()" link="gst-plugins-base-libs-gstrtcpbuffer.html#gst-rtcp-buffer-new-copy-data"/>
-    <keyword type="function" name="gst_rtcp_buffer_validate_data_reduced ()" link="gst-plugins-base-libs-gstrtcpbuffer.html#gst-rtcp-buffer-validate-data-reduced" since="1.6"/>
-    <keyword type="function" name="gst_rtcp_buffer_validate_reduced ()" link="gst-plugins-base-libs-gstrtcpbuffer.html#gst-rtcp-buffer-validate-reduced" since="1.6"/>
+    <keyword type="function" name="gst_rtcp_buffer_validate_data_reduced ()" link="gst-plugins-base-libs-gstrtcpbuffer.html#gst-rtcp-buffer-validate-data-reduced"/>
+    <keyword type="function" name="gst_rtcp_buffer_validate_reduced ()" link="gst-plugins-base-libs-gstrtcpbuffer.html#gst-rtcp-buffer-validate-reduced"/>
     <keyword type="function" name="gst_rtcp_buffer_validate_data ()" link="gst-plugins-base-libs-gstrtcpbuffer.html#gst-rtcp-buffer-validate-data"/>
     <keyword type="function" name="gst_rtcp_buffer_validate ()" link="gst-plugins-base-libs-gstrtcpbuffer.html#gst-rtcp-buffer-validate"/>
     <keyword type="function" name="gst_rtcp_buffer_new ()" link="gst-plugins-base-libs-gstrtcpbuffer.html#gst-rtcp-buffer-new"/>
@@ -705,23 +707,23 @@
     <keyword type="function" name="gst_rtsp_connection_set_proxy ()" link="gst-plugins-base-libs-gstrtspconnection.html#gst-rtsp-connection-set-proxy"/>
     <keyword type="function" name="gst_rtsp_connection_get_read_socket ()" link="gst-plugins-base-libs-gstrtspconnection.html#gst-rtsp-connection-get-read-socket"/>
     <keyword type="function" name="gst_rtsp_connection_get_write_socket ()" link="gst-plugins-base-libs-gstrtspconnection.html#gst-rtsp-connection-get-write-socket"/>
-    <keyword type="function" name="gst_rtsp_connection_get_tls ()" link="gst-plugins-base-libs-gstrtspconnection.html#gst-rtsp-connection-get-tls" since="1.2"/>
-    <keyword type="function" name="gst_rtsp_connection_set_tls_validation_flags ()" link="gst-plugins-base-libs-gstrtspconnection.html#gst-rtsp-connection-set-tls-validation-flags" since="1.2.1"/>
-    <keyword type="function" name="gst_rtsp_connection_get_tls_validation_flags ()" link="gst-plugins-base-libs-gstrtspconnection.html#gst-rtsp-connection-get-tls-validation-flags" since="1.2.1"/>
-    <keyword type="function" name="gst_rtsp_connection_set_tls_database ()" link="gst-plugins-base-libs-gstrtspconnection.html#gst-rtsp-connection-set-tls-database" since="1.4"/>
-    <keyword type="function" name="gst_rtsp_connection_get_tls_database ()" link="gst-plugins-base-libs-gstrtspconnection.html#gst-rtsp-connection-get-tls-database" since="1.4"/>
-    <keyword type="function" name="gst_rtsp_connection_set_tls_interaction ()" link="gst-plugins-base-libs-gstrtspconnection.html#gst-rtsp-connection-set-tls-interaction" since="1.6"/>
-    <keyword type="function" name="gst_rtsp_connection_get_tls_interaction ()" link="gst-plugins-base-libs-gstrtspconnection.html#gst-rtsp-connection-get-tls-interaction" since="1.6"/>
+    <keyword type="function" name="gst_rtsp_connection_get_tls ()" link="gst-plugins-base-libs-gstrtspconnection.html#gst-rtsp-connection-get-tls"/>
+    <keyword type="function" name="gst_rtsp_connection_set_tls_validation_flags ()" link="gst-plugins-base-libs-gstrtspconnection.html#gst-rtsp-connection-set-tls-validation-flags"/>
+    <keyword type="function" name="gst_rtsp_connection_get_tls_validation_flags ()" link="gst-plugins-base-libs-gstrtspconnection.html#gst-rtsp-connection-get-tls-validation-flags"/>
+    <keyword type="function" name="gst_rtsp_connection_set_tls_database ()" link="gst-plugins-base-libs-gstrtspconnection.html#gst-rtsp-connection-set-tls-database"/>
+    <keyword type="function" name="gst_rtsp_connection_get_tls_database ()" link="gst-plugins-base-libs-gstrtspconnection.html#gst-rtsp-connection-get-tls-database"/>
+    <keyword type="function" name="gst_rtsp_connection_set_tls_interaction ()" link="gst-plugins-base-libs-gstrtspconnection.html#gst-rtsp-connection-set-tls-interaction"/>
+    <keyword type="function" name="gst_rtsp_connection_get_tls_interaction ()" link="gst-plugins-base-libs-gstrtspconnection.html#gst-rtsp-connection-get-tls-interaction"/>
     <keyword type="function" name="gst_rtsp_watch_new ()" link="gst-plugins-base-libs-gstrtspconnection.html#gst-rtsp-watch-new"/>
     <keyword type="function" name="gst_rtsp_watch_unref ()" link="gst-plugins-base-libs-gstrtspconnection.html#gst-rtsp-watch-unref"/>
     <keyword type="function" name="gst_rtsp_watch_attach ()" link="gst-plugins-base-libs-gstrtspconnection.html#gst-rtsp-watch-attach"/>
     <keyword type="function" name="gst_rtsp_watch_reset ()" link="gst-plugins-base-libs-gstrtspconnection.html#gst-rtsp-watch-reset"/>
     <keyword type="function" name="gst_rtsp_watch_send_message ()" link="gst-plugins-base-libs-gstrtspconnection.html#gst-rtsp-watch-send-message"/>
     <keyword type="function" name="gst_rtsp_watch_write_data ()" link="gst-plugins-base-libs-gstrtspconnection.html#gst-rtsp-watch-write-data"/>
-    <keyword type="function" name="gst_rtsp_watch_get_send_backlog ()" link="gst-plugins-base-libs-gstrtspconnection.html#gst-rtsp-watch-get-send-backlog" since="1.2"/>
-    <keyword type="function" name="gst_rtsp_watch_set_send_backlog ()" link="gst-plugins-base-libs-gstrtspconnection.html#gst-rtsp-watch-set-send-backlog" since="1.2"/>
-    <keyword type="function" name="gst_rtsp_watch_set_flushing ()" link="gst-plugins-base-libs-gstrtspconnection.html#gst-rtsp-watch-set-flushing" since="1.4"/>
-    <keyword type="function" name="gst_rtsp_watch_wait_backlog ()" link="gst-plugins-base-libs-gstrtspconnection.html#gst-rtsp-watch-wait-backlog" since="1.4"/>
+    <keyword type="function" name="gst_rtsp_watch_get_send_backlog ()" link="gst-plugins-base-libs-gstrtspconnection.html#gst-rtsp-watch-get-send-backlog"/>
+    <keyword type="function" name="gst_rtsp_watch_set_send_backlog ()" link="gst-plugins-base-libs-gstrtspconnection.html#gst-rtsp-watch-set-send-backlog"/>
+    <keyword type="function" name="gst_rtsp_watch_set_flushing ()" link="gst-plugins-base-libs-gstrtspconnection.html#gst-rtsp-watch-set-flushing"/>
+    <keyword type="function" name="gst_rtsp_watch_wait_backlog ()" link="gst-plugins-base-libs-gstrtspconnection.html#gst-rtsp-watch-wait-backlog"/>
     <keyword type="struct" name="GstRTSPConnection" link="gst-plugins-base-libs-gstrtspconnection.html#GstRTSPConnection"/>
     <keyword type="struct" name="GstRTSPWatch" link="gst-plugins-base-libs-gstrtspconnection.html#GstRTSPWatch"/>
     <keyword type="struct" name="GstRTSPWatchFuncs" link="gst-plugins-base-libs-gstrtspconnection.html#GstRTSPWatchFuncs"/>
@@ -733,7 +735,7 @@
     <keyword type="function" name="gst_rtsp_header_allow_multiple ()" link="gst-plugins-base-libs-gstrtspdefs.html#gst-rtsp-header-allow-multiple"/>
     <keyword type="function" name="gst_rtsp_status_as_text ()" link="gst-plugins-base-libs-gstrtspdefs.html#gst-rtsp-status-as-text"/>
     <keyword type="function" name="gst_rtsp_options_as_text ()" link="gst-plugins-base-libs-gstrtspdefs.html#gst-rtsp-options-as-text"/>
-    <keyword type="function" name="gst_rtsp_options_from_text ()" link="gst-plugins-base-libs-gstrtspdefs.html#gst-rtsp-options-from-text" since="1.2"/>
+    <keyword type="function" name="gst_rtsp_options_from_text ()" link="gst-plugins-base-libs-gstrtspdefs.html#gst-rtsp-options-from-text"/>
     <keyword type="function" name="gst_rtsp_find_header_field ()" link="gst-plugins-base-libs-gstrtspdefs.html#gst-rtsp-find-header-field"/>
     <keyword type="function" name="gst_rtsp_find_method ()" link="gst-plugins-base-libs-gstrtspdefs.html#gst-rtsp-find-method"/>
     <keyword type="macro" name="GST_RTSP_AUTH_MAX" link="gst-plugins-base-libs-gstrtspdefs.html#GST-RTSP-AUTH-MAX:CAPS"/>
@@ -766,10 +768,10 @@
     <keyword type="function" name="gst_rtsp_message_take_header ()" link="gst-plugins-base-libs-gstrtspmessage.html#gst-rtsp-message-take-header"/>
     <keyword type="function" name="gst_rtsp_message_remove_header ()" link="gst-plugins-base-libs-gstrtspmessage.html#gst-rtsp-message-remove-header"/>
     <keyword type="function" name="gst_rtsp_message_get_header ()" link="gst-plugins-base-libs-gstrtspmessage.html#gst-rtsp-message-get-header"/>
-    <keyword type="function" name="gst_rtsp_message_add_header_by_name ()" link="gst-plugins-base-libs-gstrtspmessage.html#gst-rtsp-message-add-header-by-name" since="1.6"/>
-    <keyword type="function" name="gst_rtsp_message_take_header_by_name ()" link="gst-plugins-base-libs-gstrtspmessage.html#gst-rtsp-message-take-header-by-name" since="1.6"/>
-    <keyword type="function" name="gst_rtsp_message_remove_header_by_name ()" link="gst-plugins-base-libs-gstrtspmessage.html#gst-rtsp-message-remove-header-by-name" since="1.6"/>
-    <keyword type="function" name="gst_rtsp_message_get_header_by_name ()" link="gst-plugins-base-libs-gstrtspmessage.html#gst-rtsp-message-get-header-by-name" since="1.6"/>
+    <keyword type="function" name="gst_rtsp_message_add_header_by_name ()" link="gst-plugins-base-libs-gstrtspmessage.html#gst-rtsp-message-add-header-by-name"/>
+    <keyword type="function" name="gst_rtsp_message_take_header_by_name ()" link="gst-plugins-base-libs-gstrtspmessage.html#gst-rtsp-message-take-header-by-name"/>
+    <keyword type="function" name="gst_rtsp_message_remove_header_by_name ()" link="gst-plugins-base-libs-gstrtspmessage.html#gst-rtsp-message-remove-header-by-name"/>
+    <keyword type="function" name="gst_rtsp_message_get_header_by_name ()" link="gst-plugins-base-libs-gstrtspmessage.html#gst-rtsp-message-get-header-by-name"/>
     <keyword type="function" name="gst_rtsp_message_append_headers ()" link="gst-plugins-base-libs-gstrtspmessage.html#gst-rtsp-message-append-headers"/>
     <keyword type="function" name="gst_rtsp_message_set_body ()" link="gst-plugins-base-libs-gstrtspmessage.html#gst-rtsp-message-set-body"/>
     <keyword type="function" name="gst_rtsp_message_take_body ()" link="gst-plugins-base-libs-gstrtspmessage.html#gst-rtsp-message-take-body"/>
@@ -779,20 +781,20 @@
     <keyword type="enum" name="enum GstRTSPMsgType" link="gst-plugins-base-libs-gstrtspmessage.html#GstRTSPMsgType"/>
     <keyword type="struct" name="struct GstRTSPMessage" link="gst-plugins-base-libs-gstrtspmessage.html#GstRTSPMessage"/>
     <keyword type="function" name="gst_rtsp_range_parse ()" link="gst-plugins-base-libs-gstrtsprange.html#gst-rtsp-range-parse"/>
-    <keyword type="function" name="gst_rtsp_range_get_times ()" link="gst-plugins-base-libs-gstrtsprange.html#gst-rtsp-range-get-times" since="1.2"/>
+    <keyword type="function" name="gst_rtsp_range_get_times ()" link="gst-plugins-base-libs-gstrtsprange.html#gst-rtsp-range-get-times"/>
     <keyword type="function" name="gst_rtsp_range_to_string ()" link="gst-plugins-base-libs-gstrtsprange.html#gst-rtsp-range-to-string"/>
     <keyword type="function" name="gst_rtsp_range_convert_units ()" link="gst-plugins-base-libs-gstrtsprange.html#gst-rtsp-range-convert-units"/>
     <keyword type="function" name="gst_rtsp_range_free ()" link="gst-plugins-base-libs-gstrtsprange.html#gst-rtsp-range-free"/>
     <keyword type="enum" name="enum GstRTSPRangeUnit" link="gst-plugins-base-libs-gstrtsprange.html#GstRTSPRangeUnit"/>
     <keyword type="struct" name="struct GstRTSPTimeRange" link="gst-plugins-base-libs-gstrtsprange.html#GstRTSPTimeRange"/>
     <keyword type="struct" name="struct GstRTSPTime" link="gst-plugins-base-libs-gstrtsprange.html#GstRTSPTime"/>
-    <keyword type="struct" name="struct GstRTSPTime2" link="gst-plugins-base-libs-gstrtsprange.html#GstRTSPTime2" since="1.2"/>
+    <keyword type="struct" name="struct GstRTSPTime2" link="gst-plugins-base-libs-gstrtsprange.html#GstRTSPTime2"/>
     <keyword type="enum" name="enum GstRTSPTimeType" link="gst-plugins-base-libs-gstrtsprange.html#GstRTSPTimeType"/>
     <keyword type="function" name="gst_rtsp_transport_new ()" link="gst-plugins-base-libs-gstrtsptransport.html#gst-rtsp-transport-new"/>
     <keyword type="function" name="gst_rtsp_transport_init ()" link="gst-plugins-base-libs-gstrtsptransport.html#gst-rtsp-transport-init"/>
     <keyword type="function" name="gst_rtsp_transport_parse ()" link="gst-plugins-base-libs-gstrtsptransport.html#gst-rtsp-transport-parse"/>
     <keyword type="function" name="gst_rtsp_transport_as_text ()" link="gst-plugins-base-libs-gstrtsptransport.html#gst-rtsp-transport-as-text"/>
-    <keyword type="function" name="gst_rtsp_transport_get_mime ()" link="gst-plugins-base-libs-gstrtsptransport.html#gst-rtsp-transport-get-mime" deprecated=""/>
+    <keyword type="function" name="gst_rtsp_transport_get_mime ()" link="gst-plugins-base-libs-gstrtsptransport.html#gst-rtsp-transport-get-mime"/>
     <keyword type="function" name="gst_rtsp_transport_get_manager ()" link="gst-plugins-base-libs-gstrtsptransport.html#gst-rtsp-transport-get-manager"/>
     <keyword type="function" name="gst_rtsp_transport_free ()" link="gst-plugins-base-libs-gstrtsptransport.html#gst-rtsp-transport-free"/>
     <keyword type="enum" name="enum GstRTSPTransMode" link="gst-plugins-base-libs-gstrtsptransport.html#GstRTSPTransMode"/>
@@ -809,18 +811,18 @@
     <keyword type="function" name="gst_rtsp_url_decode_path_components ()" link="gst-plugins-base-libs-gstrtspurl.html#gst-rtsp-url-decode-path-components"/>
     <keyword type="macro" name="GST_RTSP_DEFAULT_PORT" link="gst-plugins-base-libs-gstrtspurl.html#GST-RTSP-DEFAULT-PORT:CAPS"/>
     <keyword type="struct" name="struct GstRTSPUrl" link="gst-plugins-base-libs-gstrtspurl.html#GstRTSPUrl"/>
-    <keyword type="function" name="gst_sdp_connection_set ()" link="gst-plugins-base-libs-gstsdpmessage.html#gst-sdp-connection-set" since="1.2"/>
-    <keyword type="function" name="gst_sdp_connection_clear ()" link="gst-plugins-base-libs-gstsdpmessage.html#gst-sdp-connection-clear" since="1.2"/>
-    <keyword type="function" name="gst_sdp_bandwidth_set ()" link="gst-plugins-base-libs-gstsdpmessage.html#gst-sdp-bandwidth-set" since="1.2"/>
-    <keyword type="function" name="gst_sdp_bandwidth_clear ()" link="gst-plugins-base-libs-gstsdpmessage.html#gst-sdp-bandwidth-clear" since="1.2"/>
-    <keyword type="function" name="gst_sdp_time_set ()" link="gst-plugins-base-libs-gstsdpmessage.html#gst-sdp-time-set" since="1.2"/>
-    <keyword type="function" name="gst_sdp_time_clear ()" link="gst-plugins-base-libs-gstsdpmessage.html#gst-sdp-time-clear" since="1.2"/>
-    <keyword type="function" name="gst_sdp_zone_set ()" link="gst-plugins-base-libs-gstsdpmessage.html#gst-sdp-zone-set" since="1.2"/>
-    <keyword type="function" name="gst_sdp_zone_clear ()" link="gst-plugins-base-libs-gstsdpmessage.html#gst-sdp-zone-clear" since="1.2"/>
-    <keyword type="function" name="gst_sdp_attribute_set ()" link="gst-plugins-base-libs-gstsdpmessage.html#gst-sdp-attribute-set" since="1.2"/>
-    <keyword type="function" name="gst_sdp_attribute_clear ()" link="gst-plugins-base-libs-gstsdpmessage.html#gst-sdp-attribute-clear" since="1.2"/>
+    <keyword type="function" name="gst_sdp_connection_set ()" link="gst-plugins-base-libs-gstsdpmessage.html#gst-sdp-connection-set"/>
+    <keyword type="function" name="gst_sdp_connection_clear ()" link="gst-plugins-base-libs-gstsdpmessage.html#gst-sdp-connection-clear"/>
+    <keyword type="function" name="gst_sdp_bandwidth_set ()" link="gst-plugins-base-libs-gstsdpmessage.html#gst-sdp-bandwidth-set"/>
+    <keyword type="function" name="gst_sdp_bandwidth_clear ()" link="gst-plugins-base-libs-gstsdpmessage.html#gst-sdp-bandwidth-clear"/>
+    <keyword type="function" name="gst_sdp_time_set ()" link="gst-plugins-base-libs-gstsdpmessage.html#gst-sdp-time-set"/>
+    <keyword type="function" name="gst_sdp_time_clear ()" link="gst-plugins-base-libs-gstsdpmessage.html#gst-sdp-time-clear"/>
+    <keyword type="function" name="gst_sdp_zone_set ()" link="gst-plugins-base-libs-gstsdpmessage.html#gst-sdp-zone-set"/>
+    <keyword type="function" name="gst_sdp_zone_clear ()" link="gst-plugins-base-libs-gstsdpmessage.html#gst-sdp-zone-clear"/>
+    <keyword type="function" name="gst_sdp_attribute_set ()" link="gst-plugins-base-libs-gstsdpmessage.html#gst-sdp-attribute-set"/>
+    <keyword type="function" name="gst_sdp_attribute_clear ()" link="gst-plugins-base-libs-gstsdpmessage.html#gst-sdp-attribute-clear"/>
     <keyword type="function" name="gst_sdp_message_new ()" link="gst-plugins-base-libs-gstsdpmessage.html#gst-sdp-message-new"/>
-    <keyword type="function" name="gst_sdp_message_copy ()" link="gst-plugins-base-libs-gstsdpmessage.html#gst-sdp-message-copy" since="1.2"/>
+    <keyword type="function" name="gst_sdp_message_copy ()" link="gst-plugins-base-libs-gstsdpmessage.html#gst-sdp-message-copy"/>
     <keyword type="function" name="gst_sdp_message_init ()" link="gst-plugins-base-libs-gstsdpmessage.html#gst-sdp-message-init"/>
     <keyword type="function" name="gst_sdp_message_uninit ()" link="gst-plugins-base-libs-gstsdpmessage.html#gst-sdp-message-uninit"/>
     <keyword type="function" name="gst_sdp_message_free ()" link="gst-plugins-base-libs-gstsdpmessage.html#gst-sdp-message-free"/>
@@ -841,35 +843,35 @@
     <keyword type="function" name="gst_sdp_message_set_uri ()" link="gst-plugins-base-libs-gstsdpmessage.html#gst-sdp-message-set-uri"/>
     <keyword type="function" name="gst_sdp_message_emails_len ()" link="gst-plugins-base-libs-gstsdpmessage.html#gst-sdp-message-emails-len"/>
     <keyword type="function" name="gst_sdp_message_get_email ()" link="gst-plugins-base-libs-gstsdpmessage.html#gst-sdp-message-get-email"/>
-    <keyword type="function" name="gst_sdp_message_insert_email ()" link="gst-plugins-base-libs-gstsdpmessage.html#gst-sdp-message-insert-email" since="1.2"/>
-    <keyword type="function" name="gst_sdp_message_replace_email ()" link="gst-plugins-base-libs-gstsdpmessage.html#gst-sdp-message-replace-email" since="1.2"/>
-    <keyword type="function" name="gst_sdp_message_remove_email ()" link="gst-plugins-base-libs-gstsdpmessage.html#gst-sdp-message-remove-email" since="1.2"/>
+    <keyword type="function" name="gst_sdp_message_insert_email ()" link="gst-plugins-base-libs-gstsdpmessage.html#gst-sdp-message-insert-email"/>
+    <keyword type="function" name="gst_sdp_message_replace_email ()" link="gst-plugins-base-libs-gstsdpmessage.html#gst-sdp-message-replace-email"/>
+    <keyword type="function" name="gst_sdp_message_remove_email ()" link="gst-plugins-base-libs-gstsdpmessage.html#gst-sdp-message-remove-email"/>
     <keyword type="function" name="gst_sdp_message_add_email ()" link="gst-plugins-base-libs-gstsdpmessage.html#gst-sdp-message-add-email"/>
     <keyword type="function" name="gst_sdp_message_phones_len ()" link="gst-plugins-base-libs-gstsdpmessage.html#gst-sdp-message-phones-len"/>
     <keyword type="function" name="gst_sdp_message_get_phone ()" link="gst-plugins-base-libs-gstsdpmessage.html#gst-sdp-message-get-phone"/>
-    <keyword type="function" name="gst_sdp_message_insert_phone ()" link="gst-plugins-base-libs-gstsdpmessage.html#gst-sdp-message-insert-phone" since="1.2"/>
-    <keyword type="function" name="gst_sdp_message_replace_phone ()" link="gst-plugins-base-libs-gstsdpmessage.html#gst-sdp-message-replace-phone" since="1.2"/>
-    <keyword type="function" name="gst_sdp_message_remove_phone ()" link="gst-plugins-base-libs-gstsdpmessage.html#gst-sdp-message-remove-phone" since="1.2"/>
+    <keyword type="function" name="gst_sdp_message_insert_phone ()" link="gst-plugins-base-libs-gstsdpmessage.html#gst-sdp-message-insert-phone"/>
+    <keyword type="function" name="gst_sdp_message_replace_phone ()" link="gst-plugins-base-libs-gstsdpmessage.html#gst-sdp-message-replace-phone"/>
+    <keyword type="function" name="gst_sdp_message_remove_phone ()" link="gst-plugins-base-libs-gstsdpmessage.html#gst-sdp-message-remove-phone"/>
     <keyword type="function" name="gst_sdp_message_add_phone ()" link="gst-plugins-base-libs-gstsdpmessage.html#gst-sdp-message-add-phone"/>
     <keyword type="function" name="gst_sdp_message_get_connection ()" link="gst-plugins-base-libs-gstsdpmessage.html#gst-sdp-message-get-connection"/>
     <keyword type="function" name="gst_sdp_message_set_connection ()" link="gst-plugins-base-libs-gstsdpmessage.html#gst-sdp-message-set-connection"/>
     <keyword type="function" name="gst_sdp_message_bandwidths_len ()" link="gst-plugins-base-libs-gstsdpmessage.html#gst-sdp-message-bandwidths-len"/>
     <keyword type="function" name="gst_sdp_message_get_bandwidth ()" link="gst-plugins-base-libs-gstsdpmessage.html#gst-sdp-message-get-bandwidth"/>
-    <keyword type="function" name="gst_sdp_message_insert_bandwidth ()" link="gst-plugins-base-libs-gstsdpmessage.html#gst-sdp-message-insert-bandwidth" since="1.2"/>
-    <keyword type="function" name="gst_sdp_message_replace_bandwidth ()" link="gst-plugins-base-libs-gstsdpmessage.html#gst-sdp-message-replace-bandwidth" since="1.2"/>
-    <keyword type="function" name="gst_sdp_message_remove_bandwidth ()" link="gst-plugins-base-libs-gstsdpmessage.html#gst-sdp-message-remove-bandwidth" since="1.2"/>
+    <keyword type="function" name="gst_sdp_message_insert_bandwidth ()" link="gst-plugins-base-libs-gstsdpmessage.html#gst-sdp-message-insert-bandwidth"/>
+    <keyword type="function" name="gst_sdp_message_replace_bandwidth ()" link="gst-plugins-base-libs-gstsdpmessage.html#gst-sdp-message-replace-bandwidth"/>
+    <keyword type="function" name="gst_sdp_message_remove_bandwidth ()" link="gst-plugins-base-libs-gstsdpmessage.html#gst-sdp-message-remove-bandwidth"/>
     <keyword type="function" name="gst_sdp_message_add_bandwidth ()" link="gst-plugins-base-libs-gstsdpmessage.html#gst-sdp-message-add-bandwidth"/>
     <keyword type="function" name="gst_sdp_message_times_len ()" link="gst-plugins-base-libs-gstsdpmessage.html#gst-sdp-message-times-len"/>
     <keyword type="function" name="gst_sdp_message_get_time ()" link="gst-plugins-base-libs-gstsdpmessage.html#gst-sdp-message-get-time"/>
-    <keyword type="function" name="gst_sdp_message_insert_time ()" link="gst-plugins-base-libs-gstsdpmessage.html#gst-sdp-message-insert-time" since="1.2"/>
-    <keyword type="function" name="gst_sdp_message_replace_time ()" link="gst-plugins-base-libs-gstsdpmessage.html#gst-sdp-message-replace-time" since="1.2"/>
-    <keyword type="function" name="gst_sdp_message_remove_time ()" link="gst-plugins-base-libs-gstsdpmessage.html#gst-sdp-message-remove-time" since="1.2"/>
+    <keyword type="function" name="gst_sdp_message_insert_time ()" link="gst-plugins-base-libs-gstsdpmessage.html#gst-sdp-message-insert-time"/>
+    <keyword type="function" name="gst_sdp_message_replace_time ()" link="gst-plugins-base-libs-gstsdpmessage.html#gst-sdp-message-replace-time"/>
+    <keyword type="function" name="gst_sdp_message_remove_time ()" link="gst-plugins-base-libs-gstsdpmessage.html#gst-sdp-message-remove-time"/>
     <keyword type="function" name="gst_sdp_message_add_time ()" link="gst-plugins-base-libs-gstsdpmessage.html#gst-sdp-message-add-time"/>
     <keyword type="function" name="gst_sdp_message_zones_len ()" link="gst-plugins-base-libs-gstsdpmessage.html#gst-sdp-message-zones-len"/>
     <keyword type="function" name="gst_sdp_message_get_zone ()" link="gst-plugins-base-libs-gstsdpmessage.html#gst-sdp-message-get-zone"/>
-    <keyword type="function" name="gst_sdp_message_insert_zone ()" link="gst-plugins-base-libs-gstsdpmessage.html#gst-sdp-message-insert-zone" since="1.2"/>
-    <keyword type="function" name="gst_sdp_message_replace_zone ()" link="gst-plugins-base-libs-gstsdpmessage.html#gst-sdp-message-replace-zone" since="1.2"/>
-    <keyword type="function" name="gst_sdp_message_remove_zone ()" link="gst-plugins-base-libs-gstsdpmessage.html#gst-sdp-message-remove-zone" since="1.2"/>
+    <keyword type="function" name="gst_sdp_message_insert_zone ()" link="gst-plugins-base-libs-gstsdpmessage.html#gst-sdp-message-insert-zone"/>
+    <keyword type="function" name="gst_sdp_message_replace_zone ()" link="gst-plugins-base-libs-gstsdpmessage.html#gst-sdp-message-replace-zone"/>
+    <keyword type="function" name="gst_sdp_message_remove_zone ()" link="gst-plugins-base-libs-gstsdpmessage.html#gst-sdp-message-remove-zone"/>
     <keyword type="function" name="gst_sdp_message_add_zone ()" link="gst-plugins-base-libs-gstsdpmessage.html#gst-sdp-message-add-zone"/>
     <keyword type="function" name="gst_sdp_message_get_key ()" link="gst-plugins-base-libs-gstsdpmessage.html#gst-sdp-message-get-key"/>
     <keyword type="function" name="gst_sdp_message_set_key ()" link="gst-plugins-base-libs-gstsdpmessage.html#gst-sdp-message-set-key"/>
@@ -877,16 +879,16 @@
     <keyword type="function" name="gst_sdp_message_get_attribute ()" link="gst-plugins-base-libs-gstsdpmessage.html#gst-sdp-message-get-attribute"/>
     <keyword type="function" name="gst_sdp_message_get_attribute_val ()" link="gst-plugins-base-libs-gstsdpmessage.html#gst-sdp-message-get-attribute-val"/>
     <keyword type="function" name="gst_sdp_message_get_attribute_val_n ()" link="gst-plugins-base-libs-gstsdpmessage.html#gst-sdp-message-get-attribute-val-n"/>
-    <keyword type="function" name="gst_sdp_message_insert_attribute ()" link="gst-plugins-base-libs-gstsdpmessage.html#gst-sdp-message-insert-attribute" since="1.2"/>
-    <keyword type="function" name="gst_sdp_message_replace_attribute ()" link="gst-plugins-base-libs-gstsdpmessage.html#gst-sdp-message-replace-attribute" since="1.2"/>
-    <keyword type="function" name="gst_sdp_message_remove_attribute ()" link="gst-plugins-base-libs-gstsdpmessage.html#gst-sdp-message-remove-attribute" since="1.2"/>
+    <keyword type="function" name="gst_sdp_message_insert_attribute ()" link="gst-plugins-base-libs-gstsdpmessage.html#gst-sdp-message-insert-attribute"/>
+    <keyword type="function" name="gst_sdp_message_replace_attribute ()" link="gst-plugins-base-libs-gstsdpmessage.html#gst-sdp-message-replace-attribute"/>
+    <keyword type="function" name="gst_sdp_message_remove_attribute ()" link="gst-plugins-base-libs-gstsdpmessage.html#gst-sdp-message-remove-attribute"/>
     <keyword type="function" name="gst_sdp_message_add_attribute ()" link="gst-plugins-base-libs-gstsdpmessage.html#gst-sdp-message-add-attribute"/>
     <keyword type="function" name="gst_sdp_message_medias_len ()" link="gst-plugins-base-libs-gstsdpmessage.html#gst-sdp-message-medias-len"/>
     <keyword type="function" name="gst_sdp_message_get_media ()" link="gst-plugins-base-libs-gstsdpmessage.html#gst-sdp-message-get-media"/>
     <keyword type="function" name="gst_sdp_message_add_media ()" link="gst-plugins-base-libs-gstsdpmessage.html#gst-sdp-message-add-media"/>
     <keyword type="function" name="gst_sdp_message_dump ()" link="gst-plugins-base-libs-gstsdpmessage.html#gst-sdp-message-dump"/>
     <keyword type="function" name="gst_sdp_media_new ()" link="gst-plugins-base-libs-gstsdpmessage.html#gst-sdp-media-new"/>
-    <keyword type="function" name="gst_sdp_media_copy ()" link="gst-plugins-base-libs-gstsdpmessage.html#gst-sdp-media-copy" since="1.2"/>
+    <keyword type="function" name="gst_sdp_media_copy ()" link="gst-plugins-base-libs-gstsdpmessage.html#gst-sdp-media-copy"/>
     <keyword type="function" name="gst_sdp_media_init ()" link="gst-plugins-base-libs-gstsdpmessage.html#gst-sdp-media-init"/>
     <keyword type="function" name="gst_sdp_media_uninit ()" link="gst-plugins-base-libs-gstsdpmessage.html#gst-sdp-media-uninit"/>
     <keyword type="function" name="gst_sdp_media_free ()" link="gst-plugins-base-libs-gstsdpmessage.html#gst-sdp-media-free"/>
@@ -900,23 +902,23 @@
     <keyword type="function" name="gst_sdp_media_set_proto ()" link="gst-plugins-base-libs-gstsdpmessage.html#gst-sdp-media-set-proto"/>
     <keyword type="function" name="gst_sdp_media_formats_len ()" link="gst-plugins-base-libs-gstsdpmessage.html#gst-sdp-media-formats-len"/>
     <keyword type="function" name="gst_sdp_media_get_format ()" link="gst-plugins-base-libs-gstsdpmessage.html#gst-sdp-media-get-format"/>
-    <keyword type="function" name="gst_sdp_media_insert_format ()" link="gst-plugins-base-libs-gstsdpmessage.html#gst-sdp-media-insert-format" since="1.2"/>
-    <keyword type="function" name="gst_sdp_media_replace_format ()" link="gst-plugins-base-libs-gstsdpmessage.html#gst-sdp-media-replace-format" since="1.2"/>
-    <keyword type="function" name="gst_sdp_media_remove_format ()" link="gst-plugins-base-libs-gstsdpmessage.html#gst-sdp-media-remove-format" since="1.2"/>
+    <keyword type="function" name="gst_sdp_media_insert_format ()" link="gst-plugins-base-libs-gstsdpmessage.html#gst-sdp-media-insert-format"/>
+    <keyword type="function" name="gst_sdp_media_replace_format ()" link="gst-plugins-base-libs-gstsdpmessage.html#gst-sdp-media-replace-format"/>
+    <keyword type="function" name="gst_sdp_media_remove_format ()" link="gst-plugins-base-libs-gstsdpmessage.html#gst-sdp-media-remove-format"/>
     <keyword type="function" name="gst_sdp_media_add_format ()" link="gst-plugins-base-libs-gstsdpmessage.html#gst-sdp-media-add-format"/>
     <keyword type="function" name="gst_sdp_media_get_information ()" link="gst-plugins-base-libs-gstsdpmessage.html#gst-sdp-media-get-information"/>
     <keyword type="function" name="gst_sdp_media_set_information ()" link="gst-plugins-base-libs-gstsdpmessage.html#gst-sdp-media-set-information"/>
     <keyword type="function" name="gst_sdp_media_connections_len ()" link="gst-plugins-base-libs-gstsdpmessage.html#gst-sdp-media-connections-len"/>
     <keyword type="function" name="gst_sdp_media_get_connection ()" link="gst-plugins-base-libs-gstsdpmessage.html#gst-sdp-media-get-connection"/>
-    <keyword type="function" name="gst_sdp_media_insert_connection ()" link="gst-plugins-base-libs-gstsdpmessage.html#gst-sdp-media-insert-connection" since="1.2"/>
-    <keyword type="function" name="gst_sdp_media_replace_connection ()" link="gst-plugins-base-libs-gstsdpmessage.html#gst-sdp-media-replace-connection" since="1.2"/>
-    <keyword type="function" name="gst_sdp_media_remove_connection ()" link="gst-plugins-base-libs-gstsdpmessage.html#gst-sdp-media-remove-connection" since="1.2"/>
+    <keyword type="function" name="gst_sdp_media_insert_connection ()" link="gst-plugins-base-libs-gstsdpmessage.html#gst-sdp-media-insert-connection"/>
+    <keyword type="function" name="gst_sdp_media_replace_connection ()" link="gst-plugins-base-libs-gstsdpmessage.html#gst-sdp-media-replace-connection"/>
+    <keyword type="function" name="gst_sdp_media_remove_connection ()" link="gst-plugins-base-libs-gstsdpmessage.html#gst-sdp-media-remove-connection"/>
     <keyword type="function" name="gst_sdp_media_add_connection ()" link="gst-plugins-base-libs-gstsdpmessage.html#gst-sdp-media-add-connection"/>
     <keyword type="function" name="gst_sdp_media_bandwidths_len ()" link="gst-plugins-base-libs-gstsdpmessage.html#gst-sdp-media-bandwidths-len"/>
     <keyword type="function" name="gst_sdp_media_get_bandwidth ()" link="gst-plugins-base-libs-gstsdpmessage.html#gst-sdp-media-get-bandwidth"/>
-    <keyword type="function" name="gst_sdp_media_insert_bandwidth ()" link="gst-plugins-base-libs-gstsdpmessage.html#gst-sdp-media-insert-bandwidth" since="1.2"/>
-    <keyword type="function" name="gst_sdp_media_replace_bandwidth ()" link="gst-plugins-base-libs-gstsdpmessage.html#gst-sdp-media-replace-bandwidth" since="1.2"/>
-    <keyword type="function" name="gst_sdp_media_remove_bandwidth ()" link="gst-plugins-base-libs-gstsdpmessage.html#gst-sdp-media-remove-bandwidth" since="1.2"/>
+    <keyword type="function" name="gst_sdp_media_insert_bandwidth ()" link="gst-plugins-base-libs-gstsdpmessage.html#gst-sdp-media-insert-bandwidth"/>
+    <keyword type="function" name="gst_sdp_media_replace_bandwidth ()" link="gst-plugins-base-libs-gstsdpmessage.html#gst-sdp-media-replace-bandwidth"/>
+    <keyword type="function" name="gst_sdp_media_remove_bandwidth ()" link="gst-plugins-base-libs-gstsdpmessage.html#gst-sdp-media-remove-bandwidth"/>
     <keyword type="function" name="gst_sdp_media_add_bandwidth ()" link="gst-plugins-base-libs-gstsdpmessage.html#gst-sdp-media-add-bandwidth"/>
     <keyword type="function" name="gst_sdp_media_get_key ()" link="gst-plugins-base-libs-gstsdpmessage.html#gst-sdp-media-get-key"/>
     <keyword type="function" name="gst_sdp_media_set_key ()" link="gst-plugins-base-libs-gstsdpmessage.html#gst-sdp-media-set-key"/>
@@ -924,15 +926,15 @@
     <keyword type="function" name="gst_sdp_media_get_attribute ()" link="gst-plugins-base-libs-gstsdpmessage.html#gst-sdp-media-get-attribute"/>
     <keyword type="function" name="gst_sdp_media_get_attribute_val ()" link="gst-plugins-base-libs-gstsdpmessage.html#gst-sdp-media-get-attribute-val"/>
     <keyword type="function" name="gst_sdp_media_get_attribute_val_n ()" link="gst-plugins-base-libs-gstsdpmessage.html#gst-sdp-media-get-attribute-val-n"/>
-    <keyword type="function" name="gst_sdp_media_insert_attribute ()" link="gst-plugins-base-libs-gstsdpmessage.html#gst-sdp-media-insert-attribute" since="1.2"/>
-    <keyword type="function" name="gst_sdp_media_replace_attribute ()" link="gst-plugins-base-libs-gstsdpmessage.html#gst-sdp-media-replace-attribute" since="1.2"/>
-    <keyword type="function" name="gst_sdp_media_remove_attribute ()" link="gst-plugins-base-libs-gstsdpmessage.html#gst-sdp-media-remove-attribute" since="1.2"/>
+    <keyword type="function" name="gst_sdp_media_insert_attribute ()" link="gst-plugins-base-libs-gstsdpmessage.html#gst-sdp-media-insert-attribute"/>
+    <keyword type="function" name="gst_sdp_media_replace_attribute ()" link="gst-plugins-base-libs-gstsdpmessage.html#gst-sdp-media-replace-attribute"/>
+    <keyword type="function" name="gst_sdp_media_remove_attribute ()" link="gst-plugins-base-libs-gstsdpmessage.html#gst-sdp-media-remove-attribute"/>
     <keyword type="function" name="gst_sdp_media_add_attribute ()" link="gst-plugins-base-libs-gstsdpmessage.html#gst-sdp-media-add-attribute"/>
-    <keyword type="function" name="gst_sdp_media_get_caps_from_media ()" link="gst-plugins-base-libs-gstsdpmessage.html#gst-sdp-media-get-caps-from-media" since="1.8"/>
-    <keyword type="function" name="gst_sdp_media_set_media_from_caps ()" link="gst-plugins-base-libs-gstsdpmessage.html#gst-sdp-media-set-media-from-caps" since="1.8"/>
-    <keyword type="function" name="gst_sdp_make_keymgmt ()" link="gst-plugins-base-libs-gstsdpmessage.html#gst-sdp-make-keymgmt" since="1.8"/>
-    <keyword type="function" name="gst_sdp_message_attributes_to_caps ()" link="gst-plugins-base-libs-gstsdpmessage.html#gst-sdp-message-attributes-to-caps" since="1.8"/>
-    <keyword type="function" name="gst_sdp_media_attributes_to_caps ()" link="gst-plugins-base-libs-gstsdpmessage.html#gst-sdp-media-attributes-to-caps" since="1.8"/>
+    <keyword type="function" name="gst_sdp_media_get_caps_from_media ()" link="gst-plugins-base-libs-gstsdpmessage.html#gst-sdp-media-get-caps-from-media"/>
+    <keyword type="function" name="gst_sdp_media_set_media_from_caps ()" link="gst-plugins-base-libs-gstsdpmessage.html#gst-sdp-media-set-media-from-caps"/>
+    <keyword type="function" name="gst_sdp_make_keymgmt ()" link="gst-plugins-base-libs-gstsdpmessage.html#gst-sdp-make-keymgmt"/>
+    <keyword type="function" name="gst_sdp_message_attributes_to_caps ()" link="gst-plugins-base-libs-gstsdpmessage.html#gst-sdp-message-attributes-to-caps"/>
+    <keyword type="function" name="gst_sdp_media_attributes_to_caps ()" link="gst-plugins-base-libs-gstsdpmessage.html#gst-sdp-media-attributes-to-caps"/>
     <keyword type="enum" name="enum GstSDPResult" link="gst-plugins-base-libs-gstsdpmessage.html#GstSDPResult"/>
     <keyword type="struct" name="GstSDPOrigin" link="gst-plugins-base-libs-gstsdpmessage.html#GstSDPOrigin"/>
     <keyword type="struct" name="GstSDPConnection" link="gst-plugins-base-libs-gstsdpmessage.html#GstSDPConnection"/>
@@ -949,55 +951,55 @@
     <keyword type="struct" name="GstSDPAttribute" link="gst-plugins-base-libs-gstsdpmessage.html#GstSDPAttribute"/>
     <keyword type="struct" name="GstSDPMedia" link="gst-plugins-base-libs-gstsdpmessage.html#GstSDPMedia"/>
     <keyword type="struct" name="GstSDPMessage" link="gst-plugins-base-libs-gstsdpmessage.html#GstSDPMessage"/>
-    <keyword type="function" name="gst_mikey_message_new ()" link="gst-plugins-base-libs-gstmikey.html#gst-mikey-message-new" since="1.4"/>
-    <keyword type="function" name="gst_mikey_message_new_from_bytes ()" link="gst-plugins-base-libs-gstmikey.html#gst-mikey-message-new-from-bytes" since="1.4"/>
-    <keyword type="function" name="gst_mikey_message_new_from_caps ()" link="gst-plugins-base-libs-gstmikey.html#gst-mikey-message-new-from-caps" since="1.8"/>
-    <keyword type="function" name="gst_mikey_message_new_from_data ()" link="gst-plugins-base-libs-gstmikey.html#gst-mikey-message-new-from-data" since="1.4"/>
-    <keyword type="function" name="gst_mikey_message_to_bytes ()" link="gst-plugins-base-libs-gstmikey.html#gst-mikey-message-to-bytes" since="1.4"/>
-    <keyword type="function" name="gst_mikey_message_base64_encode ()" link="gst-plugins-base-libs-gstmikey.html#gst-mikey-message-base64-encode" since="1.8"/>
-    <keyword type="function" name="gst_mikey_message_copy ()" link="gst-plugins-base-libs-gstmikey.html#gst-mikey-message-copy" since="1.4"/>
-    <keyword type="function" name="gst_mikey_message_ref ()" link="gst-plugins-base-libs-gstmikey.html#gst-mikey-message-ref" since="1.4"/>
-    <keyword type="function" name="gst_mikey_message_unref ()" link="gst-plugins-base-libs-gstmikey.html#gst-mikey-message-unref" since="1.4"/>
-    <keyword type="function" name="gst_mikey_message_set_info ()" link="gst-plugins-base-libs-gstmikey.html#gst-mikey-message-set-info" since="1.4"/>
-    <keyword type="function" name="gst_mikey_message_get_n_cs ()" link="gst-plugins-base-libs-gstmikey.html#gst-mikey-message-get-n-cs" since="1.4"/>
-    <keyword type="function" name="gst_mikey_message_get_cs_srtp ()" link="gst-plugins-base-libs-gstmikey.html#gst-mikey-message-get-cs-srtp" since="1.4"/>
-    <keyword type="function" name="gst_mikey_message_insert_cs_srtp ()" link="gst-plugins-base-libs-gstmikey.html#gst-mikey-message-insert-cs-srtp" since="1.4"/>
-    <keyword type="function" name="gst_mikey_message_remove_cs_srtp ()" link="gst-plugins-base-libs-gstmikey.html#gst-mikey-message-remove-cs-srtp" since="1.4"/>
-    <keyword type="function" name="gst_mikey_message_replace_cs_srtp ()" link="gst-plugins-base-libs-gstmikey.html#gst-mikey-message-replace-cs-srtp" since="1.4"/>
-    <keyword type="function" name="gst_mikey_message_add_cs_srtp ()" link="gst-plugins-base-libs-gstmikey.html#gst-mikey-message-add-cs-srtp" since="1.4"/>
-    <keyword type="function" name="gst_mikey_message_get_n_payloads ()" link="gst-plugins-base-libs-gstmikey.html#gst-mikey-message-get-n-payloads" since="1.4"/>
-    <keyword type="function" name="gst_mikey_message_get_payload ()" link="gst-plugins-base-libs-gstmikey.html#gst-mikey-message-get-payload" since="1.4"/>
-    <keyword type="function" name="gst_mikey_message_find_payload ()" link="gst-plugins-base-libs-gstmikey.html#gst-mikey-message-find-payload" since="1.4"/>
-    <keyword type="function" name="gst_mikey_message_insert_payload ()" link="gst-plugins-base-libs-gstmikey.html#gst-mikey-message-insert-payload" since="1.4"/>
-    <keyword type="function" name="gst_mikey_message_remove_payload ()" link="gst-plugins-base-libs-gstmikey.html#gst-mikey-message-remove-payload" since="1.4"/>
-    <keyword type="function" name="gst_mikey_message_replace_payload ()" link="gst-plugins-base-libs-gstmikey.html#gst-mikey-message-replace-payload" since="1.4"/>
-    <keyword type="function" name="gst_mikey_message_add_payload ()" link="gst-plugins-base-libs-gstmikey.html#gst-mikey-message-add-payload" since="1.4"/>
-    <keyword type="function" name="gst_mikey_payload_new ()" link="gst-plugins-base-libs-gstmikey.html#gst-mikey-payload-new" since="1.4"/>
-    <keyword type="function" name="gst_mikey_payload_copy ()" link="gst-plugins-base-libs-gstmikey.html#gst-mikey-payload-copy" since="1.4"/>
-    <keyword type="function" name="gst_mikey_payload_key_data_set_interval ()" link="gst-plugins-base-libs-gstmikey.html#gst-mikey-payload-key-data-set-interval" since="1.4"/>
-    <keyword type="function" name="gst_mikey_payload_key_data_set_key ()" link="gst-plugins-base-libs-gstmikey.html#gst-mikey-payload-key-data-set-key" since="1.4"/>
-    <keyword type="function" name="gst_mikey_payload_key_data_set_salt ()" link="gst-plugins-base-libs-gstmikey.html#gst-mikey-payload-key-data-set-salt" since="1.4"/>
-    <keyword type="function" name="gst_mikey_payload_key_data_set_spi ()" link="gst-plugins-base-libs-gstmikey.html#gst-mikey-payload-key-data-set-spi" since="1.4"/>
-    <keyword type="function" name="gst_mikey_payload_ref ()" link="gst-plugins-base-libs-gstmikey.html#gst-mikey-payload-ref" since="1.4"/>
-    <keyword type="function" name="gst_mikey_payload_unref ()" link="gst-plugins-base-libs-gstmikey.html#gst-mikey-payload-unref" since="1.4"/>
-    <keyword type="function" name="gst_mikey_payload_kemac_set ()" link="gst-plugins-base-libs-gstmikey.html#gst-mikey-payload-kemac-set" since="1.4"/>
-    <keyword type="function" name="gst_mikey_payload_kemac_add_sub ()" link="gst-plugins-base-libs-gstmikey.html#gst-mikey-payload-kemac-add-sub" since="1.4"/>
-    <keyword type="function" name="gst_mikey_payload_kemac_get_n_sub ()" link="gst-plugins-base-libs-gstmikey.html#gst-mikey-payload-kemac-get-n-sub" since="1.4"/>
-    <keyword type="function" name="gst_mikey_payload_kemac_get_sub ()" link="gst-plugins-base-libs-gstmikey.html#gst-mikey-payload-kemac-get-sub" since="1.4"/>
-    <keyword type="function" name="gst_mikey_payload_kemac_remove_sub ()" link="gst-plugins-base-libs-gstmikey.html#gst-mikey-payload-kemac-remove-sub" since="1.4"/>
-    <keyword type="function" name="gst_mikey_payload_pke_set ()" link="gst-plugins-base-libs-gstmikey.html#gst-mikey-payload-pke-set" since="1.4"/>
-    <keyword type="function" name="gst_mikey_message_add_pke ()" link="gst-plugins-base-libs-gstmikey.html#gst-mikey-message-add-pke" since="1.4"/>
-    <keyword type="function" name="gst_mikey_payload_t_set ()" link="gst-plugins-base-libs-gstmikey.html#gst-mikey-payload-t-set" since="1.4"/>
-    <keyword type="function" name="gst_mikey_message_add_t ()" link="gst-plugins-base-libs-gstmikey.html#gst-mikey-message-add-t" since="1.4"/>
-    <keyword type="function" name="gst_mikey_message_add_t_now_ntp_utc ()" link="gst-plugins-base-libs-gstmikey.html#gst-mikey-message-add-t-now-ntp-utc" since="1.4"/>
-    <keyword type="function" name="gst_mikey_payload_rand_set ()" link="gst-plugins-base-libs-gstmikey.html#gst-mikey-payload-rand-set" since="1.4"/>
-    <keyword type="function" name="gst_mikey_message_add_rand ()" link="gst-plugins-base-libs-gstmikey.html#gst-mikey-message-add-rand" since="1.4"/>
-    <keyword type="function" name="gst_mikey_message_add_rand_len ()" link="gst-plugins-base-libs-gstmikey.html#gst-mikey-message-add-rand-len" since="1.4"/>
-    <keyword type="function" name="gst_mikey_payload_sp_set ()" link="gst-plugins-base-libs-gstmikey.html#gst-mikey-payload-sp-set" since="1.4"/>
-    <keyword type="function" name="gst_mikey_payload_sp_get_n_params ()" link="gst-plugins-base-libs-gstmikey.html#gst-mikey-payload-sp-get-n-params" since="1.4"/>
-    <keyword type="function" name="gst_mikey_payload_sp_get_param ()" link="gst-plugins-base-libs-gstmikey.html#gst-mikey-payload-sp-get-param" since="1.4"/>
-    <keyword type="function" name="gst_mikey_payload_sp_add_param ()" link="gst-plugins-base-libs-gstmikey.html#gst-mikey-payload-sp-add-param" since="1.4"/>
-    <keyword type="function" name="gst_mikey_payload_sp_remove_param ()" link="gst-plugins-base-libs-gstmikey.html#gst-mikey-payload-sp-remove-param" since="1.4"/>
+    <keyword type="function" name="gst_mikey_message_new ()" link="gst-plugins-base-libs-gstmikey.html#gst-mikey-message-new"/>
+    <keyword type="function" name="gst_mikey_message_new_from_bytes ()" link="gst-plugins-base-libs-gstmikey.html#gst-mikey-message-new-from-bytes"/>
+    <keyword type="function" name="gst_mikey_message_new_from_caps ()" link="gst-plugins-base-libs-gstmikey.html#gst-mikey-message-new-from-caps"/>
+    <keyword type="function" name="gst_mikey_message_new_from_data ()" link="gst-plugins-base-libs-gstmikey.html#gst-mikey-message-new-from-data"/>
+    <keyword type="function" name="gst_mikey_message_to_bytes ()" link="gst-plugins-base-libs-gstmikey.html#gst-mikey-message-to-bytes"/>
+    <keyword type="function" name="gst_mikey_message_base64_encode ()" link="gst-plugins-base-libs-gstmikey.html#gst-mikey-message-base64-encode"/>
+    <keyword type="function" name="gst_mikey_message_copy ()" link="gst-plugins-base-libs-gstmikey.html#gst-mikey-message-copy"/>
+    <keyword type="function" name="gst_mikey_message_ref ()" link="gst-plugins-base-libs-gstmikey.html#gst-mikey-message-ref"/>
+    <keyword type="function" name="gst_mikey_message_unref ()" link="gst-plugins-base-libs-gstmikey.html#gst-mikey-message-unref"/>
+    <keyword type="function" name="gst_mikey_message_set_info ()" link="gst-plugins-base-libs-gstmikey.html#gst-mikey-message-set-info"/>
+    <keyword type="function" name="gst_mikey_message_get_n_cs ()" link="gst-plugins-base-libs-gstmikey.html#gst-mikey-message-get-n-cs"/>
+    <keyword type="function" name="gst_mikey_message_get_cs_srtp ()" link="gst-plugins-base-libs-gstmikey.html#gst-mikey-message-get-cs-srtp"/>
+    <keyword type="function" name="gst_mikey_message_insert_cs_srtp ()" link="gst-plugins-base-libs-gstmikey.html#gst-mikey-message-insert-cs-srtp"/>
+    <keyword type="function" name="gst_mikey_message_remove_cs_srtp ()" link="gst-plugins-base-libs-gstmikey.html#gst-mikey-message-remove-cs-srtp"/>
+    <keyword type="function" name="gst_mikey_message_replace_cs_srtp ()" link="gst-plugins-base-libs-gstmikey.html#gst-mikey-message-replace-cs-srtp"/>
+    <keyword type="function" name="gst_mikey_message_add_cs_srtp ()" link="gst-plugins-base-libs-gstmikey.html#gst-mikey-message-add-cs-srtp"/>
+    <keyword type="function" name="gst_mikey_message_get_n_payloads ()" link="gst-plugins-base-libs-gstmikey.html#gst-mikey-message-get-n-payloads"/>
+    <keyword type="function" name="gst_mikey_message_get_payload ()" link="gst-plugins-base-libs-gstmikey.html#gst-mikey-message-get-payload"/>
+    <keyword type="function" name="gst_mikey_message_find_payload ()" link="gst-plugins-base-libs-gstmikey.html#gst-mikey-message-find-payload"/>
+    <keyword type="function" name="gst_mikey_message_insert_payload ()" link="gst-plugins-base-libs-gstmikey.html#gst-mikey-message-insert-payload"/>
+    <keyword type="function" name="gst_mikey_message_remove_payload ()" link="gst-plugins-base-libs-gstmikey.html#gst-mikey-message-remove-payload"/>
+    <keyword type="function" name="gst_mikey_message_replace_payload ()" link="gst-plugins-base-libs-gstmikey.html#gst-mikey-message-replace-payload"/>
+    <keyword type="function" name="gst_mikey_message_add_payload ()" link="gst-plugins-base-libs-gstmikey.html#gst-mikey-message-add-payload"/>
+    <keyword type="function" name="gst_mikey_payload_new ()" link="gst-plugins-base-libs-gstmikey.html#gst-mikey-payload-new"/>
+    <keyword type="function" name="gst_mikey_payload_copy ()" link="gst-plugins-base-libs-gstmikey.html#gst-mikey-payload-copy"/>
+    <keyword type="function" name="gst_mikey_payload_key_data_set_interval ()" link="gst-plugins-base-libs-gstmikey.html#gst-mikey-payload-key-data-set-interval"/>
+    <keyword type="function" name="gst_mikey_payload_key_data_set_key ()" link="gst-plugins-base-libs-gstmikey.html#gst-mikey-payload-key-data-set-key"/>
+    <keyword type="function" name="gst_mikey_payload_key_data_set_salt ()" link="gst-plugins-base-libs-gstmikey.html#gst-mikey-payload-key-data-set-salt"/>
+    <keyword type="function" name="gst_mikey_payload_key_data_set_spi ()" link="gst-plugins-base-libs-gstmikey.html#gst-mikey-payload-key-data-set-spi"/>
+    <keyword type="function" name="gst_mikey_payload_ref ()" link="gst-plugins-base-libs-gstmikey.html#gst-mikey-payload-ref"/>
+    <keyword type="function" name="gst_mikey_payload_unref ()" link="gst-plugins-base-libs-gstmikey.html#gst-mikey-payload-unref"/>
+    <keyword type="function" name="gst_mikey_payload_kemac_set ()" link="gst-plugins-base-libs-gstmikey.html#gst-mikey-payload-kemac-set"/>
+    <keyword type="function" name="gst_mikey_payload_kemac_add_sub ()" link="gst-plugins-base-libs-gstmikey.html#gst-mikey-payload-kemac-add-sub"/>
+    <keyword type="function" name="gst_mikey_payload_kemac_get_n_sub ()" link="gst-plugins-base-libs-gstmikey.html#gst-mikey-payload-kemac-get-n-sub"/>
+    <keyword type="function" name="gst_mikey_payload_kemac_get_sub ()" link="gst-plugins-base-libs-gstmikey.html#gst-mikey-payload-kemac-get-sub"/>
+    <keyword type="function" name="gst_mikey_payload_kemac_remove_sub ()" link="gst-plugins-base-libs-gstmikey.html#gst-mikey-payload-kemac-remove-sub"/>
+    <keyword type="function" name="gst_mikey_payload_pke_set ()" link="gst-plugins-base-libs-gstmikey.html#gst-mikey-payload-pke-set"/>
+    <keyword type="function" name="gst_mikey_message_add_pke ()" link="gst-plugins-base-libs-gstmikey.html#gst-mikey-message-add-pke"/>
+    <keyword type="function" name="gst_mikey_payload_t_set ()" link="gst-plugins-base-libs-gstmikey.html#gst-mikey-payload-t-set"/>
+    <keyword type="function" name="gst_mikey_message_add_t ()" link="gst-plugins-base-libs-gstmikey.html#gst-mikey-message-add-t"/>
+    <keyword type="function" name="gst_mikey_message_add_t_now_ntp_utc ()" link="gst-plugins-base-libs-gstmikey.html#gst-mikey-message-add-t-now-ntp-utc"/>
+    <keyword type="function" name="gst_mikey_payload_rand_set ()" link="gst-plugins-base-libs-gstmikey.html#gst-mikey-payload-rand-set"/>
+    <keyword type="function" name="gst_mikey_message_add_rand ()" link="gst-plugins-base-libs-gstmikey.html#gst-mikey-message-add-rand"/>
+    <keyword type="function" name="gst_mikey_message_add_rand_len ()" link="gst-plugins-base-libs-gstmikey.html#gst-mikey-message-add-rand-len"/>
+    <keyword type="function" name="gst_mikey_payload_sp_set ()" link="gst-plugins-base-libs-gstmikey.html#gst-mikey-payload-sp-set"/>
+    <keyword type="function" name="gst_mikey_payload_sp_get_n_params ()" link="gst-plugins-base-libs-gstmikey.html#gst-mikey-payload-sp-get-n-params"/>
+    <keyword type="function" name="gst_mikey_payload_sp_get_param ()" link="gst-plugins-base-libs-gstmikey.html#gst-mikey-payload-sp-get-param"/>
+    <keyword type="function" name="gst_mikey_payload_sp_add_param ()" link="gst-plugins-base-libs-gstmikey.html#gst-mikey-payload-sp-add-param"/>
+    <keyword type="function" name="gst_mikey_payload_sp_remove_param ()" link="gst-plugins-base-libs-gstmikey.html#gst-mikey-payload-sp-remove-param"/>
     <keyword type="macro" name="GST_MIKEY_VERSION" link="gst-plugins-base-libs-gstmikey.html#GST-MIKEY-VERSION:CAPS"/>
     <keyword type="enum" name="enum GstMIKEYType" link="gst-plugins-base-libs-gstmikey.html#GstMIKEYType"/>
     <keyword type="struct" name="struct GstMIKEYMessage" link="gst-plugins-base-libs-gstmikey.html#GstMIKEYMessage"/>
@@ -1055,7 +1057,7 @@
     <keyword type="macro" name="GST_TAG_IMAGE_HORIZONTAL_PPI" link="gst-plugins-base-libs-gsttag.html#GST-TAG-IMAGE-HORIZONTAL-PPI:CAPS"/>
     <keyword type="macro" name="GST_TAG_IMAGE_VERTICAL_PPI" link="gst-plugins-base-libs-gsttag.html#GST-TAG-IMAGE-VERTICAL-PPI:CAPS"/>
     <keyword type="macro" name="GST_TAG_ID3V2_HEADER_SIZE" link="gst-plugins-base-libs-gsttag.html#GST-TAG-ID3V2-HEADER-SIZE:CAPS"/>
-    <keyword type="macro" name="GST_TAG_MUSICAL_KEY" link="gst-plugins-base-libs-gsttag.html#GST-TAG-MUSICAL-KEY:CAPS" since="1.2"/>
+    <keyword type="macro" name="GST_TAG_MUSICAL_KEY" link="gst-plugins-base-libs-gsttag.html#GST-TAG-MUSICAL-KEY:CAPS"/>
     <keyword type="enum" name="enum GstTagImageType" link="gst-plugins-base-libs-gsttag.html#GstTagImageType"/>
     <keyword type="function" name="gst_tag_from_vorbis_tag ()" link="gst-plugins-base-libs-gsttagvorbis.html#gst-tag-from-vorbis-tag"/>
     <keyword type="function" name="gst_tag_to_vorbis_tag ()" link="gst-plugins-base-libs-gsttagvorbis.html#gst-tag-to-vorbis-tag"/>
@@ -1118,6 +1120,8 @@
     <keyword type="function" name="gst_codec_utils_aac_get_index_from_sample_rate ()" link="gst-plugins-base-libs-gstpbutilscodecutils.html#gst-codec-utils-aac-get-index-from-sample-rate"/>
     <keyword type="function" name="gst_codec_utils_aac_get_profile ()" link="gst-plugins-base-libs-gstpbutilscodecutils.html#gst-codec-utils-aac-get-profile"/>
     <keyword type="function" name="gst_codec_utils_aac_get_level ()" link="gst-plugins-base-libs-gstpbutilscodecutils.html#gst-codec-utils-aac-get-level"/>
+    <keyword type="function" name="gst_codec_utils_aac_get_channels ()" link="gst-plugins-base-libs-gstpbutilscodecutils.html#gst-codec-utils-aac-get-channels"/>
+    <keyword type="function" name="gst_codec_utils_aac_get_sample_rate ()" link="gst-plugins-base-libs-gstpbutilscodecutils.html#gst-codec-utils-aac-get-sample-rate"/>
     <keyword type="function" name="gst_codec_utils_aac_caps_set_level_and_profile ()" link="gst-plugins-base-libs-gstpbutilscodecutils.html#gst-codec-utils-aac-caps-set-level-and-profile"/>
     <keyword type="function" name="gst_codec_utils_h264_get_profile ()" link="gst-plugins-base-libs-gstpbutilscodecutils.html#gst-codec-utils-h264-get-profile"/>
     <keyword type="function" name="gst_codec_utils_h264_get_level ()" link="gst-plugins-base-libs-gstpbutilscodecutils.html#gst-codec-utils-h264-get-level"/>
@@ -1131,11 +1135,11 @@
     <keyword type="function" name="gst_codec_utils_mpeg4video_get_profile ()" link="gst-plugins-base-libs-gstpbutilscodecutils.html#gst-codec-utils-mpeg4video-get-profile"/>
     <keyword type="function" name="gst_codec_utils_mpeg4video_get_level ()" link="gst-plugins-base-libs-gstpbutilscodecutils.html#gst-codec-utils-mpeg4video-get-level"/>
     <keyword type="function" name="gst_codec_utils_mpeg4video_caps_set_level_and_profile ()" link="gst-plugins-base-libs-gstpbutilscodecutils.html#gst-codec-utils-mpeg4video-caps-set-level-and-profile"/>
-    <keyword type="function" name="gst_codec_utils_opus_create_caps ()" link="gst-plugins-base-libs-gstpbutilscodecutils.html#gst-codec-utils-opus-create-caps" since="1.8"/>
-    <keyword type="function" name="gst_codec_utils_opus_create_caps_from_header ()" link="gst-plugins-base-libs-gstpbutilscodecutils.html#gst-codec-utils-opus-create-caps-from-header" since="1.8"/>
-    <keyword type="function" name="gst_codec_utils_opus_parse_caps ()" link="gst-plugins-base-libs-gstpbutilscodecutils.html#gst-codec-utils-opus-parse-caps" since="1.8"/>
-    <keyword type="function" name="gst_codec_utils_opus_create_header ()" link="gst-plugins-base-libs-gstpbutilscodecutils.html#gst-codec-utils-opus-create-header" since="1.8"/>
-    <keyword type="function" name="gst_codec_utils_opus_parse_header ()" link="gst-plugins-base-libs-gstpbutilscodecutils.html#gst-codec-utils-opus-parse-header" since="1.8"/>
+    <keyword type="function" name="gst_codec_utils_opus_create_caps ()" link="gst-plugins-base-libs-gstpbutilscodecutils.html#gst-codec-utils-opus-create-caps"/>
+    <keyword type="function" name="gst_codec_utils_opus_create_caps_from_header ()" link="gst-plugins-base-libs-gstpbutilscodecutils.html#gst-codec-utils-opus-create-caps-from-header"/>
+    <keyword type="function" name="gst_codec_utils_opus_parse_caps ()" link="gst-plugins-base-libs-gstpbutilscodecutils.html#gst-codec-utils-opus-parse-caps"/>
+    <keyword type="function" name="gst_codec_utils_opus_create_header ()" link="gst-plugins-base-libs-gstpbutilscodecutils.html#gst-codec-utils-opus-create-header"/>
+    <keyword type="function" name="gst_codec_utils_opus_parse_header ()" link="gst-plugins-base-libs-gstpbutilscodecutils.html#gst-codec-utils-opus-parse-header"/>
     <keyword type="function" name="gst_pb_utils_get_source_description ()" link="gst-plugins-base-libs-gstpbutilsdescriptions.html#gst-pb-utils-get-source-description"/>
     <keyword type="function" name="gst_pb_utils_get_sink_description ()" link="gst-plugins-base-libs-gstpbutilsdescriptions.html#gst-pb-utils-get-sink-description"/>
     <keyword type="function" name="gst_pb_utils_get_decoder_description ()" link="gst-plugins-base-libs-gstpbutilsdescriptions.html#gst-pb-utils-get-decoder-description"/>
@@ -1165,9 +1169,9 @@
     <keyword type="function" name="gst_install_plugins_context_new ()" link="gst-plugins-base-libs-gstpbutilsinstallplugins.html#gst-install-plugins-context-new"/>
     <keyword type="function" name="gst_install_plugins_context_free ()" link="gst-plugins-base-libs-gstpbutilsinstallplugins.html#gst-install-plugins-context-free"/>
     <keyword type="function" name="gst_install_plugins_context_set_xid ()" link="gst-plugins-base-libs-gstpbutilsinstallplugins.html#gst-install-plugins-context-set-xid"/>
-    <keyword type="function" name="gst_install_plugins_context_set_confirm_search ()" link="gst-plugins-base-libs-gstpbutilsinstallplugins.html#gst-install-plugins-context-set-confirm-search" since="1.6"/>
-    <keyword type="function" name="gst_install_plugins_context_set_desktop_id ()" link="gst-plugins-base-libs-gstpbutilsinstallplugins.html#gst-install-plugins-context-set-desktop-id" since="1.6"/>
-    <keyword type="function" name="gst_install_plugins_context_set_startup_notification_id ()" link="gst-plugins-base-libs-gstpbutilsinstallplugins.html#gst-install-plugins-context-set-startup-notification-id" since="1.6"/>
+    <keyword type="function" name="gst_install_plugins_context_set_confirm_search ()" link="gst-plugins-base-libs-gstpbutilsinstallplugins.html#gst-install-plugins-context-set-confirm-search"/>
+    <keyword type="function" name="gst_install_plugins_context_set_desktop_id ()" link="gst-plugins-base-libs-gstpbutilsinstallplugins.html#gst-install-plugins-context-set-desktop-id"/>
+    <keyword type="function" name="gst_install_plugins_context_set_startup_notification_id ()" link="gst-plugins-base-libs-gstpbutilsinstallplugins.html#gst-install-plugins-context-set-startup-notification-id"/>
     <keyword type="enum" name="enum GstInstallPluginsReturn" link="gst-plugins-base-libs-gstpbutilsinstallplugins.html#GstInstallPluginsReturn"/>
     <keyword type="struct" name="GstInstallPluginsContext" link="gst-plugins-base-libs-gstpbutilsinstallplugins.html#GstInstallPluginsContext"/>
     <keyword type="function" name="gst_discoverer_new ()" link="gst-plugins-base-libs-gstdiscoverer.html#gst-discoverer-new"/>
@@ -1176,7 +1180,7 @@
     <keyword type="function" name="gst_discoverer_discover_uri ()" link="gst-plugins-base-libs-gstdiscoverer.html#gst-discoverer-discover-uri"/>
     <keyword type="function" name="gst_discoverer_discover_uri_async ()" link="gst-plugins-base-libs-gstdiscoverer.html#gst-discoverer-discover-uri-async"/>
     <keyword type="function" name="gst_discoverer_info_get_duration ()" link="gst-plugins-base-libs-gstdiscoverer.html#gst-discoverer-info-get-duration"/>
-    <keyword type="function" name="gst_discoverer_info_get_misc ()" link="gst-plugins-base-libs-gstdiscoverer.html#gst-discoverer-info-get-misc" deprecated=""/>
+    <keyword type="function" name="gst_discoverer_info_get_misc ()" link="gst-plugins-base-libs-gstdiscoverer.html#gst-discoverer-info-get-misc"/>
     <keyword type="function" name="gst_discoverer_info_get_result ()" link="gst-plugins-base-libs-gstdiscoverer.html#gst-discoverer-info-get-result"/>
     <keyword type="function" name="gst_discoverer_info_get_stream_info ()" link="gst-plugins-base-libs-gstdiscoverer.html#gst-discoverer-info-get-stream-info"/>
     <keyword type="function" name="gst_discoverer_info_get_stream_list ()" link="gst-plugins-base-libs-gstdiscoverer.html#gst-discoverer-info-get-stream-list"/>
@@ -1186,10 +1190,10 @@
     <keyword type="function" name="gst_discoverer_info_get_seekable ()" link="gst-plugins-base-libs-gstdiscoverer.html#gst-discoverer-info-get-seekable"/>
     <keyword type="macro" name="gst_discoverer_info_ref()" link="gst-plugins-base-libs-gstdiscoverer.html#gst-discoverer-info-ref"/>
     <keyword type="macro" name="gst_discoverer_info_unref()" link="gst-plugins-base-libs-gstdiscoverer.html#gst-discoverer-info-unref"/>
-    <keyword type="function" name="gst_discoverer_info_to_variant ()" link="gst-plugins-base-libs-gstdiscoverer.html#gst-discoverer-info-to-variant" since="1.6"/>
-    <keyword type="function" name="gst_discoverer_info_from_variant ()" link="gst-plugins-base-libs-gstdiscoverer.html#gst-discoverer-info-from-variant" since="1.6"/>
+    <keyword type="function" name="gst_discoverer_info_to_variant ()" link="gst-plugins-base-libs-gstdiscoverer.html#gst-discoverer-info-to-variant"/>
+    <keyword type="function" name="gst_discoverer_info_from_variant ()" link="gst-plugins-base-libs-gstdiscoverer.html#gst-discoverer-info-from-variant"/>
     <keyword type="function" name="gst_discoverer_stream_info_get_caps ()" link="gst-plugins-base-libs-gstdiscoverer.html#gst-discoverer-stream-info-get-caps"/>
-    <keyword type="function" name="gst_discoverer_stream_info_get_misc ()" link="gst-plugins-base-libs-gstdiscoverer.html#gst-discoverer-stream-info-get-misc" deprecated=""/>
+    <keyword type="function" name="gst_discoverer_stream_info_get_misc ()" link="gst-plugins-base-libs-gstdiscoverer.html#gst-discoverer-stream-info-get-misc"/>
     <keyword type="function" name="gst_discoverer_stream_info_get_next ()" link="gst-plugins-base-libs-gstdiscoverer.html#gst-discoverer-stream-info-get-next"/>
     <keyword type="function" name="gst_discoverer_stream_info_get_previous ()" link="gst-plugins-base-libs-gstdiscoverer.html#gst-discoverer-stream-info-get-previous"/>
     <keyword type="function" name="gst_discoverer_stream_info_get_tags ()" link="gst-plugins-base-libs-gstdiscoverer.html#gst-discoverer-stream-info-get-tags"/>
@@ -1199,7 +1203,7 @@
     <keyword type="macro" name="gst_discoverer_stream_info_unref()" link="gst-plugins-base-libs-gstdiscoverer.html#gst-discoverer-stream-info-unref"/>
     <keyword type="function" name="gst_discoverer_stream_info_list_free ()" link="gst-plugins-base-libs-gstdiscoverer.html#gst-discoverer-stream-info-list-free"/>
     <keyword type="function" name="gst_discoverer_stream_info_get_stream_type_nick ()" link="gst-plugins-base-libs-gstdiscoverer.html#gst-discoverer-stream-info-get-stream-type-nick"/>
-    <keyword type="function" name="gst_discoverer_info_get_missing_elements_installer_details ()" link="gst-plugins-base-libs-gstdiscoverer.html#gst-discoverer-info-get-missing-elements-installer-details" since="1.4"/>
+    <keyword type="function" name="gst_discoverer_info_get_missing_elements_installer_details ()" link="gst-plugins-base-libs-gstdiscoverer.html#gst-discoverer-info-get-missing-elements-installer-details"/>
     <keyword type="function" name="gst_discoverer_info_get_audio_streams ()" link="gst-plugins-base-libs-gstdiscoverer.html#gst-discoverer-info-get-audio-streams"/>
     <keyword type="function" name="gst_discoverer_info_get_container_streams ()" link="gst-plugins-base-libs-gstdiscoverer.html#gst-discoverer-info-get-container-streams"/>
     <keyword type="function" name="gst_discoverer_info_get_streams ()" link="gst-plugins-base-libs-gstdiscoverer.html#gst-discoverer-info-get-streams"/>
@@ -1227,7 +1231,7 @@
     <keyword type="struct" name="struct GstDiscoverer" link="gst-plugins-base-libs-gstdiscoverer.html#GstDiscoverer-struct"/>
     <keyword type="struct" name="GstDiscovererInfo" link="gst-plugins-base-libs-gstdiscoverer.html#GstDiscovererInfo-struct"/>
     <keyword type="enum" name="enum GstDiscovererResult" link="gst-plugins-base-libs-gstdiscoverer.html#GstDiscovererResult"/>
-    <keyword type="enum" name="enum GstDiscovererSerializeFlags" link="gst-plugins-base-libs-gstdiscoverer.html#GstDiscovererSerializeFlags" since="1.6"/>
+    <keyword type="enum" name="enum GstDiscovererSerializeFlags" link="gst-plugins-base-libs-gstdiscoverer.html#GstDiscovererSerializeFlags"/>
     <keyword type="struct" name="GstDiscovererStreamInfo" link="gst-plugins-base-libs-gstdiscoverer.html#GstDiscovererStreamInfo"/>
     <keyword type="struct" name="GstDiscovererContainerInfo" link="gst-plugins-base-libs-gstdiscoverer.html#GstDiscovererContainerInfo"/>
     <keyword type="struct" name="GstDiscovererAudioInfo" link="gst-plugins-base-libs-gstdiscoverer.html#GstDiscovererAudioInfo"/>
@@ -1298,7 +1302,7 @@
     <keyword type="struct" name="GstEncodingTarget" link="gst-plugins-base-libs-encoding-profile.html#GstEncodingTarget-struct"/>
     <keyword type="property" name="The “restriction-caps” property" link="gst-plugins-base-libs-encoding-profile.html#GstEncodingProfile--restriction-caps"/>
     <keyword type="function" name="gst_video_calculate_display_ratio ()" link="gst-plugins-base-libs-gstvideo.html#gst-video-calculate-display-ratio"/>
-    <keyword type="function" name="gst_video_guess_framerate ()" link="gst-plugins-base-libs-gstvideo.html#gst-video-guess-framerate" since="1.6"/>
+    <keyword type="function" name="gst_video_guess_framerate ()" link="gst-plugins-base-libs-gstvideo.html#gst-video-guess-framerate"/>
     <keyword type="function" name="GstVideoConvertSampleCallback ()" link="gst-plugins-base-libs-gstvideo.html#GstVideoConvertSampleCallback"/>
     <keyword type="function" name="gst_video_convert_sample ()" link="gst-plugins-base-libs-gstvideo.html#gst-video-convert-sample"/>
     <keyword type="function" name="gst_video_convert_sample_async ()" link="gst-plugins-base-libs-gstvideo.html#gst-video-convert-sample-async"/>
@@ -1349,11 +1353,11 @@
     <keyword type="function" name="gst_video_format_get_info ()" link="gst-plugins-base-libs-gstvideo.html#gst-video-format-get-info"/>
     <keyword type="macro" name="GST_VIDEO_CAPS_MAKE()" link="gst-plugins-base-libs-gstvideo.html#GST-VIDEO-CAPS-MAKE:CAPS"/>
     <keyword type="function" name="gst_video_color_range_offsets ()" link="gst-plugins-base-libs-gstvideo.html#gst-video-color-range-offsets"/>
-    <keyword type="function" name="gst_video_color_matrix_get_Kr_Kb ()" link="gst-plugins-base-libs-gstvideo.html#gst-video-color-matrix-get-Kr-Kb" since="1.6"/>
-    <keyword type="function" name="gst_video_color_transfer_decode ()" link="gst-plugins-base-libs-gstvideo.html#gst-video-color-transfer-decode" since="1.6"/>
-    <keyword type="function" name="gst_video_color_transfer_encode ()" link="gst-plugins-base-libs-gstvideo.html#gst-video-color-transfer-encode" since="1.6"/>
+    <keyword type="function" name="gst_video_color_matrix_get_Kr_Kb ()" link="gst-plugins-base-libs-gstvideo.html#gst-video-color-matrix-get-Kr-Kb"/>
+    <keyword type="function" name="gst_video_color_transfer_decode ()" link="gst-plugins-base-libs-gstvideo.html#gst-video-color-transfer-decode"/>
+    <keyword type="function" name="gst_video_color_transfer_encode ()" link="gst-plugins-base-libs-gstvideo.html#gst-video-color-transfer-encode"/>
     <keyword type="function" name="gst_video_colorimetry_matches ()" link="gst-plugins-base-libs-gstvideo.html#gst-video-colorimetry-matches"/>
-    <keyword type="function" name="gst_video_colorimetry_is_equal ()" link="gst-plugins-base-libs-gstvideo.html#gst-video-colorimetry-is-equal" since="1.6"/>
+    <keyword type="function" name="gst_video_colorimetry_is_equal ()" link="gst-plugins-base-libs-gstvideo.html#gst-video-colorimetry-is-equal"/>
     <keyword type="function" name="gst_video_colorimetry_from_string ()" link="gst-plugins-base-libs-gstvideo.html#gst-video-colorimetry-from-string"/>
     <keyword type="function" name="gst_video_colorimetry_to_string ()" link="gst-plugins-base-libs-gstvideo.html#gst-video-colorimetry-to-string"/>
     <keyword type="macro" name="GST_VIDEO_INFO_FORMAT()" link="gst-plugins-base-libs-gstvideo.html#GST-VIDEO-INFO-FORMAT:CAPS"/>
@@ -1394,9 +1398,9 @@
     <keyword type="macro" name="GST_VIDEO_INFO_MULTIVIEW_FLAGS()" link="gst-plugins-base-libs-gstvideo.html#GST-VIDEO-INFO-MULTIVIEW-FLAGS:CAPS"/>
     <keyword type="macro" name="GST_VIDEO_INFO_MULTIVIEW_MODE()" link="gst-plugins-base-libs-gstvideo.html#GST-VIDEO-INFO-MULTIVIEW-MODE:CAPS"/>
     <keyword type="function" name="gst_video_info_init ()" link="gst-plugins-base-libs-gstvideo.html#gst-video-info-init"/>
-    <keyword type="function" name="gst_video_info_new ()" link="gst-plugins-base-libs-gstvideo.html#gst-video-info-new" since="1.6"/>
-    <keyword type="function" name="gst_video_info_copy ()" link="gst-plugins-base-libs-gstvideo.html#gst-video-info-copy" since="1.6"/>
-    <keyword type="function" name="gst_video_info_free ()" link="gst-plugins-base-libs-gstvideo.html#gst-video-info-free" since="1.6"/>
+    <keyword type="function" name="gst_video_info_new ()" link="gst-plugins-base-libs-gstvideo.html#gst-video-info-new"/>
+    <keyword type="function" name="gst_video_info_copy ()" link="gst-plugins-base-libs-gstvideo.html#gst-video-info-copy"/>
+    <keyword type="function" name="gst_video_info_free ()" link="gst-plugins-base-libs-gstvideo.html#gst-video-info-free"/>
     <keyword type="function" name="gst_video_info_set_format ()" link="gst-plugins-base-libs-gstvideo.html#gst-video-info-set-format"/>
     <keyword type="function" name="gst_video_info_from_caps ()" link="gst-plugins-base-libs-gstvideo.html#gst-video-info-from-caps"/>
     <keyword type="function" name="gst_video_info_to_caps ()" link="gst-plugins-base-libs-gstvideo.html#gst-video-info-to-caps"/>
@@ -1432,7 +1436,7 @@
     <keyword type="macro" name="GST_VIDEO_FRAME_COMP_PLANE()" link="gst-plugins-base-libs-gstvideo.html#GST-VIDEO-FRAME-COMP-PLANE:CAPS"/>
     <keyword type="macro" name="GST_VIDEO_FRAME_COMP_PSTRIDE()" link="gst-plugins-base-libs-gstvideo.html#GST-VIDEO-FRAME-COMP-PSTRIDE:CAPS"/>
     <keyword type="macro" name="GST_VIDEO_FRAME_COMP_POFFSET()" link="gst-plugins-base-libs-gstvideo.html#GST-VIDEO-FRAME-COMP-POFFSET:CAPS"/>
-    <keyword type="function" name="gst_video_tile_get_index ()" link="gst-plugins-base-libs-gstvideo.html#gst-video-tile-get-index" since="1.4"/>
+    <keyword type="function" name="gst_video_tile_get_index ()" link="gst-plugins-base-libs-gstvideo.html#gst-video-tile-get-index"/>
     <keyword type="macro" name="GST_VIDEO_TILE_MAKE_MODE()" link="gst-plugins-base-libs-gstvideo.html#GST-VIDEO-TILE-MAKE-MODE:CAPS"/>
     <keyword type="macro" name="GST_VIDEO_TILE_MODE_TYPE()" link="gst-plugins-base-libs-gstvideo.html#GST-VIDEO-TILE-MODE-TYPE:CAPS"/>
     <keyword type="macro" name="GST_VIDEO_TILE_MODE_IS_INDEXED()" link="gst-plugins-base-libs-gstvideo.html#GST-VIDEO-TILE-MODE-IS-INDEXED:CAPS"/>
@@ -1441,25 +1445,25 @@
     <keyword type="macro" name="GST_VIDEO_TILE_Y_TILES()" link="gst-plugins-base-libs-gstvideo.html#GST-VIDEO-TILE-Y-TILES:CAPS"/>
     <keyword type="function" name="gst_video_blend ()" link="gst-plugins-base-libs-gstvideo.html#gst-video-blend"/>
     <keyword type="function" name="gst_video_blend_scale_linear_RGBA ()" link="gst-plugins-base-libs-gstvideo.html#gst-video-blend-scale-linear-RGBA"/>
-    <keyword type="function" name="gst_video_converter_new ()" link="gst-plugins-base-libs-gstvideo.html#gst-video-converter-new" since="1.6"/>
-    <keyword type="function" name="gst_video_converter_free ()" link="gst-plugins-base-libs-gstvideo.html#gst-video-converter-free" since="1.6"/>
+    <keyword type="function" name="gst_video_converter_new ()" link="gst-plugins-base-libs-gstvideo.html#gst-video-converter-new"/>
+    <keyword type="function" name="gst_video_converter_free ()" link="gst-plugins-base-libs-gstvideo.html#gst-video-converter-free"/>
     <keyword type="function" name="gst_video_converter_get_config ()" link="gst-plugins-base-libs-gstvideo.html#gst-video-converter-get-config"/>
-    <keyword type="function" name="gst_video_converter_set_config ()" link="gst-plugins-base-libs-gstvideo.html#gst-video-converter-set-config" since="1.6"/>
-    <keyword type="function" name="gst_video_converter_frame ()" link="gst-plugins-base-libs-gstvideo.html#gst-video-converter-frame" since="1.6"/>
-    <keyword type="function" name="gst_video_multiview_get_mono_modes ()" link="gst-plugins-base-libs-gstvideo.html#gst-video-multiview-get-mono-modes" since="1.6"/>
-    <keyword type="function" name="gst_video_multiview_get_unpacked_modes ()" link="gst-plugins-base-libs-gstvideo.html#gst-video-multiview-get-unpacked-modes" since="1.6"/>
-    <keyword type="function" name="gst_video_multiview_get_doubled_height_modes ()" link="gst-plugins-base-libs-gstvideo.html#gst-video-multiview-get-doubled-height-modes" since="1.6"/>
-    <keyword type="function" name="gst_video_multiview_get_doubled_size_modes ()" link="gst-plugins-base-libs-gstvideo.html#gst-video-multiview-get-doubled-size-modes" since="1.6"/>
-    <keyword type="function" name="gst_video_multiview_get_doubled_width_modes ()" link="gst-plugins-base-libs-gstvideo.html#gst-video-multiview-get-doubled-width-modes" since="1.6"/>
-    <keyword type="function" name="gst_video_multiview_mode_from_caps_string ()" link="gst-plugins-base-libs-gstvideo.html#gst-video-multiview-mode-from-caps-string" since="1.6"/>
-    <keyword type="function" name="gst_video_multiview_mode_to_caps_string ()" link="gst-plugins-base-libs-gstvideo.html#gst-video-multiview-mode-to-caps-string" since="1.6"/>
-    <keyword type="function" name="gst_video_multiview_guess_half_aspect ()" link="gst-plugins-base-libs-gstvideo.html#gst-video-multiview-guess-half-aspect" since="1.6"/>
-    <keyword type="function" name="gst_video_multiview_video_info_change_mode ()" link="gst-plugins-base-libs-gstvideo.html#gst-video-multiview-video-info-change-mode" since="1.6"/>
+    <keyword type="function" name="gst_video_converter_set_config ()" link="gst-plugins-base-libs-gstvideo.html#gst-video-converter-set-config"/>
+    <keyword type="function" name="gst_video_converter_frame ()" link="gst-plugins-base-libs-gstvideo.html#gst-video-converter-frame"/>
+    <keyword type="function" name="gst_video_multiview_get_mono_modes ()" link="gst-plugins-base-libs-gstvideo.html#gst-video-multiview-get-mono-modes"/>
+    <keyword type="function" name="gst_video_multiview_get_unpacked_modes ()" link="gst-plugins-base-libs-gstvideo.html#gst-video-multiview-get-unpacked-modes"/>
+    <keyword type="function" name="gst_video_multiview_get_doubled_height_modes ()" link="gst-plugins-base-libs-gstvideo.html#gst-video-multiview-get-doubled-height-modes"/>
+    <keyword type="function" name="gst_video_multiview_get_doubled_size_modes ()" link="gst-plugins-base-libs-gstvideo.html#gst-video-multiview-get-doubled-size-modes"/>
+    <keyword type="function" name="gst_video_multiview_get_doubled_width_modes ()" link="gst-plugins-base-libs-gstvideo.html#gst-video-multiview-get-doubled-width-modes"/>
+    <keyword type="function" name="gst_video_multiview_mode_from_caps_string ()" link="gst-plugins-base-libs-gstvideo.html#gst-video-multiview-mode-from-caps-string"/>
+    <keyword type="function" name="gst_video_multiview_mode_to_caps_string ()" link="gst-plugins-base-libs-gstvideo.html#gst-video-multiview-mode-to-caps-string"/>
+    <keyword type="function" name="gst_video_multiview_guess_half_aspect ()" link="gst-plugins-base-libs-gstvideo.html#gst-video-multiview-guess-half-aspect"/>
+    <keyword type="function" name="gst_video_multiview_video_info_change_mode ()" link="gst-plugins-base-libs-gstvideo.html#gst-video-multiview-video-info-change-mode"/>
     <keyword type="struct" name="struct GstVideoAlignment" link="gst-plugins-base-libs-gstvideo.html#GstVideoAlignment"/>
-    <keyword type="macro" name="GST_META_TAG_VIDEO_STR" link="gst-plugins-base-libs-gstvideo.html#GST-META-TAG-VIDEO-STR:CAPS" since="1.2"/>
-    <keyword type="macro" name="GST_META_TAG_VIDEO_ORIENTATION_STR" link="gst-plugins-base-libs-gstvideo.html#GST-META-TAG-VIDEO-ORIENTATION-STR:CAPS" since="1.2"/>
-    <keyword type="macro" name="GST_META_TAG_VIDEO_SIZE_STR" link="gst-plugins-base-libs-gstvideo.html#GST-META-TAG-VIDEO-SIZE-STR:CAPS" since="1.2"/>
-    <keyword type="macro" name="GST_META_TAG_VIDEO_COLORSPACE_STR" link="gst-plugins-base-libs-gstvideo.html#GST-META-TAG-VIDEO-COLORSPACE-STR:CAPS" since="1.2"/>
+    <keyword type="macro" name="GST_META_TAG_VIDEO_STR" link="gst-plugins-base-libs-gstvideo.html#GST-META-TAG-VIDEO-STR:CAPS"/>
+    <keyword type="macro" name="GST_META_TAG_VIDEO_ORIENTATION_STR" link="gst-plugins-base-libs-gstvideo.html#GST-META-TAG-VIDEO-ORIENTATION-STR:CAPS"/>
+    <keyword type="macro" name="GST_META_TAG_VIDEO_SIZE_STR" link="gst-plugins-base-libs-gstvideo.html#GST-META-TAG-VIDEO-SIZE-STR:CAPS"/>
+    <keyword type="macro" name="GST_META_TAG_VIDEO_COLORSPACE_STR" link="gst-plugins-base-libs-gstvideo.html#GST-META-TAG-VIDEO-COLORSPACE-STR:CAPS"/>
     <keyword type="enum" name="enum GstVideoFormat" link="gst-plugins-base-libs-gstvideo.html#GstVideoFormat"/>
     <keyword type="macro" name="GST_VIDEO_MAX_PLANES" link="gst-plugins-base-libs-gstvideo.html#GST-VIDEO-MAX-PLANES:CAPS"/>
     <keyword type="macro" name="GST_VIDEO_MAX_COMPONENTS" link="gst-plugins-base-libs-gstvideo.html#GST-VIDEO-MAX-COMPONENTS:CAPS"/>
@@ -1507,11 +1511,11 @@
     <keyword type="struct" name="GstVideoMetaTransform" link="gst-plugins-base-libs-gstvideometa.html#GstVideoMetaTransform"/>
     <keyword type="struct" name="struct GstVideoCropMeta" link="gst-plugins-base-libs-gstvideometa.html#GstVideoCropMeta"/>
     <keyword type="struct" name="GstVideoRegionOfInterestMeta" link="gst-plugins-base-libs-gstvideometa.html#GstVideoRegionOfInterestMeta"/>
-    <keyword type="macro" name="GST_BUFFER_POOL_OPTION_VIDEO_GL_TEXTURE_UPLOAD_META" link="gst-plugins-base-libs-gstvideometa.html#GST-BUFFER-POOL-OPTION-VIDEO-GL-TEXTURE-UPLOAD-META:CAPS" since="1.2.2"/>
+    <keyword type="macro" name="GST_BUFFER_POOL_OPTION_VIDEO_GL_TEXTURE_UPLOAD_META" link="gst-plugins-base-libs-gstvideometa.html#GST-BUFFER-POOL-OPTION-VIDEO-GL-TEXTURE-UPLOAD-META:CAPS"/>
     <keyword type="struct" name="struct GstVideoGLTextureUploadMeta" link="gst-plugins-base-libs-gstvideometa.html#GstVideoGLTextureUploadMeta"/>
-    <keyword type="function" name="gst_buffer_add_video_affine_transformation_meta ()" link="gst-plugins-base-libs-gstvideoaffinetransformationmeta.html#gst-buffer-add-video-affine-transformation-meta" since="1.8"/>
+    <keyword type="function" name="gst_buffer_add_video_affine_transformation_meta ()" link="gst-plugins-base-libs-gstvideoaffinetransformationmeta.html#gst-buffer-add-video-affine-transformation-meta"/>
     <keyword type="macro" name="gst_buffer_get_video_affine_transformation_meta()" link="gst-plugins-base-libs-gstvideoaffinetransformationmeta.html#gst-buffer-get-video-affine-transformation-meta"/>
-    <keyword type="function" name="gst_video_affine_transformation_meta_apply_matrix ()" link="gst-plugins-base-libs-gstvideoaffinetransformationmeta.html#gst-video-affine-transformation-meta-apply-matrix" since="1.8"/>
+    <keyword type="function" name="gst_video_affine_transformation_meta_apply_matrix ()" link="gst-plugins-base-libs-gstvideoaffinetransformationmeta.html#gst-video-affine-transformation-meta-apply-matrix"/>
     <keyword type="struct" name="struct GstVideoAffineTransformationMeta" link="gst-plugins-base-libs-gstvideoaffinetransformationmeta.html#GstVideoAffineTransformationMeta"/>
     <keyword type="function" name="gst_video_overlay_composition_new ()" link="gst-plugins-base-libs-gstvideooverlaycomposition.html#gst-video-overlay-composition-new"/>
     <keyword type="function" name="gst_video_overlay_composition_ref ()" link="gst-plugins-base-libs-gstvideooverlaycomposition.html#gst-video-overlay-composition-ref"/>
@@ -1544,7 +1548,7 @@
     <keyword type="function" name="gst_video_overlay_rectangle_get_global_alpha ()" link="gst-plugins-base-libs-gstvideooverlaycomposition.html#gst-video-overlay-rectangle-get-global-alpha"/>
     <keyword type="function" name="gst_video_overlay_rectangle_set_global_alpha ()" link="gst-plugins-base-libs-gstvideooverlaycomposition.html#gst-video-overlay-rectangle-set-global-alpha"/>
     <keyword type="struct" name="GstVideoOverlayComposition" link="gst-plugins-base-libs-gstvideooverlaycomposition.html#GstVideoOverlayComposition"/>
-    <keyword type="macro" name="GST_VIDEO_OVERLAY_COMPOSITION_BLEND_FORMATS" link="gst-plugins-base-libs-gstvideooverlaycomposition.html#GST-VIDEO-OVERLAY-COMPOSITION-BLEND-FORMATS:CAPS" since="1.2"/>
+    <keyword type="macro" name="GST_VIDEO_OVERLAY_COMPOSITION_BLEND_FORMATS" link="gst-plugins-base-libs-gstvideooverlaycomposition.html#GST-VIDEO-OVERLAY-COMPOSITION-BLEND-FORMATS:CAPS"/>
     <keyword type="struct" name="struct GstVideoOverlayCompositionMeta" link="gst-plugins-base-libs-gstvideooverlaycomposition.html#GstVideoOverlayCompositionMeta"/>
     <keyword type="enum" name="enum GstVideoOverlayFormatFlags" link="gst-plugins-base-libs-gstvideooverlaycomposition.html#GstVideoOverlayFormatFlags"/>
     <keyword type="struct" name="GstVideoOverlayRectangle" link="gst-plugins-base-libs-gstvideooverlaycomposition.html#GstVideoOverlayRectangle"/>
@@ -1566,11 +1570,11 @@
     <keyword type="enum" name="enum GstVideoChromaFlags" link="gst-plugins-base-libs-GstVideoChroma.html#GstVideoChromaFlags"/>
     <keyword type="enum" name="enum GstVideoChromaMethod" link="gst-plugins-base-libs-GstVideoChroma.html#GstVideoChromaMethod"/>
     <keyword type="struct" name="GstVideoChromaResample" link="gst-plugins-base-libs-GstVideoChroma.html#GstVideoChromaResample"/>
-    <keyword type="function" name="gst_video_resampler_clear ()" link="gst-plugins-base-libs-GstVideoResampler.html#gst-video-resampler-clear" since="1.6"/>
+    <keyword type="function" name="gst_video_resampler_clear ()" link="gst-plugins-base-libs-GstVideoResampler.html#gst-video-resampler-clear"/>
     <keyword type="function" name="gst_video_resampler_init ()" link="gst-plugins-base-libs-GstVideoResampler.html#gst-video-resampler-init"/>
-    <keyword type="struct" name="struct GstVideoResampler" link="gst-plugins-base-libs-GstVideoResampler.html#GstVideoResampler" since="1.6"/>
-    <keyword type="enum" name="enum GstVideoResamplerFlags" link="gst-plugins-base-libs-GstVideoResampler.html#GstVideoResamplerFlags" since="1.6"/>
-    <keyword type="enum" name="enum GstVideoResamplerMethod" link="gst-plugins-base-libs-GstVideoResampler.html#GstVideoResamplerMethod" since="1.6"/>
+    <keyword type="struct" name="struct GstVideoResampler" link="gst-plugins-base-libs-GstVideoResampler.html#GstVideoResampler"/>
+    <keyword type="enum" name="enum GstVideoResamplerFlags" link="gst-plugins-base-libs-GstVideoResampler.html#GstVideoResamplerFlags"/>
+    <keyword type="enum" name="enum GstVideoResamplerMethod" link="gst-plugins-base-libs-GstVideoResampler.html#GstVideoResamplerMethod"/>
     <keyword type="macro" name="GST_VIDEO_RESAMPLER_OPT_CUBIC_B" link="gst-plugins-base-libs-GstVideoResampler.html#GST-VIDEO-RESAMPLER-OPT-CUBIC-B:CAPS"/>
     <keyword type="macro" name="GST_VIDEO_RESAMPLER_OPT_CUBIC_C" link="gst-plugins-base-libs-GstVideoResampler.html#GST-VIDEO-RESAMPLER-OPT-CUBIC-C:CAPS"/>
     <keyword type="macro" name="GST_VIDEO_RESAMPLER_OPT_ENVELOPE" link="gst-plugins-base-libs-GstVideoResampler.html#GST-VIDEO-RESAMPLER-OPT-ENVELOPE:CAPS"/>
@@ -1578,7 +1582,7 @@
     <keyword type="macro" name="GST_VIDEO_RESAMPLER_OPT_SHARPEN" link="gst-plugins-base-libs-GstVideoResampler.html#GST-VIDEO-RESAMPLER-OPT-SHARPEN:CAPS"/>
     <keyword type="macro" name="GST_VIDEO_RESAMPLER_OPT_SHARPNESS" link="gst-plugins-base-libs-GstVideoResampler.html#GST-VIDEO-RESAMPLER-OPT-SHARPNESS:CAPS"/>
     <keyword type="function" name="gst_video_scaler_2d ()" link="gst-plugins-base-libs-GstVideoScaler.html#gst-video-scaler-2d"/>
-    <keyword type="function" name="gst_video_scaler_combine_packed_YUV ()" link="gst-plugins-base-libs-GstVideoScaler.html#gst-video-scaler-combine-packed-YUV" since="1.6"/>
+    <keyword type="function" name="gst_video_scaler_combine_packed_YUV ()" link="gst-plugins-base-libs-GstVideoScaler.html#gst-video-scaler-combine-packed-YUV"/>
     <keyword type="function" name="gst_video_scaler_free ()" link="gst-plugins-base-libs-GstVideoScaler.html#gst-video-scaler-free"/>
     <keyword type="function" name="gst_video_scaler_get_coeff ()" link="gst-plugins-base-libs-GstVideoScaler.html#gst-video-scaler-get-coeff"/>
     <keyword type="function" name="gst_video_scaler_horizontal ()" link="gst-plugins-base-libs-GstVideoScaler.html#gst-video-scaler-horizontal"/>
@@ -1639,7 +1643,7 @@
     <keyword type="function" name="gst_video_decoder_get_buffer_pool ()" link="gst-plugins-base-libs-GstVideoDecoder.html#gst-video-decoder-get-buffer-pool"/>
     <keyword type="function" name="gst_video_decoder_drop_frame ()" link="gst-plugins-base-libs-GstVideoDecoder.html#gst-video-decoder-drop-frame"/>
     <keyword type="function" name="gst_video_decoder_finish_frame ()" link="gst-plugins-base-libs-GstVideoDecoder.html#gst-video-decoder-finish-frame"/>
-    <keyword type="function" name="gst_video_decoder_release_frame ()" link="gst-plugins-base-libs-GstVideoDecoder.html#gst-video-decoder-release-frame" since="1.2.2"/>
+    <keyword type="function" name="gst_video_decoder_release_frame ()" link="gst-plugins-base-libs-GstVideoDecoder.html#gst-video-decoder-release-frame"/>
     <keyword type="function" name="gst_video_decoder_negotiate ()" link="gst-plugins-base-libs-GstVideoDecoder.html#gst-video-decoder-negotiate"/>
     <keyword type="function" name="gst_video_decoder_get_frame ()" link="gst-plugins-base-libs-GstVideoDecoder.html#gst-video-decoder-get-frame"/>
     <keyword type="function" name="gst_video_decoder_get_frames ()" link="gst-plugins-base-libs-GstVideoDecoder.html#gst-video-decoder-get-frames"/>
@@ -1647,8 +1651,8 @@
     <keyword type="function" name="gst_video_decoder_get_max_errors ()" link="gst-plugins-base-libs-GstVideoDecoder.html#gst-video-decoder-get-max-errors"/>
     <keyword type="function" name="gst_video_decoder_get_oldest_frame ()" link="gst-plugins-base-libs-GstVideoDecoder.html#gst-video-decoder-get-oldest-frame"/>
     <keyword type="function" name="gst_video_decoder_get_packetized ()" link="gst-plugins-base-libs-GstVideoDecoder.html#gst-video-decoder-get-packetized"/>
-    <keyword type="function" name="gst_video_decoder_get_pending_frame_size ()" link="gst-plugins-base-libs-GstVideoDecoder.html#gst-video-decoder-get-pending-frame-size" since="1.4"/>
-    <keyword type="function" name="gst_video_decoder_get_qos_proportion ()" link="gst-plugins-base-libs-GstVideoDecoder.html#gst-video-decoder-get-qos-proportion" since="1.0.3"/>
+    <keyword type="function" name="gst_video_decoder_get_pending_frame_size ()" link="gst-plugins-base-libs-GstVideoDecoder.html#gst-video-decoder-get-pending-frame-size"/>
+    <keyword type="function" name="gst_video_decoder_get_qos_proportion ()" link="gst-plugins-base-libs-GstVideoDecoder.html#gst-video-decoder-get-qos-proportion"/>
     <keyword type="function" name="gst_video_decoder_have_frame ()" link="gst-plugins-base-libs-GstVideoDecoder.html#gst-video-decoder-have-frame"/>
     <keyword type="function" name="gst_video_decoder_get_latency ()" link="gst-plugins-base-libs-GstVideoDecoder.html#gst-video-decoder-get-latency"/>
     <keyword type="function" name="gst_video_decoder_set_latency ()" link="gst-plugins-base-libs-GstVideoDecoder.html#gst-video-decoder-set-latency"/>
@@ -1658,10 +1662,10 @@
     <keyword type="function" name="gst_video_decoder_set_output_state ()" link="gst-plugins-base-libs-GstVideoDecoder.html#gst-video-decoder-set-output-state"/>
     <keyword type="function" name="gst_video_decoder_set_max_errors ()" link="gst-plugins-base-libs-GstVideoDecoder.html#gst-video-decoder-set-max-errors"/>
     <keyword type="function" name="gst_video_decoder_set_packetized ()" link="gst-plugins-base-libs-GstVideoDecoder.html#gst-video-decoder-set-packetized"/>
-    <keyword type="function" name="gst_video_decoder_get_needs_format ()" link="gst-plugins-base-libs-GstVideoDecoder.html#gst-video-decoder-get-needs-format" since="1.4"/>
-    <keyword type="function" name="gst_video_decoder_set_needs_format ()" link="gst-plugins-base-libs-GstVideoDecoder.html#gst-video-decoder-set-needs-format" since="1.4"/>
+    <keyword type="function" name="gst_video_decoder_get_needs_format ()" link="gst-plugins-base-libs-GstVideoDecoder.html#gst-video-decoder-get-needs-format"/>
+    <keyword type="function" name="gst_video_decoder_set_needs_format ()" link="gst-plugins-base-libs-GstVideoDecoder.html#gst-video-decoder-set-needs-format"/>
     <keyword type="function" name="gst_video_decoder_merge_tags ()" link="gst-plugins-base-libs-GstVideoDecoder.html#gst-video-decoder-merge-tags"/>
-    <keyword type="function" name="gst_video_decoder_proxy_getcaps ()" link="gst-plugins-base-libs-GstVideoDecoder.html#gst-video-decoder-proxy-getcaps" since="1.6"/>
+    <keyword type="function" name="gst_video_decoder_proxy_getcaps ()" link="gst-plugins-base-libs-GstVideoDecoder.html#gst-video-decoder-proxy-getcaps"/>
     <keyword type="macro" name="GST_VIDEO_DECODER_FLOW_NEED_DATA" link="gst-plugins-base-libs-GstVideoDecoder.html#GST-VIDEO-DECODER-FLOW-NEED-DATA:CAPS"/>
     <keyword type="macro" name="GST_VIDEO_DECODER_MAX_ERRORS" link="gst-plugins-base-libs-GstVideoDecoder.html#GST-VIDEO-DECODER-MAX-ERRORS:CAPS"/>
     <keyword type="macro" name="GST_VIDEO_DECODER_SINK_NAME" link="gst-plugins-base-libs-GstVideoDecoder.html#GST-VIDEO-DECODER-SINK-NAME:CAPS"/>
@@ -1738,10 +1742,10 @@
     <keyword type="function" name="gst_navigation_message_get_type ()" link="gst-plugins-base-libs-gstnavigation.html#gst-navigation-message-get-type"/>
     <keyword type="function" name="gst_navigation_message_new_angles_changed ()" link="gst-plugins-base-libs-gstnavigation.html#gst-navigation-message-new-angles-changed"/>
     <keyword type="function" name="gst_navigation_message_new_commands_changed ()" link="gst-plugins-base-libs-gstnavigation.html#gst-navigation-message-new-commands-changed"/>
-    <keyword type="function" name="gst_navigation_message_new_event ()" link="gst-plugins-base-libs-gstnavigation.html#gst-navigation-message-new-event" since="1.6"/>
+    <keyword type="function" name="gst_navigation_message_new_event ()" link="gst-plugins-base-libs-gstnavigation.html#gst-navigation-message-new-event"/>
     <keyword type="function" name="gst_navigation_message_new_mouse_over ()" link="gst-plugins-base-libs-gstnavigation.html#gst-navigation-message-new-mouse-over"/>
     <keyword type="function" name="gst_navigation_message_parse_angles_changed ()" link="gst-plugins-base-libs-gstnavigation.html#gst-navigation-message-parse-angles-changed"/>
-    <keyword type="function" name="gst_navigation_message_parse_event ()" link="gst-plugins-base-libs-gstnavigation.html#gst-navigation-message-parse-event" since="1.6"/>
+    <keyword type="function" name="gst_navigation_message_parse_event ()" link="gst-plugins-base-libs-gstnavigation.html#gst-navigation-message-parse-event"/>
     <keyword type="function" name="gst_navigation_message_parse_mouse_over ()" link="gst-plugins-base-libs-gstnavigation.html#gst-navigation-message-parse-mouse-over"/>
     <keyword type="function" name="gst_navigation_query_new_angles ()" link="gst-plugins-base-libs-gstnavigation.html#gst-navigation-query-new-angles"/>
     <keyword type="function" name="gst_navigation_query_get_type ()" link="gst-plugins-base-libs-gstnavigation.html#gst-navigation-query-get-type"/>
@@ -2356,6 +2360,9 @@
     <keyword type="constant" name="GST_VIDEO_FORMAT_A444_10BE" link="gst-plugins-base-libs-gstvideo.html#GST-VIDEO-FORMAT-A444-10BE:CAPS"/>
     <keyword type="constant" name="GST_VIDEO_FORMAT_A444_10LE" link="gst-plugins-base-libs-gstvideo.html#GST-VIDEO-FORMAT-A444-10LE:CAPS"/>
     <keyword type="constant" name="GST_VIDEO_FORMAT_NV61" link="gst-plugins-base-libs-gstvideo.html#GST-VIDEO-FORMAT-NV61:CAPS"/>
+    <keyword type="constant" name="GST_VIDEO_FORMAT_P010_10BE" link="gst-plugins-base-libs-gstvideo.html#GST-VIDEO-FORMAT-P010-10BE:CAPS"/>
+    <keyword type="constant" name="GST_VIDEO_FORMAT_P010_10LE" link="gst-plugins-base-libs-gstvideo.html#GST-VIDEO-FORMAT-P010-10LE:CAPS"/>
+    <keyword type="constant" name="GST_VIDEO_FORMAT_IYU2" link="gst-plugins-base-libs-gstvideo.html#GST-VIDEO-FORMAT-IYU2:CAPS"/>
     <keyword type="constant" name="GST_VIDEO_FORMAT_FLAG_YUV" link="gst-plugins-base-libs-gstvideo.html#GST-VIDEO-FORMAT-FLAG-YUV:CAPS"/>
     <keyword type="constant" name="GST_VIDEO_FORMAT_FLAG_RGB" link="gst-plugins-base-libs-gstvideo.html#GST-VIDEO-FORMAT-FLAG-RGB:CAPS"/>
     <keyword type="constant" name="GST_VIDEO_FORMAT_FLAG_GRAY" link="gst-plugins-base-libs-gstvideo.html#GST-VIDEO-FORMAT-FLAG-GRAY:CAPS"/>
@@ -2480,6 +2487,7 @@
     <keyword type="constant" name="GST_VIDEO_CHROMA_METHOD_NEAREST" link="gst-plugins-base-libs-GstVideoChroma.html#GST-VIDEO-CHROMA-METHOD-NEAREST:CAPS"/>
     <keyword type="constant" name="GST_VIDEO_CHROMA_METHOD_LINEAR" link="gst-plugins-base-libs-GstVideoChroma.html#GST-VIDEO-CHROMA-METHOD-LINEAR:CAPS"/>
     <keyword type="constant" name="GST_VIDEO_RESAMPLER_FLAG_NONE" link="gst-plugins-base-libs-GstVideoResampler.html#GST-VIDEO-RESAMPLER-FLAG-NONE:CAPS"/>
+    <keyword type="constant" name="GST_VIDEO_RESAMPLER_FLAG_HALF_TAPS" link="gst-plugins-base-libs-GstVideoResampler.html#GST-VIDEO-RESAMPLER-FLAG-HALF-TAPS:CAPS"/>
     <keyword type="constant" name="GST_VIDEO_RESAMPLER_METHOD_NEAREST" link="gst-plugins-base-libs-GstVideoResampler.html#GST-VIDEO-RESAMPLER-METHOD-NEAREST:CAPS"/>
     <keyword type="constant" name="GST_VIDEO_RESAMPLER_METHOD_LINEAR" link="gst-plugins-base-libs-GstVideoResampler.html#GST-VIDEO-RESAMPLER-METHOD-LINEAR:CAPS"/>
     <keyword type="constant" name="GST_VIDEO_RESAMPLER_METHOD_CUBIC" link="gst-plugins-base-libs-GstVideoResampler.html#GST-VIDEO-RESAMPLER-METHOD-CUBIC:CAPS"/>
@@ -2523,488 +2531,5 @@
     <keyword type="constant" name="GST_NAVIGATION_QUERY_INVALID" link="gst-plugins-base-libs-gstnavigation.html#GST-NAVIGATION-QUERY-INVALID:CAPS"/>
     <keyword type="constant" name="GST_NAVIGATION_QUERY_COMMANDS" link="gst-plugins-base-libs-gstnavigation.html#GST-NAVIGATION-QUERY-COMMANDS:CAPS"/>
     <keyword type="constant" name="GST_NAVIGATION_QUERY_ANGLES" link="gst-plugins-base-libs-gstnavigation.html#GST-NAVIGATION-QUERY-ANGLES:CAPS"/>
-    <keyword type="member" name="GstAppSrcCallbacks.need-data" link="gst-plugins-base-libs-appsrc.html#GstAppSrcCallbacks.need-data"/>
-    <keyword type="member" name="GstAppSrcCallbacks.enough-data" link="gst-plugins-base-libs-appsrc.html#GstAppSrcCallbacks.enough-data"/>
-    <keyword type="member" name="GstAppSrcCallbacks.seek-data" link="gst-plugins-base-libs-appsrc.html#GstAppSrcCallbacks.seek-data"/>
-    <keyword type="member" name="GstAppSinkCallbacks.eos" link="gst-plugins-base-libs-appsink.html#GstAppSinkCallbacks.eos"/>
-    <keyword type="member" name="GstAppSinkCallbacks.new-preroll" link="gst-plugins-base-libs-appsink.html#GstAppSinkCallbacks.new-preroll"/>
-    <keyword type="member" name="GstAppSinkCallbacks.new-sample" link="gst-plugins-base-libs-appsink.html#GstAppSinkCallbacks.new-sample"/>
-    <keyword type="member" name="GstAudioFormatInfo.format" link="gst-plugins-base-libs-gstaudio.html#GstAudioFormatInfo.format"/>
-    <keyword type="member" name="GstAudioFormatInfo.name" link="gst-plugins-base-libs-gstaudio.html#GstAudioFormatInfo.name"/>
-    <keyword type="member" name="GstAudioFormatInfo.description" link="gst-plugins-base-libs-gstaudio.html#GstAudioFormatInfo.description"/>
-    <keyword type="member" name="GstAudioFormatInfo.flags" link="gst-plugins-base-libs-gstaudio.html#GstAudioFormatInfo.flags"/>
-    <keyword type="member" name="GstAudioFormatInfo.endianness" link="gst-plugins-base-libs-gstaudio.html#GstAudioFormatInfo.endianness"/>
-    <keyword type="member" name="GstAudioFormatInfo.width" link="gst-plugins-base-libs-gstaudio.html#GstAudioFormatInfo.width"/>
-    <keyword type="member" name="GstAudioFormatInfo.depth" link="gst-plugins-base-libs-gstaudio.html#GstAudioFormatInfo.depth"/>
-    <keyword type="member" name="GstAudioFormatInfo.silence" link="gst-plugins-base-libs-gstaudio.html#GstAudioFormatInfo.silence"/>
-    <keyword type="member" name="GstAudioFormatInfo.unpack-format" link="gst-plugins-base-libs-gstaudio.html#GstAudioFormatInfo.unpack-format"/>
-    <keyword type="member" name="GstAudioFormatInfo.unpack-func" link="gst-plugins-base-libs-gstaudio.html#GstAudioFormatInfo.unpack-func"/>
-    <keyword type="member" name="GstAudioFormatInfo.pack-func" link="gst-plugins-base-libs-gstaudio.html#GstAudioFormatInfo.pack-func"/>
-    <keyword type="member" name="GstAudioInfo.finfo" link="gst-plugins-base-libs-gstaudio.html#GstAudioInfo.finfo"/>
-    <keyword type="member" name="GstAudioInfo.flags" link="gst-plugins-base-libs-gstaudio.html#GstAudioInfo.flags"/>
-    <keyword type="member" name="GstAudioInfo.layout" link="gst-plugins-base-libs-gstaudio.html#GstAudioInfo.layout"/>
-    <keyword type="member" name="GstAudioInfo.rate" link="gst-plugins-base-libs-gstaudio.html#GstAudioInfo.rate"/>
-    <keyword type="member" name="GstAudioInfo.channels" link="gst-plugins-base-libs-gstaudio.html#GstAudioInfo.channels"/>
-    <keyword type="member" name="GstAudioInfo.bpf" link="gst-plugins-base-libs-gstaudio.html#GstAudioInfo.bpf"/>
-    <keyword type="member" name="GstAudioInfo.position" link="gst-plugins-base-libs-gstaudio.html#GstAudioInfo.position"/>
-    <keyword type="member" name="GstAudioDownmixMeta.meta" link="gst-plugins-base-libs-gstaudiometa.html#GstAudioDownmixMeta.meta"/>
-    <keyword type="member" name="GstAudioDownmixMeta.from-position" link="gst-plugins-base-libs-gstaudiometa.html#GstAudioDownmixMeta.from-position"/>
-    <keyword type="member" name="GstAudioDownmixMeta.to-position" link="gst-plugins-base-libs-gstaudiometa.html#GstAudioDownmixMeta.to-position"/>
-    <keyword type="member" name="GstAudioDownmixMeta.from-channels" link="gst-plugins-base-libs-gstaudiometa.html#GstAudioDownmixMeta.from-channels"/>
-    <keyword type="member" name="GstAudioDownmixMeta.to-channels" link="gst-plugins-base-libs-gstaudiometa.html#GstAudioDownmixMeta.to-channels"/>
-    <keyword type="member" name="GstAudioDownmixMeta.matrix" link="gst-plugins-base-libs-gstaudiometa.html#GstAudioDownmixMeta.matrix"/>
-    <keyword type="member" name="GstAudioClippingMeta.meta" link="gst-plugins-base-libs-gstaudiometa.html#GstAudioClippingMeta.meta"/>
-    <keyword type="member" name="GstAudioClippingMeta.format" link="gst-plugins-base-libs-gstaudiometa.html#GstAudioClippingMeta.format"/>
-    <keyword type="member" name="GstAudioClippingMeta.start" link="gst-plugins-base-libs-gstaudiometa.html#GstAudioClippingMeta.start"/>
-    <keyword type="member" name="GstAudioClippingMeta.end" link="gst-plugins-base-libs-gstaudiometa.html#GstAudioClippingMeta.end"/>
-    <keyword type="member" name="GstAudioCdSrcClass.pushsrc-class" link="gst-plugins-base-libs-gstaudiocdsrc.html#GstAudioCdSrcClass.pushsrc-class"/>
-    <keyword type="member" name="GstAudioCdSrcClass.open" link="gst-plugins-base-libs-gstaudiocdsrc.html#GstAudioCdSrcClass.open"/>
-    <keyword type="member" name="GstAudioCdSrcClass.close" link="gst-plugins-base-libs-gstaudiocdsrc.html#GstAudioCdSrcClass.close"/>
-    <keyword type="member" name="GstAudioCdSrcClass.read-sector" link="gst-plugins-base-libs-gstaudiocdsrc.html#GstAudioCdSrcClass.read-sector"/>
-    <keyword type="member" name="GstAudioCdSrcClass.get-default-device" link="gst-plugins-base-libs-gstaudiocdsrc.html#GstAudioCdSrcClass.get-default-device"/>
-    <keyword type="member" name="GstAudioCdSrcClass.probe-devices" link="gst-plugins-base-libs-gstaudiocdsrc.html#GstAudioCdSrcClass.probe-devices"/>
-    <keyword type="member" name="GstAudioCdSrcTrack.is-audio" link="gst-plugins-base-libs-gstaudiocdsrc.html#GstAudioCdSrcTrack.is-audio"/>
-    <keyword type="member" name="GstAudioCdSrcTrack.num" link="gst-plugins-base-libs-gstaudiocdsrc.html#GstAudioCdSrcTrack.num"/>
-    <keyword type="member" name="GstAudioCdSrcTrack.start" link="gst-plugins-base-libs-gstaudiocdsrc.html#GstAudioCdSrcTrack.start"/>
-    <keyword type="member" name="GstAudioCdSrcTrack.end" link="gst-plugins-base-libs-gstaudiocdsrc.html#GstAudioCdSrcTrack.end"/>
-    <keyword type="member" name="GstAudioCdSrcTrack.tags" link="gst-plugins-base-libs-gstaudiocdsrc.html#GstAudioCdSrcTrack.tags"/>
-    <keyword type="member" name="GstAudioDecoderClass.element-class" link="gst-plugins-base-libs-gstaudiodecoder.html#GstAudioDecoderClass.element-class"/>
-    <keyword type="member" name="GstAudioDecoderClass.start" link="gst-plugins-base-libs-gstaudiodecoder.html#GstAudioDecoderClass.start"/>
-    <keyword type="member" name="GstAudioDecoderClass.stop" link="gst-plugins-base-libs-gstaudiodecoder.html#GstAudioDecoderClass.stop"/>
-    <keyword type="member" name="GstAudioDecoderClass.set-format" link="gst-plugins-base-libs-gstaudiodecoder.html#GstAudioDecoderClass.set-format"/>
-    <keyword type="member" name="GstAudioDecoderClass.parse" link="gst-plugins-base-libs-gstaudiodecoder.html#GstAudioDecoderClass.parse"/>
-    <keyword type="member" name="GstAudioDecoderClass.handle-frame" link="gst-plugins-base-libs-gstaudiodecoder.html#GstAudioDecoderClass.handle-frame"/>
-    <keyword type="member" name="GstAudioDecoderClass.flush" link="gst-plugins-base-libs-gstaudiodecoder.html#GstAudioDecoderClass.flush"/>
-    <keyword type="member" name="GstAudioDecoderClass.pre-push" link="gst-plugins-base-libs-gstaudiodecoder.html#GstAudioDecoderClass.pre-push"/>
-    <keyword type="member" name="GstAudioDecoderClass.sink-event" link="gst-plugins-base-libs-gstaudiodecoder.html#GstAudioDecoderClass.sink-event"/>
-    <keyword type="member" name="GstAudioDecoderClass.src-event" link="gst-plugins-base-libs-gstaudiodecoder.html#GstAudioDecoderClass.src-event"/>
-    <keyword type="member" name="GstAudioDecoderClass.open" link="gst-plugins-base-libs-gstaudiodecoder.html#GstAudioDecoderClass.open"/>
-    <keyword type="member" name="GstAudioDecoderClass.close" link="gst-plugins-base-libs-gstaudiodecoder.html#GstAudioDecoderClass.close"/>
-    <keyword type="member" name="GstAudioDecoderClass.negotiate" link="gst-plugins-base-libs-gstaudiodecoder.html#GstAudioDecoderClass.negotiate"/>
-    <keyword type="member" name="GstAudioDecoderClass.decide-allocation" link="gst-plugins-base-libs-gstaudiodecoder.html#GstAudioDecoderClass.decide-allocation"/>
-    <keyword type="member" name="GstAudioDecoderClass.propose-allocation" link="gst-plugins-base-libs-gstaudiodecoder.html#GstAudioDecoderClass.propose-allocation"/>
-    <keyword type="member" name="GstAudioDecoderClass.sink-query" link="gst-plugins-base-libs-gstaudiodecoder.html#GstAudioDecoderClass.sink-query"/>
-    <keyword type="member" name="GstAudioDecoderClass.src-query" link="gst-plugins-base-libs-gstaudiodecoder.html#GstAudioDecoderClass.src-query"/>
-    <keyword type="member" name="GstAudioDecoderClass.getcaps" link="gst-plugins-base-libs-gstaudiodecoder.html#GstAudioDecoderClass.getcaps"/>
-    <keyword type="member" name="GstAudioDecoderClass.transform-meta" link="gst-plugins-base-libs-gstaudiodecoder.html#GstAudioDecoderClass.transform-meta"/>
-    <keyword type="member" name="GstAudioEncoderClass.element-class" link="gst-plugins-base-libs-gstaudioencoder.html#GstAudioEncoderClass.element-class"/>
-    <keyword type="member" name="GstAudioEncoderClass.start" link="gst-plugins-base-libs-gstaudioencoder.html#GstAudioEncoderClass.start"/>
-    <keyword type="member" name="GstAudioEncoderClass.stop" link="gst-plugins-base-libs-gstaudioencoder.html#GstAudioEncoderClass.stop"/>
-    <keyword type="member" name="GstAudioEncoderClass.set-format" link="gst-plugins-base-libs-gstaudioencoder.html#GstAudioEncoderClass.set-format"/>
-    <keyword type="member" name="GstAudioEncoderClass.handle-frame" link="gst-plugins-base-libs-gstaudioencoder.html#GstAudioEncoderClass.handle-frame"/>
-    <keyword type="member" name="GstAudioEncoderClass.flush" link="gst-plugins-base-libs-gstaudioencoder.html#GstAudioEncoderClass.flush"/>
-    <keyword type="member" name="GstAudioEncoderClass.pre-push" link="gst-plugins-base-libs-gstaudioencoder.html#GstAudioEncoderClass.pre-push"/>
-    <keyword type="member" name="GstAudioEncoderClass.sink-event" link="gst-plugins-base-libs-gstaudioencoder.html#GstAudioEncoderClass.sink-event"/>
-    <keyword type="member" name="GstAudioEncoderClass.src-event" link="gst-plugins-base-libs-gstaudioencoder.html#GstAudioEncoderClass.src-event"/>
-    <keyword type="member" name="GstAudioEncoderClass.getcaps" link="gst-plugins-base-libs-gstaudioencoder.html#GstAudioEncoderClass.getcaps"/>
-    <keyword type="member" name="GstAudioEncoderClass.open" link="gst-plugins-base-libs-gstaudioencoder.html#GstAudioEncoderClass.open"/>
-    <keyword type="member" name="GstAudioEncoderClass.close" link="gst-plugins-base-libs-gstaudioencoder.html#GstAudioEncoderClass.close"/>
-    <keyword type="member" name="GstAudioEncoderClass.negotiate" link="gst-plugins-base-libs-gstaudioencoder.html#GstAudioEncoderClass.negotiate"/>
-    <keyword type="member" name="GstAudioEncoderClass.decide-allocation" link="gst-plugins-base-libs-gstaudioencoder.html#GstAudioEncoderClass.decide-allocation"/>
-    <keyword type="member" name="GstAudioEncoderClass.propose-allocation" link="gst-plugins-base-libs-gstaudioencoder.html#GstAudioEncoderClass.propose-allocation"/>
-    <keyword type="member" name="GstAudioEncoderClass.transform-meta" link="gst-plugins-base-libs-gstaudioencoder.html#GstAudioEncoderClass.transform-meta"/>
-    <keyword type="member" name="GstAudioEncoderClass.sink-query" link="gst-plugins-base-libs-gstaudioencoder.html#GstAudioEncoderClass.sink-query"/>
-    <keyword type="member" name="GstAudioEncoderClass.src-query" link="gst-plugins-base-libs-gstaudioencoder.html#GstAudioEncoderClass.src-query"/>
-    <keyword type="member" name="GstAudioFilterClass.basetransformclass" link="gst-plugins-base-libs-gstaudiofilter.html#GstAudioFilterClass.basetransformclass"/>
-    <keyword type="member" name="GstAudioFilterClass.setup" link="gst-plugins-base-libs-gstaudiofilter.html#GstAudioFilterClass.setup"/>
-    <keyword type="member" name="GstAudioSinkClass.open" link="gst-plugins-base-libs-gstaudiosink.html#GstAudioSinkClass.open"/>
-    <keyword type="member" name="GstAudioSinkClass.prepare" link="gst-plugins-base-libs-gstaudiosink.html#GstAudioSinkClass.prepare"/>
-    <keyword type="member" name="GstAudioSinkClass.unprepare" link="gst-plugins-base-libs-gstaudiosink.html#GstAudioSinkClass.unprepare"/>
-    <keyword type="member" name="GstAudioSinkClass.close" link="gst-plugins-base-libs-gstaudiosink.html#GstAudioSinkClass.close"/>
-    <keyword type="member" name="GstAudioSinkClass.write" link="gst-plugins-base-libs-gstaudiosink.html#GstAudioSinkClass.write"/>
-    <keyword type="member" name="GstAudioSinkClass.delay" link="gst-plugins-base-libs-gstaudiosink.html#GstAudioSinkClass.delay"/>
-    <keyword type="member" name="GstAudioSinkClass.reset" link="gst-plugins-base-libs-gstaudiosink.html#GstAudioSinkClass.reset"/>
-    <keyword type="member" name="GstAudioSrcClass.open" link="gst-plugins-base-libs-gstaudiosrc.html#GstAudioSrcClass.open"/>
-    <keyword type="member" name="GstAudioSrcClass.prepare" link="gst-plugins-base-libs-gstaudiosrc.html#GstAudioSrcClass.prepare"/>
-    <keyword type="member" name="GstAudioSrcClass.unprepare" link="gst-plugins-base-libs-gstaudiosrc.html#GstAudioSrcClass.unprepare"/>
-    <keyword type="member" name="GstAudioSrcClass.close" link="gst-plugins-base-libs-gstaudiosrc.html#GstAudioSrcClass.close"/>
-    <keyword type="member" name="GstAudioSrcClass.read" link="gst-plugins-base-libs-gstaudiosrc.html#GstAudioSrcClass.read"/>
-    <keyword type="member" name="GstAudioSrcClass.delay" link="gst-plugins-base-libs-gstaudiosrc.html#GstAudioSrcClass.delay"/>
-    <keyword type="member" name="GstAudioSrcClass.reset" link="gst-plugins-base-libs-gstaudiosrc.html#GstAudioSrcClass.reset"/>
-    <keyword type="member" name="GstAudioBaseSinkClass.create-ringbuffer" link="gst-plugins-base-libs-gstaudiobasesink.html#GstAudioBaseSinkClass.create-ringbuffer"/>
-    <keyword type="member" name="GstAudioBaseSinkClass.payload" link="gst-plugins-base-libs-gstaudiobasesink.html#GstAudioBaseSinkClass.payload"/>
-    <keyword type="member" name="GstAudioBaseSrcClass.create-ringbuffer" link="gst-plugins-base-libs-gstaudiobasesrc.html#GstAudioBaseSrcClass.create-ringbuffer"/>
-    <keyword type="member" name="GstAudioRingBuffer-struct.cond" link="gst-plugins-base-libs-gstaudioringbuffer.html#GstAudioRingBuffer-struct.cond"/>
-    <keyword type="member" name="GstAudioRingBuffer-struct.open" link="gst-plugins-base-libs-gstaudioringbuffer.html#GstAudioRingBuffer-struct.open"/>
-    <keyword type="member" name="GstAudioRingBuffer-struct.acquired" link="gst-plugins-base-libs-gstaudioringbuffer.html#GstAudioRingBuffer-struct.acquired"/>
-    <keyword type="member" name="GstAudioRingBuffer-struct.memory" link="gst-plugins-base-libs-gstaudioringbuffer.html#GstAudioRingBuffer-struct.memory"/>
-    <keyword type="member" name="GstAudioRingBuffer-struct.size" link="gst-plugins-base-libs-gstaudioringbuffer.html#GstAudioRingBuffer-struct.size"/>
-    <keyword type="member" name="GstAudioRingBuffer-struct.timestamps" link="gst-plugins-base-libs-gstaudioringbuffer.html#GstAudioRingBuffer-struct.timestamps"/>
-    <keyword type="member" name="GstAudioRingBuffer-struct.spec" link="gst-plugins-base-libs-gstaudioringbuffer.html#GstAudioRingBuffer-struct.spec"/>
-    <keyword type="member" name="GstAudioRingBuffer-struct.samples-per-seg" link="gst-plugins-base-libs-gstaudioringbuffer.html#GstAudioRingBuffer-struct.samples-per-seg"/>
-    <keyword type="member" name="GstAudioRingBuffer-struct.empty-seg" link="gst-plugins-base-libs-gstaudioringbuffer.html#GstAudioRingBuffer-struct.empty-seg"/>
-    <keyword type="member" name="GstAudioRingBuffer-struct.state" link="gst-plugins-base-libs-gstaudioringbuffer.html#GstAudioRingBuffer-struct.state"/>
-    <keyword type="member" name="GstAudioRingBuffer-struct.segdone" link="gst-plugins-base-libs-gstaudioringbuffer.html#GstAudioRingBuffer-struct.segdone"/>
-    <keyword type="member" name="GstAudioRingBuffer-struct.segbase" link="gst-plugins-base-libs-gstaudioringbuffer.html#GstAudioRingBuffer-struct.segbase"/>
-    <keyword type="member" name="GstAudioRingBuffer-struct.waiting" link="gst-plugins-base-libs-gstaudioringbuffer.html#GstAudioRingBuffer-struct.waiting"/>
-    <keyword type="member" name="GstAudioRingBufferClass.open-device" link="gst-plugins-base-libs-gstaudioringbuffer.html#GstAudioRingBufferClass.open-device"/>
-    <keyword type="member" name="GstAudioRingBufferClass.acquire" link="gst-plugins-base-libs-gstaudioringbuffer.html#GstAudioRingBufferClass.acquire"/>
-    <keyword type="member" name="GstAudioRingBufferClass.release" link="gst-plugins-base-libs-gstaudioringbuffer.html#GstAudioRingBufferClass.release"/>
-    <keyword type="member" name="GstAudioRingBufferClass.close-device" link="gst-plugins-base-libs-gstaudioringbuffer.html#GstAudioRingBufferClass.close-device"/>
-    <keyword type="member" name="GstAudioRingBufferClass.start" link="gst-plugins-base-libs-gstaudioringbuffer.html#GstAudioRingBufferClass.start"/>
-    <keyword type="member" name="GstAudioRingBufferClass.pause" link="gst-plugins-base-libs-gstaudioringbuffer.html#GstAudioRingBufferClass.pause"/>
-    <keyword type="member" name="GstAudioRingBufferClass.resume" link="gst-plugins-base-libs-gstaudioringbuffer.html#GstAudioRingBufferClass.resume"/>
-    <keyword type="member" name="GstAudioRingBufferClass.stop" link="gst-plugins-base-libs-gstaudioringbuffer.html#GstAudioRingBufferClass.stop"/>
-    <keyword type="member" name="GstAudioRingBufferClass.delay" link="gst-plugins-base-libs-gstaudioringbuffer.html#GstAudioRingBufferClass.delay"/>
-    <keyword type="member" name="GstAudioRingBufferClass.activate" link="gst-plugins-base-libs-gstaudioringbuffer.html#GstAudioRingBufferClass.activate"/>
-    <keyword type="member" name="GstAudioRingBufferClass.commit" link="gst-plugins-base-libs-gstaudioringbuffer.html#GstAudioRingBufferClass.commit"/>
-    <keyword type="member" name="GstAudioRingBufferClass.clear-all" link="gst-plugins-base-libs-gstaudioringbuffer.html#GstAudioRingBufferClass.clear-all"/>
-    <keyword type="member" name="GstAudioRingBufferSpec.caps" link="gst-plugins-base-libs-gstaudioringbuffer.html#GstAudioRingBufferSpec.caps"/>
-    <keyword type="member" name="GstAudioRingBufferSpec.type" link="gst-plugins-base-libs-gstaudioringbuffer.html#GstAudioRingBufferSpec.type"/>
-    <keyword type="member" name="GstAudioRingBufferSpec.info" link="gst-plugins-base-libs-gstaudioringbuffer.html#GstAudioRingBufferSpec.info"/>
-    <keyword type="member" name="GstAudioRingBufferSpec.latency-time" link="gst-plugins-base-libs-gstaudioringbuffer.html#GstAudioRingBufferSpec.latency-time"/>
-    <keyword type="member" name="GstAudioRingBufferSpec.buffer-time" link="gst-plugins-base-libs-gstaudioringbuffer.html#GstAudioRingBufferSpec.buffer-time"/>
-    <keyword type="member" name="GstAudioRingBufferSpec.segsize" link="gst-plugins-base-libs-gstaudioringbuffer.html#GstAudioRingBufferSpec.segsize"/>
-    <keyword type="member" name="GstAudioRingBufferSpec.segtotal" link="gst-plugins-base-libs-gstaudioringbuffer.html#GstAudioRingBufferSpec.segtotal"/>
-    <keyword type="member" name="GstAudioRingBufferSpec.seglatency" link="gst-plugins-base-libs-gstaudioringbuffer.html#GstAudioRingBufferSpec.seglatency"/>
-    <keyword type="member" name="GstFFTS16Complex.r" link="gst-plugins-base-libs-gstffts16.html#GstFFTS16Complex.r"/>
-    <keyword type="member" name="GstFFTS16Complex.i" link="gst-plugins-base-libs-gstffts16.html#GstFFTS16Complex.i"/>
-    <keyword type="member" name="GstFFTS32Complex.r" link="gst-plugins-base-libs-gstffts32.html#GstFFTS32Complex.r"/>
-    <keyword type="member" name="GstFFTS32Complex.i" link="gst-plugins-base-libs-gstffts32.html#GstFFTS32Complex.i"/>
-    <keyword type="member" name="GstFFTF32Complex.r" link="gst-plugins-base-libs-gstfftf32.html#GstFFTF32Complex.r"/>
-    <keyword type="member" name="GstFFTF32Complex.i" link="gst-plugins-base-libs-gstfftf32.html#GstFFTF32Complex.i"/>
-    <keyword type="member" name="GstFFTF64Complex.r" link="gst-plugins-base-libs-gstfftf64.html#GstFFTF64Complex.r"/>
-    <keyword type="member" name="GstFFTF64Complex.i" link="gst-plugins-base-libs-gstfftf64.html#GstFFTF64Complex.i"/>
-    <keyword type="member" name="GstRTPBaseDepayloadClass.set-caps" link="gst-plugins-base-libs-gstrtpbasedepayload.html#GstRTPBaseDepayloadClass.set-caps"/>
-    <keyword type="member" name="GstRTPBaseDepayloadClass.process" link="gst-plugins-base-libs-gstrtpbasedepayload.html#GstRTPBaseDepayloadClass.process"/>
-    <keyword type="member" name="GstRTPBaseDepayloadClass.packet-lost" link="gst-plugins-base-libs-gstrtpbasedepayload.html#GstRTPBaseDepayloadClass.packet-lost"/>
-    <keyword type="member" name="GstRTPBaseDepayloadClass.handle-event" link="gst-plugins-base-libs-gstrtpbasedepayload.html#GstRTPBaseDepayloadClass.handle-event"/>
-    <keyword type="member" name="GstRTPBaseDepayloadClass.process-rtp-packet" link="gst-plugins-base-libs-gstrtpbasedepayload.html#GstRTPBaseDepayloadClass.process-rtp-packet"/>
-    <keyword type="member" name="GstRTPBasePayloadClass.get-caps" link="gst-plugins-base-libs-gstrtpbasepayload.html#GstRTPBasePayloadClass.get-caps"/>
-    <keyword type="member" name="GstRTPBasePayloadClass.set-caps" link="gst-plugins-base-libs-gstrtpbasepayload.html#GstRTPBasePayloadClass.set-caps"/>
-    <keyword type="member" name="GstRTPBasePayloadClass.handle-buffer" link="gst-plugins-base-libs-gstrtpbasepayload.html#GstRTPBasePayloadClass.handle-buffer"/>
-    <keyword type="member" name="GstRTPBasePayloadClass.sink-event" link="gst-plugins-base-libs-gstrtpbasepayload.html#GstRTPBasePayloadClass.sink-event"/>
-    <keyword type="member" name="GstRTPBasePayloadClass.src-event" link="gst-plugins-base-libs-gstrtpbasepayload.html#GstRTPBasePayloadClass.src-event"/>
-    <keyword type="member" name="GstRTPBasePayloadClass.query" link="gst-plugins-base-libs-gstrtpbasepayload.html#GstRTPBasePayloadClass.query"/>
-    <keyword type="member" name="GstRTPBuffer.buffer" link="gst-plugins-base-libs-gstrtpbuffer.html#GstRTPBuffer.buffer"/>
-    <keyword type="member" name="GstRTPBuffer.state" link="gst-plugins-base-libs-gstrtpbuffer.html#GstRTPBuffer.state"/>
-    <keyword type="member" name="GstRTPBuffer.data" link="gst-plugins-base-libs-gstrtpbuffer.html#GstRTPBuffer.data"/>
-    <keyword type="member" name="GstRTPBuffer.size" link="gst-plugins-base-libs-gstrtpbuffer.html#GstRTPBuffer.size"/>
-    <keyword type="member" name="GstRTPBuffer.map" link="gst-plugins-base-libs-gstrtpbuffer.html#GstRTPBuffer.map"/>
-    <keyword type="member" name="GstRTCPPacket.rtcp" link="gst-plugins-base-libs-gstrtcpbuffer.html#GstRTCPPacket.rtcp"/>
-    <keyword type="member" name="GstRTCPPacket.offset" link="gst-plugins-base-libs-gstrtcpbuffer.html#GstRTCPPacket.offset"/>
-    <keyword type="member" name="GstRTPPayloadInfo.payload-type" link="gst-plugins-base-libs-gstrtppayloads.html#GstRTPPayloadInfo.payload-type"/>
-    <keyword type="member" name="GstRTPPayloadInfo.media" link="gst-plugins-base-libs-gstrtppayloads.html#GstRTPPayloadInfo.media"/>
-    <keyword type="member" name="GstRTPPayloadInfo.encoding-name" link="gst-plugins-base-libs-gstrtppayloads.html#GstRTPPayloadInfo.encoding-name"/>
-    <keyword type="member" name="GstRTPPayloadInfo.clock-rate" link="gst-plugins-base-libs-gstrtppayloads.html#GstRTPPayloadInfo.clock-rate"/>
-    <keyword type="member" name="GstRTPPayloadInfo.encoding-parameters" link="gst-plugins-base-libs-gstrtppayloads.html#GstRTPPayloadInfo.encoding-parameters"/>
-    <keyword type="member" name="GstRTPPayloadInfo.bitrate" link="gst-plugins-base-libs-gstrtppayloads.html#GstRTPPayloadInfo.bitrate"/>
-    <keyword type="member" name="GstRTSPWatchFuncs.message-received" link="gst-plugins-base-libs-gstrtspconnection.html#GstRTSPWatchFuncs.message-received"/>
-    <keyword type="member" name="GstRTSPWatchFuncs.message-sent" link="gst-plugins-base-libs-gstrtspconnection.html#GstRTSPWatchFuncs.message-sent"/>
-    <keyword type="member" name="GstRTSPWatchFuncs.closed" link="gst-plugins-base-libs-gstrtspconnection.html#GstRTSPWatchFuncs.closed"/>
-    <keyword type="member" name="GstRTSPWatchFuncs.error" link="gst-plugins-base-libs-gstrtspconnection.html#GstRTSPWatchFuncs.error"/>
-    <keyword type="member" name="GstRTSPWatchFuncs.tunnel-start" link="gst-plugins-base-libs-gstrtspconnection.html#GstRTSPWatchFuncs.tunnel-start"/>
-    <keyword type="member" name="GstRTSPWatchFuncs.tunnel-complete" link="gst-plugins-base-libs-gstrtspconnection.html#GstRTSPWatchFuncs.tunnel-complete"/>
-    <keyword type="member" name="GstRTSPWatchFuncs.error-full" link="gst-plugins-base-libs-gstrtspconnection.html#GstRTSPWatchFuncs.error-full"/>
-    <keyword type="member" name="GstRTSPWatchFuncs.tunnel-lost" link="gst-plugins-base-libs-gstrtspconnection.html#GstRTSPWatchFuncs.tunnel-lost"/>
-    <keyword type="member" name="GstRTSPWatchFuncs.tunnel-http-response" link="gst-plugins-base-libs-gstrtspconnection.html#GstRTSPWatchFuncs.tunnel-http-response"/>
-    <keyword type="member" name="GstRTSPMessage.type" link="gst-plugins-base-libs-gstrtspmessage.html#GstRTSPMessage.type"/>
-    <keyword type="member" name="GstRTSPTimeRange.unit" link="gst-plugins-base-libs-gstrtsprange.html#GstRTSPTimeRange.unit"/>
-    <keyword type="member" name="GstRTSPTimeRange.min" link="gst-plugins-base-libs-gstrtsprange.html#GstRTSPTimeRange.min"/>
-    <keyword type="member" name="GstRTSPTimeRange.max" link="gst-plugins-base-libs-gstrtsprange.html#GstRTSPTimeRange.max"/>
-    <keyword type="member" name="GstRTSPTimeRange.min2" link="gst-plugins-base-libs-gstrtsprange.html#GstRTSPTimeRange.min2"/>
-    <keyword type="member" name="GstRTSPTimeRange.max2" link="gst-plugins-base-libs-gstrtsprange.html#GstRTSPTimeRange.max2"/>
-    <keyword type="member" name="GstRTSPTime.type" link="gst-plugins-base-libs-gstrtsprange.html#GstRTSPTime.type"/>
-    <keyword type="member" name="GstRTSPTime.seconds" link="gst-plugins-base-libs-gstrtsprange.html#GstRTSPTime.seconds"/>
-    <keyword type="member" name="GstRTSPTime2.frames" link="gst-plugins-base-libs-gstrtsprange.html#GstRTSPTime2.frames"/>
-    <keyword type="member" name="GstRTSPTime2.year" link="gst-plugins-base-libs-gstrtsprange.html#GstRTSPTime2.year"/>
-    <keyword type="member" name="GstRTSPTime2.month" link="gst-plugins-base-libs-gstrtsprange.html#GstRTSPTime2.month"/>
-    <keyword type="member" name="GstRTSPTime2.day" link="gst-plugins-base-libs-gstrtsprange.html#GstRTSPTime2.day"/>
-    <keyword type="member" name="GstRTSPRange.min" link="gst-plugins-base-libs-gstrtsptransport.html#GstRTSPRange.min"/>
-    <keyword type="member" name="GstRTSPRange.max" link="gst-plugins-base-libs-gstrtsptransport.html#GstRTSPRange.max"/>
-    <keyword type="member" name="GstRTSPTransport.trans" link="gst-plugins-base-libs-gstrtsptransport.html#GstRTSPTransport.trans"/>
-    <keyword type="member" name="GstRTSPTransport.profile" link="gst-plugins-base-libs-gstrtsptransport.html#GstRTSPTransport.profile"/>
-    <keyword type="member" name="GstRTSPTransport.lower-transport" link="gst-plugins-base-libs-gstrtsptransport.html#GstRTSPTransport.lower-transport"/>
-    <keyword type="member" name="GstRTSPTransport.destination" link="gst-plugins-base-libs-gstrtsptransport.html#GstRTSPTransport.destination"/>
-    <keyword type="member" name="GstRTSPTransport.source" link="gst-plugins-base-libs-gstrtsptransport.html#GstRTSPTransport.source"/>
-    <keyword type="member" name="GstRTSPTransport.layers" link="gst-plugins-base-libs-gstrtsptransport.html#GstRTSPTransport.layers"/>
-    <keyword type="member" name="GstRTSPTransport.mode-play" link="gst-plugins-base-libs-gstrtsptransport.html#GstRTSPTransport.mode-play"/>
-    <keyword type="member" name="GstRTSPTransport.mode-record" link="gst-plugins-base-libs-gstrtsptransport.html#GstRTSPTransport.mode-record"/>
-    <keyword type="member" name="GstRTSPTransport.append" link="gst-plugins-base-libs-gstrtsptransport.html#GstRTSPTransport.append"/>
-    <keyword type="member" name="GstRTSPTransport.interleaved" link="gst-plugins-base-libs-gstrtsptransport.html#GstRTSPTransport.interleaved"/>
-    <keyword type="member" name="GstRTSPTransport.ttl" link="gst-plugins-base-libs-gstrtsptransport.html#GstRTSPTransport.ttl"/>
-    <keyword type="member" name="GstRTSPTransport.port" link="gst-plugins-base-libs-gstrtsptransport.html#GstRTSPTransport.port"/>
-    <keyword type="member" name="GstRTSPTransport.client-port" link="gst-plugins-base-libs-gstrtsptransport.html#GstRTSPTransport.client-port"/>
-    <keyword type="member" name="GstRTSPTransport.server-port" link="gst-plugins-base-libs-gstrtsptransport.html#GstRTSPTransport.server-port"/>
-    <keyword type="member" name="GstRTSPTransport.ssrc" link="gst-plugins-base-libs-gstrtsptransport.html#GstRTSPTransport.ssrc"/>
-    <keyword type="member" name="GstRTSPUrl.transports" link="gst-plugins-base-libs-gstrtspurl.html#GstRTSPUrl.transports"/>
-    <keyword type="member" name="GstRTSPUrl.family" link="gst-plugins-base-libs-gstrtspurl.html#GstRTSPUrl.family"/>
-    <keyword type="member" name="GstRTSPUrl.user" link="gst-plugins-base-libs-gstrtspurl.html#GstRTSPUrl.user"/>
-    <keyword type="member" name="GstRTSPUrl.passwd" link="gst-plugins-base-libs-gstrtspurl.html#GstRTSPUrl.passwd"/>
-    <keyword type="member" name="GstRTSPUrl.host" link="gst-plugins-base-libs-gstrtspurl.html#GstRTSPUrl.host"/>
-    <keyword type="member" name="GstRTSPUrl.port" link="gst-plugins-base-libs-gstrtspurl.html#GstRTSPUrl.port"/>
-    <keyword type="member" name="GstRTSPUrl.abspath" link="gst-plugins-base-libs-gstrtspurl.html#GstRTSPUrl.abspath"/>
-    <keyword type="member" name="GstRTSPUrl.query" link="gst-plugins-base-libs-gstrtspurl.html#GstRTSPUrl.query"/>
-    <keyword type="member" name="GstSDPOrigin.username" link="gst-plugins-base-libs-gstsdpmessage.html#GstSDPOrigin.username"/>
-    <keyword type="member" name="GstSDPOrigin.sess-id" link="gst-plugins-base-libs-gstsdpmessage.html#GstSDPOrigin.sess-id"/>
-    <keyword type="member" name="GstSDPOrigin.sess-version" link="gst-plugins-base-libs-gstsdpmessage.html#GstSDPOrigin.sess-version"/>
-    <keyword type="member" name="GstSDPOrigin.nettype" link="gst-plugins-base-libs-gstsdpmessage.html#GstSDPOrigin.nettype"/>
-    <keyword type="member" name="GstSDPOrigin.addrtype" link="gst-plugins-base-libs-gstsdpmessage.html#GstSDPOrigin.addrtype"/>
-    <keyword type="member" name="GstSDPOrigin.addr" link="gst-plugins-base-libs-gstsdpmessage.html#GstSDPOrigin.addr"/>
-    <keyword type="member" name="GstSDPConnection.nettype" link="gst-plugins-base-libs-gstsdpmessage.html#GstSDPConnection.nettype"/>
-    <keyword type="member" name="GstSDPConnection.addrtype" link="gst-plugins-base-libs-gstsdpmessage.html#GstSDPConnection.addrtype"/>
-    <keyword type="member" name="GstSDPConnection.address" link="gst-plugins-base-libs-gstsdpmessage.html#GstSDPConnection.address"/>
-    <keyword type="member" name="GstSDPConnection.ttl" link="gst-plugins-base-libs-gstsdpmessage.html#GstSDPConnection.ttl"/>
-    <keyword type="member" name="GstSDPConnection.addr-number" link="gst-plugins-base-libs-gstsdpmessage.html#GstSDPConnection.addr-number"/>
-    <keyword type="member" name="GstSDPBandwidth.bwtype" link="gst-plugins-base-libs-gstsdpmessage.html#GstSDPBandwidth.bwtype"/>
-    <keyword type="member" name="GstSDPBandwidth.bandwidth" link="gst-plugins-base-libs-gstsdpmessage.html#GstSDPBandwidth.bandwidth"/>
-    <keyword type="member" name="GstSDPTime.start" link="gst-plugins-base-libs-gstsdpmessage.html#GstSDPTime.start"/>
-    <keyword type="member" name="GstSDPTime.stop" link="gst-plugins-base-libs-gstsdpmessage.html#GstSDPTime.stop"/>
-    <keyword type="member" name="GstSDPTime.repeat" link="gst-plugins-base-libs-gstsdpmessage.html#GstSDPTime.repeat"/>
-    <keyword type="member" name="GstSDPZone.time" link="gst-plugins-base-libs-gstsdpmessage.html#GstSDPZone.time"/>
-    <keyword type="member" name="GstSDPZone.typed-time" link="gst-plugins-base-libs-gstsdpmessage.html#GstSDPZone.typed-time"/>
-    <keyword type="member" name="GstSDPKey.type" link="gst-plugins-base-libs-gstsdpmessage.html#GstSDPKey.type"/>
-    <keyword type="member" name="GstSDPKey.data" link="gst-plugins-base-libs-gstsdpmessage.html#GstSDPKey.data"/>
-    <keyword type="member" name="GstSDPAttribute.key" link="gst-plugins-base-libs-gstsdpmessage.html#GstSDPAttribute.key"/>
-    <keyword type="member" name="GstSDPAttribute.value" link="gst-plugins-base-libs-gstsdpmessage.html#GstSDPAttribute.value"/>
-    <keyword type="member" name="GstSDPMedia.media" link="gst-plugins-base-libs-gstsdpmessage.html#GstSDPMedia.media"/>
-    <keyword type="member" name="GstSDPMedia.port" link="gst-plugins-base-libs-gstsdpmessage.html#GstSDPMedia.port"/>
-    <keyword type="member" name="GstSDPMedia.num-ports" link="gst-plugins-base-libs-gstsdpmessage.html#GstSDPMedia.num-ports"/>
-    <keyword type="member" name="GstSDPMedia.proto" link="gst-plugins-base-libs-gstsdpmessage.html#GstSDPMedia.proto"/>
-    <keyword type="member" name="GstSDPMedia.fmts" link="gst-plugins-base-libs-gstsdpmessage.html#GstSDPMedia.fmts"/>
-    <keyword type="member" name="GstSDPMedia.information" link="gst-plugins-base-libs-gstsdpmessage.html#GstSDPMedia.information"/>
-    <keyword type="member" name="GstSDPMedia.connections" link="gst-plugins-base-libs-gstsdpmessage.html#GstSDPMedia.connections"/>
-    <keyword type="member" name="GstSDPMedia.bandwidths" link="gst-plugins-base-libs-gstsdpmessage.html#GstSDPMedia.bandwidths"/>
-    <keyword type="member" name="GstSDPMedia.key" link="gst-plugins-base-libs-gstsdpmessage.html#GstSDPMedia.key"/>
-    <keyword type="member" name="GstSDPMedia.attributes" link="gst-plugins-base-libs-gstsdpmessage.html#GstSDPMedia.attributes"/>
-    <keyword type="member" name="GstSDPMessage.version" link="gst-plugins-base-libs-gstsdpmessage.html#GstSDPMessage.version"/>
-    <keyword type="member" name="GstSDPMessage.origin" link="gst-plugins-base-libs-gstsdpmessage.html#GstSDPMessage.origin"/>
-    <keyword type="member" name="GstSDPMessage.session-name" link="gst-plugins-base-libs-gstsdpmessage.html#GstSDPMessage.session-name"/>
-    <keyword type="member" name="GstSDPMessage.information" link="gst-plugins-base-libs-gstsdpmessage.html#GstSDPMessage.information"/>
-    <keyword type="member" name="GstSDPMessage.uri" link="gst-plugins-base-libs-gstsdpmessage.html#GstSDPMessage.uri"/>
-    <keyword type="member" name="GstSDPMessage.emails" link="gst-plugins-base-libs-gstsdpmessage.html#GstSDPMessage.emails"/>
-    <keyword type="member" name="GstSDPMessage.phones" link="gst-plugins-base-libs-gstsdpmessage.html#GstSDPMessage.phones"/>
-    <keyword type="member" name="GstSDPMessage.connection" link="gst-plugins-base-libs-gstsdpmessage.html#GstSDPMessage.connection"/>
-    <keyword type="member" name="GstSDPMessage.bandwidths" link="gst-plugins-base-libs-gstsdpmessage.html#GstSDPMessage.bandwidths"/>
-    <keyword type="member" name="GstSDPMessage.times" link="gst-plugins-base-libs-gstsdpmessage.html#GstSDPMessage.times"/>
-    <keyword type="member" name="GstSDPMessage.zones" link="gst-plugins-base-libs-gstsdpmessage.html#GstSDPMessage.zones"/>
-    <keyword type="member" name="GstSDPMessage.key" link="gst-plugins-base-libs-gstsdpmessage.html#GstSDPMessage.key"/>
-    <keyword type="member" name="GstSDPMessage.attributes" link="gst-plugins-base-libs-gstsdpmessage.html#GstSDPMessage.attributes"/>
-    <keyword type="member" name="GstSDPMessage.medias" link="gst-plugins-base-libs-gstsdpmessage.html#GstSDPMessage.medias"/>
-    <keyword type="member" name="GstMIKEYMessage.version" link="gst-plugins-base-libs-gstmikey.html#GstMIKEYMessage.version"/>
-    <keyword type="member" name="GstMIKEYMessage.type" link="gst-plugins-base-libs-gstmikey.html#GstMIKEYMessage.type"/>
-    <keyword type="member" name="GstMIKEYMessage.V" link="gst-plugins-base-libs-gstmikey.html#GstMIKEYMessage.V"/>
-    <keyword type="member" name="GstMIKEYMessage.prf-func" link="gst-plugins-base-libs-gstmikey.html#GstMIKEYMessage.prf-func"/>
-    <keyword type="member" name="GstMIKEYMessage.CSB-id" link="gst-plugins-base-libs-gstmikey.html#GstMIKEYMessage.CSB-id"/>
-    <keyword type="member" name="GstMIKEYMessage.map-type" link="gst-plugins-base-libs-gstmikey.html#GstMIKEYMessage.map-type"/>
-    <keyword type="member" name="GstMIKEYMessage.map-info" link="gst-plugins-base-libs-gstmikey.html#GstMIKEYMessage.map-info"/>
-    <keyword type="member" name="GstMIKEYMessage.payloads" link="gst-plugins-base-libs-gstmikey.html#GstMIKEYMessage.payloads"/>
-    <keyword type="member" name="GstMIKEYMapSRTP.policy" link="gst-plugins-base-libs-gstmikey.html#GstMIKEYMapSRTP.policy"/>
-    <keyword type="member" name="GstMIKEYMapSRTP.ssrc" link="gst-plugins-base-libs-gstmikey.html#GstMIKEYMapSRTP.ssrc"/>
-    <keyword type="member" name="GstMIKEYMapSRTP.roc" link="gst-plugins-base-libs-gstmikey.html#GstMIKEYMapSRTP.roc"/>
-    <keyword type="member" name="GstMIKEYPayload.type" link="gst-plugins-base-libs-gstmikey.html#GstMIKEYPayload.type"/>
-    <keyword type="member" name="GstMIKEYPayload.len" link="gst-plugins-base-libs-gstmikey.html#GstMIKEYPayload.len"/>
-    <keyword type="member" name="GstMIKEYPayloadKEMAC.pt" link="gst-plugins-base-libs-gstmikey.html#GstMIKEYPayloadKEMAC.pt"/>
-    <keyword type="member" name="GstMIKEYPayloadKEMAC.enc-alg" link="gst-plugins-base-libs-gstmikey.html#GstMIKEYPayloadKEMAC.enc-alg"/>
-    <keyword type="member" name="GstMIKEYPayloadKEMAC.mac-alg" link="gst-plugins-base-libs-gstmikey.html#GstMIKEYPayloadKEMAC.mac-alg"/>
-    <keyword type="member" name="GstMIKEYPayloadKEMAC.subpayloads" link="gst-plugins-base-libs-gstmikey.html#GstMIKEYPayloadKEMAC.subpayloads"/>
-    <keyword type="member" name="GstMIKEYPayloadPKE.pt" link="gst-plugins-base-libs-gstmikey.html#GstMIKEYPayloadPKE.pt"/>
-    <keyword type="member" name="GstMIKEYPayloadPKE.C" link="gst-plugins-base-libs-gstmikey.html#GstMIKEYPayloadPKE.C"/>
-    <keyword type="member" name="GstMIKEYPayloadPKE.data-len" link="gst-plugins-base-libs-gstmikey.html#GstMIKEYPayloadPKE.data-len"/>
-    <keyword type="member" name="GstMIKEYPayloadPKE.data" link="gst-plugins-base-libs-gstmikey.html#GstMIKEYPayloadPKE.data"/>
-    <keyword type="member" name="GstMIKEYPayloadT.pt" link="gst-plugins-base-libs-gstmikey.html#GstMIKEYPayloadT.pt"/>
-    <keyword type="member" name="GstMIKEYPayloadT.type" link="gst-plugins-base-libs-gstmikey.html#GstMIKEYPayloadT.type"/>
-    <keyword type="member" name="GstMIKEYPayloadT.ts-value" link="gst-plugins-base-libs-gstmikey.html#GstMIKEYPayloadT.ts-value"/>
-    <keyword type="member" name="GstMIKEYPayloadRAND.pt" link="gst-plugins-base-libs-gstmikey.html#GstMIKEYPayloadRAND.pt"/>
-    <keyword type="member" name="GstMIKEYPayloadRAND.len" link="gst-plugins-base-libs-gstmikey.html#GstMIKEYPayloadRAND.len"/>
-    <keyword type="member" name="GstMIKEYPayloadRAND.rand" link="gst-plugins-base-libs-gstmikey.html#GstMIKEYPayloadRAND.rand"/>
-    <keyword type="member" name="GstMIKEYPayloadSP.pt" link="gst-plugins-base-libs-gstmikey.html#GstMIKEYPayloadSP.pt"/>
-    <keyword type="member" name="GstMIKEYPayloadSP.policy" link="gst-plugins-base-libs-gstmikey.html#GstMIKEYPayloadSP.policy"/>
-    <keyword type="member" name="GstMIKEYPayloadSP.proto" link="gst-plugins-base-libs-gstmikey.html#GstMIKEYPayloadSP.proto"/>
-    <keyword type="member" name="GstMIKEYPayloadSP.params" link="gst-plugins-base-libs-gstmikey.html#GstMIKEYPayloadSP.params"/>
-    <keyword type="member" name="GstMIKEYPayloadSPParam.type" link="gst-plugins-base-libs-gstmikey.html#GstMIKEYPayloadSPParam.type"/>
-    <keyword type="member" name="GstMIKEYPayloadSPParam.len" link="gst-plugins-base-libs-gstmikey.html#GstMIKEYPayloadSPParam.len"/>
-    <keyword type="member" name="GstMIKEYPayloadSPParam.val" link="gst-plugins-base-libs-gstmikey.html#GstMIKEYPayloadSPParam.val"/>
-    <keyword type="member" name="GstTagDemux.element" link="gst-plugins-base-libs-gsttagdemux.html#GstTagDemux.element"/>
-    <keyword type="member" name="GstTagDemuxClass.min-start-size" link="gst-plugins-base-libs-gsttagdemux.html#GstTagDemuxClass.min-start-size"/>
-    <keyword type="member" name="GstTagDemuxClass.min-end-size" link="gst-plugins-base-libs-gsttagdemux.html#GstTagDemuxClass.min-end-size"/>
-    <keyword type="member" name="GstTagDemuxClass.identify-tag" link="gst-plugins-base-libs-gsttagdemux.html#GstTagDemuxClass.identify-tag"/>
-    <keyword type="member" name="GstTagDemuxClass.parse-tag" link="gst-plugins-base-libs-gsttagdemux.html#GstTagDemuxClass.parse-tag"/>
-    <keyword type="member" name="GstTagDemuxClass.merge-tags" link="gst-plugins-base-libs-gsttagdemux.html#GstTagDemuxClass.merge-tags"/>
-    <keyword type="member" name="GstTagMux.element" link="gst-plugins-base-libs-gsttagmux.html#GstTagMux.element"/>
-    <keyword type="member" name="GstTagMuxClass.render-start-tag" link="gst-plugins-base-libs-gsttagmux.html#GstTagMuxClass.render-start-tag"/>
-    <keyword type="member" name="GstTagMuxClass.render-end-tag" link="gst-plugins-base-libs-gsttagmux.html#GstTagMuxClass.render-end-tag"/>
-    <keyword type="member" name="GstVideoAlignment.padding-top" link="gst-plugins-base-libs-gstvideo.html#GstVideoAlignment.padding-top"/>
-    <keyword type="member" name="GstVideoAlignment.padding-bottom" link="gst-plugins-base-libs-gstvideo.html#GstVideoAlignment.padding-bottom"/>
-    <keyword type="member" name="GstVideoAlignment.padding-left" link="gst-plugins-base-libs-gstvideo.html#GstVideoAlignment.padding-left"/>
-    <keyword type="member" name="GstVideoAlignment.padding-right" link="gst-plugins-base-libs-gstvideo.html#GstVideoAlignment.padding-right"/>
-    <keyword type="member" name="GstVideoAlignment.stride-align" link="gst-plugins-base-libs-gstvideo.html#GstVideoAlignment.stride-align"/>
-    <keyword type="member" name="GstVideoFormatInfo.format" link="gst-plugins-base-libs-gstvideo.html#GstVideoFormatInfo.format"/>
-    <keyword type="member" name="GstVideoFormatInfo.name" link="gst-plugins-base-libs-gstvideo.html#GstVideoFormatInfo.name"/>
-    <keyword type="member" name="GstVideoFormatInfo.description" link="gst-plugins-base-libs-gstvideo.html#GstVideoFormatInfo.description"/>
-    <keyword type="member" name="GstVideoFormatInfo.flags" link="gst-plugins-base-libs-gstvideo.html#GstVideoFormatInfo.flags"/>
-    <keyword type="member" name="GstVideoFormatInfo.bits" link="gst-plugins-base-libs-gstvideo.html#GstVideoFormatInfo.bits"/>
-    <keyword type="member" name="GstVideoFormatInfo.n-components" link="gst-plugins-base-libs-gstvideo.html#GstVideoFormatInfo.n-components"/>
-    <keyword type="member" name="GstVideoFormatInfo.shift" link="gst-plugins-base-libs-gstvideo.html#GstVideoFormatInfo.shift"/>
-    <keyword type="member" name="GstVideoFormatInfo.depth" link="gst-plugins-base-libs-gstvideo.html#GstVideoFormatInfo.depth"/>
-    <keyword type="member" name="GstVideoFormatInfo.pixel-stride" link="gst-plugins-base-libs-gstvideo.html#GstVideoFormatInfo.pixel-stride"/>
-    <keyword type="member" name="GstVideoFormatInfo.n-planes" link="gst-plugins-base-libs-gstvideo.html#GstVideoFormatInfo.n-planes"/>
-    <keyword type="member" name="GstVideoFormatInfo.plane" link="gst-plugins-base-libs-gstvideo.html#GstVideoFormatInfo.plane"/>
-    <keyword type="member" name="GstVideoFormatInfo.poffset" link="gst-plugins-base-libs-gstvideo.html#GstVideoFormatInfo.poffset"/>
-    <keyword type="member" name="GstVideoFormatInfo.w-sub" link="gst-plugins-base-libs-gstvideo.html#GstVideoFormatInfo.w-sub"/>
-    <keyword type="member" name="GstVideoFormatInfo.h-sub" link="gst-plugins-base-libs-gstvideo.html#GstVideoFormatInfo.h-sub"/>
-    <keyword type="member" name="GstVideoFormatInfo.unpack-format" link="gst-plugins-base-libs-gstvideo.html#GstVideoFormatInfo.unpack-format"/>
-    <keyword type="member" name="GstVideoFormatInfo.unpack-func" link="gst-plugins-base-libs-gstvideo.html#GstVideoFormatInfo.unpack-func"/>
-    <keyword type="member" name="GstVideoFormatInfo.pack-lines" link="gst-plugins-base-libs-gstvideo.html#GstVideoFormatInfo.pack-lines"/>
-    <keyword type="member" name="GstVideoFormatInfo.pack-func" link="gst-plugins-base-libs-gstvideo.html#GstVideoFormatInfo.pack-func"/>
-    <keyword type="member" name="GstVideoFormatInfo.tile-mode" link="gst-plugins-base-libs-gstvideo.html#GstVideoFormatInfo.tile-mode"/>
-    <keyword type="member" name="GstVideoFormatInfo.tile-ws" link="gst-plugins-base-libs-gstvideo.html#GstVideoFormatInfo.tile-ws"/>
-    <keyword type="member" name="GstVideoFormatInfo.tile-hs" link="gst-plugins-base-libs-gstvideo.html#GstVideoFormatInfo.tile-hs"/>
-    <keyword type="member" name="GstVideoColorimetry.range" link="gst-plugins-base-libs-gstvideo.html#GstVideoColorimetry.range"/>
-    <keyword type="member" name="GstVideoColorimetry.matrix" link="gst-plugins-base-libs-gstvideo.html#GstVideoColorimetry.matrix"/>
-    <keyword type="member" name="GstVideoColorimetry.transfer" link="gst-plugins-base-libs-gstvideo.html#GstVideoColorimetry.transfer"/>
-    <keyword type="member" name="GstVideoColorimetry.primaries" link="gst-plugins-base-libs-gstvideo.html#GstVideoColorimetry.primaries"/>
-    <keyword type="member" name="GstVideoInfo.finfo" link="gst-plugins-base-libs-gstvideo.html#GstVideoInfo.finfo"/>
-    <keyword type="member" name="GstVideoInfo.interlace-mode" link="gst-plugins-base-libs-gstvideo.html#GstVideoInfo.interlace-mode"/>
-    <keyword type="member" name="GstVideoInfo.flags" link="gst-plugins-base-libs-gstvideo.html#GstVideoInfo.flags"/>
-    <keyword type="member" name="GstVideoInfo.width" link="gst-plugins-base-libs-gstvideo.html#GstVideoInfo.width"/>
-    <keyword type="member" name="GstVideoInfo.height" link="gst-plugins-base-libs-gstvideo.html#GstVideoInfo.height"/>
-    <keyword type="member" name="GstVideoInfo.size" link="gst-plugins-base-libs-gstvideo.html#GstVideoInfo.size"/>
-    <keyword type="member" name="GstVideoInfo.views" link="gst-plugins-base-libs-gstvideo.html#GstVideoInfo.views"/>
-    <keyword type="member" name="GstVideoInfo.chroma-site" link="gst-plugins-base-libs-gstvideo.html#GstVideoInfo.chroma-site"/>
-    <keyword type="member" name="GstVideoInfo.colorimetry" link="gst-plugins-base-libs-gstvideo.html#GstVideoInfo.colorimetry"/>
-    <keyword type="member" name="GstVideoInfo.par-n" link="gst-plugins-base-libs-gstvideo.html#GstVideoInfo.par-n"/>
-    <keyword type="member" name="GstVideoInfo.par-d" link="gst-plugins-base-libs-gstvideo.html#GstVideoInfo.par-d"/>
-    <keyword type="member" name="GstVideoInfo.fps-n" link="gst-plugins-base-libs-gstvideo.html#GstVideoInfo.fps-n"/>
-    <keyword type="member" name="GstVideoInfo.fps-d" link="gst-plugins-base-libs-gstvideo.html#GstVideoInfo.fps-d"/>
-    <keyword type="member" name="GstVideoInfo.offset" link="gst-plugins-base-libs-gstvideo.html#GstVideoInfo.offset"/>
-    <keyword type="member" name="GstVideoInfo.stride" link="gst-plugins-base-libs-gstvideo.html#GstVideoInfo.stride"/>
-    <keyword type="member" name="GstVideoFrame.info" link="gst-plugins-base-libs-gstvideo.html#GstVideoFrame.info"/>
-    <keyword type="member" name="GstVideoFrame.flags" link="gst-plugins-base-libs-gstvideo.html#GstVideoFrame.flags"/>
-    <keyword type="member" name="GstVideoFrame.buffer" link="gst-plugins-base-libs-gstvideo.html#GstVideoFrame.buffer"/>
-    <keyword type="member" name="GstVideoFrame.meta" link="gst-plugins-base-libs-gstvideo.html#GstVideoFrame.meta"/>
-    <keyword type="member" name="GstVideoFrame.id" link="gst-plugins-base-libs-gstvideo.html#GstVideoFrame.id"/>
-    <keyword type="member" name="GstVideoFrame.data" link="gst-plugins-base-libs-gstvideo.html#GstVideoFrame.data"/>
-    <keyword type="member" name="GstVideoFrame.map" link="gst-plugins-base-libs-gstvideo.html#GstVideoFrame.map"/>
-    <keyword type="member" name="GstVideoMeta.meta" link="gst-plugins-base-libs-gstvideometa.html#GstVideoMeta.meta"/>
-    <keyword type="member" name="GstVideoMeta.buffer" link="gst-plugins-base-libs-gstvideometa.html#GstVideoMeta.buffer"/>
-    <keyword type="member" name="GstVideoMeta.flags" link="gst-plugins-base-libs-gstvideometa.html#GstVideoMeta.flags"/>
-    <keyword type="member" name="GstVideoMeta.format" link="gst-plugins-base-libs-gstvideometa.html#GstVideoMeta.format"/>
-    <keyword type="member" name="GstVideoMeta.id" link="gst-plugins-base-libs-gstvideometa.html#GstVideoMeta.id"/>
-    <keyword type="member" name="GstVideoMeta.width" link="gst-plugins-base-libs-gstvideometa.html#GstVideoMeta.width"/>
-    <keyword type="member" name="GstVideoMeta.height" link="gst-plugins-base-libs-gstvideometa.html#GstVideoMeta.height"/>
-    <keyword type="member" name="GstVideoMeta.n-planes" link="gst-plugins-base-libs-gstvideometa.html#GstVideoMeta.n-planes"/>
-    <keyword type="member" name="GstVideoMeta.offset" link="gst-plugins-base-libs-gstvideometa.html#GstVideoMeta.offset"/>
-    <keyword type="member" name="GstVideoMeta.stride" link="gst-plugins-base-libs-gstvideometa.html#GstVideoMeta.stride"/>
-    <keyword type="member" name="GstVideoMeta.map" link="gst-plugins-base-libs-gstvideometa.html#GstVideoMeta.map"/>
-    <keyword type="member" name="GstVideoMeta.unmap" link="gst-plugins-base-libs-gstvideometa.html#GstVideoMeta.unmap"/>
-    <keyword type="member" name="GstVideoMetaTransform.in-info" link="gst-plugins-base-libs-gstvideometa.html#GstVideoMetaTransform.in-info"/>
-    <keyword type="member" name="GstVideoMetaTransform.out-info" link="gst-plugins-base-libs-gstvideometa.html#GstVideoMetaTransform.out-info"/>
-    <keyword type="member" name="GstVideoCropMeta.meta" link="gst-plugins-base-libs-gstvideometa.html#GstVideoCropMeta.meta"/>
-    <keyword type="member" name="GstVideoCropMeta.x" link="gst-plugins-base-libs-gstvideometa.html#GstVideoCropMeta.x"/>
-    <keyword type="member" name="GstVideoCropMeta.y" link="gst-plugins-base-libs-gstvideometa.html#GstVideoCropMeta.y"/>
-    <keyword type="member" name="GstVideoCropMeta.width" link="gst-plugins-base-libs-gstvideometa.html#GstVideoCropMeta.width"/>
-    <keyword type="member" name="GstVideoCropMeta.height" link="gst-plugins-base-libs-gstvideometa.html#GstVideoCropMeta.height"/>
-    <keyword type="member" name="GstVideoRegionOfInterestMeta.meta" link="gst-plugins-base-libs-gstvideometa.html#GstVideoRegionOfInterestMeta.meta"/>
-    <keyword type="member" name="GstVideoRegionOfInterestMeta.roi-type" link="gst-plugins-base-libs-gstvideometa.html#GstVideoRegionOfInterestMeta.roi-type"/>
-    <keyword type="member" name="GstVideoRegionOfInterestMeta.id" link="gst-plugins-base-libs-gstvideometa.html#GstVideoRegionOfInterestMeta.id"/>
-    <keyword type="member" name="GstVideoRegionOfInterestMeta.parent-id" link="gst-plugins-base-libs-gstvideometa.html#GstVideoRegionOfInterestMeta.parent-id"/>
-    <keyword type="member" name="GstVideoRegionOfInterestMeta.x" link="gst-plugins-base-libs-gstvideometa.html#GstVideoRegionOfInterestMeta.x"/>
-    <keyword type="member" name="GstVideoRegionOfInterestMeta.y" link="gst-plugins-base-libs-gstvideometa.html#GstVideoRegionOfInterestMeta.y"/>
-    <keyword type="member" name="GstVideoRegionOfInterestMeta.w" link="gst-plugins-base-libs-gstvideometa.html#GstVideoRegionOfInterestMeta.w"/>
-    <keyword type="member" name="GstVideoRegionOfInterestMeta.h" link="gst-plugins-base-libs-gstvideometa.html#GstVideoRegionOfInterestMeta.h"/>
-    <keyword type="member" name="GstVideoGLTextureUploadMeta.meta" link="gst-plugins-base-libs-gstvideometa.html#GstVideoGLTextureUploadMeta.meta"/>
-    <keyword type="member" name="GstVideoGLTextureUploadMeta.texture-orientation" link="gst-plugins-base-libs-gstvideometa.html#GstVideoGLTextureUploadMeta.texture-orientation"/>
-    <keyword type="member" name="GstVideoGLTextureUploadMeta.n-textures" link="gst-plugins-base-libs-gstvideometa.html#GstVideoGLTextureUploadMeta.n-textures"/>
-    <keyword type="member" name="GstVideoGLTextureUploadMeta.texture-type" link="gst-plugins-base-libs-gstvideometa.html#GstVideoGLTextureUploadMeta.texture-type"/>
-    <keyword type="member" name="GstVideoOverlayCompositionMeta.meta" link="gst-plugins-base-libs-gstvideooverlaycomposition.html#GstVideoOverlayCompositionMeta.meta"/>
-    <keyword type="member" name="GstVideoOverlayCompositionMeta.overlay" link="gst-plugins-base-libs-gstvideooverlaycomposition.html#GstVideoOverlayCompositionMeta.overlay"/>
-    <keyword type="member" name="GstVideoFilterClass.set-info" link="gst-plugins-base-libs-gstvideofilter.html#GstVideoFilterClass.set-info"/>
-    <keyword type="member" name="GstVideoFilterClass.transform-frame" link="gst-plugins-base-libs-gstvideofilter.html#GstVideoFilterClass.transform-frame"/>
-    <keyword type="member" name="GstVideoFilterClass.transform-frame-ip" link="gst-plugins-base-libs-gstvideofilter.html#GstVideoFilterClass.transform-frame-ip"/>
-    <keyword type="member" name="GstVideoResampler.in-size" link="gst-plugins-base-libs-GstVideoResampler.html#GstVideoResampler.in-size"/>
-    <keyword type="member" name="GstVideoResampler.out-size" link="gst-plugins-base-libs-GstVideoResampler.html#GstVideoResampler.out-size"/>
-    <keyword type="member" name="GstVideoResampler.max-taps" link="gst-plugins-base-libs-GstVideoResampler.html#GstVideoResampler.max-taps"/>
-    <keyword type="member" name="GstVideoResampler.n-phases" link="gst-plugins-base-libs-GstVideoResampler.html#GstVideoResampler.n-phases"/>
-    <keyword type="member" name="GstVideoResampler.offset" link="gst-plugins-base-libs-GstVideoResampler.html#GstVideoResampler.offset"/>
-    <keyword type="member" name="GstVideoResampler.phase" link="gst-plugins-base-libs-GstVideoResampler.html#GstVideoResampler.phase"/>
-    <keyword type="member" name="GstVideoResampler.n-taps" link="gst-plugins-base-libs-GstVideoResampler.html#GstVideoResampler.n-taps"/>
-    <keyword type="member" name="GstVideoResampler.taps" link="gst-plugins-base-libs-GstVideoResampler.html#GstVideoResampler.taps"/>
-    <keyword type="member" name="GstVideoSink-struct.width" link="gst-plugins-base-libs-gstvideosink.html#GstVideoSink-struct.width"/>
-    <keyword type="member" name="GstVideoSink-struct.height" link="gst-plugins-base-libs-gstvideosink.html#GstVideoSink-struct.height"/>
-    <keyword type="member" name="GstVideoSinkClass.show-frame" link="gst-plugins-base-libs-gstvideosink.html#GstVideoSinkClass.show-frame"/>
-    <keyword type="member" name="GstVideoRectangle.x" link="gst-plugins-base-libs-gstvideosink.html#GstVideoRectangle.x"/>
-    <keyword type="member" name="GstVideoRectangle.y" link="gst-plugins-base-libs-gstvideosink.html#GstVideoRectangle.y"/>
-    <keyword type="member" name="GstVideoRectangle.w" link="gst-plugins-base-libs-gstvideosink.html#GstVideoRectangle.w"/>
-    <keyword type="member" name="GstVideoRectangle.h" link="gst-plugins-base-libs-gstvideosink.html#GstVideoRectangle.h"/>
-    <keyword type="member" name="GstColorBalanceInterface.iface" link="gst-plugins-base-libs-gstcolorbalance.html#GstColorBalanceInterface.iface"/>
-    <keyword type="member" name="GstColorBalanceInterface.list-channels" link="gst-plugins-base-libs-gstcolorbalance.html#GstColorBalanceInterface.list-channels"/>
-    <keyword type="member" name="GstColorBalanceInterface.set-value" link="gst-plugins-base-libs-gstcolorbalance.html#GstColorBalanceInterface.set-value"/>
-    <keyword type="member" name="GstColorBalanceInterface.get-value" link="gst-plugins-base-libs-gstcolorbalance.html#GstColorBalanceInterface.get-value"/>
-    <keyword type="member" name="GstColorBalanceInterface.get-balance-type" link="gst-plugins-base-libs-gstcolorbalance.html#GstColorBalanceInterface.get-balance-type"/>
-    <keyword type="member" name="GstColorBalanceInterface.value-changed" link="gst-plugins-base-libs-gstcolorbalance.html#GstColorBalanceInterface.value-changed"/>
-    <keyword type="member" name="GstColorBalanceChannel-struct.label" link="gst-plugins-base-libs-gstcolorbalancechannel.html#GstColorBalanceChannel-struct.label"/>
-    <keyword type="member" name="GstColorBalanceChannel-struct.min-value" link="gst-plugins-base-libs-gstcolorbalancechannel.html#GstColorBalanceChannel-struct.min-value"/>
-    <keyword type="member" name="GstColorBalanceChannel-struct.max-value" link="gst-plugins-base-libs-gstcolorbalancechannel.html#GstColorBalanceChannel-struct.max-value"/>
-    <keyword type="member" name="GstColorBalanceChannelClass.parent" link="gst-plugins-base-libs-gstcolorbalancechannel.html#GstColorBalanceChannelClass.parent"/>
-    <keyword type="member" name="GstColorBalanceChannelClass.value-changed" link="gst-plugins-base-libs-gstcolorbalancechannel.html#GstColorBalanceChannelClass.value-changed"/>
-    <keyword type="member" name="GstVideoOrientationInterface.iface" link="gst-plugins-base-libs-gstvideoorientation.html#GstVideoOrientationInterface.iface"/>
-    <keyword type="member" name="GstVideoOrientationInterface.get-hflip" link="gst-plugins-base-libs-gstvideoorientation.html#GstVideoOrientationInterface.get-hflip"/>
-    <keyword type="member" name="GstVideoOrientationInterface.get-vflip" link="gst-plugins-base-libs-gstvideoorientation.html#GstVideoOrientationInterface.get-vflip"/>
-    <keyword type="member" name="GstVideoOrientationInterface.get-hcenter" link="gst-plugins-base-libs-gstvideoorientation.html#GstVideoOrientationInterface.get-hcenter"/>
-    <keyword type="member" name="GstVideoOrientationInterface.get-vcenter" link="gst-plugins-base-libs-gstvideoorientation.html#GstVideoOrientationInterface.get-vcenter"/>
-    <keyword type="member" name="GstVideoOrientationInterface.set-hflip" link="gst-plugins-base-libs-gstvideoorientation.html#GstVideoOrientationInterface.set-hflip"/>
-    <keyword type="member" name="GstVideoOrientationInterface.set-vflip" link="gst-plugins-base-libs-gstvideoorientation.html#GstVideoOrientationInterface.set-vflip"/>
-    <keyword type="member" name="GstVideoOrientationInterface.set-hcenter" link="gst-plugins-base-libs-gstvideoorientation.html#GstVideoOrientationInterface.set-hcenter"/>
-    <keyword type="member" name="GstVideoOrientationInterface.set-vcenter" link="gst-plugins-base-libs-gstvideoorientation.html#GstVideoOrientationInterface.set-vcenter"/>
-    <keyword type="member" name="GstVideoOverlayInterface.iface" link="gst-plugins-base-libs-gstvideooverlay.html#GstVideoOverlayInterface.iface"/>
-    <keyword type="member" name="GstVideoOverlayInterface.expose" link="gst-plugins-base-libs-gstvideooverlay.html#GstVideoOverlayInterface.expose"/>
-    <keyword type="member" name="GstVideoOverlayInterface.handle-events" link="gst-plugins-base-libs-gstvideooverlay.html#GstVideoOverlayInterface.handle-events"/>
-    <keyword type="member" name="GstVideoOverlayInterface.set-render-rectangle" link="gst-plugins-base-libs-gstvideooverlay.html#GstVideoOverlayInterface.set-render-rectangle"/>
-    <keyword type="member" name="GstVideoOverlayInterface.set-window-handle" link="gst-plugins-base-libs-gstvideooverlay.html#GstVideoOverlayInterface.set-window-handle"/>
-    <keyword type="member" name="GstVideoDecoderClass.open" link="gst-plugins-base-libs-GstVideoDecoder.html#GstVideoDecoderClass.open"/>
-    <keyword type="member" name="GstVideoDecoderClass.close" link="gst-plugins-base-libs-GstVideoDecoder.html#GstVideoDecoderClass.close"/>
-    <keyword type="member" name="GstVideoDecoderClass.start" link="gst-plugins-base-libs-GstVideoDecoder.html#GstVideoDecoderClass.start"/>
-    <keyword type="member" name="GstVideoDecoderClass.stop" link="gst-plugins-base-libs-GstVideoDecoder.html#GstVideoDecoderClass.stop"/>
-    <keyword type="member" name="GstVideoDecoderClass.parse" link="gst-plugins-base-libs-GstVideoDecoder.html#GstVideoDecoderClass.parse"/>
-    <keyword type="member" name="GstVideoDecoderClass.set-format" link="gst-plugins-base-libs-GstVideoDecoder.html#GstVideoDecoderClass.set-format"/>
-    <keyword type="member" name="GstVideoDecoderClass.reset" link="gst-plugins-base-libs-GstVideoDecoder.html#GstVideoDecoderClass.reset"/>
-    <keyword type="member" name="GstVideoDecoderClass.finish" link="gst-plugins-base-libs-GstVideoDecoder.html#GstVideoDecoderClass.finish"/>
-    <keyword type="member" name="GstVideoDecoderClass.handle-frame" link="gst-plugins-base-libs-GstVideoDecoder.html#GstVideoDecoderClass.handle-frame"/>
-    <keyword type="member" name="GstVideoDecoderClass.sink-event" link="gst-plugins-base-libs-GstVideoDecoder.html#GstVideoDecoderClass.sink-event"/>
-    <keyword type="member" name="GstVideoDecoderClass.src-event" link="gst-plugins-base-libs-GstVideoDecoder.html#GstVideoDecoderClass.src-event"/>
-    <keyword type="member" name="GstVideoDecoderClass.negotiate" link="gst-plugins-base-libs-GstVideoDecoder.html#GstVideoDecoderClass.negotiate"/>
-    <keyword type="member" name="GstVideoDecoderClass.decide-allocation" link="gst-plugins-base-libs-GstVideoDecoder.html#GstVideoDecoderClass.decide-allocation"/>
-    <keyword type="member" name="GstVideoDecoderClass.propose-allocation" link="gst-plugins-base-libs-GstVideoDecoder.html#GstVideoDecoderClass.propose-allocation"/>
-    <keyword type="member" name="GstVideoDecoderClass.flush" link="gst-plugins-base-libs-GstVideoDecoder.html#GstVideoDecoderClass.flush"/>
-    <keyword type="member" name="GstVideoDecoderClass.sink-query" link="gst-plugins-base-libs-GstVideoDecoder.html#GstVideoDecoderClass.sink-query"/>
-    <keyword type="member" name="GstVideoDecoderClass.src-query" link="gst-plugins-base-libs-GstVideoDecoder.html#GstVideoDecoderClass.src-query"/>
-    <keyword type="member" name="GstVideoDecoderClass.getcaps" link="gst-plugins-base-libs-GstVideoDecoder.html#GstVideoDecoderClass.getcaps"/>
-    <keyword type="member" name="GstVideoDecoderClass.drain" link="gst-plugins-base-libs-GstVideoDecoder.html#GstVideoDecoderClass.drain"/>
-    <keyword type="member" name="GstVideoDecoderClass.transform-meta" link="gst-plugins-base-libs-GstVideoDecoder.html#GstVideoDecoderClass.transform-meta"/>
-    <keyword type="member" name="GstVideoEncoderClass.open" link="gst-plugins-base-libs-GstVideoEncoder.html#GstVideoEncoderClass.open"/>
-    <keyword type="member" name="GstVideoEncoderClass.close" link="gst-plugins-base-libs-GstVideoEncoder.html#GstVideoEncoderClass.close"/>
-    <keyword type="member" name="GstVideoEncoderClass.start" link="gst-plugins-base-libs-GstVideoEncoder.html#GstVideoEncoderClass.start"/>
-    <keyword type="member" name="GstVideoEncoderClass.stop" link="gst-plugins-base-libs-GstVideoEncoder.html#GstVideoEncoderClass.stop"/>
-    <keyword type="member" name="GstVideoEncoderClass.set-format" link="gst-plugins-base-libs-GstVideoEncoder.html#GstVideoEncoderClass.set-format"/>
-    <keyword type="member" name="GstVideoEncoderClass.handle-frame" link="gst-plugins-base-libs-GstVideoEncoder.html#GstVideoEncoderClass.handle-frame"/>
-    <keyword type="member" name="GstVideoEncoderClass.reset" link="gst-plugins-base-libs-GstVideoEncoder.html#GstVideoEncoderClass.reset"/>
-    <keyword type="member" name="GstVideoEncoderClass.finish" link="gst-plugins-base-libs-GstVideoEncoder.html#GstVideoEncoderClass.finish"/>
-    <keyword type="member" name="GstVideoEncoderClass.pre-push" link="gst-plugins-base-libs-GstVideoEncoder.html#GstVideoEncoderClass.pre-push"/>
-    <keyword type="member" name="GstVideoEncoderClass.getcaps" link="gst-plugins-base-libs-GstVideoEncoder.html#GstVideoEncoderClass.getcaps"/>
-    <keyword type="member" name="GstVideoEncoderClass.sink-event" link="gst-plugins-base-libs-GstVideoEncoder.html#GstVideoEncoderClass.sink-event"/>
-    <keyword type="member" name="GstVideoEncoderClass.src-event" link="gst-plugins-base-libs-GstVideoEncoder.html#GstVideoEncoderClass.src-event"/>
-    <keyword type="member" name="GstVideoEncoderClass.negotiate" link="gst-plugins-base-libs-GstVideoEncoder.html#GstVideoEncoderClass.negotiate"/>
-    <keyword type="member" name="GstVideoEncoderClass.decide-allocation" link="gst-plugins-base-libs-GstVideoEncoder.html#GstVideoEncoderClass.decide-allocation"/>
-    <keyword type="member" name="GstVideoEncoderClass.propose-allocation" link="gst-plugins-base-libs-GstVideoEncoder.html#GstVideoEncoderClass.propose-allocation"/>
-    <keyword type="member" name="GstVideoEncoderClass.flush" link="gst-plugins-base-libs-GstVideoEncoder.html#GstVideoEncoderClass.flush"/>
-    <keyword type="member" name="GstVideoEncoderClass.sink-query" link="gst-plugins-base-libs-GstVideoEncoder.html#GstVideoEncoderClass.sink-query"/>
-    <keyword type="member" name="GstVideoEncoderClass.src-query" link="gst-plugins-base-libs-GstVideoEncoder.html#GstVideoEncoderClass.src-query"/>
-    <keyword type="member" name="GstVideoEncoderClass.transform-meta" link="gst-plugins-base-libs-GstVideoEncoder.html#GstVideoEncoderClass.transform-meta"/>
-    <keyword type="member" name="GstVideoCodecFrame.system-frame-number" link="gst-plugins-base-libs-gstvideoutils.html#GstVideoCodecFrame.system-frame-number"/>
-    <keyword type="member" name="GstVideoCodecFrame.decode-frame-number" link="gst-plugins-base-libs-gstvideoutils.html#GstVideoCodecFrame.decode-frame-number"/>
-    <keyword type="member" name="GstVideoCodecFrame.presentation-frame-number" link="gst-plugins-base-libs-gstvideoutils.html#GstVideoCodecFrame.presentation-frame-number"/>
-    <keyword type="member" name="GstVideoCodecFrame.dts" link="gst-plugins-base-libs-gstvideoutils.html#GstVideoCodecFrame.dts"/>
-    <keyword type="member" name="GstVideoCodecFrame.pts" link="gst-plugins-base-libs-gstvideoutils.html#GstVideoCodecFrame.pts"/>
-    <keyword type="member" name="GstVideoCodecFrame.duration" link="gst-plugins-base-libs-gstvideoutils.html#GstVideoCodecFrame.duration"/>
-    <keyword type="member" name="GstVideoCodecFrame.distance-from-sync" link="gst-plugins-base-libs-gstvideoutils.html#GstVideoCodecFrame.distance-from-sync"/>
-    <keyword type="member" name="GstVideoCodecFrame.input-buffer" link="gst-plugins-base-libs-gstvideoutils.html#GstVideoCodecFrame.input-buffer"/>
-    <keyword type="member" name="GstVideoCodecFrame.output-buffer" link="gst-plugins-base-libs-gstvideoutils.html#GstVideoCodecFrame.output-buffer"/>
-    <keyword type="member" name="GstVideoCodecFrame.deadline" link="gst-plugins-base-libs-gstvideoutils.html#GstVideoCodecFrame.deadline"/>
-    <keyword type="member" name="GstVideoCodecState.info" link="gst-plugins-base-libs-gstvideoutils.html#GstVideoCodecState.info"/>
-    <keyword type="member" name="GstVideoCodecState.caps" link="gst-plugins-base-libs-gstvideoutils.html#GstVideoCodecState.caps"/>
-    <keyword type="member" name="GstVideoCodecState.codec-data" link="gst-plugins-base-libs-gstvideoutils.html#GstVideoCodecState.codec-data"/>
-    <keyword type="member" name="GstNavigationInterface.iface" link="gst-plugins-base-libs-gstnavigation.html#GstNavigationInterface.iface"/>
-    <keyword type="member" name="GstNavigationInterface.send-event" link="gst-plugins-base-libs-gstnavigation.html#GstNavigationInterface.send-event"/>
   </functions>
 </book>
diff --git a/docs/libs/html/gst-plugins-base-libs-GstAudioConverter.html b/docs/libs/html/gst-plugins-base-libs-GstAudioConverter.html
index 96dec21..af95f34 100644
--- a/docs/libs/html/gst-plugins-base-libs-GstAudioConverter.html
+++ b/docs/libs/html/gst-plugins-base-libs-GstAudioConverter.html
@@ -145,73 +145,12 @@
                          <em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstaudio.html#GstAudioInfo" title="struct GstAudioInfo"><span class="type">GstAudioInfo</span></a> *in_info</code></em>,
                          <em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstaudio.html#GstAudioInfo" title="struct GstAudioInfo"><span class="type">GstAudioInfo</span></a> *out_info</code></em>,
                          <em class="parameter"><code><a href="/usr/share/gtk-doc/html/gstreamer-1.0GstStructure.html#GstStructure-struct"><span class="type">GstStructure</span></a> *config</code></em>);</pre>
-<p>Create a new <a class="link" href="gst-plugins-base-libs-GstAudioConverter.html#GstAudioConverter" title="GstAudioConverter"><span class="type">GstAudioConverter</span></a> that is able to convert between <em class="parameter"><code>in</code></em>
- and <em class="parameter"><code>out</code></em>
-
-audio formats.</p>
-<p><em class="parameter"><code>config</code></em>
- contains extra configuration options, see <span class="type">GST_VIDEO_CONVERTER_OPT_</span>*
-parameters for details about the options and values.</p>
-<p><span class="annotation">[<acronym title="Exposed in C code, not necessarily available in other languages."><span class="acronym">skip</span></acronym>]</span></p>
-<div class="refsect3">
-<a name="gst-audio-converter-new.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>flags</p></td>
-<td class="parameter_description"><p><a class="link" href="gst-plugins-base-libs-GstAudioConverter.html#GstAudioConverterFlags" title="enum GstAudioConverterFlags"><span class="type">GstAudioConverterFlags</span></a></p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-<tr>
-<td class="parameter_name"><p>in_info</p></td>
-<td class="parameter_description"><p>a source <a class="link" href="gst-plugins-base-libs-gstaudio.html#GstAudioInfo" title="struct GstAudioInfo"><span class="type">GstAudioInfo</span></a></p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-<tr>
-<td class="parameter_name"><p>out_info</p></td>
-<td class="parameter_description"><p>a destination <a class="link" href="gst-plugins-base-libs-gstaudio.html#GstAudioInfo" title="struct GstAudioInfo"><span class="type">GstAudioInfo</span></a></p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-<tr>
-<td class="parameter_name"><p>config</p></td>
-<td class="parameter_description"><p> a <a href="/usr/share/gtk-doc/html/gstreamer-1.0GstStructure.html#GstStructure-struct"><span class="type">GstStructure</span></a> with configuration options. </p></td>
-<td class="parameter_annotations"><span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>]</span></td>
-</tr>
-</tbody>
-</table></div>
-</div>
-<div class="refsect3">
-<a name="gst-audio-converter-new.returns"></a><h4>Returns</h4>
-<p> a <a class="link" href="gst-plugins-base-libs-GstAudioConverter.html#GstAudioConverter" title="GstAudioConverter"><span class="type">GstAudioConverter</span></a> or <a href="/usr/share/gtk-doc/html/glibglib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a> if conversion is not possible.</p>
-</div>
 </div>
 <hr>
 <div class="refsect2">
 <a name="gst-audio-converter-free"></a><h3>gst_audio_converter_free ()</h3>
 <pre class="programlisting"><span class="returnvalue">void</span>
 gst_audio_converter_free (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-GstAudioConverter.html#GstAudioConverter" title="GstAudioConverter"><span class="type">GstAudioConverter</span></a> *convert</code></em>);</pre>
-<p>Free a previously allocated <em class="parameter"><code>convert</code></em>
- instance.</p>
-<div class="refsect3">
-<a name="gst-audio-converter-free.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>convert</p></td>
-<td class="parameter_description"><p>a <a class="link" href="gst-plugins-base-libs-GstAudioConverter.html#GstAudioConverter" title="GstAudioConverter"><span class="type">GstAudioConverter</span></a></p></td>
-<td class="parameter_annotations"> </td>
-</tr></tbody>
-</table></div>
-</div>
 </div>
 <hr>
 <div class="refsect2">
@@ -223,81 +162,6 @@
                              <em class="parameter"><code><a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#gsize"><span class="type">gsize</span></a> in_frames</code></em>,
                              <em class="parameter"><code><a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> out[]</code></em>,
                              <em class="parameter"><code><a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#gsize"><span class="type">gsize</span></a> out_frames</code></em>);</pre>
-<p>Perform the conversion with <em class="parameter"><code>in_frames</code></em>
- in <em class="parameter"><code>in</code></em>
- to <em class="parameter"><code>out_frames</code></em>
- in <em class="parameter"><code>out</code></em>
-
-using <em class="parameter"><code>convert</code></em>
-.</p>
-<p>In case the samples are interleaved, <em class="parameter"><code>in</code></em>
- and <em class="parameter"><code>out</code></em>
- must point to an
-array with a single element pointing to a block of interleaved samples.</p>
-<p>If non-interleaved samples are used, <em class="parameter"><code>in</code></em>
- and <em class="parameter"><code>out</code></em>
- must point to an
-array with pointers to memory blocks, one for each channel.</p>
-<p><em class="parameter"><code>in</code></em>
- may be <a href="/usr/share/gtk-doc/html/glibglib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a>, in which case <em class="parameter"><code>in_frames</code></em>
- of silence samples are processed
-by the converter.</p>
-<p>This function always produces <em class="parameter"><code>out_frames</code></em>
- of output and consumes <em class="parameter"><code>in_frames</code></em>
- of
-input. Use <a class="link" href="gst-plugins-base-libs-GstAudioConverter.html#gst-audio-converter-get-out-frames" title="gst_audio_converter_get_out_frames ()"><code class="function">gst_audio_converter_get_out_frames()</code></a> and
-<a class="link" href="gst-plugins-base-libs-GstAudioConverter.html#gst-audio-converter-get-in-frames" title="gst_audio_converter_get_in_frames ()"><code class="function">gst_audio_converter_get_in_frames()</code></a> to make sure <em class="parameter"><code>in_frames</code></em>
- and <em class="parameter"><code>out_frames</code></em>
-
-are matching and <em class="parameter"><code>in</code></em>
- and <em class="parameter"><code>out</code></em>
- point to enough memory.</p>
-<div class="refsect3">
-<a name="gst-audio-converter-samples.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>convert</p></td>
-<td class="parameter_description"><p>a <a class="link" href="gst-plugins-base-libs-GstAudioConverter.html#GstAudioConverter" title="GstAudioConverter"><span class="type">GstAudioConverter</span></a></p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-<tr>
-<td class="parameter_name"><p>flags</p></td>
-<td class="parameter_description"><p>extra <a class="link" href="gst-plugins-base-libs-GstAudioConverter.html#GstAudioConverterFlags" title="enum GstAudioConverterFlags"><span class="type">GstAudioConverterFlags</span></a></p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-<tr>
-<td class="parameter_name"><p>in</p></td>
-<td class="parameter_description"><p>input frames</p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-<tr>
-<td class="parameter_name"><p>in_frames</p></td>
-<td class="parameter_description"><p>number of input frames</p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-<tr>
-<td class="parameter_name"><p>out</p></td>
-<td class="parameter_description"><p>output frames</p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-<tr>
-<td class="parameter_name"><p>out_frames</p></td>
-<td class="parameter_description"><p>number of output frames</p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-</tbody>
-</table></div>
-</div>
-<div class="refsect3">
-<a name="gst-audio-converter-samples.returns"></a><h4>Returns</h4>
-<p> <a href="/usr/share/gtk-doc/html/glibglib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a> is the conversion could be performed.</p>
-</div>
 </div>
 <hr>
 <div class="refsect2">
@@ -305,65 +169,12 @@
 <pre class="programlisting"><a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#gsize"><span class="returnvalue">gsize</span></a>
 gst_audio_converter_get_in_frames (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-GstAudioConverter.html#GstAudioConverter" title="GstAudioConverter"><span class="type">GstAudioConverter</span></a> *convert</code></em>,
                                    <em class="parameter"><code><a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#gsize"><span class="type">gsize</span></a> out_frames</code></em>);</pre>
-<p>Calculate how many input frames are currently needed by <em class="parameter"><code>convert</code></em>
- to produce
-<em class="parameter"><code>out_frames</code></em>
- of output frames.</p>
-<div class="refsect3">
-<a name="gst-audio-converter-get-in-frames.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>convert</p></td>
-<td class="parameter_description"><p>a <a class="link" href="gst-plugins-base-libs-GstAudioConverter.html#GstAudioConverter" title="GstAudioConverter"><span class="type">GstAudioConverter</span></a></p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-<tr>
-<td class="parameter_name"><p>out_frames</p></td>
-<td class="parameter_description"><p>number of output frames</p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-</tbody>
-</table></div>
-</div>
-<div class="refsect3">
-<a name="gst-audio-converter-get-in-frames.returns"></a><h4>Returns</h4>
-<p> the number of input frames</p>
-</div>
 </div>
 <hr>
 <div class="refsect2">
 <a name="gst-audio-converter-get-max-latency"></a><h3>gst_audio_converter_get_max_latency ()</h3>
 <pre class="programlisting"><a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#gsize"><span class="returnvalue">gsize</span></a>
 gst_audio_converter_get_max_latency (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-GstAudioConverter.html#GstAudioConverter" title="GstAudioConverter"><span class="type">GstAudioConverter</span></a> *convert</code></em>);</pre>
-<p>Get the maximum number of input frames that the converter would
-need before producing output.</p>
-<div class="refsect3">
-<a name="gst-audio-converter-get-max-latency.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>convert</p></td>
-<td class="parameter_description"><p>a <a class="link" href="gst-plugins-base-libs-GstAudioConverter.html#GstAudioConverter" title="GstAudioConverter"><span class="type">GstAudioConverter</span></a></p></td>
-<td class="parameter_annotations"> </td>
-</tr></tbody>
-</table></div>
-</div>
-<div class="refsect3">
-<a name="gst-audio-converter-get-max-latency.returns"></a><h4>Returns</h4>
-<p> the latency of <em class="parameter"><code>convert</code></em>
-as expressed in the number of
-frames.</p>
-</div>
 </div>
 <hr>
 <div class="refsect2">
@@ -371,36 +182,6 @@
 <pre class="programlisting"><a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#gsize"><span class="returnvalue">gsize</span></a>
 gst_audio_converter_get_out_frames (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-GstAudioConverter.html#GstAudioConverter" title="GstAudioConverter"><span class="type">GstAudioConverter</span></a> *convert</code></em>,
                                     <em class="parameter"><code><a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#gsize"><span class="type">gsize</span></a> in_frames</code></em>);</pre>
-<p>Calculate how many output frames can be produced when <em class="parameter"><code>in_frames</code></em>
- input
-frames are given to <em class="parameter"><code>convert</code></em>
-.</p>
-<div class="refsect3">
-<a name="gst-audio-converter-get-out-frames.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>convert</p></td>
-<td class="parameter_description"><p>a <a class="link" href="gst-plugins-base-libs-GstAudioConverter.html#GstAudioConverter" title="GstAudioConverter"><span class="type">GstAudioConverter</span></a></p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-<tr>
-<td class="parameter_name"><p>in_frames</p></td>
-<td class="parameter_description"><p>number of input frames</p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-</tbody>
-</table></div>
-</div>
-<div class="refsect3">
-<a name="gst-audio-converter-get-out-frames.returns"></a><h4>Returns</h4>
-<p> the number of output frames</p>
-</div>
 </div>
 <hr>
 <div class="refsect2">
@@ -409,41 +190,6 @@
 gst_audio_converter_get_config (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-GstAudioConverter.html#GstAudioConverter" title="GstAudioConverter"><span class="type">GstAudioConverter</span></a> *convert</code></em>,
                                 <em class="parameter"><code><a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#gint"><span class="type">gint</span></a> *in_rate</code></em>,
                                 <em class="parameter"><code><a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#gint"><span class="type">gint</span></a> *out_rate</code></em>);</pre>
-<p>Get the current configuration of <em class="parameter"><code>convert</code></em>
-.</p>
-<div class="refsect3">
-<a name="gst-audio-converter-get-config.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>convert</p></td>
-<td class="parameter_description"><p>a <a class="link" href="gst-plugins-base-libs-GstAudioConverter.html#GstAudioConverter" title="GstAudioConverter"><span class="type">GstAudioConverter</span></a></p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-<tr>
-<td class="parameter_name"><p>in_rate</p></td>
-<td class="parameter_description"><p>result input rate</p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-<tr>
-<td class="parameter_name"><p>out_rate</p></td>
-<td class="parameter_description"><p>result output rate</p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-</tbody>
-</table></div>
-</div>
-<div class="refsect3">
-<a name="gst-audio-converter-get-config.returns"></a><h4>Returns</h4>
-<p> a <a href="/usr/share/gtk-doc/html/gstreamer-1.0GstStructure.html#GstStructure-struct"><span class="type">GstStructure</span></a> that remains valid for as long as <em class="parameter"><code>convert</code></em>
-is valid
-or until <code class="function">gst_audio_converter_update_config()</code> is called.</p>
-</div>
 </div>
 </div>
 <div class="refsect1">
@@ -455,7 +201,6 @@
 <hr>
 <div class="refsect2">
 <a name="GstAudioConverterFlags"></a><h3>enum GstAudioConverterFlags</h3>
-<p>Extra flags passed to <a class="link" href="gst-plugins-base-libs-GstAudioConverter.html#gst-audio-converter-new" title="gst_audio_converter_new ()"><code class="function">gst_audio_converter_new()</code></a> and <a class="link" href="gst-plugins-base-libs-GstAudioConverter.html#gst-audio-converter-samples" title="gst_audio_converter_samples ()"><code class="function">gst_audio_converter_samples()</code></a>.</p>
 <div class="refsect3">
 <a name="GstAudioConverterFlags.members"></a><h4>Members</h4>
 <div class="informaltable"><table class="informaltable" width="100%" border="0">
@@ -467,26 +212,18 @@
 <tbody>
 <tr>
 <td class="enum_member_name"><p><a name="GST-AUDIO-CONVERTER-FLAG-NONE:CAPS"></a>GST_AUDIO_CONVERTER_FLAG_NONE</p></td>
-<td class="enum_member_description">
-<p>no flag</p>
-</td>
-<td class="enum_member_annotations"> </td>
+<td> </td>
+<td> </td>
 </tr>
 <tr>
 <td class="enum_member_name"><p><a name="GST-AUDIO-CONVERTER-FLAG-IN-WRITABLE:CAPS"></a>GST_AUDIO_CONVERTER_FLAG_IN_WRITABLE</p></td>
-<td class="enum_member_description">
-<p>the input sample arrays are writable and can be
-   used as temporary storage during conversion.</p>
-</td>
-<td class="enum_member_annotations"> </td>
+<td> </td>
+<td> </td>
 </tr>
 <tr>
 <td class="enum_member_name"><p><a name="GST-AUDIO-CONVERTER-FLAG-VARIABLE-RATE:CAPS"></a>GST_AUDIO_CONVERTER_FLAG_VARIABLE_RATE</p></td>
-<td class="enum_member_description">
-<p>allow arbitrary rate updates with
-   <code class="function">gst_audio_converter_update_config()</code>.</p>
-</td>
-<td class="enum_member_annotations"> </td>
+<td> </td>
+<td> </td>
 </tr>
 </tbody>
 </table></div>
@@ -497,27 +234,18 @@
 <a name="GST-AUDIO-CONVERTER-OPT-DITHER-METHOD:CAPS"></a><h3>GST_AUDIO_CONVERTER_OPT_DITHER_METHOD</h3>
 <pre class="programlisting">#define GST_AUDIO_CONVERTER_OPT_DITHER_METHOD   "GstAudioConverter.dither-method"
 </pre>
-<p><span class="type">GST_TYPE_AUDIO_DITHER_METHOD</span>, The dither method to use when
-changing bit depth.
-Default is <a class="link" href="gst-plugins-base-libs-GstAudioQuantize.html#GST-AUDIO-DITHER-NONE:CAPS"><span class="type">GST_AUDIO_DITHER_NONE</span></a>.</p>
 </div>
 <hr>
 <div class="refsect2">
 <a name="GST-AUDIO-CONVERTER-OPT-NOISE-SHAPING-METHOD:CAPS"></a><h3>GST_AUDIO_CONVERTER_OPT_NOISE_SHAPING_METHOD</h3>
 <pre class="programlisting">#define GST_AUDIO_CONVERTER_OPT_NOISE_SHAPING_METHOD   "GstAudioConverter.noise-shaping-method"
 </pre>
-<p><span class="type">GST_TYPE_AUDIO_NOISE_SHAPING_METHOD</span>, The noise shaping method to use
-to mask noise from quantization errors.
-Default is <a class="link" href="gst-plugins-base-libs-GstAudioQuantize.html#GST-AUDIO-NOISE-SHAPING-NONE:CAPS"><span class="type">GST_AUDIO_NOISE_SHAPING_NONE</span></a>.</p>
 </div>
 <hr>
 <div class="refsect2">
 <a name="GST-AUDIO-CONVERTER-OPT-QUANTIZATION:CAPS"></a><h3>GST_AUDIO_CONVERTER_OPT_QUANTIZATION</h3>
 <pre class="programlisting">#define GST_AUDIO_CONVERTER_OPT_QUANTIZATION   "GstAudioConverter.quantization"
 </pre>
-<p><a href="/usr/share/gtk-doc/html/gobjectgobject-Type-Information.html#G-TYPE-UINT:CAPS"><span class="type">G_TYPE_UINT</span></a>, The quantization amount. Components will be
-quantized to multiples of this value.
-Default is 1</p>
 </div>
 </div>
 </div>
diff --git a/docs/libs/html/gst-plugins-base-libs-GstAudioQuantize.html b/docs/libs/html/gst-plugins-base-libs-GstAudioQuantize.html
index 680ec89..44febc0 100644
--- a/docs/libs/html/gst-plugins-base-libs-GstAudioQuantize.html
+++ b/docs/libs/html/gst-plugins-base-libs-GstAudioQuantize.html
@@ -107,22 +107,6 @@
 <a name="gst-audio-quantize-free"></a><h3>gst_audio_quantize_free ()</h3>
 <pre class="programlisting"><span class="returnvalue">void</span>
 gst_audio_quantize_free (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-GstAudioQuantize.html#GstAudioQuantize" title="GstAudioQuantize"><span class="type">GstAudioQuantize</span></a> *quant</code></em>);</pre>
-<p>Free a <a class="link" href="gst-plugins-base-libs-GstAudioQuantize.html#GstAudioQuantize" title="GstAudioQuantize"><span class="type">GstAudioQuantize</span></a>.</p>
-<div class="refsect3">
-<a name="gst-audio-quantize-free.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>quant</p></td>
-<td class="parameter_description"><p>a <a class="link" href="gst-plugins-base-libs-GstAudioQuantize.html#GstAudioQuantize" title="GstAudioQuantize"><span class="type">GstAudioQuantize</span></a></p></td>
-<td class="parameter_annotations"> </td>
-</tr></tbody>
-</table></div>
-</div>
 </div>
 <hr>
 <div class="refsect2">
@@ -143,54 +127,6 @@
                             <em class="parameter"><code>const <a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> in[]</code></em>,
                             <em class="parameter"><code><a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> out[]</code></em>,
                             <em class="parameter"><code><a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#guint"><span class="type">guint</span></a> samples</code></em>);</pre>
-<p>Perform quantization on <em class="parameter"><code>samples</code></em>
- in <em class="parameter"><code>in</code></em>
- and write the result to <em class="parameter"><code>out</code></em>
-.</p>
-<p>In case the samples are interleaved, <em class="parameter"><code>in</code></em>
- and <em class="parameter"><code>out</code></em>
- must point to an
-array with a single element pointing to a block of interleaved samples.</p>
-<p>If non-interleaved samples are used, <em class="parameter"><code>in</code></em>
- and <em class="parameter"><code>out</code></em>
- must point to an
-array with pointers to memory blocks, one for each channel.</p>
-<p><em class="parameter"><code>in</code></em>
- and <em class="parameter"><code>out</code></em>
- may point to the same memory location, in which case samples will be
-modified in-place.</p>
-<div class="refsect3">
-<a name="gst-audio-quantize-samples.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>quant</p></td>
-<td class="parameter_description"><p>a <a class="link" href="gst-plugins-base-libs-GstAudioQuantize.html#GstAudioQuantize" title="GstAudioQuantize"><span class="type">GstAudioQuantize</span></a></p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-<tr>
-<td class="parameter_name"><p>in</p></td>
-<td class="parameter_description"><p>input samples</p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-<tr>
-<td class="parameter_name"><p>out</p></td>
-<td class="parameter_description"><p>output samples</p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-<tr>
-<td class="parameter_name"><p>samples</p></td>
-<td class="parameter_description"><p>number of samples</p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-</tbody>
-</table></div>
-</div>
 </div>
 </div>
 <div class="refsect1">
@@ -202,7 +138,6 @@
 <hr>
 <div class="refsect2">
 <a name="GstAudioQuantizeFlags"></a><h3>enum GstAudioQuantizeFlags</h3>
-<p>Extra flags that can be passed to <a class="link" href="gst-plugins-base-libs-GstAudioQuantize.html#gst-audio-quantize-new" title="gst_audio_quantize_new ()"><code class="function">gst_audio_quantize_new()</code></a></p>
 <div class="refsect3">
 <a name="GstAudioQuantizeFlags.members"></a><h4>Members</h4>
 <div class="informaltable"><table class="informaltable" width="100%" border="0">
@@ -214,17 +149,13 @@
 <tbody>
 <tr>
 <td class="enum_member_name"><p><a name="GST-AUDIO-QUANTIZE-FLAG-NONE:CAPS"></a>GST_AUDIO_QUANTIZE_FLAG_NONE</p></td>
-<td class="enum_member_description">
-<p>no flags</p>
-</td>
-<td class="enum_member_annotations"> </td>
+<td> </td>
+<td> </td>
 </tr>
 <tr>
 <td class="enum_member_name"><p><a name="GST-AUDIO-QUANTIZE-FLAG-NON-INTERLEAVED:CAPS"></a>GST_AUDIO_QUANTIZE_FLAG_NON_INTERLEAVED</p></td>
-<td class="enum_member_description">
-<p>samples are non-interleaved</p>
-</td>
-<td class="enum_member_annotations"> </td>
+<td> </td>
+<td> </td>
 </tr>
 </tbody>
 </table></div>
@@ -233,7 +164,6 @@
 <hr>
 <div class="refsect2">
 <a name="GstAudioDitherMethod"></a><h3>enum GstAudioDitherMethod</h3>
-<p>Set of available dithering methods.</p>
 <div class="refsect3">
 <a name="GstAudioDitherMethod.members"></a><h4>Members</h4>
 <div class="informaltable"><table class="informaltable" width="100%" border="0">
@@ -245,31 +175,23 @@
 <tbody>
 <tr>
 <td class="enum_member_name"><p><a name="GST-AUDIO-DITHER-NONE:CAPS"></a>GST_AUDIO_DITHER_NONE</p></td>
-<td class="enum_member_description">
-<p>No dithering</p>
-</td>
-<td class="enum_member_annotations"> </td>
+<td> </td>
+<td> </td>
 </tr>
 <tr>
 <td class="enum_member_name"><p><a name="GST-AUDIO-DITHER-RPDF:CAPS"></a>GST_AUDIO_DITHER_RPDF</p></td>
-<td class="enum_member_description">
-<p>Rectangular dithering</p>
-</td>
-<td class="enum_member_annotations"> </td>
+<td> </td>
+<td> </td>
 </tr>
 <tr>
 <td class="enum_member_name"><p><a name="GST-AUDIO-DITHER-TPDF:CAPS"></a>GST_AUDIO_DITHER_TPDF</p></td>
-<td class="enum_member_description">
-<p>Triangular dithering (default)</p>
-</td>
-<td class="enum_member_annotations"> </td>
+<td> </td>
+<td> </td>
 </tr>
 <tr>
 <td class="enum_member_name"><p><a name="GST-AUDIO-DITHER-TPDF-HF:CAPS"></a>GST_AUDIO_DITHER_TPDF_HF</p></td>
-<td class="enum_member_description">
-<p>High frequency triangular dithering</p>
-</td>
-<td class="enum_member_annotations"> </td>
+<td> </td>
+<td> </td>
 </tr>
 </tbody>
 </table></div>
@@ -278,7 +200,6 @@
 <hr>
 <div class="refsect2">
 <a name="GstAudioNoiseShapingMethod"></a><h3>enum GstAudioNoiseShapingMethod</h3>
-<p>Set of available noise shaping methods</p>
 <div class="refsect3">
 <a name="GstAudioNoiseShapingMethod.members"></a><h4>Members</h4>
 <div class="informaltable"><table class="informaltable" width="100%" border="0">
@@ -290,38 +211,28 @@
 <tbody>
 <tr>
 <td class="enum_member_name"><p><a name="GST-AUDIO-NOISE-SHAPING-NONE:CAPS"></a>GST_AUDIO_NOISE_SHAPING_NONE</p></td>
-<td class="enum_member_description">
-<p>No noise shaping (default)</p>
-</td>
-<td class="enum_member_annotations"> </td>
+<td> </td>
+<td> </td>
 </tr>
 <tr>
 <td class="enum_member_name"><p><a name="GST-AUDIO-NOISE-SHAPING-ERROR-FEEDBACK:CAPS"></a>GST_AUDIO_NOISE_SHAPING_ERROR_FEEDBACK</p></td>
-<td class="enum_member_description">
-<p>Error feedback</p>
-</td>
-<td class="enum_member_annotations"> </td>
+<td> </td>
+<td> </td>
 </tr>
 <tr>
 <td class="enum_member_name"><p><a name="GST-AUDIO-NOISE-SHAPING-SIMPLE:CAPS"></a>GST_AUDIO_NOISE_SHAPING_SIMPLE</p></td>
-<td class="enum_member_description">
-<p>Simple 2-pole noise shaping</p>
-</td>
-<td class="enum_member_annotations"> </td>
+<td> </td>
+<td> </td>
 </tr>
 <tr>
 <td class="enum_member_name"><p><a name="GST-AUDIO-NOISE-SHAPING-MEDIUM:CAPS"></a>GST_AUDIO_NOISE_SHAPING_MEDIUM</p></td>
-<td class="enum_member_description">
-<p>Medium 5-pole noise shaping</p>
-</td>
-<td class="enum_member_annotations"> </td>
+<td> </td>
+<td> </td>
 </tr>
 <tr>
 <td class="enum_member_name"><p><a name="GST-AUDIO-NOISE-SHAPING-HIGH:CAPS"></a>GST_AUDIO_NOISE_SHAPING_HIGH</p></td>
-<td class="enum_member_description">
-<p>High 8-pole noise shaping</p>
-</td>
-<td class="enum_member_annotations"> </td>
+<td> </td>
+<td> </td>
 </tr>
 </tbody>
 </table></div>
diff --git a/docs/libs/html/gst-plugins-base-libs-GstVideoChroma.html b/docs/libs/html/gst-plugins-base-libs-GstVideoChroma.html
index 1b0b0b4..1d584d8 100644
--- a/docs/libs/html/gst-plugins-base-libs-GstVideoChroma.html
+++ b/docs/libs/html/gst-plugins-base-libs-GstVideoChroma.html
@@ -27,7 +27,7 @@
 <div class="refnamediv"><table width="100%"><tr>
 <td valign="top">
 <h2><span class="refentrytitle"><a name="gst-plugins-base-libs-GstVideoChroma.top_of_page"></a>GstVideoChroma</span></h2>
-<p>GstVideoChroma — Functions and utility object for operating on chroma video planes</p>
+<p>GstVideoChroma</p>
 </td>
 <td class="gallery_image" valign="top" align="right"></td>
 </tr></table></div>
@@ -123,10 +123,6 @@
 </div>
 <div class="refsect1">
 <a name="gst-plugins-base-libs-GstVideoChroma.description"></a><h2>Description</h2>
-<p>The functions <a class="link" href="gst-plugins-base-libs-GstVideoChroma.html#gst-video-chroma-from-string" title="gst_video_chroma_from_string ()"><code class="function">gst_video_chroma_from_string()</code></a> and <a class="link" href="gst-plugins-base-libs-GstVideoChroma.html#gst-video-chroma-to-string" title="gst_video_chroma_to_string ()"><code class="function">gst_video_chroma_to_string()</code></a> convert
-between <a class="link" href="gst-plugins-base-libs-GstVideoChroma.html#GstVideoChromaSite" title="enum GstVideoChromaSite"><span class="type">GstVideoChromaSite</span></a> and string descriptions.</p>
-<p><a class="link" href="gst-plugins-base-libs-GstVideoChroma.html#GstVideoChromaResample" title="GstVideoChromaResample"><span class="type">GstVideoChromaResample</span></a> is a utility object for resampling chroma planes
-and converting between different chroma sampling sitings.</p>
 </div>
 <div class="refsect1">
 <a name="gst-plugins-base-libs-GstVideoChroma.functions_details"></a><h2>Functions</h2>
@@ -134,57 +130,12 @@
 <a name="gst-video-chroma-from-string"></a><h3>gst_video_chroma_from_string ()</h3>
 <pre class="programlisting"><a class="link" href="gst-plugins-base-libs-GstVideoChroma.html#GstVideoChromaSite" title="enum GstVideoChromaSite"><span class="returnvalue">GstVideoChromaSite</span></a>
 gst_video_chroma_from_string (<em class="parameter"><code>const <a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *s</code></em>);</pre>
-<p>Convert <em class="parameter"><code>s</code></em>
- to a <a class="link" href="gst-plugins-base-libs-GstVideoChroma.html#GstVideoChromaSite" title="enum GstVideoChromaSite"><span class="type">GstVideoChromaSite</span></a></p>
-<div class="refsect3">
-<a name="gst-video-chroma-from-string.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>s</p></td>
-<td class="parameter_description"><p>a chromasite string</p></td>
-<td class="parameter_annotations"> </td>
-</tr></tbody>
-</table></div>
-</div>
-<div class="refsect3">
-<a name="gst-video-chroma-from-string.returns"></a><h4>Returns</h4>
-<p> a <a class="link" href="gst-plugins-base-libs-GstVideoChroma.html#GstVideoChromaSite" title="enum GstVideoChromaSite"><span class="type">GstVideoChromaSite</span></a> or <a class="link" href="gst-plugins-base-libs-GstVideoChroma.html#GST-VIDEO-CHROMA-SITE-UNKNOWN:CAPS"><code class="literal">GST_VIDEO_CHROMA_SITE_UNKNOWN</code></a> when <em class="parameter"><code>s</code></em>
-does
-not contain a valid chroma description.</p>
-</div>
 </div>
 <hr>
 <div class="refsect2">
 <a name="gst-video-chroma-to-string"></a><h3>gst_video_chroma_to_string ()</h3>
 <pre class="programlisting">const <a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> *
 gst_video_chroma_to_string (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-GstVideoChroma.html#GstVideoChromaSite" title="enum GstVideoChromaSite"><span class="type">GstVideoChromaSite</span></a> site</code></em>);</pre>
-<p>Converts <em class="parameter"><code>site</code></em>
- to its string representation.</p>
-<div class="refsect3">
-<a name="gst-video-chroma-to-string.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>site</p></td>
-<td class="parameter_description"><p>a <a class="link" href="gst-plugins-base-libs-GstVideoChroma.html#GstVideoChromaSite" title="enum GstVideoChromaSite"><span class="type">GstVideoChromaSite</span></a></p></td>
-<td class="parameter_annotations"> </td>
-</tr></tbody>
-</table></div>
-</div>
-<div class="refsect3">
-<a name="gst-video-chroma-to-string.returns"></a><h4>Returns</h4>
-<p> a string describing <em class="parameter"><code>site</code></em>
-.</p>
-</div>
 </div>
 <hr>
 <div class="refsect2">
@@ -193,59 +144,12 @@
 gst_video_chroma_resample (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-GstVideoChroma.html#GstVideoChromaResample" title="GstVideoChromaResample"><span class="type">GstVideoChromaResample</span></a> *resample</code></em>,
                            <em class="parameter"><code><a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> lines[]</code></em>,
                            <em class="parameter"><code><a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#gint"><span class="type">gint</span></a> width</code></em>);</pre>
-<p>Perform resampling of <em class="parameter"><code>width</code></em>
- chroma pixels in <em class="parameter"><code>lines</code></em>
-.</p>
-<div class="refsect3">
-<a name="gst-video-chroma-resample.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>resample</p></td>
-<td class="parameter_description"><p>a <a class="link" href="gst-plugins-base-libs-GstVideoChroma.html#GstVideoChromaResample" title="GstVideoChromaResample"><span class="type">GstVideoChromaResample</span></a></p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-<tr>
-<td class="parameter_name"><p>lines</p></td>
-<td class="parameter_description"><p>pixel lines</p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-<tr>
-<td class="parameter_name"><p>width</p></td>
-<td class="parameter_description"><p>the number of pixels on one line</p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-</tbody>
-</table></div>
-</div>
 </div>
 <hr>
 <div class="refsect2">
 <a name="gst-video-chroma-resample-free"></a><h3>gst_video_chroma_resample_free ()</h3>
 <pre class="programlisting"><span class="returnvalue">void</span>
 gst_video_chroma_resample_free (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-GstVideoChroma.html#GstVideoChromaResample" title="GstVideoChromaResample"><span class="type">GstVideoChromaResample</span></a> *resample</code></em>);</pre>
-<p>Free <em class="parameter"><code>resample</code></em>
-</p>
-<div class="refsect3">
-<a name="gst-video-chroma-resample-free.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>resample</p></td>
-<td class="parameter_description"><p>a <a class="link" href="gst-plugins-base-libs-GstVideoChroma.html#GstVideoChromaResample" title="GstVideoChromaResample"><span class="type">GstVideoChromaResample</span></a></p></td>
-<td class="parameter_annotations"> </td>
-</tr></tbody>
-</table></div>
-</div>
 </div>
 <hr>
 <div class="refsect2">
@@ -254,37 +158,6 @@
 gst_video_chroma_resample_get_info (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-GstVideoChroma.html#GstVideoChromaResample" title="GstVideoChromaResample"><span class="type">GstVideoChromaResample</span></a> *resample</code></em>,
                                     <em class="parameter"><code><a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#guint"><span class="type">guint</span></a> *n_lines</code></em>,
                                     <em class="parameter"><code><a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#gint"><span class="type">gint</span></a> *offset</code></em>);</pre>
-<p>The resampler must be fed <em class="parameter"><code>n_lines</code></em>
- at a time. The first line should be
-at <em class="parameter"><code>offset</code></em>
-.</p>
-<div class="refsect3">
-<a name="gst-video-chroma-resample-get-info.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>resample</p></td>
-<td class="parameter_description"><p>a <a class="link" href="gst-plugins-base-libs-GstVideoChroma.html#GstVideoChromaResample" title="GstVideoChromaResample"><span class="type">GstVideoChromaResample</span></a></p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-<tr>
-<td class="parameter_name"><p>n_lines</p></td>
-<td class="parameter_description"><p>the number of input lines</p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-<tr>
-<td class="parameter_name"><p>offset</p></td>
-<td class="parameter_description"><p>the first line</p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-</tbody>
-</table></div>
-</div>
 </div>
 <hr>
 <div class="refsect2">
@@ -296,66 +169,12 @@
                                <em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstvideo.html#GstVideoFormat" title="enum GstVideoFormat"><span class="type">GstVideoFormat</span></a> format</code></em>,
                                <em class="parameter"><code><a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#gint"><span class="type">gint</span></a> h_factor</code></em>,
                                <em class="parameter"><code><a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#gint"><span class="type">gint</span></a> v_factor</code></em>);</pre>
-<p>Create a new resampler object for the given parameters. When <em class="parameter"><code>h_factor</code></em>
- or
-<em class="parameter"><code>v_factor</code></em>
- is &gt; 0, upsampling will be used, otherwise subsampling is
-performed.</p>
-<p><span class="annotation">[<acronym title="Exposed in C code, not necessarily available in other languages."><span class="acronym">skip</span></acronym>]</span></p>
-<div class="refsect3">
-<a name="gst-video-chroma-resample-new.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>method</p></td>
-<td class="parameter_description"><p>a <a class="link" href="gst-plugins-base-libs-GstVideoChroma.html#GstVideoChromaMethod" title="enum GstVideoChromaMethod"><span class="type">GstVideoChromaMethod</span></a></p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-<tr>
-<td class="parameter_name"><p>site</p></td>
-<td class="parameter_description"><p>a <a class="link" href="gst-plugins-base-libs-GstVideoChroma.html#GstVideoChromaSite" title="enum GstVideoChromaSite"><span class="type">GstVideoChromaSite</span></a></p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-<tr>
-<td class="parameter_name"><p>flags</p></td>
-<td class="parameter_description"><p><a class="link" href="gst-plugins-base-libs-GstVideoChroma.html#GstVideoChromaFlags" title="enum GstVideoChromaFlags"><span class="type">GstVideoChromaFlags</span></a></p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-<tr>
-<td class="parameter_name"><p>format</p></td>
-<td class="parameter_description"><p>the <a class="link" href="gst-plugins-base-libs-gstvideo.html#GstVideoFormat" title="enum GstVideoFormat"><span class="type">GstVideoFormat</span></a></p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-<tr>
-<td class="parameter_name"><p>h_factor</p></td>
-<td class="parameter_description"><p>horizontal resampling factor</p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-<tr>
-<td class="parameter_name"><p>v_factor</p></td>
-<td class="parameter_description"><p>vertical resampling factor</p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-</tbody>
-</table></div>
-</div>
-<div class="refsect3">
-<a name="gst-video-chroma-resample-new.returns"></a><h4>Returns</h4>
-<p> a new <a class="link" href="gst-plugins-base-libs-GstVideoChroma.html#GstVideoChromaResample" title="GstVideoChromaResample"><span class="type">GstVideoChromaResample</span></a> that should be freed with
-<a class="link" href="gst-plugins-base-libs-GstVideoChroma.html#gst-video-chroma-resample-free" title="gst_video_chroma_resample_free ()"><code class="function">gst_video_chroma_resample_free()</code></a> after usage.</p>
-</div>
 </div>
 </div>
 <div class="refsect1">
 <a name="gst-plugins-base-libs-GstVideoChroma.other_details"></a><h2>Types and Values</h2>
 <div class="refsect2">
 <a name="GstVideoChromaSite"></a><h3>enum GstVideoChromaSite</h3>
-<p>Various Chroma sitings.</p>
 <div class="refsect3">
 <a name="GstVideoChromaSite.members"></a><h4>Members</h4>
 <div class="informaltable"><table class="informaltable" width="100%" border="0">
@@ -367,66 +186,48 @@
 <tbody>
 <tr>
 <td class="enum_member_name"><p><a name="GST-VIDEO-CHROMA-SITE-UNKNOWN:CAPS"></a>GST_VIDEO_CHROMA_SITE_UNKNOWN</p></td>
-<td class="enum_member_description">
-<p>unknown cositing</p>
-</td>
-<td class="enum_member_annotations"> </td>
+<td> </td>
+<td> </td>
 </tr>
 <tr>
 <td class="enum_member_name"><p><a name="GST-VIDEO-CHROMA-SITE-NONE:CAPS"></a>GST_VIDEO_CHROMA_SITE_NONE</p></td>
-<td class="enum_member_description">
-<p>no cositing</p>
-</td>
-<td class="enum_member_annotations"> </td>
+<td> </td>
+<td> </td>
 </tr>
 <tr>
 <td class="enum_member_name"><p><a name="GST-VIDEO-CHROMA-SITE-H-COSITED:CAPS"></a>GST_VIDEO_CHROMA_SITE_H_COSITED</p></td>
-<td class="enum_member_description">
-<p>chroma is horizontally cosited</p>
-</td>
-<td class="enum_member_annotations"> </td>
+<td> </td>
+<td> </td>
 </tr>
 <tr>
 <td class="enum_member_name"><p><a name="GST-VIDEO-CHROMA-SITE-V-COSITED:CAPS"></a>GST_VIDEO_CHROMA_SITE_V_COSITED</p></td>
-<td class="enum_member_description">
-<p>chroma is vertically cosited</p>
-</td>
-<td class="enum_member_annotations"> </td>
+<td> </td>
+<td> </td>
 </tr>
 <tr>
 <td class="enum_member_name"><p><a name="GST-VIDEO-CHROMA-SITE-ALT-LINE:CAPS"></a>GST_VIDEO_CHROMA_SITE_ALT_LINE</p></td>
-<td class="enum_member_description">
-<p>choma samples are sited on alternate lines</p>
-</td>
-<td class="enum_member_annotations"> </td>
+<td> </td>
+<td> </td>
 </tr>
 <tr>
 <td class="enum_member_name"><p><a name="GST-VIDEO-CHROMA-SITE-COSITED:CAPS"></a>GST_VIDEO_CHROMA_SITE_COSITED</p></td>
-<td class="enum_member_description">
-<p>chroma samples cosited with luma samples</p>
-</td>
-<td class="enum_member_annotations"> </td>
+<td> </td>
+<td> </td>
 </tr>
 <tr>
 <td class="enum_member_name"><p><a name="GST-VIDEO-CHROMA-SITE-JPEG:CAPS"></a>GST_VIDEO_CHROMA_SITE_JPEG</p></td>
-<td class="enum_member_description">
-<p>jpeg style cositing, also for mpeg1 and mjpeg</p>
-</td>
-<td class="enum_member_annotations"> </td>
+<td> </td>
+<td> </td>
 </tr>
 <tr>
 <td class="enum_member_name"><p><a name="GST-VIDEO-CHROMA-SITE-MPEG2:CAPS"></a>GST_VIDEO_CHROMA_SITE_MPEG2</p></td>
-<td class="enum_member_description">
-<p>mpeg2 style cositing</p>
-</td>
-<td class="enum_member_annotations"> </td>
+<td> </td>
+<td> </td>
 </tr>
 <tr>
 <td class="enum_member_name"><p><a name="GST-VIDEO-CHROMA-SITE-DV:CAPS"></a>GST_VIDEO_CHROMA_SITE_DV</p></td>
-<td class="enum_member_description">
-<p>DV style cositing</p>
-</td>
-<td class="enum_member_annotations"> </td>
+<td> </td>
+<td> </td>
 </tr>
 </tbody>
 </table></div>
@@ -435,7 +236,6 @@
 <hr>
 <div class="refsect2">
 <a name="GstVideoChromaFlags"></a><h3>enum GstVideoChromaFlags</h3>
-<p>Extra flags that influence the result from <a class="link" href="gst-plugins-base-libs-GstVideoChroma.html#gst-video-chroma-resample-new" title="gst_video_chroma_resample_new ()"><code class="function">gst_video_chroma_resample_new()</code></a>.</p>
 <div class="refsect3">
 <a name="GstVideoChromaFlags.members"></a><h4>Members</h4>
 <div class="informaltable"><table class="informaltable" width="100%" border="0">
@@ -447,17 +247,13 @@
 <tbody>
 <tr>
 <td class="enum_member_name"><p><a name="GST-VIDEO-CHROMA-FLAG-NONE:CAPS"></a>GST_VIDEO_CHROMA_FLAG_NONE</p></td>
-<td class="enum_member_description">
-<p>no flags</p>
-</td>
-<td class="enum_member_annotations"> </td>
+<td> </td>
+<td> </td>
 </tr>
 <tr>
 <td class="enum_member_name"><p><a name="GST-VIDEO-CHROMA-FLAG-INTERLACED:CAPS"></a>GST_VIDEO_CHROMA_FLAG_INTERLACED</p></td>
-<td class="enum_member_description">
-<p>the input is interlaced</p>
-</td>
-<td class="enum_member_annotations"> </td>
+<td> </td>
+<td> </td>
 </tr>
 </tbody>
 </table></div>
@@ -466,7 +262,6 @@
 <hr>
 <div class="refsect2">
 <a name="GstVideoChromaMethod"></a><h3>enum GstVideoChromaMethod</h3>
-<p>Different subsampling and upsampling methods</p>
 <div class="refsect3">
 <a name="GstVideoChromaMethod.members"></a><h4>Members</h4>
 <div class="informaltable"><table class="informaltable" width="100%" border="0">
@@ -478,19 +273,13 @@
 <tbody>
 <tr>
 <td class="enum_member_name"><p><a name="GST-VIDEO-CHROMA-METHOD-NEAREST:CAPS"></a>GST_VIDEO_CHROMA_METHOD_NEAREST</p></td>
-<td class="enum_member_description">
-<p>Duplicates the chroma samples when
-   upsampling and drops when subsampling</p>
-</td>
-<td class="enum_member_annotations"> </td>
+<td> </td>
+<td> </td>
 </tr>
 <tr>
 <td class="enum_member_name"><p><a name="GST-VIDEO-CHROMA-METHOD-LINEAR:CAPS"></a>GST_VIDEO_CHROMA_METHOD_LINEAR</p></td>
-<td class="enum_member_description">
-<p>Uses linear interpolation to reconstruct
-   missing chroma and averaging to subsample</p>
-</td>
-<td class="enum_member_annotations"> </td>
+<td> </td>
+<td> </td>
 </tr>
 </tbody>
 </table></div>
diff --git a/docs/libs/html/gst-plugins-base-libs-GstVideoDecoder.html b/docs/libs/html/gst-plugins-base-libs-GstVideoDecoder.html
index 06018ff..1bb61dc 100644
--- a/docs/libs/html/gst-plugins-base-libs-GstVideoDecoder.html
+++ b/docs/libs/html/gst-plugins-base-libs-GstVideoDecoder.html
@@ -27,7 +27,7 @@
 <div class="refnamediv"><table width="100%"><tr>
 <td valign="top">
 <h2><span class="refentrytitle"><a name="gst-plugins-base-libs-GstVideoDecoder.top_of_page"></a>GstVideoDecoder</span></h2>
-<p>GstVideoDecoder — Base class for video decoders</p>
+<p>GstVideoDecoder</p>
 </td>
 <td class="gallery_image" valign="top" align="right"></td>
 </tr></table></div>
@@ -361,332 +361,48 @@
 </div>
 <div class="refsect1">
 <a name="gst-plugins-base-libs-GstVideoDecoder.description"></a><h2>Description</h2>
-<p>This base class is for video decoders turning encoded data into raw video
-frames.</p>
-<p>The GstVideoDecoder base class and derived subclasses should cooperate as
-follows:</p>
-<div class="orderedlist"><ol class="orderedlist" type="1">
-<li class="listitem"><div class="itemizedlist">
-<p class="title"><b>Configuration</b></p>
-<ul class="itemizedlist" style="list-style-type: disc; ">
-<li class="listitem"><p>
-    Initially, GstVideoDecoder calls <em class="parameter"><code>start</code></em> when the decoder element
-    is activated, which allows the subclass to perform any global setup.
-  </p></li>
-<li class="listitem"><p>
-    GstVideoDecoder calls <em class="parameter"><code>set_format</code></em> to inform the subclass of caps
-    describing input video data that it is about to receive, including
-    possibly configuration data.
-    While unlikely, it might be called more than once, if changing input
-    parameters require reconfiguration.
-  </p></li>
-<li class="listitem"><p>
-    Incoming data buffers are processed as needed, described in Data
-    Processing below.
-  </p></li>
-<li class="listitem"><p>
-    GstVideoDecoder calls <em class="parameter"><code>stop</code></em> at end of all processing.
-  </p></li>
-</ul>
-</div></li>
-<li class="listitem"><div class="itemizedlist">
-<p class="title"><b>Data processing</b></p>
-<ul class="itemizedlist" style="list-style-type: disc; ">
-<li class="listitem"><p>
-      The base class gathers input data, and optionally allows subclass
-      to parse this into subsequently manageable chunks, typically
-      corresponding to and referred to as 'frames'.
-    </p></li>
-<li class="listitem"><p>
-      Each input frame is provided in turn to the subclass' <em class="parameter"><code>handle_frame</code></em>
-      callback.
-      The ownership of the frame is given to the <em class="parameter"><code>handle_frame</code></em> callback.
-    </p></li>
-<li class="listitem"><p>
-      If codec processing results in decoded data, the subclass should call
-      <em class="parameter"><code>gst_video_decoder_finish_frame</code></em> to have decoded data pushed.
-      downstream. Otherwise, the subclass must call
-      <em class="parameter"><code>gst_video_decoder_drop_frame</code></em>, to allow the base class to do timestamp
-      and offset tracking, and possibly to requeue the frame for a later
-      attempt in the case of reverse playback.
-    </p></li>
-</ul>
-</div></li>
-<li class="listitem"><div class="itemizedlist">
-<p class="title"><b>Shutdown phase</b></p>
-<ul class="itemizedlist" style="list-style-type: disc; "><li class="listitem"><p>
-    The GstVideoDecoder class calls <em class="parameter"><code>stop</code></em> to inform the subclass that data
-    parsing will be stopped.
-  </p></li></ul>
-</div></li>
-<li class="listitem"><div class="itemizedlist">
-<p class="title"><b>Additional Notes</b></p>
-<ul class="itemizedlist" style="list-style-type: disc; ">
-<li class="listitem"><div class="itemizedlist">
-<p class="title"><b>Seeking/Flushing</b></p>
-<ul class="itemizedlist" style="list-style-type: circle; "><li class="listitem"><p>
-  When the pipeline is seeked or otherwise flushed, the subclass is
-  informed via a call to its <em class="parameter"><code>reset</code></em> callback, with the hard parameter
-  set to true. This indicates the subclass should drop any internal data
-  queues and timestamps and prepare for a fresh set of buffers to arrive
-  for parsing and decoding.
-    </p></li></ul>
-</div></li>
-<li class="listitem"><div class="itemizedlist">
-<p class="title"><b>End Of Stream</b></p>
-<ul class="itemizedlist" style="list-style-type: circle; "><li class="listitem"><p>
-  At end-of-stream, the subclass <em class="parameter"><code>parse</code></em> function may be called some final
-  times with the at_eos parameter set to true, indicating that the element
-  should not expect any more data to be arriving, and it should parse and
-  remaining frames and call <a class="link" href="gst-plugins-base-libs-GstVideoDecoder.html#gst-video-decoder-have-frame" title="gst_video_decoder_have_frame ()"><code class="function">gst_video_decoder_have_frame()</code></a> if possible.
-    </p></li></ul>
-</div></li>
-</ul>
-</div></li>
-</ol></div>
-<p>The subclass is responsible for providing pad template caps for
-source and sink pads. The pads need to be named "sink" and "src". It also
-needs to provide information about the ouptput caps, when they are known.
-This may be when the base class calls the subclass' <em class="parameter"><code>set_format</code></em>
- function,
-though it might be during decoding, before calling
-<em class="parameter"><code>gst_video_decoder_finish_frame</code></em>
-. This is done via
-<em class="parameter"><code>gst_video_decoder_set_output_state</code></em>
-</p>
-<p>The subclass is also responsible for providing (presentation) timestamps
-(likely based on corresponding input ones).  If that is not applicable
-or possible, the base class provides limited framerate based interpolation.</p>
-<p>Similarly, the base class provides some limited (legacy) seeking support
-if specifically requested by the subclass, as full-fledged support
-should rather be left to upstream demuxer, parser or alike.  This simple
-approach caters for seeking and duration reporting using estimated input
-bitrates. To enable it, a subclass should call
-<em class="parameter"><code>gst_video_decoder_set_estimate_rate</code></em>
- to enable handling of incoming
-byte-streams.</p>
-<p>The base class provides some support for reverse playback, in particular
-in case incoming data is not packetized or upstream does not provide
-fragments on keyframe boundaries.  However, the subclass should then be
-prepared for the parsing and frame processing stage to occur separately
-(in normal forward processing, the latter immediately follows the former),
-The subclass also needs to ensure the parsing stage properly marks
-keyframes, unless it knows the upstream elements will do so properly for
-incoming data.</p>
-<p>The bare minimum that a functional subclass needs to implement is:</p>
-<div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; ">
-<li class="listitem"><p>Provide pad templates</p></li>
-<li class="listitem"><p>
-     Inform the base class of output caps via
-     <em class="parameter"><code>gst_video_decoder_set_output_state</code></em>
-  </p></li>
-<li class="listitem"><p>
-     Parse input data, if it is not considered packetized from upstream
-     Data will be provided to <em class="parameter"><code>parse</code></em> which should invoke
-     <em class="parameter"><code>gst_video_decoder_add_to_frame</code></em> and <em class="parameter"><code>gst_video_decoder_have_frame</code></em> to
-     separate the data belonging to each video frame.
-  </p></li>
-<li class="listitem"><p>
-     Accept data in <em class="parameter"><code>handle_frame</code></em> and provide decoded results to
-     <em class="parameter"><code>gst_video_decoder_finish_frame</code></em>, or call <em class="parameter"><code>gst_video_decoder_drop_frame</code></em>.
-  </p></li>
-</ul></div>
 </div>
 <div class="refsect1">
 <a name="gst-plugins-base-libs-GstVideoDecoder.functions_details"></a><h2>Functions</h2>
 <div class="refsect2">
 <a name="GST-VIDEO-DECODER-ERROR:CAPS"></a><h3>GST_VIDEO_DECODER_ERROR()</h3>
 <pre class="programlisting">#define             GST_VIDEO_DECODER_ERROR(el, w, domain, code, text, debug, ret)</pre>
-<p>Utility function that video decoder elements can use in case they encountered
-a data processing error that may be fatal for the current "data unit" but
-need not prevent subsequent decoding.  Such errors are counted and if there
-are too many, as configured in the context's max_errors, the pipeline will
-post an error message and the application will be requested to stop further
-media processing.  Otherwise, it is considered a "glitch" and only a warning
-is logged. In either case, <em class="parameter"><code>ret</code></em>
- is set to the proper value to
-return to upstream/caller (indicating either GST_FLOW_ERROR or GST_FLOW_OK).</p>
-<div class="refsect3">
-<a name="GST-VIDEO-DECODER-ERROR.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>el</p></td>
-<td class="parameter_description"><p>the base video decoder element that generates the error</p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-<tr>
-<td class="parameter_name"><p>w</p></td>
-<td class="parameter_description"><p>element defined weight of the error, added to error count</p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-<tr>
-<td class="parameter_name"><p>domain</p></td>
-<td class="parameter_description"><p>like CORE, LIBRARY, RESOURCE or STREAM (see <span class="type">gstreamer-GstGError</span>)</p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-<tr>
-<td class="parameter_name"><p>code</p></td>
-<td class="parameter_description"><p>error code defined for that domain (see <span class="type">gstreamer-GstGError</span>)</p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-<tr>
-<td class="parameter_name"><p>text</p></td>
-<td class="parameter_description"><p>the message to display (format string and args enclosed in
-parentheses)</p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-<tr>
-<td class="parameter_name"><p>debug</p></td>
-<td class="parameter_description"><p>debugging information for the message (format string and args
-enclosed in parentheses)</p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-<tr>
-<td class="parameter_name"><p>ret</p></td>
-<td class="parameter_description"><p>variable to receive return value</p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-</tbody>
-</table></div>
-</div>
 </div>
 <hr>
 <div class="refsect2">
 <a name="GST-VIDEO-DECODER-SINK-PAD:CAPS"></a><h3>GST_VIDEO_DECODER_SINK_PAD()</h3>
 <pre class="programlisting">#define GST_VIDEO_DECODER_SINK_PAD(obj)        (((GstVideoDecoder *) (obj))-&gt;sinkpad)
 </pre>
-<p>Gives the pointer to the sink <a href="/usr/share/gtk-doc/html/gstreamer-1.0GstPad.html#GstPad-struct"><span class="type">GstPad</span></a> object of the element.</p>
-<div class="refsect3">
-<a name="GST-VIDEO-DECODER-SINK-PAD.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>obj</p></td>
-<td class="parameter_description"><p>a <a class="link" href="gst-plugins-base-libs-GstVideoDecoder.html#GstVideoDecoder" title="struct GstVideoDecoder"><span class="type">GstVideoDecoder</span></a></p></td>
-<td class="parameter_annotations"> </td>
-</tr></tbody>
-</table></div>
-</div>
 </div>
 <hr>
 <div class="refsect2">
 <a name="GST-VIDEO-DECODER-SRC-PAD:CAPS"></a><h3>GST_VIDEO_DECODER_SRC_PAD()</h3>
 <pre class="programlisting">#define GST_VIDEO_DECODER_SRC_PAD(obj)         (((GstVideoDecoder *) (obj))-&gt;srcpad)
 </pre>
-<p>Gives the pointer to the source <a href="/usr/share/gtk-doc/html/gstreamer-1.0GstPad.html#GstPad-struct"><span class="type">GstPad</span></a> object of the element.</p>
-<div class="refsect3">
-<a name="GST-VIDEO-DECODER-SRC-PAD.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>obj</p></td>
-<td class="parameter_description"><p>a <a class="link" href="gst-plugins-base-libs-GstVideoDecoder.html#GstVideoDecoder" title="struct GstVideoDecoder"><span class="type">GstVideoDecoder</span></a></p></td>
-<td class="parameter_annotations"> </td>
-</tr></tbody>
-</table></div>
-</div>
 </div>
 <hr>
 <div class="refsect2">
 <a name="GST-VIDEO-DECODER-STREAM-LOCK:CAPS"></a><h3>GST_VIDEO_DECODER_STREAM_LOCK()</h3>
 <pre class="programlisting">#define GST_VIDEO_DECODER_STREAM_LOCK(decoder) g_rec_mutex_lock (&amp;GST_VIDEO_DECODER (decoder)-&gt;stream_lock)
 </pre>
-<p>Obtain a lock to protect the decoder function from concurrent access.</p>
-<div class="refsect3">
-<a name="GST-VIDEO-DECODER-STREAM-LOCK.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>decoder</p></td>
-<td class="parameter_description"><p>video decoder instance</p></td>
-<td class="parameter_annotations"> </td>
-</tr></tbody>
-</table></div>
-</div>
 </div>
 <hr>
 <div class="refsect2">
 <a name="GST-VIDEO-DECODER-STREAM-UNLOCK:CAPS"></a><h3>GST_VIDEO_DECODER_STREAM_UNLOCK()</h3>
 <pre class="programlisting">#define GST_VIDEO_DECODER_STREAM_UNLOCK(decoder) g_rec_mutex_unlock (&amp;GST_VIDEO_DECODER (decoder)-&gt;stream_lock)
 </pre>
-<p>Release the lock that protects the decoder function from concurrent access.</p>
-<div class="refsect3">
-<a name="GST-VIDEO-DECODER-STREAM-UNLOCK.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>decoder</p></td>
-<td class="parameter_description"><p>video decoder instance</p></td>
-<td class="parameter_annotations"> </td>
-</tr></tbody>
-</table></div>
-</div>
 </div>
 <hr>
 <div class="refsect2">
 <a name="GST-VIDEO-DECODER-INPUT-SEGMENT:CAPS"></a><h3>GST_VIDEO_DECODER_INPUT_SEGMENT()</h3>
 <pre class="programlisting">#define GST_VIDEO_DECODER_INPUT_SEGMENT(obj)     (GST_VIDEO_DECODER_CAST (obj)-&gt;input_segment)
 </pre>
-<p>Gives the segment of the element.</p>
-<div class="refsect3">
-<a name="GST-VIDEO-DECODER-INPUT-SEGMENT.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>obj</p></td>
-<td class="parameter_description"><p>base decoder instance</p></td>
-<td class="parameter_annotations"> </td>
-</tr></tbody>
-</table></div>
-</div>
 </div>
 <hr>
 <div class="refsect2">
 <a name="GST-VIDEO-DECODER-OUTPUT-SEGMENT:CAPS"></a><h3>GST_VIDEO_DECODER_OUTPUT_SEGMENT()</h3>
 <pre class="programlisting">#define GST_VIDEO_DECODER_OUTPUT_SEGMENT(obj)     (GST_VIDEO_DECODER_CAST (obj)-&gt;output_segment)
 </pre>
-<p>Gives the segment of the element.</p>
-<div class="refsect3">
-<a name="GST-VIDEO-DECODER-OUTPUT-SEGMENT.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>obj</p></td>
-<td class="parameter_description"><p>base decoder instance</p></td>
-<td class="parameter_annotations"> </td>
-</tr></tbody>
-</table></div>
-</div>
 </div>
 <hr>
 <div class="refsect2">
@@ -694,30 +410,6 @@
 <pre class="programlisting"><span class="returnvalue">void</span>
 gst_video_decoder_add_to_frame (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-GstVideoDecoder.html#GstVideoDecoder" title="struct GstVideoDecoder"><span class="type">GstVideoDecoder</span></a> *decoder</code></em>,
                                 <em class="parameter"><code><span class="type">int</span> n_bytes</code></em>);</pre>
-<p>Removes next <em class="parameter"><code>n_bytes</code></em>
- of input data and adds it to currently parsed frame.</p>
-<div class="refsect3">
-<a name="gst-video-decoder-add-to-frame.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>decoder</p></td>
-<td class="parameter_description"><p>a <a class="link" href="gst-plugins-base-libs-GstVideoDecoder.html#GstVideoDecoder" title="struct GstVideoDecoder"><span class="type">GstVideoDecoder</span></a></p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-<tr>
-<td class="parameter_name"><p>n_bytes</p></td>
-<td class="parameter_description"><p>the number of bytes to add</p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-</tbody>
-</table></div>
-</div>
 </div>
 <hr>
 <div class="refsect2">
@@ -725,32 +417,6 @@
 <pre class="programlisting"><a href="/usr/share/gtk-doc/html/gstreamer-1.0GstBuffer.html#GstBuffer-struct"><span class="returnvalue">GstBuffer</span></a> *
 gst_video_decoder_allocate_output_buffer
                                (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-GstVideoDecoder.html#GstVideoDecoder" title="struct GstVideoDecoder"><span class="type">GstVideoDecoder</span></a> *decoder</code></em>);</pre>
-<p>Helper function that allocates a buffer to hold a video frame for <em class="parameter"><code>decoder</code></em>
-'s
-current <a class="link" href="gst-plugins-base-libs-gstvideoutils.html#GstVideoCodecState" title="struct GstVideoCodecState"><span class="type">GstVideoCodecState</span></a>.</p>
-<p>You should use <a class="link" href="gst-plugins-base-libs-GstVideoDecoder.html#gst-video-decoder-allocate-output-frame" title="gst_video_decoder_allocate_output_frame ()"><code class="function">gst_video_decoder_allocate_output_frame()</code></a> instead of this
-function, if possible at all.</p>
-<div class="refsect3">
-<a name="gst-video-decoder-allocate-output-buffer.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>decoder</p></td>
-<td class="parameter_description"><p>a <a class="link" href="gst-plugins-base-libs-GstVideoDecoder.html#GstVideoDecoder" title="struct GstVideoDecoder"><span class="type">GstVideoDecoder</span></a></p></td>
-<td class="parameter_annotations"> </td>
-</tr></tbody>
-</table></div>
-</div>
-<div class="refsect3">
-<a name="gst-video-decoder-allocate-output-buffer.returns"></a><h4>Returns</h4>
-<p> allocated buffer, or NULL if no buffer could be
-allocated (e.g. when downstream is flushing or shutting down). </p>
-<p><span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>]</span></p>
-</div>
 </div>
 <hr>
 <div class="refsect2">
@@ -759,38 +425,6 @@
 gst_video_decoder_allocate_output_frame
                                (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-GstVideoDecoder.html#GstVideoDecoder" title="struct GstVideoDecoder"><span class="type">GstVideoDecoder</span></a> *decoder</code></em>,
                                 <em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstvideoutils.html#GstVideoCodecFrame" title="struct GstVideoCodecFrame"><span class="type">GstVideoCodecFrame</span></a> *frame</code></em>);</pre>
-<p>Helper function that allocates a buffer to hold a video frame for <em class="parameter"><code>decoder</code></em>
-'s
-current <a class="link" href="gst-plugins-base-libs-gstvideoutils.html#GstVideoCodecState" title="struct GstVideoCodecState"><span class="type">GstVideoCodecState</span></a>.  Subclass should already have configured video
-state and set src pad caps.</p>
-<p>The buffer allocated here is owned by the frame and you should only
-keep references to the frame, not the buffer.</p>
-<div class="refsect3">
-<a name="gst-video-decoder-allocate-output-frame.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>decoder</p></td>
-<td class="parameter_description"><p>a <a class="link" href="gst-plugins-base-libs-GstVideoDecoder.html#GstVideoDecoder" title="struct GstVideoDecoder"><span class="type">GstVideoDecoder</span></a></p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-<tr>
-<td class="parameter_name"><p>frame</p></td>
-<td class="parameter_description"><p>a <a class="link" href="gst-plugins-base-libs-gstvideoutils.html#GstVideoCodecFrame" title="struct GstVideoCodecFrame"><span class="type">GstVideoCodecFrame</span></a></p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-</tbody>
-</table></div>
-</div>
-<div class="refsect3">
-<a name="gst-video-decoder-allocate-output-frame.returns"></a><h4>Returns</h4>
-<p> <a href="/usr/share/gtk-doc/html/gstreamer-1.0GstPad.html#GST-FLOW-OK:CAPS"><code class="literal">GST_FLOW_OK</code></a> if an output buffer could be allocated</p>
-</div>
 </div>
 <hr>
 <div class="refsect2">
@@ -799,69 +433,12 @@
 gst_video_decoder_get_allocator (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-GstVideoDecoder.html#GstVideoDecoder" title="struct GstVideoDecoder"><span class="type">GstVideoDecoder</span></a> *decoder</code></em>,
                                  <em class="parameter"><code><a href="/usr/share/gtk-doc/html/gstreamer-1.0GstAllocator.html#GstAllocator-struct"><span class="type">GstAllocator</span></a> **allocator</code></em>,
                                  <em class="parameter"><code><a href="/usr/share/gtk-doc/html/gstreamer-1.0GstAllocator.html#GstAllocationParams-struct"><span class="type">GstAllocationParams</span></a> *params</code></em>);</pre>
-<p>Lets <a class="link" href="gst-plugins-base-libs-GstVideoDecoder.html#GstVideoDecoder" title="struct GstVideoDecoder"><span class="type">GstVideoDecoder</span></a> sub-classes to know the memory <em class="parameter"><code>allocator</code></em>
-
-used by the base class and its <em class="parameter"><code>params</code></em>
-.</p>
-<p>Unref the <em class="parameter"><code>allocator</code></em>
- after use it.</p>
-<div class="refsect3">
-<a name="gst-video-decoder-get-allocator.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>decoder</p></td>
-<td class="parameter_description"><p>a <a class="link" href="gst-plugins-base-libs-GstVideoDecoder.html#GstVideoDecoder" title="struct GstVideoDecoder"><span class="type">GstVideoDecoder</span></a></p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-<tr>
-<td class="parameter_name"><p>allocator</p></td>
-<td class="parameter_description"><p> the <a href="/usr/share/gtk-doc/html/gstreamer-1.0GstAllocator.html#GstAllocator-struct"><span class="type">GstAllocator</span></a>
-used. </p></td>
-<td class="parameter_annotations"><span class="annotation">[<acronym title="Parameter for returning results. Default is transfer full."><span class="acronym">out</span></acronym>][<acronym title="NULL is OK, both for passing and for returning."><span class="acronym">allow-none</span></acronym>][<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>]</span></td>
-</tr>
-<tr>
-<td class="parameter_name"><p>params</p></td>
-<td class="parameter_description"><p> the
-<span class="type">GstAllocatorParams</span> of <em class="parameter"><code>allocator</code></em>
-. </p></td>
-<td class="parameter_annotations"><span class="annotation">[<acronym title="Parameter for returning results. Default is transfer full."><span class="acronym">out</span></acronym>][<acronym title="NULL is OK, both for passing and for returning."><span class="acronym">allow-none</span></acronym>][<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>]</span></td>
-</tr>
-</tbody>
-</table></div>
-</div>
 </div>
 <hr>
 <div class="refsect2">
 <a name="gst-video-decoder-get-buffer-pool"></a><h3>gst_video_decoder_get_buffer_pool ()</h3>
 <pre class="programlisting"><a href="/usr/share/gtk-doc/html/gstreamer-1.0GstBufferPool.html#GstBufferPool-struct"><span class="returnvalue">GstBufferPool</span></a> *
 gst_video_decoder_get_buffer_pool (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-GstVideoDecoder.html#GstVideoDecoder" title="struct GstVideoDecoder"><span class="type">GstVideoDecoder</span></a> *decoder</code></em>);</pre>
-<div class="refsect3">
-<a name="gst-video-decoder-get-buffer-pool.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>decoder</p></td>
-<td class="parameter_description"><p>a <a class="link" href="gst-plugins-base-libs-GstVideoDecoder.html#GstVideoDecoder" title="struct GstVideoDecoder"><span class="type">GstVideoDecoder</span></a></p></td>
-<td class="parameter_annotations"> </td>
-</tr></tbody>
-</table></div>
-</div>
-<div class="refsect3">
-<a name="gst-video-decoder-get-buffer-pool.returns"></a><h4>Returns</h4>
-<p> the instance of the <a href="/usr/share/gtk-doc/html/gstreamer-1.0GstBufferPool.html#GstBufferPool-struct"><span class="type">GstBufferPool</span></a> used
-by the decoder; free it after use it. </p>
-<p><span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>]</span></p>
-</div>
 </div>
 <hr>
 <div class="refsect2">
@@ -869,36 +446,6 @@
 <pre class="programlisting"><a href="/usr/share/gtk-doc/html/gstreamer-1.0GstPad.html#GstFlowReturn"><span class="returnvalue">GstFlowReturn</span></a>
 gst_video_decoder_drop_frame (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-GstVideoDecoder.html#GstVideoDecoder" title="struct GstVideoDecoder"><span class="type">GstVideoDecoder</span></a> *dec</code></em>,
                               <em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstvideoutils.html#GstVideoCodecFrame" title="struct GstVideoCodecFrame"><span class="type">GstVideoCodecFrame</span></a> *frame</code></em>);</pre>
-<p>Similar to <a class="link" href="gst-plugins-base-libs-GstVideoDecoder.html#gst-video-decoder-finish-frame" title="gst_video_decoder_finish_frame ()"><code class="function">gst_video_decoder_finish_frame()</code></a>, but drops <em class="parameter"><code>frame</code></em>
- in any
-case and posts a QoS message with the frame's details on the bus.
-In any case, the frame is considered finished and released.</p>
-<div class="refsect3">
-<a name="gst-video-decoder-drop-frame.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>dec</p></td>
-<td class="parameter_description"><p>a <a class="link" href="gst-plugins-base-libs-GstVideoDecoder.html#GstVideoDecoder" title="struct GstVideoDecoder"><span class="type">GstVideoDecoder</span></a></p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-<tr>
-<td class="parameter_name"><p>frame</p></td>
-<td class="parameter_description"><p> the <a class="link" href="gst-plugins-base-libs-gstvideoutils.html#GstVideoCodecFrame" title="struct GstVideoCodecFrame"><span class="type">GstVideoCodecFrame</span></a> to drop. </p></td>
-<td class="parameter_annotations"><span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>]</span></td>
-</tr>
-</tbody>
-</table></div>
-</div>
-<div class="refsect3">
-<a name="gst-video-decoder-drop-frame.returns"></a><h4>Returns</h4>
-<p> a <a href="/usr/share/gtk-doc/html/gstreamer-1.0GstPad.html#GstFlowReturn"><span class="type">GstFlowReturn</span></a>, usually GST_FLOW_OK.</p>
-</div>
 </div>
 <hr>
 <div class="refsect2">
@@ -906,41 +453,6 @@
 <pre class="programlisting"><a href="/usr/share/gtk-doc/html/gstreamer-1.0GstPad.html#GstFlowReturn"><span class="returnvalue">GstFlowReturn</span></a>
 gst_video_decoder_finish_frame (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-GstVideoDecoder.html#GstVideoDecoder" title="struct GstVideoDecoder"><span class="type">GstVideoDecoder</span></a> *decoder</code></em>,
                                 <em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstvideoutils.html#GstVideoCodecFrame" title="struct GstVideoCodecFrame"><span class="type">GstVideoCodecFrame</span></a> *frame</code></em>);</pre>
-<p><em class="parameter"><code>frame</code></em>
- should have a valid decoded data buffer, whose metadata fields
-are then appropriately set according to frame data and pushed downstream.
-If no output data is provided, <em class="parameter"><code>frame</code></em>
- is considered skipped.
-In any case, the frame is considered finished and released.</p>
-<p>After calling this function the output buffer of the frame is to be
-considered read-only. This function will also change the metadata
-of the buffer.</p>
-<div class="refsect3">
-<a name="gst-video-decoder-finish-frame.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>decoder</p></td>
-<td class="parameter_description"><p>a <a class="link" href="gst-plugins-base-libs-GstVideoDecoder.html#GstVideoDecoder" title="struct GstVideoDecoder"><span class="type">GstVideoDecoder</span></a></p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-<tr>
-<td class="parameter_name"><p>frame</p></td>
-<td class="parameter_description"><p> a decoded <a class="link" href="gst-plugins-base-libs-gstvideoutils.html#GstVideoCodecFrame" title="struct GstVideoCodecFrame"><span class="type">GstVideoCodecFrame</span></a>. </p></td>
-<td class="parameter_annotations"><span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>]</span></td>
-</tr>
-</tbody>
-</table></div>
-</div>
-<div class="refsect3">
-<a name="gst-video-decoder-finish-frame.returns"></a><h4>Returns</h4>
-<p> a <a href="/usr/share/gtk-doc/html/gstreamer-1.0GstPad.html#GstFlowReturn"><span class="type">GstFlowReturn</span></a> resulting from sending data downstream</p>
-</div>
 </div>
 <hr>
 <div class="refsect2">
@@ -948,61 +460,12 @@
 <pre class="programlisting"><span class="returnvalue">void</span>
 gst_video_decoder_release_frame (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-GstVideoDecoder.html#GstVideoDecoder" title="struct GstVideoDecoder"><span class="type">GstVideoDecoder</span></a> *dec</code></em>,
                                  <em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstvideoutils.html#GstVideoCodecFrame" title="struct GstVideoCodecFrame"><span class="type">GstVideoCodecFrame</span></a> *frame</code></em>);</pre>
-<p>Similar to <a class="link" href="gst-plugins-base-libs-GstVideoDecoder.html#gst-video-decoder-drop-frame" title="gst_video_decoder_drop_frame ()"><code class="function">gst_video_decoder_drop_frame()</code></a>, but simply releases <em class="parameter"><code>frame</code></em>
-
-without any processing other than removing it from list of pending frames,
-after which it is considered finished and released.</p>
-<div class="refsect3">
-<a name="gst-video-decoder-release-frame.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>dec</p></td>
-<td class="parameter_description"><p>a <a class="link" href="gst-plugins-base-libs-GstVideoDecoder.html#GstVideoDecoder" title="struct GstVideoDecoder"><span class="type">GstVideoDecoder</span></a></p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-<tr>
-<td class="parameter_name"><p>frame</p></td>
-<td class="parameter_description"><p> the <a class="link" href="gst-plugins-base-libs-gstvideoutils.html#GstVideoCodecFrame" title="struct GstVideoCodecFrame"><span class="type">GstVideoCodecFrame</span></a> to release. </p></td>
-<td class="parameter_annotations"><span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>]</span></td>
-</tr>
-</tbody>
-</table></div>
-</div>
-<p class="since">Since: 1.2.2</p>
 </div>
 <hr>
 <div class="refsect2">
 <a name="gst-video-decoder-negotiate"></a><h3>gst_video_decoder_negotiate ()</h3>
 <pre class="programlisting"><a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
 gst_video_decoder_negotiate (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-GstVideoDecoder.html#GstVideoDecoder" title="struct GstVideoDecoder"><span class="type">GstVideoDecoder</span></a> *decoder</code></em>);</pre>
-<p>Negotiate with downstream elements to currently configured <a class="link" href="gst-plugins-base-libs-gstvideoutils.html#GstVideoCodecState" title="struct GstVideoCodecState"><span class="type">GstVideoCodecState</span></a>.
-Unmark GST_PAD_FLAG_NEED_RECONFIGURE in any case. But mark it again if
-negotiate fails.</p>
-<div class="refsect3">
-<a name="gst-video-decoder-negotiate.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>decoder</p></td>
-<td class="parameter_description"><p>a <a class="link" href="gst-plugins-base-libs-GstVideoDecoder.html#GstVideoDecoder" title="struct GstVideoDecoder"><span class="type">GstVideoDecoder</span></a></p></td>
-<td class="parameter_annotations"> </td>
-</tr></tbody>
-</table></div>
-</div>
-<div class="refsect3">
-<a name="gst-video-decoder-negotiate.returns"></a><h4>Returns</h4>
-<p> <a href="/usr/share/gtk-doc/html/glibglib-Standard-Macros.html#TRUE:CAPS"><span class="type">TRUE</span></a> if the negotiation succeeded, else <a href="/usr/share/gtk-doc/html/glibglib-Standard-Macros.html#FALSE:CAPS"><span class="type">FALSE</span></a>.</p>
-</div>
 </div>
 <hr>
 <div class="refsect2">
@@ -1010,62 +473,12 @@
 <pre class="programlisting"><a class="link" href="gst-plugins-base-libs-gstvideoutils.html#GstVideoCodecFrame" title="struct GstVideoCodecFrame"><span class="returnvalue">GstVideoCodecFrame</span></a> *
 gst_video_decoder_get_frame (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-GstVideoDecoder.html#GstVideoDecoder" title="struct GstVideoDecoder"><span class="type">GstVideoDecoder</span></a> *decoder</code></em>,
                              <em class="parameter"><code><span class="type">int</span> frame_number</code></em>);</pre>
-<p>Get a pending unfinished <a class="link" href="gst-plugins-base-libs-gstvideoutils.html#GstVideoCodecFrame" title="struct GstVideoCodecFrame"><span class="type">GstVideoCodecFrame</span></a></p>
-<div class="refsect3">
-<a name="gst-video-decoder-get-frame.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>decoder</p></td>
-<td class="parameter_description"><p>a <a class="link" href="gst-plugins-base-libs-GstVideoDecoder.html#GstVideoDecoder" title="struct GstVideoDecoder"><span class="type">GstVideoDecoder</span></a></p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-<tr>
-<td class="parameter_name"><p>frame_number</p></td>
-<td class="parameter_description"><p>system_frame_number of a frame</p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-</tbody>
-</table></div>
-</div>
-<div class="refsect3">
-<a name="gst-video-decoder-get-frame.returns"></a><h4>Returns</h4>
-<p> pending unfinished <a class="link" href="gst-plugins-base-libs-gstvideoutils.html#GstVideoCodecFrame" title="struct GstVideoCodecFrame"><span class="type">GstVideoCodecFrame</span></a> identified by <em class="parameter"><code>frame_number</code></em>
-. </p>
-<p><span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>]</span></p>
-</div>
 </div>
 <hr>
 <div class="refsect2">
 <a name="gst-video-decoder-get-frames"></a><h3>gst_video_decoder_get_frames ()</h3>
 <pre class="programlisting"><a href="/usr/share/gtk-doc/html/glibglib-Doubly-Linked-Lists.html#GList"><span class="returnvalue">GList</span></a> *
 gst_video_decoder_get_frames (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-GstVideoDecoder.html#GstVideoDecoder" title="struct GstVideoDecoder"><span class="type">GstVideoDecoder</span></a> *decoder</code></em>);</pre>
-<p>Get all pending unfinished <a class="link" href="gst-plugins-base-libs-gstvideoutils.html#GstVideoCodecFrame" title="struct GstVideoCodecFrame"><span class="type">GstVideoCodecFrame</span></a></p>
-<div class="refsect3">
-<a name="gst-video-decoder-get-frames.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>decoder</p></td>
-<td class="parameter_description"><p>a <a class="link" href="gst-plugins-base-libs-GstVideoDecoder.html#GstVideoDecoder" title="struct GstVideoDecoder"><span class="type">GstVideoDecoder</span></a></p></td>
-<td class="parameter_annotations"> </td>
-</tr></tbody>
-</table></div>
-</div>
-<div class="refsect3">
-<a name="gst-video-decoder-get-frames.returns"></a><h4>Returns</h4>
-<p> pending unfinished <a class="link" href="gst-plugins-base-libs-gstvideoutils.html#GstVideoCodecFrame" title="struct GstVideoCodecFrame"><span class="type">GstVideoCodecFrame</span></a>. </p>
-<p><span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>][<acronym title="Generics and defining elements of containers and arrays."><span class="acronym">element-type</span></acronym> GstVideoCodecFrame]</span></p>
-</div>
 </div>
 <hr>
 <div class="refsect2">
@@ -1073,116 +486,24 @@
 <pre class="programlisting"><a href="/usr/share/gtk-doc/html/gstreamer-1.0GstClock.html#GstClockTimeDiff"><span class="returnvalue">GstClockTimeDiff</span></a>
 gst_video_decoder_get_max_decode_time (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-GstVideoDecoder.html#GstVideoDecoder" title="struct GstVideoDecoder"><span class="type">GstVideoDecoder</span></a> *decoder</code></em>,
                                        <em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstvideoutils.html#GstVideoCodecFrame" title="struct GstVideoCodecFrame"><span class="type">GstVideoCodecFrame</span></a> *frame</code></em>);</pre>
-<p>Determines maximum possible decoding time for <em class="parameter"><code>frame</code></em>
- that will
-allow it to decode and arrive in time (as determined by QoS events).
-In particular, a negative result means decoding in time is no longer possible
-and should therefore occur as soon/skippy as possible.</p>
-<div class="refsect3">
-<a name="gst-video-decoder-get-max-decode-time.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>decoder</p></td>
-<td class="parameter_description"><p>a <a class="link" href="gst-plugins-base-libs-GstVideoDecoder.html#GstVideoDecoder" title="struct GstVideoDecoder"><span class="type">GstVideoDecoder</span></a></p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-<tr>
-<td class="parameter_name"><p>frame</p></td>
-<td class="parameter_description"><p>a <a class="link" href="gst-plugins-base-libs-gstvideoutils.html#GstVideoCodecFrame" title="struct GstVideoCodecFrame"><span class="type">GstVideoCodecFrame</span></a></p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-</tbody>
-</table></div>
-</div>
-<div class="refsect3">
-<a name="gst-video-decoder-get-max-decode-time.returns"></a><h4>Returns</h4>
-<p> max decoding time.</p>
-</div>
 </div>
 <hr>
 <div class="refsect2">
 <a name="gst-video-decoder-get-max-errors"></a><h3>gst_video_decoder_get_max_errors ()</h3>
 <pre class="programlisting"><a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#gint"><span class="returnvalue">gint</span></a>
 gst_video_decoder_get_max_errors (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-GstVideoDecoder.html#GstVideoDecoder" title="struct GstVideoDecoder"><span class="type">GstVideoDecoder</span></a> *dec</code></em>);</pre>
-<div class="refsect3">
-<a name="gst-video-decoder-get-max-errors.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>dec</p></td>
-<td class="parameter_description"><p>a <a class="link" href="gst-plugins-base-libs-GstVideoDecoder.html#GstVideoDecoder" title="struct GstVideoDecoder"><span class="type">GstVideoDecoder</span></a></p></td>
-<td class="parameter_annotations"> </td>
-</tr></tbody>
-</table></div>
-</div>
-<div class="refsect3">
-<a name="gst-video-decoder-get-max-errors.returns"></a><h4>Returns</h4>
-<p> currently configured decoder tolerated error count.</p>
-</div>
 </div>
 <hr>
 <div class="refsect2">
 <a name="gst-video-decoder-get-oldest-frame"></a><h3>gst_video_decoder_get_oldest_frame ()</h3>
 <pre class="programlisting"><a class="link" href="gst-plugins-base-libs-gstvideoutils.html#GstVideoCodecFrame" title="struct GstVideoCodecFrame"><span class="returnvalue">GstVideoCodecFrame</span></a> *
 gst_video_decoder_get_oldest_frame (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-GstVideoDecoder.html#GstVideoDecoder" title="struct GstVideoDecoder"><span class="type">GstVideoDecoder</span></a> *decoder</code></em>);</pre>
-<p>Get the oldest pending unfinished <a class="link" href="gst-plugins-base-libs-gstvideoutils.html#GstVideoCodecFrame" title="struct GstVideoCodecFrame"><span class="type">GstVideoCodecFrame</span></a></p>
-<div class="refsect3">
-<a name="gst-video-decoder-get-oldest-frame.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>decoder</p></td>
-<td class="parameter_description"><p>a <a class="link" href="gst-plugins-base-libs-GstVideoDecoder.html#GstVideoDecoder" title="struct GstVideoDecoder"><span class="type">GstVideoDecoder</span></a></p></td>
-<td class="parameter_annotations"> </td>
-</tr></tbody>
-</table></div>
-</div>
-<div class="refsect3">
-<a name="gst-video-decoder-get-oldest-frame.returns"></a><h4>Returns</h4>
-<p> oldest pending unfinished <a class="link" href="gst-plugins-base-libs-gstvideoutils.html#GstVideoCodecFrame" title="struct GstVideoCodecFrame"><span class="type">GstVideoCodecFrame</span></a>. </p>
-<p><span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>]</span></p>
-</div>
 </div>
 <hr>
 <div class="refsect2">
 <a name="gst-video-decoder-get-packetized"></a><h3>gst_video_decoder_get_packetized ()</h3>
 <pre class="programlisting"><a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
 gst_video_decoder_get_packetized (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-GstVideoDecoder.html#GstVideoDecoder" title="struct GstVideoDecoder"><span class="type">GstVideoDecoder</span></a> *decoder</code></em>);</pre>
-<p>Queries whether input data is considered packetized or not by the
-base class.</p>
-<div class="refsect3">
-<a name="gst-video-decoder-get-packetized.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>decoder</p></td>
-<td class="parameter_description"><p>a <a class="link" href="gst-plugins-base-libs-GstVideoDecoder.html#GstVideoDecoder" title="struct GstVideoDecoder"><span class="type">GstVideoDecoder</span></a></p></td>
-<td class="parameter_annotations"> </td>
-</tr></tbody>
-</table></div>
-</div>
-<div class="refsect3">
-<a name="gst-video-decoder-get-packetized.returns"></a><h4>Returns</h4>
-<p> TRUE if input data is considered packetized.</p>
-</div>
 </div>
 <hr>
 <div class="refsect2">
@@ -1190,83 +511,18 @@
 <pre class="programlisting"><a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#gsize"><span class="returnvalue">gsize</span></a>
 gst_video_decoder_get_pending_frame_size
                                (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-GstVideoDecoder.html#GstVideoDecoder" title="struct GstVideoDecoder"><span class="type">GstVideoDecoder</span></a> *decoder</code></em>);</pre>
-<p>Returns the number of bytes previously added to the current frame
-by calling <a class="link" href="gst-plugins-base-libs-GstVideoDecoder.html#gst-video-decoder-add-to-frame" title="gst_video_decoder_add_to_frame ()"><code class="function">gst_video_decoder_add_to_frame()</code></a>.</p>
-<div class="refsect3">
-<a name="gst-video-decoder-get-pending-frame-size.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>decoder</p></td>
-<td class="parameter_description"><p>a <a class="link" href="gst-plugins-base-libs-GstVideoDecoder.html#GstVideoDecoder" title="struct GstVideoDecoder"><span class="type">GstVideoDecoder</span></a></p></td>
-<td class="parameter_annotations"> </td>
-</tr></tbody>
-</table></div>
-</div>
-<div class="refsect3">
-<a name="gst-video-decoder-get-pending-frame-size.returns"></a><h4>Returns</h4>
-<p> The number of bytes pending for the current frame</p>
-</div>
-<p class="since">Since: 1.4</p>
 </div>
 <hr>
 <div class="refsect2">
 <a name="gst-video-decoder-get-qos-proportion"></a><h3>gst_video_decoder_get_qos_proportion ()</h3>
 <pre class="programlisting"><a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#gdouble"><span class="returnvalue">gdouble</span></a>
 gst_video_decoder_get_qos_proportion (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-GstVideoDecoder.html#GstVideoDecoder" title="struct GstVideoDecoder"><span class="type">GstVideoDecoder</span></a> *decoder</code></em>);</pre>
-<div class="refsect3">
-<a name="gst-video-decoder-get-qos-proportion.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>decoder</p></td>
-<td class="parameter_description"><p>a <a class="link" href="gst-plugins-base-libs-GstVideoDecoder.html#GstVideoDecoder" title="struct GstVideoDecoder"><span class="type">GstVideoDecoder</span></a>
-current QoS proportion, or <a href="/usr/share/gtk-doc/html/glibglib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a></p></td>
-<td class="parameter_annotations"> </td>
-</tr></tbody>
-</table></div>
-</div>
-<div class="refsect3">
-<a name="gst-video-decoder-get-qos-proportion.returns"></a><h4>Returns</h4>
-<p> The current QoS proportion.</p>
-</div>
-<p class="since">Since: 1.0.3</p>
 </div>
 <hr>
 <div class="refsect2">
 <a name="gst-video-decoder-have-frame"></a><h3>gst_video_decoder_have_frame ()</h3>
 <pre class="programlisting"><a href="/usr/share/gtk-doc/html/gstreamer-1.0GstPad.html#GstFlowReturn"><span class="returnvalue">GstFlowReturn</span></a>
 gst_video_decoder_have_frame (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-GstVideoDecoder.html#GstVideoDecoder" title="struct GstVideoDecoder"><span class="type">GstVideoDecoder</span></a> *decoder</code></em>);</pre>
-<p>Gathers all data collected for currently parsed frame, gathers corresponding
-metadata and passes it along for further processing, i.e. <em class="parameter"><code>handle_frame</code></em>
-.</p>
-<div class="refsect3">
-<a name="gst-video-decoder-have-frame.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>decoder</p></td>
-<td class="parameter_description"><p>a <a class="link" href="gst-plugins-base-libs-GstVideoDecoder.html#GstVideoDecoder" title="struct GstVideoDecoder"><span class="type">GstVideoDecoder</span></a></p></td>
-<td class="parameter_annotations"> </td>
-</tr></tbody>
-</table></div>
-</div>
-<div class="refsect3">
-<a name="gst-video-decoder-have-frame.returns"></a><h4>Returns</h4>
-<p> a <a href="/usr/share/gtk-doc/html/gstreamer-1.0GstPad.html#GstFlowReturn"><span class="type">GstFlowReturn</span></a></p>
-</div>
 </div>
 <hr>
 <div class="refsect2">
@@ -1275,39 +531,6 @@
 gst_video_decoder_get_latency (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-GstVideoDecoder.html#GstVideoDecoder" title="struct GstVideoDecoder"><span class="type">GstVideoDecoder</span></a> *decoder</code></em>,
                                <em class="parameter"><code><a href="/usr/share/gtk-doc/html/gstreamer-1.0GstClock.html#GstClockTime"><span class="type">GstClockTime</span></a> *min_latency</code></em>,
                                <em class="parameter"><code><a href="/usr/share/gtk-doc/html/gstreamer-1.0GstClock.html#GstClockTime"><span class="type">GstClockTime</span></a> *max_latency</code></em>);</pre>
-<p>Query the configured decoder latency. Results will be returned via
-<em class="parameter"><code>min_latency</code></em>
- and <em class="parameter"><code>max_latency</code></em>
-.</p>
-<div class="refsect3">
-<a name="gst-video-decoder-get-latency.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>decoder</p></td>
-<td class="parameter_description"><p>a <a class="link" href="gst-plugins-base-libs-GstVideoDecoder.html#GstVideoDecoder" title="struct GstVideoDecoder"><span class="type">GstVideoDecoder</span></a></p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-<tr>
-<td class="parameter_name"><p>min_latency</p></td>
-<td class="parameter_description"><p> address of variable in which to store the
-configured minimum latency, or <a href="/usr/share/gtk-doc/html/glibglib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a>. </p></td>
-<td class="parameter_annotations"><span class="annotation">[<acronym title="Parameter for returning results. Default is transfer full."><span class="acronym">out</span></acronym>][<acronym title="NULL is OK, both for passing and for returning."><span class="acronym">allow-none</span></acronym>]</span></td>
-</tr>
-<tr>
-<td class="parameter_name"><p>max_latency</p></td>
-<td class="parameter_description"><p> address of variable in which to store the
-configured mximum latency, or <a href="/usr/share/gtk-doc/html/glibglib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a>. </p></td>
-<td class="parameter_annotations"><span class="annotation">[<acronym title="Parameter for returning results. Default is transfer full."><span class="acronym">out</span></acronym>][<acronym title="NULL is OK, both for passing and for returning."><span class="acronym">allow-none</span></acronym>]</span></td>
-</tr>
-</tbody>
-</table></div>
-</div>
 </div>
 <hr>
 <div class="refsect2">
@@ -1316,88 +539,18 @@
 gst_video_decoder_set_latency (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-GstVideoDecoder.html#GstVideoDecoder" title="struct GstVideoDecoder"><span class="type">GstVideoDecoder</span></a> *decoder</code></em>,
                                <em class="parameter"><code><a href="/usr/share/gtk-doc/html/gstreamer-1.0GstClock.html#GstClockTime"><span class="type">GstClockTime</span></a> min_latency</code></em>,
                                <em class="parameter"><code><a href="/usr/share/gtk-doc/html/gstreamer-1.0GstClock.html#GstClockTime"><span class="type">GstClockTime</span></a> max_latency</code></em>);</pre>
-<p>Lets <a class="link" href="gst-plugins-base-libs-GstVideoDecoder.html#GstVideoDecoder" title="struct GstVideoDecoder"><span class="type">GstVideoDecoder</span></a> sub-classes tell the baseclass what the decoder
-latency is. Will also post a LATENCY message on the bus so the pipeline
-can reconfigure its global latency.</p>
-<div class="refsect3">
-<a name="gst-video-decoder-set-latency.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>decoder</p></td>
-<td class="parameter_description"><p>a <a class="link" href="gst-plugins-base-libs-GstVideoDecoder.html#GstVideoDecoder" title="struct GstVideoDecoder"><span class="type">GstVideoDecoder</span></a></p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-<tr>
-<td class="parameter_name"><p>min_latency</p></td>
-<td class="parameter_description"><p>minimum latency</p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-<tr>
-<td class="parameter_name"><p>max_latency</p></td>
-<td class="parameter_description"><p>maximum latency</p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-</tbody>
-</table></div>
-</div>
 </div>
 <hr>
 <div class="refsect2">
 <a name="gst-video-decoder-get-estimate-rate"></a><h3>gst_video_decoder_get_estimate_rate ()</h3>
 <pre class="programlisting"><a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#gint"><span class="returnvalue">gint</span></a>
 gst_video_decoder_get_estimate_rate (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-GstVideoDecoder.html#GstVideoDecoder" title="struct GstVideoDecoder"><span class="type">GstVideoDecoder</span></a> *dec</code></em>);</pre>
-<div class="refsect3">
-<a name="gst-video-decoder-get-estimate-rate.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>dec</p></td>
-<td class="parameter_description"><p>a <a class="link" href="gst-plugins-base-libs-GstVideoDecoder.html#GstVideoDecoder" title="struct GstVideoDecoder"><span class="type">GstVideoDecoder</span></a></p></td>
-<td class="parameter_annotations"> </td>
-</tr></tbody>
-</table></div>
-</div>
-<div class="refsect3">
-<a name="gst-video-decoder-get-estimate-rate.returns"></a><h4>Returns</h4>
-<p> currently configured byte to time conversion setting</p>
-</div>
 </div>
 <hr>
 <div class="refsect2">
 <a name="gst-video-decoder-get-output-state"></a><h3>gst_video_decoder_get_output_state ()</h3>
 <pre class="programlisting"><a class="link" href="gst-plugins-base-libs-gstvideoutils.html#GstVideoCodecState" title="struct GstVideoCodecState"><span class="returnvalue">GstVideoCodecState</span></a> *
 gst_video_decoder_get_output_state (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-GstVideoDecoder.html#GstVideoDecoder" title="struct GstVideoDecoder"><span class="type">GstVideoDecoder</span></a> *decoder</code></em>);</pre>
-<p>Get the <a class="link" href="gst-plugins-base-libs-gstvideoutils.html#GstVideoCodecState" title="struct GstVideoCodecState"><span class="type">GstVideoCodecState</span></a> currently describing the output stream.</p>
-<div class="refsect3">
-<a name="gst-video-decoder-get-output-state.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>decoder</p></td>
-<td class="parameter_description"><p>a <a class="link" href="gst-plugins-base-libs-GstVideoDecoder.html#GstVideoDecoder" title="struct GstVideoDecoder"><span class="type">GstVideoDecoder</span></a></p></td>
-<td class="parameter_annotations"> </td>
-</tr></tbody>
-</table></div>
-</div>
-<div class="refsect3">
-<a name="gst-video-decoder-get-output-state.returns"></a><h4>Returns</h4>
-<p> <a class="link" href="gst-plugins-base-libs-gstvideoutils.html#GstVideoCodecState" title="struct GstVideoCodecState"><span class="type">GstVideoCodecState</span></a> describing format of video data. </p>
-<p><span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>]</span></p>
-</div>
 </div>
 <hr>
 <div class="refsect2">
@@ -1405,29 +558,6 @@
 <pre class="programlisting"><span class="returnvalue">void</span>
 gst_video_decoder_set_estimate_rate (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-GstVideoDecoder.html#GstVideoDecoder" title="struct GstVideoDecoder"><span class="type">GstVideoDecoder</span></a> *dec</code></em>,
                                      <em class="parameter"><code><a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a> enabled</code></em>);</pre>
-<p>Allows baseclass to perform byte to time estimated conversion.</p>
-<div class="refsect3">
-<a name="gst-video-decoder-set-estimate-rate.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>dec</p></td>
-<td class="parameter_description"><p>a <a class="link" href="gst-plugins-base-libs-GstVideoDecoder.html#GstVideoDecoder" title="struct GstVideoDecoder"><span class="type">GstVideoDecoder</span></a></p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-<tr>
-<td class="parameter_name"><p>enabled</p></td>
-<td class="parameter_description"><p>whether to enable byte to time conversion</p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-</tbody>
-</table></div>
-</div>
 </div>
 <hr>
 <div class="refsect2">
@@ -1438,64 +568,6 @@
                                     <em class="parameter"><code><a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#guint"><span class="type">guint</span></a> width</code></em>,
                                     <em class="parameter"><code><a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#guint"><span class="type">guint</span></a> height</code></em>,
                                     <em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstvideoutils.html#GstVideoCodecState" title="struct GstVideoCodecState"><span class="type">GstVideoCodecState</span></a> *reference</code></em>);</pre>
-<p>Creates a new <a class="link" href="gst-plugins-base-libs-gstvideoutils.html#GstVideoCodecState" title="struct GstVideoCodecState"><span class="type">GstVideoCodecState</span></a> with the specified <em class="parameter"><code>fmt</code></em>
-, <em class="parameter"><code>width</code></em>
- and <em class="parameter"><code>height</code></em>
-
-as the output state for the decoder.
-Any previously set output state on <em class="parameter"><code>decoder</code></em>
- will be replaced by the newly
-created one.</p>
-<p>If the subclass wishes to copy over existing fields (like pixel aspec ratio,
-or framerate) from an existing <a class="link" href="gst-plugins-base-libs-gstvideoutils.html#GstVideoCodecState" title="struct GstVideoCodecState"><span class="type">GstVideoCodecState</span></a>, it can be provided as a
-<em class="parameter"><code>reference</code></em>
-.</p>
-<p>If the subclass wishes to override some fields from the output state (like
-pixel-aspect-ratio or framerate) it can do so on the returned <a class="link" href="gst-plugins-base-libs-gstvideoutils.html#GstVideoCodecState" title="struct GstVideoCodecState"><span class="type">GstVideoCodecState</span></a>.</p>
-<p>The new output state will only take effect (set on pads and buffers) starting
-from the next call to <a class="link" href="gst-plugins-base-libs-GstVideoDecoder.html#gst-video-decoder-finish-frame" title="gst_video_decoder_finish_frame ()"><code class="function">gst_video_decoder_finish_frame()</code></a>.</p>
-<div class="refsect3">
-<a name="gst-video-decoder-set-output-state.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>decoder</p></td>
-<td class="parameter_description"><p>a <a class="link" href="gst-plugins-base-libs-GstVideoDecoder.html#GstVideoDecoder" title="struct GstVideoDecoder"><span class="type">GstVideoDecoder</span></a></p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-<tr>
-<td class="parameter_name"><p>fmt</p></td>
-<td class="parameter_description"><p>a <a class="link" href="gst-plugins-base-libs-gstvideo.html#GstVideoFormat" title="enum GstVideoFormat"><span class="type">GstVideoFormat</span></a></p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-<tr>
-<td class="parameter_name"><p>width</p></td>
-<td class="parameter_description"><p>The width in pixels</p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-<tr>
-<td class="parameter_name"><p>height</p></td>
-<td class="parameter_description"><p>The height in pixels</p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-<tr>
-<td class="parameter_name"><p>reference</p></td>
-<td class="parameter_description"><p> An optional reference <a class="link" href="gst-plugins-base-libs-gstvideoutils.html#GstVideoCodecState" title="struct GstVideoCodecState"><span class="type">GstVideoCodecState</span></a>. </p></td>
-<td class="parameter_annotations"><span class="annotation">[<acronym title="NULL is OK, both for passing and for returning."><span class="acronym">allow-none</span></acronym>][<acronym title="Don't free data after the code is done."><span class="acronym">transfer none</span></acronym>]</span></td>
-</tr>
-</tbody>
-</table></div>
-</div>
-<div class="refsect3">
-<a name="gst-video-decoder-set-output-state.returns"></a><h4>Returns</h4>
-<p> the newly configured output state. </p>
-<p><span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>]</span></p>
-</div>
 </div>
 <hr>
 <div class="refsect2">
@@ -1503,33 +575,6 @@
 <pre class="programlisting"><span class="returnvalue">void</span>
 gst_video_decoder_set_max_errors (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-GstVideoDecoder.html#GstVideoDecoder" title="struct GstVideoDecoder"><span class="type">GstVideoDecoder</span></a> *dec</code></em>,
                                   <em class="parameter"><code><a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#gint"><span class="type">gint</span></a> num</code></em>);</pre>
-<p>Sets numbers of tolerated decoder errors, where a tolerated one is then only
-warned about, but more than tolerated will lead to fatal error.  You can set
--1 for never returning fatal errors. Default is set to
-GST_VIDEO_DECODER_MAX_ERRORS.</p>
-<p>The '-1' option was added in 1.4</p>
-<div class="refsect3">
-<a name="gst-video-decoder-set-max-errors.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>dec</p></td>
-<td class="parameter_description"><p>a <a class="link" href="gst-plugins-base-libs-GstVideoDecoder.html#GstVideoDecoder" title="struct GstVideoDecoder"><span class="type">GstVideoDecoder</span></a></p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-<tr>
-<td class="parameter_name"><p>num</p></td>
-<td class="parameter_description"><p>max tolerated errors</p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-</tbody>
-</table></div>
-</div>
 </div>
 <hr>
 <div class="refsect2">
@@ -1537,58 +582,12 @@
 <pre class="programlisting"><span class="returnvalue">void</span>
 gst_video_decoder_set_packetized (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-GstVideoDecoder.html#GstVideoDecoder" title="struct GstVideoDecoder"><span class="type">GstVideoDecoder</span></a> *decoder</code></em>,
                                   <em class="parameter"><code><a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a> packetized</code></em>);</pre>
-<p>Allows baseclass to consider input data as packetized or not. If the
-input is packetized, then the <em class="parameter"><code>parse</code></em>
- method will not be called.</p>
-<div class="refsect3">
-<a name="gst-video-decoder-set-packetized.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>decoder</p></td>
-<td class="parameter_description"><p>a <a class="link" href="gst-plugins-base-libs-GstVideoDecoder.html#GstVideoDecoder" title="struct GstVideoDecoder"><span class="type">GstVideoDecoder</span></a></p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-<tr>
-<td class="parameter_name"><p>packetized</p></td>
-<td class="parameter_description"><p>whether the input data should be considered as packetized.</p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-</tbody>
-</table></div>
-</div>
 </div>
 <hr>
 <div class="refsect2">
 <a name="gst-video-decoder-get-needs-format"></a><h3>gst_video_decoder_get_needs_format ()</h3>
 <pre class="programlisting"><a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
 gst_video_decoder_get_needs_format (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-GstVideoDecoder.html#GstVideoDecoder" title="struct GstVideoDecoder"><span class="type">GstVideoDecoder</span></a> *dec</code></em>);</pre>
-<p>Queries decoder required format handling.</p>
-<div class="refsect3">
-<a name="gst-video-decoder-get-needs-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>dec</p></td>
-<td class="parameter_description"><p>a <a class="link" href="gst-plugins-base-libs-GstVideoDecoder.html#GstVideoDecoder" title="struct GstVideoDecoder"><span class="type">GstVideoDecoder</span></a></p></td>
-<td class="parameter_annotations"> </td>
-</tr></tbody>
-</table></div>
-</div>
-<div class="refsect3">
-<a name="gst-video-decoder-get-needs-format.returns"></a><h4>Returns</h4>
-<p> <a href="/usr/share/gtk-doc/html/glibglib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a> if required format handling is enabled.</p>
-</div>
-<p class="since">Since: 1.4</p>
 </div>
 <hr>
 <div class="refsect2">
@@ -1596,35 +595,6 @@
 <pre class="programlisting"><span class="returnvalue">void</span>
 gst_video_decoder_set_needs_format (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-GstVideoDecoder.html#GstVideoDecoder" title="struct GstVideoDecoder"><span class="type">GstVideoDecoder</span></a> *dec</code></em>,
                                     <em class="parameter"><code><a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a> enabled</code></em>);</pre>
-<p>Configures decoder format needs.  If enabled, subclass needs to be
-negotiated with format caps before it can process any data.  It will then
-never be handed any data before it has been configured.
-Otherwise, it might be handed data without having been configured and
-is then expected being able to do so either by default
-or based on the input data.</p>
-<div class="refsect3">
-<a name="gst-video-decoder-set-needs-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>dec</p></td>
-<td class="parameter_description"><p>a <a class="link" href="gst-plugins-base-libs-GstVideoDecoder.html#GstVideoDecoder" title="struct GstVideoDecoder"><span class="type">GstVideoDecoder</span></a></p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-<tr>
-<td class="parameter_name"><p>enabled</p></td>
-<td class="parameter_description"><p>new state</p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-</tbody>
-</table></div>
-</div>
-<p class="since">Since: 1.4</p>
 </div>
 <hr>
 <div class="refsect2">
@@ -1633,40 +603,6 @@
 gst_video_decoder_merge_tags (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-GstVideoDecoder.html#GstVideoDecoder" title="struct GstVideoDecoder"><span class="type">GstVideoDecoder</span></a> *decoder</code></em>,
                               <em class="parameter"><code>const <a href="/usr/share/gtk-doc/html/gstreamer-1.0GstTagList.html#GstTagList-struct"><span class="type">GstTagList</span></a> *tags</code></em>,
                               <em class="parameter"><code><a href="/usr/share/gtk-doc/html/gstreamer-1.0GstTagList.html#GstTagMergeMode"><span class="type">GstTagMergeMode</span></a> mode</code></em>);</pre>
-<p>Sets the audio decoder tags and how they should be merged with any
-upstream stream tags. This will override any tags previously-set
-with <a class="link" href="gst-plugins-base-libs-gstaudiodecoder.html#gst-audio-decoder-merge-tags" title="gst_audio_decoder_merge_tags ()"><code class="function">gst_audio_decoder_merge_tags()</code></a>.</p>
-<p>Note that this is provided for convenience, and the subclass is
-not required to use this and can still do tag handling on its own.</p>
-<p>MT safe.</p>
-<div class="refsect3">
-<a name="gst-video-decoder-merge-tags.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>decoder</p></td>
-<td class="parameter_description"><p>a <a class="link" href="gst-plugins-base-libs-GstVideoDecoder.html#GstVideoDecoder" title="struct GstVideoDecoder"><span class="type">GstVideoDecoder</span></a></p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-<tr>
-<td class="parameter_name"><p>tags</p></td>
-<td class="parameter_description"><p> a <a href="/usr/share/gtk-doc/html/gstreamer-1.0GstTagList.html#GstTagList-struct"><span class="type">GstTagList</span></a> to merge, or NULL to unset
-previously-set tags. </p></td>
-<td class="parameter_annotations"><span class="annotation">[<acronym title="NULL is OK, both for passing and for returning."><span class="acronym">allow-none</span></acronym>]</span></td>
-</tr>
-<tr>
-<td class="parameter_name"><p>mode</p></td>
-<td class="parameter_description"><p>the <a href="/usr/share/gtk-doc/html/gstreamer-1.0GstTagList.html#GstTagMergeMode"><span class="type">GstTagMergeMode</span></a> to use, usually <a href="/usr/share/gtk-doc/html/gstreamer-1.0GstTagList.html#GST-TAG-MERGE-REPLACE:CAPS"><span class="type">GST_TAG_MERGE_REPLACE</span></a></p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-</tbody>
-</table></div>
-</div>
 </div>
 <hr>
 <div class="refsect2">
@@ -1675,44 +611,6 @@
 gst_video_decoder_proxy_getcaps (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-GstVideoDecoder.html#GstVideoDecoder" title="struct GstVideoDecoder"><span class="type">GstVideoDecoder</span></a> *decoder</code></em>,
                                  <em class="parameter"><code><a href="/usr/share/gtk-doc/html/gstreamer-1.0GstCaps.html#GstCaps-struct"><span class="type">GstCaps</span></a> *caps</code></em>,
                                  <em class="parameter"><code><a href="/usr/share/gtk-doc/html/gstreamer-1.0GstCaps.html#GstCaps-struct"><span class="type">GstCaps</span></a> *filter</code></em>);</pre>
-<p>Returns caps that express <em class="parameter"><code>caps</code></em>
- (or sink template caps if <em class="parameter"><code>caps</code></em>
- == NULL)
-restricted to resolution/format/... combinations supported by downstream
-elements.</p>
-<div class="refsect3">
-<a name="gst-video-decoder-proxy-getcaps.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>decoder</p></td>
-<td class="parameter_description"><p>a <a class="link" href="gst-plugins-base-libs-GstVideoDecoder.html#GstVideoDecoder" title="struct GstVideoDecoder"><span class="type">GstVideoDecoder</span></a></p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-<tr>
-<td class="parameter_name"><p>caps</p></td>
-<td class="parameter_description"><p> initial caps. </p></td>
-<td class="parameter_annotations"><span class="annotation">[<acronym title="NULL is OK, both for passing and for returning."><span class="acronym">allow-none</span></acronym>]</span></td>
-</tr>
-<tr>
-<td class="parameter_name"><p>filter</p></td>
-<td class="parameter_description"><p> filter caps. </p></td>
-<td class="parameter_annotations"><span class="annotation">[<acronym title="NULL is OK, both for passing and for returning."><span class="acronym">allow-none</span></acronym>]</span></td>
-</tr>
-</tbody>
-</table></div>
-</div>
-<div class="refsect3">
-<a name="gst-video-decoder-proxy-getcaps.returns"></a><h4>Returns</h4>
-<p> a <a href="/usr/share/gtk-doc/html/gstreamer-1.0GstCaps.html#GstCaps-struct"><span class="type">GstCaps</span></a> owned by caller. </p>
-<p><span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>]</span></p>
-</div>
-<p class="since">Since: 1.6</p>
 </div>
 </div>
 <div class="refsect1">
@@ -1721,28 +619,24 @@
 <a name="GST-VIDEO-DECODER-FLOW-NEED-DATA:CAPS"></a><h3>GST_VIDEO_DECODER_FLOW_NEED_DATA</h3>
 <pre class="programlisting">#define GST_VIDEO_DECODER_FLOW_NEED_DATA GST_FLOW_CUSTOM_SUCCESS
 </pre>
-<p>Returned while parsing to indicate more data is needed.</p>
 </div>
 <hr>
 <div class="refsect2">
 <a name="GST-VIDEO-DECODER-MAX-ERRORS:CAPS"></a><h3>GST_VIDEO_DECODER_MAX_ERRORS</h3>
 <pre class="programlisting">#define GST_VIDEO_DECODER_MAX_ERRORS     10
 </pre>
-<p>Default maximum number of errors tolerated before signaling error.</p>
 </div>
 <hr>
 <div class="refsect2">
 <a name="GST-VIDEO-DECODER-SINK-NAME:CAPS"></a><h3>GST_VIDEO_DECODER_SINK_NAME</h3>
 <pre class="programlisting">#define GST_VIDEO_DECODER_SINK_NAME    "sink"
 </pre>
-<p>The name of the templates for the sink pad.</p>
 </div>
 <hr>
 <div class="refsect2">
 <a name="GST-VIDEO-DECODER-SRC-NAME:CAPS"></a><h3>GST_VIDEO_DECODER_SRC_NAME</h3>
 <pre class="programlisting">#define GST_VIDEO_DECODER_SRC_NAME     "src"
 </pre>
-<p>The name of the templates for the source pad.</p>
 </div>
 <hr>
 <div class="refsect2">
@@ -1750,7 +644,6 @@
 <pre class="programlisting">struct GstVideoDecoder {
 };
 </pre>
-<p>The opaque <a class="link" href="gst-plugins-base-libs-GstVideoDecoder.html#GstVideoDecoder" title="struct GstVideoDecoder"><span class="type">GstVideoDecoder</span></a> data structure.</p>
 </div>
 <hr>
 <div class="refsect2">
@@ -1810,182 +703,6 @@
                                    GstMeta * meta);
 };
 </pre>
-<p>Subclasses can override any of the available virtual methods or not, as
-needed. At minimum <em class="parameter"><code>handle_frame</code></em>
- needs to be overridden, and <em class="parameter"><code>set_format</code></em>
-
-and likely as well.  If non-packetized input is supported or expected,
-<em class="parameter"><code>parse</code></em>
- needs to be overridden as well.</p>
-<div class="refsect3">
-<a name="GstVideoDecoderClass.members"></a><h4>Members</h4>
-<div class="informaltable"><table class="informaltable" width="100%" border="0">
-<colgroup>
-<col width="300px" class="struct_members_name">
-<col class="struct_members_description">
-<col width="200px" class="struct_members_annotations">
-</colgroup>
-<tbody>
-<tr>
-<td class="struct_member_name"><p><em class="structfield"><code><a name="GstVideoDecoderClass.open"></a>open</code></em> ()</p></td>
-<td class="struct_member_description"><p>Optional.
-Called when the element changes to GST_STATE_READY.
-Allows opening external resources.</p></td>
-<td class="struct_member_annotations"> </td>
-</tr>
-<tr>
-<td class="struct_member_name"><p><em class="structfield"><code><a name="GstVideoDecoderClass.close"></a>close</code></em> ()</p></td>
-<td class="struct_member_description"><p>Optional.
-Called when the element changes to GST_STATE_NULL.
-Allows closing external resources.</p></td>
-<td class="struct_member_annotations"> </td>
-</tr>
-<tr>
-<td class="struct_member_name"><p><em class="structfield"><code><a name="GstVideoDecoderClass.start"></a>start</code></em> ()</p></td>
-<td class="struct_member_description"><p>Optional.
-Called when the element starts processing.
-Allows opening external resources.</p></td>
-<td class="struct_member_annotations"> </td>
-</tr>
-<tr>
-<td class="struct_member_name"><p><em class="structfield"><code><a name="GstVideoDecoderClass.stop"></a>stop</code></em> ()</p></td>
-<td class="struct_member_description"><p>Optional.
-Called when the element stops processing.
-Allows closing external resources.</p></td>
-<td class="struct_member_annotations"> </td>
-</tr>
-<tr>
-<td class="struct_member_name"><p><em class="structfield"><code><a name="GstVideoDecoderClass.parse"></a>parse</code></em> ()</p></td>
-<td class="struct_member_description"><p>Required for non-packetized input.
-Allows chopping incoming data into manageable units (frames)
-for subsequent decoding.</p></td>
-<td class="struct_member_annotations"> </td>
-</tr>
-<tr>
-<td class="struct_member_name"><p><em class="structfield"><code><a name="GstVideoDecoderClass.set-format"></a>set_format</code></em> ()</p></td>
-<td class="struct_member_description"><p>Notifies subclass of incoming data format (caps).</p></td>
-<td class="struct_member_annotations"> </td>
-</tr>
-<tr>
-<td class="struct_member_name"><p><em class="structfield"><code><a name="GstVideoDecoderClass.reset"></a>reset</code></em> ()</p></td>
-<td class="struct_member_description"><p>Optional.
-Allows subclass (decoder) to perform post-seek semantics reset.
-Deprecated.</p></td>
-<td class="struct_member_annotations"> </td>
-</tr>
-<tr>
-<td class="struct_member_name"><p><em class="structfield"><code><a name="GstVideoDecoderClass.finish"></a>finish</code></em> ()</p></td>
-<td class="struct_member_description"><p>Optional.
-Called to request subclass to dispatch any pending remaining
-data at EOS. Sub-classes can refuse to decode new data after.</p></td>
-<td class="struct_member_annotations"> </td>
-</tr>
-<tr>
-<td class="struct_member_name"><p><em class="structfield"><code><a name="GstVideoDecoderClass.handle-frame"></a>handle_frame</code></em> ()</p></td>
-<td class="struct_member_description"><p>Provides input data frame to subclass.</p></td>
-<td class="struct_member_annotations"> </td>
-</tr>
-<tr>
-<td class="struct_member_name"><p><em class="structfield"><code><a name="GstVideoDecoderClass.sink-event"></a>sink_event</code></em> ()</p></td>
-<td class="struct_member_description"><p>Optional.
-Event handler on the sink pad. This function should return
-TRUE if the event was handled and should be discarded
-(i.e. not unref'ed).
-Subclasses should chain up to the parent implementation to
-invoke the default handler.</p></td>
-<td class="struct_member_annotations"> </td>
-</tr>
-<tr>
-<td class="struct_member_name"><p><em class="structfield"><code><a name="GstVideoDecoderClass.src-event"></a>src_event</code></em> ()</p></td>
-<td class="struct_member_description"><p>Optional.
-Event handler on the source pad. This function should return
-TRUE if the event was handled and should be discarded
-(i.e. not unref'ed).
-Subclasses should chain up to the parent implementation to
-invoke the default handler.</p></td>
-<td class="struct_member_annotations"> </td>
-</tr>
-<tr>
-<td class="struct_member_name"><p><em class="structfield"><code><a name="GstVideoDecoderClass.negotiate"></a>negotiate</code></em> ()</p></td>
-<td class="struct_member_description"><p>Optional.
-Negotiate with downstream and configure buffer pools, etc.
-Subclasses should chain up to the parent implementation to
-invoke the default handler.</p></td>
-<td class="struct_member_annotations"> </td>
-</tr>
-<tr>
-<td class="struct_member_name"><p><em class="structfield"><code><a name="GstVideoDecoderClass.decide-allocation"></a>decide_allocation</code></em> ()</p></td>
-<td class="struct_member_description"><p>Optional.
-Setup the allocation parameters for allocating output
-buffers. The passed in query contains the result of the
-downstream allocation query.
-Subclasses should chain up to the parent implementation to
-invoke the default handler.</p></td>
-<td class="struct_member_annotations"> </td>
-</tr>
-<tr>
-<td class="struct_member_name"><p><em class="structfield"><code><a name="GstVideoDecoderClass.propose-allocation"></a>propose_allocation</code></em> ()</p></td>
-<td class="struct_member_description"><p>Optional.
-Propose buffer allocation parameters for upstream elements.
-Subclasses should chain up to the parent implementation to
-invoke the default handler.</p></td>
-<td class="struct_member_annotations"> </td>
-</tr>
-<tr>
-<td class="struct_member_name"><p><em class="structfield"><code><a name="GstVideoDecoderClass.flush"></a>flush</code></em> ()</p></td>
-<td class="struct_member_description"><p>Optional.
-Flush all remaining data from the decoder without
-pushing it downstream. Since: 1.2</p></td>
-<td class="struct_member_annotations"> </td>
-</tr>
-<tr>
-<td class="struct_member_name"><p><em class="structfield"><code><a name="GstVideoDecoderClass.sink-query"></a>sink_query</code></em> ()</p></td>
-<td class="struct_member_description"><p>Optional.
-Query handler on the sink pad. This function should
-return TRUE if the query could be performed. Subclasses
-should chain up to the parent implementation to invoke the
-default handler. Since 1.4</p></td>
-<td class="struct_member_annotations"> </td>
-</tr>
-<tr>
-<td class="struct_member_name"><p><em class="structfield"><code><a name="GstVideoDecoderClass.src-query"></a>src_query</code></em> ()</p></td>
-<td class="struct_member_description"><p>Optional.
-Query handler on the source pad. This function should
-return TRUE if the query could be performed. Subclasses
-should chain up to the parent implementation to invoke the
-default handler. Since 1.4</p></td>
-<td class="struct_member_annotations"> </td>
-</tr>
-<tr>
-<td class="struct_member_name"><p><em class="structfield"><code><a name="GstVideoDecoderClass.getcaps"></a>getcaps</code></em> ()</p></td>
-<td class="struct_member_description"><p>Optional.
-Allows for a custom sink getcaps implementation.
-If not implemented, default returns
-gst_video_decoder_proxy_getcaps
-applied to sink template caps.</p></td>
-<td class="struct_member_annotations"> </td>
-</tr>
-<tr>
-<td class="struct_member_name"><p><em class="structfield"><code><a name="GstVideoDecoderClass.drain"></a>drain</code></em> ()</p></td>
-<td class="struct_member_description"><p>Optional.
-Called to request subclass to decode any data it can at this
-point, but that more data may arrive after. (e.g. at segment end).
-Sub-classes should be prepared to handle new data afterward,
-or seamless segment processing will break. Since: 1.6</p></td>
-<td class="struct_member_annotations"> </td>
-</tr>
-<tr>
-<td class="struct_member_name"><p><em class="structfield"><code><a name="GstVideoDecoderClass.transform-meta"></a>transform_meta</code></em> ()</p></td>
-<td class="struct_member_description"><p>Optional. Transform the metadata on the input buffer to the
-output buffer. By default this method is copies all meta without
-tags and meta with only the "video" tag. subclasses can
-implement this method and return <a href="/usr/share/gtk-doc/html/glibglib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a> if the metadata is to be
-copied. Since 1.6</p></td>
-<td class="struct_member_annotations"> </td>
-</tr>
-</tbody>
-</table></div>
-</div>
 </div>
 </div>
 </div>
diff --git a/docs/libs/html/gst-plugins-base-libs-GstVideoDither.html b/docs/libs/html/gst-plugins-base-libs-GstVideoDither.html
index c4fe29c..741d3e7 100644
--- a/docs/libs/html/gst-plugins-base-libs-GstVideoDither.html
+++ b/docs/libs/html/gst-plugins-base-libs-GstVideoDither.html
@@ -27,7 +27,7 @@
 <div class="refnamediv"><table width="100%"><tr>
 <td valign="top">
 <h2><span class="refentrytitle"><a name="gst-plugins-base-libs-GstVideoDither.top_of_page"></a>GstVideoDither</span></h2>
-<p>GstVideoDither — Utility object for dithering and quantizing lines of video</p>
+<p>GstVideoDither</p>
 </td>
 <td class="gallery_image" valign="top" align="right"></td>
 </tr></table></div>
@@ -96,8 +96,6 @@
 </div>
 <div class="refsect1">
 <a name="gst-plugins-base-libs-GstVideoDither.description"></a><h2>Description</h2>
-<p>GstVideoDither provides implementations of several dithering algorithms
-that can be applied to lines of video pixels to quantize and dither them.</p>
 </div>
 <div class="refsect1">
 <a name="gst-plugins-base-libs-GstVideoDither.functions_details"></a><h2>Functions</h2>
@@ -105,23 +103,6 @@
 <a name="gst-video-dither-free"></a><h3>gst_video_dither_free ()</h3>
 <pre class="programlisting"><span class="returnvalue">void</span>
 gst_video_dither_free (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-GstVideoDither.html#GstVideoDither" title="GstVideoDither"><span class="type">GstVideoDither</span></a> *dither</code></em>);</pre>
-<p>Free <em class="parameter"><code>dither</code></em>
-</p>
-<div class="refsect3">
-<a name="gst-video-dither-free.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>dither</p></td>
-<td class="parameter_description"><p>a <a class="link" href="gst-plugins-base-libs-GstVideoDither.html#GstVideoDither" title="GstVideoDither"><span class="type">GstVideoDither</span></a></p></td>
-<td class="parameter_annotations"> </td>
-</tr></tbody>
-</table></div>
-</div>
 </div>
 <hr>
 <div class="refsect2">
@@ -132,51 +113,6 @@
                        <em class="parameter"><code><a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#guint"><span class="type">guint</span></a> x</code></em>,
                        <em class="parameter"><code><a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#guint"><span class="type">guint</span></a> y</code></em>,
                        <em class="parameter"><code><a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#guint"><span class="type">guint</span></a> width</code></em>);</pre>
-<p>Dither <em class="parameter"><code>width</code></em>
- pixels starting from offset <em class="parameter"><code>x</code></em>
- in <em class="parameter"><code>line</code></em>
- using <em class="parameter"><code>dither</code></em>
-.</p>
-<p><em class="parameter"><code>y</code></em>
- is the line number of <em class="parameter"><code>line</code></em>
- in the output image.</p>
-<div class="refsect3">
-<a name="gst-video-dither-line.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>dither</p></td>
-<td class="parameter_description"><p>a <a class="link" href="gst-plugins-base-libs-GstVideoDither.html#GstVideoDither" title="GstVideoDither"><span class="type">GstVideoDither</span></a></p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-<tr>
-<td class="parameter_name"><p>line</p></td>
-<td class="parameter_description"><p>pointer to the pixels of the line</p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-<tr>
-<td class="parameter_name"><p>x</p></td>
-<td class="parameter_description"><p>x coordinate</p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-<tr>
-<td class="parameter_name"><p>y</p></td>
-<td class="parameter_description"><p>y coordinate</p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-<tr>
-<td class="parameter_name"><p>width</p></td>
-<td class="parameter_description"><p>the width</p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-</tbody>
-</table></div>
-</div>
 </div>
 <hr>
 <div class="refsect2">
@@ -187,58 +123,6 @@
                       <em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstvideo.html#GstVideoFormat" title="enum GstVideoFormat"><span class="type">GstVideoFormat</span></a> format</code></em>,
                       <em class="parameter"><code><a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#guint"><span class="type">guint</span></a> quantizer[GST_VIDEO_MAX_COMPONENTS]</code></em>,
                       <em class="parameter"><code><a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#guint"><span class="type">guint</span></a> width</code></em>);</pre>
-<p>Make a new dither object for dithering lines of <em class="parameter"><code>format</code></em>
- using the
-algorithm described by <em class="parameter"><code>method</code></em>
-.</p>
-<p>Each component will be quantized to a multiple of <em class="parameter"><code>quantizer</code></em>
-. Better
-performance is achived when <em class="parameter"><code>quantizer</code></em>
- is a power of 2.</p>
-<p><em class="parameter"><code>width</code></em>
- is the width of the lines that this ditherer will handle.</p>
-<p><span class="annotation">[<acronym title="Exposed in C code, not necessarily available in other languages."><span class="acronym">skip</span></acronym>]</span></p>
-<div class="refsect3">
-<a name="gst-video-dither-new.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>method</p></td>
-<td class="parameter_description"><p>a <a class="link" href="gst-plugins-base-libs-GstVideoDither.html#GstVideoDitherMethod" title="enum GstVideoDitherMethod"><span class="type">GstVideoDitherMethod</span></a></p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-<tr>
-<td class="parameter_name"><p>flags</p></td>
-<td class="parameter_description"><p>a <a class="link" href="gst-plugins-base-libs-GstVideoDither.html#GstVideoDitherFlags" title="enum GstVideoDitherFlags"><span class="type">GstVideoDitherFlags</span></a></p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-<tr>
-<td class="parameter_name"><p>format</p></td>
-<td class="parameter_description"><p>a <a class="link" href="gst-plugins-base-libs-gstvideo.html#GstVideoFormat" title="enum GstVideoFormat"><span class="type">GstVideoFormat</span></a></p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-<tr>
-<td class="parameter_name"><p>quantizer</p></td>
-<td class="parameter_description"><p>quantizer</p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-<tr>
-<td class="parameter_name"><p>width</p></td>
-<td class="parameter_description"><p>the width of the lines</p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-</tbody>
-</table></div>
-</div>
-<div class="refsect3">
-<a name="gst-video-dither-new.returns"></a><h4>Returns</h4>
-<p> a new <a class="link" href="gst-plugins-base-libs-GstVideoDither.html#GstVideoDither" title="GstVideoDither"><span class="type">GstVideoDither</span></a></p>
-</div>
 </div>
 </div>
 <div class="refsect1">
@@ -250,7 +134,6 @@
 <hr>
 <div class="refsect2">
 <a name="GstVideoDitherFlags"></a><h3>enum GstVideoDitherFlags</h3>
-<p>Extra flags that influence the result from <a class="link" href="gst-plugins-base-libs-GstVideoChroma.html#gst-video-chroma-resample-new" title="gst_video_chroma_resample_new ()"><code class="function">gst_video_chroma_resample_new()</code></a>.</p>
 <div class="refsect3">
 <a name="GstVideoDitherFlags.members"></a><h4>Members</h4>
 <div class="informaltable"><table class="informaltable" width="100%" border="0">
@@ -262,24 +145,18 @@
 <tbody>
 <tr>
 <td class="enum_member_name"><p><a name="GST-VIDEO-DITHER-FLAG-NONE:CAPS"></a>GST_VIDEO_DITHER_FLAG_NONE</p></td>
-<td class="enum_member_description">
-<p>no flags</p>
-</td>
-<td class="enum_member_annotations"> </td>
+<td> </td>
+<td> </td>
 </tr>
 <tr>
 <td class="enum_member_name"><p><a name="GST-VIDEO-DITHER-FLAG-INTERLACED:CAPS"></a>GST_VIDEO_DITHER_FLAG_INTERLACED</p></td>
-<td class="enum_member_description">
-<p>the input is interlaced</p>
-</td>
-<td class="enum_member_annotations"> </td>
+<td> </td>
+<td> </td>
 </tr>
 <tr>
 <td class="enum_member_name"><p><a name="GST-VIDEO-DITHER-FLAG-QUANTIZE:CAPS"></a>GST_VIDEO_DITHER_FLAG_QUANTIZE</p></td>
-<td class="enum_member_description">
-<p>quantize values in addition to adding dither.</p>
-</td>
-<td class="enum_member_annotations"> </td>
+<td> </td>
+<td> </td>
 </tr>
 </tbody>
 </table></div>
@@ -288,7 +165,6 @@
 <hr>
 <div class="refsect2">
 <a name="GstVideoDitherMethod"></a><h3>enum GstVideoDitherMethod</h3>
-<p>Different dithering methods to use.</p>
 <div class="refsect3">
 <a name="GstVideoDitherMethod.members"></a><h4>Members</h4>
 <div class="informaltable"><table class="informaltable" width="100%" border="0">
@@ -300,38 +176,28 @@
 <tbody>
 <tr>
 <td class="enum_member_name"><p><a name="GST-VIDEO-DITHER-NONE:CAPS"></a>GST_VIDEO_DITHER_NONE</p></td>
-<td class="enum_member_description">
-<p>no dithering</p>
-</td>
-<td class="enum_member_annotations"> </td>
+<td> </td>
+<td> </td>
 </tr>
 <tr>
 <td class="enum_member_name"><p><a name="GST-VIDEO-DITHER-VERTERR:CAPS"></a>GST_VIDEO_DITHER_VERTERR</p></td>
-<td class="enum_member_description">
-<p>propagate rounding errors downwards</p>
-</td>
-<td class="enum_member_annotations"> </td>
+<td> </td>
+<td> </td>
 </tr>
 <tr>
 <td class="enum_member_name"><p><a name="GST-VIDEO-DITHER-FLOYD-STEINBERG:CAPS"></a>GST_VIDEO_DITHER_FLOYD_STEINBERG</p></td>
-<td class="enum_member_description">
-<p>Dither with floyd-steinberg error diffusion</p>
-</td>
-<td class="enum_member_annotations"> </td>
+<td> </td>
+<td> </td>
 </tr>
 <tr>
 <td class="enum_member_name"><p><a name="GST-VIDEO-DITHER-SIERRA-LITE:CAPS"></a>GST_VIDEO_DITHER_SIERRA_LITE</p></td>
-<td class="enum_member_description">
-<p>Dither with Sierra Lite error diffusion</p>
-</td>
-<td class="enum_member_annotations"> </td>
+<td> </td>
+<td> </td>
 </tr>
 <tr>
 <td class="enum_member_name"><p><a name="GST-VIDEO-DITHER-BAYER:CAPS"></a>GST_VIDEO_DITHER_BAYER</p></td>
-<td class="enum_member_description">
-<p>ordered dither using a bayer pattern</p>
-</td>
-<td class="enum_member_annotations"> </td>
+<td> </td>
+<td> </td>
 </tr>
 </tbody>
 </table></div>
diff --git a/docs/libs/html/gst-plugins-base-libs-GstVideoEncoder.html b/docs/libs/html/gst-plugins-base-libs-GstVideoEncoder.html
index eb1f085..b8b3e8b 100644
--- a/docs/libs/html/gst-plugins-base-libs-GstVideoEncoder.html
+++ b/docs/libs/html/gst-plugins-base-libs-GstVideoEncoder.html
@@ -27,7 +27,7 @@
 <div class="refnamediv"><table width="100%"><tr>
 <td valign="top">
 <h2><span class="refentrytitle"><a name="gst-plugins-base-libs-GstVideoEncoder.top_of_page"></a>GstVideoEncoder</span></h2>
-<p>GstVideoEncoder — Base class for video encoders</p>
+<p>GstVideoEncoder</p>
 </td>
 <td class="gallery_image" valign="top" align="right"></td>
 </tr></table></div>
@@ -241,79 +241,6 @@
 </div>
 <div class="refsect1">
 <a name="gst-plugins-base-libs-GstVideoEncoder.description"></a><h2>Description</h2>
-<p>This base class is for video encoders turning raw video into
-encoded video data.</p>
-<p>GstVideoEncoder and subclass should cooperate as follows.</p>
-<div class="orderedlist"><ol class="orderedlist" type="1">
-<li class="listitem"><div class="itemizedlist">
-<p class="title"><b>Configuration</b></p>
-<ul class="itemizedlist" style="list-style-type: disc; ">
-<li class="listitem"><p>
-    Initially, GstVideoEncoder calls <em class="parameter"><code>start</code></em> when the encoder element
-    is activated, which allows subclass to perform any global setup.
-  </p></li>
-<li class="listitem"><p>
-    GstVideoEncoder calls <em class="parameter"><code>set_format</code></em> to inform subclass of the format
-    of input video data that it is about to receive.  Subclass should
-    setup for encoding and configure base class as appropriate
-    (e.g. latency). While unlikely, it might be called more than once,
-    if changing input parameters require reconfiguration.  Baseclass
-    will ensure that processing of current configuration is finished.
-  </p></li>
-<li class="listitem"><p>
-    GstVideoEncoder calls <em class="parameter"><code>stop</code></em> at end of all processing.
-  </p></li>
-</ul>
-</div></li>
-<li class="listitem"><div class="itemizedlist">
-<p class="title"><b>Data processing</b></p>
-<ul class="itemizedlist" style="list-style-type: disc; ">
-<li class="listitem"><p>
-      Base class collects input data and metadata into a frame and hands
-      this to subclass' <em class="parameter"><code>handle_frame</code></em>.
-    </p></li>
-<li class="listitem"><p>
-      If codec processing results in encoded data, subclass should call
-      <em class="parameter"><code>gst_video_encoder_finish_frame</code></em> to have encoded data pushed
-      downstream.
-    </p></li>
-<li class="listitem"><p>
-      If implemented, baseclass calls subclass <em class="parameter"><code>pre_push</code></em> just prior to
-      pushing to allow subclasses to modify some metadata on the buffer.
-      If it returns GST_FLOW_OK, the buffer is pushed downstream.
-    </p></li>
-<li class="listitem"><p>
-      GstVideoEncoderClass will handle both srcpad and sinkpad events.
-      Sink events will be passed to subclass if <em class="parameter"><code>event</code></em> callback has been
-      provided.
-    </p></li>
-</ul>
-</div></li>
-<li class="listitem"><div class="itemizedlist">
-<p class="title"><b>Shutdown phase</b></p>
-<ul class="itemizedlist" style="list-style-type: disc; "><li class="listitem"><p>
-    GstVideoEncoder class calls <em class="parameter"><code>stop</code></em> to inform the subclass that data
-    parsing will be stopped.
-  </p></li></ul>
-</div></li>
-</ol></div>
-<p>Subclass is responsible for providing pad template caps for
-source and sink pads. The pads need to be named "sink" and "src". It should
-also be able to provide fixed src pad caps in <em class="parameter"><code>getcaps</code></em>
- by the time it calls
-<em class="parameter"><code>gst_video_encoder_finish_frame</code></em>
-.</p>
-<p>Things that subclass need to take care of:</p>
-<div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; ">
-<li class="listitem"><p>Provide pad templates</p></li>
-<li class="listitem"><p>
-     Provide source pad caps before pushing the first buffer
-  </p></li>
-<li class="listitem"><p>
-     Accept data in <em class="parameter"><code>handle_frame</code></em> and provide encoded results to
-     <em class="parameter"><code>gst_video_encoder_finish_frame</code></em>.
-  </p></li>
-</ul></div>
 </div>
 <div class="refsect1">
 <a name="gst-plugins-base-libs-GstVideoEncoder.functions_details"></a><h2>Functions</h2>
@@ -327,132 +254,36 @@
 <a name="GST-VIDEO-ENCODER-SINK-PAD:CAPS"></a><h3>GST_VIDEO_ENCODER_SINK_PAD()</h3>
 <pre class="programlisting">#define GST_VIDEO_ENCODER_SINK_PAD(obj)        (((GstVideoEncoder *) (obj))-&gt;sinkpad)
 </pre>
-<p>Gives the pointer to the sink <a href="/usr/share/gtk-doc/html/gstreamer-1.0GstPad.html#GstPad-struct"><span class="type">GstPad</span></a> object of the element.</p>
-<div class="refsect3">
-<a name="GST-VIDEO-ENCODER-SINK-PAD.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>obj</p></td>
-<td class="parameter_description"><p>a <a class="link" href="gst-plugins-base-libs-GstVideoEncoder.html#GstVideoEncoder" title="struct GstVideoEncoder"><span class="type">GstVideoEncoder</span></a></p></td>
-<td class="parameter_annotations"> </td>
-</tr></tbody>
-</table></div>
-</div>
 </div>
 <hr>
 <div class="refsect2">
 <a name="GST-VIDEO-ENCODER-SRC-PAD:CAPS"></a><h3>GST_VIDEO_ENCODER_SRC_PAD()</h3>
 <pre class="programlisting">#define GST_VIDEO_ENCODER_SRC_PAD(obj)         (((GstVideoEncoder *) (obj))-&gt;srcpad)
 </pre>
-<p>Gives the pointer to the source <a href="/usr/share/gtk-doc/html/gstreamer-1.0GstPad.html#GstPad-struct"><span class="type">GstPad</span></a> object of the element.</p>
-<div class="refsect3">
-<a name="GST-VIDEO-ENCODER-SRC-PAD.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>obj</p></td>
-<td class="parameter_description"><p>a <a class="link" href="gst-plugins-base-libs-GstVideoEncoder.html#GstVideoEncoder" title="struct GstVideoEncoder"><span class="type">GstVideoEncoder</span></a></p></td>
-<td class="parameter_annotations"> </td>
-</tr></tbody>
-</table></div>
-</div>
 </div>
 <hr>
 <div class="refsect2">
 <a name="GST-VIDEO-ENCODER-INPUT-SEGMENT:CAPS"></a><h3>GST_VIDEO_ENCODER_INPUT_SEGMENT()</h3>
 <pre class="programlisting">#define GST_VIDEO_ENCODER_INPUT_SEGMENT(obj)     (GST_VIDEO_ENCODER_CAST (obj)-&gt;input_segment)
 </pre>
-<p>Gives the segment of the element.</p>
-<div class="refsect3">
-<a name="GST-VIDEO-ENCODER-INPUT-SEGMENT.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>obj</p></td>
-<td class="parameter_description"><p>base parse instance</p></td>
-<td class="parameter_annotations"> </td>
-</tr></tbody>
-</table></div>
-</div>
 </div>
 <hr>
 <div class="refsect2">
 <a name="GST-VIDEO-ENCODER-OUTPUT-SEGMENT:CAPS"></a><h3>GST_VIDEO_ENCODER_OUTPUT_SEGMENT()</h3>
 <pre class="programlisting">#define GST_VIDEO_ENCODER_OUTPUT_SEGMENT(obj)     (GST_VIDEO_ENCODER_CAST (obj)-&gt;output_segment)
 </pre>
-<p>Gives the segment of the element.</p>
-<div class="refsect3">
-<a name="GST-VIDEO-ENCODER-OUTPUT-SEGMENT.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>obj</p></td>
-<td class="parameter_description"><p>base parse instance</p></td>
-<td class="parameter_annotations"> </td>
-</tr></tbody>
-</table></div>
-</div>
 </div>
 <hr>
 <div class="refsect2">
 <a name="GST-VIDEO-ENCODER-STREAM-LOCK:CAPS"></a><h3>GST_VIDEO_ENCODER_STREAM_LOCK()</h3>
 <pre class="programlisting">#define GST_VIDEO_ENCODER_STREAM_LOCK(encoder) g_rec_mutex_lock (&amp;GST_VIDEO_ENCODER (encoder)-&gt;stream_lock)
 </pre>
-<p>Obtain a lock to protect the encoder function from concurrent access.</p>
-<div class="refsect3">
-<a name="GST-VIDEO-ENCODER-STREAM-LOCK.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>encoder</p></td>
-<td class="parameter_description"><p>video encoder instance</p></td>
-<td class="parameter_annotations"> </td>
-</tr></tbody>
-</table></div>
-</div>
 </div>
 <hr>
 <div class="refsect2">
 <a name="GST-VIDEO-ENCODER-STREAM-UNLOCK:CAPS"></a><h3>GST_VIDEO_ENCODER_STREAM_UNLOCK()</h3>
 <pre class="programlisting">#define GST_VIDEO_ENCODER_STREAM_UNLOCK(encoder) g_rec_mutex_unlock (&amp;GST_VIDEO_ENCODER (encoder)-&gt;stream_lock)
 </pre>
-<p>Release the lock that protects the encoder function from concurrent access.</p>
-<div class="refsect3">
-<a name="GST-VIDEO-ENCODER-STREAM-UNLOCK.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>encoder</p></td>
-<td class="parameter_description"><p>video encoder instance</p></td>
-<td class="parameter_annotations"> </td>
-</tr></tbody>
-</table></div>
-</div>
 </div>
 <hr>
 <div class="refsect2">
@@ -461,36 +292,6 @@
 gst_video_encoder_allocate_output_buffer
                                (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-GstVideoEncoder.html#GstVideoEncoder" title="struct GstVideoEncoder"><span class="type">GstVideoEncoder</span></a> *encoder</code></em>,
                                 <em class="parameter"><code><a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#gsize"><span class="type">gsize</span></a> size</code></em>);</pre>
-<p>Helper function that allocates a buffer to hold an encoded video frame
-for <em class="parameter"><code>encoder</code></em>
-'s current <a class="link" href="gst-plugins-base-libs-gstvideoutils.html#GstVideoCodecState" title="struct GstVideoCodecState"><span class="type">GstVideoCodecState</span></a>.</p>
-<div class="refsect3">
-<a name="gst-video-encoder-allocate-output-buffer.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>encoder</p></td>
-<td class="parameter_description"><p>a <a class="link" href="gst-plugins-base-libs-GstVideoEncoder.html#GstVideoEncoder" title="struct GstVideoEncoder"><span class="type">GstVideoEncoder</span></a></p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-<tr>
-<td class="parameter_name"><p>size</p></td>
-<td class="parameter_description"><p>size of the buffer</p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-</tbody>
-</table></div>
-</div>
-<div class="refsect3">
-<a name="gst-video-encoder-allocate-output-buffer.returns"></a><h4>Returns</h4>
-<p> allocated buffer. </p>
-<p><span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>]</span></p>
-</div>
 </div>
 <hr>
 <div class="refsect2">
@@ -500,43 +301,6 @@
                                (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-GstVideoEncoder.html#GstVideoEncoder" title="struct GstVideoEncoder"><span class="type">GstVideoEncoder</span></a> *encoder</code></em>,
                                 <em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstvideoutils.html#GstVideoCodecFrame" title="struct GstVideoCodecFrame"><span class="type">GstVideoCodecFrame</span></a> *frame</code></em>,
                                 <em class="parameter"><code><a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#gsize"><span class="type">gsize</span></a> size</code></em>);</pre>
-<p>Helper function that allocates a buffer to hold an encoded video frame for <em class="parameter"><code>encoder</code></em>
-'s
-current <a class="link" href="gst-plugins-base-libs-gstvideoutils.html#GstVideoCodecState" title="struct GstVideoCodecState"><span class="type">GstVideoCodecState</span></a>.  Subclass should already have configured video
-state and set src pad caps.</p>
-<p>The buffer allocated here is owned by the frame and you should only
-keep references to the frame, not the buffer.</p>
-<div class="refsect3">
-<a name="gst-video-encoder-allocate-output-frame.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>encoder</p></td>
-<td class="parameter_description"><p>a <a class="link" href="gst-plugins-base-libs-GstVideoEncoder.html#GstVideoEncoder" title="struct GstVideoEncoder"><span class="type">GstVideoEncoder</span></a></p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-<tr>
-<td class="parameter_name"><p>frame</p></td>
-<td class="parameter_description"><p>a <a class="link" href="gst-plugins-base-libs-gstvideoutils.html#GstVideoCodecFrame" title="struct GstVideoCodecFrame"><span class="type">GstVideoCodecFrame</span></a></p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-<tr>
-<td class="parameter_name"><p>size</p></td>
-<td class="parameter_description"><p>size of the buffer</p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-</tbody>
-</table></div>
-</div>
-<div class="refsect3">
-<a name="gst-video-encoder-allocate-output-frame.returns"></a><h4>Returns</h4>
-<p> <a href="/usr/share/gtk-doc/html/gstreamer-1.0GstPad.html#GST-FLOW-OK:CAPS"><code class="literal">GST_FLOW_OK</code></a> if an output buffer could be allocated</p>
-</div>
 </div>
 <hr>
 <div class="refsect2">
@@ -545,42 +309,6 @@
 gst_video_encoder_get_allocator (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-GstVideoEncoder.html#GstVideoEncoder" title="struct GstVideoEncoder"><span class="type">GstVideoEncoder</span></a> *encoder</code></em>,
                                  <em class="parameter"><code><a href="/usr/share/gtk-doc/html/gstreamer-1.0GstAllocator.html#GstAllocator-struct"><span class="type">GstAllocator</span></a> **allocator</code></em>,
                                  <em class="parameter"><code><a href="/usr/share/gtk-doc/html/gstreamer-1.0GstAllocator.html#GstAllocationParams-struct"><span class="type">GstAllocationParams</span></a> *params</code></em>);</pre>
-<p>Lets <a class="link" href="gst-plugins-base-libs-GstVideoEncoder.html#GstVideoEncoder" title="struct GstVideoEncoder"><span class="type">GstVideoEncoder</span></a> sub-classes to know the memory <em class="parameter"><code>allocator</code></em>
-
-used by the base class and its <em class="parameter"><code>params</code></em>
-.</p>
-<p>Unref the <em class="parameter"><code>allocator</code></em>
- after use it.</p>
-<div class="refsect3">
-<a name="gst-video-encoder-get-allocator.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>encoder</p></td>
-<td class="parameter_description"><p>a <a class="link" href="gst-plugins-base-libs-GstVideoEncoder.html#GstVideoEncoder" title="struct GstVideoEncoder"><span class="type">GstVideoEncoder</span></a></p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-<tr>
-<td class="parameter_name"><p>allocator</p></td>
-<td class="parameter_description"><p> the <a href="/usr/share/gtk-doc/html/gstreamer-1.0GstAllocator.html#GstAllocator-struct"><span class="type">GstAllocator</span></a>
-used. </p></td>
-<td class="parameter_annotations"><span class="annotation">[<acronym title="Parameter for returning results. Default is transfer full."><span class="acronym">out</span></acronym>][<acronym title="NULL is OK, both for passing and for returning."><span class="acronym">allow-none</span></acronym>][<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>]</span></td>
-</tr>
-<tr>
-<td class="parameter_name"><p>params</p></td>
-<td class="parameter_description"><p> the
-<span class="type">GstAllocatorParams</span> of <em class="parameter"><code>allocator</code></em>
-. </p></td>
-<td class="parameter_annotations"><span class="annotation">[<acronym title="Parameter for returning results. Default is transfer full."><span class="acronym">out</span></acronym>][<acronym title="NULL is OK, both for passing and for returning."><span class="acronym">allow-none</span></acronym>][<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>]</span></td>
-</tr>
-</tbody>
-</table></div>
-</div>
 </div>
 <hr>
 <div class="refsect2">
@@ -588,70 +316,12 @@
 <pre class="programlisting"><a href="/usr/share/gtk-doc/html/gstreamer-1.0GstPad.html#GstFlowReturn"><span class="returnvalue">GstFlowReturn</span></a>
 gst_video_encoder_finish_frame (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-GstVideoEncoder.html#GstVideoEncoder" title="struct GstVideoEncoder"><span class="type">GstVideoEncoder</span></a> *encoder</code></em>,
                                 <em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstvideoutils.html#GstVideoCodecFrame" title="struct GstVideoCodecFrame"><span class="type">GstVideoCodecFrame</span></a> *frame</code></em>);</pre>
-<p><em class="parameter"><code>frame</code></em>
- must have a valid encoded data buffer, whose metadata fields
-are then appropriately set according to frame data or no buffer at
-all if the frame should be dropped.
-It is subsequently pushed downstream or provided to <em class="parameter"><code>pre_push</code></em>
-.
-In any case, the frame is considered finished and released.</p>
-<p>After calling this function the output buffer of the frame is to be
-considered read-only. This function will also change the metadata
-of the buffer.</p>
-<div class="refsect3">
-<a name="gst-video-encoder-finish-frame.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>encoder</p></td>
-<td class="parameter_description"><p>a <a class="link" href="gst-plugins-base-libs-GstVideoEncoder.html#GstVideoEncoder" title="struct GstVideoEncoder"><span class="type">GstVideoEncoder</span></a></p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-<tr>
-<td class="parameter_name"><p>frame</p></td>
-<td class="parameter_description"><p> an encoded <a class="link" href="gst-plugins-base-libs-gstvideoutils.html#GstVideoCodecFrame" title="struct GstVideoCodecFrame"><span class="type">GstVideoCodecFrame</span></a>. </p></td>
-<td class="parameter_annotations"><span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>]</span></td>
-</tr>
-</tbody>
-</table></div>
-</div>
-<div class="refsect3">
-<a name="gst-video-encoder-finish-frame.returns"></a><h4>Returns</h4>
-<p> a <a href="/usr/share/gtk-doc/html/gstreamer-1.0GstPad.html#GstFlowReturn"><span class="type">GstFlowReturn</span></a> resulting from sending data downstream</p>
-</div>
 </div>
 <hr>
 <div class="refsect2">
 <a name="gst-video-encoder-negotiate"></a><h3>gst_video_encoder_negotiate ()</h3>
 <pre class="programlisting"><a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
 gst_video_encoder_negotiate (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-GstVideoEncoder.html#GstVideoEncoder" title="struct GstVideoEncoder"><span class="type">GstVideoEncoder</span></a> *encoder</code></em>);</pre>
-<p>Negotiate with downstream elements to currently configured <a class="link" href="gst-plugins-base-libs-gstvideoutils.html#GstVideoCodecState" title="struct GstVideoCodecState"><span class="type">GstVideoCodecState</span></a>.
-Unmark GST_PAD_FLAG_NEED_RECONFIGURE in any case. But mark it again if
-negotiate fails.</p>
-<div class="refsect3">
-<a name="gst-video-encoder-negotiate.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>encoder</p></td>
-<td class="parameter_description"><p>a <a class="link" href="gst-plugins-base-libs-GstVideoEncoder.html#GstVideoEncoder" title="struct GstVideoEncoder"><span class="type">GstVideoEncoder</span></a></p></td>
-<td class="parameter_annotations"> </td>
-</tr></tbody>
-</table></div>
-</div>
-<div class="refsect3">
-<a name="gst-video-encoder-negotiate.returns"></a><h4>Returns</h4>
-<p> <a href="/usr/share/gtk-doc/html/glibglib-Standard-Macros.html#TRUE:CAPS"><span class="type">TRUE</span></a> if the negotiation succeeded, else <a href="/usr/share/gtk-doc/html/glibglib-Standard-Macros.html#FALSE:CAPS"><span class="type">FALSE</span></a>.</p>
-</div>
 </div>
 <hr>
 <div class="refsect2">
@@ -659,89 +329,18 @@
 <pre class="programlisting"><a class="link" href="gst-plugins-base-libs-gstvideoutils.html#GstVideoCodecFrame" title="struct GstVideoCodecFrame"><span class="returnvalue">GstVideoCodecFrame</span></a> *
 gst_video_encoder_get_frame (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-GstVideoEncoder.html#GstVideoEncoder" title="struct GstVideoEncoder"><span class="type">GstVideoEncoder</span></a> *encoder</code></em>,
                              <em class="parameter"><code><span class="type">int</span> frame_number</code></em>);</pre>
-<p>Get a pending unfinished <a class="link" href="gst-plugins-base-libs-gstvideoutils.html#GstVideoCodecFrame" title="struct GstVideoCodecFrame"><span class="type">GstVideoCodecFrame</span></a></p>
-<div class="refsect3">
-<a name="gst-video-encoder-get-frame.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>encoder</p></td>
-<td class="parameter_description"><p>a <span class="type">GstVideoEnccoder</span></p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-<tr>
-<td class="parameter_name"><p>frame_number</p></td>
-<td class="parameter_description"><p>system_frame_number of a frame</p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-</tbody>
-</table></div>
-</div>
-<div class="refsect3">
-<a name="gst-video-encoder-get-frame.returns"></a><h4>Returns</h4>
-<p> pending unfinished <a class="link" href="gst-plugins-base-libs-gstvideoutils.html#GstVideoCodecFrame" title="struct GstVideoCodecFrame"><span class="type">GstVideoCodecFrame</span></a> identified by <em class="parameter"><code>frame_number</code></em>
-. </p>
-<p><span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>]</span></p>
-</div>
 </div>
 <hr>
 <div class="refsect2">
 <a name="gst-video-encoder-get-frames"></a><h3>gst_video_encoder_get_frames ()</h3>
 <pre class="programlisting"><a href="/usr/share/gtk-doc/html/glibglib-Doubly-Linked-Lists.html#GList"><span class="returnvalue">GList</span></a> *
 gst_video_encoder_get_frames (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-GstVideoEncoder.html#GstVideoEncoder" title="struct GstVideoEncoder"><span class="type">GstVideoEncoder</span></a> *encoder</code></em>);</pre>
-<p>Get all pending unfinished <a class="link" href="gst-plugins-base-libs-gstvideoutils.html#GstVideoCodecFrame" title="struct GstVideoCodecFrame"><span class="type">GstVideoCodecFrame</span></a></p>
-<div class="refsect3">
-<a name="gst-video-encoder-get-frames.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>encoder</p></td>
-<td class="parameter_description"><p>a <a class="link" href="gst-plugins-base-libs-GstVideoEncoder.html#GstVideoEncoder" title="struct GstVideoEncoder"><span class="type">GstVideoEncoder</span></a></p></td>
-<td class="parameter_annotations"> </td>
-</tr></tbody>
-</table></div>
-</div>
-<div class="refsect3">
-<a name="gst-video-encoder-get-frames.returns"></a><h4>Returns</h4>
-<p> pending unfinished <a class="link" href="gst-plugins-base-libs-gstvideoutils.html#GstVideoCodecFrame" title="struct GstVideoCodecFrame"><span class="type">GstVideoCodecFrame</span></a>. </p>
-<p><span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>][<acronym title="Generics and defining elements of containers and arrays."><span class="acronym">element-type</span></acronym> GstVideoCodecFrame]</span></p>
-</div>
 </div>
 <hr>
 <div class="refsect2">
 <a name="gst-video-encoder-get-oldest-frame"></a><h3>gst_video_encoder_get_oldest_frame ()</h3>
 <pre class="programlisting"><a class="link" href="gst-plugins-base-libs-gstvideoutils.html#GstVideoCodecFrame" title="struct GstVideoCodecFrame"><span class="returnvalue">GstVideoCodecFrame</span></a> *
 gst_video_encoder_get_oldest_frame (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-GstVideoEncoder.html#GstVideoEncoder" title="struct GstVideoEncoder"><span class="type">GstVideoEncoder</span></a> *encoder</code></em>);</pre>
-<p>Get the oldest unfinished pending <a class="link" href="gst-plugins-base-libs-gstvideoutils.html#GstVideoCodecFrame" title="struct GstVideoCodecFrame"><span class="type">GstVideoCodecFrame</span></a></p>
-<div class="refsect3">
-<a name="gst-video-encoder-get-oldest-frame.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>encoder</p></td>
-<td class="parameter_description"><p>a <a class="link" href="gst-plugins-base-libs-GstVideoEncoder.html#GstVideoEncoder" title="struct GstVideoEncoder"><span class="type">GstVideoEncoder</span></a></p></td>
-<td class="parameter_annotations"> </td>
-</tr></tbody>
-</table></div>
-</div>
-<div class="refsect3">
-<a name="gst-video-encoder-get-oldest-frame.returns"></a><h4>Returns</h4>
-<p> oldest unfinished pending <a class="link" href="gst-plugins-base-libs-gstvideoutils.html#GstVideoCodecFrame" title="struct GstVideoCodecFrame"><span class="type">GstVideoCodecFrame</span></a>. </p>
-<p><span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>]</span></p>
-</div>
 </div>
 <hr>
 <div class="refsect2">
@@ -749,29 +348,6 @@
 <pre class="programlisting"><span class="returnvalue">void</span>
 gst_video_encoder_set_headers (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-GstVideoEncoder.html#GstVideoEncoder" title="struct GstVideoEncoder"><span class="type">GstVideoEncoder</span></a> *encoder</code></em>,
                                <em class="parameter"><code><a href="/usr/share/gtk-doc/html/glibglib-Doubly-Linked-Lists.html#GList"><span class="type">GList</span></a> *headers</code></em>);</pre>
-<p>Set the codec headers to be sent downstream whenever requested.</p>
-<div class="refsect3">
-<a name="gst-video-encoder-set-headers.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>encoder</p></td>
-<td class="parameter_description"><p>a <a class="link" href="gst-plugins-base-libs-GstVideoEncoder.html#GstVideoEncoder" title="struct GstVideoEncoder"><span class="type">GstVideoEncoder</span></a></p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-<tr>
-<td class="parameter_name"><p>headers</p></td>
-<td class="parameter_description"><p> a list of <a href="/usr/share/gtk-doc/html/gstreamer-1.0GstBuffer.html#GstBuffer-struct"><span class="type">GstBuffer</span></a> containing the codec header. </p></td>
-<td class="parameter_annotations"><span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>][<acronym title="Generics and defining elements of containers and arrays."><span class="acronym">element-type</span></acronym> GstBuffer]</span></td>
-</tr>
-</tbody>
-</table></div>
-</div>
 </div>
 <hr>
 <div class="refsect2">
@@ -780,39 +356,6 @@
 gst_video_encoder_get_latency (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-GstVideoEncoder.html#GstVideoEncoder" title="struct GstVideoEncoder"><span class="type">GstVideoEncoder</span></a> *encoder</code></em>,
                                <em class="parameter"><code><a href="/usr/share/gtk-doc/html/gstreamer-1.0GstClock.html#GstClockTime"><span class="type">GstClockTime</span></a> *min_latency</code></em>,
                                <em class="parameter"><code><a href="/usr/share/gtk-doc/html/gstreamer-1.0GstClock.html#GstClockTime"><span class="type">GstClockTime</span></a> *max_latency</code></em>);</pre>
-<p>Query the configured encoding latency. Results will be returned via
-<em class="parameter"><code>min_latency</code></em>
- and <em class="parameter"><code>max_latency</code></em>
-.</p>
-<div class="refsect3">
-<a name="gst-video-encoder-get-latency.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>encoder</p></td>
-<td class="parameter_description"><p>a <a class="link" href="gst-plugins-base-libs-GstVideoEncoder.html#GstVideoEncoder" title="struct GstVideoEncoder"><span class="type">GstVideoEncoder</span></a></p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-<tr>
-<td class="parameter_name"><p>min_latency</p></td>
-<td class="parameter_description"><p> address of variable in which to store the
-configured minimum latency, or <a href="/usr/share/gtk-doc/html/glibglib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a>. </p></td>
-<td class="parameter_annotations"><span class="annotation">[<acronym title="Parameter for returning results. Default is transfer full."><span class="acronym">out</span></acronym>][<acronym title="NULL is OK, both for passing and for returning."><span class="acronym">allow-none</span></acronym>]</span></td>
-</tr>
-<tr>
-<td class="parameter_name"><p>max_latency</p></td>
-<td class="parameter_description"><p> address of variable in which to store the
-configured maximum latency, or <a href="/usr/share/gtk-doc/html/glibglib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a>. </p></td>
-<td class="parameter_annotations"><span class="annotation">[<acronym title="Parameter for returning results. Default is transfer full."><span class="acronym">out</span></acronym>][<acronym title="NULL is OK, both for passing and for returning."><span class="acronym">allow-none</span></acronym>]</span></td>
-</tr>
-</tbody>
-</table></div>
-</div>
 </div>
 <hr>
 <div class="refsect2">
@@ -821,34 +364,6 @@
 gst_video_encoder_set_latency (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-GstVideoEncoder.html#GstVideoEncoder" title="struct GstVideoEncoder"><span class="type">GstVideoEncoder</span></a> *encoder</code></em>,
                                <em class="parameter"><code><a href="/usr/share/gtk-doc/html/gstreamer-1.0GstClock.html#GstClockTime"><span class="type">GstClockTime</span></a> min_latency</code></em>,
                                <em class="parameter"><code><a href="/usr/share/gtk-doc/html/gstreamer-1.0GstClock.html#GstClockTime"><span class="type">GstClockTime</span></a> max_latency</code></em>);</pre>
-<p>Informs baseclass of encoding latency.</p>
-<div class="refsect3">
-<a name="gst-video-encoder-set-latency.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>encoder</p></td>
-<td class="parameter_description"><p>a <a class="link" href="gst-plugins-base-libs-GstVideoEncoder.html#GstVideoEncoder" title="struct GstVideoEncoder"><span class="type">GstVideoEncoder</span></a></p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-<tr>
-<td class="parameter_name"><p>min_latency</p></td>
-<td class="parameter_description"><p>minimum latency</p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-<tr>
-<td class="parameter_name"><p>max_latency</p></td>
-<td class="parameter_description"><p>maximum latency</p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-</tbody>
-</table></div>
-</div>
 </div>
 <hr>
 <div class="refsect2">
@@ -857,83 +372,12 @@
 gst_video_encoder_set_output_state (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-GstVideoEncoder.html#GstVideoEncoder" title="struct GstVideoEncoder"><span class="type">GstVideoEncoder</span></a> *encoder</code></em>,
                                     <em class="parameter"><code><a href="/usr/share/gtk-doc/html/gstreamer-1.0GstCaps.html#GstCaps-struct"><span class="type">GstCaps</span></a> *caps</code></em>,
                                     <em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstvideoutils.html#GstVideoCodecState" title="struct GstVideoCodecState"><span class="type">GstVideoCodecState</span></a> *reference</code></em>);</pre>
-<p>Creates a new <a class="link" href="gst-plugins-base-libs-gstvideoutils.html#GstVideoCodecState" title="struct GstVideoCodecState"><span class="type">GstVideoCodecState</span></a> with the specified caps as the output state
-for the encoder.
-Any previously set output state on <em class="parameter"><code>encoder</code></em>
- will be replaced by the newly
-created one.</p>
-<p>The specified <em class="parameter"><code>caps</code></em>
- should not contain any resolution, pixel-aspect-ratio,
-framerate, codec-data, .... Those should be specified instead in the returned
-<a class="link" href="gst-plugins-base-libs-gstvideoutils.html#GstVideoCodecState" title="struct GstVideoCodecState"><span class="type">GstVideoCodecState</span></a>.</p>
-<p>If the subclass wishes to copy over existing fields (like pixel aspect ratio,
-or framerate) from an existing <a class="link" href="gst-plugins-base-libs-gstvideoutils.html#GstVideoCodecState" title="struct GstVideoCodecState"><span class="type">GstVideoCodecState</span></a>, it can be provided as a
-<em class="parameter"><code>reference</code></em>
-.</p>
-<p>If the subclass wishes to override some fields from the output state (like
-pixel-aspect-ratio or framerate) it can do so on the returned <a class="link" href="gst-plugins-base-libs-gstvideoutils.html#GstVideoCodecState" title="struct GstVideoCodecState"><span class="type">GstVideoCodecState</span></a>.</p>
-<p>The new output state will only take effect (set on pads and buffers) starting
-from the next call to <a class="link" href="gst-plugins-base-libs-GstVideoEncoder.html#gst-video-encoder-finish-frame" title="gst_video_encoder_finish_frame ()"><code class="function">gst_video_encoder_finish_frame()</code></a>.</p>
-<div class="refsect3">
-<a name="gst-video-encoder-set-output-state.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>encoder</p></td>
-<td class="parameter_description"><p>a <a class="link" href="gst-plugins-base-libs-GstVideoEncoder.html#GstVideoEncoder" title="struct GstVideoEncoder"><span class="type">GstVideoEncoder</span></a></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> to use for the output. </p></td>
-<td class="parameter_annotations"><span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>]</span></td>
-</tr>
-<tr>
-<td class="parameter_name"><p>reference</p></td>
-<td class="parameter_description"><p> An optional reference <em class="parameter"><code>GstVideoCodecState</code></em>
-. </p></td>
-<td class="parameter_annotations"><span class="annotation">[<acronym title="NULL is OK, both for passing and for returning."><span class="acronym">allow-none</span></acronym>][<acronym title="Don't free data after the code is done."><span class="acronym">transfer none</span></acronym>]</span></td>
-</tr>
-</tbody>
-</table></div>
-</div>
-<div class="refsect3">
-<a name="gst-video-encoder-set-output-state.returns"></a><h4>Returns</h4>
-<p> the newly configured output state. </p>
-<p><span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>]</span></p>
-</div>
 </div>
 <hr>
 <div class="refsect2">
 <a name="gst-video-encoder-get-output-state"></a><h3>gst_video_encoder_get_output_state ()</h3>
 <pre class="programlisting"><a class="link" href="gst-plugins-base-libs-gstvideoutils.html#GstVideoCodecState" title="struct GstVideoCodecState"><span class="returnvalue">GstVideoCodecState</span></a> *
 gst_video_encoder_get_output_state (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-GstVideoEncoder.html#GstVideoEncoder" title="struct GstVideoEncoder"><span class="type">GstVideoEncoder</span></a> *encoder</code></em>);</pre>
-<p>Get the current <a class="link" href="gst-plugins-base-libs-gstvideoutils.html#GstVideoCodecState" title="struct GstVideoCodecState"><span class="type">GstVideoCodecState</span></a></p>
-<div class="refsect3">
-<a name="gst-video-encoder-get-output-state.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>encoder</p></td>
-<td class="parameter_description"><p>a <a class="link" href="gst-plugins-base-libs-GstVideoEncoder.html#GstVideoEncoder" title="struct GstVideoEncoder"><span class="type">GstVideoEncoder</span></a></p></td>
-<td class="parameter_annotations"> </td>
-</tr></tbody>
-</table></div>
-</div>
-<div class="refsect3">
-<a name="gst-video-encoder-get-output-state.returns"></a><h4>Returns</h4>
-<p> <a class="link" href="gst-plugins-base-libs-gstvideoutils.html#GstVideoCodecState" title="struct GstVideoCodecState"><span class="type">GstVideoCodecState</span></a> describing format of video data. </p>
-<p><span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>]</span></p>
-</div>
 </div>
 <hr>
 <div class="refsect2">
@@ -942,43 +386,6 @@
 gst_video_encoder_proxy_getcaps (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-GstVideoEncoder.html#GstVideoEncoder" title="struct GstVideoEncoder"><span class="type">GstVideoEncoder</span></a> *enc</code></em>,
                                  <em class="parameter"><code><a href="/usr/share/gtk-doc/html/gstreamer-1.0GstCaps.html#GstCaps-struct"><span class="type">GstCaps</span></a> *caps</code></em>,
                                  <em class="parameter"><code><a href="/usr/share/gtk-doc/html/gstreamer-1.0GstCaps.html#GstCaps-struct"><span class="type">GstCaps</span></a> *filter</code></em>);</pre>
-<p>Returns caps that express <em class="parameter"><code>caps</code></em>
- (or sink template caps if <em class="parameter"><code>caps</code></em>
- == NULL)
-restricted to resolution/format/... combinations supported by downstream
-elements (e.g. muxers).</p>
-<div class="refsect3">
-<a name="gst-video-encoder-proxy-getcaps.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>enc</p></td>
-<td class="parameter_description"><p>a <a class="link" href="gst-plugins-base-libs-GstVideoEncoder.html#GstVideoEncoder" title="struct GstVideoEncoder"><span class="type">GstVideoEncoder</span></a></p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-<tr>
-<td class="parameter_name"><p>caps</p></td>
-<td class="parameter_description"><p> initial caps. </p></td>
-<td class="parameter_annotations"><span class="annotation">[<acronym title="NULL is OK, both for passing and for returning."><span class="acronym">allow-none</span></acronym>]</span></td>
-</tr>
-<tr>
-<td class="parameter_name"><p>filter</p></td>
-<td class="parameter_description"><p> filter caps. </p></td>
-<td class="parameter_annotations"><span class="annotation">[<acronym title="NULL is OK, both for passing and for returning."><span class="acronym">allow-none</span></acronym>]</span></td>
-</tr>
-</tbody>
-</table></div>
-</div>
-<div class="refsect3">
-<a name="gst-video-encoder-proxy-getcaps.returns"></a><h4>Returns</h4>
-<p> a <a href="/usr/share/gtk-doc/html/gstreamer-1.0GstCaps.html#GstCaps-struct"><span class="type">GstCaps</span></a> owned by caller. </p>
-<p><span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>]</span></p>
-</div>
 </div>
 <hr>
 <div class="refsect2">
@@ -987,40 +394,6 @@
 gst_video_encoder_merge_tags (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-GstVideoEncoder.html#GstVideoEncoder" title="struct GstVideoEncoder"><span class="type">GstVideoEncoder</span></a> *encoder</code></em>,
                               <em class="parameter"><code>const <a href="/usr/share/gtk-doc/html/gstreamer-1.0GstTagList.html#GstTagList-struct"><span class="type">GstTagList</span></a> *tags</code></em>,
                               <em class="parameter"><code><a href="/usr/share/gtk-doc/html/gstreamer-1.0GstTagList.html#GstTagMergeMode"><span class="type">GstTagMergeMode</span></a> mode</code></em>);</pre>
-<p>Sets the video encoder tags and how they should be merged with any
-upstream stream tags. This will override any tags previously-set
-with <a class="link" href="gst-plugins-base-libs-GstVideoEncoder.html#gst-video-encoder-merge-tags" title="gst_video_encoder_merge_tags ()"><code class="function">gst_video_encoder_merge_tags()</code></a>.</p>
-<p>Note that this is provided for convenience, and the subclass is
-not required to use this and can still do tag handling on its own.</p>
-<p>MT safe.</p>
-<div class="refsect3">
-<a name="gst-video-encoder-merge-tags.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>encoder</p></td>
-<td class="parameter_description"><p>a <a class="link" href="gst-plugins-base-libs-GstVideoEncoder.html#GstVideoEncoder" title="struct GstVideoEncoder"><span class="type">GstVideoEncoder</span></a></p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-<tr>
-<td class="parameter_name"><p>tags</p></td>
-<td class="parameter_description"><p> a <a href="/usr/share/gtk-doc/html/gstreamer-1.0GstTagList.html#GstTagList-struct"><span class="type">GstTagList</span></a> to merge, or NULL to unset
-previously-set tags. </p></td>
-<td class="parameter_annotations"><span class="annotation">[<acronym title="NULL is OK, both for passing and for returning."><span class="acronym">allow-none</span></acronym>]</span></td>
-</tr>
-<tr>
-<td class="parameter_name"><p>mode</p></td>
-<td class="parameter_description"><p>the <a href="/usr/share/gtk-doc/html/gstreamer-1.0GstTagList.html#GstTagMergeMode"><span class="type">GstTagMergeMode</span></a> to use, usually <a href="/usr/share/gtk-doc/html/gstreamer-1.0GstTagList.html#GST-TAG-MERGE-REPLACE:CAPS"><span class="type">GST_TAG_MERGE_REPLACE</span></a></p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-</tbody>
-</table></div>
-</div>
 </div>
 </div>
 <div class="refsect1">
@@ -1029,33 +402,25 @@
 <a name="GST-VIDEO-ENCODER-FLOW-DROPPED:CAPS"></a><h3>GST_VIDEO_ENCODER_FLOW_DROPPED</h3>
 <pre class="programlisting">#define GST_VIDEO_ENCODER_FLOW_DROPPED GST_FLOW_CUSTOM_SUCCESS_1
 </pre>
-<div class="warning">
-<p><code class="literal">GST_VIDEO_ENCODER_FLOW_DROPPED</code> is deprecated and should not be used in newly-written code.</p>
-<p>since 1.8. use gst_video_encoder_finish_frame with
-a <a href="/usr/share/gtk-doc/html/glibglib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a> frame-&gt;output_buffer to drop the frame instead.</p>
-</div>
-<p>Returned when the event/buffer should be dropped.</p>
+<div class="warning"><p><code class="literal">GST_VIDEO_ENCODER_FLOW_DROPPED</code> is deprecated and should not be used in newly-written code.</p></div>
 </div>
 <hr>
 <div class="refsect2">
 <a name="GST-VIDEO-ENCODER-FLOW-NEED-DATA:CAPS"></a><h3>GST_VIDEO_ENCODER_FLOW_NEED_DATA</h3>
 <pre class="programlisting">#define GST_VIDEO_ENCODER_FLOW_NEED_DATA GST_FLOW_CUSTOM_SUCCESS
 </pre>
-<p>Returned while parsing to indicate more data is needed.</p>
 </div>
 <hr>
 <div class="refsect2">
 <a name="GST-VIDEO-ENCODER-SINK-NAME:CAPS"></a><h3>GST_VIDEO_ENCODER_SINK_NAME</h3>
 <pre class="programlisting">#define GST_VIDEO_ENCODER_SINK_NAME    "sink"
 </pre>
-<p>The name of the templates for the sink pad.</p>
 </div>
 <hr>
 <div class="refsect2">
 <a name="GST-VIDEO-ENCODER-SRC-NAME:CAPS"></a><h3>GST_VIDEO_ENCODER_SRC_NAME</h3>
 <pre class="programlisting">#define GST_VIDEO_ENCODER_SRC_NAME     "src"
 </pre>
-<p>The name of the templates for the source pad.</p>
 </div>
 <hr>
 <div class="refsect2">
@@ -1063,7 +428,6 @@
 <pre class="programlisting">struct GstVideoEncoder {
 };
 </pre>
-<p>The opaque <a class="link" href="gst-plugins-base-libs-GstVideoEncoder.html#GstVideoEncoder" title="struct GstVideoEncoder"><span class="type">GstVideoEncoder</span></a> data structure.</p>
 </div>
 <hr>
 <div class="refsect2">
@@ -1120,176 +484,6 @@
                                    GstMeta * meta);
 };
 </pre>
-<p>Subclasses can override any of the available virtual methods or not, as
-needed. At minimum <em class="parameter"><code>handle_frame</code></em>
- needs to be overridden, and <em class="parameter"><code>set_format</code></em>
-
-and <em class="parameter"><code>get_caps</code></em>
- are likely needed as well.</p>
-<div class="refsect3">
-<a name="GstVideoEncoderClass.members"></a><h4>Members</h4>
-<div class="informaltable"><table class="informaltable" width="100%" border="0">
-<colgroup>
-<col width="300px" class="struct_members_name">
-<col class="struct_members_description">
-<col width="200px" class="struct_members_annotations">
-</colgroup>
-<tbody>
-<tr>
-<td class="struct_member_name"><p><em class="structfield"><code><a name="GstVideoEncoderClass.open"></a>open</code></em> ()</p></td>
-<td class="struct_member_description"><p>Optional.
-Called when the element changes to GST_STATE_READY.
-Allows opening external resources.</p></td>
-<td class="struct_member_annotations"> </td>
-</tr>
-<tr>
-<td class="struct_member_name"><p><em class="structfield"><code><a name="GstVideoEncoderClass.close"></a>close</code></em> ()</p></td>
-<td class="struct_member_description"><p>Optional.
-Called when the element changes to GST_STATE_NULL.
-Allows closing external resources.</p></td>
-<td class="struct_member_annotations"> </td>
-</tr>
-<tr>
-<td class="struct_member_name"><p><em class="structfield"><code><a name="GstVideoEncoderClass.start"></a>start</code></em> ()</p></td>
-<td class="struct_member_description"><p>Optional.
-Called when the element starts processing.
-Allows opening external resources.</p></td>
-<td class="struct_member_annotations"> </td>
-</tr>
-<tr>
-<td class="struct_member_name"><p><em class="structfield"><code><a name="GstVideoEncoderClass.stop"></a>stop</code></em> ()</p></td>
-<td class="struct_member_description"><p>Optional.
-Called when the element stops processing.
-Allows closing external resources.</p></td>
-<td class="struct_member_annotations"> </td>
-</tr>
-<tr>
-<td class="struct_member_name"><p><em class="structfield"><code><a name="GstVideoEncoderClass.set-format"></a>set_format</code></em> ()</p></td>
-<td class="struct_member_description"><p>Optional.
-Notifies subclass of incoming data format.
-GstVideoCodecState fields have already been
-set according to provided caps.</p></td>
-<td class="struct_member_annotations"> </td>
-</tr>
-<tr>
-<td class="struct_member_name"><p><em class="structfield"><code><a name="GstVideoEncoderClass.handle-frame"></a>handle_frame</code></em> ()</p></td>
-<td class="struct_member_description"><p>Provides input frame to subclass.</p></td>
-<td class="struct_member_annotations"> </td>
-</tr>
-<tr>
-<td class="struct_member_name"><p><em class="structfield"><code><a name="GstVideoEncoderClass.reset"></a>reset</code></em> ()</p></td>
-<td class="struct_member_description"><p>Optional.
-Allows subclass (encoder) to perform post-seek semantics reset.
-Deprecated.</p></td>
-<td class="struct_member_annotations"> </td>
-</tr>
-<tr>
-<td class="struct_member_name"><p><em class="structfield"><code><a name="GstVideoEncoderClass.finish"></a>finish</code></em> ()</p></td>
-<td class="struct_member_description"><p>Optional.
-Called to request subclass to dispatch any pending remaining
-data (e.g. at EOS).</p></td>
-<td class="struct_member_annotations"> </td>
-</tr>
-<tr>
-<td class="struct_member_name"><p><em class="structfield"><code><a name="GstVideoEncoderClass.pre-push"></a>pre_push</code></em> ()</p></td>
-<td class="struct_member_description"><p>Optional.
-Allows subclass to push frame downstream in whatever
-shape or form it deems appropriate.  If not provided,
-provided encoded frame data is simply pushed downstream.</p></td>
-<td class="struct_member_annotations"> </td>
-</tr>
-<tr>
-<td class="struct_member_name"><p><em class="structfield"><code><a name="GstVideoEncoderClass.getcaps"></a>getcaps</code></em> ()</p></td>
-<td class="struct_member_description"><p>Optional.
-Allows for a custom sink getcaps implementation (e.g.
-for multichannel input specification).  If not implemented,
-default returns gst_video_encoder_proxy_getcaps
-applied to sink template caps.</p></td>
-<td class="struct_member_annotations"> </td>
-</tr>
-<tr>
-<td class="struct_member_name"><p><em class="structfield"><code><a name="GstVideoEncoderClass.sink-event"></a>sink_event</code></em> ()</p></td>
-<td class="struct_member_description"><p>Optional.
-Event handler on the sink pad. This function should return
-TRUE if the event was handled and should be discarded
-(i.e. not unref'ed).
-Subclasses should chain up to the parent implementation to
-invoke the default handler.</p></td>
-<td class="struct_member_annotations"> </td>
-</tr>
-<tr>
-<td class="struct_member_name"><p><em class="structfield"><code><a name="GstVideoEncoderClass.src-event"></a>src_event</code></em> ()</p></td>
-<td class="struct_member_description"><p>Optional.
-Event handler on the source pad. This function should return
-TRUE if the event was handled and should be discarded
-(i.e. not unref'ed).
-Subclasses should chain up to the parent implementation to
-invoke the default handler.</p></td>
-<td class="struct_member_annotations"> </td>
-</tr>
-<tr>
-<td class="struct_member_name"><p><em class="structfield"><code><a name="GstVideoEncoderClass.negotiate"></a>negotiate</code></em> ()</p></td>
-<td class="struct_member_description"><p>Optional.
-Negotiate with downstream and configure buffer pools, etc.
-Subclasses should chain up to the parent implementation to
-invoke the default handler.</p></td>
-<td class="struct_member_annotations"> </td>
-</tr>
-<tr>
-<td class="struct_member_name"><p><em class="structfield"><code><a name="GstVideoEncoderClass.decide-allocation"></a>decide_allocation</code></em> ()</p></td>
-<td class="struct_member_description"><p>Optional.
-Setup the allocation parameters for allocating output
-buffers. The passed in query contains the result of the
-downstream allocation query.
-Subclasses should chain up to the parent implementation to
-invoke the default handler.</p></td>
-<td class="struct_member_annotations"> </td>
-</tr>
-<tr>
-<td class="struct_member_name"><p><em class="structfield"><code><a name="GstVideoEncoderClass.propose-allocation"></a>propose_allocation</code></em> ()</p></td>
-<td class="struct_member_description"><p>Optional.
-Propose buffer allocation parameters for upstream elements.
-Subclasses should chain up to the parent implementation to
-invoke the default handler.</p></td>
-<td class="struct_member_annotations"> </td>
-</tr>
-<tr>
-<td class="struct_member_name"><p><em class="structfield"><code><a name="GstVideoEncoderClass.flush"></a>flush</code></em> ()</p></td>
-<td class="struct_member_description"><p>Optional.
-Flush all remaining data from the encoder without
-pushing it downstream. Since: 1.2</p></td>
-<td class="struct_member_annotations"> </td>
-</tr>
-<tr>
-<td class="struct_member_name"><p><em class="structfield"><code><a name="GstVideoEncoderClass.sink-query"></a>sink_query</code></em> ()</p></td>
-<td class="struct_member_description"><p>Optional.
-Query handler on the sink pad. This function should
-return TRUE if the query could be performed. Subclasses
-should chain up to the parent implementation to invoke the
-default handler. Since 1.4</p></td>
-<td class="struct_member_annotations"> </td>
-</tr>
-<tr>
-<td class="struct_member_name"><p><em class="structfield"><code><a name="GstVideoEncoderClass.src-query"></a>src_query</code></em> ()</p></td>
-<td class="struct_member_description"><p>Optional.
-Query handler on the source pad. This function should
-return TRUE if the query could be performed. Subclasses
-should chain up to the parent implementation to invoke the
-default handler. Since 1.4</p></td>
-<td class="struct_member_annotations"> </td>
-</tr>
-<tr>
-<td class="struct_member_name"><p><em class="structfield"><code><a name="GstVideoEncoderClass.transform-meta"></a>transform_meta</code></em> ()</p></td>
-<td class="struct_member_description"><p>Optional. Transform the metadata on the input buffer to the
-output buffer. By default this method is copies all meta without
-tags and meta with only the "video" tag. subclasses can
-implement this method and return <a href="/usr/share/gtk-doc/html/glibglib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a> if the metadata is to be
-copied. Since 1.6</p></td>
-<td class="struct_member_annotations"> </td>
-</tr>
-</tbody>
-</table></div>
-</div>
 </div>
 </div>
 </div>
diff --git a/docs/libs/html/gst-plugins-base-libs-GstVideoPool.html b/docs/libs/html/gst-plugins-base-libs-GstVideoPool.html
index ee30e51..e286e49 100644
--- a/docs/libs/html/gst-plugins-base-libs-GstVideoPool.html
+++ b/docs/libs/html/gst-plugins-base-libs-GstVideoPool.html
@@ -27,7 +27,7 @@
 <div class="refnamediv"><table width="100%"><tr>
 <td valign="top">
 <h2><span class="refentrytitle"><a name="gst-plugins-base-libs-GstVideoPool.top_of_page"></a>GstVideoPool</span></h2>
-<p>GstVideoPool — GstBufferPool for raw video buffers</p>
+<p>GstVideoPool</p>
 </td>
 <td class="gallery_image" valign="top" align="right"></td>
 </tr></table></div>
@@ -100,10 +100,6 @@
 </div>
 <div class="refsect1">
 <a name="gst-plugins-base-libs-GstVideoPool.description"></a><h2>Description</h2>
-<p>Special GstBufferPool subclass for raw video buffers.</p>
-<p>Allows configuration of video-specific requirements such as
-stride alignments or pixel padding, and can also be configured
-to automatically add <a class="link" href="gst-plugins-base-libs-gstvideometa.html#GstVideoMeta" title="struct GstVideoMeta"><span class="type">GstVideoMeta</span></a> to the buffers.</p>
 </div>
 <div class="refsect1">
 <a name="gst-plugins-base-libs-GstVideoPool.functions_details"></a><h2>Functions</h2>
@@ -111,13 +107,6 @@
 <a name="gst-video-buffer-pool-new"></a><h3>gst_video_buffer_pool_new ()</h3>
 <pre class="programlisting"><a href="/usr/share/gtk-doc/html/gstreamer-1.0GstBufferPool.html#GstBufferPool-struct"><span class="returnvalue">GstBufferPool</span></a> *
 gst_video_buffer_pool_new (<em class="parameter"><code><span class="type">void</span></code></em>);</pre>
-<p>Create a new bufferpool that can allocate video frames. This bufferpool
-supports all the video bufferpool options.</p>
-<div class="refsect3">
-<a name="gst-video-buffer-pool-new.returns"></a><h4>Returns</h4>
-<p> a new <a href="/usr/share/gtk-doc/html/gstreamer-1.0GstBufferPool.html#GstBufferPool-struct"><span class="type">GstBufferPool</span></a> to allocate video frames. </p>
-<p><span class="annotation">[<acronym title="Alias for transfer none, used for objects with floating refs."><span class="acronym">transfer floating</span></acronym>]</span></p>
-</div>
 </div>
 <hr>
 <div class="refsect2">
@@ -126,37 +115,6 @@
 gst_buffer_pool_config_get_video_alignment
                                (<em class="parameter"><code><a href="/usr/share/gtk-doc/html/gstreamer-1.0GstStructure.html#GstStructure-struct"><span class="type">GstStructure</span></a> *config</code></em>,
                                 <em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstvideo.html#GstVideoAlignment" title="struct GstVideoAlignment"><span class="type">GstVideoAlignment</span></a> *align</code></em>);</pre>
-<p>Get the video alignment from the bufferpool configuration <em class="parameter"><code>config</code></em>
- in
-in <em class="parameter"><code>align</code></em>
-</p>
-<div class="refsect3">
-<a name="gst-buffer-pool-config-get-video-alignment.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>config</p></td>
-<td class="parameter_description"><p>a <a href="/usr/share/gtk-doc/html/gstreamer-1.0GstStructure.html#GstStructure-struct"><span class="type">GstStructure</span></a></p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-<tr>
-<td class="parameter_name"><p>align</p></td>
-<td class="parameter_description"><p>a <a class="link" href="gst-plugins-base-libs-gstvideo.html#GstVideoAlignment" title="struct GstVideoAlignment"><span class="type">GstVideoAlignment</span></a></p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-</tbody>
-</table></div>
-</div>
-<div class="refsect3">
-<a name="gst-buffer-pool-config-get-video-alignment.returns"></a><h4>Returns</h4>
-<p> <a href="/usr/share/gtk-doc/html/glibglib-Standard-Macros.html#TRUE:CAPS"><span class="type">TRUE</span></a> if <em class="parameter"><code>config</code></em>
-could be parsed correctly.</p>
-</div>
 </div>
 <hr>
 <div class="refsect2">
@@ -165,32 +123,6 @@
 gst_buffer_pool_config_set_video_alignment
                                (<em class="parameter"><code><a href="/usr/share/gtk-doc/html/gstreamer-1.0GstStructure.html#GstStructure-struct"><span class="type">GstStructure</span></a> *config</code></em>,
                                 <em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstvideo.html#GstVideoAlignment" title="struct GstVideoAlignment"><span class="type">GstVideoAlignment</span></a> *align</code></em>);</pre>
-<p>Set the video alignment in <em class="parameter"><code>align</code></em>
- to the bufferpool configuration
-<em class="parameter"><code>config</code></em>
-</p>
-<div class="refsect3">
-<a name="gst-buffer-pool-config-set-video-alignment.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>config</p></td>
-<td class="parameter_description"><p>a <a href="/usr/share/gtk-doc/html/gstreamer-1.0GstStructure.html#GstStructure-struct"><span class="type">GstStructure</span></a></p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-<tr>
-<td class="parameter_name"><p>align</p></td>
-<td class="parameter_description"><p>a <a class="link" href="gst-plugins-base-libs-gstvideo.html#GstVideoAlignment" title="struct GstVideoAlignment"><span class="type">GstVideoAlignment</span></a></p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-</tbody>
-</table></div>
-</div>
 </div>
 </div>
 <div class="refsect1">
@@ -217,24 +149,14 @@
 <a name="GST-BUFFER-POOL-OPTION-VIDEO-ALIGNMENT:CAPS"></a><h3>GST_BUFFER_POOL_OPTION_VIDEO_ALIGNMENT</h3>
 <pre class="programlisting">#define GST_BUFFER_POOL_OPTION_VIDEO_ALIGNMENT "GstBufferPoolOptionVideoAlignment"
 </pre>
-<p>A bufferpool option to enable extra padding. When a bufferpool supports this
-option, <a class="link" href="gst-plugins-base-libs-GstVideoPool.html#gst-buffer-pool-config-set-video-alignment" title="gst_buffer_pool_config_set_video_alignment ()"><code class="function">gst_buffer_pool_config_set_video_alignment()</code></a> can be called.</p>
-<p>When this option is enabled on the bufferpool,
-<a class="link" href="gst-plugins-base-libs-GstVideoPool.html#GST-BUFFER-POOL-OPTION-VIDEO-META:CAPS" title="GST_BUFFER_POOL_OPTION_VIDEO_META"><span class="type">GST_BUFFER_POOL_OPTION_VIDEO_META</span></a> should also be enabled.</p>
 </div>
 <hr>
 <div class="refsect2">
 <a name="GST-BUFFER-POOL-OPTION-VIDEO-META:CAPS"></a><h3>GST_BUFFER_POOL_OPTION_VIDEO_META</h3>
 <pre class="programlisting">#define GST_BUFFER_POOL_OPTION_VIDEO_META "GstBufferPoolOptionVideoMeta"
 </pre>
-<p>An option that can be activated on bufferpool to request video metadata
-on buffers from the pool.</p>
 </div>
 </div>
-<div class="refsect1">
-<a name="gst-plugins-base-libs-GstVideoPool.see-also"></a><h2>See Also</h2>
-<p><a href="/usr/share/gtk-doc/html/gstreamer-1.0GstBufferPool.html#GstBufferPool-struct"><span class="type">GstBufferPool</span></a></p>
-</div>
 </div>
 <div class="footer">
 <hr>Generated by GTK-Doc V1.25</div>
diff --git a/docs/libs/html/gst-plugins-base-libs-GstVideoResampler.html b/docs/libs/html/gst-plugins-base-libs-GstVideoResampler.html
index 16dd037..2006eee 100644
--- a/docs/libs/html/gst-plugins-base-libs-GstVideoResampler.html
+++ b/docs/libs/html/gst-plugins-base-libs-GstVideoResampler.html
@@ -27,7 +27,7 @@
 <div class="refnamediv"><table width="100%"><tr>
 <td valign="top">
 <h2><span class="refentrytitle"><a name="gst-plugins-base-libs-GstVideoResampler.top_of_page"></a>GstVideoResampler</span></h2>
-<p>GstVideoResampler — Utility structure for resampler information</p>
+<p>GstVideoResampler</p>
 </td>
 <td class="gallery_image" valign="top" align="right"></td>
 </tr></table></div>
@@ -112,8 +112,6 @@
 </div>
 <div class="refsect1">
 <a name="gst-plugins-base-libs-GstVideoResampler.description"></a><h2>Description</h2>
-<p><a class="link" href="gst-plugins-base-libs-GstVideoResampler.html#GstVideoResampler" title="struct GstVideoResampler"><span class="type">GstVideoResampler</span></a> is a structure which holds the information
-required to perform various kinds of resampling filtering.</p>
 </div>
 <div class="refsect1">
 <a name="gst-plugins-base-libs-GstVideoResampler.functions_details"></a><h2>Functions</h2>
@@ -121,24 +119,6 @@
 <a name="gst-video-resampler-clear"></a><h3>gst_video_resampler_clear ()</h3>
 <pre class="programlisting"><span class="returnvalue">void</span>
 gst_video_resampler_clear (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-GstVideoResampler.html#GstVideoResampler" title="struct GstVideoResampler"><span class="type">GstVideoResampler</span></a> *resampler</code></em>);</pre>
-<p>Clear a previously initialized <a class="link" href="gst-plugins-base-libs-GstVideoResampler.html#GstVideoResampler" title="struct GstVideoResampler"><span class="type">GstVideoResampler</span></a> <em class="parameter"><code>resampler</code></em>
-.</p>
-<div class="refsect3">
-<a name="gst-video-resampler-clear.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>resampler</p></td>
-<td class="parameter_description"><p>a <a class="link" href="gst-plugins-base-libs-GstVideoResampler.html#GstVideoResampler" title="struct GstVideoResampler"><span class="type">GstVideoResampler</span></a></p></td>
-<td class="parameter_annotations"> </td>
-</tr></tbody>
-</table></div>
-</div>
-<p class="since">Since: 1.6</p>
 </div>
 <hr>
 <div class="refsect2">
@@ -170,65 +150,10 @@
   gdouble *taps;
 };
 </pre>
-<p>A structure holding resampler information.</p>
-<div class="refsect3">
-<a name="GstVideoResampler.members"></a><h4>Members</h4>
-<div class="informaltable"><table class="informaltable" width="100%" border="0">
-<colgroup>
-<col width="300px" class="struct_members_name">
-<col class="struct_members_description">
-<col width="200px" class="struct_members_annotations">
-</colgroup>
-<tbody>
-<tr>
-<td class="struct_member_name"><p><a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#gint"><span class="type">gint</span></a> <em class="structfield"><code><a name="GstVideoResampler.in-size"></a>in_size</code></em>;</p></td>
-<td class="struct_member_description"><p>the input size</p></td>
-<td class="struct_member_annotations"> </td>
-</tr>
-<tr>
-<td class="struct_member_name"><p><a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#gint"><span class="type">gint</span></a> <em class="structfield"><code><a name="GstVideoResampler.out-size"></a>out_size</code></em>;</p></td>
-<td class="struct_member_description"><p>the output size</p></td>
-<td class="struct_member_annotations"> </td>
-</tr>
-<tr>
-<td class="struct_member_name"><p><a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#guint"><span class="type">guint</span></a> <em class="structfield"><code><a name="GstVideoResampler.max-taps"></a>max_taps</code></em>;</p></td>
-<td class="struct_member_description"><p>the maximum number of taps</p></td>
-<td class="struct_member_annotations"> </td>
-</tr>
-<tr>
-<td class="struct_member_name"><p><a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#guint"><span class="type">guint</span></a> <em class="structfield"><code><a name="GstVideoResampler.n-phases"></a>n_phases</code></em>;</p></td>
-<td class="struct_member_description"><p>the number of phases</p></td>
-<td class="struct_member_annotations"> </td>
-</tr>
-<tr>
-<td class="struct_member_name"><p><a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#guint32"><span class="type">guint32</span></a> *<em class="structfield"><code><a name="GstVideoResampler.offset"></a>offset</code></em>;</p></td>
-<td class="struct_member_description"><p>array with the source offset for each output element</p></td>
-<td class="struct_member_annotations"> </td>
-</tr>
-<tr>
-<td class="struct_member_name"><p><a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#guint32"><span class="type">guint32</span></a> *<em class="structfield"><code><a name="GstVideoResampler.phase"></a>phase</code></em>;</p></td>
-<td class="struct_member_description"><p>array with the phase to use for each output element</p></td>
-<td class="struct_member_annotations"> </td>
-</tr>
-<tr>
-<td class="struct_member_name"><p><a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#guint32"><span class="type">guint32</span></a> *<em class="structfield"><code><a name="GstVideoResampler.n-taps"></a>n_taps</code></em>;</p></td>
-<td class="struct_member_description"><p>array with new number of taps for each phase</p></td>
-<td class="struct_member_annotations"> </td>
-</tr>
-<tr>
-<td class="struct_member_name"><p><a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#gdouble"><span class="type">gdouble</span></a> *<em class="structfield"><code><a name="GstVideoResampler.taps"></a>taps</code></em>;</p></td>
-<td class="struct_member_description"><p>the taps for all phases</p></td>
-<td class="struct_member_annotations"> </td>
-</tr>
-</tbody>
-</table></div>
-</div>
-<p class="since">Since: 1.6</p>
 </div>
 <hr>
 <div class="refsect2">
 <a name="GstVideoResamplerFlags"></a><h3>enum GstVideoResamplerFlags</h3>
-<p>Different resampler flags.</p>
 <div class="refsect3">
 <a name="GstVideoResamplerFlags.members"></a><h4>Members</h4>
 <div class="informaltable"><table class="informaltable" width="100%" border="0">
@@ -237,21 +162,24 @@
 <col class="enum_members_description">
 <col width="200px" class="enum_members_annotations">
 </colgroup>
-<tbody><tr>
+<tbody>
+<tr>
 <td class="enum_member_name"><p><a name="GST-VIDEO-RESAMPLER-FLAG-NONE:CAPS"></a>GST_VIDEO_RESAMPLER_FLAG_NONE</p></td>
-<td class="enum_member_description">
-<p>no flags</p>
-</td>
-<td class="enum_member_annotations"> </td>
-</tr></tbody>
+<td> </td>
+<td> </td>
+</tr>
+<tr>
+<td class="enum_member_name"><p><a name="GST-VIDEO-RESAMPLER-FLAG-HALF-TAPS:CAPS"></a>GST_VIDEO_RESAMPLER_FLAG_HALF_TAPS</p></td>
+<td> </td>
+<td> </td>
+</tr>
+</tbody>
 </table></div>
 </div>
-<p class="since">Since: 1.6</p>
 </div>
 <hr>
 <div class="refsect2">
 <a name="GstVideoResamplerMethod"></a><h3>enum GstVideoResamplerMethod</h3>
-<p>Different subsampling and upsampling methods</p>
 <div class="refsect3">
 <a name="GstVideoResamplerMethod.members"></a><h4>Members</h4>
 <div class="informaltable"><table class="informaltable" width="100%" border="0">
@@ -263,113 +191,68 @@
 <tbody>
 <tr>
 <td class="enum_member_name"><p><a name="GST-VIDEO-RESAMPLER-METHOD-NEAREST:CAPS"></a>GST_VIDEO_RESAMPLER_METHOD_NEAREST</p></td>
-<td class="enum_member_description">
-<p>Duplicates the samples when
-   upsampling and drops when downsampling</p>
-</td>
-<td class="enum_member_annotations"> </td>
+<td> </td>
+<td> </td>
 </tr>
 <tr>
 <td class="enum_member_name"><p><a name="GST-VIDEO-RESAMPLER-METHOD-LINEAR:CAPS"></a>GST_VIDEO_RESAMPLER_METHOD_LINEAR</p></td>
-<td class="enum_member_description">
-<p>Uses linear interpolation to reconstruct
-   missing samples and averaging to downsample</p>
-</td>
-<td class="enum_member_annotations"> </td>
+<td> </td>
+<td> </td>
 </tr>
 <tr>
 <td class="enum_member_name"><p><a name="GST-VIDEO-RESAMPLER-METHOD-CUBIC:CAPS"></a>GST_VIDEO_RESAMPLER_METHOD_CUBIC</p></td>
-<td class="enum_member_description">
-<p>Uses cubic interpolation</p>
-</td>
-<td class="enum_member_annotations"> </td>
+<td> </td>
+<td> </td>
 </tr>
 <tr>
 <td class="enum_member_name"><p><a name="GST-VIDEO-RESAMPLER-METHOD-SINC:CAPS"></a>GST_VIDEO_RESAMPLER_METHOD_SINC</p></td>
-<td class="enum_member_description">
-<p>Uses sinc interpolation</p>
-</td>
-<td class="enum_member_annotations"> </td>
+<td> </td>
+<td> </td>
 </tr>
 <tr>
 <td class="enum_member_name"><p><a name="GST-VIDEO-RESAMPLER-METHOD-LANCZOS:CAPS"></a>GST_VIDEO_RESAMPLER_METHOD_LANCZOS</p></td>
-<td class="enum_member_description">
-<p>Uses lanczos interpolation</p>
-</td>
-<td class="enum_member_annotations"> </td>
+<td> </td>
+<td> </td>
 </tr>
 </tbody>
 </table></div>
 </div>
-<p class="since">Since: 1.6</p>
 </div>
 <hr>
 <div class="refsect2">
 <a name="GST-VIDEO-RESAMPLER-OPT-CUBIC-B:CAPS"></a><h3>GST_VIDEO_RESAMPLER_OPT_CUBIC_B</h3>
 <pre class="programlisting">#define GST_VIDEO_RESAMPLER_OPT_CUBIC_B      "GstVideoResampler.cubic-b"
 </pre>
-<p>G_TYPE_DOUBLE, B parameter of the cubic filter. The B
-parameter controls the bluriness. Values between 0.0 and
-2.0 are accepted. 1/3 is the default.</p>
-<p>Below are some values of popular filters:
-                   B       C
-Hermite           0.0     0.0
-Spline            1.0     0.0
-Catmull-Rom       0.0     1/2
-Mitchell          1/3     1/3
-Robidoux          0.3782  0.3109
-Robidoux
- Sharp            0.2620  0.3690
-Robidoux
- Soft             0.6796  0.1602</p>
 </div>
 <hr>
 <div class="refsect2">
 <a name="GST-VIDEO-RESAMPLER-OPT-CUBIC-C:CAPS"></a><h3>GST_VIDEO_RESAMPLER_OPT_CUBIC_C</h3>
 <pre class="programlisting">#define GST_VIDEO_RESAMPLER_OPT_CUBIC_C      "GstVideoResampler.cubic-c"
 </pre>
-<p>G_TYPE_DOUBLE, C parameter of the cubic filter. The C
-parameter controls the Keys alpha value. Values between 0.0 and
-2.0 are accepted. 1/3 is the default.</p>
-<p>See <a class="link" href="gst-plugins-base-libs-GstVideoResampler.html#GST-VIDEO-RESAMPLER-OPT-CUBIC-B:CAPS" title="GST_VIDEO_RESAMPLER_OPT_CUBIC_B"><span class="type">GST_VIDEO_RESAMPLER_OPT_CUBIC_B</span></a> for some more common values</p>
 </div>
 <hr>
 <div class="refsect2">
 <a name="GST-VIDEO-RESAMPLER-OPT-ENVELOPE:CAPS"></a><h3>GST_VIDEO_RESAMPLER_OPT_ENVELOPE</h3>
 <pre class="programlisting">#define GST_VIDEO_RESAMPLER_OPT_ENVELOPE      "GstVideoResampler.envelope"
 </pre>
-<p>G_TYPE_DOUBLE, specifies the size of filter envelope for
-<em class="parameter"><code>GST_VIDEO_RESAMPLER_METHOD_LANCZOS</code></em>
-. values are clamped between
-1.0 and 5.0. 2.0 is the default.</p>
 </div>
 <hr>
 <div class="refsect2">
 <a name="GST-VIDEO-RESAMPLER-OPT-MAX-TAPS:CAPS"></a><h3>GST_VIDEO_RESAMPLER_OPT_MAX_TAPS</h3>
 <pre class="programlisting">#define GST_VIDEO_RESAMPLER_OPT_MAX_TAPS     "GstVideoResampler.max-taps"
 </pre>
-<p>G_TYPE_INT, limits the maximum number of taps to use.
-16 is the default.</p>
 </div>
 <hr>
 <div class="refsect2">
 <a name="GST-VIDEO-RESAMPLER-OPT-SHARPEN:CAPS"></a><h3>GST_VIDEO_RESAMPLER_OPT_SHARPEN</h3>
 <pre class="programlisting">#define GST_VIDEO_RESAMPLER_OPT_SHARPEN      "GstVideoResampler.sharpen"
 </pre>
-<p>G_TYPE_DOUBLE, specifies sharpening of the filter for
-<em class="parameter"><code>GST_VIDEO_RESAMPLER_METHOD_LANCZOS</code></em>
-. values are clamped between
-0.0 and 1.0. 0.0 is the default.</p>
 </div>
 <hr>
 <div class="refsect2">
 <a name="GST-VIDEO-RESAMPLER-OPT-SHARPNESS:CAPS"></a><h3>GST_VIDEO_RESAMPLER_OPT_SHARPNESS</h3>
 <pre class="programlisting">#define GST_VIDEO_RESAMPLER_OPT_SHARPNESS     "GstVideoResampler.sharpness"
 </pre>
-<p>G_TYPE_DOUBLE, specifies sharpness of the filter for
-<em class="parameter"><code>GST_VIDEO_RESAMPLER_METHOD_LANCZOS</code></em>
-. values are clamped between
-0.5 and 1.5. 1.0 is the default.</p>
 </div>
 </div>
 </div>
diff --git a/docs/libs/html/gst-plugins-base-libs-GstVideoScaler.html b/docs/libs/html/gst-plugins-base-libs-GstVideoScaler.html
index 8c69cea..9760faf 100644
--- a/docs/libs/html/gst-plugins-base-libs-GstVideoScaler.html
+++ b/docs/libs/html/gst-plugins-base-libs-GstVideoScaler.html
@@ -27,7 +27,7 @@
 <div class="refnamediv"><table width="100%"><tr>
 <td valign="top">
 <h2><span class="refentrytitle"><a name="gst-plugins-base-libs-GstVideoScaler.top_of_page"></a>GstVideoScaler</span></h2>
-<p>GstVideoScaler — Utility object for rescaling video frames</p>
+<p>GstVideoScaler</p>
 </td>
 <td class="gallery_image" valign="top" align="right"></td>
 </tr></table></div>
@@ -123,8 +123,6 @@
 </div>
 <div class="refsect1">
 <a name="gst-plugins-base-libs-GstVideoScaler.description"></a><h2>Description</h2>
-<p><a class="link" href="gst-plugins-base-libs-GstVideoScaler.html#GstVideoScaler" title="GstVideoScaler"><span class="type">GstVideoScaler</span></a> is a utility object for rescaling and resampling
-video frames using various interpolation / sampling methods.</p>
 </div>
 <div class="refsect1">
 <a name="gst-plugins-base-libs-GstVideoScaler.functions_details"></a><h2>Functions</h2>
@@ -142,91 +140,6 @@
                      <em class="parameter"><code><a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#guint"><span class="type">guint</span></a> y</code></em>,
                      <em class="parameter"><code><a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#guint"><span class="type">guint</span></a> width</code></em>,
                      <em class="parameter"><code><a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#guint"><span class="type">guint</span></a> height</code></em>);</pre>
-<p>Scale a rectangle of pixels in <em class="parameter"><code>src</code></em>
- with <em class="parameter"><code>src_stride</code></em>
- to <em class="parameter"><code>dest</code></em>
- with
-<em class="parameter"><code>dest_stride</code></em>
- using the horizontal scaler <em class="parameter"><code>hscaler</code></em>
- and the vertical
-scaler <em class="parameter"><code>vscale</code></em>
-.</p>
-<p>One or both of <em class="parameter"><code>hscale</code></em>
- and <em class="parameter"><code>vscale</code></em>
- can be NULL to only perform scaling in
-one dimension or do a copy without scaling.</p>
-<p><em class="parameter"><code>x</code></em>
- and <em class="parameter"><code>y</code></em>
- are the coordinates in the destination image to process.</p>
-<div class="refsect3">
-<a name="gst-video-scaler-2d.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>hscale</p></td>
-<td class="parameter_description"><p>a horzontal <a class="link" href="gst-plugins-base-libs-GstVideoScaler.html#GstVideoScaler" title="GstVideoScaler"><span class="type">GstVideoScaler</span></a></p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-<tr>
-<td class="parameter_name"><p>vscale</p></td>
-<td class="parameter_description"><p>a vertical <a class="link" href="gst-plugins-base-libs-GstVideoScaler.html#GstVideoScaler" title="GstVideoScaler"><span class="type">GstVideoScaler</span></a></p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-<tr>
-<td class="parameter_name"><p>format</p></td>
-<td class="parameter_description"><p>a <a class="link" href="gst-plugins-base-libs-gstvideo.html#GstVideoFormat" title="enum GstVideoFormat"><span class="type">GstVideoFormat</span></a> for <em class="parameter"><code>srcs</code></em>
-and <em class="parameter"><code>dest</code></em>
-</p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-<tr>
-<td class="parameter_name"><p>src</p></td>
-<td class="parameter_description"><p>source pixels</p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-<tr>
-<td class="parameter_name"><p>src_stride</p></td>
-<td class="parameter_description"><p>source pixels stride</p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-<tr>
-<td class="parameter_name"><p>dest</p></td>
-<td class="parameter_description"><p>destination pixels</p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-<tr>
-<td class="parameter_name"><p>dest_stride</p></td>
-<td class="parameter_description"><p>destination pixels stride</p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-<tr>
-<td class="parameter_name"><p>x</p></td>
-<td class="parameter_description"><p>the horizontal destination offset</p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-<tr>
-<td class="parameter_name"><p>y</p></td>
-<td class="parameter_description"><p>the vertical destination offset</p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-<tr>
-<td class="parameter_name"><p>width</p></td>
-<td class="parameter_description"><p>the number of output pixels to scale</p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-<tr>
-<td class="parameter_name"><p>height</p></td>
-<td class="parameter_description"><p>the number of output lines to scale</p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-</tbody>
-</table></div>
-</div>
 </div>
 <hr>
 <div class="refsect2">
@@ -236,70 +149,12 @@
                                      <em class="parameter"><code><a class="link" href="gst-plugins-base-libs-GstVideoScaler.html#GstVideoScaler" title="GstVideoScaler"><span class="type">GstVideoScaler</span></a> *uv_scale</code></em>,
                                      <em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstvideo.html#GstVideoFormat" title="enum GstVideoFormat"><span class="type">GstVideoFormat</span></a> in_format</code></em>,
                                      <em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstvideo.html#GstVideoFormat" title="enum GstVideoFormat"><span class="type">GstVideoFormat</span></a> out_format</code></em>);</pre>
-<p>Combine a scaler for Y and UV into one scaler for the packed <em class="parameter"><code>format</code></em>
-.</p>
-<p><span class="annotation">[<acronym title="Exposed in C code, not necessarily available in other languages."><span class="acronym">skip</span></acronym>]</span></p>
-<div class="refsect3">
-<a name="gst-video-scaler-combine-packed-YUV.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>y_scale</p></td>
-<td class="parameter_description"><p>a scaler for the Y component</p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-<tr>
-<td class="parameter_name"><p>uv_scale</p></td>
-<td class="parameter_description"><p>a scaler for the U and V components</p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-<tr>
-<td class="parameter_name"><p>in_format</p></td>
-<td class="parameter_description"><p>the input video format</p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-<tr>
-<td class="parameter_name"><p>out_format</p></td>
-<td class="parameter_description"><p>the output video format</p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-</tbody>
-</table></div>
-</div>
-<div class="refsect3">
-<a name="gst-video-scaler-combine-packed-YUV.returns"></a><h4>Returns</h4>
-<p> a new horizontal videoscaler for <em class="parameter"><code>format</code></em>
-.</p>
-</div>
-<p class="since">Since: 1.6</p>
 </div>
 <hr>
 <div class="refsect2">
 <a name="gst-video-scaler-free"></a><h3>gst_video_scaler_free ()</h3>
 <pre class="programlisting"><span class="returnvalue">void</span>
 gst_video_scaler_free (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-GstVideoScaler.html#GstVideoScaler" title="GstVideoScaler"><span class="type">GstVideoScaler</span></a> *scale</code></em>);</pre>
-<p>Free a previously allocated <a class="link" href="gst-plugins-base-libs-GstVideoScaler.html#GstVideoScaler" title="GstVideoScaler"><span class="type">GstVideoScaler</span></a> <em class="parameter"><code>scale</code></em>
-.</p>
-<div class="refsect3">
-<a name="gst-video-scaler-free.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>scale</p></td>
-<td class="parameter_description"><p>a <a class="link" href="gst-plugins-base-libs-GstVideoScaler.html#GstVideoScaler" title="GstVideoScaler"><span class="type">GstVideoScaler</span></a></p></td>
-<td class="parameter_annotations"> </td>
-</tr></tbody>
-</table></div>
-</div>
 </div>
 <hr>
 <div class="refsect2">
@@ -309,51 +164,6 @@
                             <em class="parameter"><code><a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#guint"><span class="type">guint</span></a> out_offset</code></em>,
                             <em class="parameter"><code><a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#guint"><span class="type">guint</span></a> *in_offset</code></em>,
                             <em class="parameter"><code><a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#guint"><span class="type">guint</span></a> *n_taps</code></em>);</pre>
-<p>For a given pixel at <em class="parameter"><code>out_offset</code></em>
-, get the first required input pixel at
-<em class="parameter"><code>in_offset</code></em>
- and the <em class="parameter"><code>n_taps</code></em>
- filter coefficients.</p>
-<p>Note that for interlaced content, <em class="parameter"><code>in_offset</code></em>
- needs to be incremented with
-2 to get the next input line.</p>
-<div class="refsect3">
-<a name="gst-video-scaler-get-coeff.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>scale</p></td>
-<td class="parameter_description"><p>a <a class="link" href="gst-plugins-base-libs-GstVideoScaler.html#GstVideoScaler" title="GstVideoScaler"><span class="type">GstVideoScaler</span></a></p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-<tr>
-<td class="parameter_name"><p>out_offset</p></td>
-<td class="parameter_description"><p>an output offset</p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-<tr>
-<td class="parameter_name"><p>in_offset</p></td>
-<td class="parameter_description"><p>result input offset</p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-<tr>
-<td class="parameter_name"><p>n_taps</p></td>
-<td class="parameter_description"><p>result n_taps</p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-</tbody>
-</table></div>
-</div>
-<div class="refsect3">
-<a name="gst-video-scaler-get-coeff.returns"></a><h4>Returns</h4>
-<p> an array of <em class="parameter"><code>n_tap</code></em>
-gdouble values with filter coefficients.</p>
-</div>
 </div>
 <hr>
 <div class="refsect2">
@@ -365,56 +175,6 @@
                              <em class="parameter"><code><a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> dest</code></em>,
                              <em class="parameter"><code><a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#guint"><span class="type">guint</span></a> dest_offset</code></em>,
                              <em class="parameter"><code><a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#guint"><span class="type">guint</span></a> width</code></em>);</pre>
-<p>Horizontally scale the pixels in <em class="parameter"><code>src</code></em>
- to <em class="parameter"><code>dest</code></em>
-, starting from <em class="parameter"><code>dest_offset</code></em>
-
-for <em class="parameter"><code>width</code></em>
- samples.</p>
-<div class="refsect3">
-<a name="gst-video-scaler-horizontal.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>scale</p></td>
-<td class="parameter_description"><p>a <a class="link" href="gst-plugins-base-libs-GstVideoScaler.html#GstVideoScaler" title="GstVideoScaler"><span class="type">GstVideoScaler</span></a></p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-<tr>
-<td class="parameter_name"><p>format</p></td>
-<td class="parameter_description"><p>a <a class="link" href="gst-plugins-base-libs-gstvideo.html#GstVideoFormat" title="enum GstVideoFormat"><span class="type">GstVideoFormat</span></a> for <em class="parameter"><code>src</code></em>
-and <em class="parameter"><code>dest</code></em>
-</p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-<tr>
-<td class="parameter_name"><p>src</p></td>
-<td class="parameter_description"><p>source pixels</p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-<tr>
-<td class="parameter_name"><p>dest</p></td>
-<td class="parameter_description"><p>destination pixels</p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-<tr>
-<td class="parameter_name"><p>dest_offset</p></td>
-<td class="parameter_description"><p>the horizontal destination offset</p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-<tr>
-<td class="parameter_name"><p>width</p></td>
-<td class="parameter_description"><p>the number of pixels to scale</p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-</tbody>
-</table></div>
-</div>
 </div>
 <hr>
 <div class="refsect2">
@@ -426,65 +186,6 @@
                       <em class="parameter"><code><a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#guint"><span class="type">guint</span></a> in_size</code></em>,
                       <em class="parameter"><code><a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#guint"><span class="type">guint</span></a> out_size</code></em>,
                       <em class="parameter"><code><a href="/usr/share/gtk-doc/html/gstreamer-1.0GstStructure.html#GstStructure-struct"><span class="type">GstStructure</span></a> *options</code></em>);</pre>
-<p>Make a new <em class="parameter"><code>method</code></em>
- video scaler. <em class="parameter"><code>in_size</code></em>
- source lines/pixels will
-be scaled to <em class="parameter"><code>out_size</code></em>
- destination lines/pixels.</p>
-<p><em class="parameter"><code>n_taps</code></em>
- specifies the amount of pixels to use from the source for one output
-pixel. If n_taps is 0, this function chooses a good value automatically based
-on the <em class="parameter"><code>method</code></em>
- and <em class="parameter"><code>in_size</code></em>
-/<em class="parameter"><code>out_size</code></em>
-.</p>
-<p><span class="annotation">[<acronym title="Exposed in C code, not necessarily available in other languages."><span class="acronym">skip</span></acronym>]</span></p>
-<div class="refsect3">
-<a name="gst-video-scaler-new.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>method</p></td>
-<td class="parameter_description"><p>a <a class="link" href="gst-plugins-base-libs-GstVideoResampler.html#GstVideoResamplerMethod" title="enum GstVideoResamplerMethod"><span class="type">GstVideoResamplerMethod</span></a></p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-<tr>
-<td class="parameter_name"><p>flags</p></td>
-<td class="parameter_description"><p><a class="link" href="gst-plugins-base-libs-GstVideoScaler.html#GstVideoScalerFlags" title="enum GstVideoScalerFlags"><span class="type">GstVideoScalerFlags</span></a></p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-<tr>
-<td class="parameter_name"><p>n_taps</p></td>
-<td class="parameter_description"><p>number of taps to use</p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-<tr>
-<td class="parameter_name"><p>in_size</p></td>
-<td class="parameter_description"><p>number of source elements</p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-<tr>
-<td class="parameter_name"><p>out_size</p></td>
-<td class="parameter_description"><p>number of destination elements</p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-<tr>
-<td class="parameter_name"><p>options</p></td>
-<td class="parameter_description"><p> extra options. </p></td>
-<td class="parameter_annotations"><span class="annotation">[<acronym title="NULL is OK, both for passing and for returning."><span class="acronym">allow-none</span></acronym>]</span></td>
-</tr>
-</tbody>
-</table></div>
-</div>
-<div class="refsect3">
-<a name="gst-video-scaler-new.returns"></a><h4>Returns</h4>
-<p> a <span class="type">GstVideoResample</span></p>
-</div>
 </div>
 <hr>
 <div class="refsect2">
@@ -496,61 +197,6 @@
                            <em class="parameter"><code><a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> dest</code></em>,
                            <em class="parameter"><code><a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#guint"><span class="type">guint</span></a> dest_offset</code></em>,
                            <em class="parameter"><code><a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#guint"><span class="type">guint</span></a> width</code></em>);</pre>
-<p>Vertically combine <em class="parameter"><code>width</code></em>
- pixels in the lines in <em class="parameter"><code>src_lines</code></em>
- to <em class="parameter"><code>dest</code></em>
-.
-<em class="parameter"><code>dest</code></em>
- is the location of the target line at <em class="parameter"><code>dest_offset</code></em>
- and
-<em class="parameter"><code>srcs</code></em>
- are the input lines for <em class="parameter"><code>dest_offset</code></em>
-, as obtained with
-<code class="function">gst_video_scaler_get_info()</code>.</p>
-<div class="refsect3">
-<a name="gst-video-scaler-vertical.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>scale</p></td>
-<td class="parameter_description"><p>a <a class="link" href="gst-plugins-base-libs-GstVideoScaler.html#GstVideoScaler" title="GstVideoScaler"><span class="type">GstVideoScaler</span></a></p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-<tr>
-<td class="parameter_name"><p>format</p></td>
-<td class="parameter_description"><p>a <a class="link" href="gst-plugins-base-libs-gstvideo.html#GstVideoFormat" title="enum GstVideoFormat"><span class="type">GstVideoFormat</span></a> for <em class="parameter"><code>srcs</code></em>
-and <em class="parameter"><code>dest</code></em>
-</p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-<tr>
-<td class="parameter_name"><p>src_lines</p></td>
-<td class="parameter_description"><p>source pixels lines</p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-<tr>
-<td class="parameter_name"><p>dest</p></td>
-<td class="parameter_description"><p>destination pixels</p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-<tr>
-<td class="parameter_name"><p>dest_offset</p></td>
-<td class="parameter_description"><p>the vertical destination offset</p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-<tr>
-<td class="parameter_name"><p>width</p></td>
-<td class="parameter_description"><p>the number of pixels to scale</p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-</tbody>
-</table></div>
-</div>
 </div>
 </div>
 <div class="refsect1">
@@ -562,7 +208,6 @@
 <hr>
 <div class="refsect2">
 <a name="GstVideoScalerFlags"></a><h3>enum GstVideoScalerFlags</h3>
-<p>Different scale flags.</p>
 <div class="refsect3">
 <a name="GstVideoScalerFlags.members"></a><h4>Members</h4>
 <div class="informaltable"><table class="informaltable" width="100%" border="0">
@@ -574,17 +219,13 @@
 <tbody>
 <tr>
 <td class="enum_member_name"><p><a name="GST-VIDEO-SCALER-FLAG-NONE:CAPS"></a>GST_VIDEO_SCALER_FLAG_NONE</p></td>
-<td class="enum_member_description">
-<p>no flags</p>
-</td>
-<td class="enum_member_annotations"> </td>
+<td> </td>
+<td> </td>
 </tr>
 <tr>
 <td class="enum_member_name"><p><a name="GST-VIDEO-SCALER-FLAG-INTERLACED:CAPS"></a>GST_VIDEO_SCALER_FLAG_INTERLACED</p></td>
-<td class="enum_member_description">
-<p>Set up a scaler for interlaced content</p>
-</td>
-<td class="enum_member_annotations"> </td>
+<td> </td>
+<td> </td>
 </tr>
 </tbody>
 </table></div>
diff --git a/docs/libs/html/gst-plugins-base-libs-appsink.html b/docs/libs/html/gst-plugins-base-libs-appsink.html
index 1fdc197..bf1bb11 100644
--- a/docs/libs/html/gst-plugins-base-libs-appsink.html
+++ b/docs/libs/html/gst-plugins-base-libs-appsink.html
@@ -27,8 +27,7 @@
 <div class="refnamediv"><table width="100%"><tr>
 <td valign="top">
 <h2><span class="refentrytitle"><a name="gst-plugins-base-libs-appsink.top_of_page"></a>appsink</span></h2>
-<p>appsink — Easy way for applications to extract samples from a
-    pipeline</p>
+<p>appsink</p>
 </td>
 <td class="gallery_image" valign="top" align="right"></td>
 </tr></table></div>
@@ -159,33 +158,6 @@
 </div>
 <div class="refsect1">
 <a name="gst-plugins-base-libs-appsink.description"></a><h2>Description</h2>
-<p>Appsink is a sink plugin that supports many different methods for making
-the application get a handle on the GStreamer data in a pipeline. Unlike
-most GStreamer elements, Appsink provides external API functions.</p>
-<p>appsink can be used by linking to the gstappsink.h header file to access the
-methods or by using the appsink action signals and properties.</p>
-<p>The normal way of retrieving samples from appsink is by using the
-<a class="link" href="gst-plugins-base-libs-appsink.html#gst-app-sink-pull-sample" title="gst_app_sink_pull_sample ()"><code class="function">gst_app_sink_pull_sample()</code></a> and <a class="link" href="gst-plugins-base-libs-appsink.html#gst-app-sink-pull-preroll" title="gst_app_sink_pull_preroll ()"><code class="function">gst_app_sink_pull_preroll()</code></a> methods.
-These methods block until a sample becomes available in the sink or when the
-sink is shut down or reaches EOS.</p>
-<p>Appsink will internally use a queue to collect buffers from the streaming
-thread. If the application is not pulling samples fast enough, this queue
-will consume a lot of memory over time. The "max-buffers" property can be
-used to limit the queue size. The "drop" property controls whether the
-streaming thread blocks or if older buffers are dropped when the maximum
-queue size is reached. Note that blocking the streaming thread can negatively
-affect real-time performance and should be avoided.</p>
-<p>If a blocking behaviour is not desirable, setting the "emit-signals" property
-to <a href="/usr/share/gtk-doc/html/glibglib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a> will make appsink emit the "new-sample" and "new-preroll" signals
-when a sample can be pulled without blocking.</p>
-<p>The "caps" property on appsink can be used to control the formats that
-appsink can receive. This property can contain non-fixed caps, the format of
-the pulled samples can be obtained by getting the sample caps.</p>
-<p>If one of the pull-preroll or pull-sample methods return <a href="/usr/share/gtk-doc/html/glibglib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a>, the appsink
-is stopped or in the EOS state. You can check for the EOS state with the
-"eos" property or with the <a class="link" href="gst-plugins-base-libs-appsink.html#gst-app-sink-is-eos" title="gst_app_sink_is_eos ()"><code class="function">gst_app_sink_is_eos()</code></a> method.</p>
-<p>The eos signal can also be used to be informed when the EOS state is reached
-to avoid polling.</p>
 </div>
 <div class="refsect1">
 <a name="gst-plugins-base-libs-appsink.functions_details"></a><h2>Functions</h2>
@@ -194,91 +166,18 @@
 <pre class="programlisting"><span class="returnvalue">void</span>
 gst_app_sink_set_caps (<em class="parameter"><code><a href="/usr/share/gtk-doc/html/gst-plugins-base-plugins-1.0gst-plugins-base-plugins-appsink.html#GstAppSink-struct"><span class="type">GstAppSink</span></a> *appsink</code></em>,
                        <em class="parameter"><code>const <a href="/usr/share/gtk-doc/html/gstreamer-1.0GstCaps.html#GstCaps-struct"><span class="type">GstCaps</span></a> *caps</code></em>);</pre>
-<p>Set the capabilities on the appsink element.  This function takes
-a copy of the caps structure. After calling this method, the sink will only
-accept caps that match <em class="parameter"><code>caps</code></em>
-. If <em class="parameter"><code>caps</code></em>
- is non-fixed, or incomplete,
-you must check the caps on the samples to get the actual used caps.</p>
-<div class="refsect3">
-<a name="gst-app-sink-set-caps.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>appsink</p></td>
-<td class="parameter_description"><p>a <a href="/usr/share/gtk-doc/html/gst-plugins-base-plugins-1.0gst-plugins-base-plugins-appsink.html#GstAppSink-struct"><span class="type">GstAppSink</span></a></p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-<tr>
-<td class="parameter_name"><p>caps</p></td>
-<td class="parameter_description"><p>caps to set</p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-</tbody>
-</table></div>
-</div>
 </div>
 <hr>
 <div class="refsect2">
 <a name="gst-app-sink-get-caps"></a><h3>gst_app_sink_get_caps ()</h3>
 <pre class="programlisting"><a href="/usr/share/gtk-doc/html/gstreamer-1.0GstCaps.html#GstCaps-struct"><span class="returnvalue">GstCaps</span></a> *
 gst_app_sink_get_caps (<em class="parameter"><code><a href="/usr/share/gtk-doc/html/gst-plugins-base-plugins-1.0gst-plugins-base-plugins-appsink.html#GstAppSink-struct"><span class="type">GstAppSink</span></a> *appsink</code></em>);</pre>
-<p>Get the configured caps on <em class="parameter"><code>appsink</code></em>
-.</p>
-<div class="refsect3">
-<a name="gst-app-sink-get-caps.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>appsink</p></td>
-<td class="parameter_description"><p>a <a href="/usr/share/gtk-doc/html/gst-plugins-base-plugins-1.0gst-plugins-base-plugins-appsink.html#GstAppSink-struct"><span class="type">GstAppSink</span></a></p></td>
-<td class="parameter_annotations"> </td>
-</tr></tbody>
-</table></div>
-</div>
-<div class="refsect3">
-<a name="gst-app-sink-get-caps.returns"></a><h4>Returns</h4>
-<p> the <a href="/usr/share/gtk-doc/html/gstreamer-1.0GstCaps.html#GstCaps-struct"><span class="type">GstCaps</span></a> accepted by the sink. <a href="/usr/share/gtk-doc/html/gstreamer-1.0GstCaps.html#gst-caps-unref"><code class="function">gst_caps_unref()</code></a> after usage.</p>
-</div>
 </div>
 <hr>
 <div class="refsect2">
 <a name="gst-app-sink-is-eos"></a><h3>gst_app_sink_is_eos ()</h3>
 <pre class="programlisting"><a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
 gst_app_sink_is_eos (<em class="parameter"><code><a href="/usr/share/gtk-doc/html/gst-plugins-base-plugins-1.0gst-plugins-base-plugins-appsink.html#GstAppSink-struct"><span class="type">GstAppSink</span></a> *appsink</code></em>);</pre>
-<p>Check if <em class="parameter"><code>appsink</code></em>
- is EOS, which is when no more samples can be pulled because
-an EOS event was received.</p>
-<p>This function also returns <a href="/usr/share/gtk-doc/html/glibglib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a> when the appsink is not in the PAUSED or
-PLAYING state.</p>
-<div class="refsect3">
-<a name="gst-app-sink-is-eos.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>appsink</p></td>
-<td class="parameter_description"><p>a <a href="/usr/share/gtk-doc/html/gst-plugins-base-plugins-1.0gst-plugins-base-plugins-appsink.html#GstAppSink-struct"><span class="type">GstAppSink</span></a></p></td>
-<td class="parameter_annotations"> </td>
-</tr></tbody>
-</table></div>
-</div>
-<div class="refsect3">
-<a name="gst-app-sink-is-eos.returns"></a><h4>Returns</h4>
-<p> <a href="/usr/share/gtk-doc/html/glibglib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a> if no more samples can be pulled and the appsink is EOS.</p>
-</div>
 </div>
 <hr>
 <div class="refsect2">
@@ -286,59 +185,12 @@
 <pre class="programlisting"><span class="returnvalue">void</span>
 gst_app_sink_set_emit_signals (<em class="parameter"><code><a href="/usr/share/gtk-doc/html/gst-plugins-base-plugins-1.0gst-plugins-base-plugins-appsink.html#GstAppSink-struct"><span class="type">GstAppSink</span></a> *appsink</code></em>,
                                <em class="parameter"><code><a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a> emit</code></em>);</pre>
-<p>Make appsink emit the "new-preroll" and "new-sample" signals. This option is
-by default disabled because signal emission is expensive and unneeded when
-the application prefers to operate in pull mode.</p>
-<div class="refsect3">
-<a name="gst-app-sink-set-emit-signals.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>appsink</p></td>
-<td class="parameter_description"><p>a <a href="/usr/share/gtk-doc/html/gst-plugins-base-plugins-1.0gst-plugins-base-plugins-appsink.html#GstAppSink-struct"><span class="type">GstAppSink</span></a></p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-<tr>
-<td class="parameter_name"><p>emit</p></td>
-<td class="parameter_description"><p>the new state</p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-</tbody>
-</table></div>
-</div>
 </div>
 <hr>
 <div class="refsect2">
 <a name="gst-app-sink-get-emit-signals"></a><h3>gst_app_sink_get_emit_signals ()</h3>
 <pre class="programlisting"><a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
 gst_app_sink_get_emit_signals (<em class="parameter"><code><a href="/usr/share/gtk-doc/html/gst-plugins-base-plugins-1.0gst-plugins-base-plugins-appsink.html#GstAppSink-struct"><span class="type">GstAppSink</span></a> *appsink</code></em>);</pre>
-<p>Check if appsink will emit the "new-preroll" and "new-sample" signals.</p>
-<div class="refsect3">
-<a name="gst-app-sink-get-emit-signals.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>appsink</p></td>
-<td class="parameter_description"><p>a <a href="/usr/share/gtk-doc/html/gst-plugins-base-plugins-1.0gst-plugins-base-plugins-appsink.html#GstAppSink-struct"><span class="type">GstAppSink</span></a></p></td>
-<td class="parameter_annotations"> </td>
-</tr></tbody>
-</table></div>
-</div>
-<div class="refsect3">
-<a name="gst-app-sink-get-emit-signals.returns"></a><h4>Returns</h4>
-<p> <a href="/usr/share/gtk-doc/html/glibglib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a> if <em class="parameter"><code>appsink</code></em>
-is emiting the "new-preroll" and "new-sample"
-signals.</p>
-</div>
 </div>
 <hr>
 <div class="refsect2">
@@ -346,60 +198,12 @@
 <pre class="programlisting"><span class="returnvalue">void</span>
 gst_app_sink_set_max_buffers (<em class="parameter"><code><a href="/usr/share/gtk-doc/html/gst-plugins-base-plugins-1.0gst-plugins-base-plugins-appsink.html#GstAppSink-struct"><span class="type">GstAppSink</span></a> *appsink</code></em>,
                               <em class="parameter"><code><a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#guint"><span class="type">guint</span></a> max</code></em>);</pre>
-<p>Set the maximum amount of buffers that can be queued in <em class="parameter"><code>appsink</code></em>
-. After this
-amount of buffers are queued in appsink, any more buffers will block upstream
-elements until a sample is pulled from <em class="parameter"><code>appsink</code></em>
-.</p>
-<div class="refsect3">
-<a name="gst-app-sink-set-max-buffers.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>appsink</p></td>
-<td class="parameter_description"><p>a <a href="/usr/share/gtk-doc/html/gst-plugins-base-plugins-1.0gst-plugins-base-plugins-appsink.html#GstAppSink-struct"><span class="type">GstAppSink</span></a></p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-<tr>
-<td class="parameter_name"><p>max</p></td>
-<td class="parameter_description"><p>the maximum number of buffers to queue</p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-</tbody>
-</table></div>
-</div>
 </div>
 <hr>
 <div class="refsect2">
 <a name="gst-app-sink-get-max-buffers"></a><h3>gst_app_sink_get_max_buffers ()</h3>
 <pre class="programlisting"><a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#guint"><span class="returnvalue">guint</span></a>
 gst_app_sink_get_max_buffers (<em class="parameter"><code><a href="/usr/share/gtk-doc/html/gst-plugins-base-plugins-1.0gst-plugins-base-plugins-appsink.html#GstAppSink-struct"><span class="type">GstAppSink</span></a> *appsink</code></em>);</pre>
-<p>Get the maximum amount of buffers that can be queued in <em class="parameter"><code>appsink</code></em>
-.</p>
-<div class="refsect3">
-<a name="gst-app-sink-get-max-buffers.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>appsink</p></td>
-<td class="parameter_description"><p>a <a href="/usr/share/gtk-doc/html/gst-plugins-base-plugins-1.0gst-plugins-base-plugins-appsink.html#GstAppSink-struct"><span class="type">GstAppSink</span></a></p></td>
-<td class="parameter_annotations"> </td>
-</tr></tbody>
-</table></div>
-</div>
-<div class="refsect3">
-<a name="gst-app-sink-get-max-buffers.returns"></a><h4>Returns</h4>
-<p> The maximum amount of buffers that can be queued.</p>
-</div>
 </div>
 <hr>
 <div class="refsect2">
@@ -407,137 +211,24 @@
 <pre class="programlisting"><span class="returnvalue">void</span>
 gst_app_sink_set_drop (<em class="parameter"><code><a href="/usr/share/gtk-doc/html/gst-plugins-base-plugins-1.0gst-plugins-base-plugins-appsink.html#GstAppSink-struct"><span class="type">GstAppSink</span></a> *appsink</code></em>,
                        <em class="parameter"><code><a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a> drop</code></em>);</pre>
-<p>Instruct <em class="parameter"><code>appsink</code></em>
- to drop old buffers when the maximum amount of queued
-buffers is reached.</p>
-<div class="refsect3">
-<a name="gst-app-sink-set-drop.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>appsink</p></td>
-<td class="parameter_description"><p>a <a href="/usr/share/gtk-doc/html/gst-plugins-base-plugins-1.0gst-plugins-base-plugins-appsink.html#GstAppSink-struct"><span class="type">GstAppSink</span></a></p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-<tr>
-<td class="parameter_name"><p>drop</p></td>
-<td class="parameter_description"><p>the new state</p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-</tbody>
-</table></div>
-</div>
 </div>
 <hr>
 <div class="refsect2">
 <a name="gst-app-sink-get-drop"></a><h3>gst_app_sink_get_drop ()</h3>
 <pre class="programlisting"><a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
 gst_app_sink_get_drop (<em class="parameter"><code><a href="/usr/share/gtk-doc/html/gst-plugins-base-plugins-1.0gst-plugins-base-plugins-appsink.html#GstAppSink-struct"><span class="type">GstAppSink</span></a> *appsink</code></em>);</pre>
-<p>Check if <em class="parameter"><code>appsink</code></em>
- will drop old buffers when the maximum amount of queued
-buffers is reached.</p>
-<div class="refsect3">
-<a name="gst-app-sink-get-drop.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>appsink</p></td>
-<td class="parameter_description"><p>a <a href="/usr/share/gtk-doc/html/gst-plugins-base-plugins-1.0gst-plugins-base-plugins-appsink.html#GstAppSink-struct"><span class="type">GstAppSink</span></a></p></td>
-<td class="parameter_annotations"> </td>
-</tr></tbody>
-</table></div>
-</div>
-<div class="refsect3">
-<a name="gst-app-sink-get-drop.returns"></a><h4>Returns</h4>
-<p> <a href="/usr/share/gtk-doc/html/glibglib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a> if <em class="parameter"><code>appsink</code></em>
-is dropping old buffers when the queue is
-filled.</p>
-</div>
 </div>
 <hr>
 <div class="refsect2">
 <a name="gst-app-sink-pull-preroll"></a><h3>gst_app_sink_pull_preroll ()</h3>
 <pre class="programlisting"><a href="/usr/share/gtk-doc/html/gstreamer-1.0GstSample.html#GstSample-struct"><span class="returnvalue">GstSample</span></a> *
 gst_app_sink_pull_preroll (<em class="parameter"><code><a href="/usr/share/gtk-doc/html/gst-plugins-base-plugins-1.0gst-plugins-base-plugins-appsink.html#GstAppSink-struct"><span class="type">GstAppSink</span></a> *appsink</code></em>);</pre>
-<p>Get the last preroll sample in <em class="parameter"><code>appsink</code></em>
-. This was the sample that caused the
-appsink to preroll in the PAUSED state. This sample can be pulled many times
-and remains available to the application even after EOS.</p>
-<p>This function is typically used when dealing with a pipeline in the PAUSED
-state. Calling this function after doing a seek will give the sample right
-after the seek position.</p>
-<p>Note that the preroll sample will also be returned as the first sample
-when calling <a class="link" href="gst-plugins-base-libs-appsink.html#gst-app-sink-pull-sample" title="gst_app_sink_pull_sample ()"><code class="function">gst_app_sink_pull_sample()</code></a>.</p>
-<p>If an EOS event was received before any buffers, this function returns
-<a href="/usr/share/gtk-doc/html/glibglib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a>. Use <a class="link" href="gst-plugins-base-libs-appsink.html#gst-app-sink-is-eos" title="gst_app_sink_is_eos ()"><code class="function">gst_app_sink_is_eos()</code></a> to check for the EOS condition.</p>
-<p>This function blocks until a preroll sample or EOS is received or the appsink
-element is set to the READY/NULL state.</p>
-<div class="refsect3">
-<a name="gst-app-sink-pull-preroll.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>appsink</p></td>
-<td class="parameter_description"><p>a <a href="/usr/share/gtk-doc/html/gst-plugins-base-plugins-1.0gst-plugins-base-plugins-appsink.html#GstAppSink-struct"><span class="type">GstAppSink</span></a></p></td>
-<td class="parameter_annotations"> </td>
-</tr></tbody>
-</table></div>
-</div>
-<div class="refsect3">
-<a name="gst-app-sink-pull-preroll.returns"></a><h4>Returns</h4>
-<p> a <a href="/usr/share/gtk-doc/html/gstreamer-1.0GstSample.html#GstSample-struct"><span class="type">GstSample</span></a> or NULL when the appsink is stopped or EOS.
-Call <a href="/usr/share/gtk-doc/html/gstreamer-1.0GstSample.html#gst-sample-unref"><code class="function">gst_sample_unref()</code></a> after usage. </p>
-<p><span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>]</span></p>
-</div>
 </div>
 <hr>
 <div class="refsect2">
 <a name="gst-app-sink-pull-sample"></a><h3>gst_app_sink_pull_sample ()</h3>
 <pre class="programlisting"><a href="/usr/share/gtk-doc/html/gstreamer-1.0GstSample.html#GstSample-struct"><span class="returnvalue">GstSample</span></a> *
 gst_app_sink_pull_sample (<em class="parameter"><code><a href="/usr/share/gtk-doc/html/gst-plugins-base-plugins-1.0gst-plugins-base-plugins-appsink.html#GstAppSink-struct"><span class="type">GstAppSink</span></a> *appsink</code></em>);</pre>
-<p>This function blocks until a sample or EOS becomes available or the appsink
-element is set to the READY/NULL state.</p>
-<p>This function will only return samples when the appsink is in the PLAYING
-state. All rendered buffers will be put in a queue so that the application
-can pull samples at its own rate. Note that when the application does not
-pull samples fast enough, the queued buffers could consume a lot of memory,
-especially when dealing with raw video frames.</p>
-<p>If an EOS event was received before any buffers, this function returns
-<a href="/usr/share/gtk-doc/html/glibglib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a>. Use <a class="link" href="gst-plugins-base-libs-appsink.html#gst-app-sink-is-eos" title="gst_app_sink_is_eos ()"><code class="function">gst_app_sink_is_eos()</code></a> to check for the EOS condition.</p>
-<div class="refsect3">
-<a name="gst-app-sink-pull-sample.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>appsink</p></td>
-<td class="parameter_description"><p>a <a href="/usr/share/gtk-doc/html/gst-plugins-base-plugins-1.0gst-plugins-base-plugins-appsink.html#GstAppSink-struct"><span class="type">GstAppSink</span></a></p></td>
-<td class="parameter_annotations"> </td>
-</tr></tbody>
-</table></div>
-</div>
-<div class="refsect3">
-<a name="gst-app-sink-pull-sample.returns"></a><h4>Returns</h4>
-<p> a <a href="/usr/share/gtk-doc/html/gstreamer-1.0GstSample.html#GstSample-struct"><span class="type">GstSample</span></a> or NULL when the appsink is stopped or EOS.
-Call <a href="/usr/share/gtk-doc/html/gstreamer-1.0GstSample.html#gst-sample-unref"><code class="function">gst_sample_unref()</code></a> after usage. </p>
-<p><span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>]</span></p>
-</div>
 </div>
 <hr>
 <div class="refsect2">
@@ -547,44 +238,6 @@
                             <em class="parameter"><code><a class="link" href="gst-plugins-base-libs-appsink.html#GstAppSinkCallbacks" title="GstAppSinkCallbacks"><span class="type">GstAppSinkCallbacks</span></a> *callbacks</code></em>,
                             <em class="parameter"><code><a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> user_data</code></em>,
                             <em class="parameter"><code><a href="/usr/share/gtk-doc/html/glibglib-Datasets.html#GDestroyNotify"><span class="type">GDestroyNotify</span></a> notify</code></em>);</pre>
-<p>Set callbacks which will be executed for each new preroll, new sample and eos.
-This is an alternative to using the signals, it has lower overhead and is thus
-less expensive, but also less flexible.</p>
-<p>If callbacks are installed, no signals will be emitted for performance
-reasons.</p>
-<p><span class="annotation">[<acronym title="Exposed in C code, not necessarily available in other languages."><span class="acronym">skip</span></acronym>]</span></p>
-<div class="refsect3">
-<a name="gst-app-sink-set-callbacks.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>appsink</p></td>
-<td class="parameter_description"><p>a <a href="/usr/share/gtk-doc/html/gst-plugins-base-plugins-1.0gst-plugins-base-plugins-appsink.html#GstAppSink-struct"><span class="type">GstAppSink</span></a></p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-<tr>
-<td class="parameter_name"><p>callbacks</p></td>
-<td class="parameter_description"><p>the callbacks</p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-<tr>
-<td class="parameter_name"><p>user_data</p></td>
-<td class="parameter_description"><p>a user_data argument for the callbacks</p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-<tr>
-<td class="parameter_name"><p>notify</p></td>
-<td class="parameter_description"><p>a destroy notify function</p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-</tbody>
-</table></div>
-</div>
 </div>
 </div>
 <div class="refsect1">
@@ -597,51 +250,9 @@
   GstFlowReturn (*new_sample)       (GstAppSink *appsink, gpointer user_data);
 } GstAppSinkCallbacks;
 </pre>
-<p>A set of callbacks that can be installed on the appsink with
-<a class="link" href="gst-plugins-base-libs-appsink.html#gst-app-sink-set-callbacks" title="gst_app_sink_set_callbacks ()"><code class="function">gst_app_sink_set_callbacks()</code></a>.</p>
-<div class="refsect3">
-<a name="GstAppSinkCallbacks.members"></a><h4>Members</h4>
-<div class="informaltable"><table class="informaltable" width="100%" border="0">
-<colgroup>
-<col width="300px" class="struct_members_name">
-<col class="struct_members_description">
-<col width="200px" class="struct_members_annotations">
-</colgroup>
-<tbody>
-<tr>
-<td class="struct_member_name"><p><em class="structfield"><code><a name="GstAppSinkCallbacks.eos"></a>eos</code></em> ()</p></td>
-<td class="struct_member_description"><p>Called when the end-of-stream has been reached. This callback
-is called from the streaming thread.</p></td>
-<td class="struct_member_annotations"> </td>
-</tr>
-<tr>
-<td class="struct_member_name"><p><em class="structfield"><code><a name="GstAppSinkCallbacks.new-preroll"></a>new_preroll</code></em> ()</p></td>
-<td class="struct_member_description"><p>Called when a new preroll sample is available.
-This callback is called from the streaming thread.
-The new preroll sample can be retrieved with
-<a class="link" href="gst-plugins-base-libs-appsink.html#gst-app-sink-pull-preroll" title="gst_app_sink_pull_preroll ()"><code class="function">gst_app_sink_pull_preroll()</code></a> either from this callback
-or from any other thread.</p></td>
-<td class="struct_member_annotations"> </td>
-</tr>
-<tr>
-<td class="struct_member_name"><p><em class="structfield"><code><a name="GstAppSinkCallbacks.new-sample"></a>new_sample</code></em> ()</p></td>
-<td class="struct_member_description"><p>Called when a new sample is available.
-This callback is called from the streaming thread.
-The new sample can be retrieved with
-<a class="link" href="gst-plugins-base-libs-appsink.html#gst-app-sink-pull-sample" title="gst_app_sink_pull_sample ()"><code class="function">gst_app_sink_pull_sample()</code></a> either from this callback
-or from any other thread.</p></td>
-<td class="struct_member_annotations"> </td>
-</tr>
-</tbody>
-</table></div>
 </div>
 </div>
 </div>
-<div class="refsect1">
-<a name="gst-plugins-base-libs-appsink.see-also"></a><h2>See Also</h2>
-<p><a href="/usr/share/gtk-doc/html/gstreamer-1.0GstSample.html#GstSample-struct"><span class="type">GstSample</span></a>, <a href="/usr/share/gtk-doc/html/gstreamer-libs-1.0GstBaseSink.html#GstBaseSink-struct"><span class="type">GstBaseSink</span></a>, appsrc</p>
-</div>
-</div>
 <div class="footer">
 <hr>Generated by GTK-Doc V1.25</div>
 </body>
diff --git a/docs/libs/html/gst-plugins-base-libs-appsrc.html b/docs/libs/html/gst-plugins-base-libs-appsrc.html
index 705b231..834f5dd 100644
--- a/docs/libs/html/gst-plugins-base-libs-appsrc.html
+++ b/docs/libs/html/gst-plugins-base-libs-appsrc.html
@@ -27,8 +27,7 @@
 <div class="refnamediv"><table width="100%"><tr>
 <td valign="top">
 <h2><span class="refentrytitle"><a name="gst-plugins-base-libs-appsrc.top_of_page"></a>appsrc</span></h2>
-<p>appsrc — Easy way for applications to inject buffers into a
-    pipeline</p>
+<p>appsrc</p>
 </td>
 <td class="gallery_image" valign="top" align="right"></td>
 </tr></table></div>
@@ -93,6 +92,22 @@
 <span class="returnvalue">void</span>
 </td>
 <td class="function_name">
+<a class="link" href="gst-plugins-base-libs-appsrc.html#gst-app-src-set-duration" title="gst_app_src_set_duration ()">gst_app_src_set_duration</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="function_type">
+<a href="/usr/share/gtk-doc/html/gstreamer-1.0GstClock.html#GstClockTime"><span class="returnvalue">GstClockTime</span></a>
+</td>
+<td class="function_name">
+<a class="link" href="gst-plugins-base-libs-appsrc.html#gst-app-src-get-duration" title="gst_app_src_get_duration ()">gst_app_src_get_duration</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="function_type">
+<span class="returnvalue">void</span>
+</td>
+<td class="function_name">
 <a class="link" href="gst-plugins-base-libs-appsrc.html#gst-app-src-set-stream-type" title="gst_app_src_set_stream_type ()">gst_app_src_set_stream_type</a> <span class="c_punctuation">()</span>
 </td>
 </tr>
@@ -205,59 +220,6 @@
 </div>
 <div class="refsect1">
 <a name="gst-plugins-base-libs-appsrc.description"></a><h2>Description</h2>
-<p>The appsrc element can be used by applications to insert data into a
-GStreamer pipeline. Unlike most GStreamer elements, appsrc provides
-external API functions.</p>
-<p>appsrc can be used by linking with the libgstapp library to access the
-methods directly or by using the appsrc action signals.</p>
-<p>Before operating appsrc, the caps property must be set to fixed caps
-describing the format of the data that will be pushed with appsrc. An
-exception to this is when pushing buffers with unknown caps, in which case no
-caps should be set. This is typically true of file-like sources that push raw
-byte buffers. If you don't want to explicitly set the caps, you can use
-gst_app_src_push_sample. This method gets the caps associated with the
-sample and sets them on the appsrc replacing any previously set caps (if
-different from sample's caps).</p>
-<p>The main way of handing data to the appsrc element is by calling the
-<a class="link" href="gst-plugins-base-libs-appsrc.html#gst-app-src-push-buffer" title="gst_app_src_push_buffer ()"><code class="function">gst_app_src_push_buffer()</code></a> method or by emitting the push-buffer action signal.
-This will put the buffer onto a queue from which appsrc will read from in its
-streaming thread. It is important to note that data transport will not happen
-from the thread that performed the push-buffer call.</p>
-<p>The "max-bytes" property controls how much data can be queued in appsrc
-before appsrc considers the queue full. A filled internal queue will always
-signal the "enough-data" signal, which signals the application that it should
-stop pushing data into appsrc. The "block" property will cause appsrc to
-block the push-buffer method until free data becomes available again.</p>
-<p>When the internal queue is running out of data, the "need-data" signal is
-emitted, which signals the application that it should start pushing more data
-into appsrc.</p>
-<p>In addition to the "need-data" and "enough-data" signals, appsrc can emit the
-"seek-data" signal when the "stream-mode" property is set to "seekable" or
-"random-access". The signal argument will contain the new desired position in
-the stream expressed in the unit set with the "format" property. After
-receiving the seek-data signal, the application should push-buffers from the
-new position.</p>
-<p>These signals allow the application to operate the appsrc in two different
-ways:</p>
-<p>The push mode, in which the application repeatedly calls the push-buffer/push-sample
-method with a new buffer/sample. Optionally, the queue size in the appsrc 
-can be controlled with the enough-data and need-data signals by respectively 
-stopping/starting the push-buffer/push-sample calls. This is a typical 
-mode of operation for the stream-type "stream" and "seekable". Use this 
-mode when implementing various network protocols or hardware devices.</p>
-<p>The pull mode, in which the need-data signal triggers the next push-buffer call.
-This mode is typically used in the "random-access" stream-type. Use this
-mode for file access or other randomly accessable sources. In this mode, a
-buffer of exactly the amount of bytes given by the need-data signal should be
-pushed into appsrc.</p>
-<p>In all modes, the size property on appsrc should contain the total stream
-size in bytes. Setting this property is mandatory in the random-access mode.
-For the stream and seekable modes, setting this property is optional but
-recommended.</p>
-<p>When the application has finished pushing data into appsrc, it should call
-<a class="link" href="gst-plugins-base-libs-appsrc.html#gst-app-src-end-of-stream" title="gst_app_src_end_of_stream ()"><code class="function">gst_app_src_end_of_stream()</code></a> or emit the end-of-stream action signal. After
-this call, no more buffers can be pushed into appsrc until a flushing seek
-occurs or the state of the appsrc has gone through READY.</p>
 </div>
 <div class="refsect1">
 <a name="gst-plugins-base-libs-appsrc.functions_details"></a><h2>Functions</h2>
@@ -266,61 +228,12 @@
 <pre class="programlisting"><span class="returnvalue">void</span>
 gst_app_src_set_caps (<em class="parameter"><code><a href="/usr/share/gtk-doc/html/gst-plugins-base-plugins-1.0gst-plugins-base-plugins-appsrc.html#GstAppSrc-struct"><span class="type">GstAppSrc</span></a> *appsrc</code></em>,
                       <em class="parameter"><code>const <a href="/usr/share/gtk-doc/html/gstreamer-1.0GstCaps.html#GstCaps-struct"><span class="type">GstCaps</span></a> *caps</code></em>);</pre>
-<p>Set the capabilities on the appsrc element.  This function takes
-a copy of the caps structure. After calling this method, the source will
-only produce caps that match <em class="parameter"><code>caps</code></em>
-. <em class="parameter"><code>caps</code></em>
- must be fixed and the caps on the
-buffers must match the caps or left NULL.</p>
-<div class="refsect3">
-<a name="gst-app-src-set-caps.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>appsrc</p></td>
-<td class="parameter_description"><p>a <a href="/usr/share/gtk-doc/html/gst-plugins-base-plugins-1.0gst-plugins-base-plugins-appsrc.html#GstAppSrc-struct"><span class="type">GstAppSrc</span></a></p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-<tr>
-<td class="parameter_name"><p>caps</p></td>
-<td class="parameter_description"><p>caps to set</p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-</tbody>
-</table></div>
-</div>
 </div>
 <hr>
 <div class="refsect2">
 <a name="gst-app-src-get-caps"></a><h3>gst_app_src_get_caps ()</h3>
 <pre class="programlisting"><a href="/usr/share/gtk-doc/html/gstreamer-1.0GstCaps.html#GstCaps-struct"><span class="returnvalue">GstCaps</span></a> *
 gst_app_src_get_caps (<em class="parameter"><code><a href="/usr/share/gtk-doc/html/gst-plugins-base-plugins-1.0gst-plugins-base-plugins-appsrc.html#GstAppSrc-struct"><span class="type">GstAppSrc</span></a> *appsrc</code></em>);</pre>
-<p>Get the configured caps on <em class="parameter"><code>appsrc</code></em>
-.</p>
-<div class="refsect3">
-<a name="gst-app-src-get-caps.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>appsrc</p></td>
-<td class="parameter_description"><p>a <a href="/usr/share/gtk-doc/html/gst-plugins-base-plugins-1.0gst-plugins-base-plugins-appsrc.html#GstAppSrc-struct"><span class="type">GstAppSrc</span></a></p></td>
-<td class="parameter_annotations"> </td>
-</tr></tbody>
-</table></div>
-</div>
-<div class="refsect3">
-<a name="gst-app-src-get-caps.returns"></a><h4>Returns</h4>
-<p> the <a href="/usr/share/gtk-doc/html/gstreamer-1.0GstCaps.html#GstCaps-struct"><span class="type">GstCaps</span></a> produced by the source. <a href="/usr/share/gtk-doc/html/gstreamer-1.0GstCaps.html#gst-caps-unref"><code class="function">gst_caps_unref()</code></a> after usage.</p>
-</div>
 </div>
 <hr>
 <div class="refsect2">
@@ -329,36 +242,6 @@
 gst_app_src_get_latency (<em class="parameter"><code><a href="/usr/share/gtk-doc/html/gst-plugins-base-plugins-1.0gst-plugins-base-plugins-appsrc.html#GstAppSrc-struct"><span class="type">GstAppSrc</span></a> *appsrc</code></em>,
                          <em class="parameter"><code><a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#guint64"><span class="type">guint64</span></a> *min</code></em>,
                          <em class="parameter"><code><a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#guint64"><span class="type">guint64</span></a> *max</code></em>);</pre>
-<p>Retrieve the min and max latencies in <em class="parameter"><code>min</code></em>
- and <em class="parameter"><code>max</code></em>
- respectively.</p>
-<div class="refsect3">
-<a name="gst-app-src-get-latency.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>appsrc</p></td>
-<td class="parameter_description"><p>a <a href="/usr/share/gtk-doc/html/gst-plugins-base-plugins-1.0gst-plugins-base-plugins-appsrc.html#GstAppSrc-struct"><span class="type">GstAppSrc</span></a></p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-<tr>
-<td class="parameter_name"><p>min</p></td>
-<td class="parameter_description"><p>the min latency</p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-<tr>
-<td class="parameter_name"><p>max</p></td>
-<td class="parameter_description"><p>the min latency</p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-</tbody>
-</table></div>
-</div>
 </div>
 <hr>
 <div class="refsect2">
@@ -367,39 +250,6 @@
 gst_app_src_set_latency (<em class="parameter"><code><a href="/usr/share/gtk-doc/html/gst-plugins-base-plugins-1.0gst-plugins-base-plugins-appsrc.html#GstAppSrc-struct"><span class="type">GstAppSrc</span></a> *appsrc</code></em>,
                          <em class="parameter"><code><a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#guint64"><span class="type">guint64</span></a> min</code></em>,
                          <em class="parameter"><code><a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#guint64"><span class="type">guint64</span></a> max</code></em>);</pre>
-<p>Configure the <em class="parameter"><code>min</code></em>
- and <em class="parameter"><code>max</code></em>
- latency in <em class="parameter"><code>src</code></em>
-. If <em class="parameter"><code>min</code></em>
- is set to -1, the
-default latency calculations for pseudo-live sources will be used.</p>
-<div class="refsect3">
-<a name="gst-app-src-set-latency.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>appsrc</p></td>
-<td class="parameter_description"><p>a <a href="/usr/share/gtk-doc/html/gst-plugins-base-plugins-1.0gst-plugins-base-plugins-appsrc.html#GstAppSrc-struct"><span class="type">GstAppSrc</span></a></p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-<tr>
-<td class="parameter_name"><p>min</p></td>
-<td class="parameter_description"><p>the min latency</p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-<tr>
-<td class="parameter_name"><p>max</p></td>
-<td class="parameter_description"><p>the min latency</p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-</tbody>
-</table></div>
-</div>
 </div>
 <hr>
 <div class="refsect2">
@@ -407,57 +257,25 @@
 <pre class="programlisting"><span class="returnvalue">void</span>
 gst_app_src_set_size (<em class="parameter"><code><a href="/usr/share/gtk-doc/html/gst-plugins-base-plugins-1.0gst-plugins-base-plugins-appsrc.html#GstAppSrc-struct"><span class="type">GstAppSrc</span></a> *appsrc</code></em>,
                       <em class="parameter"><code><a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#gint64"><span class="type">gint64</span></a> size</code></em>);</pre>
-<p>Set the size of the stream in bytes. A value of -1 means that the size is
-not known.</p>
-<div class="refsect3">
-<a name="gst-app-src-set-size.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>appsrc</p></td>
-<td class="parameter_description"><p>a <a href="/usr/share/gtk-doc/html/gst-plugins-base-plugins-1.0gst-plugins-base-plugins-appsrc.html#GstAppSrc-struct"><span class="type">GstAppSrc</span></a></p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-<tr>
-<td class="parameter_name"><p>size</p></td>
-<td class="parameter_description"><p>the size to set</p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-</tbody>
-</table></div>
-</div>
 </div>
 <hr>
 <div class="refsect2">
 <a name="gst-app-src-get-size"></a><h3>gst_app_src_get_size ()</h3>
 <pre class="programlisting"><a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#gint64"><span class="returnvalue">gint64</span></a>
 gst_app_src_get_size (<em class="parameter"><code><a href="/usr/share/gtk-doc/html/gst-plugins-base-plugins-1.0gst-plugins-base-plugins-appsrc.html#GstAppSrc-struct"><span class="type">GstAppSrc</span></a> *appsrc</code></em>);</pre>
-<p>Get the size of the stream in bytes. A value of -1 means that the size is
-not known.</p>
-<div class="refsect3">
-<a name="gst-app-src-get-size.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>appsrc</p></td>
-<td class="parameter_description"><p>a <a href="/usr/share/gtk-doc/html/gst-plugins-base-plugins-1.0gst-plugins-base-plugins-appsrc.html#GstAppSrc-struct"><span class="type">GstAppSrc</span></a></p></td>
-<td class="parameter_annotations"> </td>
-</tr></tbody>
-</table></div>
 </div>
-<div class="refsect3">
-<a name="gst-app-src-get-size.returns"></a><h4>Returns</h4>
-<p> the size of the stream previously set with <a class="link" href="gst-plugins-base-libs-appsrc.html#gst-app-src-set-size" title="gst_app_src_set_size ()"><code class="function">gst_app_src_set_size()</code></a>;</p>
+<hr>
+<div class="refsect2">
+<a name="gst-app-src-set-duration"></a><h3>gst_app_src_set_duration ()</h3>
+<pre class="programlisting"><span class="returnvalue">void</span>
+gst_app_src_set_duration (<em class="parameter"><code><a href="/usr/share/gtk-doc/html/gst-plugins-base-plugins-1.0gst-plugins-base-plugins-appsrc.html#GstAppSrc-struct"><span class="type">GstAppSrc</span></a> *appsrc</code></em>,
+                          <em class="parameter"><code><a href="/usr/share/gtk-doc/html/gstreamer-1.0GstClock.html#GstClockTime"><span class="type">GstClockTime</span></a> duration</code></em>);</pre>
 </div>
+<hr>
+<div class="refsect2">
+<a name="gst-app-src-get-duration"></a><h3>gst_app_src_get_duration ()</h3>
+<pre class="programlisting"><a href="/usr/share/gtk-doc/html/gstreamer-1.0GstClock.html#GstClockTime"><span class="returnvalue">GstClockTime</span></a>
+gst_app_src_get_duration (<em class="parameter"><code><a href="/usr/share/gtk-doc/html/gst-plugins-base-plugins-1.0gst-plugins-base-plugins-appsrc.html#GstAppSrc-struct"><span class="type">GstAppSrc</span></a> *appsrc</code></em>);</pre>
 </div>
 <hr>
 <div class="refsect2">
@@ -465,60 +283,12 @@
 <pre class="programlisting"><span class="returnvalue">void</span>
 gst_app_src_set_stream_type (<em class="parameter"><code><a href="/usr/share/gtk-doc/html/gst-plugins-base-plugins-1.0gst-plugins-base-plugins-appsrc.html#GstAppSrc-struct"><span class="type">GstAppSrc</span></a> *appsrc</code></em>,
                              <em class="parameter"><code><a class="link" href="gst-plugins-base-libs-appsrc.html#GstAppStreamType" title="enum GstAppStreamType"><span class="type">GstAppStreamType</span></a> type</code></em>);</pre>
-<p>Set the stream type on <em class="parameter"><code>appsrc</code></em>
-. For seekable streams, the "seek" signal must
-be connected to.</p>
-<p>A stream_type stream</p>
-<div class="refsect3">
-<a name="gst-app-src-set-stream-type.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>appsrc</p></td>
-<td class="parameter_description"><p>a <a href="/usr/share/gtk-doc/html/gst-plugins-base-plugins-1.0gst-plugins-base-plugins-appsrc.html#GstAppSrc-struct"><span class="type">GstAppSrc</span></a></p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-<tr>
-<td class="parameter_name"><p>type</p></td>
-<td class="parameter_description"><p>the new state</p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-</tbody>
-</table></div>
-</div>
 </div>
 <hr>
 <div class="refsect2">
 <a name="gst-app-src-get-stream-type"></a><h3>gst_app_src_get_stream_type ()</h3>
 <pre class="programlisting"><a class="link" href="gst-plugins-base-libs-appsrc.html#GstAppStreamType" title="enum GstAppStreamType"><span class="returnvalue">GstAppStreamType</span></a>
 gst_app_src_get_stream_type (<em class="parameter"><code><a href="/usr/share/gtk-doc/html/gst-plugins-base-plugins-1.0gst-plugins-base-plugins-appsrc.html#GstAppSrc-struct"><span class="type">GstAppSrc</span></a> *appsrc</code></em>);</pre>
-<p>Get the stream type. Control the stream type of <em class="parameter"><code>appsrc</code></em>
-
-with <a class="link" href="gst-plugins-base-libs-appsrc.html#gst-app-src-set-stream-type" title="gst_app_src_set_stream_type ()"><code class="function">gst_app_src_set_stream_type()</code></a>.</p>
-<div class="refsect3">
-<a name="gst-app-src-get-stream-type.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>appsrc</p></td>
-<td class="parameter_description"><p>a <a href="/usr/share/gtk-doc/html/gst-plugins-base-plugins-1.0gst-plugins-base-plugins-appsrc.html#GstAppSrc-struct"><span class="type">GstAppSrc</span></a></p></td>
-<td class="parameter_annotations"> </td>
-</tr></tbody>
-</table></div>
-</div>
-<div class="refsect3">
-<a name="gst-app-src-get-stream-type.returns"></a><h4>Returns</h4>
-<p> the stream type.</p>
-</div>
 </div>
 <hr>
 <div class="refsect2">
@@ -526,116 +296,24 @@
 <pre class="programlisting"><span class="returnvalue">void</span>
 gst_app_src_set_max_bytes (<em class="parameter"><code><a href="/usr/share/gtk-doc/html/gst-plugins-base-plugins-1.0gst-plugins-base-plugins-appsrc.html#GstAppSrc-struct"><span class="type">GstAppSrc</span></a> *appsrc</code></em>,
                            <em class="parameter"><code><a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#guint64"><span class="type">guint64</span></a> max</code></em>);</pre>
-<p>Set the maximum amount of bytes that can be queued in <em class="parameter"><code>appsrc</code></em>
-.
-After the maximum amount of bytes are queued, <em class="parameter"><code>appsrc</code></em>
- will emit the
-"enough-data" signal.</p>
-<div class="refsect3">
-<a name="gst-app-src-set-max-bytes.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>appsrc</p></td>
-<td class="parameter_description"><p>a <a href="/usr/share/gtk-doc/html/gst-plugins-base-plugins-1.0gst-plugins-base-plugins-appsrc.html#GstAppSrc-struct"><span class="type">GstAppSrc</span></a></p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-<tr>
-<td class="parameter_name"><p>max</p></td>
-<td class="parameter_description"><p>the maximum number of bytes to queue</p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-</tbody>
-</table></div>
-</div>
 </div>
 <hr>
 <div class="refsect2">
 <a name="gst-app-src-get-max-bytes"></a><h3>gst_app_src_get_max_bytes ()</h3>
 <pre class="programlisting"><a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#guint64"><span class="returnvalue">guint64</span></a>
 gst_app_src_get_max_bytes (<em class="parameter"><code><a href="/usr/share/gtk-doc/html/gst-plugins-base-plugins-1.0gst-plugins-base-plugins-appsrc.html#GstAppSrc-struct"><span class="type">GstAppSrc</span></a> *appsrc</code></em>);</pre>
-<p>Get the maximum amount of bytes that can be queued in <em class="parameter"><code>appsrc</code></em>
-.</p>
-<div class="refsect3">
-<a name="gst-app-src-get-max-bytes.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>appsrc</p></td>
-<td class="parameter_description"><p>a <a href="/usr/share/gtk-doc/html/gst-plugins-base-plugins-1.0gst-plugins-base-plugins-appsrc.html#GstAppSrc-struct"><span class="type">GstAppSrc</span></a></p></td>
-<td class="parameter_annotations"> </td>
-</tr></tbody>
-</table></div>
-</div>
-<div class="refsect3">
-<a name="gst-app-src-get-max-bytes.returns"></a><h4>Returns</h4>
-<p> The maximum amount of bytes that can be queued.</p>
-</div>
 </div>
 <hr>
 <div class="refsect2">
 <a name="gst-app-src-get-current-level-bytes"></a><h3>gst_app_src_get_current_level_bytes ()</h3>
 <pre class="programlisting"><a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#guint64"><span class="returnvalue">guint64</span></a>
 gst_app_src_get_current_level_bytes (<em class="parameter"><code><a href="/usr/share/gtk-doc/html/gst-plugins-base-plugins-1.0gst-plugins-base-plugins-appsrc.html#GstAppSrc-struct"><span class="type">GstAppSrc</span></a> *appsrc</code></em>);</pre>
-<p>Get the number of currently queued bytes inside <em class="parameter"><code>appsrc</code></em>
-.</p>
-<div class="refsect3">
-<a name="gst-app-src-get-current-level-bytes.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>appsrc</p></td>
-<td class="parameter_description"><p>a <a href="/usr/share/gtk-doc/html/gst-plugins-base-plugins-1.0gst-plugins-base-plugins-appsrc.html#GstAppSrc-struct"><span class="type">GstAppSrc</span></a></p></td>
-<td class="parameter_annotations"> </td>
-</tr></tbody>
-</table></div>
-</div>
-<div class="refsect3">
-<a name="gst-app-src-get-current-level-bytes.returns"></a><h4>Returns</h4>
-<p> The number of currently queued bytes.</p>
-</div>
-<p class="since">Since: 1.2</p>
 </div>
 <hr>
 <div class="refsect2">
 <a name="gst-app-src-get-emit-signals"></a><h3>gst_app_src_get_emit_signals ()</h3>
 <pre class="programlisting"><a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
 gst_app_src_get_emit_signals (<em class="parameter"><code><a href="/usr/share/gtk-doc/html/gst-plugins-base-plugins-1.0gst-plugins-base-plugins-appsrc.html#GstAppSrc-struct"><span class="type">GstAppSrc</span></a> *appsrc</code></em>);</pre>
-<p>Check if appsrc will emit the "new-preroll" and "new-buffer" signals.</p>
-<div class="refsect3">
-<a name="gst-app-src-get-emit-signals.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>appsrc</p></td>
-<td class="parameter_description"><p>a <a href="/usr/share/gtk-doc/html/gst-plugins-base-plugins-1.0gst-plugins-base-plugins-appsrc.html#GstAppSrc-struct"><span class="type">GstAppSrc</span></a></p></td>
-<td class="parameter_annotations"> </td>
-</tr></tbody>
-</table></div>
-</div>
-<div class="refsect3">
-<a name="gst-app-src-get-emit-signals.returns"></a><h4>Returns</h4>
-<p> <a href="/usr/share/gtk-doc/html/glibglib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a> if <em class="parameter"><code>appsrc</code></em>
-is emitting the "new-preroll" and "new-buffer"
-signals.</p>
-</div>
 </div>
 <hr>
 <div class="refsect2">
@@ -643,31 +321,6 @@
 <pre class="programlisting"><span class="returnvalue">void</span>
 gst_app_src_set_emit_signals (<em class="parameter"><code><a href="/usr/share/gtk-doc/html/gst-plugins-base-plugins-1.0gst-plugins-base-plugins-appsrc.html#GstAppSrc-struct"><span class="type">GstAppSrc</span></a> *appsrc</code></em>,
                               <em class="parameter"><code><a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a> emit</code></em>);</pre>
-<p>Make appsrc emit the "new-preroll" and "new-buffer" signals. This option is
-by default disabled because signal emission is expensive and unneeded when
-the application prefers to operate in pull mode.</p>
-<div class="refsect3">
-<a name="gst-app-src-set-emit-signals.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>appsrc</p></td>
-<td class="parameter_description"><p>a <a href="/usr/share/gtk-doc/html/gst-plugins-base-plugins-1.0gst-plugins-base-plugins-appsrc.html#GstAppSrc-struct"><span class="type">GstAppSrc</span></a></p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-<tr>
-<td class="parameter_name"><p>emit</p></td>
-<td class="parameter_description"><p>the new state</p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-</tbody>
-</table></div>
-</div>
 </div>
 <hr>
 <div class="refsect2">
@@ -677,45 +330,6 @@
                            <em class="parameter"><code><a class="link" href="gst-plugins-base-libs-appsrc.html#GstAppSrcCallbacks" title="GstAppSrcCallbacks"><span class="type">GstAppSrcCallbacks</span></a> *callbacks</code></em>,
                            <em class="parameter"><code><a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> user_data</code></em>,
                            <em class="parameter"><code><a href="/usr/share/gtk-doc/html/glibglib-Datasets.html#GDestroyNotify"><span class="type">GDestroyNotify</span></a> notify</code></em>);</pre>
-<p>Set callbacks which will be executed when data is needed, enough data has
-been collected or when a seek should be performed.
-This is an alternative to using the signals, it has lower overhead and is thus
-less expensive, but also less flexible.</p>
-<p>If callbacks are installed, no signals will be emitted for performance
-reasons.</p>
-<p><span class="annotation">[<acronym title="Exposed in C code, not necessarily available in other languages."><span class="acronym">skip</span></acronym>]</span></p>
-<div class="refsect3">
-<a name="gst-app-src-set-callbacks.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>appsrc</p></td>
-<td class="parameter_description"><p>a <a href="/usr/share/gtk-doc/html/gst-plugins-base-plugins-1.0gst-plugins-base-plugins-appsrc.html#GstAppSrc-struct"><span class="type">GstAppSrc</span></a></p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-<tr>
-<td class="parameter_name"><p>callbacks</p></td>
-<td class="parameter_description"><p>the callbacks</p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-<tr>
-<td class="parameter_name"><p>user_data</p></td>
-<td class="parameter_description"><p>a user_data argument for the callbacks</p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-<tr>
-<td class="parameter_name"><p>notify</p></td>
-<td class="parameter_description"><p>a destroy notify function</p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-</tbody>
-</table></div>
-</div>
 </div>
 <hr>
 <div class="refsect2">
@@ -723,39 +337,6 @@
 <pre class="programlisting"><a href="/usr/share/gtk-doc/html/gstreamer-1.0GstPad.html#GstFlowReturn"><span class="returnvalue">GstFlowReturn</span></a>
 gst_app_src_push_buffer (<em class="parameter"><code><a href="/usr/share/gtk-doc/html/gst-plugins-base-plugins-1.0gst-plugins-base-plugins-appsrc.html#GstAppSrc-struct"><span class="type">GstAppSrc</span></a> *appsrc</code></em>,
                          <em class="parameter"><code><a href="/usr/share/gtk-doc/html/gstreamer-1.0GstBuffer.html#GstBuffer-struct"><span class="type">GstBuffer</span></a> *buffer</code></em>);</pre>
-<p>Adds a buffer to the queue of buffers that the appsrc element will
-push to its source pad.  This function takes ownership of the buffer.</p>
-<p>When the block property is TRUE, this function can block until free
-space becomes available in the queue.</p>
-<div class="refsect3">
-<a name="gst-app-src-push-buffer.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>appsrc</p></td>
-<td class="parameter_description"><p>a <a href="/usr/share/gtk-doc/html/gst-plugins-base-plugins-1.0gst-plugins-base-plugins-appsrc.html#GstAppSrc-struct"><span class="type">GstAppSrc</span></a></p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-<tr>
-<td class="parameter_name"><p>buffer</p></td>
-<td class="parameter_description"><p> a <a href="/usr/share/gtk-doc/html/gstreamer-1.0GstBuffer.html#GstBuffer-struct"><span class="type">GstBuffer</span></a> to push. </p></td>
-<td class="parameter_annotations"><span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>]</span></td>
-</tr>
-</tbody>
-</table></div>
-</div>
-<div class="refsect3">
-<a name="gst-app-src-push-buffer.returns"></a><h4>Returns</h4>
-<p> <a href="/usr/share/gtk-doc/html/gstreamer-1.0GstPad.html#GST-FLOW-OK:CAPS"><span class="type">GST_FLOW_OK</span></a> when the buffer was successfuly queued.
-<a href="/usr/share/gtk-doc/html/gstreamer-1.0GstPad.html#GST-FLOW-FLUSHING:CAPS"><span class="type">GST_FLOW_FLUSHING</span></a> when <em class="parameter"><code>appsrc</code></em>
-is not PAUSED or PLAYING.
-<a href="/usr/share/gtk-doc/html/gstreamer-1.0GstPad.html#GST-FLOW-EOS:CAPS"><span class="type">GST_FLOW_EOS</span></a> when EOS occured.</p>
-</div>
 </div>
 <hr>
 <div class="refsect2">
@@ -763,79 +344,18 @@
 <pre class="programlisting"><a href="/usr/share/gtk-doc/html/gstreamer-1.0GstPad.html#GstFlowReturn"><span class="returnvalue">GstFlowReturn</span></a>
 gst_app_src_push_sample (<em class="parameter"><code><a href="/usr/share/gtk-doc/html/gst-plugins-base-plugins-1.0gst-plugins-base-plugins-appsrc.html#GstAppSrc-struct"><span class="type">GstAppSrc</span></a> *appsrc</code></em>,
                          <em class="parameter"><code><a href="/usr/share/gtk-doc/html/gstreamer-1.0GstSample.html#GstSample-struct"><span class="type">GstSample</span></a> *sample</code></em>);</pre>
-<p>Extract a buffer from the provided sample and adds it to the queue of 
-buffers that the appsrc element will push to its source pad. Any 
-previous caps that were set on appsrc will be replaced by the caps
-associated with the sample if not equal.</p>
-<p>When the block property is TRUE, this function can block until free
-space becomes available in the queue.</p>
-<div class="refsect3">
-<a name="gst-app-src-push-sample.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>appsrc</p></td>
-<td class="parameter_description"><p>a <a href="/usr/share/gtk-doc/html/gst-plugins-base-plugins-1.0gst-plugins-base-plugins-appsrc.html#GstAppSrc-struct"><span class="type">GstAppSrc</span></a></p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-<tr>
-<td class="parameter_name"><p>sample</p></td>
-<td class="parameter_description"><p> a <a href="/usr/share/gtk-doc/html/gstreamer-1.0GstSample.html#GstSample-struct"><span class="type">GstSample</span></a> from which buffer and caps may be
-extracted. </p></td>
-<td class="parameter_annotations"><span class="annotation">[<acronym title="Don't free data after the code is done."><span class="acronym">transfer none</span></acronym>]</span></td>
-</tr>
-</tbody>
-</table></div>
-</div>
-<div class="refsect3">
-<a name="gst-app-src-push-sample.returns"></a><h4>Returns</h4>
-<p> <a href="/usr/share/gtk-doc/html/gstreamer-1.0GstPad.html#GST-FLOW-OK:CAPS"><span class="type">GST_FLOW_OK</span></a> when the buffer was successfuly queued.
-<a href="/usr/share/gtk-doc/html/gstreamer-1.0GstPad.html#GST-FLOW-FLUSHING:CAPS"><span class="type">GST_FLOW_FLUSHING</span></a> when <em class="parameter"><code>appsrc</code></em>
-is not PAUSED or PLAYING.
-<a href="/usr/share/gtk-doc/html/gstreamer-1.0GstPad.html#GST-FLOW-EOS:CAPS"><span class="type">GST_FLOW_EOS</span></a> when EOS occured.</p>
-</div>
-<p class="since">Since: 1.6</p>
 </div>
 <hr>
 <div class="refsect2">
 <a name="gst-app-src-end-of-stream"></a><h3>gst_app_src_end_of_stream ()</h3>
 <pre class="programlisting"><a href="/usr/share/gtk-doc/html/gstreamer-1.0GstPad.html#GstFlowReturn"><span class="returnvalue">GstFlowReturn</span></a>
 gst_app_src_end_of_stream (<em class="parameter"><code><a href="/usr/share/gtk-doc/html/gst-plugins-base-plugins-1.0gst-plugins-base-plugins-appsrc.html#GstAppSrc-struct"><span class="type">GstAppSrc</span></a> *appsrc</code></em>);</pre>
-<p>Indicates to the appsrc element that the last buffer queued in the
-element is the last buffer of the stream.</p>
-<div class="refsect3">
-<a name="gst-app-src-end-of-stream.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>appsrc</p></td>
-<td class="parameter_description"><p>a <a href="/usr/share/gtk-doc/html/gst-plugins-base-plugins-1.0gst-plugins-base-plugins-appsrc.html#GstAppSrc-struct"><span class="type">GstAppSrc</span></a></p></td>
-<td class="parameter_annotations"> </td>
-</tr></tbody>
-</table></div>
-</div>
-<div class="refsect3">
-<a name="gst-app-src-end-of-stream.returns"></a><h4>Returns</h4>
-<p> <a href="/usr/share/gtk-doc/html/gstreamer-1.0GstPad.html#GST-FLOW-OK:CAPS"><span class="type">GST_FLOW_OK</span></a> when the EOS was successfuly queued.
-<a href="/usr/share/gtk-doc/html/gstreamer-1.0GstPad.html#GST-FLOW-FLUSHING:CAPS"><span class="type">GST_FLOW_FLUSHING</span></a> when <em class="parameter"><code>appsrc</code></em>
-is not PAUSED or PLAYING.</p>
-</div>
 </div>
 </div>
 <div class="refsect1">
 <a name="gst-plugins-base-libs-appsrc.other_details"></a><h2>Types and Values</h2>
 <div class="refsect2">
 <a name="GstAppStreamType"></a><h3>enum GstAppStreamType</h3>
-<p>The stream type.</p>
 <div class="refsect3">
 <a name="GstAppStreamType.members"></a><h4>Members</h4>
 <div class="informaltable"><table class="informaltable" width="100%" border="0">
@@ -847,27 +367,18 @@
 <tbody>
 <tr>
 <td class="enum_member_name"><p><a name="GST-APP-STREAM-TYPE-STREAM:CAPS"></a>GST_APP_STREAM_TYPE_STREAM</p></td>
-<td class="enum_member_description">
-<p>No seeking is supported in the stream, such as a
-live stream.</p>
-</td>
-<td class="enum_member_annotations"> </td>
+<td> </td>
+<td> </td>
 </tr>
 <tr>
 <td class="enum_member_name"><p><a name="GST-APP-STREAM-TYPE-SEEKABLE:CAPS"></a>GST_APP_STREAM_TYPE_SEEKABLE</p></td>
-<td class="enum_member_description">
-<p>The stream is seekable but seeking might not
-be very fast, such as data from a webserver.</p>
-</td>
-<td class="enum_member_annotations"> </td>
+<td> </td>
+<td> </td>
 </tr>
 <tr>
 <td class="enum_member_name"><p><a name="GST-APP-STREAM-TYPE-RANDOM-ACCESS:CAPS"></a>GST_APP_STREAM_TYPE_RANDOM_ACCESS</p></td>
-<td class="enum_member_description">
-<p>The stream is seekable and seeking is fast,
-such as in a local file.</p>
-</td>
-<td class="enum_member_annotations"> </td>
+<td> </td>
+<td> </td>
 </tr>
 </tbody>
 </table></div>
@@ -882,51 +393,9 @@
   gboolean  (*seek_data)    (GstAppSrc *src, guint64 offset, gpointer user_data);
 } GstAppSrcCallbacks;
 </pre>
-<p>A set of callbacks that can be installed on the appsrc with
-<a class="link" href="gst-plugins-base-libs-appsrc.html#gst-app-src-set-callbacks" title="gst_app_src_set_callbacks ()"><code class="function">gst_app_src_set_callbacks()</code></a>.</p>
-<div class="refsect3">
-<a name="GstAppSrcCallbacks.members"></a><h4>Members</h4>
-<div class="informaltable"><table class="informaltable" width="100%" border="0">
-<colgroup>
-<col width="300px" class="struct_members_name">
-<col class="struct_members_description">
-<col width="200px" class="struct_members_annotations">
-</colgroup>
-<tbody>
-<tr>
-<td class="struct_member_name"><p><em class="structfield"><code><a name="GstAppSrcCallbacks.need-data"></a>need_data</code></em> ()</p></td>
-<td class="struct_member_description"><p>Called when the appsrc needs more data. A buffer or EOS should be
-pushed to appsrc from this thread or another thread. <em class="parameter"><code>length</code></em>
-is just a hint
-and when it is set to -1, any number of bytes can be pushed into <em class="parameter"><code>appsrc</code></em>
-.</p></td>
-<td class="struct_member_annotations"> </td>
-</tr>
-<tr>
-<td class="struct_member_name"><p><em class="structfield"><code><a name="GstAppSrcCallbacks.enough-data"></a>enough_data</code></em> ()</p></td>
-<td class="struct_member_description"><p>Called when appsrc has enough data. It is recommended that the
-application stops calling push-buffer until the need_data callback is
-emitted again to avoid excessive buffer queueing.</p></td>
-<td class="struct_member_annotations"> </td>
-</tr>
-<tr>
-<td class="struct_member_name"><p><em class="structfield"><code><a name="GstAppSrcCallbacks.seek-data"></a>seek_data</code></em> ()</p></td>
-<td class="struct_member_description"><p>Called when a seek should be performed to the offset.
-The next push-buffer should produce buffers from the new <em class="parameter"><code>offset</code></em>
-.
-This callback is only called for seekable stream types.</p></td>
-<td class="struct_member_annotations"> </td>
-</tr>
-</tbody>
-</table></div>
 </div>
 </div>
 </div>
-<div class="refsect1">
-<a name="gst-plugins-base-libs-appsrc.see-also"></a><h2>See Also</h2>
-<p><a href="/usr/share/gtk-doc/html/gstreamer-libs-1.0GstBaseSrc.html#GstBaseSrc-struct"><span class="type">GstBaseSrc</span></a>, appsink</p>
-</div>
-</div>
 <div class="footer">
 <hr>Generated by GTK-Doc V1.25</div>
 </body>
diff --git a/docs/libs/html/gst-plugins-base-libs-dmabuf.html b/docs/libs/html/gst-plugins-base-libs-dmabuf.html
index d246154..20b94c4 100644
--- a/docs/libs/html/gst-plugins-base-libs-dmabuf.html
+++ b/docs/libs/html/gst-plugins-base-libs-dmabuf.html
@@ -27,7 +27,7 @@
 <div class="refnamediv"><table width="100%"><tr>
 <td valign="top">
 <h2><span class="refentrytitle"><a name="gst-plugins-base-libs-dmabuf.top_of_page"></a>dmabuf</span></h2>
-<p>dmabuf — Memory wrapper for Linux dmabuf memory</p>
+<p>dmabuf</p>
 </td>
 <td class="gallery_image" valign="top" align="right"></td>
 </tr></table></div>
@@ -88,15 +88,6 @@
 <a name="gst-dmabuf-allocator-new"></a><h3>gst_dmabuf_allocator_new ()</h3>
 <pre class="programlisting"><a href="/usr/share/gtk-doc/html/gstreamer-1.0GstAllocator.html#GstAllocator-struct"><span class="returnvalue">GstAllocator</span></a> *
 gst_dmabuf_allocator_new (<em class="parameter"><code><span class="type">void</span></code></em>);</pre>
-<p>Return a new dmabuf allocator.</p>
-<div class="refsect3">
-<a name="gst-dmabuf-allocator-new.returns"></a><h4>Returns</h4>
-<p> a new dmabuf allocator, or NULL if the allocator
-isn't available. Use <a href="/usr/share/gtk-doc/html/gstreamer-1.0GstObject.html#gst-object-unref"><code class="function">gst_object_unref()</code></a> to release the allocator after
-usage. </p>
-<p><span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>]</span></p>
-</div>
-<p class="since">Since: 1.2</p>
 </div>
 <hr>
 <div class="refsect2">
@@ -105,112 +96,23 @@
 gst_dmabuf_allocator_alloc (<em class="parameter"><code><a href="/usr/share/gtk-doc/html/gstreamer-1.0GstAllocator.html#GstAllocator-struct"><span class="type">GstAllocator</span></a> *allocator</code></em>,
                             <em class="parameter"><code><a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#gint"><span class="type">gint</span></a> fd</code></em>,
                             <em class="parameter"><code><a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#gsize"><span class="type">gsize</span></a> size</code></em>);</pre>
-<p>Return a <a href="/usr/share/gtk-doc/html/gstreamer-1.0GstMemory.html#GstMemory-struct"><code class="literal">GstMemory</code></a> that wraps a dmabuf file descriptor.</p>
-<div class="refsect3">
-<a name="gst-dmabuf-allocator-alloc.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>allocator</p></td>
-<td class="parameter_description"><p>allocator to be used for this memory</p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-<tr>
-<td class="parameter_name"><p>fd</p></td>
-<td class="parameter_description"><p>dmabuf file descriptor</p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-<tr>
-<td class="parameter_name"><p>size</p></td>
-<td class="parameter_description"><p>memory size</p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-</tbody>
-</table></div>
-</div>
-<div class="refsect3">
-<a name="gst-dmabuf-allocator-alloc.returns"></a><h4>Returns</h4>
-<p> a GstMemory based on <em class="parameter"><code>allocator</code></em>
-.
-When the buffer will be released dmabuf allocator will close the <em class="parameter"><code>fd</code></em>
-.
-The memory is only mmapped on <code class="function">gst_buffer_mmap()</code> request. </p>
-<p><span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>]</span></p>
-</div>
-<p class="since">Since: 1.2</p>
 </div>
 <hr>
 <div class="refsect2">
 <a name="gst-dmabuf-memory-get-fd"></a><h3>gst_dmabuf_memory_get_fd ()</h3>
 <pre class="programlisting"><a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#gint"><span class="returnvalue">gint</span></a>
 gst_dmabuf_memory_get_fd (<em class="parameter"><code><a href="/usr/share/gtk-doc/html/gstreamer-1.0GstMemory.html#GstMemory-struct"><span class="type">GstMemory</span></a> *mem</code></em>);</pre>
-<p>Return the file descriptor associated with <em class="parameter"><code>mem</code></em>
-.</p>
-<div class="refsect3">
-<a name="gst-dmabuf-memory-get-fd.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>mem</p></td>
-<td class="parameter_description"><p>the memory to get the file descriptor</p></td>
-<td class="parameter_annotations"> </td>
-</tr></tbody>
-</table></div>
-</div>
-<div class="refsect3">
-<a name="gst-dmabuf-memory-get-fd.returns"></a><h4>Returns</h4>
-<p> the file descriptor associated with the memory, or -1.  The file
-descriptor is still owned by the GstMemory.  Use dup to take a copy
-if you intend to use it beyond the lifetime of this GstMemory.</p>
-</div>
-<p class="since">Since: 1.2</p>
 </div>
 <hr>
 <div class="refsect2">
 <a name="gst-is-dmabuf-memory"></a><h3>gst_is_dmabuf_memory ()</h3>
 <pre class="programlisting"><a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
 gst_is_dmabuf_memory (<em class="parameter"><code><a href="/usr/share/gtk-doc/html/gstreamer-1.0GstMemory.html#GstMemory-struct"><span class="type">GstMemory</span></a> *mem</code></em>);</pre>
-<p>Check if <em class="parameter"><code>mem</code></em>
- is dmabuf memory.</p>
-<div class="refsect3">
-<a name="gst-is-dmabuf-memory.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>mem</p></td>
-<td class="parameter_description"><p>the memory to be check</p></td>
-<td class="parameter_annotations"> </td>
-</tr></tbody>
-</table></div>
-</div>
-<div class="refsect3">
-<a name="gst-is-dmabuf-memory.returns"></a><h4>Returns</h4>
-<p> <a href="/usr/share/gtk-doc/html/glibglib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a> if <em class="parameter"><code>mem</code></em>
-is dmabuf memory, otherwise <a href="/usr/share/gtk-doc/html/glibglib-Standard-Macros.html#FALSE:CAPS"><code class="literal">FALSE</code></a></p>
-</div>
-<p class="since">Since: 1.2</p>
 </div>
 </div>
 <div class="refsect1">
 <a name="gst-plugins-base-libs-dmabuf.other_details"></a><h2>Types and Values</h2>
 </div>
-<div class="refsect1">
-<a name="gst-plugins-base-libs-dmabuf.see-also"></a><h2>See Also</h2>
-<p><a href="/usr/share/gtk-doc/html/gstreamer-1.0GstMemory.html#GstMemory-struct"><span class="type">GstMemory</span></a></p>
-</div>
 </div>
 <div class="footer">
 <hr>Generated by GTK-Doc V1.25</div>
diff --git a/docs/libs/html/gst-plugins-base-libs-encoding-profile.html b/docs/libs/html/gst-plugins-base-libs-encoding-profile.html
index 4c3c140..0f5c6ef 100644
--- a/docs/libs/html/gst-plugins-base-libs-encoding-profile.html
+++ b/docs/libs/html/gst-plugins-base-libs-encoding-profile.html
@@ -29,7 +29,7 @@
 <div class="refnamediv"><table width="100%"><tr>
 <td valign="top">
 <h2><span class="refentrytitle"><a name="gst-plugins-base-libs-encoding-profile.top_of_page"></a>encoding-profile</span></h2>
-<p>encoding-profile — Encoding profile library</p>
+<p>encoding-profile</p>
 </td>
 <td class="gallery_image" valign="top" align="right"></td>
 </tr></table></div>
@@ -497,403 +497,6 @@
 </div>
 <div class="refsect1">
 <a name="gst-plugins-base-libs-encoding-profile.description"></a><h2>Description</h2>
-<div class="refsect2">
-<a name="id-1.2.14.10.13.2"></a><p>
-Functions to create and handle encoding profiles.
-</p>
-<p>
-Encoding profiles describe the media types and settings one wishes to use for
-an encoding process. The top-level profiles are commonly
-<a class="link" href="gst-plugins-base-libs-encoding-profile.html#GstEncodingContainerProfile"><span class="type">GstEncodingContainerProfile</span></a>(s) (which contains a user-readable name and
-description along with which container format to use). These, in turn,
-reference one or more <a class="link" href="gst-plugins-base-libs-encoding-profile.html#GstEncodingProfile"><span class="type">GstEncodingProfile</span></a>(s) which indicate which encoding
-format should be used on each individual streams.
-</p>
-<p>
-<a class="link" href="gst-plugins-base-libs-encoding-profile.html#GstEncodingProfile"><span class="type">GstEncodingProfile</span></a>(s) can be provided to the 'encodebin' element, which will take
-care of selecting and setting up the required elements to produce an output stream
-conforming to the specifications of the profile.
-</p>
-<p>
-Unlike other systems, the encoding profiles do not specify which <a href="/usr/share/gtk-doc/html/gstreamer-1.0GstElement.html#GstElement-struct"><span class="type">GstElement</span></a> to use
-for the various encoding and muxing steps, but instead relies on specifying the format
-one wishes to use.
-</p>
-<p>
-Encoding profiles can be created at runtime by the application or loaded from (and saved
-to) file using the <a class="link" href="gst-plugins-base-libs-encoding-profile.html#GstEncodingTarget"><span class="type">GstEncodingTarget</span></a> API.
-</p>
-</div>
-<hr>
-<div class="refsect2">
-<a name="gst-validate-transcoding--encoding-profile"></a><h3>The encoding profile serialization format</h3>
-<p>This is the serialization format of a <a class="link" href="gst-plugins-base-libs-encoding-profile.html#GstEncodingProfile"><span class="type">GstEncodingProfile</span></a>.</p>
-<p>
-     Internally the transcoding application uses <a href="/usr/share/gtk-doc/html/gst-plugins-base-plugins-1.0gst-plugins-base-plugins-encodebin.html#GstEncodeBin-struct"><span class="type">GstEncodeBin</span></a>. <span class="command"><strong>gst-validate-transcoding-&amp;GST_API_VERSION;</strong></span> uses its own
-     serialization format to describe the <a href="/usr/share/gtk-doc/html/gst-plugins-base-plugins-1.0gst-plugins-base-plugins-encodebin.html#GstEncodeBin--profile"><span class="type">GstEncodeBin.profile</span></a>
-    property of the encodebin.
-   </p>
-<p>
-       The simplest serialized profile looks like:
-   </p>
-<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">muxer_source_caps<span class="gtkdoc opt">:</span>videoencoder_source_caps<span class="gtkdoc opt">:</span>audioencoder_source_caps</pre></td>
-      </tr>
-    </tbody>
-  </table>
-</div>
-
-<p>
-        For example to encode a stream into a WebM container, with an OGG audio stream and a VP8 video stream,
-        the serialized <a class="link" href="gst-plugins-base-libs-encoding-profile.html#GstEncodingProfile"><span class="type">GstEncodingProfile</span></a> will look like:
-    </p>
-<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">video<span class="gtkdoc opt">/</span>webm<span class="gtkdoc opt">:</span>video<span class="gtkdoc opt">/</span>x<span class="gtkdoc opt">-</span>vp8<span class="gtkdoc opt">:</span>audio<span class="gtkdoc opt">/</span>x<span class="gtkdoc opt">-</span>vorbis</pre></td>
-      </tr>
-    </tbody>
-  </table>
-</div>
-
-<p>
-       You can also set the preset name of the encoding profile using the caps+preset_name syntax as in:
-   </p>
-<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">video<span class="gtkdoc opt">/</span>webm<span class="gtkdoc opt">:</span>video<span class="gtkdoc opt">/</span>x<span class="gtkdoc opt">-</span>vp8<span class="gtkdoc opt">+</span>youtube<span class="gtkdoc opt">-</span>preset<span class="gtkdoc opt">:</span>audio<span class="gtkdoc opt">/</span>x<span class="gtkdoc opt">-</span>vorbis</pre></td>
-      </tr>
-    </tbody>
-  </table>
-</div>
-
-<p>
-       Moreover, you can set the <a class="link" href="gst-plugins-base-libs-encoding-profile.html#gst-encoding-profile-set-presence" title="gst_encoding_profile_set_presence ()">presence</a> property of an
-       encoding profile using the <code class="code">|presence</code> syntax as in:
-   </p>
-<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">video<span class="gtkdoc opt">/</span>webm<span class="gtkdoc opt">:</span>video<span class="gtkdoc opt">/</span>x<span class="gtkdoc opt">-</span>vp8<span class="gtkdoc opt">|</span><span class="number">1</span><span class="gtkdoc opt">:</span>audio<span class="gtkdoc opt">/</span>x<span class="gtkdoc opt">-</span>vorbis</pre></td>
-      </tr>
-    </tbody>
-  </table>
-</div>
-
-<p>
-     This field allows you to specify how many times maximum a <a class="link" href="gst-plugins-base-libs-encoding-profile.html#GstEncodingProfile"><span class="type">GstEncodingProfile</span></a> can be used inside an encodebin.
-   </p>
-<p>
-     You can also use the <code class="code">restriction_caps-&gt;encoded_format_caps</code> syntax to specify the
-     restriction caps
-     to be set on a <a class="link" href="gst-plugins-base-libs-encoding-profile.html#GstEncodingProfile"><span class="type">GstEncodingProfile</span></a>. It corresponds to the
-     restriction <a href="/usr/share/gtk-doc/html/gstreamer-1.0GstCaps.html#GstCaps-struct"><span class="type">GstCaps</span></a> to apply before
-     the encoder that will be used in the profile. The fields present in restriction
-     caps are properties of the raw stream (that is, before encoding), such as height
-     and width for video and depth and sampling rate for audio. This property does not
-     make sense for muxers.
-   </p>
-<p>
-       To force a video stream to be encoded with a Full HD resolution (using WebM as the container format,
-       VP8 as the video codec and Vorbis as the audio codec), you should use:
-   </p>
-<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">video<span class="gtkdoc opt">/</span>webm<span class="gtkdoc opt">:</span>video<span class="gtkdoc opt">/</span>x<span class="gtkdoc opt">-</span>raw<span class="gtkdoc opt">,</span>width<span class="gtkdoc opt">=</span><span class="number">1920</span><span class="gtkdoc opt">,</span>height<span class="gtkdoc opt">=</span><span class="number">1080</span><span class="gtkdoc opt">-&gt;</span>video<span class="gtkdoc opt">/</span>x<span class="gtkdoc opt">-</span>vp8<span class="gtkdoc opt">:</span>audio<span class="gtkdoc opt">/</span>x<span class="gtkdoc opt">-</span>vorbis</pre></td>
-      </tr>
-    </tbody>
-  </table>
-</div>
-
-<div class="refsect3">
-<a name="id-1.2.14.10.13.3.16"></a><h4>Some serialized encoding formats examples:</h4>
-<p>
-     MP3 audio and H264 in MP4:
-   </p>
-<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">video<span class="gtkdoc opt">/</span>quicktime<span class="gtkdoc opt">,</span>variant<span class="gtkdoc opt">=</span>iso<span class="gtkdoc opt">:</span>video<span class="gtkdoc opt">/</span>x<span class="gtkdoc opt">-</span>h264<span class="gtkdoc opt">:</span>audio<span class="gtkdoc opt">/</span>mpeg<span class="gtkdoc opt">,</span>mpegversion<span class="gtkdoc opt">=</span><span class="number">1</span><span class="gtkdoc opt">,</span>layer<span class="gtkdoc opt">=</span><span class="number">3</span></pre></td>
-      </tr>
-    </tbody>
-  </table>
-</div>
-
-<p>
-     Vorbis and theora in OGG:
-   </p>
-<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">application<span class="gtkdoc opt">/</span>ogg<span class="gtkdoc opt">:</span>video<span class="gtkdoc opt">/</span>x<span class="gtkdoc opt">-</span>theora<span class="gtkdoc opt">:</span>audio<span class="gtkdoc opt">/</span>x<span class="gtkdoc opt">-</span>vorbis</pre></td>
-      </tr>
-    </tbody>
-  </table>
-</div>
-
-<p>
-     AC3 and H264 in MPEG-TS:
-   </p>
-<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">video<span class="gtkdoc opt">/</span>mpegts<span class="gtkdoc opt">:</span>video<span class="gtkdoc opt">/</span>x<span class="gtkdoc opt">-</span>h264<span class="gtkdoc opt">:</span>audio<span class="gtkdoc opt">/</span>x<span class="gtkdoc opt">-</span>ac3</pre></td>
-      </tr>
-    </tbody>
-  </table>
-</div>
-
-</div>
-</div>
-<hr>
-<div class="refsect2">
-<a name="id-1.2.14.10.13.4"></a><h3>Example: Creating a profile</h3>
-<p>
-</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
-6
-7
-8
-9
-10
-11
-12
-13
-14
-15
-16
-17
-18
-19
-20
-21
-22
-23
-24
-25
-26</pre></td>
-        <td class="listing_code"><pre class="programlisting"><span class="gtkdoc ppc">#include &lt;gst/pbutils/encoding-profile.h&gt;</span>
-<span class="gtkdoc opt">...</span>
-GstEncodingProfile <span class="gtkdoc opt">*</span>
-<span class="function">create_ogg_theora_profile</span><span class="gtkdoc opt">(</span><span class="gtkdoc kwb">void</span><span class="gtkdoc opt">)</span>
-<span class="gtkdoc opt">{</span>
- GstEncodingContainerProfile <span class="gtkdoc opt">*</span>prof<span class="gtkdoc opt">;</span>
- GstCaps <span class="gtkdoc opt">*</span>caps<span class="gtkdoc opt">;</span>
-
- caps <span class="gtkdoc opt">=</span> <span class="function"><a href="/usr/share/gtk-doc/html/gstreamer-1.0GstCaps.html#gst-caps-from-string">gst_caps_from_string</a></span><span class="gtkdoc opt">(</span><span class="string">&quot;application/ogg&quot;</span><span class="gtkdoc opt">);</span>
- prof <span class="gtkdoc opt">=</span> <span class="function"><a href="gst-plugins-base-libs-encoding-profile.html#gst-encoding-container-profile-new">gst_encoding_container_profile_new</a></span><span class="gtkdoc opt">(</span><span class="string">&quot;Ogg audio/video&quot;</span><span class="gtkdoc opt">,</span>
-    <span class="string">&quot;Standard OGG/THEORA/VORBIS&quot;</span><span class="gtkdoc opt">,</span>
-    caps<span class="gtkdoc opt">,</span> NULL<span class="gtkdoc opt">);</span>
- <span class="function"><a href="/usr/share/gtk-doc/html/gstreamer-1.0GstCaps.html#gst-caps-unref">gst_caps_unref</a></span> <span class="gtkdoc opt">(</span>caps<span class="gtkdoc opt">);</span>
-
- caps <span class="gtkdoc opt">=</span> <span class="function"><a href="/usr/share/gtk-doc/html/gstreamer-1.0GstCaps.html#gst-caps-from-string">gst_caps_from_string</a></span><span class="gtkdoc opt">(</span><span class="string">&quot;video/x-theora&quot;</span><span class="gtkdoc opt">);</span>
- <span class="function"><a href="gst-plugins-base-libs-encoding-profile.html#gst-encoding-container-profile-add-profile">gst_encoding_container_profile_add_profile</a></span><span class="gtkdoc opt">(</span>prof<span class="gtkdoc opt">,</span>
-      <span class="gtkdoc opt">(</span>GstEncodingProfile<span class="gtkdoc opt">*)</span> <span class="function"><a href="gst-plugins-base-libs-encoding-profile.html#gst-encoding-video-profile-new">gst_encoding_video_profile_new</a></span><span class="gtkdoc opt">(</span>caps<span class="gtkdoc opt">,</span> NULL<span class="gtkdoc opt">,</span> NULL<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/gstreamer-1.0GstCaps.html#gst-caps-unref">gst_caps_unref</a></span> <span class="gtkdoc opt">(</span>caps<span class="gtkdoc opt">);</span>
-
- caps <span class="gtkdoc opt">=</span> <span class="function"><a href="/usr/share/gtk-doc/html/gstreamer-1.0GstCaps.html#gst-caps-from-string">gst_caps_from_string</a></span><span class="gtkdoc opt">(</span><span class="string">&quot;audio/x-vorbis&quot;</span><span class="gtkdoc opt">);</span>
- <span class="function"><a href="gst-plugins-base-libs-encoding-profile.html#gst-encoding-container-profile-add-profile">gst_encoding_container_profile_add_profile</a></span><span class="gtkdoc opt">(</span>prof<span class="gtkdoc opt">,</span>
-      <span class="gtkdoc opt">(</span>GstEncodingProfile<span class="gtkdoc opt">*)</span> <span class="function"><a href="gst-plugins-base-libs-encoding-profile.html#gst-encoding-audio-profile-new">gst_encoding_audio_profile_new</a></span><span class="gtkdoc opt">(</span>caps<span class="gtkdoc opt">,</span> NULL<span class="gtkdoc opt">,</span> NULL<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/gstreamer-1.0GstCaps.html#gst-caps-unref">gst_caps_unref</a></span> <span class="gtkdoc opt">(</span>caps<span class="gtkdoc opt">);</span>
-
- <span class="keyword">return</span> <span class="gtkdoc opt">(</span>GstEncodingProfile<span class="gtkdoc opt">*)</span> prof<span class="gtkdoc opt">;</span>
-<span class="gtkdoc opt">}</span></pre></td>
-      </tr>
-    </tbody>
-  </table>
-</div>
-
-<p>
-</p>
-</div>
-<hr>
-<div class="refsect2">
-<a name="id-1.2.14.10.13.5"></a><h3>Example: Using an encoder preset with a profile</h3>
-<p>
-</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
-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</pre></td>
-        <td class="listing_code"><pre class="programlisting"><span class="gtkdoc ppc">#include &lt;gst/pbutils/encoding-profile.h&gt;</span>
-<span class="gtkdoc opt">...</span>
-GstEncodingProfile <span class="gtkdoc opt">*</span>
-<span class="function">create_ogg_theora_profile</span><span class="gtkdoc opt">(</span><span class="gtkdoc kwb">void</span><span class="gtkdoc opt">)</span>
-<span class="gtkdoc opt">{</span>
- GstEncodingVideoProfile <span class="gtkdoc opt">*</span>v<span class="gtkdoc opt">;</span>
- GstEncodingAudioProfile <span class="gtkdoc opt">*</span>a<span class="gtkdoc opt">;</span>
- GstEncodingContainerProfile <span class="gtkdoc opt">*</span>prof<span class="gtkdoc opt">;</span>
- GstCaps <span class="gtkdoc opt">*</span>caps<span class="gtkdoc opt">;</span>
- GstPreset <span class="gtkdoc opt">*</span>preset<span class="gtkdoc opt">;</span>
-
- caps <span class="gtkdoc opt">=</span> <span class="function"><a href="/usr/share/gtk-doc/html/gstreamer-1.0GstCaps.html#gst-caps-from-string">gst_caps_from_string</a></span> <span class="gtkdoc opt">(</span><span class="string">&quot;application/ogg&quot;</span><span class="gtkdoc opt">);</span>
- prof <span class="gtkdoc opt">=</span> <span class="function"><a href="gst-plugins-base-libs-encoding-profile.html#gst-encoding-container-profile-new">gst_encoding_container_profile_new</a></span> <span class="gtkdoc opt">(</span><span class="string">&quot;Ogg audio/video&quot;</span><span class="gtkdoc opt">,</span>
-    <span class="string">&quot;Standard OGG/THEORA/VORBIS&quot;</span><span class="gtkdoc opt">,</span>
-    caps<span class="gtkdoc opt">,</span> NULL<span class="gtkdoc opt">);</span>
- <span class="function"><a href="/usr/share/gtk-doc/html/gstreamer-1.0GstCaps.html#gst-caps-unref">gst_caps_unref</a></span> <span class="gtkdoc opt">(</span>caps<span class="gtkdoc opt">);</span>
-
- preset <span class="gtkdoc opt">=</span> <span class="function">GST_PRESET</span> <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;theoraenc&quot;</span><span class="gtkdoc opt">,</span> <span class="string">&quot;theorapreset&quot;</span><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>preset<span class="gtkdoc opt">,</span> <span class="string">&quot;bitrate&quot;</span><span class="gtkdoc opt">,</span> <span class="number">1000</span><span class="gtkdoc opt">,</span> NULL<span class="gtkdoc opt">);</span>
- <span class="gtkdoc slc">// The preset will be saved on the filesystem,</span>
- <span class="gtkdoc slc">// so try to use a descriptive name</span>
- <span class="function"><a href="/usr/share/gtk-doc/html/gstreamer-1.0GstPreset.html#gst-preset-save-preset">gst_preset_save_preset</a></span> <span class="gtkdoc opt">(</span>preset<span class="gtkdoc opt">,</span> <span class="string">&quot;theora_bitrate_preset&quot;</span><span class="gtkdoc opt">);</span>
- <span class="function"><a href="/usr/share/gtk-doc/html/gstreamer-1.0GstObject.html#gst-object-unref">gst_object_unref</a></span> <span class="gtkdoc opt">(</span>preset<span class="gtkdoc opt">);</span>
-
- caps <span class="gtkdoc opt">=</span> <span class="function"><a href="/usr/share/gtk-doc/html/gstreamer-1.0GstCaps.html#gst-caps-from-string">gst_caps_from_string</a></span> <span class="gtkdoc opt">(</span><span class="string">&quot;video/x-theora&quot;</span><span class="gtkdoc opt">);</span>
- v <span class="gtkdoc opt">=</span> <span class="function"><a href="gst-plugins-base-libs-encoding-profile.html#gst-encoding-video-profile-new">gst_encoding_video_profile_new</a></span> <span class="gtkdoc opt">(</span>caps<span class="gtkdoc opt">,</span> <span class="string">&quot;theorapreset&quot;</span><span class="gtkdoc opt">,</span> NULL<span class="gtkdoc opt">,</span> <span class="number">0</span><span class="gtkdoc opt">);</span>
- <span class="function"><a href="gst-plugins-base-libs-encoding-profile.html#gst-encoding-container-profile-add-profile">gst_encoding_container_profile_add_profile</a></span> <span class="gtkdoc opt">(</span>prof<span class="gtkdoc opt">, (</span>GstEncodingProfile<span class="gtkdoc opt">*)</span> v<span class="gtkdoc opt">);</span>
- <span class="function"><a href="/usr/share/gtk-doc/html/gstreamer-1.0GstCaps.html#gst-caps-unref">gst_caps_unref</a></span> <span class="gtkdoc opt">(</span>caps<span class="gtkdoc opt">);</span>
-
- caps <span class="gtkdoc opt">=</span> <span class="function"><a href="/usr/share/gtk-doc/html/gstreamer-1.0GstCaps.html#gst-caps-from-string">gst_caps_from_string</a></span> <span class="gtkdoc opt">(</span><span class="string">&quot;audio/x-vorbis&quot;</span><span class="gtkdoc opt">);</span>
- a <span class="gtkdoc opt">=</span> <span class="function"><a href="gst-plugins-base-libs-encoding-profile.html#gst-encoding-audio-profile-new">gst_encoding_audio_profile_new</a></span> <span class="gtkdoc opt">(</span>caps<span class="gtkdoc opt">,</span> NULL<span class="gtkdoc opt">,</span> NULL<span class="gtkdoc opt">,</span> <span class="number">0</span><span class="gtkdoc opt">);</span>
- <span class="function"><a href="gst-plugins-base-libs-encoding-profile.html#gst-encoding-container-profile-add-profile">gst_encoding_container_profile_add_profile</a></span> <span class="gtkdoc opt">(</span>prof<span class="gtkdoc opt">, (</span>GstEncodingProfile<span class="gtkdoc opt">*)</span> a<span class="gtkdoc opt">);</span>
- <span class="function"><a href="/usr/share/gtk-doc/html/gstreamer-1.0GstCaps.html#gst-caps-unref">gst_caps_unref</a></span> <span class="gtkdoc opt">(</span>caps<span class="gtkdoc opt">);</span>
-
- <span class="keyword">return</span> <span class="gtkdoc opt">(</span>GstEncodingProfile<span class="gtkdoc opt">*)</span> prof<span class="gtkdoc opt">;</span>
-<span class="gtkdoc opt">}</span></pre></td>
-      </tr>
-    </tbody>
-  </table>
-</div>
-
-<p>
-</p>
-</div>
-<hr>
-<div class="refsect2">
-<a name="id-1.2.14.10.13.6"></a><h3>Example: Listing categories, targets and profiles</h3>
-<p>
-</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
-6
-7
-8
-9
-10
-11
-12
-13
-14
-15
-16
-17
-18
-19
-20
-21
-22
-23
-24
-25
-26
-27</pre></td>
-        <td class="listing_code"><pre class="programlisting"><span class="gtkdoc ppc">#include &lt;gst/pbutils/encoding-profile.h&gt;</span>
-<span class="gtkdoc opt">...</span>
-GstEncodingProfile <span class="gtkdoc opt">*</span>prof<span class="gtkdoc opt">;</span>
-GList <span class="gtkdoc opt">*</span>categories<span class="gtkdoc opt">, *</span>tmpc<span class="gtkdoc opt">;</span>
-GList <span class="gtkdoc opt">*</span>targets<span class="gtkdoc opt">, *</span>tmpt<span class="gtkdoc opt">;</span>
-<span class="gtkdoc opt">...</span>
-categories <span class="gtkdoc opt">=</span> <span class="function"><a href="gst-plugins-base-libs-encoding-profile.html#gst-encoding-list-available-categories">gst_encoding_list_available_categories</a></span> <span class="gtkdoc opt">();</span>
-
-<span class="gtkdoc opt">...</span> Show available categories to user <span class="gtkdoc opt">...</span>
-
-<span class="keyword">for</span> <span class="gtkdoc opt">(</span>tmpc <span class="gtkdoc opt">=</span> categories<span class="gtkdoc opt">;</span> tmpc<span class="gtkdoc opt">;</span> tmpc <span class="gtkdoc opt">=</span> tmpc<span class="gtkdoc opt">-&gt;</span>next<span class="gtkdoc opt">) {</span>
-  gchar <span class="gtkdoc opt">*</span>category <span class="gtkdoc opt">= (</span>gchar <span class="gtkdoc opt">*)</span> tmpc<span class="gtkdoc opt">-&gt;</span>data<span class="gtkdoc opt">;</span>
-
-  <span class="gtkdoc opt">...</span> <span class="keyword">and</span> we can list all targets within that category <span class="gtkdoc opt">...</span>
-
-  targets <span class="gtkdoc opt">=</span> <span class="function"><a href="gst-plugins-base-libs-encoding-profile.html#gst-encoding-list-all-targets">gst_encoding_list_all_targets</a></span> <span class="gtkdoc opt">(</span>category<span class="gtkdoc opt">);</span>
-
-  <span class="gtkdoc opt">...</span> <span class="keyword">and</span> show a list to our users <span class="gtkdoc opt">...</span>
-
-  <span class="function"><a href="/usr/share/gtk-doc/html/glibglib-Doubly-Linked-Lists.html#g-list-foreach">g_list_foreach</a></span> <span class="gtkdoc opt">(</span>targets<span class="gtkdoc opt">, (</span>GFunc<span class="gtkdoc opt">)</span> gst_encoding_target_unref<span class="gtkdoc opt">,</span> NULL<span class="gtkdoc opt">);</span>
-  <span class="function"><a href="/usr/share/gtk-doc/html/glibglib-Doubly-Linked-Lists.html#g-list-free">g_list_free</a></span> <span class="gtkdoc opt">(</span>targets<span class="gtkdoc opt">);</span>
-<span class="gtkdoc opt">}</span>
-
-<span class="function"><a href="/usr/share/gtk-doc/html/glibglib-Doubly-Linked-Lists.html#g-list-foreach">g_list_foreach</a></span> <span class="gtkdoc opt">(</span>categories<span class="gtkdoc opt">, (</span>GFunc<span class="gtkdoc opt">)</span> g_free<span class="gtkdoc opt">,</span> NULL<span class="gtkdoc opt">);</span>
-<span class="function"><a href="/usr/share/gtk-doc/html/glibglib-Doubly-Linked-Lists.html#g-list-free">g_list_free</a></span> <span class="gtkdoc opt">(</span>categories<span class="gtkdoc opt">);</span>
-
-<span class="gtkdoc opt">...</span></pre></td>
-      </tr>
-    </tbody>
-  </table>
-</div>
-
-<p>
-</p>
-</div>
 </div>
 <div class="refsect1">
 <a name="gst-plugins-base-libs-encoding-profile.functions_details"></a><h2>Functions</h2>
@@ -901,47 +504,12 @@
 <a name="gst-encoding-profile-unref"></a><h3>gst_encoding_profile_unref()</h3>
 <pre class="programlisting">#define gst_encoding_profile_unref(profile) (g_object_unref ((GObject*) profile))
 </pre>
-<p>Decreases the reference count of the <em class="parameter"><code>profile</code></em>
-, possibly freeing the <em class="parameter"><code>profile</code></em>
-.</p>
-<div class="refsect3">
-<a name="gst-encoding-profile-unref.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>profile</p></td>
-<td class="parameter_description"><p>a <a class="link" href="gst-plugins-base-libs-encoding-profile.html#GstEncodingProfile"><span class="type">GstEncodingProfile</span></a></p></td>
-<td class="parameter_annotations"> </td>
-</tr></tbody>
-</table></div>
-</div>
 </div>
 <hr>
 <div class="refsect2">
 <a name="gst-encoding-profile-ref"></a><h3>gst_encoding_profile_ref()</h3>
 <pre class="programlisting">#define gst_encoding_profile_ref(profile) (g_object_ref ((GObject*) profile))
 </pre>
-<p>Increases the reference count of the <em class="parameter"><code>profile</code></em>
-.</p>
-<div class="refsect3">
-<a name="gst-encoding-profile-ref.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>profile</p></td>
-<td class="parameter_description"><p>a <a class="link" href="gst-plugins-base-libs-encoding-profile.html#GstEncodingProfile"><span class="type">GstEncodingProfile</span></a></p></td>
-<td class="parameter_annotations"> </td>
-</tr></tbody>
-</table></div>
-</div>
 </div>
 <hr>
 <div class="refsect2">
@@ -950,254 +518,54 @@
 gst_encoding_profile_find (<em class="parameter"><code>const <a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *targetname</code></em>,
                            <em class="parameter"><code>const <a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *profilename</code></em>,
                            <em class="parameter"><code>const <a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *category</code></em>);</pre>
-<p>Find the <a class="link" href="gst-plugins-base-libs-encoding-profile.html#GstEncodingProfile"><span class="type">GstEncodingProfile</span></a> with the specified name and category.</p>
-<div class="refsect3">
-<a name="gst-encoding-profile-find.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>targetname</p></td>
-<td class="parameter_description"><p> The name of the target. </p></td>
-<td class="parameter_annotations"><span class="annotation">[<acronym title="Don't free data after the code is done."><span class="acronym">transfer none</span></acronym>]</span></td>
-</tr>
-<tr>
-<td class="parameter_name"><p>profilename</p></td>
-<td class="parameter_description"><p> (allow-none): The name of the profile, if <a href="/usr/share/gtk-doc/html/glibglib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a>
-provided, it will default to the encoding profile called <code class="literal">default</code>. </p></td>
-<td class="parameter_annotations"><span class="annotation">[<acronym title="Don't free data after the code is done."><span class="acronym">transfer none</span></acronym>]</span></td>
-</tr>
-<tr>
-<td class="parameter_name"><p>category</p></td>
-<td class="parameter_description"><p> The target category. Can be <a href="/usr/share/gtk-doc/html/glibglib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a>. </p></td>
-<td class="parameter_annotations"><span class="annotation">[<acronym title="Don't free data after the code is done."><span class="acronym">transfer none</span></acronym>][<acronym title="NULL is OK, both for passing and for returning."><span class="acronym">allow-none</span></acronym>]</span></td>
-</tr>
-</tbody>
-</table></div>
-</div>
-<div class="refsect3">
-<a name="gst-encoding-profile-find.returns"></a><h4>Returns</h4>
-<p> The matching <a class="link" href="gst-plugins-base-libs-encoding-profile.html#GstEncodingProfile"><span class="type">GstEncodingProfile</span></a> or <a href="/usr/share/gtk-doc/html/glibglib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a>. </p>
-<p><span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>]</span></p>
-</div>
 </div>
 <hr>
 <div class="refsect2">
 <a name="gst-encoding-profile-from-discoverer"></a><h3>gst_encoding_profile_from_discoverer ()</h3>
 <pre class="programlisting"><a class="link" href="gst-plugins-base-libs-encoding-profile.html#GstEncodingProfile"><span class="returnvalue">GstEncodingProfile</span></a> *
 gst_encoding_profile_from_discoverer (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstdiscoverer.html#GstDiscovererInfo"><span class="type">GstDiscovererInfo</span></a> *info</code></em>);</pre>
-<p>Creates a <a class="link" href="gst-plugins-base-libs-encoding-profile.html#GstEncodingProfile"><span class="type">GstEncodingProfile</span></a> matching the formats from the given
-<a class="link" href="gst-plugins-base-libs-gstdiscoverer.html#GstDiscovererInfo"><span class="type">GstDiscovererInfo</span></a>. Streams other than audio or video (eg,
-subtitles), are currently ignored.</p>
-<div class="refsect3">
-<a name="gst-encoding-profile-from-discoverer.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>info</p></td>
-<td class="parameter_description"><p> The <a class="link" href="gst-plugins-base-libs-gstdiscoverer.html#GstDiscovererInfo"><span class="type">GstDiscovererInfo</span></a> to read from. </p></td>
-<td class="parameter_annotations"><span class="annotation">[<acronym title="Don't free data after the code is done."><span class="acronym">transfer none</span></acronym>]</span></td>
-</tr></tbody>
-</table></div>
-</div>
-<div class="refsect3">
-<a name="gst-encoding-profile-from-discoverer.returns"></a><h4>Returns</h4>
-<p> The new <a class="link" href="gst-plugins-base-libs-encoding-profile.html#GstEncodingProfile"><span class="type">GstEncodingProfile</span></a> or <a href="/usr/share/gtk-doc/html/glibglib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a>. </p>
-<p><span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>]</span></p>
-</div>
 </div>
 <hr>
 <div class="refsect2">
 <a name="gst-encoding-profile-get-name"></a><h3>gst_encoding_profile_get_name ()</h3>
 <pre class="programlisting">const <a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> *
 gst_encoding_profile_get_name (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-encoding-profile.html#GstEncodingProfile"><span class="type">GstEncodingProfile</span></a> *profile</code></em>);</pre>
-<div class="refsect3">
-<a name="gst-encoding-profile-get-name.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>profile</p></td>
-<td class="parameter_description"><p>a <a class="link" href="gst-plugins-base-libs-encoding-profile.html#GstEncodingProfile"><span class="type">GstEncodingProfile</span></a></p></td>
-<td class="parameter_annotations"> </td>
-</tr></tbody>
-</table></div>
-</div>
-<div class="refsect3">
-<a name="gst-encoding-profile-get-name.returns"></a><h4>Returns</h4>
-<p> the name of the profile, can be <a href="/usr/share/gtk-doc/html/glibglib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a>.</p>
-</div>
 </div>
 <hr>
 <div class="refsect2">
 <a name="gst-encoding-profile-get-description"></a><h3>gst_encoding_profile_get_description ()</h3>
 <pre class="programlisting">const <a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> *
 gst_encoding_profile_get_description (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-encoding-profile.html#GstEncodingProfile"><span class="type">GstEncodingProfile</span></a> *profile</code></em>);</pre>
-<div class="refsect3">
-<a name="gst-encoding-profile-get-description.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>profile</p></td>
-<td class="parameter_description"><p>a <a class="link" href="gst-plugins-base-libs-encoding-profile.html#GstEncodingProfile"><span class="type">GstEncodingProfile</span></a></p></td>
-<td class="parameter_annotations"> </td>
-</tr></tbody>
-</table></div>
-</div>
-<div class="refsect3">
-<a name="gst-encoding-profile-get-description.returns"></a><h4>Returns</h4>
-<p> the description of the profile, can be <a href="/usr/share/gtk-doc/html/glibglib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a>.</p>
-</div>
 </div>
 <hr>
 <div class="refsect2">
 <a name="gst-encoding-profile-get-format"></a><h3>gst_encoding_profile_get_format ()</h3>
 <pre class="programlisting"><a href="/usr/share/gtk-doc/html/gstreamer-1.0GstCaps.html#GstCaps-struct"><span class="returnvalue">GstCaps</span></a> *
 gst_encoding_profile_get_format (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-encoding-profile.html#GstEncodingProfile"><span class="type">GstEncodingProfile</span></a> *profile</code></em>);</pre>
-<div class="refsect3">
-<a name="gst-encoding-profile-get-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>profile</p></td>
-<td class="parameter_description"><p>a <a class="link" href="gst-plugins-base-libs-encoding-profile.html#GstEncodingProfile"><span class="type">GstEncodingProfile</span></a></p></td>
-<td class="parameter_annotations"> </td>
-</tr></tbody>
-</table></div>
-</div>
-<div class="refsect3">
-<a name="gst-encoding-profile-get-format.returns"></a><h4>Returns</h4>
-<p> the <a href="/usr/share/gtk-doc/html/gstreamer-1.0GstCaps.html#GstCaps-struct"><span class="type">GstCaps</span></a> corresponding to the media format used
-in the profile. Unref after usage. </p>
-<p><span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>]</span></p>
-</div>
 </div>
 <hr>
 <div class="refsect2">
 <a name="gst-encoding-profile-get-preset"></a><h3>gst_encoding_profile_get_preset ()</h3>
 <pre class="programlisting">const <a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> *
 gst_encoding_profile_get_preset (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-encoding-profile.html#GstEncodingProfile"><span class="type">GstEncodingProfile</span></a> *profile</code></em>);</pre>
-<div class="refsect3">
-<a name="gst-encoding-profile-get-preset.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>profile</p></td>
-<td class="parameter_description"><p>a <a class="link" href="gst-plugins-base-libs-encoding-profile.html#GstEncodingProfile"><span class="type">GstEncodingProfile</span></a></p></td>
-<td class="parameter_annotations"> </td>
-</tr></tbody>
-</table></div>
-</div>
-<div class="refsect3">
-<a name="gst-encoding-profile-get-preset.returns"></a><h4>Returns</h4>
-<p> the name of the <a href="/usr/share/gtk-doc/html/gstreamer-1.0GstPreset.html#GstPreset-struct"><span class="type">GstPreset</span></a> to be used in the profile.
-This is the name that has been set when saving the preset.</p>
-</div>
 </div>
 <hr>
 <div class="refsect2">
 <a name="gst-encoding-profile-get-preset-name"></a><h3>gst_encoding_profile_get_preset_name ()</h3>
 <pre class="programlisting">const <a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> *
 gst_encoding_profile_get_preset_name (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-encoding-profile.html#GstEncodingProfile"><span class="type">GstEncodingProfile</span></a> *profile</code></em>);</pre>
-<div class="refsect3">
-<a name="gst-encoding-profile-get-preset-name.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>profile</p></td>
-<td class="parameter_description"><p>a <a class="link" href="gst-plugins-base-libs-encoding-profile.html#GstEncodingProfile"><span class="type">GstEncodingProfile</span></a></p></td>
-<td class="parameter_annotations"> </td>
-</tr></tbody>
-</table></div>
-</div>
-<div class="refsect3">
-<a name="gst-encoding-profile-get-preset-name.returns"></a><h4>Returns</h4>
-<p> the name of the <a href="/usr/share/gtk-doc/html/gstreamer-1.0GstPreset.html#GstPreset-struct"><span class="type">GstPreset</span></a> factory to be used in the profile.</p>
-</div>
 </div>
 <hr>
 <div class="refsect2">
 <a name="gst-encoding-profile-get-presence"></a><h3>gst_encoding_profile_get_presence ()</h3>
 <pre class="programlisting"><a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#guint"><span class="returnvalue">guint</span></a>
 gst_encoding_profile_get_presence (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-encoding-profile.html#GstEncodingProfile"><span class="type">GstEncodingProfile</span></a> *profile</code></em>);</pre>
-<div class="refsect3">
-<a name="gst-encoding-profile-get-presence.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>profile</p></td>
-<td class="parameter_description"><p>a <a class="link" href="gst-plugins-base-libs-encoding-profile.html#GstEncodingProfile"><span class="type">GstEncodingProfile</span></a></p></td>
-<td class="parameter_annotations"> </td>
-</tr></tbody>
-</table></div>
-</div>
-<div class="refsect3">
-<a name="gst-encoding-profile-get-presence.returns"></a><h4>Returns</h4>
-<p> The number of times the profile is used in its parent
-container profile. If 0, it is not a mandatory stream.</p>
-</div>
 </div>
 <hr>
 <div class="refsect2">
 <a name="gst-encoding-profile-get-restriction"></a><h3>gst_encoding_profile_get_restriction ()</h3>
 <pre class="programlisting"><a href="/usr/share/gtk-doc/html/gstreamer-1.0GstCaps.html#GstCaps-struct"><span class="returnvalue">GstCaps</span></a> *
 gst_encoding_profile_get_restriction (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-encoding-profile.html#GstEncodingProfile"><span class="type">GstEncodingProfile</span></a> *profile</code></em>);</pre>
-<div class="refsect3">
-<a name="gst-encoding-profile-get-restriction.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>profile</p></td>
-<td class="parameter_description"><p>a <a class="link" href="gst-plugins-base-libs-encoding-profile.html#GstEncodingProfile"><span class="type">GstEncodingProfile</span></a></p></td>
-<td class="parameter_annotations"> </td>
-</tr></tbody>
-</table></div>
-</div>
-<div class="refsect3">
-<a name="gst-encoding-profile-get-restriction.returns"></a><h4>Returns</h4>
-<p> The restriction <a href="/usr/share/gtk-doc/html/gstreamer-1.0GstCaps.html#GstCaps-struct"><span class="type">GstCaps</span></a> to apply before the encoder
-that will be used in the profile. The fields present in restriction caps are
-properties of the raw stream (that is before encoding), such as height and
-width for video and depth and sampling rate for audio. Does not apply to
-<a class="link" href="gst-plugins-base-libs-encoding-profile.html#GstEncodingContainerProfile"><span class="type">GstEncodingContainerProfile</span></a> (since there is no corresponding raw stream).
-Can be <a href="/usr/share/gtk-doc/html/glibglib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a>. Unref after usage. </p>
-<p><span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>]</span></p>
-</div>
 </div>
 <hr>
 <div class="refsect2">
@@ -1205,26 +573,6 @@
 <pre class="programlisting">const <a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> *
 gst_encoding_profile_get_file_extension
                                (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-encoding-profile.html#GstEncodingProfile"><span class="type">GstEncodingProfile</span></a> *profile</code></em>);</pre>
-<div class="refsect3">
-<a name="gst-encoding-profile-get-file-extension.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>profile</p></td>
-<td class="parameter_description"><p>a <a class="link" href="gst-plugins-base-libs-encoding-profile.html#GstEncodingProfile"><span class="type">GstEncodingProfile</span></a></p></td>
-<td class="parameter_annotations"> </td>
-</tr></tbody>
-</table></div>
-</div>
-<div class="refsect3">
-<a name="gst-encoding-profile-get-file-extension.returns"></a><h4>Returns</h4>
-<p> a suitable file extension for <em class="parameter"><code>profile</code></em>
-, or NULL.</p>
-</div>
 </div>
 <hr>
 <div class="refsect2">
@@ -1232,33 +580,6 @@
 <pre class="programlisting"><span class="returnvalue">void</span>
 gst_encoding_profile_set_name (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-encoding-profile.html#GstEncodingProfile"><span class="type">GstEncodingProfile</span></a> *profile</code></em>,
                                <em class="parameter"><code>const <a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *name</code></em>);</pre>
-<p>Set <em class="parameter"><code>name</code></em>
- as the given name for the <em class="parameter"><code>profile</code></em>
-. A copy of <em class="parameter"><code>name</code></em>
- will be made
-internally.</p>
-<div class="refsect3">
-<a name="gst-encoding-profile-set-name.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>profile</p></td>
-<td class="parameter_description"><p>a <a class="link" href="gst-plugins-base-libs-encoding-profile.html#GstEncodingProfile"><span class="type">GstEncodingProfile</span></a></p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-<tr>
-<td class="parameter_name"><p>name</p></td>
-<td class="parameter_description"><p>the name to set on the profile</p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-</tbody>
-</table></div>
-</div>
 </div>
 <hr>
 <div class="refsect2">
@@ -1266,33 +587,6 @@
 <pre class="programlisting"><span class="returnvalue">void</span>
 gst_encoding_profile_set_description (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-encoding-profile.html#GstEncodingProfile"><span class="type">GstEncodingProfile</span></a> *profile</code></em>,
                                       <em class="parameter"><code>const <a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *description</code></em>);</pre>
-<p>Set <em class="parameter"><code>description</code></em>
- as the given description for the <em class="parameter"><code>profile</code></em>
-. A copy of
-<em class="parameter"><code>description</code></em>
- will be made internally.</p>
-<div class="refsect3">
-<a name="gst-encoding-profile-set-description.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>profile</p></td>
-<td class="parameter_description"><p>a <a class="link" href="gst-plugins-base-libs-encoding-profile.html#GstEncodingProfile"><span class="type">GstEncodingProfile</span></a></p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-<tr>
-<td class="parameter_name"><p>description</p></td>
-<td class="parameter_description"><p>the description to set on the profile</p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-</tbody>
-</table></div>
-</div>
 </div>
 <hr>
 <div class="refsect2">
@@ -1300,29 +594,6 @@
 <pre class="programlisting"><span class="returnvalue">void</span>
 gst_encoding_profile_set_enabled (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-encoding-profile.html#GstEncodingProfile"><span class="type">GstEncodingProfile</span></a> *profile</code></em>,
                                   <em class="parameter"><code><a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a> enabled</code></em>);</pre>
-<p>Set whether the profile should be used or not.</p>
-<div class="refsect3">
-<a name="gst-encoding-profile-set-enabled.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>profile</p></td>
-<td class="parameter_description"><p>a <a class="link" href="gst-plugins-base-libs-encoding-profile.html#GstEncodingProfile"><span class="type">GstEncodingProfile</span></a></p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-<tr>
-<td class="parameter_name"><p>enabled</p></td>
-<td class="parameter_description"><p><a href="/usr/share/gtk-doc/html/glibglib-Standard-Macros.html#FALSE:CAPS"><code class="literal">FALSE</code></a> to disable <span class="type">profile</span>, <a href="/usr/share/gtk-doc/html/glibglib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a> to enable it</p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-</tbody>
-</table></div>
-</div>
 </div>
 <hr>
 <div class="refsect2">
@@ -1330,29 +601,6 @@
 <pre class="programlisting"><span class="returnvalue">void</span>
 gst_encoding_profile_set_format (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-encoding-profile.html#GstEncodingProfile"><span class="type">GstEncodingProfile</span></a> *profile</code></em>,
                                  <em class="parameter"><code><a href="/usr/share/gtk-doc/html/gstreamer-1.0GstCaps.html#GstCaps-struct"><span class="type">GstCaps</span></a> *format</code></em>);</pre>
-<p>Sets the media format used in the profile.</p>
-<div class="refsect3">
-<a name="gst-encoding-profile-set-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>profile</p></td>
-<td class="parameter_description"><p>a <a class="link" href="gst-plugins-base-libs-encoding-profile.html#GstEncodingProfile"><span class="type">GstEncodingProfile</span></a></p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-<tr>
-<td class="parameter_name"><p>format</p></td>
-<td class="parameter_description"><p>the media format to use in the profile.</p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-</tbody>
-</table></div>
-</div>
 </div>
 <hr>
 <div class="refsect2">
@@ -1360,31 +608,6 @@
 <pre class="programlisting"><span class="returnvalue">void</span>
 gst_encoding_profile_set_preset (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-encoding-profile.html#GstEncodingProfile"><span class="type">GstEncodingProfile</span></a> *profile</code></em>,
                                  <em class="parameter"><code>const <a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *preset</code></em>);</pre>
-<p>Sets the name of the <a href="/usr/share/gtk-doc/html/gstreamer-1.0GstElement.html#GstElement-struct"><span class="type">GstElement</span></a> that implements the <a href="/usr/share/gtk-doc/html/gstreamer-1.0GstPreset.html#GstPreset-struct"><span class="type">GstPreset</span></a> interface
-to use for the profile.
-This is the name that has been set when saving the preset.</p>
-<div class="refsect3">
-<a name="gst-encoding-profile-set-preset.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>profile</p></td>
-<td class="parameter_description"><p>a <a class="link" href="gst-plugins-base-libs-encoding-profile.html#GstEncodingProfile"><span class="type">GstEncodingProfile</span></a></p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-<tr>
-<td class="parameter_name"><p>preset</p></td>
-<td class="parameter_description"><p>the element preset to use</p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-</tbody>
-</table></div>
-</div>
 </div>
 <hr>
 <div class="refsect2">
@@ -1392,30 +615,6 @@
 <pre class="programlisting"><span class="returnvalue">void</span>
 gst_encoding_profile_set_preset_name (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-encoding-profile.html#GstEncodingProfile"><span class="type">GstEncodingProfile</span></a> *profile</code></em>,
                                       <em class="parameter"><code>const <a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *preset_name</code></em>);</pre>
-<p>Sets the name of the <a href="/usr/share/gtk-doc/html/gstreamer-1.0GstPreset.html#GstPreset-struct"><span class="type">GstPreset</span></a>'s factory to be used in the profile.</p>
-<div class="refsect3">
-<a name="gst-encoding-profile-set-preset-name.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>profile</p></td>
-<td class="parameter_description"><p>a <a class="link" href="gst-plugins-base-libs-encoding-profile.html#GstEncodingProfile"><span class="type">GstEncodingProfile</span></a></p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-<tr>
-<td class="parameter_name"><p>preset_name</p></td>
-<td class="parameter_description"><p>The name of the preset to use in this <em class="parameter"><code>profile</code></em>
-.</p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-</tbody>
-</table></div>
-</div>
 </div>
 <hr>
 <div class="refsect2">
@@ -1423,31 +622,6 @@
 <pre class="programlisting"><span class="returnvalue">void</span>
 gst_encoding_profile_set_restriction (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-encoding-profile.html#GstEncodingProfile"><span class="type">GstEncodingProfile</span></a> *profile</code></em>,
                                       <em class="parameter"><code><a href="/usr/share/gtk-doc/html/gstreamer-1.0GstCaps.html#GstCaps-struct"><span class="type">GstCaps</span></a> *restriction</code></em>);</pre>
-<p>Set the restriction <a href="/usr/share/gtk-doc/html/gstreamer-1.0GstCaps.html#GstCaps-struct"><span class="type">GstCaps</span></a> to apply before the encoder
-that will be used in the profile. See <a class="link" href="gst-plugins-base-libs-encoding-profile.html#gst-encoding-profile-get-restriction" title="gst_encoding_profile_get_restriction ()"><code class="function">gst_encoding_profile_get_restriction()</code></a>
-for more about restrictions. Does not apply to <a class="link" href="gst-plugins-base-libs-encoding-profile.html#GstEncodingContainerProfile"><span class="type">GstEncodingContainerProfile</span></a>.</p>
-<div class="refsect3">
-<a name="gst-encoding-profile-set-restriction.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>profile</p></td>
-<td class="parameter_description"><p>a <a class="link" href="gst-plugins-base-libs-encoding-profile.html#GstEncodingProfile"><span class="type">GstEncodingProfile</span></a></p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-<tr>
-<td class="parameter_name"><p>restriction</p></td>
-<td class="parameter_description"><p> the restriction to apply. </p></td>
-<td class="parameter_annotations"><span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>]</span></td>
-</tr>
-</tbody>
-</table></div>
-</div>
 </div>
 <hr>
 <div class="refsect2">
@@ -1455,30 +629,6 @@
 <pre class="programlisting"><span class="returnvalue">void</span>
 gst_encoding_profile_set_presence (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-encoding-profile.html#GstEncodingProfile"><span class="type">GstEncodingProfile</span></a> *profile</code></em>,
                                    <em class="parameter"><code><a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#guint"><span class="type">guint</span></a> presence</code></em>);</pre>
-<p>Set the number of time the profile is used in its parent
-container profile. If 0, it is not a mandatory stream</p>
-<div class="refsect3">
-<a name="gst-encoding-profile-set-presence.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>profile</p></td>
-<td class="parameter_description"><p>a <a class="link" href="gst-plugins-base-libs-encoding-profile.html#GstEncodingProfile"><span class="type">GstEncodingProfile</span></a></p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-<tr>
-<td class="parameter_name"><p>presence</p></td>
-<td class="parameter_description"><p>the number of time the profile can be used</p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-</tbody>
-</table></div>
-</div>
 </div>
 <hr>
 <div class="refsect2">
@@ -1486,35 +636,6 @@
 <pre class="programlisting"><a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
 gst_encoding_profile_is_equal (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-encoding-profile.html#GstEncodingProfile"><span class="type">GstEncodingProfile</span></a> *a</code></em>,
                                <em class="parameter"><code><a class="link" href="gst-plugins-base-libs-encoding-profile.html#GstEncodingProfile"><span class="type">GstEncodingProfile</span></a> *b</code></em>);</pre>
-<p>Checks whether the two <a class="link" href="gst-plugins-base-libs-encoding-profile.html#GstEncodingProfile"><span class="type">GstEncodingProfile</span></a> are equal</p>
-<div class="refsect3">
-<a name="gst-encoding-profile-is-equal.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>a</p></td>
-<td class="parameter_description"><p>a <a class="link" href="gst-plugins-base-libs-encoding-profile.html#GstEncodingProfile"><span class="type">GstEncodingProfile</span></a></p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-<tr>
-<td class="parameter_name"><p>b</p></td>
-<td class="parameter_description"><p>a <a class="link" href="gst-plugins-base-libs-encoding-profile.html#GstEncodingProfile"><span class="type">GstEncodingProfile</span></a></p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-</tbody>
-</table></div>
-</div>
-<div class="refsect3">
-<a name="gst-encoding-profile-is-equal.returns"></a><h4>Returns</h4>
-<p> <a href="/usr/share/gtk-doc/html/glibglib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a> if <em class="parameter"><code>a</code></em>
-and <em class="parameter"><code>b</code></em>
-are equal, else <a href="/usr/share/gtk-doc/html/glibglib-Standard-Macros.html#FALSE:CAPS"><code class="literal">FALSE</code></a>.</p>
-</div>
 </div>
 <hr>
 <div class="refsect2">
@@ -1527,56 +648,12 @@
 <a name="gst-encoding-profile-get-input-caps"></a><h3>gst_encoding_profile_get_input_caps ()</h3>
 <pre class="programlisting"><a href="/usr/share/gtk-doc/html/gstreamer-1.0GstCaps.html#GstCaps-struct"><span class="returnvalue">GstCaps</span></a> *
 gst_encoding_profile_get_input_caps (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-encoding-profile.html#GstEncodingProfile"><span class="type">GstEncodingProfile</span></a> *profile</code></em>);</pre>
-<p>Computes the full output caps that this <em class="parameter"><code>profile</code></em>
- will be able to consume.</p>
-<div class="refsect3">
-<a name="gst-encoding-profile-get-input-caps.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>profile</p></td>
-<td class="parameter_description"><p>a <a class="link" href="gst-plugins-base-libs-encoding-profile.html#GstEncodingProfile"><span class="type">GstEncodingProfile</span></a></p></td>
-<td class="parameter_annotations"> </td>
-</tr></tbody>
-</table></div>
-</div>
-<div class="refsect3">
-<a name="gst-encoding-profile-get-input-caps.returns"></a><h4>Returns</h4>
-<p> The full caps the given <em class="parameter"><code>profile</code></em>
-can consume. Call
-<a href="/usr/share/gtk-doc/html/gstreamer-1.0GstCaps.html#gst-caps-unref"><code class="function">gst_caps_unref()</code></a> when you are done with the caps. </p>
-<p><span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>]</span></p>
-</div>
 </div>
 <hr>
 <div class="refsect2">
 <a name="gst-encoding-profile-get-type-nick"></a><h3>gst_encoding_profile_get_type_nick ()</h3>
 <pre class="programlisting">const <a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> *
 gst_encoding_profile_get_type_nick (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-encoding-profile.html#GstEncodingProfile"><span class="type">GstEncodingProfile</span></a> *profile</code></em>);</pre>
-<div class="refsect3">
-<a name="gst-encoding-profile-get-type-nick.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>profile</p></td>
-<td class="parameter_description"><p>a <a class="link" href="gst-plugins-base-libs-encoding-profile.html#GstEncodingProfile"><span class="type">GstEncodingProfile</span></a></p></td>
-<td class="parameter_annotations"> </td>
-</tr></tbody>
-</table></div>
-</div>
-<div class="refsect3">
-<a name="gst-encoding-profile-get-type-nick.returns"></a><h4>Returns</h4>
-<p> the human-readable name of the type of <em class="parameter"><code>profile</code></em>
-.</p>
-</div>
 </div>
 <hr>
 <div class="refsect2">
@@ -1586,44 +663,6 @@
                                     <em class="parameter"><code>const <a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *description</code></em>,
                                     <em class="parameter"><code><a href="/usr/share/gtk-doc/html/gstreamer-1.0GstCaps.html#GstCaps-struct"><span class="type">GstCaps</span></a> *format</code></em>,
                                     <em class="parameter"><code>const <a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *preset</code></em>);</pre>
-<p>Creates a new <a class="link" href="gst-plugins-base-libs-encoding-profile.html#GstEncodingContainerProfile"><span class="type">GstEncodingContainerProfile</span></a>.</p>
-<div class="refsect3">
-<a name="gst-encoding-container-profile-new.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>name</p></td>
-<td class="parameter_description"><p> The name of the container profile, can be <a href="/usr/share/gtk-doc/html/glibglib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a>. </p></td>
-<td class="parameter_annotations"><span class="annotation">[<acronym title="NULL is OK, both for passing and for returning."><span class="acronym">allow-none</span></acronym>]</span></td>
-</tr>
-<tr>
-<td class="parameter_name"><p>description</p></td>
-<td class="parameter_description"><p> The description of the container profile,
-can be <a href="/usr/share/gtk-doc/html/glibglib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a>. </p></td>
-<td class="parameter_annotations"><span class="annotation">[<acronym title="NULL is OK, both for passing and for returning."><span class="acronym">allow-none</span></acronym>]</span></td>
-</tr>
-<tr>
-<td class="parameter_name"><p>format</p></td>
-<td class="parameter_description"><p>The format to use for this profile</p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-<tr>
-<td class="parameter_name"><p>preset</p></td>
-<td class="parameter_description"><p> The preset to use for this profile. </p></td>
-<td class="parameter_annotations"><span class="annotation">[<acronym title="NULL is OK, both for passing and for returning."><span class="acronym">allow-none</span></acronym>]</span></td>
-</tr>
-</tbody>
-</table></div>
-</div>
-<div class="refsect3">
-<a name="gst-encoding-container-profile-new.returns"></a><h4>Returns</h4>
-<p> The newly created <a class="link" href="gst-plugins-base-libs-encoding-profile.html#GstEncodingContainerProfile"><span class="type">GstEncodingContainerProfile</span></a>.</p>
-</div>
 </div>
 <hr>
 <div class="refsect2">
@@ -1632,38 +671,6 @@
 gst_encoding_container_profile_add_profile
                                (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-encoding-profile.html#GstEncodingContainerProfile"><span class="type">GstEncodingContainerProfile</span></a> *container</code></em>,
                                 <em class="parameter"><code><a class="link" href="gst-plugins-base-libs-encoding-profile.html#GstEncodingProfile"><span class="type">GstEncodingProfile</span></a> *profile</code></em>);</pre>
-<p>Add a <a class="link" href="gst-plugins-base-libs-encoding-profile.html#GstEncodingProfile"><span class="type">GstEncodingProfile</span></a> to the list of profiles handled by <em class="parameter"><code>container</code></em>
-.</p>
-<p>No copy of <em class="parameter"><code>profile</code></em>
- will be made, if you wish to use it elsewhere after this
-method you should increment its reference count.</p>
-<div class="refsect3">
-<a name="gst-encoding-container-profile-add-profile.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>container</p></td>
-<td class="parameter_description"><p>the <a class="link" href="gst-plugins-base-libs-encoding-profile.html#GstEncodingContainerProfile"><span class="type">GstEncodingContainerProfile</span></a> to use</p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-<tr>
-<td class="parameter_name"><p>profile</p></td>
-<td class="parameter_description"><p> the <a class="link" href="gst-plugins-base-libs-encoding-profile.html#GstEncodingProfile"><span class="type">GstEncodingProfile</span></a> to add. </p></td>
-<td class="parameter_annotations"><span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>]</span></td>
-</tr>
-</tbody>
-</table></div>
-</div>
-<div class="refsect3">
-<a name="gst-encoding-container-profile-add-profile.returns"></a><h4>Returns</h4>
-<p> <a href="/usr/share/gtk-doc/html/glibglib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a> if the <em class="parameter"><code>stream</code></em>
-was properly added, else <a href="/usr/share/gtk-doc/html/glibglib-Standard-Macros.html#FALSE:CAPS"><code class="literal">FALSE</code></a>.</p>
-</div>
 </div>
 <hr>
 <div class="refsect2">
@@ -1672,39 +679,6 @@
 gst_encoding_container_profile_contains_profile
                                (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-encoding-profile.html#GstEncodingContainerProfile"><span class="type">GstEncodingContainerProfile</span></a> *container</code></em>,
                                 <em class="parameter"><code><a class="link" href="gst-plugins-base-libs-encoding-profile.html#GstEncodingProfile"><span class="type">GstEncodingProfile</span></a> *profile</code></em>);</pre>
-<p>Checks if <em class="parameter"><code>container</code></em>
- contains a <a class="link" href="gst-plugins-base-libs-encoding-profile.html#GstEncodingProfile"><span class="type">GstEncodingProfile</span></a> identical to
-<em class="parameter"><code>profile</code></em>
-.</p>
-<div class="refsect3">
-<a name="gst-encoding-container-profile-contains-profile.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>container</p></td>
-<td class="parameter_description"><p>a <a class="link" href="gst-plugins-base-libs-encoding-profile.html#GstEncodingContainerProfile"><span class="type">GstEncodingContainerProfile</span></a></p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-<tr>
-<td class="parameter_name"><p>profile</p></td>
-<td class="parameter_description"><p>a <a class="link" href="gst-plugins-base-libs-encoding-profile.html#GstEncodingProfile"><span class="type">GstEncodingProfile</span></a></p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-</tbody>
-</table></div>
-</div>
-<div class="refsect3">
-<a name="gst-encoding-container-profile-contains-profile.returns"></a><h4>Returns</h4>
-<p> <a href="/usr/share/gtk-doc/html/glibglib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a> if <em class="parameter"><code>container</code></em>
-contains a <a class="link" href="gst-plugins-base-libs-encoding-profile.html#GstEncodingProfile"><span class="type">GstEncodingProfile</span></a> identical
-to <em class="parameter"><code>profile</code></em>
-, else <a href="/usr/share/gtk-doc/html/glibglib-Standard-Macros.html#FALSE:CAPS"><code class="literal">FALSE</code></a>.</p>
-</div>
 </div>
 <hr>
 <div class="refsect2">
@@ -1712,26 +686,6 @@
 <pre class="programlisting">const <a href="/usr/share/gtk-doc/html/glibglib-Doubly-Linked-Lists.html#GList"><span class="returnvalue">GList</span></a> *
 gst_encoding_container_profile_get_profiles
                                (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-encoding-profile.html#GstEncodingContainerProfile"><span class="type">GstEncodingContainerProfile</span></a> *profile</code></em>);</pre>
-<div class="refsect3">
-<a name="gst-encoding-container-profile-get-profiles.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>profile</p></td>
-<td class="parameter_description"><p>a <a class="link" href="gst-plugins-base-libs-encoding-profile.html#GstEncodingContainerProfile"><span class="type">GstEncodingContainerProfile</span></a></p></td>
-<td class="parameter_annotations"> </td>
-</tr></tbody>
-</table></div>
-</div>
-<div class="refsect3">
-<a name="gst-encoding-container-profile-get-profiles.returns"></a><h4>Returns</h4>
-<p>the list of contained <a class="link" href="gst-plugins-base-libs-encoding-profile.html#GstEncodingProfile"><span class="type">GstEncodingProfile</span></a>. </p>
-<p><span class="annotation">[<acronym title="Generics and defining elements of containers and arrays."><span class="acronym">element-type</span></acronym> GstPbutils.EncodingProfile][<acronym title="Don't free data after the code is done."><span class="acronym">transfer none</span></acronym>]</span></p>
-</div>
 </div>
 <hr>
 <div class="refsect2">
@@ -1741,47 +695,6 @@
                                 <em class="parameter"><code>const <a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *preset</code></em>,
                                 <em class="parameter"><code><a href="/usr/share/gtk-doc/html/gstreamer-1.0GstCaps.html#GstCaps-struct"><span class="type">GstCaps</span></a> *restriction</code></em>,
                                 <em class="parameter"><code><a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#guint"><span class="type">guint</span></a> presence</code></em>);</pre>
-<p>Creates a new <a class="link" href="gst-plugins-base-libs-encoding-profile.html#GstEncodingAudioProfile"><span class="type">GstEncodingAudioProfile</span></a></p>
-<p>All provided allocatable arguments will be internally copied, so can be
-safely freed/unreferenced after calling this method.</p>
-<div class="refsect3">
-<a name="gst-encoding-audio-profile-new.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>format</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></p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-<tr>
-<td class="parameter_name"><p>preset</p></td>
-<td class="parameter_description"><p> the preset(s) to use on the encoder, can be <a href="/usr/share/gtk-doc/html/glibglib-Standard-Macros.html#NULL:CAPS"><span class="type">NULL</span></a>. </p></td>
-<td class="parameter_annotations"><span class="annotation">[<acronym title="NULL is OK, both for passing and for returning."><span class="acronym">allow-none</span></acronym>]</span></td>
-</tr>
-<tr>
-<td class="parameter_name"><p>restriction</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> used to restrict the input to the encoder, can be
-NULL. See <a class="link" href="gst-plugins-base-libs-encoding-profile.html#gst-encoding-profile-get-restriction" title="gst_encoding_profile_get_restriction ()"><code class="function">gst_encoding_profile_get_restriction()</code></a> for more details. </p></td>
-<td class="parameter_annotations"><span class="annotation">[<acronym title="NULL is OK, both for passing and for returning."><span class="acronym">allow-none</span></acronym>]</span></td>
-</tr>
-<tr>
-<td class="parameter_name"><p>presence</p></td>
-<td class="parameter_description"><p>the number of time this stream must be used. 0 means any number of
-times (including never)</p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-</tbody>
-</table></div>
-</div>
-<div class="refsect3">
-<a name="gst-encoding-audio-profile-new.returns"></a><h4>Returns</h4>
-<p> the newly created <a class="link" href="gst-plugins-base-libs-encoding-profile.html#GstEncodingAudioProfile"><span class="type">GstEncodingAudioProfile</span></a>.</p>
-</div>
 </div>
 <hr>
 <div class="refsect2">
@@ -1791,78 +704,12 @@
                                 <em class="parameter"><code>const <a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *preset</code></em>,
                                 <em class="parameter"><code><a href="/usr/share/gtk-doc/html/gstreamer-1.0GstCaps.html#GstCaps-struct"><span class="type">GstCaps</span></a> *restriction</code></em>,
                                 <em class="parameter"><code><a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#guint"><span class="type">guint</span></a> presence</code></em>);</pre>
-<p>Creates a new <a class="link" href="gst-plugins-base-libs-encoding-profile.html#GstEncodingVideoProfile"><span class="type">GstEncodingVideoProfile</span></a></p>
-<p>All provided allocatable arguments will be internally copied, so can be
-safely freed/unreferenced after calling this method.</p>
-<p>If you wish to control the pass number (in case of multi-pass scenarios),
-please refer to the <a class="link" href="gst-plugins-base-libs-encoding-profile.html#gst-encoding-video-profile-set-pass" title="gst_encoding_video_profile_set_pass ()"><code class="function">gst_encoding_video_profile_set_pass()</code></a> documentation.</p>
-<p>If you wish to use/force a constant framerate please refer to the
-<a class="link" href="gst-plugins-base-libs-encoding-profile.html#gst-encoding-video-profile-set-variableframerate" title="gst_encoding_video_profile_set_variableframerate ()"><code class="function">gst_encoding_video_profile_set_variableframerate()</code></a> documentation.</p>
-<div class="refsect3">
-<a name="gst-encoding-video-profile-new.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>format</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></p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-<tr>
-<td class="parameter_name"><p>preset</p></td>
-<td class="parameter_description"><p> the preset(s) to use on the encoder, can be <a href="/usr/share/gtk-doc/html/glibglib-Standard-Macros.html#NULL:CAPS"><span class="type">NULL</span></a>. </p></td>
-<td class="parameter_annotations"><span class="annotation">[<acronym title="NULL is OK, both for passing and for returning."><span class="acronym">allow-none</span></acronym>]</span></td>
-</tr>
-<tr>
-<td class="parameter_name"><p>restriction</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> used to restrict the input to the encoder, can be
-NULL. See <a class="link" href="gst-plugins-base-libs-encoding-profile.html#gst-encoding-profile-get-restriction" title="gst_encoding_profile_get_restriction ()"><code class="function">gst_encoding_profile_get_restriction()</code></a> for more details. </p></td>
-<td class="parameter_annotations"><span class="annotation">[<acronym title="NULL is OK, both for passing and for returning."><span class="acronym">allow-none</span></acronym>]</span></td>
-</tr>
-<tr>
-<td class="parameter_name"><p>presence</p></td>
-<td class="parameter_description"><p>the number of time this stream must be used. 0 means any number of
-times (including never)</p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-</tbody>
-</table></div>
-</div>
-<div class="refsect3">
-<a name="gst-encoding-video-profile-new.returns"></a><h4>Returns</h4>
-<p> the newly created <a class="link" href="gst-plugins-base-libs-encoding-profile.html#GstEncodingVideoProfile"><span class="type">GstEncodingVideoProfile</span></a>.</p>
-</div>
 </div>
 <hr>
 <div class="refsect2">
 <a name="gst-encoding-video-profile-get-pass"></a><h3>gst_encoding_video_profile_get_pass ()</h3>
 <pre class="programlisting"><a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#guint"><span class="returnvalue">guint</span></a>
 gst_encoding_video_profile_get_pass (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-encoding-profile.html#GstEncodingVideoProfile"><span class="type">GstEncodingVideoProfile</span></a> *prof</code></em>);</pre>
-<p>Get the pass number if this is part of a multi-pass profile.</p>
-<div class="refsect3">
-<a name="gst-encoding-video-profile-get-pass.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>prof</p></td>
-<td class="parameter_description"><p>a <a class="link" href="gst-plugins-base-libs-encoding-profile.html#GstEncodingVideoProfile"><span class="type">GstEncodingVideoProfile</span></a></p></td>
-<td class="parameter_annotations"> </td>
-</tr></tbody>
-</table></div>
-</div>
-<div class="refsect3">
-<a name="gst-encoding-video-profile-get-pass.returns"></a><h4>Returns</h4>
-<p> The pass number. Starts at 1 for multi-pass. 0 if this is
-not a multi-pass profile</p>
-</div>
 </div>
 <hr>
 <div class="refsect2">
@@ -1870,25 +717,6 @@
 <pre class="programlisting"><a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
 gst_encoding_video_profile_get_variableframerate
                                (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-encoding-profile.html#GstEncodingVideoProfile"><span class="type">GstEncodingVideoProfile</span></a> *prof</code></em>);</pre>
-<div class="refsect3">
-<a name="gst-encoding-video-profile-get-variableframerate.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>prof</p></td>
-<td class="parameter_description"><p>a <a class="link" href="gst-plugins-base-libs-encoding-profile.html#GstEncodingVideoProfile"><span class="type">GstEncodingVideoProfile</span></a></p></td>
-<td class="parameter_annotations"> </td>
-</tr></tbody>
-</table></div>
-</div>
-<div class="refsect3">
-<a name="gst-encoding-video-profile-get-variableframerate.returns"></a><h4>Returns</h4>
-<p> Whether non-constant video framerate is allowed for encoding.</p>
-</div>
 </div>
 <hr>
 <div class="refsect2">
@@ -1896,31 +724,6 @@
 <pre class="programlisting"><span class="returnvalue">void</span>
 gst_encoding_video_profile_set_pass (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-encoding-profile.html#GstEncodingVideoProfile"><span class="type">GstEncodingVideoProfile</span></a> *prof</code></em>,
                                      <em class="parameter"><code><a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#guint"><span class="type">guint</span></a> pass</code></em>);</pre>
-<p>Sets the pass number of this video profile. The first pass profile should have
-this value set to 1. If this video profile isn't part of a multi-pass profile,
-you may set it to 0 (the default value).</p>
-<div class="refsect3">
-<a name="gst-encoding-video-profile-set-pass.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>prof</p></td>
-<td class="parameter_description"><p>a <a class="link" href="gst-plugins-base-libs-encoding-profile.html#GstEncodingVideoProfile"><span class="type">GstEncodingVideoProfile</span></a></p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-<tr>
-<td class="parameter_name"><p>pass</p></td>
-<td class="parameter_description"><p>the pass number for this profile</p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-</tbody>
-</table></div>
-</div>
 </div>
 <hr>
 <div class="refsect2">
@@ -1929,76 +732,16 @@
 gst_encoding_video_profile_set_variableframerate
                                (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-encoding-profile.html#GstEncodingVideoProfile"><span class="type">GstEncodingVideoProfile</span></a> *prof</code></em>,
                                 <em class="parameter"><code><a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a> variableframerate</code></em>);</pre>
-<p>If set to <a href="/usr/share/gtk-doc/html/glibglib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a>, then the incoming stream will be allowed to have non-constant
-framerate. If set to <a href="/usr/share/gtk-doc/html/glibglib-Standard-Macros.html#FALSE:CAPS"><code class="literal">FALSE</code></a> (default value), then the incoming stream will
-be normalized by dropping/duplicating frames in order to produce a
-constance framerate.</p>
-<div class="refsect3">
-<a name="gst-encoding-video-profile-set-variableframerate.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>prof</p></td>
-<td class="parameter_description"><p>a <a class="link" href="gst-plugins-base-libs-encoding-profile.html#GstEncodingVideoProfile"><span class="type">GstEncodingVideoProfile</span></a></p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-<tr>
-<td class="parameter_name"><p>variableframerate</p></td>
-<td class="parameter_description"><p>a boolean</p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-</tbody>
-</table></div>
-</div>
 </div>
 <hr>
 <div class="refsect2">
 <a name="gst-encoding-target-unref"></a><h3>gst_encoding_target_unref()</h3>
 <pre class="programlisting">#define             gst_encoding_target_unref(target)</pre>
-<p>Decreases the reference count of the <em class="parameter"><code>target</code></em>
-, possibly freeing it.</p>
-<div class="refsect3">
-<a name="gst-encoding-target-unref.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>target</p></td>
-<td class="parameter_description"><p>a <a class="link" href="gst-plugins-base-libs-encoding-profile.html#GstEncodingTarget"><span class="type">GstEncodingTarget</span></a></p></td>
-<td class="parameter_annotations"> </td>
-</tr></tbody>
-</table></div>
-</div>
 </div>
 <hr>
 <div class="refsect2">
 <a name="gst-encoding-target-ref"></a><h3>gst_encoding_target_ref()</h3>
 <pre class="programlisting">#define             gst_encoding_target_ref(target)</pre>
-<p>Increases the reference count of the <em class="parameter"><code>target</code></em>
-.</p>
-<div class="refsect3">
-<a name="gst-encoding-target-ref.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>target</p></td>
-<td class="parameter_description"><p>a <a class="link" href="gst-plugins-base-libs-encoding-profile.html#GstEncodingTarget"><span class="type">GstEncodingTarget</span></a></p></td>
-<td class="parameter_annotations"> </td>
-</tr></tbody>
-</table></div>
-</div>
 </div>
 <hr>
 <div class="refsect2">
@@ -2008,166 +751,30 @@
                          <em class="parameter"><code>const <a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *category</code></em>,
                          <em class="parameter"><code>const <a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *description</code></em>,
                          <em class="parameter"><code>const <a href="/usr/share/gtk-doc/html/glibglib-Doubly-Linked-Lists.html#GList"><span class="type">GList</span></a> *profiles</code></em>);</pre>
-<p>Creates a new <a class="link" href="gst-plugins-base-libs-encoding-profile.html#GstEncodingTarget"><span class="type">GstEncodingTarget</span></a>.</p>
-<p>The name and category can only consist of lowercase ASCII letters for the
-first character, followed by either lowercase ASCII letters, digits or
-hyphens ('-').</p>
-<p>The <em class="parameter"><code>category</code></em>
- <span class="emphasis"><em>should</em></span> be one of the existing
-well-defined categories, like <a class="link" href="gst-plugins-base-libs-encoding-profile.html#GST-ENCODING-CATEGORY-DEVICE:CAPS" title="GST_ENCODING_CATEGORY_DEVICE"><span class="type">GST_ENCODING_CATEGORY_DEVICE</span></a>, but it
-<span class="emphasis"><em>can</em></span> be a application or user specific category if
-needed.</p>
-<div class="refsect3">
-<a name="gst-encoding-target-new.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>name</p></td>
-<td class="parameter_description"><p>The name of the target.</p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-<tr>
-<td class="parameter_name"><p>category</p></td>
-<td class="parameter_description"><p> The name of the category to which this <em class="parameter"><code>target</code></em>
-belongs. For example: <a class="link" href="gst-plugins-base-libs-encoding-profile.html#GST-ENCODING-CATEGORY-DEVICE:CAPS" title="GST_ENCODING_CATEGORY_DEVICE"><span class="type">GST_ENCODING_CATEGORY_DEVICE</span></a>. </p></td>
-<td class="parameter_annotations"><span class="annotation">[<acronym title="Don't free data after the code is done."><span class="acronym">transfer none</span></acronym>]</span></td>
-</tr>
-<tr>
-<td class="parameter_name"><p>description</p></td>
-<td class="parameter_description"><p> A description of <a class="link" href="gst-plugins-base-libs-encoding-profile.html#GstEncodingTarget"><span class="type">GstEncodingTarget</span></a> in the
-current locale. </p></td>
-<td class="parameter_annotations"><span class="annotation">[<acronym title="Don't free data after the code is done."><span class="acronym">transfer none</span></acronym>]</span></td>
-</tr>
-<tr>
-<td class="parameter_name"><p>profiles</p></td>
-<td class="parameter_description"><p> A <a href="/usr/share/gtk-doc/html/glibglib-Doubly-Linked-Lists.html#GList"><span class="type">GList</span></a> of
-<a class="link" href="gst-plugins-base-libs-encoding-profile.html#GstEncodingProfile"><span class="type">GstEncodingProfile</span></a>. </p></td>
-<td class="parameter_annotations"><span class="annotation">[<acronym title="Don't free data after the code is done."><span class="acronym">transfer none</span></acronym>][<acronym title="Generics and defining elements of containers and arrays."><span class="acronym">element-type</span></acronym> GstPbutils.EncodingProfile]</span></td>
-</tr>
-</tbody>
-</table></div>
-</div>
-<div class="refsect3">
-<a name="gst-encoding-target-new.returns"></a><h4>Returns</h4>
-<p> The newly created <a class="link" href="gst-plugins-base-libs-encoding-profile.html#GstEncodingTarget"><span class="type">GstEncodingTarget</span></a> or <a href="/usr/share/gtk-doc/html/glibglib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a> if
-there was an error. </p>
-<p><span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>]</span></p>
-</div>
 </div>
 <hr>
 <div class="refsect2">
 <a name="gst-encoding-target-get-name"></a><h3>gst_encoding_target_get_name ()</h3>
 <pre class="programlisting">const <a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> *
 gst_encoding_target_get_name (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-encoding-profile.html#GstEncodingTarget"><span class="type">GstEncodingTarget</span></a> *target</code></em>);</pre>
-<div class="refsect3">
-<a name="gst-encoding-target-get-name.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>target</p></td>
-<td class="parameter_description"><p>a <a class="link" href="gst-plugins-base-libs-encoding-profile.html#GstEncodingTarget"><span class="type">GstEncodingTarget</span></a></p></td>
-<td class="parameter_annotations"> </td>
-</tr></tbody>
-</table></div>
-</div>
-<div class="refsect3">
-<a name="gst-encoding-target-get-name.returns"></a><h4>Returns</h4>
-<p> The name of the <em class="parameter"><code>target</code></em>
-. </p>
-<p><span class="annotation">[<acronym title="Don't free data after the code is done."><span class="acronym">transfer none</span></acronym>]</span></p>
-</div>
 </div>
 <hr>
 <div class="refsect2">
 <a name="gst-encoding-target-get-category"></a><h3>gst_encoding_target_get_category ()</h3>
 <pre class="programlisting">const <a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> *
 gst_encoding_target_get_category (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-encoding-profile.html#GstEncodingTarget"><span class="type">GstEncodingTarget</span></a> *target</code></em>);</pre>
-<div class="refsect3">
-<a name="gst-encoding-target-get-category.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>target</p></td>
-<td class="parameter_description"><p>a <a class="link" href="gst-plugins-base-libs-encoding-profile.html#GstEncodingTarget"><span class="type">GstEncodingTarget</span></a></p></td>
-<td class="parameter_annotations"> </td>
-</tr></tbody>
-</table></div>
-</div>
-<div class="refsect3">
-<a name="gst-encoding-target-get-category.returns"></a><h4>Returns</h4>
-<p> The category of the <em class="parameter"><code>target</code></em>
-. For example:
-<a class="link" href="gst-plugins-base-libs-encoding-profile.html#GST-ENCODING-CATEGORY-DEVICE:CAPS" title="GST_ENCODING_CATEGORY_DEVICE"><span class="type">GST_ENCODING_CATEGORY_DEVICE</span></a>. </p>
-<p><span class="annotation">[<acronym title="Don't free data after the code is done."><span class="acronym">transfer none</span></acronym>]</span></p>
-</div>
 </div>
 <hr>
 <div class="refsect2">
 <a name="gst-encoding-target-get-description"></a><h3>gst_encoding_target_get_description ()</h3>
 <pre class="programlisting">const <a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> *
 gst_encoding_target_get_description (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-encoding-profile.html#GstEncodingTarget"><span class="type">GstEncodingTarget</span></a> *target</code></em>);</pre>
-<div class="refsect3">
-<a name="gst-encoding-target-get-description.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>target</p></td>
-<td class="parameter_description"><p>a <a class="link" href="gst-plugins-base-libs-encoding-profile.html#GstEncodingTarget"><span class="type">GstEncodingTarget</span></a></p></td>
-<td class="parameter_annotations"> </td>
-</tr></tbody>
-</table></div>
-</div>
-<div class="refsect3">
-<a name="gst-encoding-target-get-description.returns"></a><h4>Returns</h4>
-<p> The description of the <em class="parameter"><code>target</code></em>
-. </p>
-<p><span class="annotation">[<acronym title="Don't free data after the code is done."><span class="acronym">transfer none</span></acronym>]</span></p>
-</div>
 </div>
 <hr>
 <div class="refsect2">
 <a name="gst-encoding-target-get-profiles"></a><h3>gst_encoding_target_get_profiles ()</h3>
 <pre class="programlisting">const <a href="/usr/share/gtk-doc/html/glibglib-Doubly-Linked-Lists.html#GList"><span class="returnvalue">GList</span></a> *
 gst_encoding_target_get_profiles (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-encoding-profile.html#GstEncodingTarget"><span class="type">GstEncodingTarget</span></a> *target</code></em>);</pre>
-<div class="refsect3">
-<a name="gst-encoding-target-get-profiles.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>target</p></td>
-<td class="parameter_description"><p>a <a class="link" href="gst-plugins-base-libs-encoding-profile.html#GstEncodingTarget"><span class="type">GstEncodingTarget</span></a></p></td>
-<td class="parameter_annotations"> </td>
-</tr></tbody>
-</table></div>
-</div>
-<div class="refsect3">
-<a name="gst-encoding-target-get-profiles.returns"></a><h4>Returns</h4>
-<p> A list of
-<a class="link" href="gst-plugins-base-libs-encoding-profile.html#GstEncodingProfile"><span class="type">GstEncodingProfile</span></a>(s) this <em class="parameter"><code>target</code></em>
-handles. </p>
-<p><span class="annotation">[<acronym title="Don't free data after the code is done."><span class="acronym">transfer none</span></acronym>][<acronym title="Generics and defining elements of containers and arrays."><span class="acronym">element-type</span></acronym> GstPbutils.EncodingProfile]</span></p>
-</div>
 </div>
 <hr>
 <div class="refsect2">
@@ -2175,33 +782,6 @@
 <pre class="programlisting"><a class="link" href="gst-plugins-base-libs-encoding-profile.html#GstEncodingProfile"><span class="returnvalue">GstEncodingProfile</span></a> *
 gst_encoding_target_get_profile (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-encoding-profile.html#GstEncodingTarget"><span class="type">GstEncodingTarget</span></a> *target</code></em>,
                                  <em class="parameter"><code>const <a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *name</code></em>);</pre>
-<div class="refsect3">
-<a name="gst-encoding-target-get-profile.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>target</p></td>
-<td class="parameter_description"><p>a <a class="link" href="gst-plugins-base-libs-encoding-profile.html#GstEncodingTarget"><span class="type">GstEncodingTarget</span></a></p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-<tr>
-<td class="parameter_name"><p>name</p></td>
-<td class="parameter_description"><p>the name of the profile to retrieve</p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-</tbody>
-</table></div>
-</div>
-<div class="refsect3">
-<a name="gst-encoding-target-get-profile.returns"></a><h4>Returns</h4>
-<p> The matching <a class="link" href="gst-plugins-base-libs-encoding-profile.html#GstEncodingProfile"><span class="type">GstEncodingProfile</span></a>, or <a href="/usr/share/gtk-doc/html/glibglib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a>. </p>
-<p><span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>]</span></p>
-</div>
 </div>
 <hr>
 <div class="refsect2">
@@ -2209,41 +789,6 @@
 <pre class="programlisting"><a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
 gst_encoding_target_add_profile (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-encoding-profile.html#GstEncodingTarget"><span class="type">GstEncodingTarget</span></a> *target</code></em>,
                                  <em class="parameter"><code><a class="link" href="gst-plugins-base-libs-encoding-profile.html#GstEncodingProfile"><span class="type">GstEncodingProfile</span></a> *profile</code></em>);</pre>
-<p>Adds the given <em class="parameter"><code>profile</code></em>
- to the <em class="parameter"><code>target</code></em>
-. Each added profile must have
-a unique name within the profile.</p>
-<p>The <em class="parameter"><code>target</code></em>
- will steal a reference to the <em class="parameter"><code>profile</code></em>
-. If you wish to use
-the profile after calling this method, you should increase its reference
-count.</p>
-<div class="refsect3">
-<a name="gst-encoding-target-add-profile.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>target</p></td>
-<td class="parameter_description"><p>the <a class="link" href="gst-plugins-base-libs-encoding-profile.html#GstEncodingTarget"><span class="type">GstEncodingTarget</span></a> to add a profile to</p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-<tr>
-<td class="parameter_name"><p>profile</p></td>
-<td class="parameter_description"><p> the <a class="link" href="gst-plugins-base-libs-encoding-profile.html#GstEncodingProfile"><span class="type">GstEncodingProfile</span></a> to add. </p></td>
-<td class="parameter_annotations"><span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>]</span></td>
-</tr>
-</tbody>
-</table></div>
-</div>
-<div class="refsect3">
-<a name="gst-encoding-target-add-profile.returns"></a><h4>Returns</h4>
-<p> <a href="/usr/share/gtk-doc/html/glibglib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a> if the profile was added, else <a href="/usr/share/gtk-doc/html/glibglib-Standard-Macros.html#FALSE:CAPS"><code class="literal">FALSE</code></a>.</p>
-</div>
 </div>
 <hr>
 <div class="refsect2">
@@ -2251,34 +796,6 @@
 <pre class="programlisting"><a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
 gst_encoding_target_save (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-encoding-profile.html#GstEncodingTarget"><span class="type">GstEncodingTarget</span></a> *target</code></em>,
                           <em class="parameter"><code><a href="/usr/share/gtk-doc/html/glibglib-Error-Reporting.html#GError"><span class="type">GError</span></a> **error</code></em>);</pre>
-<p>Saves the <em class="parameter"><code>target</code></em>
- to a default user-local directory.</p>
-<div class="refsect3">
-<a name="gst-encoding-target-save.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>target</p></td>
-<td class="parameter_description"><p>a <a class="link" href="gst-plugins-base-libs-encoding-profile.html#GstEncodingTarget"><span class="type">GstEncodingTarget</span></a></p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-<tr>
-<td class="parameter_name"><p>error</p></td>
-<td class="parameter_description"><p>If an error occured, this field will be filled in.</p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-</tbody>
-</table></div>
-</div>
-<div class="refsect3">
-<a name="gst-encoding-target-save.returns"></a><h4>Returns</h4>
-<p> <a href="/usr/share/gtk-doc/html/glibglib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a> if the target was correctly saved, else <a href="/usr/share/gtk-doc/html/glibglib-Standard-Macros.html#FALSE:CAPS"><code class="literal">FALSE</code></a>.</p>
-</div>
 </div>
 <hr>
 <div class="refsect2">
@@ -2287,40 +804,6 @@
 gst_encoding_target_save_to_file (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-encoding-profile.html#GstEncodingTarget"><span class="type">GstEncodingTarget</span></a> *target</code></em>,
                                   <em class="parameter"><code>const <a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *filepath</code></em>,
                                   <em class="parameter"><code><a href="/usr/share/gtk-doc/html/glibglib-Error-Reporting.html#GError"><span class="type">GError</span></a> **error</code></em>);</pre>
-<p>Saves the <em class="parameter"><code>target</code></em>
- to the provided file location.</p>
-<div class="refsect3">
-<a name="gst-encoding-target-save-to-file.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>target</p></td>
-<td class="parameter_description"><p>a <a class="link" href="gst-plugins-base-libs-encoding-profile.html#GstEncodingTarget"><span class="type">GstEncodingTarget</span></a></p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-<tr>
-<td class="parameter_name"><p>filepath</p></td>
-<td class="parameter_description"><p>the location to store the <em class="parameter"><code>target</code></em>
-at.</p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-<tr>
-<td class="parameter_name"><p>error</p></td>
-<td class="parameter_description"><p>If an error occured, this field will be filled in.</p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-</tbody>
-</table></div>
-</div>
-<div class="refsect3">
-<a name="gst-encoding-target-save-to-file.returns"></a><h4>Returns</h4>
-<p> <a href="/usr/share/gtk-doc/html/glibglib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a> if the target was correctly saved, else <a href="/usr/share/gtk-doc/html/glibglib-Standard-Macros.html#FALSE:CAPS"><code class="literal">FALSE</code></a>.</p>
-</div>
 </div>
 <hr>
 <div class="refsect2">
@@ -2329,43 +812,6 @@
 gst_encoding_target_load (<em class="parameter"><code>const <a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *name</code></em>,
                           <em class="parameter"><code>const <a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *category</code></em>,
                           <em class="parameter"><code><a href="/usr/share/gtk-doc/html/glibglib-Error-Reporting.html#GError"><span class="type">GError</span></a> **error</code></em>);</pre>
-<p>Searches for the <a class="link" href="gst-plugins-base-libs-encoding-profile.html#GstEncodingTarget"><span class="type">GstEncodingTarget</span></a> with the given name, loads it
-and returns it.</p>
-<p>If the category name is specified only targets from that category will be
-searched for.</p>
-<div class="refsect3">
-<a name="gst-encoding-target-load.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>name</p></td>
-<td class="parameter_description"><p>the name of the <a class="link" href="gst-plugins-base-libs-encoding-profile.html#GstEncodingTarget"><span class="type">GstEncodingTarget</span></a> to load.</p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-<tr>
-<td class="parameter_name"><p>category</p></td>
-<td class="parameter_description"><p> the name of the target category, like
-<a class="link" href="gst-plugins-base-libs-encoding-profile.html#GST-ENCODING-CATEGORY-DEVICE:CAPS" title="GST_ENCODING_CATEGORY_DEVICE"><span class="type">GST_ENCODING_CATEGORY_DEVICE</span></a>. Can be <a href="/usr/share/gtk-doc/html/glibglib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a>. </p></td>
-<td class="parameter_annotations"><span class="annotation">[<acronym title="NULL is OK, both for passing and for returning."><span class="acronym">allow-none</span></acronym>]</span></td>
-</tr>
-<tr>
-<td class="parameter_name"><p>error</p></td>
-<td class="parameter_description"><p>If an error occured, this field will be filled in.</p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-</tbody>
-</table></div>
-</div>
-<div class="refsect3">
-<a name="gst-encoding-target-load.returns"></a><h4>Returns</h4>
-<p> The <a class="link" href="gst-plugins-base-libs-encoding-profile.html#GstEncodingTarget"><span class="type">GstEncodingTarget</span></a> if available, else <a href="/usr/share/gtk-doc/html/glibglib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a>. </p>
-<p><span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>]</span></p>
-</div>
 </div>
 <hr>
 <div class="refsect2">
@@ -2373,65 +819,12 @@
 <pre class="programlisting"><a class="link" href="gst-plugins-base-libs-encoding-profile.html#GstEncodingTarget"><span class="returnvalue">GstEncodingTarget</span></a> *
 gst_encoding_target_load_from_file (<em class="parameter"><code>const <a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *filepath</code></em>,
                                     <em class="parameter"><code><a href="/usr/share/gtk-doc/html/glibglib-Error-Reporting.html#GError"><span class="type">GError</span></a> **error</code></em>);</pre>
-<p>Opens the provided file and returns the contained <a class="link" href="gst-plugins-base-libs-encoding-profile.html#GstEncodingTarget"><span class="type">GstEncodingTarget</span></a>.</p>
-<div class="refsect3">
-<a name="gst-encoding-target-load-from-file.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>filepath</p></td>
-<td class="parameter_description"><p>The file location to load the <a class="link" href="gst-plugins-base-libs-encoding-profile.html#GstEncodingTarget"><span class="type">GstEncodingTarget</span></a> from</p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-<tr>
-<td class="parameter_name"><p>error</p></td>
-<td class="parameter_description"><p>If an error occured, this field will be filled in.</p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-</tbody>
-</table></div>
-</div>
-<div class="refsect3">
-<a name="gst-encoding-target-load-from-file.returns"></a><h4>Returns</h4>
-<p> The <a class="link" href="gst-plugins-base-libs-encoding-profile.html#GstEncodingTarget"><span class="type">GstEncodingTarget</span></a> contained in the file, else
-<a href="/usr/share/gtk-doc/html/glibglib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a>. </p>
-<p><span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>]</span></p>
-</div>
 </div>
 <hr>
 <div class="refsect2">
 <a name="gst-encoding-list-all-targets"></a><h3>gst_encoding_list_all_targets ()</h3>
 <pre class="programlisting"><a href="/usr/share/gtk-doc/html/glibglib-Doubly-Linked-Lists.html#GList"><span class="returnvalue">GList</span></a> *
 gst_encoding_list_all_targets (<em class="parameter"><code>const <a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *categoryname</code></em>);</pre>
-<p>List all available <a class="link" href="gst-plugins-base-libs-encoding-profile.html#GstEncodingTarget"><span class="type">GstEncodingTarget</span></a> for the specified category, or all categories
-if <em class="parameter"><code>categoryname</code></em>
- is <a href="/usr/share/gtk-doc/html/glibglib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a>.</p>
-<div class="refsect3">
-<a name="gst-encoding-list-all-targets.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>categoryname</p></td>
-<td class="parameter_description"><p> The category, for ex: <a class="link" href="gst-plugins-base-libs-encoding-profile.html#GST-ENCODING-CATEGORY-DEVICE:CAPS" title="GST_ENCODING_CATEGORY_DEVICE"><span class="type">GST_ENCODING_CATEGORY_DEVICE</span></a>.
-Can be <a href="/usr/share/gtk-doc/html/glibglib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a>. </p></td>
-<td class="parameter_annotations"><span class="annotation">[<acronym title="NULL is OK, both for passing and for returning."><span class="acronym">allow-none</span></acronym>]</span></td>
-</tr></tbody>
-</table></div>
-</div>
-<div class="refsect3">
-<a name="gst-encoding-list-all-targets.returns"></a><h4>Returns</h4>
-<p> The list of <a class="link" href="gst-plugins-base-libs-encoding-profile.html#GstEncodingTarget"><span class="type">GstEncodingTarget</span></a>. </p>
-<p><span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>][<acronym title="Generics and defining elements of containers and arrays."><span class="acronym">element-type</span></acronym> GstEncodingTarget]</span></p>
-</div>
 </div>
 <hr>
 <div class="refsect2">
@@ -2439,13 +832,6 @@
 <pre class="programlisting"><a href="/usr/share/gtk-doc/html/glibglib-Doubly-Linked-Lists.html#GList"><span class="returnvalue">GList</span></a> *
 gst_encoding_list_available_categories
                                (<em class="parameter"><code><span class="type">void</span></code></em>);</pre>
-<p>Lists all <a class="link" href="gst-plugins-base-libs-encoding-profile.html#GstEncodingTarget"><span class="type">GstEncodingTarget</span></a> categories present on disk.</p>
-<div class="refsect3">
-<a name="gst-encoding-list-available-categories.returns"></a><h4>Returns</h4>
-<p> A list
-of <a class="link" href="gst-plugins-base-libs-encoding-profile.html#GstEncodingTarget"><span class="type">GstEncodingTarget</span></a> categories. </p>
-<p><span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>][<acronym title="Generics and defining elements of containers and arrays."><span class="acronym">element-type</span></acronym> gchar*]</span></p>
-</div>
 </div>
 </div>
 <div class="refsect1">
@@ -2453,73 +839,50 @@
 <div class="refsect2">
 <a name="GstEncodingProfile-struct"></a><h3>GstEncodingProfile</h3>
 <pre class="programlisting">typedef struct _GstEncodingProfile GstEncodingProfile;</pre>
-<p>The opaque base class object for all encoding profiles. This contains generic
-information like name, description, format and preset.</p>
 </div>
 <hr>
 <div class="refsect2">
 <a name="GstEncodingContainerProfile-struct"></a><h3>GstEncodingContainerProfile</h3>
 <pre class="programlisting">typedef struct _GstEncodingContainerProfile GstEncodingContainerProfile;</pre>
-<p>Encoding profiles for containers. Keeps track of a list of <a class="link" href="gst-plugins-base-libs-encoding-profile.html#GstEncodingProfile"><span class="type">GstEncodingProfile</span></a></p>
 </div>
 <hr>
 <div class="refsect2">
 <a name="GstEncodingAudioProfile-struct"></a><h3>GstEncodingAudioProfile</h3>
 <pre class="programlisting">typedef struct _GstEncodingAudioProfile GstEncodingAudioProfile;</pre>
-<p>Variant of <a class="link" href="gst-plugins-base-libs-encoding-profile.html#GstEncodingProfile"><span class="type">GstEncodingProfile</span></a> for audio streams.</p>
 </div>
 <hr>
 <div class="refsect2">
 <a name="GstEncodingVideoProfile-struct"></a><h3>GstEncodingVideoProfile</h3>
 <pre class="programlisting">typedef struct _GstEncodingVideoProfile GstEncodingVideoProfile;</pre>
-<p>Variant of <a class="link" href="gst-plugins-base-libs-encoding-profile.html#GstEncodingProfile"><span class="type">GstEncodingProfile</span></a> for video streams, allows specifying the <em class="parameter"><code>pass</code></em>
-.</p>
 </div>
 <hr>
 <div class="refsect2">
 <a name="GST-ENCODING-CATEGORY-DEVICE:CAPS"></a><h3>GST_ENCODING_CATEGORY_DEVICE</h3>
 <pre class="programlisting">#define GST_ENCODING_CATEGORY_DEVICE            "device"
 </pre>
-<p><a class="link" href="gst-plugins-base-libs-encoding-profile.html#GstEncodingTarget"><span class="type">GstEncodingTarget</span></a> category for device-specific targets.
-The name of the target will usually be the constructor and model of the device,
-and that target will contain <a href="gst-plugins-base-libs-encoding-profile.html#GstEncodingProfile-struct"><span class="type">GstEncodingProfiles</span></a> suitable for that device.</p>
 </div>
 <hr>
 <div class="refsect2">
 <a name="GST-ENCODING-CATEGORY-ONLINE-SERVICE:CAPS"></a><h3>GST_ENCODING_CATEGORY_ONLINE_SERVICE</h3>
 <pre class="programlisting">#define GST_ENCODING_CATEGORY_ONLINE_SERVICE    "online-service"
 </pre>
-<p><a class="link" href="gst-plugins-base-libs-encoding-profile.html#GstEncodingTarget"><span class="type">GstEncodingTarget</span></a> category for online-services.
-The name of the target will usually be the name of the online service
-and that target will contain <a href="gst-plugins-base-libs-encoding-profile.html#GstEncodingProfile-struct"><span class="type">GstEncodingProfiles</span></a> suitable for that online
-service.</p>
 </div>
 <hr>
 <div class="refsect2">
 <a name="GST-ENCODING-CATEGORY-STORAGE-EDITING:CAPS"></a><h3>GST_ENCODING_CATEGORY_STORAGE_EDITING</h3>
 <pre class="programlisting">#define GST_ENCODING_CATEGORY_STORAGE_EDITING   "storage-editing"
 </pre>
-<p><a class="link" href="gst-plugins-base-libs-encoding-profile.html#GstEncodingTarget"><span class="type">GstEncodingTarget</span></a> category for storage, archiving and editing targets.
-Those targets can be lossless and/or provide very fast random access content.
-The name of the target will usually be the container type or editing target,
-and that target will contain <a href="gst-plugins-base-libs-encoding-profile.html#GstEncodingProfile-struct"><span class="type">GstEncodingProfiles</span></a> suitable for editing or
-storage.</p>
 </div>
 <hr>
 <div class="refsect2">
 <a name="GST-ENCODING-CATEGORY-CAPTURE:CAPS"></a><h3>GST_ENCODING_CATEGORY_CAPTURE</h3>
 <pre class="programlisting">#define GST_ENCODING_CATEGORY_CAPTURE           "capture"
 </pre>
-<p><a class="link" href="gst-plugins-base-libs-encoding-profile.html#GstEncodingTarget"><span class="type">GstEncodingTarget</span></a> category for recording and capture.
-Targets within this category are optimized for low latency encoding.</p>
 </div>
 <hr>
 <div class="refsect2">
 <a name="GstEncodingTarget-struct"></a><h3>GstEncodingTarget</h3>
 <pre class="programlisting">typedef struct _GstEncodingTarget GstEncodingTarget;</pre>
-<p>Collection of <a class="link" href="gst-plugins-base-libs-encoding-profile.html#GstEncodingProfile"><span class="type">GstEncodingProfile</span></a> for a specific target or use-case.</p>
-<p>When being stored/loaded, targets come from a specific category, like
-<a class="link" href="gst-plugins-base-libs-encoding-profile.html#GST-ENCODING-CATEGORY-DEVICE:CAPS" title="GST_ENCODING_CATEGORY_DEVICE"><span class="type">GST_ENCODING_CATEGORY_DEVICE</span></a>.</p>
 </div>
 </div>
 <div class="refsect1">
diff --git a/docs/libs/html/gst-plugins-base-libs-fdmemory.html b/docs/libs/html/gst-plugins-base-libs-fdmemory.html
index b56b312..8fa82f8 100644
--- a/docs/libs/html/gst-plugins-base-libs-fdmemory.html
+++ b/docs/libs/html/gst-plugins-base-libs-fdmemory.html
@@ -27,7 +27,7 @@
 <div class="refnamediv"><table width="100%"><tr>
 <td valign="top">
 <h2><span class="refentrytitle"><a name="gst-plugins-base-libs-fdmemory.top_of_page"></a>fdmemory</span></h2>
-<p>fdmemory — Memory wrapper for fd backed memory</p>
+<p>fdmemory</p>
 </td>
 <td class="gallery_image" valign="top" align="right"></td>
 </tr></table></div>
@@ -112,49 +112,6 @@
                         <em class="parameter"><code><a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#gint"><span class="type">gint</span></a> fd</code></em>,
                         <em class="parameter"><code><a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#gsize"><span class="type">gsize</span></a> size</code></em>,
                         <em class="parameter"><code><a class="link" href="gst-plugins-base-libs-fdmemory.html#GstFdMemoryFlags" title="enum GstFdMemoryFlags"><span class="type">GstFdMemoryFlags</span></a> flags</code></em>);</pre>
-<p>Return a <a href="/usr/share/gtk-doc/html/gstreamer-1.0GstMemory.html#GstMemory-struct"><code class="literal">GstMemory</code></a> that wraps a generic file descriptor.</p>
-<div class="refsect3">
-<a name="gst-fd-allocator-alloc.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>allocator</p></td>
-<td class="parameter_description"><p>allocator to be used for this memory</p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-<tr>
-<td class="parameter_name"><p>fd</p></td>
-<td class="parameter_description"><p>file descriptor</p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-<tr>
-<td class="parameter_name"><p>size</p></td>
-<td class="parameter_description"><p>memory size</p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-<tr>
-<td class="parameter_name"><p>flags</p></td>
-<td class="parameter_description"><p>extra <a class="link" href="gst-plugins-base-libs-fdmemory.html#GstFdMemoryFlags" title="enum GstFdMemoryFlags"><span class="type">GstFdMemoryFlags</span></a></p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-</tbody>
-</table></div>
-</div>
-<div class="refsect3">
-<a name="gst-fd-allocator-alloc.returns"></a><h4>Returns</h4>
-<p> a GstMemory based on <em class="parameter"><code>allocator</code></em>
-.
-When the buffer will be released the allocator will close the <em class="parameter"><code>fd</code></em>
-.
-The memory is only mmapped on <code class="function">gst_buffer_mmap()</code> request. </p>
-<p><span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>]</span></p>
-</div>
-<p class="since">Since: 1.6</p>
 </div>
 <hr>
 <div class="refsect2">
@@ -167,84 +124,24 @@
 <a name="gst-fd-allocator-new"></a><h3>gst_fd_allocator_new ()</h3>
 <pre class="programlisting"><a href="/usr/share/gtk-doc/html/gstreamer-1.0GstAllocator.html#GstAllocator-struct"><span class="returnvalue">GstAllocator</span></a> *
 gst_fd_allocator_new (<em class="parameter"><code><span class="type">void</span></code></em>);</pre>
-<p>Return a new fd allocator.</p>
-<div class="refsect3">
-<a name="gst-fd-allocator-new.returns"></a><h4>Returns</h4>
-<p> a new fd allocator, or NULL if the allocator
-isn't available. Use <a href="/usr/share/gtk-doc/html/gstreamer-1.0GstObject.html#gst-object-unref"><code class="function">gst_object_unref()</code></a> to release the allocator after
-usage. </p>
-<p><span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>]</span></p>
-</div>
-<p class="since">Since: 1.6</p>
 </div>
 <hr>
 <div class="refsect2">
 <a name="gst-fd-memory-get-fd"></a><h3>gst_fd_memory_get_fd ()</h3>
 <pre class="programlisting"><a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#gint"><span class="returnvalue">gint</span></a>
 gst_fd_memory_get_fd (<em class="parameter"><code><a href="/usr/share/gtk-doc/html/gstreamer-1.0GstMemory.html#GstMemory-struct"><span class="type">GstMemory</span></a> *mem</code></em>);</pre>
-<p>Get the fd from <em class="parameter"><code>mem</code></em>
-. Call <a class="link" href="gst-plugins-base-libs-fdmemory.html#gst-is-fd-memory" title="gst_is_fd_memory ()"><code class="function">gst_is_fd_memory()</code></a> to check if <em class="parameter"><code>mem</code></em>
- has
-an fd.</p>
-<div class="refsect3">
-<a name="gst-fd-memory-get-fd.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>mem</p></td>
-<td class="parameter_description"><p><a href="/usr/share/gtk-doc/html/gstreamer-1.0GstMemory.html#GstMemory-struct"><span class="type">GstMemory</span></a></p></td>
-<td class="parameter_annotations"> </td>
-</tr></tbody>
-</table></div>
-</div>
-<div class="refsect3">
-<a name="gst-fd-memory-get-fd.returns"></a><h4>Returns</h4>
-<p> the fd of <em class="parameter"><code>mem</code></em>
-or -1 when there is no fd on <em class="parameter"><code>mem</code></em>
-</p>
-</div>
-<p class="since">Since: 1.6</p>
 </div>
 <hr>
 <div class="refsect2">
 <a name="gst-is-fd-memory"></a><h3>gst_is_fd_memory ()</h3>
 <pre class="programlisting"><a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
 gst_is_fd_memory (<em class="parameter"><code><a href="/usr/share/gtk-doc/html/gstreamer-1.0GstMemory.html#GstMemory-struct"><span class="type">GstMemory</span></a> *mem</code></em>);</pre>
-<p>Check if <em class="parameter"><code>mem</code></em>
- is memory backed by an fd</p>
-<div class="refsect3">
-<a name="gst-is-fd-memory.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>mem</p></td>
-<td class="parameter_description"><p><a href="/usr/share/gtk-doc/html/gstreamer-1.0GstMemory.html#GstMemory-struct"><span class="type">GstMemory</span></a></p></td>
-<td class="parameter_annotations"> </td>
-</tr></tbody>
-</table></div>
-</div>
-<div class="refsect3">
-<a name="gst-is-fd-memory.returns"></a><h4>Returns</h4>
-<p> <a href="/usr/share/gtk-doc/html/glibglib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a> when <em class="parameter"><code>mem</code></em>
-has an fd that can be retrieved with
-<a class="link" href="gst-plugins-base-libs-fdmemory.html#gst-fd-memory-get-fd" title="gst_fd_memory_get_fd ()"><code class="function">gst_fd_memory_get_fd()</code></a>.</p>
-</div>
-<p class="since">Since: 1.6</p>
 </div>
 </div>
 <div class="refsect1">
 <a name="gst-plugins-base-libs-fdmemory.other_details"></a><h2>Types and Values</h2>
 <div class="refsect2">
 <a name="GstFdMemoryFlags"></a><h3>enum GstFdMemoryFlags</h3>
-<p>Various flags to control the operation of the fd backed memory.</p>
 <div class="refsect3">
 <a name="GstFdMemoryFlags.members"></a><h4>Members</h4>
 <div class="informaltable"><table class="informaltable" width="100%" border="0">
@@ -256,37 +153,24 @@
 <tbody>
 <tr>
 <td class="enum_member_name"><p><a name="GST-FD-MEMORY-FLAG-NONE:CAPS"></a>GST_FD_MEMORY_FLAG_NONE</p></td>
-<td class="enum_member_description">
-<p>no flag</p>
-</td>
-<td class="enum_member_annotations"> </td>
+<td> </td>
+<td> </td>
 </tr>
 <tr>
 <td class="enum_member_name"><p><a name="GST-FD-MEMORY-FLAG-KEEP-MAPPED:CAPS"></a>GST_FD_MEMORY_FLAG_KEEP_MAPPED</p></td>
-<td class="enum_member_description">
-<p>once the memory is mapped,
-       keep it mapped until the memory is destroyed.</p>
-</td>
-<td class="enum_member_annotations"> </td>
+<td> </td>
+<td> </td>
 </tr>
 <tr>
 <td class="enum_member_name"><p><a name="GST-FD-MEMORY-FLAG-MAP-PRIVATE:CAPS"></a>GST_FD_MEMORY_FLAG_MAP_PRIVATE</p></td>
-<td class="enum_member_description">
-<p>do a private mapping instead of
-       the default shared mapping.</p>
-</td>
-<td class="enum_member_annotations"> </td>
+<td> </td>
+<td> </td>
 </tr>
 </tbody>
 </table></div>
 </div>
-<p class="since">Since: 1.6</p>
 </div>
 </div>
-<div class="refsect1">
-<a name="gst-plugins-base-libs-fdmemory.see-also"></a><h2>See Also</h2>
-<p><a href="/usr/share/gtk-doc/html/gstreamer-1.0GstMemory.html#GstMemory-struct"><span class="type">GstMemory</span></a></p>
-</div>
 </div>
 <div class="footer">
 <hr>Generated by GTK-Doc V1.25</div>
diff --git a/docs/libs/html/gst-plugins-base-libs-gstaudio.html b/docs/libs/html/gst-plugins-base-libs-gstaudio.html
index 75e2948..588f4c9 100644
--- a/docs/libs/html/gst-plugins-base-libs-gstaudio.html
+++ b/docs/libs/html/gst-plugins-base-libs-gstaudio.html
@@ -27,7 +27,7 @@
 <div class="refnamediv"><table width="100%"><tr>
 <td valign="top">
 <h2><span class="refentrytitle"><a name="gst-plugins-base-libs-gstaudio.top_of_page"></a>gstaudio</span></h2>
-<p>gstaudio — Support library for audio elements</p>
+<p>gstaudio</p>
 </td>
 <td class="gallery_image" valign="top" align="right"></td>
 </tr></table></div>
@@ -468,7 +468,6 @@
 </div>
 <div class="refsect1">
 <a name="gst-plugins-base-libs-gstaudio.description"></a><h2>Description</h2>
-<p>This library contains some helper functions for audio elements.</p>
 </div>
 <div class="refsect1">
 <a name="gst-plugins-base-libs-gstaudio.functions_details"></a><h2>Functions</h2>
@@ -480,46 +479,6 @@
                        <em class="parameter"><code>const <a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> src</code></em>,
                        <em class="parameter"><code><a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> data</code></em>,
                        <em class="parameter"><code><a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#gint"><span class="type">gint</span></a> length</code></em>);</pre>
-<p>Packs <em class="parameter"><code>length</code></em>
- samples from <em class="parameter"><code>src</code></em>
- to the data array in format <em class="parameter"><code>info</code></em>
-.
-The samples from source have each channel interleaved
-and will be packed into <em class="parameter"><code>data</code></em>
-.</p>
-<div class="refsect3">
-<a name="GstAudioFormatPack.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>info</p></td>
-<td class="parameter_description"><p>a <a class="link" href="gst-plugins-base-libs-gstaudio.html#GstAudioFormatInfo" title="struct GstAudioFormatInfo"><span class="type">GstAudioFormatInfo</span></a></p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-<tr>
-<td class="parameter_name"><p>src</p></td>
-<td class="parameter_description"><p> a source array. </p></td>
-<td class="parameter_annotations"><span class="annotation">[<acronym title="Parameter points to an array of items."><span class="acronym">array</span></acronym>][<acronym title="Generics and defining elements of containers and arrays."><span class="acronym">element-type</span></acronym> guint8]</span></td>
-</tr>
-<tr>
-<td class="parameter_name"><p>data</p></td>
-<td class="parameter_description"><p> pointer to the destination
-data. </p></td>
-<td class="parameter_annotations"><span class="annotation">[<acronym title="Parameter points to an array of items."><span class="acronym">array</span></acronym>][<acronym title="Generics and defining elements of containers and arrays."><span class="acronym">element-type</span></acronym> guint8]</span></td>
-</tr>
-<tr>
-<td class="parameter_name"><p>length</p></td>
-<td class="parameter_description"><p>the amount of samples to pack.</p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-</tbody>
-</table></div>
-</div>
 </div>
 <hr>
 <div class="refsect2">
@@ -530,70 +489,12 @@
                          <em class="parameter"><code><a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> dest</code></em>,
                          <em class="parameter"><code>const <a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> data</code></em>,
                          <em class="parameter"><code><a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#gint"><span class="type">gint</span></a> length</code></em>);</pre>
-<p>Unpacks <em class="parameter"><code>length</code></em>
- samples from the given data of format <em class="parameter"><code>info</code></em>
-.
-The samples will be unpacked into <em class="parameter"><code>dest</code></em>
- which each channel
-interleaved. <em class="parameter"><code>dest</code></em>
- should at least be big enough to hold <em class="parameter"><code>length</code></em>
- *
-channels * size(unpack_format) bytes.</p>
-<div class="refsect3">
-<a name="GstAudioFormatUnpack.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>info</p></td>
-<td class="parameter_description"><p>a <a class="link" href="gst-plugins-base-libs-gstaudio.html#GstAudioFormatInfo" title="struct GstAudioFormatInfo"><span class="type">GstAudioFormatInfo</span></a></p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-<tr>
-<td class="parameter_name"><p>dest</p></td>
-<td class="parameter_description"><p> a destination array. </p></td>
-<td class="parameter_annotations"><span class="annotation">[<acronym title="Parameter points to an array of items."><span class="acronym">array</span></acronym>][<acronym title="Generics and defining elements of containers and arrays."><span class="acronym">element-type</span></acronym> guint8]</span></td>
-</tr>
-<tr>
-<td class="parameter_name"><p>data</p></td>
-<td class="parameter_description"><p> pointer to the audio data. </p></td>
-<td class="parameter_annotations"><span class="annotation">[<acronym title="Parameter points to an array of items."><span class="acronym">array</span></acronym>][<acronym title="Generics and defining elements of containers and arrays."><span class="acronym">element-type</span></acronym> guint8]</span></td>
-</tr>
-<tr>
-<td class="parameter_name"><p>length</p></td>
-<td class="parameter_description"><p>the amount of samples to unpack.</p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-</tbody>
-</table></div>
-</div>
 </div>
 <hr>
 <div class="refsect2">
 <a name="gst-audio-info-init"></a><h3>gst_audio_info_init ()</h3>
 <pre class="programlisting"><span class="returnvalue">void</span>
 gst_audio_info_init (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstaudio.html#GstAudioInfo" title="struct GstAudioInfo"><span class="type">GstAudioInfo</span></a> *info</code></em>);</pre>
-<p>Initialize <em class="parameter"><code>info</code></em>
- with default values.</p>
-<div class="refsect3">
-<a name="gst-audio-info-init.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>info</p></td>
-<td class="parameter_description"><p>a <a class="link" href="gst-plugins-base-libs-gstaudio.html#GstAudioInfo" title="struct GstAudioInfo"><span class="type">GstAudioInfo</span></a></p></td>
-<td class="parameter_annotations"> </td>
-</tr></tbody>
-</table></div>
-</div>
 </div>
 <hr>
 <div class="refsect2">
@@ -601,66 +502,12 @@
 <pre class="programlisting"><a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
 gst_audio_info_from_caps (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstaudio.html#GstAudioInfo" title="struct GstAudioInfo"><span class="type">GstAudioInfo</span></a> *info</code></em>,
                           <em class="parameter"><code>const <a href="/usr/share/gtk-doc/html/gstreamer-1.0GstCaps.html#GstCaps-struct"><span class="type">GstCaps</span></a> *caps</code></em>);</pre>
-<p>Parse <em class="parameter"><code>caps</code></em>
- and update <em class="parameter"><code>info</code></em>
-.</p>
-<div class="refsect3">
-<a name="gst-audio-info-from-caps.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>info</p></td>
-<td class="parameter_description"><p>a <a class="link" href="gst-plugins-base-libs-gstaudio.html#GstAudioInfo" title="struct GstAudioInfo"><span class="type">GstAudioInfo</span></a></p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-<tr>
-<td class="parameter_name"><p>caps</p></td>
-<td class="parameter_description"><p>a <a href="/usr/share/gtk-doc/html/gstreamer-1.0GstCaps.html#GstCaps-struct"><span class="type">GstCaps</span></a></p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-</tbody>
-</table></div>
-</div>
-<div class="refsect3">
-<a name="gst-audio-info-from-caps.returns"></a><h4>Returns</h4>
-<p> TRUE if <em class="parameter"><code>caps</code></em>
-could be parsed</p>
-</div>
 </div>
 <hr>
 <div class="refsect2">
 <a name="gst-audio-info-to-caps"></a><h3>gst_audio_info_to_caps ()</h3>
 <pre class="programlisting"><a href="/usr/share/gtk-doc/html/gstreamer-1.0GstCaps.html#GstCaps-struct"><span class="returnvalue">GstCaps</span></a> *
 gst_audio_info_to_caps (<em class="parameter"><code>const <a class="link" href="gst-plugins-base-libs-gstaudio.html#GstAudioInfo" title="struct GstAudioInfo"><span class="type">GstAudioInfo</span></a> *info</code></em>);</pre>
-<p>Convert the values of <em class="parameter"><code>info</code></em>
- into a <a href="/usr/share/gtk-doc/html/gstreamer-1.0GstCaps.html#GstCaps-struct"><span class="type">GstCaps</span></a>.</p>
-<div class="refsect3">
-<a name="gst-audio-info-to-caps.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>info</p></td>
-<td class="parameter_description"><p>a <a class="link" href="gst-plugins-base-libs-gstaudio.html#GstAudioInfo" title="struct GstAudioInfo"><span class="type">GstAudioInfo</span></a></p></td>
-<td class="parameter_annotations"> </td>
-</tr></tbody>
-</table></div>
-</div>
-<div class="refsect3">
-<a name="gst-audio-info-to-caps.returns"></a><h4>Returns</h4>
-<p> the new <a href="/usr/share/gtk-doc/html/gstreamer-1.0GstCaps.html#GstCaps-struct"><span class="type">GstCaps</span></a> containing the
-info of <em class="parameter"><code>info</code></em>
-. </p>
-<p><span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>]</span></p>
-</div>
 </div>
 <hr>
 <div class="refsect2">
@@ -671,142 +518,30 @@
                         <em class="parameter"><code><a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#gint64"><span class="type">gint64</span></a> src_val</code></em>,
                         <em class="parameter"><code><a href="/usr/share/gtk-doc/html/gstreamer-1.0gstreamer-GstFormat.html#GstFormat"><span class="type">GstFormat</span></a> dest_fmt</code></em>,
                         <em class="parameter"><code><a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#gint64"><span class="type">gint64</span></a> *dest_val</code></em>);</pre>
-<p>Converts among various <a href="/usr/share/gtk-doc/html/gstreamer-1.0gstreamer-GstFormat.html#GstFormat"><span class="type">GstFormat</span></a> types.  This function handles
-GST_FORMAT_BYTES, GST_FORMAT_TIME, and GST_FORMAT_DEFAULT.  For
-raw audio, GST_FORMAT_DEFAULT corresponds to audio frames.  This
-function can be used to handle pad queries of the type GST_QUERY_CONVERT.</p>
-<div class="refsect3">
-<a name="gst-audio-info-convert.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>info</p></td>
-<td class="parameter_description"><p>a <a class="link" href="gst-plugins-base-libs-gstaudio.html#GstAudioInfo" title="struct GstAudioInfo"><span class="type">GstAudioInfo</span></a></p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-<tr>
-<td class="parameter_name"><p>src_fmt</p></td>
-<td class="parameter_description"><p><a href="/usr/share/gtk-doc/html/gstreamer-1.0gstreamer-GstFormat.html#GstFormat"><span class="type">GstFormat</span></a> of the <em class="parameter"><code>src_val</code></em>
-</p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-<tr>
-<td class="parameter_name"><p>src_val</p></td>
-<td class="parameter_description"><p>value to convert</p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-<tr>
-<td class="parameter_name"><p>dest_fmt</p></td>
-<td class="parameter_description"><p><a href="/usr/share/gtk-doc/html/gstreamer-1.0gstreamer-GstFormat.html#GstFormat"><span class="type">GstFormat</span></a> of the <em class="parameter"><code>dest_val</code></em>
-</p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-<tr>
-<td class="parameter_name"><p>dest_val</p></td>
-<td class="parameter_description"><p>pointer to destination value</p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-</tbody>
-</table></div>
-</div>
-<div class="refsect3">
-<a name="gst-audio-info-convert.returns"></a><h4>Returns</h4>
-<p> TRUE if the conversion was successful.</p>
-</div>
 </div>
 <hr>
 <div class="refsect2">
 <a name="gst-audio-format-get-info"></a><h3>gst_audio_format_get_info ()</h3>
 <pre class="programlisting">const <a class="link" href="gst-plugins-base-libs-gstaudio.html#GstAudioFormatInfo" title="struct GstAudioFormatInfo"><span class="returnvalue">GstAudioFormatInfo</span></a> *
 gst_audio_format_get_info (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstaudio.html#GstAudioFormat" title="enum GstAudioFormat"><span class="type">GstAudioFormat</span></a> format</code></em>);</pre>
-<p>Get the <a class="link" href="gst-plugins-base-libs-gstaudio.html#GstAudioFormatInfo" title="struct GstAudioFormatInfo"><span class="type">GstAudioFormatInfo</span></a> for <em class="parameter"><code>format</code></em>
-</p>
-<div class="refsect3">
-<a name="gst-audio-format-get-info.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>format</p></td>
-<td class="parameter_description"><p>a <a class="link" href="gst-plugins-base-libs-gstaudio.html#GstAudioFormat" title="enum GstAudioFormat"><span class="type">GstAudioFormat</span></a></p></td>
-<td class="parameter_annotations"> </td>
-</tr></tbody>
-</table></div>
-</div>
-<div class="refsect3">
-<a name="gst-audio-format-get-info.returns"></a><h4>Returns</h4>
-<p> The <a class="link" href="gst-plugins-base-libs-gstaudio.html#GstAudioFormatInfo" title="struct GstAudioFormatInfo"><span class="type">GstAudioFormatInfo</span></a> for <em class="parameter"><code>format</code></em>
-.</p>
-</div>
 </div>
 <hr>
 <div class="refsect2">
 <a name="gst-audio-info-copy"></a><h3>gst_audio_info_copy ()</h3>
 <pre class="programlisting"><a class="link" href="gst-plugins-base-libs-gstaudio.html#GstAudioInfo" title="struct GstAudioInfo"><span class="returnvalue">GstAudioInfo</span></a> *
 gst_audio_info_copy (<em class="parameter"><code>const <a class="link" href="gst-plugins-base-libs-gstaudio.html#GstAudioInfo" title="struct GstAudioInfo"><span class="type">GstAudioInfo</span></a> *info</code></em>);</pre>
-<p>Copy a GstAudioInfo structure.</p>
-<div class="refsect3">
-<a name="gst-audio-info-copy.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>info</p></td>
-<td class="parameter_description"><p>a <a class="link" href="gst-plugins-base-libs-gstaudio.html#GstAudioInfo" title="struct GstAudioInfo"><span class="type">GstAudioInfo</span></a></p></td>
-<td class="parameter_annotations"> </td>
-</tr></tbody>
-</table></div>
-</div>
-<div class="refsect3">
-<a name="gst-audio-info-copy.returns"></a><h4>Returns</h4>
-<p> a new <a class="link" href="gst-plugins-base-libs-gstaudio.html#GstAudioInfo" title="struct GstAudioInfo"><span class="type">GstAudioInfo</span></a>. free with gst_audio_info_free.</p>
-</div>
 </div>
 <hr>
 <div class="refsect2">
 <a name="gst-audio-info-free"></a><h3>gst_audio_info_free ()</h3>
 <pre class="programlisting"><span class="returnvalue">void</span>
 gst_audio_info_free (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstaudio.html#GstAudioInfo" title="struct GstAudioInfo"><span class="type">GstAudioInfo</span></a> *info</code></em>);</pre>
-<p>Free a GstAudioInfo structure previously allocated with <a class="link" href="gst-plugins-base-libs-gstaudio.html#gst-audio-info-new" title="gst_audio_info_new ()"><code class="function">gst_audio_info_new()</code></a>
-or <a class="link" href="gst-plugins-base-libs-gstaudio.html#gst-audio-info-copy" title="gst_audio_info_copy ()"><code class="function">gst_audio_info_copy()</code></a>.</p>
-<div class="refsect3">
-<a name="gst-audio-info-free.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>info</p></td>
-<td class="parameter_description"><p>a <a class="link" href="gst-plugins-base-libs-gstaudio.html#GstAudioInfo" title="struct GstAudioInfo"><span class="type">GstAudioInfo</span></a></p></td>
-<td class="parameter_annotations"> </td>
-</tr></tbody>
-</table></div>
-</div>
 </div>
 <hr>
 <div class="refsect2">
 <a name="gst-audio-info-new"></a><h3>gst_audio_info_new ()</h3>
 <pre class="programlisting"><a class="link" href="gst-plugins-base-libs-gstaudio.html#GstAudioInfo" title="struct GstAudioInfo"><span class="returnvalue">GstAudioInfo</span></a> *
 gst_audio_info_new (<em class="parameter"><code><span class="type">void</span></code></em>);</pre>
-<p>Allocate a new <a class="link" href="gst-plugins-base-libs-gstaudio.html#GstAudioInfo" title="struct GstAudioInfo"><span class="type">GstAudioInfo</span></a> that is also initialized with
-<a class="link" href="gst-plugins-base-libs-gstaudio.html#gst-audio-info-init" title="gst_audio_info_init ()"><code class="function">gst_audio_info_init()</code></a>.</p>
-<div class="refsect3">
-<a name="gst-audio-info-new.returns"></a><h4>Returns</h4>
-<p> a new <a class="link" href="gst-plugins-base-libs-gstaudio.html#GstAudioInfo" title="struct GstAudioInfo"><span class="type">GstAudioInfo</span></a>. free with <a class="link" href="gst-plugins-base-libs-gstaudio.html#gst-audio-info-free" title="gst_audio_info_free ()"><code class="function">gst_audio_info_free()</code></a>.</p>
-</div>
 </div>
 <hr>
 <div class="refsect2">
@@ -817,49 +552,6 @@
                            <em class="parameter"><code><a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#gint"><span class="type">gint</span></a> rate</code></em>,
                            <em class="parameter"><code><a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#gint"><span class="type">gint</span></a> channels</code></em>,
                            <em class="parameter"><code>const <a class="link" href="gst-plugins-base-libs-gstaudiochannels.html#GstAudioChannelPosition" title="enum GstAudioChannelPosition"><span class="type">GstAudioChannelPosition</span></a> *position</code></em>);</pre>
-<p>Set the default info for the audio info of <em class="parameter"><code>format</code></em>
- and <em class="parameter"><code>rate</code></em>
- and <em class="parameter"><code>channels</code></em>
-.</p>
-<p>Note: This initializes <em class="parameter"><code>info</code></em>
- first, no values are preserved.</p>
-<div class="refsect3">
-<a name="gst-audio-info-set-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>info</p></td>
-<td class="parameter_description"><p>a <a class="link" href="gst-plugins-base-libs-gstaudio.html#GstAudioInfo" title="struct GstAudioInfo"><span class="type">GstAudioInfo</span></a></p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-<tr>
-<td class="parameter_name"><p>format</p></td>
-<td class="parameter_description"><p>the format</p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-<tr>
-<td class="parameter_name"><p>rate</p></td>
-<td class="parameter_description"><p>the samplerate</p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-<tr>
-<td class="parameter_name"><p>channels</p></td>
-<td class="parameter_description"><p>the number of channels</p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-<tr>
-<td class="parameter_name"><p>position</p></td>
-<td class="parameter_description"><p>the channel positions</p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-</tbody>
-</table></div>
-</div>
 </div>
 <hr>
 <div class="refsect2">
@@ -867,36 +559,6 @@
 <pre class="programlisting"><a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
 gst_audio_info_is_equal (<em class="parameter"><code>const <a class="link" href="gst-plugins-base-libs-gstaudio.html#GstAudioInfo" title="struct GstAudioInfo"><span class="type">GstAudioInfo</span></a> *info</code></em>,
                          <em class="parameter"><code>const <a class="link" href="gst-plugins-base-libs-gstaudio.html#GstAudioInfo" title="struct GstAudioInfo"><span class="type">GstAudioInfo</span></a> *other</code></em>);</pre>
-<p>Compares two <a class="link" href="gst-plugins-base-libs-gstaudio.html#GstAudioInfo" title="struct GstAudioInfo"><span class="type">GstAudioInfo</span></a> and returns whether they are equal or not</p>
-<div class="refsect3">
-<a name="gst-audio-info-is-equal.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>info</p></td>
-<td class="parameter_description"><p>a <a class="link" href="gst-plugins-base-libs-gstaudio.html#GstAudioInfo" title="struct GstAudioInfo"><span class="type">GstAudioInfo</span></a></p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-<tr>
-<td class="parameter_name"><p>other</p></td>
-<td class="parameter_description"><p>a <a class="link" href="gst-plugins-base-libs-gstaudio.html#GstAudioInfo" title="struct GstAudioInfo"><span class="type">GstAudioInfo</span></a></p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-</tbody>
-</table></div>
-</div>
-<div class="refsect3">
-<a name="gst-audio-info-is-equal.returns"></a><h4>Returns</h4>
-<p> <a href="/usr/share/gtk-doc/html/glibglib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a> if <em class="parameter"><code>info</code></em>
-and <em class="parameter"><code>other</code></em>
-are equal, else <a href="/usr/share/gtk-doc/html/glibglib-Standard-Macros.html#FALSE:CAPS"><code class="literal">FALSE</code></a>.</p>
-</div>
-<p class="since">Since: 1.2</p>
 </div>
 <hr>
 <div class="refsect2">
@@ -906,45 +568,6 @@
                                 <em class="parameter"><code><a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#gint"><span class="type">gint</span></a> endianness</code></em>,
                                 <em class="parameter"><code><a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#gint"><span class="type">gint</span></a> width</code></em>,
                                 <em class="parameter"><code><a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#gint"><span class="type">gint</span></a> depth</code></em>);</pre>
-<p>Construct a <a class="link" href="gst-plugins-base-libs-gstaudio.html#GstAudioFormat" title="enum GstAudioFormat"><span class="type">GstAudioFormat</span></a> with given parameters.</p>
-<div class="refsect3">
-<a name="gst-audio-format-build-integer.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>sign</p></td>
-<td class="parameter_description"><p>signed or unsigned format</p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-<tr>
-<td class="parameter_name"><p>endianness</p></td>
-<td class="parameter_description"><p>G_LITTLE_ENDIAN or G_BIG_ENDIAN</p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-<tr>
-<td class="parameter_name"><p>width</p></td>
-<td class="parameter_description"><p>amount of bits used per sample</p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-<tr>
-<td class="parameter_name"><p>depth</p></td>
-<td class="parameter_description"><p>amount of used bits in <em class="parameter"><code>width</code></em>
-</p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-</tbody>
-</table></div>
-</div>
-<div class="refsect3">
-<a name="gst-audio-format-build-integer.returns"></a><h4>Returns</h4>
-<p> a <a class="link" href="gst-plugins-base-libs-gstaudio.html#GstAudioFormat" title="enum GstAudioFormat"><span class="type">GstAudioFormat</span></a> or GST_AUDIO_FORMAT_UNKNOWN when no audio format
-exists with the given parameters.</p>
-</div>
 </div>
 <hr>
 <div class="refsect2">
@@ -953,67 +576,12 @@
 gst_audio_format_fill_silence (<em class="parameter"><code>const <a class="link" href="gst-plugins-base-libs-gstaudio.html#GstAudioFormatInfo" title="struct GstAudioFormatInfo"><span class="type">GstAudioFormatInfo</span></a> *info</code></em>,
                                <em class="parameter"><code><a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> dest</code></em>,
                                <em class="parameter"><code><a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#gsize"><span class="type">gsize</span></a> length</code></em>);</pre>
-<p>Fill <em class="parameter"><code>length</code></em>
- bytes in <em class="parameter"><code>dest</code></em>
- with silence samples for <em class="parameter"><code>info</code></em>
-.</p>
-<div class="refsect3">
-<a name="gst-audio-format-fill-silence.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>info</p></td>
-<td class="parameter_description"><p>a <a class="link" href="gst-plugins-base-libs-gstaudio.html#GstAudioFormatInfo" title="struct GstAudioFormatInfo"><span class="type">GstAudioFormatInfo</span></a></p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-<tr>
-<td class="parameter_name"><p>dest</p></td>
-<td class="parameter_description"><p> a destination
-to fill. </p></td>
-<td class="parameter_annotations"><span class="annotation">[<acronym title="Parameter points to an array of items."><span class="acronym">array</span></acronym> length=length][<acronym title="Generics and defining elements of containers and arrays."><span class="acronym">element-type</span></acronym> guint8]</span></td>
-</tr>
-<tr>
-<td class="parameter_name"><p>length</p></td>
-<td class="parameter_description"><p>the length to fill</p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-</tbody>
-</table></div>
-</div>
 </div>
 <hr>
 <div class="refsect2">
 <a name="gst-audio-format-from-string"></a><h3>gst_audio_format_from_string ()</h3>
 <pre class="programlisting"><a class="link" href="gst-plugins-base-libs-gstaudio.html#GstAudioFormat" title="enum GstAudioFormat"><span class="returnvalue">GstAudioFormat</span></a>
 gst_audio_format_from_string (<em class="parameter"><code>const <a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *format</code></em>);</pre>
-<p>Convert the <em class="parameter"><code>format</code></em>
- string to its <a class="link" href="gst-plugins-base-libs-gstaudio.html#GstAudioFormat" title="enum GstAudioFormat"><span class="type">GstAudioFormat</span></a>.</p>
-<div class="refsect3">
-<a name="gst-audio-format-from-string.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>format</p></td>
-<td class="parameter_description"><p>a format string</p></td>
-<td class="parameter_annotations"> </td>
-</tr></tbody>
-</table></div>
-</div>
-<div class="refsect3">
-<a name="gst-audio-format-from-string.returns"></a><h4>Returns</h4>
-<p> the <a class="link" href="gst-plugins-base-libs-gstaudio.html#GstAudioFormat" title="enum GstAudioFormat"><span class="type">GstAudioFormat</span></a> for <em class="parameter"><code>format</code></em>
-or GST_AUDIO_FORMAT_UNKNOWN when the
-string is not a known format.</p>
-</div>
 </div>
 <hr>
 <div class="refsect2">
@@ -1205,193 +773,43 @@
 <div class="refsect2">
 <a name="GST-FRAMES-TO-CLOCK-TIME:CAPS"></a><h3>GST_FRAMES_TO_CLOCK_TIME()</h3>
 <pre class="programlisting">#define             GST_FRAMES_TO_CLOCK_TIME(frames, rate)</pre>
-<p>Calculate clocktime from sample <em class="parameter"><code>frames</code></em>
- and <em class="parameter"><code>rate</code></em>
-.</p>
-<div class="refsect3">
-<a name="GST-FRAMES-TO-CLOCK-TIME.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>frames</p></td>
-<td class="parameter_description"><p>sample frames</p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-<tr>
-<td class="parameter_name"><p>rate</p></td>
-<td class="parameter_description"><p>sampling rate</p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-</tbody>
-</table></div>
-</div>
 </div>
 <hr>
 <div class="refsect2">
 <a name="GST-CLOCK-TIME-TO-FRAMES:CAPS"></a><h3>GST_CLOCK_TIME_TO_FRAMES()</h3>
 <pre class="programlisting">#define             GST_CLOCK_TIME_TO_FRAMES(clocktime, rate)</pre>
-<p>Calculate frames from <em class="parameter"><code>clocktime</code></em>
- and sample <em class="parameter"><code>rate</code></em>
-.</p>
-<div class="refsect3">
-<a name="GST-CLOCK-TIME-TO-FRAMES.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>clocktime</p></td>
-<td class="parameter_description"><p>clock time</p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-<tr>
-<td class="parameter_name"><p>rate</p></td>
-<td class="parameter_description"><p>sampling rate</p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-</tbody>
-</table></div>
-</div>
 </div>
 <hr>
 <div class="refsect2">
 <a name="GST-AUDIO-NE:CAPS"></a><h3>GST_AUDIO_NE()</h3>
 <pre class="programlisting"># define GST_AUDIO_NE(s) G_STRINGIFY(s)"LE"
 </pre>
-<p>Turns audio format string <em class="parameter"><code>s</code></em>
- into the format string for native endianness.</p>
-<div class="refsect3">
-<a name="GST-AUDIO-NE.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>s</p></td>
-<td class="parameter_description"><p>format string without endianness marker</p></td>
-<td class="parameter_annotations"> </td>
-</tr></tbody>
-</table></div>
-</div>
 </div>
 <hr>
 <div class="refsect2">
 <a name="GST-AUDIO-OE:CAPS"></a><h3>GST_AUDIO_OE()</h3>
 <pre class="programlisting"># define GST_AUDIO_OE(s) G_STRINGIFY(s)"BE"
 </pre>
-<p>Turns audio format string <em class="parameter"><code>s</code></em>
- into the format string for other endianness.</p>
-<div class="refsect3">
-<a name="GST-AUDIO-OE.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>s</p></td>
-<td class="parameter_description"><p>format string without endianness marker</p></td>
-<td class="parameter_annotations"> </td>
-</tr></tbody>
-</table></div>
-</div>
 </div>
 <hr>
 <div class="refsect2">
 <a name="GST-AUDIO-CAPS-MAKE:CAPS"></a><h3>GST_AUDIO_CAPS_MAKE()</h3>
 <pre class="programlisting">#define             GST_AUDIO_CAPS_MAKE(format)</pre>
-<p>Generic caps string for audio, for use in pad templates.</p>
-<div class="refsect3">
-<a name="GST-AUDIO-CAPS-MAKE.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>format</p></td>
-<td class="parameter_description"><p>string format that describes the sample layout, as string
-(e.g. "S16LE", "S8", etc.)</p></td>
-<td class="parameter_annotations"> </td>
-</tr></tbody>
-</table></div>
-</div>
 </div>
 <hr>
 <div class="refsect2">
 <a name="gst-audio-buffer-clip"></a><h3>gst_audio_buffer_clip ()</h3>
 <pre class="programlisting"><a href="/usr/share/gtk-doc/html/gstreamer-1.0GstBuffer.html#GstBuffer-struct"><span class="returnvalue">GstBuffer</span></a> *
 gst_audio_buffer_clip (<em class="parameter"><code><a href="/usr/share/gtk-doc/html/gstreamer-1.0GstBuffer.html#GstBuffer-struct"><span class="type">GstBuffer</span></a> *buffer</code></em>,
-                       <em class="parameter"><code><a href="/usr/share/gtk-doc/html/gstreamer-1.0GstSegment.html#GstSegment-struct"><span class="type">GstSegment</span></a> *segment</code></em>,
+                       <em class="parameter"><code>const <a href="/usr/share/gtk-doc/html/gstreamer-1.0GstSegment.html#GstSegment-struct"><span class="type">GstSegment</span></a> *segment</code></em>,
                        <em class="parameter"><code><a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#gint"><span class="type">gint</span></a> rate</code></em>,
                        <em class="parameter"><code><a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#gint"><span class="type">gint</span></a> bpf</code></em>);</pre>
-<p>Clip the buffer to the given <a href="/usr/share/gtk-doc/html/gstreamer-1.0GstSegment.html#GstSegment-struct"><code class="literal">GstSegment</code></a>.</p>
-<p>After calling this function the caller does not own a reference to
-<em class="parameter"><code>buffer</code></em>
- anymore.</p>
-<div class="refsect3">
-<a name="gst-audio-buffer-clip.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>buffer</p></td>
-<td class="parameter_description"><p> The buffer to clip. </p></td>
-<td class="parameter_annotations"><span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>]</span></td>
-</tr>
-<tr>
-<td class="parameter_name"><p>segment</p></td>
-<td class="parameter_description"><p>Segment in <a href="/usr/share/gtk-doc/html/gstreamer-1.0gstreamer-GstFormat.html#GST-FORMAT-TIME:CAPS"><code class="literal">GST_FORMAT_TIME</code></a> or <a href="/usr/share/gtk-doc/html/gstreamer-1.0gstreamer-GstFormat.html#GST-FORMAT-DEFAULT:CAPS"><code class="literal">GST_FORMAT_DEFAULT</code></a> to which
-the buffer should be clipped.</p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-<tr>
-<td class="parameter_name"><p>rate</p></td>
-<td class="parameter_description"><p>sample rate.</p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-<tr>
-<td class="parameter_name"><p>bpf</p></td>
-<td class="parameter_description">
-<p>size of one audio frame in bytes. This is the size of one sample</p>
-<div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; "><li class="listitem"><p>channels.</p></li></ul></div>
-</td>
-<td class="parameter_annotations"> </td>
-</tr>
-</tbody>
-</table></div>
-</div>
-<div class="refsect3">
-<a name="gst-audio-buffer-clip.returns"></a><h4>Returns</h4>
-<p> <a href="/usr/share/gtk-doc/html/glibglib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a> if the buffer is completely outside the configured segment,
-otherwise the clipped buffer is returned.</p>
-<p>If the buffer has no timestamp, it is assumed to be inside the segment and
-is not clipped. </p>
-<p><span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>]</span></p>
-</div>
 </div>
 </div>
 <div class="refsect1">
 <a name="gst-plugins-base-libs-gstaudio.other_details"></a><h2>Types and Values</h2>
 <div class="refsect2">
 <a name="GstAudioFlags"></a><h3>enum GstAudioFlags</h3>
-<p>Extra audio flags</p>
 <div class="refsect3">
 <a name="GstAudioFlags.members"></a><h4>Members</h4>
 <div class="informaltable"><table class="informaltable" width="100%" border="0">
@@ -1403,18 +821,13 @@
 <tbody>
 <tr>
 <td class="enum_member_name"><p><a name="GST-AUDIO-FLAG-NONE:CAPS"></a>GST_AUDIO_FLAG_NONE</p></td>
-<td class="enum_member_description">
-<p>no valid flag</p>
-</td>
-<td class="enum_member_annotations"> </td>
+<td> </td>
+<td> </td>
 </tr>
 <tr>
 <td class="enum_member_name"><p><a name="GST-AUDIO-FLAG-UNPOSITIONED:CAPS"></a>GST_AUDIO_FLAG_UNPOSITIONED</p></td>
-<td class="enum_member_description">
-<p>the position array explicitly
-    contains unpositioned channels.</p>
-</td>
-<td class="enum_member_annotations"> </td>
+<td> </td>
+<td> </td>
 </tr>
 </tbody>
 </table></div>
@@ -1423,7 +836,6 @@
 <hr>
 <div class="refsect2">
 <a name="GstAudioFormat"></a><h3>enum GstAudioFormat</h3>
-<p>Enum value describing the most common audio formats.</p>
 <div class="refsect3">
 <a name="GstAudioFormat.members"></a><h4>Members</h4>
 <div class="informaltable"><table class="informaltable" width="100%" border="0">
@@ -1435,325 +847,233 @@
 <tbody>
 <tr>
 <td class="enum_member_name"><p><a name="GST-AUDIO-FORMAT-UNKNOWN:CAPS"></a>GST_AUDIO_FORMAT_UNKNOWN</p></td>
-<td class="enum_member_description">
-<p>unknown or unset audio format</p>
-</td>
-<td class="enum_member_annotations"> </td>
+<td> </td>
+<td> </td>
 </tr>
 <tr>
 <td class="enum_member_name"><p><a name="GST-AUDIO-FORMAT-ENCODED:CAPS"></a>GST_AUDIO_FORMAT_ENCODED</p></td>
-<td class="enum_member_description">
-<p>encoded audio format</p>
-</td>
-<td class="enum_member_annotations"> </td>
+<td> </td>
+<td> </td>
 </tr>
 <tr>
 <td class="enum_member_name"><p><a name="GST-AUDIO-FORMAT-S8:CAPS"></a>GST_AUDIO_FORMAT_S8</p></td>
-<td class="enum_member_description">
-<p>8 bits in 8 bits, signed</p>
-</td>
-<td class="enum_member_annotations"> </td>
+<td> </td>
+<td> </td>
 </tr>
 <tr>
 <td class="enum_member_name"><p><a name="GST-AUDIO-FORMAT-U8:CAPS"></a>GST_AUDIO_FORMAT_U8</p></td>
-<td class="enum_member_description">
-<p>8 bits in 8 bits, unsigned</p>
-</td>
-<td class="enum_member_annotations"> </td>
+<td> </td>
+<td> </td>
 </tr>
 <tr>
 <td class="enum_member_name"><p><a name="GST-AUDIO-FORMAT-S16LE:CAPS"></a>GST_AUDIO_FORMAT_S16LE</p></td>
-<td class="enum_member_description">
-<p>16 bits in 16 bits, signed, little endian</p>
-</td>
-<td class="enum_member_annotations"> </td>
+<td> </td>
+<td> </td>
 </tr>
 <tr>
 <td class="enum_member_name"><p><a name="GST-AUDIO-FORMAT-S16BE:CAPS"></a>GST_AUDIO_FORMAT_S16BE</p></td>
-<td class="enum_member_description">
-<p>16 bits in 16 bits, signed, big endian</p>
-</td>
-<td class="enum_member_annotations"> </td>
+<td> </td>
+<td> </td>
 </tr>
 <tr>
 <td class="enum_member_name"><p><a name="GST-AUDIO-FORMAT-U16LE:CAPS"></a>GST_AUDIO_FORMAT_U16LE</p></td>
-<td class="enum_member_description">
-<p>16 bits in 16 bits, unsigned, little endian</p>
-</td>
-<td class="enum_member_annotations"> </td>
+<td> </td>
+<td> </td>
 </tr>
 <tr>
 <td class="enum_member_name"><p><a name="GST-AUDIO-FORMAT-U16BE:CAPS"></a>GST_AUDIO_FORMAT_U16BE</p></td>
-<td class="enum_member_description">
-<p>16 bits in 16 bits, unsigned, big endian</p>
-</td>
-<td class="enum_member_annotations"> </td>
+<td> </td>
+<td> </td>
 </tr>
 <tr>
 <td class="enum_member_name"><p><a name="GST-AUDIO-FORMAT-S24-32LE:CAPS"></a>GST_AUDIO_FORMAT_S24_32LE</p></td>
-<td class="enum_member_description">
-<p>24 bits in 32 bits, signed, little endian</p>
-</td>
-<td class="enum_member_annotations"> </td>
+<td> </td>
+<td> </td>
 </tr>
 <tr>
 <td class="enum_member_name"><p><a name="GST-AUDIO-FORMAT-S24-32BE:CAPS"></a>GST_AUDIO_FORMAT_S24_32BE</p></td>
-<td class="enum_member_description">
-<p>24 bits in 32 bits, signed, big endian</p>
-</td>
-<td class="enum_member_annotations"> </td>
+<td> </td>
+<td> </td>
 </tr>
 <tr>
 <td class="enum_member_name"><p><a name="GST-AUDIO-FORMAT-U24-32LE:CAPS"></a>GST_AUDIO_FORMAT_U24_32LE</p></td>
-<td class="enum_member_description">
-<p>24 bits in 32 bits, unsigned, little endian</p>
-</td>
-<td class="enum_member_annotations"> </td>
+<td> </td>
+<td> </td>
 </tr>
 <tr>
 <td class="enum_member_name"><p><a name="GST-AUDIO-FORMAT-U24-32BE:CAPS"></a>GST_AUDIO_FORMAT_U24_32BE</p></td>
-<td class="enum_member_description">
-<p>24 bits in 32 bits, unsigned, big endian</p>
-</td>
-<td class="enum_member_annotations"> </td>
+<td> </td>
+<td> </td>
 </tr>
 <tr>
 <td class="enum_member_name"><p><a name="GST-AUDIO-FORMAT-S32LE:CAPS"></a>GST_AUDIO_FORMAT_S32LE</p></td>
-<td class="enum_member_description">
-<p>32 bits in 32 bits, signed, little endian</p>
-</td>
-<td class="enum_member_annotations"> </td>
+<td> </td>
+<td> </td>
 </tr>
 <tr>
 <td class="enum_member_name"><p><a name="GST-AUDIO-FORMAT-S32BE:CAPS"></a>GST_AUDIO_FORMAT_S32BE</p></td>
-<td class="enum_member_description">
-<p>32 bits in 32 bits, signed, big endian</p>
-</td>
-<td class="enum_member_annotations"> </td>
+<td> </td>
+<td> </td>
 </tr>
 <tr>
 <td class="enum_member_name"><p><a name="GST-AUDIO-FORMAT-U32LE:CAPS"></a>GST_AUDIO_FORMAT_U32LE</p></td>
-<td class="enum_member_description">
-<p>32 bits in 32 bits, unsigned, little endian</p>
-</td>
-<td class="enum_member_annotations"> </td>
+<td> </td>
+<td> </td>
 </tr>
 <tr>
 <td class="enum_member_name"><p><a name="GST-AUDIO-FORMAT-U32BE:CAPS"></a>GST_AUDIO_FORMAT_U32BE</p></td>
-<td class="enum_member_description">
-<p>32 bits in 32 bits, unsigned, big endian</p>
-</td>
-<td class="enum_member_annotations"> </td>
+<td> </td>
+<td> </td>
 </tr>
 <tr>
 <td class="enum_member_name"><p><a name="GST-AUDIO-FORMAT-S24LE:CAPS"></a>GST_AUDIO_FORMAT_S24LE</p></td>
-<td class="enum_member_description">
-<p>24 bits in 24 bits, signed, little endian</p>
-</td>
-<td class="enum_member_annotations"> </td>
+<td> </td>
+<td> </td>
 </tr>
 <tr>
 <td class="enum_member_name"><p><a name="GST-AUDIO-FORMAT-S24BE:CAPS"></a>GST_AUDIO_FORMAT_S24BE</p></td>
-<td class="enum_member_description">
-<p>24 bits in 24 bits, signed, big endian</p>
-</td>
-<td class="enum_member_annotations"> </td>
+<td> </td>
+<td> </td>
 </tr>
 <tr>
 <td class="enum_member_name"><p><a name="GST-AUDIO-FORMAT-U24LE:CAPS"></a>GST_AUDIO_FORMAT_U24LE</p></td>
-<td class="enum_member_description">
-<p>24 bits in 24 bits, unsigned, little endian</p>
-</td>
-<td class="enum_member_annotations"> </td>
+<td> </td>
+<td> </td>
 </tr>
 <tr>
 <td class="enum_member_name"><p><a name="GST-AUDIO-FORMAT-U24BE:CAPS"></a>GST_AUDIO_FORMAT_U24BE</p></td>
-<td class="enum_member_description">
-<p>24 bits in 24 bits, unsigned, big endian</p>
-</td>
-<td class="enum_member_annotations"> </td>
+<td> </td>
+<td> </td>
 </tr>
 <tr>
 <td class="enum_member_name"><p><a name="GST-AUDIO-FORMAT-S20LE:CAPS"></a>GST_AUDIO_FORMAT_S20LE</p></td>
-<td class="enum_member_description">
-<p>20 bits in 24 bits, signed, little endian</p>
-</td>
-<td class="enum_member_annotations"> </td>
+<td> </td>
+<td> </td>
 </tr>
 <tr>
 <td class="enum_member_name"><p><a name="GST-AUDIO-FORMAT-S20BE:CAPS"></a>GST_AUDIO_FORMAT_S20BE</p></td>
-<td class="enum_member_description">
-<p>20 bits in 24 bits, signed, big endian</p>
-</td>
-<td class="enum_member_annotations"> </td>
+<td> </td>
+<td> </td>
 </tr>
 <tr>
 <td class="enum_member_name"><p><a name="GST-AUDIO-FORMAT-U20LE:CAPS"></a>GST_AUDIO_FORMAT_U20LE</p></td>
-<td class="enum_member_description">
-<p>20 bits in 24 bits, unsigned, little endian</p>
-</td>
-<td class="enum_member_annotations"> </td>
+<td> </td>
+<td> </td>
 </tr>
 <tr>
 <td class="enum_member_name"><p><a name="GST-AUDIO-FORMAT-U20BE:CAPS"></a>GST_AUDIO_FORMAT_U20BE</p></td>
-<td class="enum_member_description">
-<p>20 bits in 24 bits, unsigned, big endian</p>
-</td>
-<td class="enum_member_annotations"> </td>
+<td> </td>
+<td> </td>
 </tr>
 <tr>
 <td class="enum_member_name"><p><a name="GST-AUDIO-FORMAT-S18LE:CAPS"></a>GST_AUDIO_FORMAT_S18LE</p></td>
-<td class="enum_member_description">
-<p>18 bits in 24 bits, signed, little endian</p>
-</td>
-<td class="enum_member_annotations"> </td>
+<td> </td>
+<td> </td>
 </tr>
 <tr>
 <td class="enum_member_name"><p><a name="GST-AUDIO-FORMAT-S18BE:CAPS"></a>GST_AUDIO_FORMAT_S18BE</p></td>
-<td class="enum_member_description">
-<p>18 bits in 24 bits, signed, big endian</p>
-</td>
-<td class="enum_member_annotations"> </td>
+<td> </td>
+<td> </td>
 </tr>
 <tr>
 <td class="enum_member_name"><p><a name="GST-AUDIO-FORMAT-U18LE:CAPS"></a>GST_AUDIO_FORMAT_U18LE</p></td>
-<td class="enum_member_description">
-<p>18 bits in 24 bits, unsigned, little endian</p>
-</td>
-<td class="enum_member_annotations"> </td>
+<td> </td>
+<td> </td>
 </tr>
 <tr>
 <td class="enum_member_name"><p><a name="GST-AUDIO-FORMAT-U18BE:CAPS"></a>GST_AUDIO_FORMAT_U18BE</p></td>
-<td class="enum_member_description">
-<p>18 bits in 24 bits, unsigned, big endian</p>
-</td>
-<td class="enum_member_annotations"> </td>
+<td> </td>
+<td> </td>
 </tr>
 <tr>
 <td class="enum_member_name"><p><a name="GST-AUDIO-FORMAT-F32LE:CAPS"></a>GST_AUDIO_FORMAT_F32LE</p></td>
-<td class="enum_member_description">
-<p>32-bit floating point samples, little endian</p>
-</td>
-<td class="enum_member_annotations"> </td>
+<td> </td>
+<td> </td>
 </tr>
 <tr>
 <td class="enum_member_name"><p><a name="GST-AUDIO-FORMAT-F32BE:CAPS"></a>GST_AUDIO_FORMAT_F32BE</p></td>
-<td class="enum_member_description">
-<p>32-bit floating point samples, big endian</p>
-</td>
-<td class="enum_member_annotations"> </td>
+<td> </td>
+<td> </td>
 </tr>
 <tr>
 <td class="enum_member_name"><p><a name="GST-AUDIO-FORMAT-F64LE:CAPS"></a>GST_AUDIO_FORMAT_F64LE</p></td>
-<td class="enum_member_description">
-<p>64-bit floating point samples, little endian</p>
-</td>
-<td class="enum_member_annotations"> </td>
+<td> </td>
+<td> </td>
 </tr>
 <tr>
 <td class="enum_member_name"><p><a name="GST-AUDIO-FORMAT-F64BE:CAPS"></a>GST_AUDIO_FORMAT_F64BE</p></td>
-<td class="enum_member_description">
-<p>64-bit floating point samples, big endian</p>
-</td>
-<td class="enum_member_annotations"> </td>
+<td> </td>
+<td> </td>
 </tr>
 <tr>
 <td class="enum_member_name"><p><a name="GST-AUDIO-FORMAT-S16:CAPS"></a>GST_AUDIO_FORMAT_S16</p></td>
-<td class="enum_member_description">
-<p>16 bits in 16 bits, signed, native endianness</p>
-</td>
-<td class="enum_member_annotations"> </td>
+<td> </td>
+<td> </td>
 </tr>
 <tr>
 <td class="enum_member_name"><p><a name="GST-AUDIO-FORMAT-U16:CAPS"></a>GST_AUDIO_FORMAT_U16</p></td>
-<td class="enum_member_description">
-<p>16 bits in 16 bits, unsigned, native endianness</p>
-</td>
-<td class="enum_member_annotations"> </td>
+<td> </td>
+<td> </td>
 </tr>
 <tr>
 <td class="enum_member_name"><p><a name="GST-AUDIO-FORMAT-S24-32:CAPS"></a>GST_AUDIO_FORMAT_S24_32</p></td>
-<td class="enum_member_description">
-<p>24 bits in 32 bits, signed, native endianness</p>
-</td>
-<td class="enum_member_annotations"> </td>
+<td> </td>
+<td> </td>
 </tr>
 <tr>
 <td class="enum_member_name"><p><a name="GST-AUDIO-FORMAT-U24-32:CAPS"></a>GST_AUDIO_FORMAT_U24_32</p></td>
-<td class="enum_member_description">
-<p>24 bits in 32 bits, unsigned, native endianness</p>
-</td>
-<td class="enum_member_annotations"> </td>
+<td> </td>
+<td> </td>
 </tr>
 <tr>
 <td class="enum_member_name"><p><a name="GST-AUDIO-FORMAT-S32:CAPS"></a>GST_AUDIO_FORMAT_S32</p></td>
-<td class="enum_member_description">
-<p>32 bits in 32 bits, signed, native endianness</p>
-</td>
-<td class="enum_member_annotations"> </td>
+<td> </td>
+<td> </td>
 </tr>
 <tr>
 <td class="enum_member_name"><p><a name="GST-AUDIO-FORMAT-U32:CAPS"></a>GST_AUDIO_FORMAT_U32</p></td>
-<td class="enum_member_description">
-<p>32 bits in 32 bits, unsigned, native endianness</p>
-</td>
-<td class="enum_member_annotations"> </td>
+<td> </td>
+<td> </td>
 </tr>
 <tr>
 <td class="enum_member_name"><p><a name="GST-AUDIO-FORMAT-S24:CAPS"></a>GST_AUDIO_FORMAT_S24</p></td>
-<td class="enum_member_description">
-<p>24 bits in 24 bits, signed, native endianness</p>
-</td>
-<td class="enum_member_annotations"> </td>
+<td> </td>
+<td> </td>
 </tr>
 <tr>
 <td class="enum_member_name"><p><a name="GST-AUDIO-FORMAT-U24:CAPS"></a>GST_AUDIO_FORMAT_U24</p></td>
-<td class="enum_member_description">
-<p>24 bits in 24 bits, unsigned, native endianness</p>
-</td>
-<td class="enum_member_annotations"> </td>
+<td> </td>
+<td> </td>
 </tr>
 <tr>
 <td class="enum_member_name"><p><a name="GST-AUDIO-FORMAT-S20:CAPS"></a>GST_AUDIO_FORMAT_S20</p></td>
-<td class="enum_member_description">
-<p>20 bits in 24 bits, signed, native endianness</p>
-</td>
-<td class="enum_member_annotations"> </td>
+<td> </td>
+<td> </td>
 </tr>
 <tr>
 <td class="enum_member_name"><p><a name="GST-AUDIO-FORMAT-U20:CAPS"></a>GST_AUDIO_FORMAT_U20</p></td>
-<td class="enum_member_description">
-<p>20 bits in 24 bits, unsigned, native endianness</p>
-</td>
-<td class="enum_member_annotations"> </td>
+<td> </td>
+<td> </td>
 </tr>
 <tr>
 <td class="enum_member_name"><p><a name="GST-AUDIO-FORMAT-S18:CAPS"></a>GST_AUDIO_FORMAT_S18</p></td>
-<td class="enum_member_description">
-<p>18 bits in 24 bits, signed, native endianness</p>
-</td>
-<td class="enum_member_annotations"> </td>
+<td> </td>
+<td> </td>
 </tr>
 <tr>
 <td class="enum_member_name"><p><a name="GST-AUDIO-FORMAT-U18:CAPS"></a>GST_AUDIO_FORMAT_U18</p></td>
-<td class="enum_member_description">
-<p>18 bits in 24 bits, unsigned, native endianness</p>
-</td>
-<td class="enum_member_annotations"> </td>
+<td> </td>
+<td> </td>
 </tr>
 <tr>
 <td class="enum_member_name"><p><a name="GST-AUDIO-FORMAT-F32:CAPS"></a>GST_AUDIO_FORMAT_F32</p></td>
-<td class="enum_member_description">
-<p>32-bit floating point samples, native endianness</p>
-</td>
-<td class="enum_member_annotations"> </td>
+<td> </td>
+<td> </td>
 </tr>
 <tr>
 <td class="enum_member_name"><p><a name="GST-AUDIO-FORMAT-F64:CAPS"></a>GST_AUDIO_FORMAT_F64</p></td>
-<td class="enum_member_description">
-<p>64-bit floating point samples, native endianness</p>
-</td>
-<td class="enum_member_annotations"> </td>
+<td> </td>
+<td> </td>
 </tr>
 </tbody>
 </table></div>
@@ -1762,7 +1082,6 @@
 <hr>
 <div class="refsect2">
 <a name="GstAudioFormatFlags"></a><h3>enum GstAudioFormatFlags</h3>
-<p>The different audio flags that a format info can have.</p>
 <div class="refsect3">
 <a name="GstAudioFormatFlags.members"></a><h4>Members</h4>
 <div class="informaltable"><table class="informaltable" width="100%" border="0">
@@ -1774,39 +1093,28 @@
 <tbody>
 <tr>
 <td class="enum_member_name"><p><a name="GST-AUDIO-FORMAT-FLAG-INTEGER:CAPS"></a>GST_AUDIO_FORMAT_FLAG_INTEGER</p></td>
-<td class="enum_member_description">
-<p>integer samples</p>
-</td>
-<td class="enum_member_annotations"> </td>
+<td> </td>
+<td> </td>
 </tr>
 <tr>
 <td class="enum_member_name"><p><a name="GST-AUDIO-FORMAT-FLAG-FLOAT:CAPS"></a>GST_AUDIO_FORMAT_FLAG_FLOAT</p></td>
-<td class="enum_member_description">
-<p>float samples</p>
-</td>
-<td class="enum_member_annotations"> </td>
+<td> </td>
+<td> </td>
 </tr>
 <tr>
 <td class="enum_member_name"><p><a name="GST-AUDIO-FORMAT-FLAG-SIGNED:CAPS"></a>GST_AUDIO_FORMAT_FLAG_SIGNED</p></td>
-<td class="enum_member_description">
-<p>signed samples</p>
-</td>
-<td class="enum_member_annotations"> </td>
+<td> </td>
+<td> </td>
 </tr>
 <tr>
 <td class="enum_member_name"><p><a name="GST-AUDIO-FORMAT-FLAG-COMPLEX:CAPS"></a>GST_AUDIO_FORMAT_FLAG_COMPLEX</p></td>
-<td class="enum_member_description">
-<p>complex layout</p>
-</td>
-<td class="enum_member_annotations"> </td>
+<td> </td>
+<td> </td>
 </tr>
 <tr>
 <td class="enum_member_name"><p><a name="GST-AUDIO-FORMAT-FLAG-UNPACK:CAPS"></a>GST_AUDIO_FORMAT_FLAG_UNPACK</p></td>
-<td class="enum_member_description">
-<p>the format can be used in
-<a class="link" href="gst-plugins-base-libs-gstaudio.html#GstAudioFormatUnpack" title="GstAudioFormatUnpack ()"><span class="type">GstAudioFormatUnpack</span></a> and <a class="link" href="gst-plugins-base-libs-gstaudio.html#GstAudioFormatPack" title="GstAudioFormatPack ()"><span class="type">GstAudioFormatPack</span></a> functions</p>
-</td>
-<td class="enum_member_annotations"> </td>
+<td> </td>
+<td> </td>
 </tr>
 </tbody>
 </table></div>
@@ -1830,76 +1138,6 @@
   GstAudioFormatPack pack_func;
 };
 </pre>
-<p>Information for an audio format.</p>
-<div class="refsect3">
-<a name="GstAudioFormatInfo.members"></a><h4>Members</h4>
-<div class="informaltable"><table class="informaltable" width="100%" border="0">
-<colgroup>
-<col width="300px" class="struct_members_name">
-<col class="struct_members_description">
-<col width="200px" class="struct_members_annotations">
-</colgroup>
-<tbody>
-<tr>
-<td class="struct_member_name"><p><a class="link" href="gst-plugins-base-libs-gstaudio.html#GstAudioFormat" title="enum GstAudioFormat"><span class="type">GstAudioFormat</span></a> <em class="structfield"><code><a name="GstAudioFormatInfo.format"></a>format</code></em>;</p></td>
-<td class="struct_member_description"><p><a class="link" href="gst-plugins-base-libs-gstaudio.html#GstAudioFormat" title="enum GstAudioFormat"><span class="type">GstAudioFormat</span></a></p></td>
-<td class="struct_member_annotations"> </td>
-</tr>
-<tr>
-<td class="struct_member_name"><p>const <a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *<em class="structfield"><code><a name="GstAudioFormatInfo.name"></a>name</code></em>;</p></td>
-<td class="struct_member_description"><p>string representation of the format</p></td>
-<td class="struct_member_annotations"> </td>
-</tr>
-<tr>
-<td class="struct_member_name"><p>const <a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *<em class="structfield"><code><a name="GstAudioFormatInfo.description"></a>description</code></em>;</p></td>
-<td class="struct_member_description"><p>user readable description of the format</p></td>
-<td class="struct_member_annotations"> </td>
-</tr>
-<tr>
-<td class="struct_member_name"><p><a class="link" href="gst-plugins-base-libs-gstaudio.html#GstAudioFormatFlags" title="enum GstAudioFormatFlags"><span class="type">GstAudioFormatFlags</span></a> <em class="structfield"><code><a name="GstAudioFormatInfo.flags"></a>flags</code></em>;</p></td>
-<td class="struct_member_description"><p><a class="link" href="gst-plugins-base-libs-gstaudio.html#GstAudioFormatFlags" title="enum GstAudioFormatFlags"><span class="type">GstAudioFormatFlags</span></a></p></td>
-<td class="struct_member_annotations"> </td>
-</tr>
-<tr>
-<td class="struct_member_name"><p><a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#gint"><span class="type">gint</span></a> <em class="structfield"><code><a name="GstAudioFormatInfo.endianness"></a>endianness</code></em>;</p></td>
-<td class="struct_member_description"><p>the endianness</p></td>
-<td class="struct_member_annotations"> </td>
-</tr>
-<tr>
-<td class="struct_member_name"><p><a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#gint"><span class="type">gint</span></a> <em class="structfield"><code><a name="GstAudioFormatInfo.width"></a>width</code></em>;</p></td>
-<td class="struct_member_description"><p>amount of bits used for one sample</p></td>
-<td class="struct_member_annotations"> </td>
-</tr>
-<tr>
-<td class="struct_member_name"><p><a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#gint"><span class="type">gint</span></a> <em class="structfield"><code><a name="GstAudioFormatInfo.depth"></a>depth</code></em>;</p></td>
-<td class="struct_member_description"><p>amount of valid bits in <em class="parameter"><code>width</code></em>
-</p></td>
-<td class="struct_member_annotations"> </td>
-</tr>
-<tr>
-<td class="struct_member_name"><p><a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#guint8"><span class="type">guint8</span></a> <em class="structfield"><code><a name="GstAudioFormatInfo.silence"></a>silence</code></em>[8];</p></td>
-<td class="struct_member_description"><p><em class="parameter"><code>width</code></em>
-/8 bytes with 1 silent sample</p></td>
-<td class="struct_member_annotations"> </td>
-</tr>
-<tr>
-<td class="struct_member_name"><p><a class="link" href="gst-plugins-base-libs-gstaudio.html#GstAudioFormat" title="enum GstAudioFormat"><span class="type">GstAudioFormat</span></a> <em class="structfield"><code><a name="GstAudioFormatInfo.unpack-format"></a>unpack_format</code></em>;</p></td>
-<td class="struct_member_description"><p>the format of the unpacked samples</p></td>
-<td class="struct_member_annotations"> </td>
-</tr>
-<tr>
-<td class="struct_member_name"><p><a class="link" href="gst-plugins-base-libs-gstaudio.html#GstAudioFormatUnpack" title="GstAudioFormatUnpack ()"><span class="type">GstAudioFormatUnpack</span></a> <em class="structfield"><code><a name="GstAudioFormatInfo.unpack-func"></a>unpack_func</code></em>;</p></td>
-<td class="struct_member_description"><p>function to unpack samples</p></td>
-<td class="struct_member_annotations"> </td>
-</tr>
-<tr>
-<td class="struct_member_name"><p><a class="link" href="gst-plugins-base-libs-gstaudio.html#GstAudioFormatPack" title="GstAudioFormatPack ()"><span class="type">GstAudioFormatPack</span></a> <em class="structfield"><code><a name="GstAudioFormatInfo.pack-func"></a>pack_func</code></em>;</p></td>
-<td class="struct_member_description"><p>function to pack samples</p></td>
-<td class="struct_member_annotations"> </td>
-</tr>
-</tbody>
-</table></div>
-</div>
 </div>
 <hr>
 <div class="refsect2">
@@ -1914,63 +1152,10 @@
   GstAudioChannelPosition   position[64];
 };
 </pre>
-<p>Information describing audio properties. This information can be filled
-in from GstCaps with <a class="link" href="gst-plugins-base-libs-gstaudio.html#gst-audio-info-from-caps" title="gst_audio_info_from_caps ()"><code class="function">gst_audio_info_from_caps()</code></a>.</p>
-<p>Use the provided macros to access the info in this structure.</p>
-<div class="refsect3">
-<a name="GstAudioInfo.members"></a><h4>Members</h4>
-<div class="informaltable"><table class="informaltable" width="100%" border="0">
-<colgroup>
-<col width="300px" class="struct_members_name">
-<col class="struct_members_description">
-<col width="200px" class="struct_members_annotations">
-</colgroup>
-<tbody>
-<tr>
-<td class="struct_member_name"><p>const <a class="link" href="gst-plugins-base-libs-gstaudio.html#GstAudioFormatInfo" title="struct GstAudioFormatInfo"><span class="type">GstAudioFormatInfo</span></a> *<em class="structfield"><code><a name="GstAudioInfo.finfo"></a>finfo</code></em>;</p></td>
-<td class="struct_member_description"><p>the format info of the audio</p></td>
-<td class="struct_member_annotations"> </td>
-</tr>
-<tr>
-<td class="struct_member_name"><p><a class="link" href="gst-plugins-base-libs-gstaudio.html#GstAudioFlags" title="enum GstAudioFlags"><span class="type">GstAudioFlags</span></a> <em class="structfield"><code><a name="GstAudioInfo.flags"></a>flags</code></em>;</p></td>
-<td class="struct_member_description"><p>additional audio flags</p></td>
-<td class="struct_member_annotations"> </td>
-</tr>
-<tr>
-<td class="struct_member_name"><p><a class="link" href="gst-plugins-base-libs-gstaudio.html#GstAudioLayout" title="enum GstAudioLayout"><span class="type">GstAudioLayout</span></a> <em class="structfield"><code><a name="GstAudioInfo.layout"></a>layout</code></em>;</p></td>
-<td class="struct_member_description"><p>audio layout</p></td>
-<td class="struct_member_annotations"> </td>
-</tr>
-<tr>
-<td class="struct_member_name"><p><a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#gint"><span class="type">gint</span></a> <em class="structfield"><code><a name="GstAudioInfo.rate"></a>rate</code></em>;</p></td>
-<td class="struct_member_description"><p>the audio sample rate</p></td>
-<td class="struct_member_annotations"> </td>
-</tr>
-<tr>
-<td class="struct_member_name"><p><a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#gint"><span class="type">gint</span></a> <em class="structfield"><code><a name="GstAudioInfo.channels"></a>channels</code></em>;</p></td>
-<td class="struct_member_description"><p>the number of channels</p></td>
-<td class="struct_member_annotations"> </td>
-</tr>
-<tr>
-<td class="struct_member_name"><p><a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#gint"><span class="type">gint</span></a> <em class="structfield"><code><a name="GstAudioInfo.bpf"></a>bpf</code></em>;</p></td>
-<td class="struct_member_description"><p>the number of bytes for one frame, this is the size of one
-sample * <em class="parameter"><code>channels</code></em>
-</p></td>
-<td class="struct_member_annotations"> </td>
-</tr>
-<tr>
-<td class="struct_member_name"><p><a class="link" href="gst-plugins-base-libs-gstaudiochannels.html#GstAudioChannelPosition" title="enum GstAudioChannelPosition"><span class="type">GstAudioChannelPosition</span></a> <em class="structfield"><code><a name="GstAudioInfo.position"></a>position</code></em>[64];</p></td>
-<td class="struct_member_description"><p>the positions for each channel</p></td>
-<td class="struct_member_annotations"> </td>
-</tr>
-</tbody>
-</table></div>
-</div>
 </div>
 <hr>
 <div class="refsect2">
 <a name="GstAudioLayout"></a><h3>enum GstAudioLayout</h3>
-<p>Layout of the audio samples for the different channels.</p>
 <div class="refsect3">
 <a name="GstAudioLayout.members"></a><h4>Members</h4>
 <div class="informaltable"><table class="informaltable" width="100%" border="0">
@@ -1982,17 +1167,13 @@
 <tbody>
 <tr>
 <td class="enum_member_name"><p><a name="GST-AUDIO-LAYOUT-INTERLEAVED:CAPS"></a>GST_AUDIO_LAYOUT_INTERLEAVED</p></td>
-<td class="enum_member_description">
-<p>interleaved audio</p>
-</td>
-<td class="enum_member_annotations"> </td>
+<td> </td>
+<td> </td>
 </tr>
 <tr>
 <td class="enum_member_name"><p><a name="GST-AUDIO-LAYOUT-NON-INTERLEAVED:CAPS"></a>GST_AUDIO_LAYOUT_NON_INTERLEAVED</p></td>
-<td class="enum_member_description">
-<p>non-interleaved audio</p>
-</td>
-<td class="enum_member_annotations"> </td>
+<td> </td>
+<td> </td>
 </tr>
 </tbody>
 </table></div>
@@ -2001,7 +1182,6 @@
 <hr>
 <div class="refsect2">
 <a name="GstAudioPackFlags"></a><h3>enum GstAudioPackFlags</h3>
-<p>The different flags that can be used when packing and unpacking.</p>
 <div class="refsect3">
 <a name="GstAudioPackFlags.members"></a><h4>Members</h4>
 <div class="informaltable"><table class="informaltable" width="100%" border="0">
@@ -2013,21 +1193,13 @@
 <tbody>
 <tr>
 <td class="enum_member_name"><p><a name="GST-AUDIO-PACK-FLAG-NONE:CAPS"></a>GST_AUDIO_PACK_FLAG_NONE</p></td>
-<td class="enum_member_description">
-<p>No flag</p>
-</td>
-<td class="enum_member_annotations"> </td>
+<td> </td>
+<td> </td>
 </tr>
 <tr>
 <td class="enum_member_name"><p><a name="GST-AUDIO-PACK-FLAG-TRUNCATE-RANGE:CAPS"></a>GST_AUDIO_PACK_FLAG_TRUNCATE_RANGE</p></td>
-<td class="enum_member_description">
-<p>When the source has a smaller depth
-  than the target format, set the least significant bits of the target
-  to 0. This is likely sightly faster but less accurate. When this flag
-  is not specified, the most significant bits of the source are duplicated
-  in the least significant bits of the destination.</p>
-</td>
-<td class="enum_member_annotations"> </td>
+<td> </td>
+<td> </td>
 </tr>
 </tbody>
 </table></div>
@@ -2038,65 +1210,53 @@
 <a name="GST-META-TAG-AUDIO-STR:CAPS"></a><h3>GST_META_TAG_AUDIO_STR</h3>
 <pre class="programlisting">#define GST_META_TAG_AUDIO_STR "audio"
 </pre>
-<p>This metadata is relevant for audio streams.</p>
-<p class="since">Since: 1.2</p>
 </div>
 <hr>
 <div class="refsect2">
 <a name="GST-META-TAG-AUDIO-CHANNELS-STR:CAPS"></a><h3>GST_META_TAG_AUDIO_CHANNELS_STR</h3>
 <pre class="programlisting">#define GST_META_TAG_AUDIO_CHANNELS_STR "channels"
 </pre>
-<p>This metadata stays relevant as long as channels are unchanged.</p>
-<p class="since">Since: 1.2</p>
 </div>
 <hr>
 <div class="refsect2">
 <a name="GST-META-TAG-AUDIO-RATE-STR:CAPS"></a><h3>GST_META_TAG_AUDIO_RATE_STR</h3>
 <pre class="programlisting">#define GST_META_TAG_AUDIO_RATE_STR "rate"
 </pre>
-<p>This metadata stays relevant as long as sample rate is unchanged.</p>
-<p class="since">Since: 1.8</p>
 </div>
 <hr>
 <div class="refsect2">
 <a name="GST-AUDIO-RATE-RANGE:CAPS"></a><h3>GST_AUDIO_RATE_RANGE</h3>
 <pre class="programlisting">#define GST_AUDIO_RATE_RANGE "(int) [ 1, max ]"
 </pre>
-<p>Maximum range of allowed sample rates, for use in template caps strings.</p>
 </div>
 <hr>
 <div class="refsect2">
 <a name="GST-AUDIO-CHANNELS-RANGE:CAPS"></a><h3>GST_AUDIO_CHANNELS_RANGE</h3>
 <pre class="programlisting">#define GST_AUDIO_CHANNELS_RANGE "(int) [ 1, max ]"
 </pre>
-<p>Maximum range of allowed channels, for use in template caps strings.</p>
 </div>
 <hr>
 <div class="refsect2">
 <a name="GST-AUDIO-FORMATS-ALL:CAPS"></a><h3>GST_AUDIO_FORMATS_ALL</h3>
 <pre class="programlisting">#define             GST_AUDIO_FORMATS_ALL</pre>
-<p>List of all audio formats, for use in template caps strings.</p>
 </div>
 <hr>
 <div class="refsect2">
 <a name="GST-AUDIO-DEF-RATE:CAPS"></a><h3>GST_AUDIO_DEF_RATE</h3>
 <pre class="programlisting">#define GST_AUDIO_DEF_RATE 44100
 </pre>
-<p>Standard sampling rate used in consumer audio.</p>
 </div>
 <hr>
 <div class="refsect2">
 <a name="GST-AUDIO-DEF-CHANNELS:CAPS"></a><h3>GST_AUDIO_DEF_CHANNELS</h3>
 <pre class="programlisting">#define GST_AUDIO_DEF_CHANNELS 2
 </pre>
-<p>Standard number of channels used in consumer audio.</p>
 </div>
 <hr>
 <div class="refsect2">
 <a name="GST-AUDIO-DEF-FORMAT:CAPS"></a><h3>GST_AUDIO_DEF_FORMAT</h3>
 <pre class="programlisting">#define GST_AUDIO_DEF_FORMAT "S16LE"
 </pre>
-<p>Standard format used in consumer audio.</p>
 </div>
 </div>
 </div>
diff --git a/docs/libs/html/gst-plugins-base-libs-gstaudiobasesink.html b/docs/libs/html/gst-plugins-base-libs-gstaudiobasesink.html
index eefaca0..e7746db 100644
--- a/docs/libs/html/gst-plugins-base-libs-gstaudiobasesink.html
+++ b/docs/libs/html/gst-plugins-base-libs-gstaudiobasesink.html
@@ -29,7 +29,7 @@
 <div class="refnamediv"><table width="100%"><tr>
 <td valign="top">
 <h2><span class="refentrytitle"><a name="gst-plugins-base-libs-gstaudiobasesink.top_of_page"></a>gstaudiobasesink</span></h2>
-<p>gstaudiobasesink — Base class for audio sinks</p>
+<p>gstaudiobasesink</p>
 </td>
 <td class="gallery_image" valign="top" align="right"></td>
 </tr></table></div>
@@ -265,9 +265,6 @@
 </div>
 <div class="refsect1">
 <a name="gst-plugins-base-libs-gstaudiobasesink.description"></a><h2>Description</h2>
-<p>This is the base class for audio sinks. Subclasses need to implement the
-::create_ringbuffer vmethod. This base class will then take care of
-writing samples to the ringbuffer, synchronisation, clipping and flushing.</p>
 </div>
 <div class="refsect1">
 <a name="gst-plugins-base-libs-gstaudiobasesink.functions_details"></a><h2>Functions</h2>
@@ -281,147 +278,24 @@
                                 <em class="parameter"><code><a href="/usr/share/gtk-doc/html/gstreamer-1.0GstClock.html#GstClockTimeDiff"><span class="type">GstClockTimeDiff</span></a> *requested_skew</code></em>,
                                 <em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstaudiobasesink.html#GstAudioBaseSinkDiscontReason" title="enum GstAudioBaseSinkDiscontReason"><span class="type">GstAudioBaseSinkDiscontReason</span></a> discont_reason</code></em>,
                                 <em class="parameter"><code><a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> user_data</code></em>);</pre>
-<p>This function is set with <a class="link" href="gst-plugins-base-libs-gstaudiobasesink.html#gst-audio-base-sink-set-custom-slaving-callback" title="gst_audio_base_sink_set_custom_slaving_callback ()"><code class="function">gst_audio_base_sink_set_custom_slaving_callback()</code></a>
-and is called during playback. It receives the current time of external and
-internal clocks, which the callback can then use to apply any custom
-slaving/synchronization schemes.</p>
-<p>The external clock is the sink's element clock, the internal one is the
-internal audio clock. The internal audio clock's calibration is applied to
-the timestamps before they are passed to the callback. The difference between
-etime and itime is the skew; how much internal and external clock lie apart
-from each other. A skew of 0 means both clocks are perfectly in sync.
-itime &gt; etime means the external clock is going slower, while itime &lt; etime
-means it is going faster than the internal clock. etime and itime are always
-valid timestamps, except for when a discontinuity happens.</p>
-<p>requested_skew is an output value the callback can write to. It informs the
-sink of whether or not it should move the playout pointer, and if so, by how
-much. This pointer is only NULL if a discontinuity occurs; otherwise, it is
-safe to write to *requested_skew. The default skew is 0.</p>
-<p>The sink may experience discontinuities. If one happens, discont is TRUE,
-itime, etime are set to GST_CLOCK_TIME_NONE, and requested_skew is NULL.
-This makes it possible to reset custom clock slaving algorithms when a
-discontinuity happens.</p>
-<div class="refsect3">
-<a name="GstAudioBaseSinkCustomSlavingCallback.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>sink</p></td>
-<td class="parameter_description"><p>a <a class="link" href="gst-plugins-base-libs-gstaudiobasesink.html#GstAudioBaseSink"><span class="type">GstAudioBaseSink</span></a></p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-<tr>
-<td class="parameter_name"><p>etime</p></td>
-<td class="parameter_description"><p>external clock time</p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-<tr>
-<td class="parameter_name"><p>itime</p></td>
-<td class="parameter_description"><p>internal clock time</p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-<tr>
-<td class="parameter_name"><p>requested_skew</p></td>
-<td class="parameter_description"><p>skew amount requested by the callback</p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-<tr>
-<td class="parameter_name"><p>discont_reason</p></td>
-<td class="parameter_description"><p>reason for discontinuity (if any)</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</p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-</tbody>
-</table></div>
-</div>
-<p class="since">Since: 1.6</p>
 </div>
 <hr>
 <div class="refsect2">
 <a name="GST-AUDIO-BASE-SINK-CLOCK:CAPS"></a><h3>GST_AUDIO_BASE_SINK_CLOCK()</h3>
 <pre class="programlisting">#define GST_AUDIO_BASE_SINK_CLOCK(obj)   (GST_AUDIO_BASE_SINK (obj)-&gt;clock)
 </pre>
-<p>Get the <a href="/usr/share/gtk-doc/html/gstreamer-1.0GstClock.html#GstClock-struct"><span class="type">GstClock</span></a> of <em class="parameter"><code>obj</code></em>
-.</p>
-<div class="refsect3">
-<a name="GST-AUDIO-BASE-SINK-CLOCK.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>obj</p></td>
-<td class="parameter_description"><p>a <a class="link" href="gst-plugins-base-libs-gstaudiobasesink.html#GstAudioBaseSink"><span class="type">GstAudioBaseSink</span></a></p></td>
-<td class="parameter_annotations"> </td>
-</tr></tbody>
-</table></div>
-</div>
 </div>
 <hr>
 <div class="refsect2">
 <a name="GST-AUDIO-BASE-SINK-PAD:CAPS"></a><h3>GST_AUDIO_BASE_SINK_PAD()</h3>
 <pre class="programlisting">#define GST_AUDIO_BASE_SINK_PAD(obj)     (GST_BASE_SINK (obj)-&gt;sinkpad)
 </pre>
-<p>Get the sink <a href="/usr/share/gtk-doc/html/gstreamer-1.0GstPad.html#GstPad-struct"><span class="type">GstPad</span></a> of <em class="parameter"><code>obj</code></em>
-.</p>
-<div class="refsect3">
-<a name="GST-AUDIO-BASE-SINK-PAD.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>obj</p></td>
-<td class="parameter_description"><p>a <a class="link" href="gst-plugins-base-libs-gstaudiobasesink.html#GstAudioBaseSink"><span class="type">GstAudioBaseSink</span></a></p></td>
-<td class="parameter_annotations"> </td>
-</tr></tbody>
-</table></div>
-</div>
 </div>
 <hr>
 <div class="refsect2">
 <a name="gst-audio-base-sink-create-ringbuffer"></a><h3>gst_audio_base_sink_create_ringbuffer ()</h3>
 <pre class="programlisting"><a class="link" href="gst-plugins-base-libs-gstaudioringbuffer.html#GstAudioRingBuffer"><span class="returnvalue">GstAudioRingBuffer</span></a> *
 gst_audio_base_sink_create_ringbuffer (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstaudiobasesink.html#GstAudioBaseSink"><span class="type">GstAudioBaseSink</span></a> *sink</code></em>);</pre>
-<p>Create and return the <a class="link" href="gst-plugins-base-libs-gstaudioringbuffer.html#GstAudioRingBuffer"><span class="type">GstAudioRingBuffer</span></a> for <em class="parameter"><code>sink</code></em>
-. This function will
-call the ::create_ringbuffer vmethod and will set <em class="parameter"><code>sink</code></em>
- as the parent of
-the returned buffer (see <a href="/usr/share/gtk-doc/html/gstreamer-1.0GstObject.html#gst-object-set-parent"><code class="function">gst_object_set_parent()</code></a>).</p>
-<div class="refsect3">
-<a name="gst-audio-base-sink-create-ringbuffer.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>sink</p></td>
-<td class="parameter_description"><p>a <a class="link" href="gst-plugins-base-libs-gstaudiobasesink.html#GstAudioBaseSink"><span class="type">GstAudioBaseSink</span></a>.</p></td>
-<td class="parameter_annotations"> </td>
-</tr></tbody>
-</table></div>
-</div>
-<div class="refsect3">
-<a name="gst-audio-base-sink-create-ringbuffer.returns"></a><h4>Returns</h4>
-<p> The new ringbuffer of <em class="parameter"><code>sink</code></em>
-. </p>
-<p><span class="annotation">[<acronym title="Don't free data after the code is done."><span class="acronym">transfer none</span></acronym>]</span></p>
-</div>
 </div>
 <hr>
 <div class="refsect2">
@@ -429,65 +303,12 @@
 <pre class="programlisting"><span class="returnvalue">void</span>
 gst_audio_base_sink_set_provide_clock (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstaudiobasesink.html#GstAudioBaseSink"><span class="type">GstAudioBaseSink</span></a> *sink</code></em>,
                                        <em class="parameter"><code><a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a> provide</code></em>);</pre>
-<p>Controls whether <em class="parameter"><code>sink</code></em>
- will provide a clock or not. If <em class="parameter"><code>provide</code></em>
- is <a href="/usr/share/gtk-doc/html/glibglib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a>,
-<a href="/usr/share/gtk-doc/html/gstreamer-1.0GstElement.html#gst-element-provide-clock"><code class="function">gst_element_provide_clock()</code></a> will return a clock that reflects the datarate
-of <em class="parameter"><code>sink</code></em>
-. If <em class="parameter"><code>provide</code></em>
- is <a href="/usr/share/gtk-doc/html/glibglib-Standard-Macros.html#FALSE:CAPS"><code class="literal">FALSE</code></a>, <a href="/usr/share/gtk-doc/html/gstreamer-1.0GstElement.html#gst-element-provide-clock"><code class="function">gst_element_provide_clock()</code></a> will return
-NULL.</p>
-<div class="refsect3">
-<a name="gst-audio-base-sink-set-provide-clock.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>sink</p></td>
-<td class="parameter_description"><p>a <a class="link" href="gst-plugins-base-libs-gstaudiobasesink.html#GstAudioBaseSink"><span class="type">GstAudioBaseSink</span></a></p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-<tr>
-<td class="parameter_name"><p>provide</p></td>
-<td class="parameter_description"><p>new state</p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-</tbody>
-</table></div>
-</div>
 </div>
 <hr>
 <div class="refsect2">
 <a name="gst-audio-base-sink-get-provide-clock"></a><h3>gst_audio_base_sink_get_provide_clock ()</h3>
 <pre class="programlisting"><a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
 gst_audio_base_sink_get_provide_clock (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstaudiobasesink.html#GstAudioBaseSink"><span class="type">GstAudioBaseSink</span></a> *sink</code></em>);</pre>
-<p>Queries whether <em class="parameter"><code>sink</code></em>
- will provide a clock or not. See also
-gst_audio_base_sink_set_provide_clock.</p>
-<div class="refsect3">
-<a name="gst-audio-base-sink-get-provide-clock.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>sink</p></td>
-<td class="parameter_description"><p>a <a class="link" href="gst-plugins-base-libs-gstaudiobasesink.html#GstAudioBaseSink"><span class="type">GstAudioBaseSink</span></a></p></td>
-<td class="parameter_annotations"> </td>
-</tr></tbody>
-</table></div>
-</div>
-<div class="refsect3">
-<a name="gst-audio-base-sink-get-provide-clock.returns"></a><h4>Returns</h4>
-<p> <a href="/usr/share/gtk-doc/html/glibglib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a> if <em class="parameter"><code>sink</code></em>
-will provide a clock.</p>
-</div>
 </div>
 <hr>
 <div class="refsect2">
@@ -495,58 +316,12 @@
 <pre class="programlisting"><span class="returnvalue">void</span>
 gst_audio_base_sink_set_slave_method (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstaudiobasesink.html#GstAudioBaseSink"><span class="type">GstAudioBaseSink</span></a> *sink</code></em>,
                                       <em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstaudiobasesink.html#GstAudioBaseSinkSlaveMethod" title="enum GstAudioBaseSinkSlaveMethod"><span class="type">GstAudioBaseSinkSlaveMethod</span></a> method</code></em>);</pre>
-<p>Controls how clock slaving will be performed in <em class="parameter"><code>sink</code></em>
-.</p>
-<div class="refsect3">
-<a name="gst-audio-base-sink-set-slave-method.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>sink</p></td>
-<td class="parameter_description"><p>a <a class="link" href="gst-plugins-base-libs-gstaudiobasesink.html#GstAudioBaseSink"><span class="type">GstAudioBaseSink</span></a></p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-<tr>
-<td class="parameter_name"><p>method</p></td>
-<td class="parameter_description"><p>the new slave method</p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-</tbody>
-</table></div>
-</div>
 </div>
 <hr>
 <div class="refsect2">
 <a name="gst-audio-base-sink-get-slave-method"></a><h3>gst_audio_base_sink_get_slave_method ()</h3>
 <pre class="programlisting"><a class="link" href="gst-plugins-base-libs-gstaudiobasesink.html#GstAudioBaseSinkSlaveMethod" title="enum GstAudioBaseSinkSlaveMethod"><span class="returnvalue">GstAudioBaseSinkSlaveMethod</span></a>
 gst_audio_base_sink_get_slave_method (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstaudiobasesink.html#GstAudioBaseSink"><span class="type">GstAudioBaseSink</span></a> *sink</code></em>);</pre>
-<p>Get the current slave method used by <em class="parameter"><code>sink</code></em>
-.</p>
-<div class="refsect3">
-<a name="gst-audio-base-sink-get-slave-method.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>sink</p></td>
-<td class="parameter_description"><p>a <a class="link" href="gst-plugins-base-libs-gstaudiobasesink.html#GstAudioBaseSink"><span class="type">GstAudioBaseSink</span></a></p></td>
-<td class="parameter_annotations"> </td>
-</tr></tbody>
-</table></div>
-</div>
-<div class="refsect3">
-<a name="gst-audio-base-sink-get-slave-method.returns"></a><h4>Returns</h4>
-<p> The current slave method used by <em class="parameter"><code>sink</code></em>
-.</p>
-</div>
 </div>
 <hr>
 <div class="refsect2">
@@ -555,29 +330,6 @@
 gst_audio_base_sink_set_drift_tolerance
                                (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstaudiobasesink.html#GstAudioBaseSink"><span class="type">GstAudioBaseSink</span></a> *sink</code></em>,
                                 <em class="parameter"><code><a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#gint64"><span class="type">gint64</span></a> drift_tolerance</code></em>);</pre>
-<p>Controls the sink's drift tolerance.</p>
-<div class="refsect3">
-<a name="gst-audio-base-sink-set-drift-tolerance.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>sink</p></td>
-<td class="parameter_description"><p>a <a class="link" href="gst-plugins-base-libs-gstaudiobasesink.html#GstAudioBaseSink"><span class="type">GstAudioBaseSink</span></a></p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-<tr>
-<td class="parameter_name"><p>drift_tolerance</p></td>
-<td class="parameter_description"><p>the new drift tolerance in microseconds</p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-</tbody>
-</table></div>
-</div>
 </div>
 <hr>
 <div class="refsect2">
@@ -585,28 +337,6 @@
 <pre class="programlisting"><a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#gint64"><span class="returnvalue">gint64</span></a>
 gst_audio_base_sink_get_drift_tolerance
                                (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstaudiobasesink.html#GstAudioBaseSink"><span class="type">GstAudioBaseSink</span></a> *sink</code></em>);</pre>
-<p>Get the current drift tolerance, in microseconds, used by <em class="parameter"><code>sink</code></em>
-.</p>
-<div class="refsect3">
-<a name="gst-audio-base-sink-get-drift-tolerance.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>sink</p></td>
-<td class="parameter_description"><p>a <a class="link" href="gst-plugins-base-libs-gstaudiobasesink.html#GstAudioBaseSink"><span class="type">GstAudioBaseSink</span></a></p></td>
-<td class="parameter_annotations"> </td>
-</tr></tbody>
-</table></div>
-</div>
-<div class="refsect3">
-<a name="gst-audio-base-sink-get-drift-tolerance.returns"></a><h4>Returns</h4>
-<p> The current drift tolerance used by <em class="parameter"><code>sink</code></em>
-.</p>
-</div>
 </div>
 <hr>
 <div class="refsect2">
@@ -615,29 +345,6 @@
 gst_audio_base_sink_set_alignment_threshold
                                (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstaudiobasesink.html#GstAudioBaseSink"><span class="type">GstAudioBaseSink</span></a> *sink</code></em>,
                                 <em class="parameter"><code><a href="/usr/share/gtk-doc/html/gstreamer-1.0GstClock.html#GstClockTime"><span class="type">GstClockTime</span></a> alignment_threshold</code></em>);</pre>
-<p>Controls the sink's alignment threshold.</p>
-<div class="refsect3">
-<a name="gst-audio-base-sink-set-alignment-threshold.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>sink</p></td>
-<td class="parameter_description"><p>a <a class="link" href="gst-plugins-base-libs-gstaudiobasesink.html#GstAudioBaseSink"><span class="type">GstAudioBaseSink</span></a></p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-<tr>
-<td class="parameter_name"><p>alignment_threshold</p></td>
-<td class="parameter_description"><p>the new alignment threshold in nanoseconds</p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-</tbody>
-</table></div>
-</div>
 </div>
 <hr>
 <div class="refsect2">
@@ -645,28 +352,6 @@
 <pre class="programlisting"><a href="/usr/share/gtk-doc/html/gstreamer-1.0GstClock.html#GstClockTime"><span class="returnvalue">GstClockTime</span></a>
 gst_audio_base_sink_get_alignment_threshold
                                (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstaudiobasesink.html#GstAudioBaseSink"><span class="type">GstAudioBaseSink</span></a> *sink</code></em>);</pre>
-<p>Get the current alignment threshold, in nanoseconds, used by <em class="parameter"><code>sink</code></em>
-.</p>
-<div class="refsect3">
-<a name="gst-audio-base-sink-get-alignment-threshold.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>sink</p></td>
-<td class="parameter_description"><p>a <a class="link" href="gst-plugins-base-libs-gstaudiobasesink.html#GstAudioBaseSink"><span class="type">GstAudioBaseSink</span></a></p></td>
-<td class="parameter_annotations"> </td>
-</tr></tbody>
-</table></div>
-</div>
-<div class="refsect3">
-<a name="gst-audio-base-sink-get-alignment-threshold.returns"></a><h4>Returns</h4>
-<p> The current alignment threshold used by <em class="parameter"><code>sink</code></em>
-.</p>
-</div>
 </div>
 <hr>
 <div class="refsect2">
@@ -674,57 +359,12 @@
 <pre class="programlisting"><span class="returnvalue">void</span>
 gst_audio_base_sink_set_discont_wait (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstaudiobasesink.html#GstAudioBaseSink"><span class="type">GstAudioBaseSink</span></a> *sink</code></em>,
                                       <em class="parameter"><code><a href="/usr/share/gtk-doc/html/gstreamer-1.0GstClock.html#GstClockTime"><span class="type">GstClockTime</span></a> discont_wait</code></em>);</pre>
-<p>Controls how long the sink will wait before creating a discontinuity.</p>
-<div class="refsect3">
-<a name="gst-audio-base-sink-set-discont-wait.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>sink</p></td>
-<td class="parameter_description"><p>a <a class="link" href="gst-plugins-base-libs-gstaudiobasesink.html#GstAudioBaseSink"><span class="type">GstAudioBaseSink</span></a></p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-<tr>
-<td class="parameter_name"><p>discont_wait</p></td>
-<td class="parameter_description"><p>the new discont wait in nanoseconds</p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-</tbody>
-</table></div>
-</div>
 </div>
 <hr>
 <div class="refsect2">
 <a name="gst-audio-base-sink-get-discont-wait"></a><h3>gst_audio_base_sink_get_discont_wait ()</h3>
 <pre class="programlisting"><a href="/usr/share/gtk-doc/html/gstreamer-1.0GstClock.html#GstClockTime"><span class="returnvalue">GstClockTime</span></a>
 gst_audio_base_sink_get_discont_wait (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstaudiobasesink.html#GstAudioBaseSink"><span class="type">GstAudioBaseSink</span></a> *sink</code></em>);</pre>
-<p>Get the current discont wait, in nanoseconds, used by <em class="parameter"><code>sink</code></em>
-.</p>
-<div class="refsect3">
-<a name="gst-audio-base-sink-get-discont-wait.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>sink</p></td>
-<td class="parameter_description"><p>a <a class="link" href="gst-plugins-base-libs-gstaudiobasesink.html#GstAudioBaseSink"><span class="type">GstAudioBaseSink</span></a></p></td>
-<td class="parameter_annotations"> </td>
-</tr></tbody>
-</table></div>
-</div>
-<div class="refsect3">
-<a name="gst-audio-base-sink-get-discont-wait.returns"></a><h4>Returns</h4>
-<p> The current discont wait used by <em class="parameter"><code>sink</code></em>
-.</p>
-</div>
 </div>
 <hr>
 <div class="refsect2">
@@ -735,46 +375,6 @@
                                 <em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstaudiobasesink.html#GstAudioBaseSinkCustomSlavingCallback" title="GstAudioBaseSinkCustomSlavingCallback ()"><span class="type">GstAudioBaseSinkCustomSlavingCallback</span></a> callback</code></em>,
                                 <em class="parameter"><code><a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> user_data</code></em>,
                                 <em class="parameter"><code><a href="/usr/share/gtk-doc/html/glibglib-Datasets.html#GDestroyNotify"><span class="type">GDestroyNotify</span></a> notify</code></em>);</pre>
-<p>Sets the custom slaving callback. This callback will
-be invoked if the slave-method property is set to
-GST_AUDIO_BASE_SINK_SLAVE_CUSTOM and the audio sink
-receives and plays samples.</p>
-<p>Setting the callback to NULL causes the sink to
-behave as if the GST_AUDIO_BASE_SINK_SLAVE_NONE
-method were used.</p>
-<div class="refsect3">
-<a name="gst-audio-base-sink-set-custom-slaving-callback.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>sink</p></td>
-<td class="parameter_description"><p>a <a class="link" href="gst-plugins-base-libs-gstaudiobasesink.html#GstAudioBaseSink"><span class="type">GstAudioBaseSink</span></a></p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-<tr>
-<td class="parameter_name"><p>callback</p></td>
-<td class="parameter_description"><p>a <a class="link" href="gst-plugins-base-libs-gstaudiobasesink.html#GstAudioBaseSinkCustomSlavingCallback" title="GstAudioBaseSinkCustomSlavingCallback ()"><span class="type">GstAudioBaseSinkCustomSlavingCallback</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 passed to the callback</p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-<tr>
-<td class="parameter_name"><p>notify</p></td>
-<td class="parameter_description"><p>called when user_data becomes unused</p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-</tbody>
-</table></div>
-</div>
-<p class="since">Since: 1.6</p>
 </div>
 <hr>
 <div class="refsect2">
@@ -782,27 +382,6 @@
 <pre class="programlisting"><span class="returnvalue">void</span>
 gst_audio_base_sink_report_device_failure
                                (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstaudiobasesink.html#GstAudioBaseSink"><span class="type">GstAudioBaseSink</span></a> *sink</code></em>);</pre>
-<p>Informs this base class that the audio output device has failed for
-some reason, causing a discontinuity (for example, because the device
-recovered from the error, but lost all contents of its ring buffer).
-This function is typically called by derived classes, and is useful
-for the custom slave method.</p>
-<div class="refsect3">
-<a name="gst-audio-base-sink-report-device-failure.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>sink</p></td>
-<td class="parameter_description"><p>a <a class="link" href="gst-plugins-base-libs-gstaudiobasesink.html#GstAudioBaseSink"><span class="type">GstAudioBaseSink</span></a></p></td>
-<td class="parameter_annotations"> </td>
-</tr></tbody>
-</table></div>
-</div>
-<p class="since">Since: 1.6</p>
 </div>
 </div>
 <div class="refsect1">
@@ -810,7 +389,6 @@
 <div class="refsect2">
 <a name="GstAudioBaseSink-struct"></a><h3>struct GstAudioBaseSink</h3>
 <pre class="programlisting">struct GstAudioBaseSink;</pre>
-<p>Opaque <a class="link" href="gst-plugins-base-libs-gstaudiobasesink.html#GstAudioBaseSink"><span class="type">GstAudioBaseSink</span></a>.</p>
 </div>
 <hr>
 <div class="refsect2">
@@ -826,39 +404,10 @@
                                              GstBuffer        *buffer);
 };
 </pre>
-<p><a class="link" href="gst-plugins-base-libs-gstaudiobasesink.html#GstAudioBaseSink"><span class="type">GstAudioBaseSink</span></a> class. Override the vmethod to implement
-functionality.</p>
-<div class="refsect3">
-<a name="GstAudioBaseSinkClass.members"></a><h4>Members</h4>
-<div class="informaltable"><table class="informaltable" width="100%" border="0">
-<colgroup>
-<col width="300px" class="struct_members_name">
-<col class="struct_members_description">
-<col width="200px" class="struct_members_annotations">
-</colgroup>
-<tbody>
-<tr>
-<td class="struct_member_name"><p><em class="structfield"><code><a name="GstAudioBaseSinkClass.create-ringbuffer"></a>create_ringbuffer</code></em> ()</p></td>
-<td class="struct_member_description"><p>create and return a <a class="link" href="gst-plugins-base-libs-gstaudioringbuffer.html#GstAudioRingBuffer"><span class="type">GstAudioRingBuffer</span></a> to write to.</p></td>
-<td class="struct_member_annotations"> </td>
-</tr>
-<tr>
-<td class="struct_member_name"><p><em class="structfield"><code><a name="GstAudioBaseSinkClass.payload"></a>payload</code></em> ()</p></td>
-<td class="struct_member_description"><p>payload data in a format suitable to write to the sink. If no
-payloading is required, returns a reffed copy of the original
-buffer, else returns the payloaded buffer with all other metadata
-copied.</p></td>
-<td class="struct_member_annotations"> </td>
-</tr>
-</tbody>
-</table></div>
-</div>
 </div>
 <hr>
 <div class="refsect2">
 <a name="GstAudioBaseSinkSlaveMethod"></a><h3>enum GstAudioBaseSinkSlaveMethod</h3>
-<p>Different possible clock slaving algorithms used when the internal audio
-clock is not selected as the pipeline master clock.</p>
 <div class="refsect3">
 <a name="GstAudioBaseSinkSlaveMethod.members"></a><h4>Members</h4>
 <div class="informaltable"><table class="informaltable" width="100%" border="0">
@@ -870,32 +419,23 @@
 <tbody>
 <tr>
 <td class="enum_member_name"><p><a name="GST-AUDIO-BASE-SINK-SLAVE-RESAMPLE:CAPS"></a>GST_AUDIO_BASE_SINK_SLAVE_RESAMPLE</p></td>
-<td class="enum_member_description">
-<p>Resample to match the master clock</p>
-</td>
-<td class="enum_member_annotations"> </td>
+<td> </td>
+<td> </td>
 </tr>
 <tr>
 <td class="enum_member_name"><p><a name="GST-AUDIO-BASE-SINK-SLAVE-SKEW:CAPS"></a>GST_AUDIO_BASE_SINK_SLAVE_SKEW</p></td>
-<td class="enum_member_description">
-<p>Adjust playout pointer when master clock
-drifts too much.</p>
-</td>
-<td class="enum_member_annotations"> </td>
+<td> </td>
+<td> </td>
 </tr>
 <tr>
 <td class="enum_member_name"><p><a name="GST-AUDIO-BASE-SINK-SLAVE-NONE:CAPS"></a>GST_AUDIO_BASE_SINK_SLAVE_NONE</p></td>
-<td class="enum_member_description">
-<p>No adjustment is done.</p>
-</td>
-<td class="enum_member_annotations"> </td>
+<td> </td>
+<td> </td>
 </tr>
 <tr>
 <td class="enum_member_name"><p><a name="GST-AUDIO-BASE-SINK-SLAVE-CUSTOM:CAPS"></a>GST_AUDIO_BASE_SINK_SLAVE_CUSTOM</p></td>
-<td class="enum_member_description">
-<p>Use custom clock slaving algorithm (Since: 1.6)</p>
-</td>
-<td class="enum_member_annotations"> </td>
+<td> </td>
+<td> </td>
 </tr>
 </tbody>
 </table></div>
@@ -904,8 +444,6 @@
 <hr>
 <div class="refsect2">
 <a name="GstAudioBaseSinkDiscontReason"></a><h3>enum GstAudioBaseSinkDiscontReason</h3>
-<p>Different possible reasons for discontinuities. This enum is useful for the custom
-slave method.</p>
 <div class="refsect3">
 <a name="GstAudioBaseSinkDiscontReason.members"></a><h4>Members</h4>
 <div class="informaltable"><table class="informaltable" width="100%" border="0">
@@ -917,51 +455,37 @@
 <tbody>
 <tr>
 <td class="enum_member_name"><p><a name="GST-AUDIO-BASE-SINK-DISCONT-REASON-NO-DISCONT:CAPS"></a>GST_AUDIO_BASE_SINK_DISCONT_REASON_NO_DISCONT</p></td>
-<td class="enum_member_description">
-<p>No discontinuity occurred</p>
-</td>
-<td class="enum_member_annotations"> </td>
+<td> </td>
+<td> </td>
 </tr>
 <tr>
 <td class="enum_member_name"><p><a name="GST-AUDIO-BASE-SINK-DISCONT-REASON-NEW-CAPS"></a>GST_AUDIO_BASE_SINK_DISCONT_REASON_NEW_CAPS</p></td>
-<td class="enum_member_description">
-<p>New caps are set, causing renegotiotion</p>
-</td>
-<td class="enum_member_annotations"> </td>
+<td> </td>
+<td> </td>
 </tr>
 <tr>
 <td class="enum_member_name"><p><a name="GST-AUDIO-BASE-SINK-DISCONT-REASON-FLUSH:CAPS"></a>GST_AUDIO_BASE_SINK_DISCONT_REASON_FLUSH</p></td>
-<td class="enum_member_description">
-<p>Samples have been flushed</p>
-</td>
-<td class="enum_member_annotations"> </td>
+<td> </td>
+<td> </td>
 </tr>
 <tr>
 <td class="enum_member_name"><p><a name="GST-AUDIO-BASE-SINK-DISCONT-REASON-SYNC-LATENCY:CAPS"></a>GST_AUDIO_BASE_SINK_DISCONT_REASON_SYNC_LATENCY</p></td>
-<td class="enum_member_description">
-<p>Sink was synchronized to the estimated latency (occurs during initialization)</p>
-</td>
-<td class="enum_member_annotations"> </td>
+<td> </td>
+<td> </td>
 </tr>
 <tr>
 <td class="enum_member_name"><p><a name="GST-AUDIO-BASE-SINK-DISCONT-REASON-ALIGNMENT:CAPS"></a>GST_AUDIO_BASE_SINK_DISCONT_REASON_ALIGNMENT</p></td>
-<td class="enum_member_description">
-<p>Aligning buffers failed because the timestamps are too discontinuous</p>
-</td>
-<td class="enum_member_annotations"> </td>
+<td> </td>
+<td> </td>
 </tr>
 <tr>
 <td class="enum_member_name"><p><a name="GST-AUDIO-BASE-SINK-DISCONT-REASON-DEVICE-FAILURE:CAPS"></a>GST_AUDIO_BASE_SINK_DISCONT_REASON_DEVICE_FAILURE</p></td>
-<td class="enum_member_description">
-<p>Audio output device experienced and recovered from an error but introduced latency in the process (see also <em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstaudiobasesink.html#gst-audio-base-sink-report-device-failure" title="gst_audio_base_sink_report_device_failure ()"><code class="function">gst_audio_base_sink_report_device_failure()</code></a></code></em>
-)</p>
-</td>
-<td class="enum_member_annotations"> </td>
+<td> </td>
+<td> </td>
 </tr>
 </tbody>
 </table></div>
 </div>
-<p class="since">Since: 1.6</p>
 </div>
 </div>
 <div class="refsect1">
@@ -995,8 +519,7 @@
 <div class="refsect2">
 <a name="GstAudioBaseSink--discont-wait"></a><h3>The <code class="literal">“discont-wait”</code> property</h3>
 <pre class="programlisting">  “discont-wait”             <a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#guint64"><span class="type">guint64</span></a></pre>
-<p>A window of time in nanoseconds to wait before creating a discontinuity as
-a result of breaching the drift-tolerance.</p>
+<p>Window of time in nanoseconds to wait before creating a discontinuity.</p>
 <p>Flags: Read / Write</p>
 <p>Allowed values: &lt;= 18446744073709551614</p>
 <p>Default value: 1000000000</p>
@@ -1005,8 +528,7 @@
 <div class="refsect2">
 <a name="GstAudioBaseSink--drift-tolerance"></a><h3>The <code class="literal">“drift-tolerance”</code> property</h3>
 <pre class="programlisting">  “drift-tolerance”          <a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#gint64"><span class="type">gint64</span></a></pre>
-<p>Controls the amount of time in microseconds that clocks are allowed
-to drift before resynchronisation happens.</p>
+<p>Tolerance for clock drift in microseconds.</p>
 <p>Flags: Read / Write</p>
 <p>Allowed values: &gt;= 1</p>
 <p>Default value: 40000</p>
@@ -1037,10 +559,6 @@
 <p>Default value: GST_AUDIO_BASE_SINK_SLAVE_SKEW</p>
 </div>
 </div>
-<div class="refsect1">
-<a name="gst-plugins-base-libs-gstaudiobasesink.see-also"></a><h2>See Also</h2>
-<p><a class="link" href="gst-plugins-base-libs-gstaudiosink.html#GstAudioSink"><span class="type">GstAudioSink</span></a>, <a class="link" href="gst-plugins-base-libs-gstaudioringbuffer.html#GstAudioRingBuffer"><span class="type">GstAudioRingBuffer</span></a>.</p>
-</div>
 </div>
 <div class="footer">
 <hr>Generated by GTK-Doc V1.25</div>
diff --git a/docs/libs/html/gst-plugins-base-libs-gstaudiobasesrc.html b/docs/libs/html/gst-plugins-base-libs-gstaudiobasesrc.html
index 727fa91..814b486 100644
--- a/docs/libs/html/gst-plugins-base-libs-gstaudiobasesrc.html
+++ b/docs/libs/html/gst-plugins-base-libs-gstaudiobasesrc.html
@@ -29,7 +29,7 @@
 <div class="refnamediv"><table width="100%"><tr>
 <td valign="top">
 <h2><span class="refentrytitle"><a name="gst-plugins-base-libs-gstaudiobasesrc.top_of_page"></a>gstaudiobasesrc</span></h2>
-<p>gstaudiobasesrc — Base class for audio sources</p>
+<p>gstaudiobasesrc</p>
 </td>
 <td class="gallery_image" valign="top" align="right"></td>
 </tr></table></div>
@@ -180,9 +180,6 @@
 </div>
 <div class="refsect1">
 <a name="gst-plugins-base-libs-gstaudiobasesrc.description"></a><h2>Description</h2>
-<p>This is the base class for audio sources. Subclasses need to implement the
-::create_ringbuffer vmethod. This base class will then take care of
-reading samples from the ringbuffer, synchronisation and flushing.</p>
 </div>
 <div class="refsect1">
 <a name="gst-plugins-base-libs-gstaudiobasesrc.functions_details"></a><h2>Functions</h2>
@@ -190,78 +187,18 @@
 <a name="GST-AUDIO-BASE-SRC-CLOCK:CAPS"></a><h3>GST_AUDIO_BASE_SRC_CLOCK()</h3>
 <pre class="programlisting">#define GST_AUDIO_BASE_SRC_CLOCK(obj)    (GST_AUDIO_BASE_SRC (obj)-&gt;clock)
 </pre>
-<p>Get the <a href="/usr/share/gtk-doc/html/gstreamer-1.0GstClock.html#GstClock-struct"><span class="type">GstClock</span></a> of <em class="parameter"><code>obj</code></em>
-.</p>
-<div class="refsect3">
-<a name="GST-AUDIO-BASE-SRC-CLOCK.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>obj</p></td>
-<td class="parameter_description"><p>a <a class="link" href="gst-plugins-base-libs-gstaudiobasesrc.html#GstAudioBaseSrc"><span class="type">GstAudioBaseSrc</span></a></p></td>
-<td class="parameter_annotations"> </td>
-</tr></tbody>
-</table></div>
-</div>
 </div>
 <hr>
 <div class="refsect2">
 <a name="GST-AUDIO-BASE-SRC-PAD:CAPS"></a><h3>GST_AUDIO_BASE_SRC_PAD()</h3>
 <pre class="programlisting">#define GST_AUDIO_BASE_SRC_PAD(obj)      (GST_BASE_SRC (obj)-&gt;srcpad)
 </pre>
-<p>Get the source <a href="/usr/share/gtk-doc/html/gstreamer-1.0GstPad.html#GstPad-struct"><span class="type">GstPad</span></a> of <em class="parameter"><code>obj</code></em>
-.</p>
-<div class="refsect3">
-<a name="GST-AUDIO-BASE-SRC-PAD.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>obj</p></td>
-<td class="parameter_description"><p>a <a class="link" href="gst-plugins-base-libs-gstaudiobasesrc.html#GstAudioBaseSrc"><span class="type">GstAudioBaseSrc</span></a></p></td>
-<td class="parameter_annotations"> </td>
-</tr></tbody>
-</table></div>
-</div>
 </div>
 <hr>
 <div class="refsect2">
 <a name="gst-audio-base-src-create-ringbuffer"></a><h3>gst_audio_base_src_create_ringbuffer ()</h3>
 <pre class="programlisting"><a class="link" href="gst-plugins-base-libs-gstaudioringbuffer.html#GstAudioRingBuffer"><span class="returnvalue">GstAudioRingBuffer</span></a> *
 gst_audio_base_src_create_ringbuffer (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstaudiobasesrc.html#GstAudioBaseSrc"><span class="type">GstAudioBaseSrc</span></a> *src</code></em>);</pre>
-<p>Create and return the <a class="link" href="gst-plugins-base-libs-gstaudioringbuffer.html#GstAudioRingBuffer"><span class="type">GstAudioRingBuffer</span></a> for <em class="parameter"><code>src</code></em>
-. This function will call
-the ::create_ringbuffer vmethod and will set <em class="parameter"><code>src</code></em>
- as the parent of the
-returned buffer (see <a href="/usr/share/gtk-doc/html/gstreamer-1.0GstObject.html#gst-object-set-parent"><code class="function">gst_object_set_parent()</code></a>).</p>
-<div class="refsect3">
-<a name="gst-audio-base-src-create-ringbuffer.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>src</p></td>
-<td class="parameter_description"><p>a <a class="link" href="gst-plugins-base-libs-gstaudiobasesrc.html#GstAudioBaseSrc"><span class="type">GstAudioBaseSrc</span></a>.</p></td>
-<td class="parameter_annotations"> </td>
-</tr></tbody>
-</table></div>
-</div>
-<div class="refsect3">
-<a name="gst-audio-base-src-create-ringbuffer.returns"></a><h4>Returns</h4>
-<p> The new ringbuffer of <em class="parameter"><code>src</code></em>
-. </p>
-<p><span class="annotation">[<acronym title="Don't free data after the code is done."><span class="acronym">transfer none</span></acronym>]</span></p>
-</div>
 </div>
 <hr>
 <div class="refsect2">
@@ -269,92 +206,18 @@
 <pre class="programlisting"><span class="returnvalue">void</span>
 gst_audio_base_src_set_provide_clock (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstaudiobasesrc.html#GstAudioBaseSrc"><span class="type">GstAudioBaseSrc</span></a> *src</code></em>,
                                       <em class="parameter"><code><a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a> provide</code></em>);</pre>
-<p>Controls whether <em class="parameter"><code>src</code></em>
- will provide a clock or not. If <em class="parameter"><code>provide</code></em>
- is <a href="/usr/share/gtk-doc/html/glibglib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a>,
-<a href="/usr/share/gtk-doc/html/gstreamer-1.0GstElement.html#gst-element-provide-clock"><code class="function">gst_element_provide_clock()</code></a> will return a clock that reflects the datarate
-of <em class="parameter"><code>src</code></em>
-. If <em class="parameter"><code>provide</code></em>
- is <a href="/usr/share/gtk-doc/html/glibglib-Standard-Macros.html#FALSE:CAPS"><code class="literal">FALSE</code></a>, <a href="/usr/share/gtk-doc/html/gstreamer-1.0GstElement.html#gst-element-provide-clock"><code class="function">gst_element_provide_clock()</code></a> will return NULL.</p>
-<div class="refsect3">
-<a name="gst-audio-base-src-set-provide-clock.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>src</p></td>
-<td class="parameter_description"><p>a <a class="link" href="gst-plugins-base-libs-gstaudiobasesrc.html#GstAudioBaseSrc"><span class="type">GstAudioBaseSrc</span></a></p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-<tr>
-<td class="parameter_name"><p>provide</p></td>
-<td class="parameter_description"><p>new state</p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-</tbody>
-</table></div>
-</div>
 </div>
 <hr>
 <div class="refsect2">
 <a name="gst-audio-base-src-get-provide-clock"></a><h3>gst_audio_base_src_get_provide_clock ()</h3>
 <pre class="programlisting"><a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
 gst_audio_base_src_get_provide_clock (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstaudiobasesrc.html#GstAudioBaseSrc"><span class="type">GstAudioBaseSrc</span></a> *src</code></em>);</pre>
-<p>Queries whether <em class="parameter"><code>src</code></em>
- will provide a clock or not. See also
-gst_audio_base_src_set_provide_clock.</p>
-<div class="refsect3">
-<a name="gst-audio-base-src-get-provide-clock.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>src</p></td>
-<td class="parameter_description"><p>a <a class="link" href="gst-plugins-base-libs-gstaudiobasesrc.html#GstAudioBaseSrc"><span class="type">GstAudioBaseSrc</span></a></p></td>
-<td class="parameter_annotations"> </td>
-</tr></tbody>
-</table></div>
-</div>
-<div class="refsect3">
-<a name="gst-audio-base-src-get-provide-clock.returns"></a><h4>Returns</h4>
-<p> <a href="/usr/share/gtk-doc/html/glibglib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a> if <em class="parameter"><code>src</code></em>
-will provide a clock.</p>
-</div>
 </div>
 <hr>
 <div class="refsect2">
 <a name="gst-audio-base-src-get-slave-method"></a><h3>gst_audio_base_src_get_slave_method ()</h3>
 <pre class="programlisting"><a class="link" href="gst-plugins-base-libs-gstaudiobasesrc.html#GstAudioBaseSrcSlaveMethod" title="enum GstAudioBaseSrcSlaveMethod"><span class="returnvalue">GstAudioBaseSrcSlaveMethod</span></a>
 gst_audio_base_src_get_slave_method (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstaudiobasesrc.html#GstAudioBaseSrc"><span class="type">GstAudioBaseSrc</span></a> *src</code></em>);</pre>
-<p>Get the current slave method used by <em class="parameter"><code>src</code></em>
-.</p>
-<div class="refsect3">
-<a name="gst-audio-base-src-get-slave-method.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>src</p></td>
-<td class="parameter_description"><p>a <a class="link" href="gst-plugins-base-libs-gstaudiobasesrc.html#GstAudioBaseSrc"><span class="type">GstAudioBaseSrc</span></a></p></td>
-<td class="parameter_annotations"> </td>
-</tr></tbody>
-</table></div>
-</div>
-<div class="refsect3">
-<a name="gst-audio-base-src-get-slave-method.returns"></a><h4>Returns</h4>
-<p> The current slave method used by <em class="parameter"><code>src</code></em>
-.</p>
-</div>
 </div>
 <hr>
 <div class="refsect2">
@@ -362,30 +225,6 @@
 <pre class="programlisting"><span class="returnvalue">void</span>
 gst_audio_base_src_set_slave_method (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstaudiobasesrc.html#GstAudioBaseSrc"><span class="type">GstAudioBaseSrc</span></a> *src</code></em>,
                                      <em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstaudiobasesrc.html#GstAudioBaseSrcSlaveMethod" title="enum GstAudioBaseSrcSlaveMethod"><span class="type">GstAudioBaseSrcSlaveMethod</span></a> method</code></em>);</pre>
-<p>Controls how clock slaving will be performed in <em class="parameter"><code>src</code></em>
-.</p>
-<div class="refsect3">
-<a name="gst-audio-base-src-set-slave-method.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>src</p></td>
-<td class="parameter_description"><p>a <a class="link" href="gst-plugins-base-libs-gstaudiobasesrc.html#GstAudioBaseSrc"><span class="type">GstAudioBaseSrc</span></a></p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-<tr>
-<td class="parameter_name"><p>method</p></td>
-<td class="parameter_description"><p>the new slave method</p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-</tbody>
-</table></div>
-</div>
 </div>
 </div>
 <div class="refsect1">
@@ -393,7 +232,6 @@
 <div class="refsect2">
 <a name="GstAudioBaseSrc-struct"></a><h3>struct GstAudioBaseSrc</h3>
 <pre class="programlisting">struct GstAudioBaseSrc;</pre>
-<p>Opaque <a class="link" href="gst-plugins-base-libs-gstaudiobasesrc.html#GstAudioBaseSrc"><span class="type">GstAudioBaseSrc</span></a>.</p>
 </div>
 <hr>
 <div class="refsect2">
@@ -405,29 +243,10 @@
   GstAudioRingBuffer* (*create_ringbuffer)  (GstAudioBaseSrc *src);
 };
 </pre>
-<p><a class="link" href="gst-plugins-base-libs-gstaudiobasesrc.html#GstAudioBaseSrc"><span class="type">GstAudioBaseSrc</span></a> class. Override the vmethod to implement
-functionality.</p>
-<div class="refsect3">
-<a name="GstAudioBaseSrcClass.members"></a><h4>Members</h4>
-<div class="informaltable"><table class="informaltable" width="100%" border="0">
-<colgroup>
-<col width="300px" class="struct_members_name">
-<col class="struct_members_description">
-<col width="200px" class="struct_members_annotations">
-</colgroup>
-<tbody><tr>
-<td class="struct_member_name"><p><em class="structfield"><code><a name="GstAudioBaseSrcClass.create-ringbuffer"></a>create_ringbuffer</code></em> ()</p></td>
-<td class="struct_member_description"><p>create and return a <a class="link" href="gst-plugins-base-libs-gstaudioringbuffer.html#GstAudioRingBuffer"><span class="type">GstAudioRingBuffer</span></a> to read from.</p></td>
-<td class="struct_member_annotations"> </td>
-</tr></tbody>
-</table></div>
-</div>
 </div>
 <hr>
 <div class="refsect2">
 <a name="GstAudioBaseSrcSlaveMethod"></a><h3>enum GstAudioBaseSrcSlaveMethod</h3>
-<p>Different possible clock slaving algorithms when the internal audio clock was
-not selected as the pipeline clock.</p>
 <div class="refsect3">
 <a name="GstAudioBaseSrcSlaveMethod.members"></a><h4>Members</h4>
 <div class="informaltable"><table class="informaltable" width="100%" border="0">
@@ -439,33 +258,23 @@
 <tbody>
 <tr>
 <td class="enum_member_name"><p><a name="GST-AUDIO-BASE-SRC-SLAVE-RESAMPLE:CAPS"></a>GST_AUDIO_BASE_SRC_SLAVE_RESAMPLE</p></td>
-<td class="enum_member_description">
-<p>Resample to match the master clock.</p>
-</td>
-<td class="enum_member_annotations"> </td>
+<td> </td>
+<td> </td>
 </tr>
 <tr>
 <td class="enum_member_name"><p><a name="GST-AUDIO-BASE-SRC-SLAVE-RETIMESTAMP:CAPS"></a>GST_AUDIO_BASE_SRC_SLAVE_RETIMESTAMP</p></td>
-<td class="enum_member_description">
-<p>Retimestamp output buffers with master
-clock time.</p>
-</td>
-<td class="enum_member_annotations"> </td>
+<td> </td>
+<td> </td>
 </tr>
 <tr>
 <td class="enum_member_name"><p><a name="GST-AUDIO-BASE-SRC-SLAVE-SKEW:CAPS"></a>GST_AUDIO_BASE_SRC_SLAVE_SKEW</p></td>
-<td class="enum_member_description">
-<p>Adjust capture pointer when master clock
-drifts too much.</p>
-</td>
-<td class="enum_member_annotations"> </td>
+<td> </td>
+<td> </td>
 </tr>
 <tr>
 <td class="enum_member_name"><p><a name="GST-AUDIO-BASE-SRC-SLAVE-NONE:CAPS"></a>GST_AUDIO_BASE_SRC_SLAVE_NONE</p></td>
-<td class="enum_member_description">
-<p>No adjustment is done.</p>
-</td>
-<td class="enum_member_annotations"> </td>
+<td> </td>
+<td> </td>
 </tr>
 </tbody>
 </table></div>
@@ -526,10 +335,6 @@
 <p>Default value: GST_AUDIO_BASE_SRC_SLAVE_SKEW</p>
 </div>
 </div>
-<div class="refsect1">
-<a name="gst-plugins-base-libs-gstaudiobasesrc.see-also"></a><h2>See Also</h2>
-<p><a class="link" href="gst-plugins-base-libs-gstaudiosrc.html#GstAudioSrc"><span class="type">GstAudioSrc</span></a>, <a class="link" href="gst-plugins-base-libs-gstaudioringbuffer.html#GstAudioRingBuffer"><span class="type">GstAudioRingBuffer</span></a>.</p>
-</div>
 </div>
 <div class="footer">
 <hr>Generated by GTK-Doc V1.25</div>
diff --git a/docs/libs/html/gst-plugins-base-libs-gstaudiocdsrc.html b/docs/libs/html/gst-plugins-base-libs-gstaudiocdsrc.html
index b9a9f94..5d78439 100644
--- a/docs/libs/html/gst-plugins-base-libs-gstaudiocdsrc.html
+++ b/docs/libs/html/gst-plugins-base-libs-gstaudiocdsrc.html
@@ -30,7 +30,7 @@
 <div class="refnamediv"><table width="100%"><tr>
 <td valign="top">
 <h2><span class="refentrytitle"><a name="gst-plugins-base-libs-gstaudiocdsrc.top_of_page"></a>gstaudiocdsrc</span></h2>
-<p>gstaudiocdsrc — Base class for Audio CD sources</p>
+<p>gstaudiocdsrc</p>
 </td>
 <td class="gallery_image" valign="top" align="right"></td>
 </tr></table></div>
@@ -130,59 +130,6 @@
 </div>
 <div class="refsect1">
 <a name="gst-plugins-base-libs-gstaudiocdsrc.description"></a><h2>Description</h2>
-<p>
-Provides a base class for CD digital audio (CDDA) sources, which handles
-things like seeking, querying, discid calculation, tags, and buffer
-timestamping.
-</p>
-<div class="refsect2">
-<a name="id-1.2.6.5.10.3"></a><h3>Using GstAudioCdSrc-based elements in applications</h3>
-<p>
-GstAudioCdSrc registers two <a href="/usr/share/gtk-doc/html/gstreamer-1.0gstreamer-GstFormat.html#GstFormat"><span class="type">GstFormat</span></a>s of its own, namely
-the "track" format and the "sector" format. Applications will usually
-only find the "track" format interesting. You can retrieve that <a href="/usr/share/gtk-doc/html/gstreamer-1.0gstreamer-GstFormat.html#GstFormat"><span class="type">GstFormat</span></a>
-for use in seek events or queries with gst_format_get_by_nick("track").
-</p>
-<p>
-In order to query the number of tracks, for example, an application would
-set the CDDA source element to READY or PAUSED state and then query the
-the number of tracks via <a href="/usr/share/gtk-doc/html/gstreamer-1.0GstElement.html#gst-element-query-duration"><code class="function">gst_element_query_duration()</code></a> using the track
-format acquired above. Applications can query the currently playing track
-in the same way.
-</p>
-<p>
-Alternatively, applications may retrieve the currently playing track and
-the total number of tracks from the taglist that will posted on the bus
-whenever the CD is opened or the currently playing track changes. The
-taglist will contain GST_TAG_TRACK_NUMBER and GST_TAG_TRACK_COUNT tags.
-</p>
-<p>
-Applications playing back CD audio using playbin and cdda://n URIs should
-issue a seek command in track format to change between tracks, rather than
-setting a new cdda://n+1 URI on playbin (as setting a new URI on playbin
-involves closing and re-opening the CD device, which is much much slower).
-</p>
-<div class="refsect2"><a name="id-1.2.6.5.10.3.6"></a></div>
-<p>
-CDDA sources will automatically emit a number of tags, details about which
-can be found in the libgsttag documentation. Those tags are:
-<a class="link" href="gst-plugins-base-libs-gsttag.html#GST-TAG-CDDA-CDDB-DISCID:CAPS" title="GST_TAG_CDDA_CDDB_DISCID"><span class="type">GST_TAG_CDDA_CDDB_DISCID</span></a>, <a class="link" href="gst-plugins-base-libs-gsttag.html#GST-TAG-CDDA-CDDB-DISCID-FULL:CAPS" title="GST_TAG_CDDA_CDDB_DISCID_FULL"><span class="type">GST_TAG_CDDA_CDDB_DISCID_FULL</span></a>,
-<a class="link" href="gst-plugins-base-libs-gsttag.html#GST-TAG-CDDA-MUSICBRAINZ-DISCID:CAPS" title="GST_TAG_CDDA_MUSICBRAINZ_DISCID"><span class="type">GST_TAG_CDDA_MUSICBRAINZ_DISCID</span></a>, <a class="link" href="gst-plugins-base-libs-gsttag.html#GST-TAG-CDDA-MUSICBRAINZ-DISCID-FULL:CAPS" title="GST_TAG_CDDA_MUSICBRAINZ_DISCID_FULL"><span class="type">GST_TAG_CDDA_MUSICBRAINZ_DISCID_FULL</span></a>,
-among others.
-</p>
-</div>
-<hr>
-<div class="refsect2">
-<a name="id-1.2.6.5.10.4"></a><h3>Tracks and Table of Contents (TOC)</h3>
-<p>
-Applications will be informed of the available tracks via a TOC message
-on the pipeline's <a href="/usr/share/gtk-doc/html/gstreamer-1.0GstBus.html#GstBus-struct"><span class="type">GstBus</span></a>. The <a href="/usr/share/gtk-doc/html/gstreamer-1.0GstToc.html#GstToc-struct"><span class="type">GstToc</span></a> will contain a <a href="/usr/share/gtk-doc/html/gstreamer-1.0GstToc.html#GstTocEntry-struct"><span class="type">GstTocEntry</span></a> for
-each track, with information about each track. The duration for each
-track can be retrieved via the <a href="/usr/share/gtk-doc/html/gstreamer-1.0GstTagList.html#GST-TAG-DURATION:CAPS"><span class="type">GST_TAG_DURATION</span></a> tag from each entry's
-tag list, or calculated via <a href="/usr/share/gtk-doc/html/gstreamer-1.0GstToc.html#gst-toc-entry-get-start-stop-times"><code class="function">gst_toc_entry_get_start_stop_times()</code></a>.
-The track entries in the TOC will be sorted by track number.
-</p>
-</div>
 </div>
 <div class="refsect1">
 <a name="gst-plugins-base-libs-gstaudiocdsrc.functions_details"></a><h2>Functions</h2>
@@ -191,37 +138,6 @@
 <pre class="programlisting"><a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
 gst_audio_cd_src_add_track (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstaudiocdsrc.html#GstAudioCdSrc"><span class="type">GstAudioCdSrc</span></a> *src</code></em>,
                             <em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstaudiocdsrc.html#GstAudioCdSrcTrack" title="struct GstAudioCdSrcTrack"><span class="type">GstAudioCdSrcTrack</span></a> *track</code></em>);</pre>
-<p>CDDA sources use this function from their start vfunc to announce the
-available data and audio tracks to the base source class. The caller
-should allocate <em class="parameter"><code>track</code></em>
- on the stack, the base source will do a shallow
-copy of the structure (and take ownership of the taglist if there is one).</p>
-<div class="refsect3">
-<a name="gst-audio-cd-src-add-track.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>src</p></td>
-<td class="parameter_description"><p>a <a class="link" href="gst-plugins-base-libs-gstaudiocdsrc.html#GstAudioCdSrc"><span class="type">GstAudioCdSrc</span></a></p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-<tr>
-<td class="parameter_name"><p>track</p></td>
-<td class="parameter_description"><p>address of <a class="link" href="gst-plugins-base-libs-gstaudiocdsrc.html#GstAudioCdSrcTrack" title="struct GstAudioCdSrcTrack"><span class="type">GstAudioCdSrcTrack</span></a> to add</p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-</tbody>
-</table></div>
-</div>
-<div class="refsect3">
-<a name="gst-audio-cd-src-add-track.returns"></a><h4>Returns</h4>
-<p> FALSE on error, otherwise TRUE.</p>
-</div>
 </div>
 </div>
 <div class="refsect1">
@@ -253,49 +169,6 @@
 #endif
 };
 </pre>
-<p>Audio CD source base class.</p>
-<div class="refsect3">
-<a name="GstAudioCdSrcClass.members"></a><h4>Members</h4>
-<div class="informaltable"><table class="informaltable" width="100%" border="0">
-<colgroup>
-<col width="300px" class="struct_members_name">
-<col class="struct_members_description">
-<col width="200px" class="struct_members_annotations">
-</colgroup>
-<tbody>
-<tr>
-<td class="struct_member_name"><p><a href="/usr/share/gtk-doc/html/gstreamer-libs-1.0GstPushSrc.html#GstPushSrcClass"><span class="type">GstPushSrcClass</span></a> <em class="structfield"><code><a name="GstAudioCdSrcClass.pushsrc-class"></a>pushsrc_class</code></em>;</p></td>
-<td class="struct_member_description"><p>the parent class</p></td>
-<td class="struct_member_annotations"> </td>
-</tr>
-<tr>
-<td class="struct_member_name"><p><em class="structfield"><code><a name="GstAudioCdSrcClass.open"></a>open</code></em> ()</p></td>
-<td class="struct_member_description"><p>opening the device</p></td>
-<td class="struct_member_annotations"> </td>
-</tr>
-<tr>
-<td class="struct_member_name"><p><em class="structfield"><code><a name="GstAudioCdSrcClass.close"></a>close</code></em> ()</p></td>
-<td class="struct_member_description"><p>closing the device</p></td>
-<td class="struct_member_annotations"> </td>
-</tr>
-<tr>
-<td class="struct_member_name"><p><em class="structfield"><code><a name="GstAudioCdSrcClass.read-sector"></a>read_sector</code></em> ()</p></td>
-<td class="struct_member_description"><p>reading a sector</p></td>
-<td class="struct_member_annotations"> </td>
-</tr>
-<tr>
-<td class="struct_member_name"><p><em class="structfield"><code><a name="GstAudioCdSrcClass.get-default-device"></a>get_default_device</code></em> ()</p></td>
-<td class="struct_member_description"><p>getting the default device</p></td>
-<td class="struct_member_annotations"> </td>
-</tr>
-<tr>
-<td class="struct_member_name"><p><em class="structfield"><code><a name="GstAudioCdSrcClass.probe-devices"></a>probe_devices</code></em> ()</p></td>
-<td class="struct_member_description"><p>probing possible devices</p></td>
-<td class="struct_member_annotations"> </td>
-</tr>
-</tbody>
-</table></div>
-</div>
 </div>
 <hr>
 <div class="refsect2">
@@ -308,54 +181,10 @@
   GstTagList  *tags;          /* NULL or tags for track (e.g. from cd-text) */
 };
 </pre>
-<p>CD track abstraction to communicate TOC entries to the base class.</p>
-<p>This structure is only for use by sub-classed in connection with
-<a class="link" href="gst-plugins-base-libs-gstaudiocdsrc.html#gst-audio-cd-src-add-track" title="gst_audio_cd_src_add_track ()"><code class="function">gst_audio_cd_src_add_track()</code></a>.</p>
-<p>Applications will be informed of the available tracks via a TOC message
-on the pipeline's <a href="/usr/share/gtk-doc/html/gstreamer-1.0GstBus.html#GstBus-struct"><span class="type">GstBus</span></a> instead.</p>
-<div class="refsect3">
-<a name="GstAudioCdSrcTrack.members"></a><h4>Members</h4>
-<div class="informaltable"><table class="informaltable" width="100%" border="0">
-<colgroup>
-<col width="300px" class="struct_members_name">
-<col class="struct_members_description">
-<col width="200px" class="struct_members_annotations">
-</colgroup>
-<tbody>
-<tr>
-<td class="struct_member_name"><p><a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a> <em class="structfield"><code><a name="GstAudioCdSrcTrack.is-audio"></a>is_audio</code></em>;</p></td>
-<td class="struct_member_description"><p>Whether this is an audio track</p></td>
-<td class="struct_member_annotations"> </td>
-</tr>
-<tr>
-<td class="struct_member_name"><p><a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#guint"><span class="type">guint</span></a> <em class="structfield"><code><a name="GstAudioCdSrcTrack.num"></a>num</code></em>;</p></td>
-<td class="struct_member_description"><p>Track number in TOC (usually starts from 1, but not always)</p></td>
-<td class="struct_member_annotations"> </td>
-</tr>
-<tr>
-<td class="struct_member_name"><p><a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#guint"><span class="type">guint</span></a> <em class="structfield"><code><a name="GstAudioCdSrcTrack.start"></a>start</code></em>;</p></td>
-<td class="struct_member_description"><p>The first sector of this track (LBA)</p></td>
-<td class="struct_member_annotations"> </td>
-</tr>
-<tr>
-<td class="struct_member_name"><p><a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#guint"><span class="type">guint</span></a> <em class="structfield"><code><a name="GstAudioCdSrcTrack.end"></a>end</code></em>;</p></td>
-<td class="struct_member_description"><p>The last sector of this track (LBA)</p></td>
-<td class="struct_member_annotations"> </td>
-</tr>
-<tr>
-<td class="struct_member_name"><p><a href="/usr/share/gtk-doc/html/gstreamer-1.0GstTagList.html#GstTagList-struct"><span class="type">GstTagList</span></a> *<em class="structfield"><code><a name="GstAudioCdSrcTrack.tags"></a>tags</code></em>;</p></td>
-<td class="struct_member_description"><p>Track-specific tags (e.g. from cd-text information), or NULL</p></td>
-<td class="struct_member_annotations"> </td>
-</tr>
-</tbody>
-</table></div>
-</div>
 </div>
 <hr>
 <div class="refsect2">
 <a name="GstAudioCdSrcMode"></a><h3>enum GstAudioCdSrcMode</h3>
-<p>Mode in which the CD audio source operates. Influences timestamping,
-EOS handling and seeking.</p>
 <div class="refsect3">
 <a name="GstAudioCdSrcMode.members"></a><h4>Members</h4>
 <div class="informaltable"><table class="informaltable" width="100%" border="0">
@@ -367,17 +196,13 @@
 <tbody>
 <tr>
 <td class="enum_member_name"><p><a name="GST-AUDIO-CD-SRC-MODE-NORMAL:CAPS"></a>GST_AUDIO_CD_SRC_MODE_NORMAL</p></td>
-<td class="enum_member_description">
-<p>each single track is a stream</p>
-</td>
-<td class="enum_member_annotations"> </td>
+<td> </td>
+<td> </td>
 </tr>
 <tr>
 <td class="enum_member_name"><p><a name="GST-AUDIO-CD-SRC-MODE-CONTINUOUS:CAPS"></a>GST_AUDIO_CD_SRC_MODE_CONTINUOUS</p></td>
-<td class="enum_member_description">
-<p>the entire disc is a single stream</p>
-</td>
-<td class="enum_member_annotations"> </td>
+<td> </td>
+<td> </td>
 </tr>
 </tbody>
 </table></div>
diff --git a/docs/libs/html/gst-plugins-base-libs-gstaudiochannels.html b/docs/libs/html/gst-plugins-base-libs-gstaudiochannels.html
index b42a552..65936e5 100644
--- a/docs/libs/html/gst-plugins-base-libs-gstaudiochannels.html
+++ b/docs/libs/html/gst-plugins-base-libs-gstaudiochannels.html
@@ -27,7 +27,7 @@
 <div class="refnamediv"><table width="100%"><tr>
 <td valign="top">
 <h2><span class="refentrytitle"><a name="gst-plugins-base-libs-gstaudiochannels.top_of_page"></a>gstaudiochannels</span></h2>
-<p>gstaudiochannels — Support library for audio channel handling</p>
+<p>gstaudiochannels</p>
 </td>
 <td class="gallery_image" valign="top" align="right"></td>
 </tr></table></div>
@@ -111,6 +111,14 @@
 </tr>
 <tr>
 <td class="function_type">
+<a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> *
+</td>
+<td class="function_name">
+<a class="link" href="gst-plugins-base-libs-gstaudiochannels.html#gst-audio-channel-positions-to-string" title="gst_audio_channel_positions_to_string ()">gst_audio_channel_positions_to_string</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="function_type">
 <a class="link" href="gst-plugins-base-libs-gstaudiochannels.html#GstAudioChannelMixer" title="GstAudioChannelMixer"><span class="returnvalue">GstAudioChannelMixer</span></a> *
 </td>
 <td class="function_name">
@@ -174,7 +182,6 @@
 </div>
 <div class="refsect1">
 <a name="gst-plugins-base-libs-gstaudiochannels.description"></a><h2>Description</h2>
-<p>This library contains some helper functions for multichannel audio.</p>
 </div>
 <div class="refsect1">
 <a name="gst-plugins-base-libs-gstaudiochannels.functions_details"></a><h2>Functions</h2>
@@ -191,48 +198,6 @@
                                      <em class="parameter"><code><a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#gint"><span class="type">gint</span></a> channels</code></em>,
                                      <em class="parameter"><code><a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a> force_order</code></em>,
                                      <em class="parameter"><code><a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#guint64"><span class="type">guint64</span></a> *channel_mask</code></em>);</pre>
-<p>Convert the <em class="parameter"><code>position</code></em>
- array of <em class="parameter"><code>channels</code></em>
- channels to a bitmask.</p>
-<p>If <em class="parameter"><code>force_order</code></em>
- is <a href="/usr/share/gtk-doc/html/glibglib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a> it additionally checks if the channels are
-in the order required by GStreamer.</p>
-<div class="refsect3">
-<a name="gst-audio-channel-positions-to-mask.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>position</p></td>
-<td class="parameter_description"><p> The <a href="gst-plugins-base-libs-gstaudiochannels.html#GstAudioChannelPosition"><code class="literal">GstAudioChannelPositions</code></a>. </p></td>
-<td class="parameter_annotations"><span class="annotation">[<acronym title="Parameter points to an array of items."><span class="acronym">array</span></acronym> length=channels]</span></td>
-</tr>
-<tr>
-<td class="parameter_name"><p>channels</p></td>
-<td class="parameter_description"><p>The number of channels.</p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-<tr>
-<td class="parameter_name"><p>force_order</p></td>
-<td class="parameter_description"><p>Only consider the GStreamer channel order.</p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-<tr>
-<td class="parameter_name"><p>channel_mask</p></td>
-<td class="parameter_description"><p> the output channel mask. </p></td>
-<td class="parameter_annotations"><span class="annotation">[<acronym title="Parameter points to an array of items."><span class="acronym">array</span></acronym>]</span></td>
-</tr>
-</tbody>
-</table></div>
-</div>
-<div class="refsect3">
-<a name="gst-audio-channel-positions-to-mask.returns"></a><h4>Returns</h4>
-<p> <a href="/usr/share/gtk-doc/html/glibglib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a> if the channel positions are valid and could be converted.</p>
-</div>
 </div>
 <hr>
 <div class="refsect2">
@@ -241,50 +206,6 @@
 gst_audio_channel_positions_from_mask (<em class="parameter"><code><a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#gint"><span class="type">gint</span></a> channels</code></em>,
                                        <em class="parameter"><code><a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#guint64"><span class="type">guint64</span></a> channel_mask</code></em>,
                                        <em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstaudiochannels.html#GstAudioChannelPosition" title="enum GstAudioChannelPosition"><span class="type">GstAudioChannelPosition</span></a> *position</code></em>);</pre>
-<p>Convert the <em class="parameter"><code>channels</code></em>
- present in <em class="parameter"><code>channel_mask</code></em>
- to a <em class="parameter"><code>position</code></em>
- array
-(which should have at least <em class="parameter"><code>channels</code></em>
- entries ensured by caller).
-If <em class="parameter"><code>channel_mask</code></em>
- is set to 0, it is considered as 'not present' for purpose
-of conversion.
-A partially valid <em class="parameter"><code>channel_mask</code></em>
- with less bits set than the number
-of channels is considered valid.</p>
-<div class="refsect3">
-<a name="gst-audio-channel-positions-from-mask.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>channels</p></td>
-<td class="parameter_description"><p>The number of channels</p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-<tr>
-<td class="parameter_name"><p>channel_mask</p></td>
-<td class="parameter_description"><p>The input channel_mask</p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-<tr>
-<td class="parameter_name"><p>position</p></td>
-<td class="parameter_description"><p> The
-<a class="link" href="gst-plugins-base-libs-gstaudiochannels.html#GstAudioChannelPosition" title="enum GstAudioChannelPosition"><code class="literal">GstAudioChannelPosition</code></a>s. </p></td>
-<td class="parameter_annotations"><span class="annotation">[<acronym title="Parameter points to an array of items."><span class="acronym">array</span></acronym> length=channels]</span></td>
-</tr>
-</tbody>
-</table></div>
-</div>
-<div class="refsect3">
-<a name="gst-audio-channel-positions-from-mask.returns"></a><h4>Returns</h4>
-<p> <a href="/usr/share/gtk-doc/html/glibglib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a> if channel and channel mask are valid and could be converted</p>
-</div>
 </div>
 <hr>
 <div class="refsect2">
@@ -293,68 +214,12 @@
 gst_audio_channel_positions_to_valid_order
                                (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstaudiochannels.html#GstAudioChannelPosition" title="enum GstAudioChannelPosition"><span class="type">GstAudioChannelPosition</span></a> *position</code></em>,
                                 <em class="parameter"><code><a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#gint"><span class="type">gint</span></a> channels</code></em>);</pre>
-<p>Reorders the channel positions in <em class="parameter"><code>position</code></em>
- from any order to
-the GStreamer channel order.</p>
-<div class="refsect3">
-<a name="gst-audio-channel-positions-to-valid-order.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>position</p></td>
-<td class="parameter_description"><p> The channel positions to
-reorder to. </p></td>
-<td class="parameter_annotations"><span class="annotation">[<acronym title="Parameter points to an array of items."><span class="acronym">array</span></acronym> length=channels]</span></td>
-</tr>
-<tr>
-<td class="parameter_name"><p>channels</p></td>
-<td class="parameter_description"><p>The number of channels.</p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-</tbody>
-</table></div>
-</div>
-<div class="refsect3">
-<a name="gst-audio-channel-positions-to-valid-order.returns"></a><h4>Returns</h4>
-<p> <a href="/usr/share/gtk-doc/html/glibglib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a> if the channel positions are valid and reordering
-was successful.</p>
-</div>
 </div>
 <hr>
 <div class="refsect2">
 <a name="gst-audio-channel-get-fallback-mask"></a><h3>gst_audio_channel_get_fallback_mask ()</h3>
 <pre class="programlisting"><a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#guint64"><span class="returnvalue">guint64</span></a>
 gst_audio_channel_get_fallback_mask (<em class="parameter"><code><a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#gint"><span class="type">gint</span></a> channels</code></em>);</pre>
-<p>Get the fallback channel-mask for the given number of channels.</p>
-<p>This function returns a reasonable fallback channel-mask and should be
-called as a last resort when the specific channel map is unknown.</p>
-<div class="refsect3">
-<a name="gst-audio-channel-get-fallback-mask.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>channels</p></td>
-<td class="parameter_description"><p>the number of channels</p></td>
-<td class="parameter_annotations"> </td>
-</tr></tbody>
-</table></div>
-</div>
-<div class="refsect3">
-<a name="gst-audio-channel-get-fallback-mask.returns"></a><h4>Returns</h4>
-<p> a fallback channel-mask for <em class="parameter"><code>channels</code></em>
-or 0 when there is no
-mask.</p>
-</div>
-<p class="since">Since: 1.8</p>
 </div>
 <hr>
 <div class="refsect2">
@@ -364,44 +229,6 @@
                                (<em class="parameter"><code>const <a class="link" href="gst-plugins-base-libs-gstaudiochannels.html#GstAudioChannelPosition" title="enum GstAudioChannelPosition"><span class="type">GstAudioChannelPosition</span></a> *position</code></em>,
                                 <em class="parameter"><code><a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#gint"><span class="type">gint</span></a> channels</code></em>,
                                 <em class="parameter"><code><a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a> force_order</code></em>);</pre>
-<p>Checks if <em class="parameter"><code>position</code></em>
- contains valid channel positions for
-<em class="parameter"><code>channels</code></em>
- channels. If <em class="parameter"><code>force_order</code></em>
- is <a href="/usr/share/gtk-doc/html/glibglib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a> it additionally
-checks if the channels are in the order required by GStreamer.</p>
-<div class="refsect3">
-<a name="gst-audio-check-valid-channel-positions.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>position</p></td>
-<td class="parameter_description"><p> The <a href="gst-plugins-base-libs-gstaudiochannels.html#GstAudioChannelPosition"><code class="literal">GstAudioChannelPositions</code></a>
-to check. </p></td>
-<td class="parameter_annotations"><span class="annotation">[<acronym title="Parameter points to an array of items."><span class="acronym">array</span></acronym> length=channels]</span></td>
-</tr>
-<tr>
-<td class="parameter_name"><p>channels</p></td>
-<td class="parameter_description"><p>The number of channels.</p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-<tr>
-<td class="parameter_name"><p>force_order</p></td>
-<td class="parameter_description"><p>Only consider the GStreamer channel order.</p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-</tbody>
-</table></div>
-</div>
-<div class="refsect3">
-<a name="gst-audio-check-valid-channel-positions.returns"></a><h4>Returns</h4>
-<p> <a href="/usr/share/gtk-doc/html/glibglib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a> if the channel positions are valid.</p>
-</div>
 </div>
 <hr>
 <div class="refsect2">
@@ -412,57 +239,6 @@
                                    <em class="parameter"><code><a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#gint"><span class="type">gint</span></a> channels</code></em>,
                                    <em class="parameter"><code>const <a class="link" href="gst-plugins-base-libs-gstaudiochannels.html#GstAudioChannelPosition" title="enum GstAudioChannelPosition"><span class="type">GstAudioChannelPosition</span></a> *from</code></em>,
                                    <em class="parameter"><code>const <a class="link" href="gst-plugins-base-libs-gstaudiochannels.html#GstAudioChannelPosition" title="enum GstAudioChannelPosition"><span class="type">GstAudioChannelPosition</span></a> *to</code></em>);</pre>
-<p>Reorders <em class="parameter"><code>buffer</code></em>
- from the channel positions <em class="parameter"><code>from</code></em>
- to the channel
-positions <em class="parameter"><code>to</code></em>
-. <em class="parameter"><code>from</code></em>
- and <em class="parameter"><code>to</code></em>
- must contain the same number of
-positions and the same positions, only in a different order.
-<em class="parameter"><code>buffer</code></em>
- must be writable.</p>
-<div class="refsect3">
-<a name="gst-audio-buffer-reorder-channels.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>buffer</p></td>
-<td class="parameter_description"><p>The buffer to reorder.</p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-<tr>
-<td class="parameter_name"><p>format</p></td>
-<td class="parameter_description"><p>The <a class="link" href="gst-plugins-base-libs-gstaudio.html#GstAudioFormat" title="enum GstAudioFormat"><code class="literal">GstAudioFormat</code></a> of the buffer.</p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-<tr>
-<td class="parameter_name"><p>channels</p></td>
-<td class="parameter_description"><p>The number of channels.</p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-<tr>
-<td class="parameter_name"><p>from</p></td>
-<td class="parameter_description"><p> The channel positions in the buffer. </p></td>
-<td class="parameter_annotations"><span class="annotation">[<acronym title="Parameter points to an array of items."><span class="acronym">array</span></acronym>]</span></td>
-</tr>
-<tr>
-<td class="parameter_name"><p>to</p></td>
-<td class="parameter_description"><p> The channel positions to convert to. </p></td>
-<td class="parameter_annotations"><span class="annotation">[<acronym title="Parameter points to an array of items."><span class="acronym">array</span></acronym>]</span></td>
-</tr>
-</tbody>
-</table></div>
-</div>
-<div class="refsect3">
-<a name="gst-audio-buffer-reorder-channels.returns"></a><h4>Returns</h4>
-<p> <a href="/usr/share/gtk-doc/html/glibglib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a> if the reordering was possible.</p>
-</div>
 </div>
 <hr>
 <div class="refsect2">
@@ -474,61 +250,6 @@
                             <em class="parameter"><code><a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#gint"><span class="type">gint</span></a> channels</code></em>,
                             <em class="parameter"><code>const <a class="link" href="gst-plugins-base-libs-gstaudiochannels.html#GstAudioChannelPosition" title="enum GstAudioChannelPosition"><span class="type">GstAudioChannelPosition</span></a> *from</code></em>,
                             <em class="parameter"><code>const <a class="link" href="gst-plugins-base-libs-gstaudiochannels.html#GstAudioChannelPosition" title="enum GstAudioChannelPosition"><span class="type">GstAudioChannelPosition</span></a> *to</code></em>);</pre>
-<p>Reorders <em class="parameter"><code>data</code></em>
- from the channel positions <em class="parameter"><code>from</code></em>
- to the channel
-positions <em class="parameter"><code>to</code></em>
-. <em class="parameter"><code>from</code></em>
- and <em class="parameter"><code>to</code></em>
- must contain the same number of
-positions and the same positions, only in a different order.</p>
-<div class="refsect3">
-<a name="gst-audio-reorder-channels.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>data</p></td>
-<td class="parameter_description"><p> The pointer to
-the memory. </p></td>
-<td class="parameter_annotations"><span class="annotation">[<acronym title="Parameter points to an array of items."><span class="acronym">array</span></acronym> length=size][<acronym title="Generics and defining elements of containers and arrays."><span class="acronym">element-type</span></acronym> guint8]</span></td>
-</tr>
-<tr>
-<td class="parameter_name"><p>size</p></td>
-<td class="parameter_description"><p>The size of the memory.</p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-<tr>
-<td class="parameter_name"><p>format</p></td>
-<td class="parameter_description"><p>The <a class="link" href="gst-plugins-base-libs-gstaudio.html#GstAudioFormat" title="enum GstAudioFormat"><code class="literal">GstAudioFormat</code></a> of the buffer.</p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-<tr>
-<td class="parameter_name"><p>channels</p></td>
-<td class="parameter_description"><p>The number of channels.</p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-<tr>
-<td class="parameter_name"><p>from</p></td>
-<td class="parameter_description"><p> The channel positions in the buffer. </p></td>
-<td class="parameter_annotations"><span class="annotation">[<acronym title="Parameter points to an array of items."><span class="acronym">array</span></acronym>]</span></td>
-</tr>
-<tr>
-<td class="parameter_name"><p>to</p></td>
-<td class="parameter_description"><p> The channel positions to convert to. </p></td>
-<td class="parameter_annotations"><span class="annotation">[<acronym title="Parameter points to an array of items."><span class="acronym">array</span></acronym>]</span></td>
-</tr>
-</tbody>
-</table></div>
-</div>
-<div class="refsect3">
-<a name="gst-audio-reorder-channels.returns"></a><h4>Returns</h4>
-<p> <a href="/usr/share/gtk-doc/html/glibglib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a> if the reordering was possible.</p>
-</div>
 </div>
 <hr>
 <div class="refsect2">
@@ -538,55 +259,13 @@
                                    <em class="parameter"><code>const <a class="link" href="gst-plugins-base-libs-gstaudiochannels.html#GstAudioChannelPosition" title="enum GstAudioChannelPosition"><span class="type">GstAudioChannelPosition</span></a> *from</code></em>,
                                    <em class="parameter"><code>const <a class="link" href="gst-plugins-base-libs-gstaudiochannels.html#GstAudioChannelPosition" title="enum GstAudioChannelPosition"><span class="type">GstAudioChannelPosition</span></a> *to</code></em>,
                                    <em class="parameter"><code><a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#gint"><span class="type">gint</span></a> *reorder_map</code></em>);</pre>
-<p>Returns a reorder map for <em class="parameter"><code>from</code></em>
- to <em class="parameter"><code>to</code></em>
- that can be used in
-custom channel reordering code, e.g. to convert from or to the
-GStreamer channel order. <em class="parameter"><code>from</code></em>
- and <em class="parameter"><code>to</code></em>
- must contain the same
-number of positions and the same positions, only in a
-different order.</p>
-<p>The resulting <em class="parameter"><code>reorder_map</code></em>
- can be used for reordering by assigning
-channel i of the input to channel reorder_map[i] of the output.</p>
-<div class="refsect3">
-<a name="gst-audio-get-channel-reorder-map.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>channels</p></td>
-<td class="parameter_description"><p>The number of channels.</p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-<tr>
-<td class="parameter_name"><p>from</p></td>
-<td class="parameter_description"><p> The channel positions to reorder from. </p></td>
-<td class="parameter_annotations"><span class="annotation">[<acronym title="Parameter points to an array of items."><span class="acronym">array</span></acronym>]</span></td>
-</tr>
-<tr>
-<td class="parameter_name"><p>to</p></td>
-<td class="parameter_description"><p> The channel positions to reorder to. </p></td>
-<td class="parameter_annotations"><span class="annotation">[<acronym title="Parameter points to an array of items."><span class="acronym">array</span></acronym>]</span></td>
-</tr>
-<tr>
-<td class="parameter_name"><p>reorder_map</p></td>
-<td class="parameter_description"><p> Pointer to the reorder map. </p></td>
-<td class="parameter_annotations"><span class="annotation">[<acronym title="Parameter points to an array of items."><span class="acronym">array</span></acronym>]</span></td>
-</tr>
-</tbody>
-</table></div>
 </div>
-<div class="refsect3">
-<a name="gst-audio-get-channel-reorder-map.returns"></a><h4>Returns</h4>
-<p> <a href="/usr/share/gtk-doc/html/glibglib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a> if the channel positions are valid and reordering
-is possible.</p>
-</div>
+<hr>
+<div class="refsect2">
+<a name="gst-audio-channel-positions-to-string"></a><h3>gst_audio_channel_positions_to_string ()</h3>
+<pre class="programlisting"><a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> *
+gst_audio_channel_positions_to_string (<em class="parameter"><code>const <a class="link" href="gst-plugins-base-libs-gstaudiochannels.html#GstAudioChannelPosition" title="enum GstAudioChannelPosition"><span class="type">GstAudioChannelPosition</span></a> *position</code></em>,
+                                       <em class="parameter"><code><a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#gint"><span class="type">gint</span></a> channels</code></em>);</pre>
 </div>
 <hr>
 <div class="refsect2">
@@ -604,23 +283,6 @@
 <a name="gst-audio-channel-mixer-free"></a><h3>gst_audio_channel_mixer_free ()</h3>
 <pre class="programlisting"><span class="returnvalue">void</span>
 gst_audio_channel_mixer_free (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstaudiochannels.html#GstAudioChannelMixer" title="GstAudioChannelMixer"><span class="type">GstAudioChannelMixer</span></a> *mix</code></em>);</pre>
-<p>Free memory allocated by <em class="parameter"><code>mix</code></em>
-.</p>
-<div class="refsect3">
-<a name="gst-audio-channel-mixer-free.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>mix</p></td>
-<td class="parameter_description"><p>a <a class="link" href="gst-plugins-base-libs-gstaudiochannels.html#GstAudioChannelMixer" title="GstAudioChannelMixer"><span class="type">GstAudioChannelMixer</span></a></p></td>
-<td class="parameter_annotations"> </td>
-</tr></tbody>
-</table></div>
-</div>
 </div>
 <hr>
 <div class="refsect2">
@@ -628,28 +290,6 @@
 <pre class="programlisting"><a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
 gst_audio_channel_mixer_is_passthrough
                                (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstaudiochannels.html#GstAudioChannelMixer" title="GstAudioChannelMixer"><span class="type">GstAudioChannelMixer</span></a> *mix</code></em>);</pre>
-<p>Check if <em class="parameter"><code>mix</code></em>
- is in passthrough.</p>
-<div class="refsect3">
-<a name="gst-audio-channel-mixer-is-passthrough.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>mix</p></td>
-<td class="parameter_description"><p>a <a class="link" href="gst-plugins-base-libs-gstaudiochannels.html#GstAudioChannelMixer" title="GstAudioChannelMixer"><span class="type">GstAudioChannelMixer</span></a></p></td>
-<td class="parameter_annotations"> </td>
-</tr></tbody>
-</table></div>
-</div>
-<div class="refsect3">
-<a name="gst-audio-channel-mixer-is-passthrough.returns"></a><h4>Returns</h4>
-<p> <a href="/usr/share/gtk-doc/html/glibglib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a> is <em class="parameter"><code>mix</code></em>
-is passthrough.</p>
-</div>
 </div>
 <hr>
 <div class="refsect2">
@@ -659,82 +299,12 @@
                                  <em class="parameter"><code>const <a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> in[]</code></em>,
                                  <em class="parameter"><code><a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> out[]</code></em>,
                                  <em class="parameter"><code><a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#gint"><span class="type">gint</span></a> samples</code></em>);</pre>
-<p>In case the samples are interleaved, <em class="parameter"><code>in</code></em>
- and <em class="parameter"><code>out</code></em>
- must point to an
-array with a single element pointing to a block of interleaved samples.</p>
-<p>If non-interleaved samples are used, <em class="parameter"><code>in</code></em>
- and <em class="parameter"><code>out</code></em>
- must point to an
-array with pointers to memory blocks, one for each channel.</p>
-<p>Perform channel mixing on <em class="parameter"><code>in_data</code></em>
- and write the result to <em class="parameter"><code>out_data</code></em>
-.
-<em class="parameter"><code>in_data</code></em>
- and <em class="parameter"><code>out_data</code></em>
- need to be in <em class="parameter"><code>format</code></em>
- and <em class="parameter"><code>layout</code></em>
-.</p>
-<div class="refsect3">
-<a name="gst-audio-channel-mixer-samples.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>mix</p></td>
-<td class="parameter_description"><p>a <a class="link" href="gst-plugins-base-libs-gstaudiochannels.html#GstAudioChannelMixer" title="GstAudioChannelMixer"><span class="type">GstAudioChannelMixer</span></a></p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-<tr>
-<td class="parameter_name"><p>in</p></td>
-<td class="parameter_description"><p>input samples</p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-<tr>
-<td class="parameter_name"><p>out</p></td>
-<td class="parameter_description"><p>output samples</p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-<tr>
-<td class="parameter_name"><p>samples</p></td>
-<td class="parameter_description"><p>number of samples</p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-</tbody>
-</table></div>
-</div>
 </div>
 </div>
 <div class="refsect1">
 <a name="gst-plugins-base-libs-gstaudiochannels.other_details"></a><h2>Types and Values</h2>
 <div class="refsect2">
 <a name="GstAudioChannelPosition"></a><h3>enum GstAudioChannelPosition</h3>
-<p>Audio channel positions.</p>
-<p>These are the channels defined in SMPTE 2036-2-2008
-Table 1 for 22.2 audio systems with the Surround and Wide channels from
-DTS Coherent Acoustics (v.1.3.1) and 10.2 and 7.1 layouts. In the caps the
-actual channel layout is expressed with a channel count and a channel mask,
-which describes the existing channels. The positions in the bit mask correspond
-to the enum values.
-For negotiation it is allowed to have more bits set in the channel mask than
-the number of channels to specify the allowed channel positions but this is
-not allowed in negotiated caps. It is not allowed in any situation other
-than the one mentioned below to have less bits set in the channel mask than
-the number of channels.</p>
-<p><em class="parameter"><code>GST_AUDIO_CHANNEL_POSITION_MONO</code></em>
- can only be used with a single mono channel that
-has no direction information and would be mixed into all directional channels.
-This is expressed in caps by having a single channel and no channel mask.</p>
-<p><em class="parameter"><code>GST_AUDIO_CHANNEL_POSITION_NONE</code></em>
- can only be used if all channels have this position.
-This is expressed in caps by having a channel mask with no bits set.</p>
-<p>As another special case it is allowed to have two channels without a channel mask.
-This implicitely means that this is a stereo stream with a front left and front right
-channel.</p>
 <div class="refsect3">
 <a name="GstAudioChannelPosition.members"></a><h4>Members</h4>
 <div class="informaltable"><table class="informaltable" width="100%" border="0">
@@ -746,223 +316,158 @@
 <tbody>
 <tr>
 <td class="enum_member_name"><p><a name="GST-AUDIO-CHANNEL-POSITION-NONE:CAPS"></a>GST_AUDIO_CHANNEL_POSITION_NONE</p></td>
-<td class="enum_member_description">
-<p>used for position-less channels, e.g.
-    from a sound card that records 1024 channels; mutually exclusive with
-    any other channel position</p>
-</td>
-<td class="enum_member_annotations"> </td>
+<td> </td>
+<td> </td>
 </tr>
 <tr>
 <td class="enum_member_name"><p><a name="GST-AUDIO-CHANNEL-POSITION-MONO:CAPS"></a>GST_AUDIO_CHANNEL_POSITION_MONO</p></td>
-<td class="enum_member_description">
-<p>Mono without direction;
-    can only be used with 1 channel</p>
-</td>
-<td class="enum_member_annotations"> </td>
+<td> </td>
+<td> </td>
 </tr>
 <tr>
 <td class="enum_member_name"><p><a name="GST-AUDIO-CHANNEL-POSITION-INVALID:CAPS"></a>GST_AUDIO_CHANNEL_POSITION_INVALID</p></td>
-<td class="enum_member_description">
-<p>invalid position</p>
-</td>
-<td class="enum_member_annotations"> </td>
+<td> </td>
+<td> </td>
 </tr>
 <tr>
 <td class="enum_member_name"><p><a name="GST-AUDIO-CHANNEL-POSITION-FRONT-LEFT:CAPS"></a>GST_AUDIO_CHANNEL_POSITION_FRONT_LEFT</p></td>
-<td class="enum_member_description">
-<p>Front left</p>
-</td>
-<td class="enum_member_annotations"> </td>
+<td> </td>
+<td> </td>
 </tr>
 <tr>
 <td class="enum_member_name"><p><a name="GST-AUDIO-CHANNEL-POSITION-FRONT-RIGHT:CAPS"></a>GST_AUDIO_CHANNEL_POSITION_FRONT_RIGHT</p></td>
-<td class="enum_member_description">
-<p>Front right</p>
-</td>
-<td class="enum_member_annotations"> </td>
+<td> </td>
+<td> </td>
 </tr>
 <tr>
 <td class="enum_member_name"><p><a name="GST-AUDIO-CHANNEL-POSITION-FRONT-CENTER:CAPS"></a>GST_AUDIO_CHANNEL_POSITION_FRONT_CENTER</p></td>
-<td class="enum_member_description">
-<p>Front center</p>
-</td>
-<td class="enum_member_annotations"> </td>
+<td> </td>
+<td> </td>
 </tr>
 <tr>
 <td class="enum_member_name"><p><a name="GST-AUDIO-CHANNEL-POSITION-LFE1:CAPS"></a>GST_AUDIO_CHANNEL_POSITION_LFE1</p></td>
-<td class="enum_member_description">
-<p>Low-frequency effects 1 (subwoofer)</p>
-</td>
-<td class="enum_member_annotations"> </td>
+<td> </td>
+<td> </td>
 </tr>
 <tr>
 <td class="enum_member_name"><p><a name="GST-AUDIO-CHANNEL-POSITION-REAR-LEFT:CAPS"></a>GST_AUDIO_CHANNEL_POSITION_REAR_LEFT</p></td>
-<td class="enum_member_description">
-<p>Rear left</p>
-</td>
-<td class="enum_member_annotations"> </td>
+<td> </td>
+<td> </td>
 </tr>
 <tr>
 <td class="enum_member_name"><p><a name="GST-AUDIO-CHANNEL-POSITION-REAR-RIGHT:CAPS"></a>GST_AUDIO_CHANNEL_POSITION_REAR_RIGHT</p></td>
-<td class="enum_member_description">
-<p>Rear right</p>
-</td>
-<td class="enum_member_annotations"> </td>
+<td> </td>
+<td> </td>
 </tr>
 <tr>
 <td class="enum_member_name"><p><a name="GST-AUDIO-CHANNEL-POSITION-FRONT-LEFT-OF-CENTER:CAPS"></a>GST_AUDIO_CHANNEL_POSITION_FRONT_LEFT_OF_CENTER</p></td>
-<td class="enum_member_description">
-<p>Front left of center</p>
-</td>
-<td class="enum_member_annotations"> </td>
+<td> </td>
+<td> </td>
 </tr>
 <tr>
 <td class="enum_member_name"><p><a name="GST-AUDIO-CHANNEL-POSITION-FRONT-RIGHT-OF-CENTER:CAPS"></a>GST_AUDIO_CHANNEL_POSITION_FRONT_RIGHT_OF_CENTER</p></td>
-<td class="enum_member_description">
-<p>Front right of center</p>
-</td>
-<td class="enum_member_annotations"> </td>
+<td> </td>
+<td> </td>
 </tr>
 <tr>
 <td class="enum_member_name"><p><a name="GST-AUDIO-CHANNEL-POSITION-REAR-CENTER:CAPS"></a>GST_AUDIO_CHANNEL_POSITION_REAR_CENTER</p></td>
-<td class="enum_member_description">
-<p>Rear center</p>
-</td>
-<td class="enum_member_annotations"> </td>
+<td> </td>
+<td> </td>
 </tr>
 <tr>
 <td class="enum_member_name"><p><a name="GST-AUDIO-CHANNEL-POSITION-LFE2:CAPS"></a>GST_AUDIO_CHANNEL_POSITION_LFE2</p></td>
-<td class="enum_member_description">
-<p>Low-frequency effects 2 (subwoofer)</p>
-</td>
-<td class="enum_member_annotations"> </td>
+<td> </td>
+<td> </td>
 </tr>
 <tr>
 <td class="enum_member_name"><p><a name="GST-AUDIO-CHANNEL-POSITION-SIDE-LEFT:CAPS"></a>GST_AUDIO_CHANNEL_POSITION_SIDE_LEFT</p></td>
-<td class="enum_member_description">
-<p>Side left</p>
-</td>
-<td class="enum_member_annotations"> </td>
+<td> </td>
+<td> </td>
 </tr>
 <tr>
 <td class="enum_member_name"><p><a name="GST-AUDIO-CHANNEL-POSITION-SIDE-RIGHT:CAPS"></a>GST_AUDIO_CHANNEL_POSITION_SIDE_RIGHT</p></td>
-<td class="enum_member_description">
-<p>Side right</p>
-</td>
-<td class="enum_member_annotations"> </td>
+<td> </td>
+<td> </td>
 </tr>
 <tr>
 <td class="enum_member_name"><p><a name="GST-AUDIO-CHANNEL-POSITION-TOP-FRONT-LEFT:CAPS"></a>GST_AUDIO_CHANNEL_POSITION_TOP_FRONT_LEFT</p></td>
-<td class="enum_member_description">
-<p>Top front left</p>
-</td>
-<td class="enum_member_annotations"> </td>
+<td> </td>
+<td> </td>
 </tr>
 <tr>
 <td class="enum_member_name"><p><a name="GST-AUDIO-CHANNEL-POSITION-TOP-FRONT-RIGHT:CAPS"></a>GST_AUDIO_CHANNEL_POSITION_TOP_FRONT_RIGHT</p></td>
-<td class="enum_member_description">
-<p>Top front right</p>
-</td>
-<td class="enum_member_annotations"> </td>
+<td> </td>
+<td> </td>
 </tr>
 <tr>
 <td class="enum_member_name"><p><a name="GST-AUDIO-CHANNEL-POSITION-TOP-FRONT-CENTER:CAPS"></a>GST_AUDIO_CHANNEL_POSITION_TOP_FRONT_CENTER</p></td>
-<td class="enum_member_description">
-<p>Top front center</p>
-</td>
-<td class="enum_member_annotations"> </td>
+<td> </td>
+<td> </td>
 </tr>
 <tr>
 <td class="enum_member_name"><p><a name="GST-AUDIO-CHANNEL-POSITION-TOP-CENTER:CAPS"></a>GST_AUDIO_CHANNEL_POSITION_TOP_CENTER</p></td>
-<td class="enum_member_description">
-<p>Top center</p>
-</td>
-<td class="enum_member_annotations"> </td>
+<td> </td>
+<td> </td>
 </tr>
 <tr>
 <td class="enum_member_name"><p><a name="GST-AUDIO-CHANNEL-POSITION-TOP-REAR-LEFT:CAPS"></a>GST_AUDIO_CHANNEL_POSITION_TOP_REAR_LEFT</p></td>
-<td class="enum_member_description">
-<p>Top rear left</p>
-</td>
-<td class="enum_member_annotations"> </td>
+<td> </td>
+<td> </td>
 </tr>
 <tr>
 <td class="enum_member_name"><p><a name="GST-AUDIO-CHANNEL-POSITION-TOP-REAR-RIGHT:CAPS"></a>GST_AUDIO_CHANNEL_POSITION_TOP_REAR_RIGHT</p></td>
-<td class="enum_member_description">
-<p>Top rear right</p>
-</td>
-<td class="enum_member_annotations"> </td>
+<td> </td>
+<td> </td>
 </tr>
 <tr>
 <td class="enum_member_name"><p><a name="GST-AUDIO-CHANNEL-POSITION-TOP-SIDE-LEFT:CAPS"></a>GST_AUDIO_CHANNEL_POSITION_TOP_SIDE_LEFT</p></td>
-<td class="enum_member_description">
-<p>Top side right</p>
-</td>
-<td class="enum_member_annotations"> </td>
+<td> </td>
+<td> </td>
 </tr>
 <tr>
 <td class="enum_member_name"><p><a name="GST-AUDIO-CHANNEL-POSITION-TOP-SIDE-RIGHT:CAPS"></a>GST_AUDIO_CHANNEL_POSITION_TOP_SIDE_RIGHT</p></td>
-<td class="enum_member_description">
-<p>Top rear right</p>
-</td>
-<td class="enum_member_annotations"> </td>
+<td> </td>
+<td> </td>
 </tr>
 <tr>
 <td class="enum_member_name"><p><a name="GST-AUDIO-CHANNEL-POSITION-TOP-REAR-CENTER:CAPS"></a>GST_AUDIO_CHANNEL_POSITION_TOP_REAR_CENTER</p></td>
-<td class="enum_member_description">
-<p>Top rear center</p>
-</td>
-<td class="enum_member_annotations"> </td>
+<td> </td>
+<td> </td>
 </tr>
 <tr>
 <td class="enum_member_name"><p><a name="GST-AUDIO-CHANNEL-POSITION-BOTTOM-FRONT-CENTER:CAPS"></a>GST_AUDIO_CHANNEL_POSITION_BOTTOM_FRONT_CENTER</p></td>
-<td class="enum_member_description">
-<p>Bottom front center</p>
-</td>
-<td class="enum_member_annotations"> </td>
+<td> </td>
+<td> </td>
 </tr>
 <tr>
 <td class="enum_member_name"><p><a name="GST-AUDIO-CHANNEL-POSITION-BOTTOM-FRONT-LEFT:CAPS"></a>GST_AUDIO_CHANNEL_POSITION_BOTTOM_FRONT_LEFT</p></td>
-<td class="enum_member_description">
-<p>Bottom front left</p>
-</td>
-<td class="enum_member_annotations"> </td>
+<td> </td>
+<td> </td>
 </tr>
 <tr>
 <td class="enum_member_name"><p><a name="GST-AUDIO-CHANNEL-POSITION-BOTTOM-FRONT-RIGHT:CAPS"></a>GST_AUDIO_CHANNEL_POSITION_BOTTOM_FRONT_RIGHT</p></td>
-<td class="enum_member_description">
-<p>Bottom front right</p>
-</td>
-<td class="enum_member_annotations"> </td>
+<td> </td>
+<td> </td>
 </tr>
 <tr>
 <td class="enum_member_name"><p><a name="GST-AUDIO-CHANNEL-POSITION-WIDE-LEFT:CAPS"></a>GST_AUDIO_CHANNEL_POSITION_WIDE_LEFT</p></td>
-<td class="enum_member_description">
-<p>Wide left (between front left and side left)</p>
-</td>
-<td class="enum_member_annotations"> </td>
+<td> </td>
+<td> </td>
 </tr>
 <tr>
 <td class="enum_member_name"><p><a name="GST-AUDIO-CHANNEL-POSITION-WIDE-RIGHT:CAPS"></a>GST_AUDIO_CHANNEL_POSITION_WIDE_RIGHT</p></td>
-<td class="enum_member_description">
-<p>Wide right (between front right and side right)</p>
-</td>
-<td class="enum_member_annotations"> </td>
+<td> </td>
+<td> </td>
 </tr>
 <tr>
 <td class="enum_member_name"><p><a name="GST-AUDIO-CHANNEL-POSITION-SURROUND-LEFT:CAPS"></a>GST_AUDIO_CHANNEL_POSITION_SURROUND_LEFT</p></td>
-<td class="enum_member_description">
-<p>Surround left (between rear left and side left)</p>
-</td>
-<td class="enum_member_annotations"> </td>
+<td> </td>
+<td> </td>
 </tr>
 <tr>
 <td class="enum_member_name"><p><a name="GST-AUDIO-CHANNEL-POSITION-SURROUND-RIGHT:CAPS"></a>GST_AUDIO_CHANNEL_POSITION_SURROUND_RIGHT</p></td>
-<td class="enum_member_description">
-<p>Surround right (between rear right and side right)</p>
-</td>
-<td class="enum_member_annotations"> </td>
+<td> </td>
+<td> </td>
 </tr>
 </tbody>
 </table></div>
@@ -976,7 +481,6 @@
 <hr>
 <div class="refsect2">
 <a name="GstAudioChannelMixerFlags"></a><h3>enum GstAudioChannelMixerFlags</h3>
-<p>Flags passed to <a class="link" href="gst-plugins-base-libs-gstaudiochannels.html#gst-audio-channel-mixer-new" title="gst_audio_channel_mixer_new ()"><code class="function">gst_audio_channel_mixer_new()</code></a></p>
 <div class="refsect3">
 <a name="GstAudioChannelMixerFlags.members"></a><h4>Members</h4>
 <div class="informaltable"><table class="informaltable" width="100%" border="0">
@@ -988,38 +492,28 @@
 <tbody>
 <tr>
 <td class="enum_member_name"><p><a name="GST-AUDIO-CHANNEL-MIXER-FLAGS-NONE:CAPS"></a>GST_AUDIO_CHANNEL_MIXER_FLAGS_NONE</p></td>
-<td class="enum_member_description">
-<p>no flag</p>
-</td>
-<td class="enum_member_annotations"> </td>
+<td> </td>
+<td> </td>
 </tr>
 <tr>
 <td class="enum_member_name"><p><a name="GST-AUDIO-CHANNEL-MIXER-FLAGS-NON-INTERLEAVED-IN:CAPS"></a>GST_AUDIO_CHANNEL_MIXER_FLAGS_NON_INTERLEAVED_IN</p></td>
-<td class="enum_member_description">
-<p>input channels are not interleaved</p>
-</td>
-<td class="enum_member_annotations"> </td>
+<td> </td>
+<td> </td>
 </tr>
 <tr>
 <td class="enum_member_name"><p><a name="GST-AUDIO-CHANNEL-MIXER-FLAGS-NON-INTERLEAVED-OUT:CAPS"></a>GST_AUDIO_CHANNEL_MIXER_FLAGS_NON_INTERLEAVED_OUT</p></td>
-<td class="enum_member_description">
-<p>output channels are not interleaved</p>
-</td>
-<td class="enum_member_annotations"> </td>
+<td> </td>
+<td> </td>
 </tr>
 <tr>
 <td class="enum_member_name"><p><a name="GST-AUDIO-CHANNEL-MIXER-FLAGS-UNPOSITIONED-IN:CAPS"></a>GST_AUDIO_CHANNEL_MIXER_FLAGS_UNPOSITIONED_IN</p></td>
-<td class="enum_member_description">
-<p>input channels are explicitly unpositioned</p>
-</td>
-<td class="enum_member_annotations"> </td>
+<td> </td>
+<td> </td>
 </tr>
 <tr>
 <td class="enum_member_name"><p><a name="GST-AUDIO-CHANNEL-MIXER-FLAGS-UNPOSITIONED-OUT:CAPS"></a>GST_AUDIO_CHANNEL_MIXER_FLAGS_UNPOSITIONED_OUT</p></td>
-<td class="enum_member_description">
-<p>output channels are explicitly unpositioned</p>
-</td>
-<td class="enum_member_annotations"> </td>
+<td> </td>
+<td> </td>
 </tr>
 </tbody>
 </table></div>
diff --git a/docs/libs/html/gst-plugins-base-libs-gstaudioclock.html b/docs/libs/html/gst-plugins-base-libs-gstaudioclock.html
index 98794f2..2ffbf4f 100644
--- a/docs/libs/html/gst-plugins-base-libs-gstaudioclock.html
+++ b/docs/libs/html/gst-plugins-base-libs-gstaudioclock.html
@@ -28,7 +28,7 @@
 <div class="refnamediv"><table width="100%"><tr>
 <td valign="top">
 <h2><span class="refentrytitle"><a name="gst-plugins-base-libs-gstaudioclock.top_of_page"></a>gstaudioclock</span></h2>
-<p>gstaudioclock — Helper object for implementing audio clocks</p>
+<p>gstaudioclock</p>
 </td>
 <td class="gallery_image" valign="top" align="right"></td>
 </tr></table></div>
@@ -121,9 +121,6 @@
 </div>
 <div class="refsect1">
 <a name="gst-plugins-base-libs-gstaudioclock.description"></a><h2>Description</h2>
-<p><a class="link" href="gst-plugins-base-libs-gstaudioclock.html#GstAudioClock"><span class="type">GstAudioClock</span></a> makes it easy for elements to implement a <a href="/usr/share/gtk-doc/html/gstreamer-1.0GstClock.html#GstClock-struct"><span class="type">GstClock</span></a>, they
-simply need to provide a function that returns the current clock time.</p>
-<p>This object is internally used to implement the clock in <a class="link" href="gst-plugins-base-libs-gstaudiobasesink.html#GstAudioBaseSink"><span class="type">GstAudioBaseSink</span></a>.</p>
 </div>
 <div class="refsect1">
 <a name="gst-plugins-base-libs-gstaudioclock.functions_details"></a><h2>Functions</h2>
@@ -132,36 +129,6 @@
 <pre class="programlisting"><a href="/usr/share/gtk-doc/html/gstreamer-1.0GstClock.html#GstClockTime"><span class="returnvalue">GstClockTime</span></a>
 <span class="c_punctuation">(</span>*GstAudioClockGetTimeFunc<span class="c_punctuation">)</span> (<em class="parameter"><code><a href="/usr/share/gtk-doc/html/gstreamer-1.0GstClock.html#GstClock-struct"><span class="type">GstClock</span></a> *clock</code></em>,
                              <em class="parameter"><code><a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> user_data</code></em>);</pre>
-<p>This function will be called whenever the current clock time needs to be
-calculated. If this function returns <a href="/usr/share/gtk-doc/html/gstreamer-1.0GstClock.html#GST-CLOCK-TIME-NONE:CAPS"><span class="type">GST_CLOCK_TIME_NONE</span></a>, the last reported
-time will be returned by the clock.</p>
-<div class="refsect3">
-<a name="GstAudioClockGetTimeFunc.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>clock</p></td>
-<td class="parameter_description"><p>the <a class="link" href="gst-plugins-base-libs-gstaudioclock.html#GstAudioClock"><span class="type">GstAudioClock</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</p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-</tbody>
-</table></div>
-</div>
-<div class="refsect3">
-<a name="GstAudioClockGetTimeFunc.returns"></a><h4>Returns</h4>
-<p> the current time or <a href="/usr/share/gtk-doc/html/gstreamer-1.0GstClock.html#GST-CLOCK-TIME-NONE:CAPS"><span class="type">GST_CLOCK_TIME_NONE</span></a> if the previous time should
-be used.</p>
-</div>
 </div>
 <hr>
 <div class="refsect2">
@@ -171,49 +138,6 @@
                      <em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstaudioclock.html#GstAudioClockGetTimeFunc" title="GstAudioClockGetTimeFunc ()"><span class="type">GstAudioClockGetTimeFunc</span></a> func</code></em>,
                      <em class="parameter"><code><a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> user_data</code></em>,
                      <em class="parameter"><code><a href="/usr/share/gtk-doc/html/glibglib-Datasets.html#GDestroyNotify"><span class="type">GDestroyNotify</span></a> destroy_notify</code></em>);</pre>
-<p>Create a new <a class="link" href="gst-plugins-base-libs-gstaudioclock.html#GstAudioClock"><span class="type">GstAudioClock</span></a> instance. Whenever the clock time should be
-calculated it will call <em class="parameter"><code>func</code></em>
- with <em class="parameter"><code>user_data</code></em>
-. When <em class="parameter"><code>func</code></em>
- returns
-<a href="/usr/share/gtk-doc/html/gstreamer-1.0GstClock.html#GST-CLOCK-TIME-NONE:CAPS"><span class="type">GST_CLOCK_TIME_NONE</span></a>, the clock will return the last reported time.</p>
-<div class="refsect3">
-<a name="gst-audio-clock-new.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>name</p></td>
-<td class="parameter_description"><p>the name of the clock</p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-<tr>
-<td class="parameter_name"><p>func</p></td>
-<td class="parameter_description"><p>a function</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</p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-<tr>
-<td class="parameter_name"><p>destroy_notify</p></td>
-<td class="parameter_description"><p><a href="/usr/share/gtk-doc/html/glibglib-Datasets.html#GDestroyNotify"><span class="type">GDestroyNotify</span></a> for <em class="parameter"><code>user_data</code></em>
-</p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-</tbody>
-</table></div>
-</div>
-<div class="refsect3">
-<a name="gst-audio-clock-new.returns"></a><h4>Returns</h4>
-<p> a new <a class="link" href="gst-plugins-base-libs-gstaudioclock.html#GstAudioClock"><span class="type">GstAudioClock</span></a> casted to a <a href="/usr/share/gtk-doc/html/gstreamer-1.0GstClock.html#GstClock-struct"><span class="type">GstClock</span></a>.</p>
-</div>
 </div>
 <hr>
 <div class="refsect2">
@@ -221,62 +145,12 @@
 <pre class="programlisting"><a href="/usr/share/gtk-doc/html/gstreamer-1.0GstClock.html#GstClockTime"><span class="returnvalue">GstClockTime</span></a>
 gst_audio_clock_adjust (<em class="parameter"><code><a href="/usr/share/gtk-doc/html/gstreamer-1.0GstClock.html#GstClock-struct"><span class="type">GstClock</span></a> *clock</code></em>,
                         <em class="parameter"><code><a href="/usr/share/gtk-doc/html/gstreamer-1.0GstClock.html#GstClockTime"><span class="type">GstClockTime</span></a> time</code></em>);</pre>
-<p>Adjust <em class="parameter"><code>time</code></em>
- with the internal offset of the audio clock.</p>
-<div class="refsect3">
-<a name="gst-audio-clock-adjust.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>clock</p></td>
-<td class="parameter_description"><p>a <a class="link" href="gst-plugins-base-libs-gstaudioclock.html#GstAudioClock"><span class="type">GstAudioClock</span></a></p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-<tr>
-<td class="parameter_name"><p>time</p></td>
-<td class="parameter_description"><p>a <a href="/usr/share/gtk-doc/html/gstreamer-1.0GstClock.html#GstClockTime"><span class="type">GstClockTime</span></a></p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-</tbody>
-</table></div>
-</div>
-<div class="refsect3">
-<a name="gst-audio-clock-adjust.returns"></a><h4>Returns</h4>
-<p> <em class="parameter"><code>time</code></em>
-adjusted with the internal offset.</p>
-</div>
 </div>
 <hr>
 <div class="refsect2">
 <a name="gst-audio-clock-get-time"></a><h3>gst_audio_clock_get_time ()</h3>
 <pre class="programlisting"><a href="/usr/share/gtk-doc/html/gstreamer-1.0GstClock.html#GstClockTime"><span class="returnvalue">GstClockTime</span></a>
 gst_audio_clock_get_time (<em class="parameter"><code><a href="/usr/share/gtk-doc/html/gstreamer-1.0GstClock.html#GstClock-struct"><span class="type">GstClock</span></a> *clock</code></em>);</pre>
-<p>Report the time as returned by the <a class="link" href="gst-plugins-base-libs-gstaudioclock.html#GstAudioClockGetTimeFunc" title="GstAudioClockGetTimeFunc ()"><span class="type">GstAudioClockGetTimeFunc</span></a> without applying
-any offsets.</p>
-<div class="refsect3">
-<a name="gst-audio-clock-get-time.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>clock</p></td>
-<td class="parameter_description"><p>a <a class="link" href="gst-plugins-base-libs-gstaudioclock.html#GstAudioClock"><span class="type">GstAudioClock</span></a></p></td>
-<td class="parameter_annotations"> </td>
-</tr></tbody>
-</table></div>
-</div>
-<div class="refsect3">
-<a name="gst-audio-clock-get-time.returns"></a><h4>Returns</h4>
-<p> the time as reported by the time function of the audio clock</p>
-</div>
 </div>
 <hr>
 <div class="refsect2">
@@ -284,61 +158,12 @@
 <pre class="programlisting"><span class="returnvalue">void</span>
 gst_audio_clock_reset (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstaudioclock.html#GstAudioClock"><span class="type">GstAudioClock</span></a> *clock</code></em>,
                        <em class="parameter"><code><a href="/usr/share/gtk-doc/html/gstreamer-1.0GstClock.html#GstClockTime"><span class="type">GstClockTime</span></a> time</code></em>);</pre>
-<p>Inform <em class="parameter"><code>clock</code></em>
- that future calls to <a class="link" href="gst-plugins-base-libs-gstaudioclock.html#GstAudioClockGetTimeFunc" title="GstAudioClockGetTimeFunc ()"><span class="type">GstAudioClockGetTimeFunc</span></a> will return values
-starting from <em class="parameter"><code>time</code></em>
-. The clock will update an internal offset to make sure that
-future calls to internal_time will return an increasing result as required by
-the <a href="/usr/share/gtk-doc/html/gstreamer-1.0GstClock.html#GstClock-struct"><span class="type">GstClock</span></a> object.</p>
-<div class="refsect3">
-<a name="gst-audio-clock-reset.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>clock</p></td>
-<td class="parameter_description"><p>a <a class="link" href="gst-plugins-base-libs-gstaudioclock.html#GstAudioClock"><span class="type">GstAudioClock</span></a></p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-<tr>
-<td class="parameter_name"><p>time</p></td>
-<td class="parameter_description"><p>a <a href="/usr/share/gtk-doc/html/gstreamer-1.0GstClock.html#GstClockTime"><span class="type">GstClockTime</span></a></p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-</tbody>
-</table></div>
-</div>
 </div>
 <hr>
 <div class="refsect2">
 <a name="gst-audio-clock-invalidate"></a><h3>gst_audio_clock_invalidate ()</h3>
 <pre class="programlisting"><span class="returnvalue">void</span>
 gst_audio_clock_invalidate (<em class="parameter"><code><a href="/usr/share/gtk-doc/html/gstreamer-1.0GstClock.html#GstClock-struct"><span class="type">GstClock</span></a> *clock</code></em>);</pre>
-<p>Invalidate the clock function. Call this function when the provided
-<a class="link" href="gst-plugins-base-libs-gstaudioclock.html#GstAudioClockGetTimeFunc" title="GstAudioClockGetTimeFunc ()"><span class="type">GstAudioClockGetTimeFunc</span></a> cannot be called anymore, for example, when the
-user_data becomes invalid.</p>
-<p>After calling this function, <em class="parameter"><code>clock</code></em>
- will return the last returned time for
-the rest of its lifetime.</p>
-<div class="refsect3">
-<a name="gst-audio-clock-invalidate.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>clock</p></td>
-<td class="parameter_description"><p>a <a class="link" href="gst-plugins-base-libs-gstaudioclock.html#GstAudioClock"><span class="type">GstAudioClock</span></a></p></td>
-<td class="parameter_annotations"> </td>
-</tr></tbody>
-</table></div>
-</div>
 </div>
 </div>
 <div class="refsect1">
@@ -346,13 +171,8 @@
 <div class="refsect2">
 <a name="GstAudioClock-struct"></a><h3>struct GstAudioClock</h3>
 <pre class="programlisting">struct GstAudioClock;</pre>
-<p>Opaque <a class="link" href="gst-plugins-base-libs-gstaudioclock.html#GstAudioClock"><span class="type">GstAudioClock</span></a>.</p>
 </div>
 </div>
-<div class="refsect1">
-<a name="gst-plugins-base-libs-gstaudioclock.see-also"></a><h2>See Also</h2>
-<p><a class="link" href="gst-plugins-base-libs-gstaudiobasesink.html#GstAudioBaseSink"><span class="type">GstAudioBaseSink</span></a>, <a href="/usr/share/gtk-doc/html/gstreamer-1.0GstSystemClock.html#GstSystemClock-struct"><span class="type">GstSystemClock</span></a></p>
-</div>
 </div>
 <div class="footer">
 <hr>Generated by GTK-Doc V1.25</div>
diff --git a/docs/libs/html/gst-plugins-base-libs-gstaudiodecoder.html b/docs/libs/html/gst-plugins-base-libs-gstaudiodecoder.html
index 510633f..956ebec 100644
--- a/docs/libs/html/gst-plugins-base-libs-gstaudiodecoder.html
+++ b/docs/libs/html/gst-plugins-base-libs-gstaudiodecoder.html
@@ -29,7 +29,7 @@
 <div class="refnamediv"><table width="100%"><tr>
 <td valign="top">
 <h2><span class="refentrytitle"><a name="gst-plugins-base-libs-gstaudiodecoder.top_of_page"></a>gstaudiodecoder</span></h2>
-<p>gstaudiodecoder — Base class for audio decoders</p>
+<p>gstaudiodecoder</p>
 </td>
 <td class="gallery_image" valign="top" align="right"></td>
 </tr></table></div>
@@ -356,221 +356,24 @@
 </div>
 <div class="refsect1">
 <a name="gst-plugins-base-libs-gstaudiodecoder.description"></a><h2>Description</h2>
-<p>This base class is for audio decoders turning encoded data into
-raw audio samples.</p>
-<p>GstAudioDecoder and subclass should cooperate as follows.</p>
-<div class="orderedlist"><ol class="orderedlist" type="1">
-<li class="listitem"><div class="itemizedlist">
-<p class="title"><b>Configuration</b></p>
-<ul class="itemizedlist" style="list-style-type: disc; ">
-<li class="listitem"><p>
-    Initially, GstAudioDecoder calls <em class="parameter"><code>start</code></em> when the decoder element
-    is activated, which allows subclass to perform any global setup.
-    Base class (context) parameters can already be set according to subclass
-    capabilities (or possibly upon receive more information in subsequent
-    <em class="parameter"><code>set_format</code></em>).
-  </p></li>
-<li class="listitem"><p>
-    GstAudioDecoder calls <em class="parameter"><code>set_format</code></em> to inform subclass of the format
-    of input audio data that it is about to receive.
-    While unlikely, it might be called more than once, if changing input
-    parameters require reconfiguration.
-  </p></li>
-<li class="listitem"><p>
-    GstAudioDecoder calls <em class="parameter"><code>stop</code></em> at end of all processing.
-  </p></li>
-</ul>
-</div></li>
-<li class="listitem"><div class="itemizedlist">
-<p class="title"><b>Data processing</b></p>
-<ul class="itemizedlist" style="list-style-type: disc; ">
-<li class="listitem"><p>
-      Base class gathers input data, and optionally allows subclass
-      to parse this into subsequently manageable (as defined by subclass)
-      chunks.  Such chunks are subsequently referred to as 'frames',
-      though they may or may not correspond to 1 (or more) audio format frame.
-    </p></li>
-<li class="listitem"><p>
-      Input frame is provided to subclass' <em class="parameter"><code>handle_frame</code></em>.
-    </p></li>
-<li class="listitem"><p>
-      If codec processing results in decoded data, subclass should call
-      <em class="parameter"><code>gst_audio_decoder_finish_frame</code></em> to have decoded data pushed
-      downstream.
-    </p></li>
-<li class="listitem"><p>
-      Just prior to actually pushing a buffer downstream,
-      it is passed to <em class="parameter"><code>pre_push</code></em>.  Subclass should either use this callback
-      to arrange for additional downstream pushing or otherwise ensure such
-      custom pushing occurs after at least a method call has finished since
-      setting src pad caps.
-    </p></li>
-<li class="listitem"><p>
-      During the parsing process GstAudioDecoderClass will handle both
-      srcpad and sinkpad events. Sink events will be passed to subclass
-      if <em class="parameter"><code>event</code></em> callback has been provided.
-    </p></li>
-</ul>
-</div></li>
-<li class="listitem"><div class="itemizedlist">
-<p class="title"><b>Shutdown phase</b></p>
-<ul class="itemizedlist" style="list-style-type: disc; "><li class="listitem"><p>
-    GstAudioDecoder class calls <em class="parameter"><code>stop</code></em> to inform the subclass that data
-    parsing will be stopped.
-  </p></li></ul>
-</div></li>
-</ol></div>
-<p>Subclass is responsible for providing pad template caps for
-source and sink pads. The pads need to be named "sink" and "src". It also
-needs to set the fixed caps on srcpad, when the format is ensured.  This
-is typically when base class calls subclass' <em class="parameter"><code>set_format</code></em>
- function, though
-it might be delayed until calling <em class="parameter"><code>gst_audio_decoder_finish_frame</code></em>
-.</p>
-<p>In summary, above process should have subclass concentrating on
-codec data processing while leaving other matters to base class,
-such as most notably timestamp handling.  While it may exert more control
-in this area (see e.g. <em class="parameter"><code>pre_push</code></em>
-), it is very much not recommended.</p>
-<p>In particular, base class will try to arrange for perfect output timestamps
-as much as possible while tracking upstream timestamps.
-To this end, if deviation between the next ideal expected perfect timestamp
-and upstream exceeds <a class="link" href="gst-plugins-base-libs-gstaudiodecoder.html#GstAudioDecoder--tolerance" title="The “tolerance” property"><span class="type">“tolerance”</span></a>, then resync to upstream
-occurs (which would happen always if the tolerance mechanism is disabled).</p>
-<p>In non-live pipelines, baseclass can also (configurably) arrange for
-output buffer aggregation which may help to redue large(r) numbers of
-small(er) buffers being pushed and processed downstream.</p>
-<p>On the other hand, it should be noted that baseclass only provides limited
-seeking support (upon explicit subclass request), as full-fledged support
-should rather be left to upstream demuxer, parser or alike.  This simple
-approach caters for seeking and duration reporting using estimated input
-bitrates.</p>
-<p>Things that subclass need to take care of:</p>
-<div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; ">
-<li class="listitem"><p>Provide pad templates</p></li>
-<li class="listitem"><p>
-     Set source pad caps when appropriate
-  </p></li>
-<li class="listitem"><p>
-     Set user-configurable properties to sane defaults for format and
-     implementing codec at hand, and convey some subclass capabilities and
-     expectations in context.
-  </p></li>
-<li class="listitem"><p>
-     Accept data in <em class="parameter"><code>handle_frame</code></em> and provide encoded results to
-     <em class="parameter"><code>gst_audio_decoder_finish_frame</code></em>.  If it is prepared to perform
-     PLC, it should also accept NULL data in <em class="parameter"><code>handle_frame</code></em> and provide for
-     data for indicated duration.
-  </p></li>
-</ul></div>
 </div>
 <div class="refsect1">
 <a name="gst-plugins-base-libs-gstaudiodecoder.functions_details"></a><h2>Functions</h2>
 <div class="refsect2">
 <a name="GST-AUDIO-DECODER-ERROR:CAPS"></a><h3>GST_AUDIO_DECODER_ERROR()</h3>
 <pre class="programlisting">#define             GST_AUDIO_DECODER_ERROR(el, weight, domain, code, text, debug, ret)</pre>
-<p>Utility function that audio decoder elements can use in case they encountered
-a data processing error that may be fatal for the current "data unit" but
-need not prevent subsequent decoding.  Such errors are counted and if there
-are too many, as configured in the context's max_errors, the pipeline will
-post an error message and the application will be requested to stop further
-media processing.  Otherwise, it is considered a "glitch" and only a warning
-is logged. In either case, <em class="parameter"><code>ret</code></em>
- is set to the proper value to
-return to upstream/caller (indicating either GST_FLOW_ERROR or GST_FLOW_OK).</p>
-<div class="refsect3">
-<a name="GST-AUDIO-DECODER-ERROR.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>el</p></td>
-<td class="parameter_description"><p>the base audio decoder element that generates the error</p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-<tr>
-<td class="parameter_name"><p>weight</p></td>
-<td class="parameter_description"><p>element defined weight of the error, added to error count</p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-<tr>
-<td class="parameter_name"><p>domain</p></td>
-<td class="parameter_description"><p>like CORE, LIBRARY, RESOURCE or STREAM (see <span class="type">gstreamer-GstGError</span>)</p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-<tr>
-<td class="parameter_name"><p>code</p></td>
-<td class="parameter_description"><p>error code defined for that domain (see <span class="type">gstreamer-GstGError</span>)</p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-<tr>
-<td class="parameter_name"><p>text</p></td>
-<td class="parameter_description"><p>the message to display (format string and args enclosed in
-parentheses)</p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-<tr>
-<td class="parameter_name"><p>debug</p></td>
-<td class="parameter_description"><p>debugging information for the message (format string and args
-enclosed in parentheses)</p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-<tr>
-<td class="parameter_name"><p>ret</p></td>
-<td class="parameter_description"><p>variable to receive return value</p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-</tbody>
-</table></div>
-</div>
 </div>
 <hr>
 <div class="refsect2">
 <a name="GST-AUDIO-DECODER-SINK-PAD:CAPS"></a><h3>GST_AUDIO_DECODER_SINK_PAD()</h3>
 <pre class="programlisting">#define GST_AUDIO_DECODER_SINK_PAD(obj)        (((GstAudioDecoder *) (obj))-&gt;sinkpad)
 </pre>
-<p>Gives the pointer to the sink <a href="/usr/share/gtk-doc/html/gstreamer-1.0GstPad.html#GstPad-struct"><span class="type">GstPad</span></a> object of the element.</p>
-<div class="refsect3">
-<a name="GST-AUDIO-DECODER-SINK-PAD.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>obj</p></td>
-<td class="parameter_description"><p>base audio codec instance</p></td>
-<td class="parameter_annotations"> </td>
-</tr></tbody>
-</table></div>
-</div>
 </div>
 <hr>
 <div class="refsect2">
 <a name="GST-AUDIO-DECODER-SRC-PAD:CAPS"></a><h3>GST_AUDIO_DECODER_SRC_PAD()</h3>
 <pre class="programlisting">#define GST_AUDIO_DECODER_SRC_PAD(obj)         (((GstAudioDecoder *) (obj))-&gt;srcpad)
 </pre>
-<p>Gives the pointer to the source <a href="/usr/share/gtk-doc/html/gstreamer-1.0GstPad.html#GstPad-struct"><span class="type">GstPad</span></a> object of the element.</p>
-<div class="refsect3">
-<a name="GST-AUDIO-DECODER-SRC-PAD.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>obj</p></td>
-<td class="parameter_description"><p>base audio codec instance</p></td>
-<td class="parameter_annotations"> </td>
-</tr></tbody>
-</table></div>
-</div>
 </div>
 <hr>
 <div class="refsect2">
@@ -579,47 +382,6 @@
 gst_audio_decoder_finish_frame (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstaudiodecoder.html#GstAudioDecoder"><span class="type">GstAudioDecoder</span></a> *dec</code></em>,
                                 <em class="parameter"><code><a href="/usr/share/gtk-doc/html/gstreamer-1.0GstBuffer.html#GstBuffer-struct"><span class="type">GstBuffer</span></a> *buf</code></em>,
                                 <em class="parameter"><code><a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#gint"><span class="type">gint</span></a> frames</code></em>);</pre>
-<p>Collects decoded data and pushes it downstream.</p>
-<p><em class="parameter"><code>buf</code></em>
- may be NULL in which case the indicated number of frames
-are discarded and considered to have produced no output
-(e.g. lead-in or setup frames).
-Otherwise, source pad caps must be set when it is called with valid
-data in <em class="parameter"><code>buf</code></em>
-.</p>
-<p>Note that a frame received in <code class="function">gst_audio_decoder_handle_frame()</code> may be
-invalidated by a call to this function.</p>
-<div class="refsect3">
-<a name="gst-audio-decoder-finish-frame.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>dec</p></td>
-<td class="parameter_description"><p>a <a class="link" href="gst-plugins-base-libs-gstaudiodecoder.html#GstAudioDecoder"><span class="type">GstAudioDecoder</span></a></p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-<tr>
-<td class="parameter_name"><p>buf</p></td>
-<td class="parameter_description"><p>decoded data</p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-<tr>
-<td class="parameter_name"><p>frames</p></td>
-<td class="parameter_description"><p>number of decoded frames represented by decoded data</p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-</tbody>
-</table></div>
-</div>
-<div class="refsect3">
-<a name="gst-audio-decoder-finish-frame.returns"></a><h4>Returns</h4>
-<p> a <a href="/usr/share/gtk-doc/html/gstreamer-1.0GstPad.html#GstFlowReturn"><span class="type">GstFlowReturn</span></a> that should be escalated to caller (of caller)</p>
-</div>
 </div>
 <hr>
 <div class="refsect2">
@@ -627,62 +389,12 @@
 <pre class="programlisting"><a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
 gst_audio_decoder_set_output_format (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstaudiodecoder.html#GstAudioDecoder"><span class="type">GstAudioDecoder</span></a> *dec</code></em>,
                                      <em class="parameter"><code>const <a class="link" href="gst-plugins-base-libs-gstaudio.html#GstAudioInfo" title="struct GstAudioInfo"><span class="type">GstAudioInfo</span></a> *info</code></em>);</pre>
-<p>Configure output info on the srcpad of <em class="parameter"><code>dec</code></em>
-.</p>
-<div class="refsect3">
-<a name="gst-audio-decoder-set-output-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>dec</p></td>
-<td class="parameter_description"><p>a <a class="link" href="gst-plugins-base-libs-gstaudiodecoder.html#GstAudioDecoder"><span class="type">GstAudioDecoder</span></a></p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-<tr>
-<td class="parameter_name"><p>info</p></td>
-<td class="parameter_description"><p><a class="link" href="gst-plugins-base-libs-gstaudio.html#GstAudioInfo" title="struct GstAudioInfo"><span class="type">GstAudioInfo</span></a></p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-</tbody>
-</table></div>
-</div>
-<div class="refsect3">
-<a name="gst-audio-decoder-set-output-format.returns"></a><h4>Returns</h4>
-<p> <a href="/usr/share/gtk-doc/html/glibglib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a> on success.</p>
-</div>
 </div>
 <hr>
 <div class="refsect2">
 <a name="gst-audio-decoder-negotiate"></a><h3>gst_audio_decoder_negotiate ()</h3>
 <pre class="programlisting"><a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
 gst_audio_decoder_negotiate (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstaudiodecoder.html#GstAudioDecoder"><span class="type">GstAudioDecoder</span></a> *dec</code></em>);</pre>
-<p>Negotiate with downstream elements to currently configured <a class="link" href="gst-plugins-base-libs-gstaudio.html#GstAudioInfo" title="struct GstAudioInfo"><span class="type">GstAudioInfo</span></a>.
-Unmark GST_PAD_FLAG_NEED_RECONFIGURE in any case. But mark it again if
-negotiate fails.</p>
-<div class="refsect3">
-<a name="gst-audio-decoder-negotiate.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>dec</p></td>
-<td class="parameter_description"><p>a <a class="link" href="gst-plugins-base-libs-gstaudiodecoder.html#GstAudioDecoder"><span class="type">GstAudioDecoder</span></a></p></td>
-<td class="parameter_annotations"> </td>
-</tr></tbody>
-</table></div>
-</div>
-<div class="refsect3">
-<a name="gst-audio-decoder-negotiate.returns"></a><h4>Returns</h4>
-<p> <a href="/usr/share/gtk-doc/html/glibglib-Standard-Macros.html#TRUE:CAPS"><span class="type">TRUE</span></a> if the negotiation succeeded, else <a href="/usr/share/gtk-doc/html/glibglib-Standard-Macros.html#FALSE:CAPS"><span class="type">FALSE</span></a>.</p>
-</div>
 </div>
 <hr>
 <div class="refsect2">
@@ -691,36 +403,6 @@
 gst_audio_decoder_allocate_output_buffer
                                (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstaudiodecoder.html#GstAudioDecoder"><span class="type">GstAudioDecoder</span></a> *dec</code></em>,
                                 <em class="parameter"><code><a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#gsize"><span class="type">gsize</span></a> size</code></em>);</pre>
-<p>Helper function that allocates a buffer to hold an audio frame
-for <em class="parameter"><code>dec</code></em>
-'s current output format.</p>
-<div class="refsect3">
-<a name="gst-audio-decoder-allocate-output-buffer.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>dec</p></td>
-<td class="parameter_description"><p>a <a class="link" href="gst-plugins-base-libs-gstaudiodecoder.html#GstAudioDecoder"><span class="type">GstAudioDecoder</span></a></p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-<tr>
-<td class="parameter_name"><p>size</p></td>
-<td class="parameter_description"><p>size of the buffer</p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-</tbody>
-</table></div>
-</div>
-<div class="refsect3">
-<a name="gst-audio-decoder-allocate-output-buffer.returns"></a><h4>Returns</h4>
-<p> allocated buffer. </p>
-<p><span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>]</span></p>
-</div>
 </div>
 <hr>
 <div class="refsect2">
@@ -729,144 +411,30 @@
 gst_audio_decoder_get_allocator (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstaudiodecoder.html#GstAudioDecoder"><span class="type">GstAudioDecoder</span></a> *dec</code></em>,
                                  <em class="parameter"><code><a href="/usr/share/gtk-doc/html/gstreamer-1.0GstAllocator.html#GstAllocator-struct"><span class="type">GstAllocator</span></a> **allocator</code></em>,
                                  <em class="parameter"><code><a href="/usr/share/gtk-doc/html/gstreamer-1.0GstAllocator.html#GstAllocationParams-struct"><span class="type">GstAllocationParams</span></a> *params</code></em>);</pre>
-<p>Lets <a class="link" href="gst-plugins-base-libs-gstaudiodecoder.html#GstAudioDecoder"><span class="type">GstAudioDecoder</span></a> sub-classes to know the memory <em class="parameter"><code>allocator</code></em>
-
-used by the base class and its <em class="parameter"><code>params</code></em>
-.</p>
-<p>Unref the <em class="parameter"><code>allocator</code></em>
- after use it.</p>
-<div class="refsect3">
-<a name="gst-audio-decoder-get-allocator.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>dec</p></td>
-<td class="parameter_description"><p>a <a class="link" href="gst-plugins-base-libs-gstaudiodecoder.html#GstAudioDecoder"><span class="type">GstAudioDecoder</span></a></p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-<tr>
-<td class="parameter_name"><p>allocator</p></td>
-<td class="parameter_description"><p> the <a href="/usr/share/gtk-doc/html/gstreamer-1.0GstAllocator.html#GstAllocator-struct"><span class="type">GstAllocator</span></a>
-used. </p></td>
-<td class="parameter_annotations"><span class="annotation">[<acronym title="Parameter for returning results. Default is transfer full."><span class="acronym">out</span></acronym>][<acronym title="NULL is OK, both for passing and for returning."><span class="acronym">allow-none</span></acronym>][<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>]</span></td>
-</tr>
-<tr>
-<td class="parameter_name"><p>params</p></td>
-<td class="parameter_description"><p> the
-<span class="type">GstAllocatorParams</span> of <em class="parameter"><code>allocator</code></em>
-. </p></td>
-<td class="parameter_annotations"><span class="annotation">[<acronym title="Parameter for returning results. Default is transfer full."><span class="acronym">out</span></acronym>][<acronym title="NULL is OK, both for passing and for returning."><span class="acronym">allow-none</span></acronym>][<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>]</span></td>
-</tr>
-</tbody>
-</table></div>
-</div>
 </div>
 <hr>
 <div class="refsect2">
 <a name="gst-audio-decoder-get-audio-info"></a><h3>gst_audio_decoder_get_audio_info ()</h3>
 <pre class="programlisting"><a class="link" href="gst-plugins-base-libs-gstaudio.html#GstAudioInfo" title="struct GstAudioInfo"><span class="returnvalue">GstAudioInfo</span></a> *
 gst_audio_decoder_get_audio_info (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstaudiodecoder.html#GstAudioDecoder"><span class="type">GstAudioDecoder</span></a> *dec</code></em>);</pre>
-<div class="refsect3">
-<a name="gst-audio-decoder-get-audio-info.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>dec</p></td>
-<td class="parameter_description"><p>a <a class="link" href="gst-plugins-base-libs-gstaudiodecoder.html#GstAudioDecoder"><span class="type">GstAudioDecoder</span></a></p></td>
-<td class="parameter_annotations"> </td>
-</tr></tbody>
-</table></div>
-</div>
-<div class="refsect3">
-<a name="gst-audio-decoder-get-audio-info.returns"></a><h4>Returns</h4>
-<p> a <a class="link" href="gst-plugins-base-libs-gstaudio.html#GstAudioInfo" title="struct GstAudioInfo"><span class="type">GstAudioInfo</span></a> describing the input audio format</p>
-</div>
 </div>
 <hr>
 <div class="refsect2">
 <a name="gst-audio-decoder-get-estimate-rate"></a><h3>gst_audio_decoder_get_estimate_rate ()</h3>
 <pre class="programlisting"><a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#gint"><span class="returnvalue">gint</span></a>
 gst_audio_decoder_get_estimate_rate (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstaudiodecoder.html#GstAudioDecoder"><span class="type">GstAudioDecoder</span></a> *dec</code></em>);</pre>
-<div class="refsect3">
-<a name="gst-audio-decoder-get-estimate-rate.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>dec</p></td>
-<td class="parameter_description"><p>a <a class="link" href="gst-plugins-base-libs-gstaudiodecoder.html#GstAudioDecoder"><span class="type">GstAudioDecoder</span></a></p></td>
-<td class="parameter_annotations"> </td>
-</tr></tbody>
-</table></div>
-</div>
-<div class="refsect3">
-<a name="gst-audio-decoder-get-estimate-rate.returns"></a><h4>Returns</h4>
-<p> currently configured byte to time conversion setting</p>
-</div>
 </div>
 <hr>
 <div class="refsect2">
 <a name="gst-audio-decoder-get-delay"></a><h3>gst_audio_decoder_get_delay ()</h3>
 <pre class="programlisting"><a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#gint"><span class="returnvalue">gint</span></a>
 gst_audio_decoder_get_delay (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstaudiodecoder.html#GstAudioDecoder"><span class="type">GstAudioDecoder</span></a> *dec</code></em>);</pre>
-<div class="refsect3">
-<a name="gst-audio-decoder-get-delay.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>dec</p></td>
-<td class="parameter_description"><p>a <a class="link" href="gst-plugins-base-libs-gstaudiodecoder.html#GstAudioDecoder"><span class="type">GstAudioDecoder</span></a></p></td>
-<td class="parameter_annotations"> </td>
-</tr></tbody>
-</table></div>
-</div>
-<div class="refsect3">
-<a name="gst-audio-decoder-get-delay.returns"></a><h4>Returns</h4>
-<p> currently configured decoder delay</p>
-</div>
 </div>
 <hr>
 <div class="refsect2">
 <a name="gst-audio-decoder-get-drainable"></a><h3>gst_audio_decoder_get_drainable ()</h3>
 <pre class="programlisting"><a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
 gst_audio_decoder_get_drainable (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstaudiodecoder.html#GstAudioDecoder"><span class="type">GstAudioDecoder</span></a> *dec</code></em>);</pre>
-<p>Queries decoder drain handling.</p>
-<div class="refsect3">
-<a name="gst-audio-decoder-get-drainable.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>dec</p></td>
-<td class="parameter_description"><p>a <a class="link" href="gst-plugins-base-libs-gstaudiodecoder.html#GstAudioDecoder"><span class="type">GstAudioDecoder</span></a></p></td>
-<td class="parameter_annotations"> </td>
-</tr></tbody>
-</table></div>
-</div>
-<div class="refsect3">
-<a name="gst-audio-decoder-get-drainable.returns"></a><h4>Returns</h4>
-<p> TRUE if drainable handling is enabled.</p>
-<p>MT safe.</p>
-</div>
 </div>
 <hr>
 <div class="refsect2">
@@ -875,116 +443,24 @@
 gst_audio_decoder_get_latency (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstaudiodecoder.html#GstAudioDecoder"><span class="type">GstAudioDecoder</span></a> *dec</code></em>,
                                <em class="parameter"><code><a href="/usr/share/gtk-doc/html/gstreamer-1.0GstClock.html#GstClockTime"><span class="type">GstClockTime</span></a> *min</code></em>,
                                <em class="parameter"><code><a href="/usr/share/gtk-doc/html/gstreamer-1.0GstClock.html#GstClockTime"><span class="type">GstClockTime</span></a> *max</code></em>);</pre>
-<p>Sets the variables pointed to by <em class="parameter"><code>min</code></em>
- and <em class="parameter"><code>max</code></em>
- to the currently configured
-latency.</p>
-<div class="refsect3">
-<a name="gst-audio-decoder-get-latency.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>dec</p></td>
-<td class="parameter_description"><p>a <a class="link" href="gst-plugins-base-libs-gstaudiodecoder.html#GstAudioDecoder"><span class="type">GstAudioDecoder</span></a></p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-<tr>
-<td class="parameter_name"><p>min</p></td>
-<td class="parameter_description"><p> a pointer to storage to hold minimum latency. </p></td>
-<td class="parameter_annotations"><span class="annotation">[<acronym title="Parameter for returning results. Default is transfer full."><span class="acronym">out</span></acronym>][<acronym title="NULL is OK, both for passing and for returning."><span class="acronym">allow-none</span></acronym>]</span></td>
-</tr>
-<tr>
-<td class="parameter_name"><p>max</p></td>
-<td class="parameter_description"><p> a pointer to storage to hold maximum latency. </p></td>
-<td class="parameter_annotations"><span class="annotation">[<acronym title="Parameter for returning results. Default is transfer full."><span class="acronym">out</span></acronym>][<acronym title="NULL is OK, both for passing and for returning."><span class="acronym">allow-none</span></acronym>]</span></td>
-</tr>
-</tbody>
-</table></div>
-</div>
 </div>
 <hr>
 <div class="refsect2">
 <a name="gst-audio-decoder-get-max-errors"></a><h3>gst_audio_decoder_get_max_errors ()</h3>
 <pre class="programlisting"><a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#gint"><span class="returnvalue">gint</span></a>
 gst_audio_decoder_get_max_errors (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstaudiodecoder.html#GstAudioDecoder"><span class="type">GstAudioDecoder</span></a> *dec</code></em>);</pre>
-<div class="refsect3">
-<a name="gst-audio-decoder-get-max-errors.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>dec</p></td>
-<td class="parameter_description"><p>a <a class="link" href="gst-plugins-base-libs-gstaudiodecoder.html#GstAudioDecoder"><span class="type">GstAudioDecoder</span></a></p></td>
-<td class="parameter_annotations"> </td>
-</tr></tbody>
-</table></div>
-</div>
-<div class="refsect3">
-<a name="gst-audio-decoder-get-max-errors.returns"></a><h4>Returns</h4>
-<p> currently configured decoder tolerated error count.</p>
-</div>
 </div>
 <hr>
 <div class="refsect2">
 <a name="gst-audio-decoder-get-min-latency"></a><h3>gst_audio_decoder_get_min_latency ()</h3>
 <pre class="programlisting"><a href="/usr/share/gtk-doc/html/gstreamer-1.0GstClock.html#GstClockTime"><span class="returnvalue">GstClockTime</span></a>
 gst_audio_decoder_get_min_latency (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstaudiodecoder.html#GstAudioDecoder"><span class="type">GstAudioDecoder</span></a> *dec</code></em>);</pre>
-<p>Queries decoder's latency aggregation.</p>
-<div class="refsect3">
-<a name="gst-audio-decoder-get-min-latency.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>dec</p></td>
-<td class="parameter_description"><p>a <a class="link" href="gst-plugins-base-libs-gstaudiodecoder.html#GstAudioDecoder"><span class="type">GstAudioDecoder</span></a></p></td>
-<td class="parameter_annotations"> </td>
-</tr></tbody>
-</table></div>
-</div>
-<div class="refsect3">
-<a name="gst-audio-decoder-get-min-latency.returns"></a><h4>Returns</h4>
-<p> aggregation latency.</p>
-<p>MT safe.</p>
-</div>
 </div>
 <hr>
 <div class="refsect2">
 <a name="gst-audio-decoder-get-needs-format"></a><h3>gst_audio_decoder_get_needs_format ()</h3>
 <pre class="programlisting"><a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
 gst_audio_decoder_get_needs_format (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstaudiodecoder.html#GstAudioDecoder"><span class="type">GstAudioDecoder</span></a> *dec</code></em>);</pre>
-<p>Queries decoder required format handling.</p>
-<div class="refsect3">
-<a name="gst-audio-decoder-get-needs-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>dec</p></td>
-<td class="parameter_description"><p>a <a class="link" href="gst-plugins-base-libs-gstaudiodecoder.html#GstAudioDecoder"><span class="type">GstAudioDecoder</span></a></p></td>
-<td class="parameter_annotations"> </td>
-</tr></tbody>
-</table></div>
-</div>
-<div class="refsect3">
-<a name="gst-audio-decoder-get-needs-format.returns"></a><h4>Returns</h4>
-<p> TRUE if required format handling is enabled.</p>
-<p>MT safe.</p>
-</div>
 </div>
 <hr>
 <div class="refsect2">
@@ -993,113 +469,24 @@
 gst_audio_decoder_get_parse_state (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstaudiodecoder.html#GstAudioDecoder"><span class="type">GstAudioDecoder</span></a> *dec</code></em>,
                                    <em class="parameter"><code><a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a> *sync</code></em>,
                                    <em class="parameter"><code><a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a> *eos</code></em>);</pre>
-<p>Return current parsing (sync and eos) state.</p>
-<div class="refsect3">
-<a name="gst-audio-decoder-get-parse-state.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>dec</p></td>
-<td class="parameter_description"><p>a <a class="link" href="gst-plugins-base-libs-gstaudiodecoder.html#GstAudioDecoder"><span class="type">GstAudioDecoder</span></a></p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-<tr>
-<td class="parameter_name"><p>sync</p></td>
-<td class="parameter_description"><p>a pointer to a variable to hold the current sync state</p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-<tr>
-<td class="parameter_name"><p>eos</p></td>
-<td class="parameter_description"><p>a pointer to a variable to hold the current eos state</p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-</tbody>
-</table></div>
-</div>
 </div>
 <hr>
 <div class="refsect2">
 <a name="gst-audio-decoder-get-plc"></a><h3>gst_audio_decoder_get_plc ()</h3>
 <pre class="programlisting"><a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
 gst_audio_decoder_get_plc (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstaudiodecoder.html#GstAudioDecoder"><span class="type">GstAudioDecoder</span></a> *dec</code></em>);</pre>
-<p>Queries decoder packet loss concealment handling.</p>
-<div class="refsect3">
-<a name="gst-audio-decoder-get-plc.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>dec</p></td>
-<td class="parameter_description"><p>a <a class="link" href="gst-plugins-base-libs-gstaudiodecoder.html#GstAudioDecoder"><span class="type">GstAudioDecoder</span></a></p></td>
-<td class="parameter_annotations"> </td>
-</tr></tbody>
-</table></div>
-</div>
-<div class="refsect3">
-<a name="gst-audio-decoder-get-plc.returns"></a><h4>Returns</h4>
-<p> TRUE if packet loss concealment is enabled.</p>
-<p>MT safe.</p>
-</div>
 </div>
 <hr>
 <div class="refsect2">
 <a name="gst-audio-decoder-get-plc-aware"></a><h3>gst_audio_decoder_get_plc_aware ()</h3>
 <pre class="programlisting"><a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#gint"><span class="returnvalue">gint</span></a>
 gst_audio_decoder_get_plc_aware (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstaudiodecoder.html#GstAudioDecoder"><span class="type">GstAudioDecoder</span></a> *dec</code></em>);</pre>
-<div class="refsect3">
-<a name="gst-audio-decoder-get-plc-aware.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>dec</p></td>
-<td class="parameter_description"><p>a <a class="link" href="gst-plugins-base-libs-gstaudiodecoder.html#GstAudioDecoder"><span class="type">GstAudioDecoder</span></a></p></td>
-<td class="parameter_annotations"> </td>
-</tr></tbody>
-</table></div>
-</div>
-<div class="refsect3">
-<a name="gst-audio-decoder-get-plc-aware.returns"></a><h4>Returns</h4>
-<p> currently configured plc handling</p>
-</div>
 </div>
 <hr>
 <div class="refsect2">
 <a name="gst-audio-decoder-get-tolerance"></a><h3>gst_audio_decoder_get_tolerance ()</h3>
 <pre class="programlisting"><a href="/usr/share/gtk-doc/html/gstreamer-1.0GstClock.html#GstClockTime"><span class="returnvalue">GstClockTime</span></a>
 gst_audio_decoder_get_tolerance (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstaudiodecoder.html#GstAudioDecoder"><span class="type">GstAudioDecoder</span></a> *dec</code></em>);</pre>
-<p>Queries current audio jitter tolerance threshold.</p>
-<div class="refsect3">
-<a name="gst-audio-decoder-get-tolerance.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>dec</p></td>
-<td class="parameter_description"><p>a <a class="link" href="gst-plugins-base-libs-gstaudiodecoder.html#GstAudioDecoder"><span class="type">GstAudioDecoder</span></a></p></td>
-<td class="parameter_annotations"> </td>
-</tr></tbody>
-</table></div>
-</div>
-<div class="refsect3">
-<a name="gst-audio-decoder-get-tolerance.returns"></a><h4>Returns</h4>
-<p> decoder audio jitter tolerance threshold.</p>
-<p>MT safe.</p>
-</div>
 </div>
 <hr>
 <div class="refsect2">
@@ -1107,29 +494,6 @@
 <pre class="programlisting"><span class="returnvalue">void</span>
 gst_audio_decoder_set_estimate_rate (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstaudiodecoder.html#GstAudioDecoder"><span class="type">GstAudioDecoder</span></a> *dec</code></em>,
                                      <em class="parameter"><code><a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a> enabled</code></em>);</pre>
-<p>Allows baseclass to perform byte to time estimated conversion.</p>
-<div class="refsect3">
-<a name="gst-audio-decoder-set-estimate-rate.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>dec</p></td>
-<td class="parameter_description"><p>a <a class="link" href="gst-plugins-base-libs-gstaudiodecoder.html#GstAudioDecoder"><span class="type">GstAudioDecoder</span></a></p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-<tr>
-<td class="parameter_name"><p>enabled</p></td>
-<td class="parameter_description"><p>whether to enable byte to time conversion</p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-</tbody>
-</table></div>
-</div>
 </div>
 <hr>
 <div class="refsect2">
@@ -1137,33 +501,6 @@
 <pre class="programlisting"><span class="returnvalue">void</span>
 gst_audio_decoder_set_drainable (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstaudiodecoder.html#GstAudioDecoder"><span class="type">GstAudioDecoder</span></a> *dec</code></em>,
                                  <em class="parameter"><code><a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a> enabled</code></em>);</pre>
-<p>Configures decoder drain handling.  If drainable, subclass might
-be handed a NULL buffer to have it return any leftover decoded data.
-Otherwise, it is not considered so capable and will only ever be passed
-real data.</p>
-<p>MT safe.</p>
-<div class="refsect3">
-<a name="gst-audio-decoder-set-drainable.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>dec</p></td>
-<td class="parameter_description"><p>a <a class="link" href="gst-plugins-base-libs-gstaudiodecoder.html#GstAudioDecoder"><span class="type">GstAudioDecoder</span></a></p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-<tr>
-<td class="parameter_name"><p>enabled</p></td>
-<td class="parameter_description"><p>new state</p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-</tbody>
-</table></div>
-</div>
 </div>
 <hr>
 <div class="refsect2">
@@ -1172,34 +509,6 @@
 gst_audio_decoder_set_latency (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstaudiodecoder.html#GstAudioDecoder"><span class="type">GstAudioDecoder</span></a> *dec</code></em>,
                                <em class="parameter"><code><a href="/usr/share/gtk-doc/html/gstreamer-1.0GstClock.html#GstClockTime"><span class="type">GstClockTime</span></a> min</code></em>,
                                <em class="parameter"><code><a href="/usr/share/gtk-doc/html/gstreamer-1.0GstClock.html#GstClockTime"><span class="type">GstClockTime</span></a> max</code></em>);</pre>
-<p>Sets decoder latency.</p>
-<div class="refsect3">
-<a name="gst-audio-decoder-set-latency.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>dec</p></td>
-<td class="parameter_description"><p>a <a class="link" href="gst-plugins-base-libs-gstaudiodecoder.html#GstAudioDecoder"><span class="type">GstAudioDecoder</span></a></p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-<tr>
-<td class="parameter_name"><p>min</p></td>
-<td class="parameter_description"><p>minimum latency</p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-<tr>
-<td class="parameter_name"><p>max</p></td>
-<td class="parameter_description"><p>maximum latency</p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-</tbody>
-</table></div>
-</div>
 </div>
 <hr>
 <div class="refsect2">
@@ -1207,32 +516,6 @@
 <pre class="programlisting"><span class="returnvalue">void</span>
 gst_audio_decoder_set_max_errors (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstaudiodecoder.html#GstAudioDecoder"><span class="type">GstAudioDecoder</span></a> *dec</code></em>,
                                   <em class="parameter"><code><a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#gint"><span class="type">gint</span></a> num</code></em>);</pre>
-<p>Sets numbers of tolerated decoder errors, where a tolerated one is then only
-warned about, but more than tolerated will lead to fatal error. You can set
--1 for never returning fatal errors. Default is set to
-GST_AUDIO_DECODER_MAX_ERRORS.</p>
-<div class="refsect3">
-<a name="gst-audio-decoder-set-max-errors.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>dec</p></td>
-<td class="parameter_description"><p>a <a class="link" href="gst-plugins-base-libs-gstaudiodecoder.html#GstAudioDecoder"><span class="type">GstAudioDecoder</span></a></p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-<tr>
-<td class="parameter_name"><p>num</p></td>
-<td class="parameter_description"><p>max tolerated errors</p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-</tbody>
-</table></div>
-</div>
 </div>
 <hr>
 <div class="refsect2">
@@ -1240,30 +523,6 @@
 <pre class="programlisting"><span class="returnvalue">void</span>
 gst_audio_decoder_set_min_latency (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstaudiodecoder.html#GstAudioDecoder"><span class="type">GstAudioDecoder</span></a> *dec</code></em>,
                                    <em class="parameter"><code><a href="/usr/share/gtk-doc/html/gstreamer-1.0GstClock.html#GstClockTime"><span class="type">GstClockTime</span></a> num</code></em>);</pre>
-<p>Sets decoder minimum aggregation latency.</p>
-<p>MT safe.</p>
-<div class="refsect3">
-<a name="gst-audio-decoder-set-min-latency.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>dec</p></td>
-<td class="parameter_description"><p>a <a class="link" href="gst-plugins-base-libs-gstaudiodecoder.html#GstAudioDecoder"><span class="type">GstAudioDecoder</span></a></p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-<tr>
-<td class="parameter_name"><p>num</p></td>
-<td class="parameter_description"><p>new minimum latency</p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-</tbody>
-</table></div>
-</div>
 </div>
 <hr>
 <div class="refsect2">
@@ -1271,35 +530,6 @@
 <pre class="programlisting"><span class="returnvalue">void</span>
 gst_audio_decoder_set_needs_format (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstaudiodecoder.html#GstAudioDecoder"><span class="type">GstAudioDecoder</span></a> *dec</code></em>,
                                     <em class="parameter"><code><a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a> enabled</code></em>);</pre>
-<p>Configures decoder format needs.  If enabled, subclass needs to be
-negotiated with format caps before it can process any data.  It will then
-never be handed any data before it has been configured.
-Otherwise, it might be handed data without having been configured and
-is then expected being able to do so either by default
-or based on the input data.</p>
-<p>MT safe.</p>
-<div class="refsect3">
-<a name="gst-audio-decoder-set-needs-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>dec</p></td>
-<td class="parameter_description"><p>a <a class="link" href="gst-plugins-base-libs-gstaudiodecoder.html#GstAudioDecoder"><span class="type">GstAudioDecoder</span></a></p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-<tr>
-<td class="parameter_name"><p>enabled</p></td>
-<td class="parameter_description"><p>new state</p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-</tbody>
-</table></div>
-</div>
 </div>
 <hr>
 <div class="refsect2">
@@ -1307,31 +537,6 @@
 <pre class="programlisting"><span class="returnvalue">void</span>
 gst_audio_decoder_set_plc (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstaudiodecoder.html#GstAudioDecoder"><span class="type">GstAudioDecoder</span></a> *dec</code></em>,
                            <em class="parameter"><code><a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a> enabled</code></em>);</pre>
-<p>Enable or disable decoder packet loss concealment, provided subclass
-and codec are capable and allow handling plc.</p>
-<p>MT safe.</p>
-<div class="refsect3">
-<a name="gst-audio-decoder-set-plc.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>dec</p></td>
-<td class="parameter_description"><p>a <a class="link" href="gst-plugins-base-libs-gstaudiodecoder.html#GstAudioDecoder"><span class="type">GstAudioDecoder</span></a></p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-<tr>
-<td class="parameter_name"><p>enabled</p></td>
-<td class="parameter_description"><p>new state</p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-</tbody>
-</table></div>
-</div>
 </div>
 <hr>
 <div class="refsect2">
@@ -1339,29 +544,6 @@
 <pre class="programlisting"><span class="returnvalue">void</span>
 gst_audio_decoder_set_plc_aware (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstaudiodecoder.html#GstAudioDecoder"><span class="type">GstAudioDecoder</span></a> *dec</code></em>,
                                  <em class="parameter"><code><a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a> plc</code></em>);</pre>
-<p>Indicates whether or not subclass handles packet loss concealment (plc).</p>
-<div class="refsect3">
-<a name="gst-audio-decoder-set-plc-aware.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>dec</p></td>
-<td class="parameter_description"><p>a <a class="link" href="gst-plugins-base-libs-gstaudiodecoder.html#GstAudioDecoder"><span class="type">GstAudioDecoder</span></a></p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-<tr>
-<td class="parameter_name"><p>plc</p></td>
-<td class="parameter_description"><p>new plc state</p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-</tbody>
-</table></div>
-</div>
 </div>
 <hr>
 <div class="refsect2">
@@ -1369,30 +551,6 @@
 <pre class="programlisting"><span class="returnvalue">void</span>
 gst_audio_decoder_set_tolerance (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstaudiodecoder.html#GstAudioDecoder"><span class="type">GstAudioDecoder</span></a> *dec</code></em>,
                                  <em class="parameter"><code><a href="/usr/share/gtk-doc/html/gstreamer-1.0GstClock.html#GstClockTime"><span class="type">GstClockTime</span></a> tolerance</code></em>);</pre>
-<p>Configures decoder audio jitter tolerance threshold.</p>
-<p>MT safe.</p>
-<div class="refsect3">
-<a name="gst-audio-decoder-set-tolerance.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>dec</p></td>
-<td class="parameter_description"><p>a <a class="link" href="gst-plugins-base-libs-gstaudiodecoder.html#GstAudioDecoder"><span class="type">GstAudioDecoder</span></a></p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-<tr>
-<td class="parameter_name"><p>tolerance</p></td>
-<td class="parameter_description"><p>new tolerance</p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-</tbody>
-</table></div>
-</div>
 </div>
 <hr>
 <div class="refsect2">
@@ -1401,38 +559,6 @@
 gst_audio_decoder_merge_tags (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstaudiodecoder.html#GstAudioDecoder"><span class="type">GstAudioDecoder</span></a> *dec</code></em>,
                               <em class="parameter"><code>const <a href="/usr/share/gtk-doc/html/gstreamer-1.0GstTagList.html#GstTagList-struct"><span class="type">GstTagList</span></a> *tags</code></em>,
                               <em class="parameter"><code><a href="/usr/share/gtk-doc/html/gstreamer-1.0GstTagList.html#GstTagMergeMode"><span class="type">GstTagMergeMode</span></a> mode</code></em>);</pre>
-<p>Sets the audio decoder tags and how they should be merged with any
-upstream stream tags. This will override any tags previously-set
-with <a class="link" href="gst-plugins-base-libs-gstaudiodecoder.html#gst-audio-decoder-merge-tags" title="gst_audio_decoder_merge_tags ()"><code class="function">gst_audio_decoder_merge_tags()</code></a>.</p>
-<p>Note that this is provided for convenience, and the subclass is
-not required to use this and can still do tag handling on its own.</p>
-<div class="refsect3">
-<a name="gst-audio-decoder-merge-tags.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>dec</p></td>
-<td class="parameter_description"><p>a <a class="link" href="gst-plugins-base-libs-gstaudiodecoder.html#GstAudioDecoder"><span class="type">GstAudioDecoder</span></a></p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-<tr>
-<td class="parameter_name"><p>tags</p></td>
-<td class="parameter_description"><p> a <a href="/usr/share/gtk-doc/html/gstreamer-1.0GstTagList.html#GstTagList-struct"><span class="type">GstTagList</span></a> to merge, or NULL. </p></td>
-<td class="parameter_annotations"><span class="annotation">[<acronym title="NULL is OK, both for passing and for returning."><span class="acronym">allow-none</span></acronym>]</span></td>
-</tr>
-<tr>
-<td class="parameter_name"><p>mode</p></td>
-<td class="parameter_description"><p>the <a href="/usr/share/gtk-doc/html/gstreamer-1.0GstTagList.html#GstTagMergeMode"><span class="type">GstTagMergeMode</span></a> to use, usually <a href="/usr/share/gtk-doc/html/gstreamer-1.0GstTagList.html#GST-TAG-MERGE-REPLACE:CAPS"><span class="type">GST_TAG_MERGE_REPLACE</span></a></p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-</tbody>
-</table></div>
-</div>
 </div>
 <hr>
 <div class="refsect2">
@@ -1441,44 +567,6 @@
 gst_audio_decoder_proxy_getcaps (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstaudiodecoder.html#GstAudioDecoder"><span class="type">GstAudioDecoder</span></a> *decoder</code></em>,
                                  <em class="parameter"><code><a href="/usr/share/gtk-doc/html/gstreamer-1.0GstCaps.html#GstCaps-struct"><span class="type">GstCaps</span></a> *caps</code></em>,
                                  <em class="parameter"><code><a href="/usr/share/gtk-doc/html/gstreamer-1.0GstCaps.html#GstCaps-struct"><span class="type">GstCaps</span></a> *filter</code></em>);</pre>
-<p>Returns caps that express <em class="parameter"><code>caps</code></em>
- (or sink template caps if <em class="parameter"><code>caps</code></em>
- == NULL)
-restricted to rate/channels/... combinations supported by downstream
-elements.</p>
-<div class="refsect3">
-<a name="gst-audio-decoder-proxy-getcaps.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>decoder</p></td>
-<td class="parameter_description"><p>a <a class="link" href="gst-plugins-base-libs-gstaudiodecoder.html#GstAudioDecoder"><span class="type">GstAudioDecoder</span></a></p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-<tr>
-<td class="parameter_name"><p>caps</p></td>
-<td class="parameter_description"><p> initial caps. </p></td>
-<td class="parameter_annotations"><span class="annotation">[<acronym title="NULL is OK, both for passing and for returning."><span class="acronym">allow-none</span></acronym>]</span></td>
-</tr>
-<tr>
-<td class="parameter_name"><p>filter</p></td>
-<td class="parameter_description"><p> filter caps. </p></td>
-<td class="parameter_annotations"><span class="annotation">[<acronym title="NULL is OK, both for passing and for returning."><span class="acronym">allow-none</span></acronym>]</span></td>
-</tr>
-</tbody>
-</table></div>
-</div>
-<div class="refsect3">
-<a name="gst-audio-decoder-proxy-getcaps.returns"></a><h4>Returns</h4>
-<p> a <a href="/usr/share/gtk-doc/html/gstreamer-1.0GstCaps.html#GstCaps-struct"><span class="type">GstCaps</span></a> owned by caller. </p>
-<p><span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>]</span></p>
-</div>
-<p class="since">Since: 1.6</p>
 </div>
 </div>
 <div class="refsect1">
@@ -1486,7 +574,6 @@
 <div class="refsect2">
 <a name="GstAudioDecoder-struct"></a><h3>struct GstAudioDecoder</h3>
 <pre class="programlisting">struct GstAudioDecoder;</pre>
-<p>The opaque <a class="link" href="gst-plugins-base-libs-gstaudiodecoder.html#GstAudioDecoder"><span class="type">GstAudioDecoder</span></a> data structure.</p>
 </div>
 <hr>
 <div class="refsect2">
@@ -1542,187 +629,18 @@
                                        GstMeta *meta, GstBuffer *inbuf);
 };
 </pre>
-<p>Subclasses can override any of the available virtual methods or not, as
-needed. At minimum <em class="parameter"><code>handle_frame</code></em>
- (and likely <em class="parameter"><code>set_format</code></em>
-) needs to be
-overridden.</p>
-<div class="refsect3">
-<a name="GstAudioDecoderClass.members"></a><h4>Members</h4>
-<div class="informaltable"><table class="informaltable" width="100%" border="0">
-<colgroup>
-<col width="300px" class="struct_members_name">
-<col class="struct_members_description">
-<col width="200px" class="struct_members_annotations">
-</colgroup>
-<tbody>
-<tr>
-<td class="struct_member_name"><p><a href="/usr/share/gtk-doc/html/gstreamer-1.0GstElement.html#GstElementClass"><span class="type">GstElementClass</span></a> <em class="structfield"><code><a name="GstAudioDecoderClass.element-class"></a>element_class</code></em>;</p></td>
-<td class="struct_member_description"><p>The parent class structure</p></td>
-<td class="struct_member_annotations"> </td>
-</tr>
-<tr>
-<td class="struct_member_name"><p><em class="structfield"><code><a name="GstAudioDecoderClass.start"></a>start</code></em> ()</p></td>
-<td class="struct_member_description"><p>Optional.
-Called when the element starts processing.
-Allows opening external resources.</p></td>
-<td class="struct_member_annotations"> </td>
-</tr>
-<tr>
-<td class="struct_member_name"><p><em class="structfield"><code><a name="GstAudioDecoderClass.stop"></a>stop</code></em> ()</p></td>
-<td class="struct_member_description"><p>Optional.
-Called when the element stops processing.
-Allows closing external resources.</p></td>
-<td class="struct_member_annotations"> </td>
-</tr>
-<tr>
-<td class="struct_member_name"><p><em class="structfield"><code><a name="GstAudioDecoderClass.set-format"></a>set_format</code></em> ()</p></td>
-<td class="struct_member_description"><p>Notifies subclass of incoming data format (caps).</p></td>
-<td class="struct_member_annotations"> </td>
-</tr>
-<tr>
-<td class="struct_member_name"><p><em class="structfield"><code><a name="GstAudioDecoderClass.parse"></a>parse</code></em> ()</p></td>
-<td class="struct_member_description"><p>Optional.
-Allows chopping incoming data into manageable units (frames)
-for subsequent decoding.  This division is at subclass
-discretion and may or may not correspond to 1 (or more)
-frames as defined by audio format.</p></td>
-<td class="struct_member_annotations"> </td>
-</tr>
-<tr>
-<td class="struct_member_name"><p><em class="structfield"><code><a name="GstAudioDecoderClass.handle-frame"></a>handle_frame</code></em> ()</p></td>
-<td class="struct_member_description"><p>Provides input data (or NULL to clear any remaining data)
-to subclass.  Input data ref management is performed by
-base class, subclass should not care or intervene,
-and input data is only valid until next call to base class,
-most notably a call to <a class="link" href="gst-plugins-base-libs-gstaudiodecoder.html#gst-audio-decoder-finish-frame" title="gst_audio_decoder_finish_frame ()"><code class="function">gst_audio_decoder_finish_frame()</code></a>.</p></td>
-<td class="struct_member_annotations"> </td>
-</tr>
-<tr>
-<td class="struct_member_name"><p><em class="structfield"><code><a name="GstAudioDecoderClass.flush"></a>flush</code></em> ()</p></td>
-<td class="struct_member_description"><p>Optional.
-Instructs subclass to clear any codec caches and discard
-any pending samples and not yet returned decoded data.
-<em class="parameter"><code>hard</code></em>
-indicates whether a FLUSH is being processed,
-or otherwise a DISCONT (or conceptually similar).</p></td>
-<td class="struct_member_annotations"> </td>
-</tr>
-<tr>
-<td class="struct_member_name"><p><em class="structfield"><code><a name="GstAudioDecoderClass.pre-push"></a>pre_push</code></em> ()</p></td>
-<td class="struct_member_description"><p>Optional.
-Called just prior to pushing (encoded data) buffer downstream.
-Subclass has full discretionary access to buffer,
-and a not OK flow return will abort downstream pushing.</p></td>
-<td class="struct_member_annotations"> </td>
-</tr>
-<tr>
-<td class="struct_member_name"><p><em class="structfield"><code><a name="GstAudioDecoderClass.sink-event"></a>sink_event</code></em> ()</p></td>
-<td class="struct_member_description"><p>Optional.
-Event handler on the sink pad. Subclasses should chain up to
-the parent implementation to invoke the default handler.</p></td>
-<td class="struct_member_annotations"> </td>
-</tr>
-<tr>
-<td class="struct_member_name"><p><em class="structfield"><code><a name="GstAudioDecoderClass.src-event"></a>src_event</code></em> ()</p></td>
-<td class="struct_member_description"><p>Optional.
-Event handler on the src pad. Subclasses should chain up to
-the parent implementation to invoke the default handler.</p></td>
-<td class="struct_member_annotations"> </td>
-</tr>
-<tr>
-<td class="struct_member_name"><p><em class="structfield"><code><a name="GstAudioDecoderClass.open"></a>open</code></em> ()</p></td>
-<td class="struct_member_description"><p>Optional.
-Called when the element changes to GST_STATE_READY.
-Allows opening external resources.</p></td>
-<td class="struct_member_annotations"> </td>
-</tr>
-<tr>
-<td class="struct_member_name"><p><em class="structfield"><code><a name="GstAudioDecoderClass.close"></a>close</code></em> ()</p></td>
-<td class="struct_member_description"><p>Optional.
-Called when the element changes to GST_STATE_NULL.
-Allows closing external resources.</p></td>
-<td class="struct_member_annotations"> </td>
-</tr>
-<tr>
-<td class="struct_member_name"><p><em class="structfield"><code><a name="GstAudioDecoderClass.negotiate"></a>negotiate</code></em> ()</p></td>
-<td class="struct_member_description"><p>Optional.
-Negotiate with downstream and configure buffer pools, etc.
-Subclasses should chain up to the parent implementation to
-invoke the default handler.</p></td>
-<td class="struct_member_annotations"> </td>
-</tr>
-<tr>
-<td class="struct_member_name"><p><em class="structfield"><code><a name="GstAudioDecoderClass.decide-allocation"></a>decide_allocation</code></em> ()</p></td>
-<td class="struct_member_description"><p>Optional.
-Setup the allocation parameters for allocating output
-buffers. The passed in query contains the result of the
-downstream allocation query.
-Subclasses should chain up to the parent implementation to
-invoke the default handler.</p></td>
-<td class="struct_member_annotations"> </td>
-</tr>
-<tr>
-<td class="struct_member_name"><p><em class="structfield"><code><a name="GstAudioDecoderClass.propose-allocation"></a>propose_allocation</code></em> ()</p></td>
-<td class="struct_member_description"><p>Optional.
-Propose buffer allocation parameters for upstream elements.
-Subclasses should chain up to the parent implementation to
-invoke the default handler.</p></td>
-<td class="struct_member_annotations"> </td>
-</tr>
-<tr>
-<td class="struct_member_name"><p><em class="structfield"><code><a name="GstAudioDecoderClass.sink-query"></a>sink_query</code></em> ()</p></td>
-<td class="struct_member_description"><p>Optional.
-Query handler on the sink pad. This function should
-return TRUE if the query could be performed. Subclasses
-should chain up to the parent implementation to invoke the
-default handler. Since 1.6</p></td>
-<td class="struct_member_annotations"> </td>
-</tr>
-<tr>
-<td class="struct_member_name"><p><em class="structfield"><code><a name="GstAudioDecoderClass.src-query"></a>src_query</code></em> ()</p></td>
-<td class="struct_member_description"><p>Optional.
-Query handler on the source pad. This function should
-return TRUE if the query could be performed. Subclasses
-should chain up to the parent implementation to invoke the
-default handler. Since 1.6</p></td>
-<td class="struct_member_annotations"> </td>
-</tr>
-<tr>
-<td class="struct_member_name"><p><em class="structfield"><code><a name="GstAudioDecoderClass.getcaps"></a>getcaps</code></em> ()</p></td>
-<td class="struct_member_description"><p>Optional.
-Allows for a custom sink getcaps implementation.
-If not implemented,
-default returns gst_audio_decoder_proxy_getcaps
-applied to sink template caps.</p></td>
-<td class="struct_member_annotations"> </td>
-</tr>
-<tr>
-<td class="struct_member_name"><p><em class="structfield"><code><a name="GstAudioDecoderClass.transform-meta"></a>transform_meta</code></em> ()</p></td>
-<td class="struct_member_description"><p>Optional. Transform the metadata on the input buffer to the
-output buffer. By default this method copies all meta without
-tags and meta with only the "audio" tag. subclasses can
-implement this method and return <a href="/usr/share/gtk-doc/html/glibglib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a> if the metadata is to be
-copied. Since 1.6</p></td>
-<td class="struct_member_annotations"> </td>
-</tr>
-</tbody>
-</table></div>
-</div>
 </div>
 <hr>
 <div class="refsect2">
 <a name="GST-AUDIO-DECODER-SINK-NAME:CAPS"></a><h3>GST_AUDIO_DECODER_SINK_NAME</h3>
 <pre class="programlisting">#define GST_AUDIO_DECODER_SINK_NAME    "sink"
 </pre>
-<p>The name of the templates for the sink pad.</p>
 </div>
 <hr>
 <div class="refsect2">
 <a name="GST-AUDIO-DECODER-SRC-NAME:CAPS"></a><h3>GST_AUDIO_DECODER_SRC_NAME</h3>
 <pre class="programlisting">#define GST_AUDIO_DECODER_SRC_NAME     "src"
 </pre>
-<p>The name of the templates for the source pad.</p>
 </div>
 </div>
 <div class="refsect1">
@@ -1753,10 +671,6 @@
 <p>Default value: 0</p>
 </div>
 </div>
-<div class="refsect1">
-<a name="gst-plugins-base-libs-gstaudiodecoder.see-also"></a><h2>See Also</h2>
-<p><a href="/usr/share/gtk-doc/html/gstreamer-libs-1.0GstBaseTransform.html#GstBaseTransform-struct"><span class="type">GstBaseTransform</span></a></p>
-</div>
 </div>
 <div class="footer">
 <hr>Generated by GTK-Doc V1.25</div>
diff --git a/docs/libs/html/gst-plugins-base-libs-gstaudioencoder.html b/docs/libs/html/gst-plugins-base-libs-gstaudioencoder.html
index c9a13fb..5288067 100644
--- a/docs/libs/html/gst-plugins-base-libs-gstaudioencoder.html
+++ b/docs/libs/html/gst-plugins-base-libs-gstaudioencoder.html
@@ -30,7 +30,7 @@
 <div class="refnamediv"><table width="100%"><tr>
 <td valign="top">
 <h2><span class="refentrytitle"><a name="gst-plugins-base-libs-gstaudioencoder.top_of_page"></a>gstaudioencoder</span></h2>
-<p>gstaudioencoder — Base class for audio encoders</p>
+<p>gstaudioencoder</p>
 </td>
 <td class="gallery_image" valign="top" align="right"></td>
 </tr></table></div>
@@ -386,118 +386,6 @@
 </div>
 <div class="refsect1">
 <a name="gst-plugins-base-libs-gstaudioencoder.description"></a><h2>Description</h2>
-<p>This base class is for audio encoders turning raw audio samples into
-encoded audio data.</p>
-<p>GstAudioEncoder and subclass should cooperate as follows.</p>
-<div class="orderedlist"><ol class="orderedlist" type="1">
-<li class="listitem"><div class="itemizedlist">
-<p class="title"><b>Configuration</b></p>
-<ul class="itemizedlist" style="list-style-type: disc; ">
-<li class="listitem"><p>
-    Initially, GstAudioEncoder calls <em class="parameter"><code>start</code></em> when the encoder element
-    is activated, which allows subclass to perform any global setup.
-  </p></li>
-<li class="listitem"><p>
-    GstAudioEncoder calls <em class="parameter"><code>set_format</code></em> to inform subclass of the format
-    of input audio data that it is about to receive.  Subclass should
-    setup for encoding and configure various base class parameters
-    appropriately, notably those directing desired input data handling.
-    While unlikely, it might be called more than once, if changing input
-    parameters require reconfiguration.
-  </p></li>
-<li class="listitem"><p>
-    GstAudioEncoder calls <em class="parameter"><code>stop</code></em> at end of all processing.
-  </p></li>
-</ul>
-</div></li>
-<li class="listitem"><div class="itemizedlist">
-<p class="title"><b>Data processing</b></p>
-<ul class="itemizedlist" style="list-style-type: disc; ">
-<li class="listitem"><p>
-      Base class gathers input sample data (as directed by the context's
-      frame_samples and frame_max) and provides this to subclass' <em class="parameter"><code>handle_frame</code></em>.
-    </p></li>
-<li class="listitem"><p>
-      If codec processing results in encoded data, subclass should call
-      <a class="link" href="gst-plugins-base-libs-gstaudioencoder.html#gst-audio-encoder-finish-frame" title="gst_audio_encoder_finish_frame ()"><code class="function">gst_audio_encoder_finish_frame()</code></a> to have encoded data pushed
-      downstream. Alternatively, it might also call
-      <a class="link" href="gst-plugins-base-libs-gstaudioencoder.html#gst-audio-encoder-finish-frame" title="gst_audio_encoder_finish_frame ()"><code class="function">gst_audio_encoder_finish_frame()</code></a> (with a NULL buffer and some number of
-      dropped samples) to indicate dropped (non-encoded) samples.
-    </p></li>
-<li class="listitem"><p>
-      Just prior to actually pushing a buffer downstream,
-      it is passed to <em class="parameter"><code>pre_push</code></em>.
-    </p></li>
-<li class="listitem"><p>
-      During the parsing process GstAudioEncoderClass will handle both
-      srcpad and sinkpad events. Sink events will be passed to subclass
-      if <em class="parameter"><code>event</code></em> callback has been provided.
-    </p></li>
-</ul>
-</div></li>
-<li class="listitem"><div class="itemizedlist">
-<p class="title"><b>Shutdown phase</b></p>
-<ul class="itemizedlist" style="list-style-type: disc; "><li class="listitem"><p>
-    GstAudioEncoder class calls <em class="parameter"><code>stop</code></em> to inform the subclass that data
-    parsing will be stopped.
-  </p></li></ul>
-</div></li>
-</ol></div>
-<p>Subclass is responsible for providing pad template caps for
-source and sink pads. The pads need to be named "sink" and "src". It also
-needs to set the fixed caps on srcpad, when the format is ensured.  This
-is typically when base class calls subclass' <em class="parameter"><code>set_format</code></em>
- function, though
-it might be delayed until calling <em class="parameter"><code>gst_audio_encoder_finish_frame</code></em>
-.</p>
-<p>In summary, above process should have subclass concentrating on
-codec data processing while leaving other matters to base class,
-such as most notably timestamp handling.  While it may exert more control
-in this area (see e.g. <em class="parameter"><code>pre_push</code></em>
-), it is very much not recommended.</p>
-<p>In particular, base class will either favor tracking upstream timestamps
-(at the possible expense of jitter) or aim to arrange for a perfect stream of
-output timestamps, depending on <a class="link" href="gst-plugins-base-libs-gstaudioencoder.html#GstAudioEncoder--perfect-timestamp" title="The “perfect-timestamp” property"><span class="type">“perfect-timestamp”</span></a>.
-However, in the latter case, the input may not be so perfect or ideal, which
-is handled as follows.  An input timestamp is compared with the expected
-timestamp as dictated by input sample stream and if the deviation is less
-than <a class="link" href="gst-plugins-base-libs-gstaudioencoder.html#GstAudioEncoder--tolerance" title="The “tolerance” property"><span class="type">“tolerance”</span></a>, the deviation is discarded.
-Otherwise, it is considered a discontuinity and subsequent output timestamp
-is resynced to the new position after performing configured discontinuity
-processing.  In the non-perfect-timestamp case, an upstream variation
-exceeding tolerance only leads to marking DISCONT on subsequent outgoing
-(while timestamps are adjusted to upstream regardless of variation).
-While DISCONT is also marked in the perfect-timestamp case, this one
-optionally (see <a class="link" href="gst-plugins-base-libs-gstaudioencoder.html#GstAudioEncoder--hard-resync" title="The “hard-resync” property"><span class="type">“hard-resync”</span></a>)
-performs some additional steps, such as clipping of (early) input samples
-or draining all currently remaining input data, depending on the direction
-of the discontuinity.</p>
-<p>If perfect timestamps are arranged, it is also possible to request baseclass
-(usually set by subclass) to provide additional buffer metadata (in OFFSET
-and OFFSET_END) fields according to granule defined semantics currently
-needed by oggmux.  Specifically, OFFSET is set to granulepos (= sample count
-including buffer) and OFFSET_END to corresponding timestamp (as determined
-by same sample count and sample rate).</p>
-<p>Things that subclass need to take care of:</p>
-<div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; ">
-<li class="listitem"><p>Provide pad templates</p></li>
-<li class="listitem"><p>
-     Set source pad caps when appropriate
-  </p></li>
-<li class="listitem"><p>
-     Inform base class of buffer processing needs using context's
-     frame_samples and frame_bytes.
-  </p></li>
-<li class="listitem"><p>
-     Set user-configurable properties to sane defaults for format and
-     implementing codec at hand, e.g. those controlling timestamp behaviour
-     and discontinuity processing.
-  </p></li>
-<li class="listitem"><p>
-     Accept data in <em class="parameter"><code>handle_frame</code></em> and provide encoded results to
-     <a class="link" href="gst-plugins-base-libs-gstaudioencoder.html#gst-audio-encoder-finish-frame" title="gst_audio_encoder_finish_frame ()"><code class="function">gst_audio_encoder_finish_frame()</code></a>.
-  </p></li>
-</ul></div>
 </div>
 <div class="refsect1">
 <a name="gst-plugins-base-libs-gstaudioencoder.functions_details"></a><h2>Functions</h2>
@@ -505,44 +393,12 @@
 <a name="GST-AUDIO-ENCODER-SINK-PAD:CAPS"></a><h3>GST_AUDIO_ENCODER_SINK_PAD()</h3>
 <pre class="programlisting">#define GST_AUDIO_ENCODER_SINK_PAD(obj) (GST_AUDIO_ENCODER_CAST (obj)-&gt;sinkpad)
 </pre>
-<p>Gives the pointer to the sink <a href="/usr/share/gtk-doc/html/gstreamer-1.0GstPad.html#GstPad-struct"><span class="type">GstPad</span></a> object of the element.</p>
-<div class="refsect3">
-<a name="GST-AUDIO-ENCODER-SINK-PAD.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>obj</p></td>
-<td class="parameter_description"><p>audio encoder instance</p></td>
-<td class="parameter_annotations"> </td>
-</tr></tbody>
-</table></div>
-</div>
 </div>
 <hr>
 <div class="refsect2">
 <a name="GST-AUDIO-ENCODER-SRC-PAD:CAPS"></a><h3>GST_AUDIO_ENCODER_SRC_PAD()</h3>
 <pre class="programlisting">#define GST_AUDIO_ENCODER_SRC_PAD(obj) (GST_AUDIO_ENCODER_CAST (obj)-&gt;srcpad)
 </pre>
-<p>Gives the pointer to the source <a href="/usr/share/gtk-doc/html/gstreamer-1.0GstPad.html#GstPad-struct"><span class="type">GstPad</span></a> object of the element.</p>
-<div class="refsect3">
-<a name="GST-AUDIO-ENCODER-SRC-PAD.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>obj</p></td>
-<td class="parameter_description"><p>audio encoder instance</p></td>
-<td class="parameter_annotations"> </td>
-</tr></tbody>
-</table></div>
-</div>
 </div>
 <hr>
 <div class="refsect2">
@@ -551,48 +407,6 @@
 gst_audio_encoder_finish_frame (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstaudioencoder.html#GstAudioEncoder"><span class="type">GstAudioEncoder</span></a> *enc</code></em>,
                                 <em class="parameter"><code><a href="/usr/share/gtk-doc/html/gstreamer-1.0GstBuffer.html#GstBuffer-struct"><span class="type">GstBuffer</span></a> *buffer</code></em>,
                                 <em class="parameter"><code><a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#gint"><span class="type">gint</span></a> samples</code></em>);</pre>
-<p>Collects encoded data and pushes encoded data downstream.
-Source pad caps must be set when this is called.</p>
-<p>If <em class="parameter"><code>samples</code></em>
- &lt; 0, then best estimate is all samples provided to encoder
-(subclass) so far.  <em class="parameter"><code>buf</code></em>
- may be NULL, in which case next number of <em class="parameter"><code>samples</code></em>
-
-are considered discarded, e.g. as a result of discontinuous transmission,
-and a discontinuity is marked.</p>
-<p>Note that samples received in <code class="function">gst_audio_encoder_handle_frame()</code>
-may be invalidated by a call to this function.</p>
-<div class="refsect3">
-<a name="gst-audio-encoder-finish-frame.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>enc</p></td>
-<td class="parameter_description"><p>a <a class="link" href="gst-plugins-base-libs-gstaudioencoder.html#GstAudioEncoder"><span class="type">GstAudioEncoder</span></a></p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-<tr>
-<td class="parameter_name"><p>buffer</p></td>
-<td class="parameter_description"><p>encoded data</p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-<tr>
-<td class="parameter_name"><p>samples</p></td>
-<td class="parameter_description"><p>number of samples (per channel) represented by encoded data</p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-</tbody>
-</table></div>
-</div>
-<div class="refsect3">
-<a name="gst-audio-encoder-finish-frame.returns"></a><h4>Returns</h4>
-<p> a <a href="/usr/share/gtk-doc/html/gstreamer-1.0GstPad.html#GstFlowReturn"><span class="type">GstFlowReturn</span></a> that should be escalated to caller (of caller)</p>
-</div>
 </div>
 <hr>
 <div class="refsect2">
@@ -601,36 +415,6 @@
 gst_audio_encoder_allocate_output_buffer
                                (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstaudioencoder.html#GstAudioEncoder"><span class="type">GstAudioEncoder</span></a> *enc</code></em>,
                                 <em class="parameter"><code><a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#gsize"><span class="type">gsize</span></a> size</code></em>);</pre>
-<p>Helper function that allocates a buffer to hold an encoded audio frame
-for <em class="parameter"><code>enc</code></em>
-'s current output format.</p>
-<div class="refsect3">
-<a name="gst-audio-encoder-allocate-output-buffer.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>enc</p></td>
-<td class="parameter_description"><p>a <a class="link" href="gst-plugins-base-libs-gstaudioencoder.html#GstAudioEncoder"><span class="type">GstAudioEncoder</span></a></p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-<tr>
-<td class="parameter_name"><p>size</p></td>
-<td class="parameter_description"><p>size of the buffer</p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-</tbody>
-</table></div>
-</div>
-<div class="refsect3">
-<a name="gst-audio-encoder-allocate-output-buffer.returns"></a><h4>Returns</h4>
-<p> allocated buffer. </p>
-<p><span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>]</span></p>
-</div>
 </div>
 <hr>
 <div class="refsect2">
@@ -639,42 +423,6 @@
 gst_audio_encoder_get_allocator (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstaudioencoder.html#GstAudioEncoder"><span class="type">GstAudioEncoder</span></a> *enc</code></em>,
                                  <em class="parameter"><code><a href="/usr/share/gtk-doc/html/gstreamer-1.0GstAllocator.html#GstAllocator-struct"><span class="type">GstAllocator</span></a> **allocator</code></em>,
                                  <em class="parameter"><code><a href="/usr/share/gtk-doc/html/gstreamer-1.0GstAllocator.html#GstAllocationParams-struct"><span class="type">GstAllocationParams</span></a> *params</code></em>);</pre>
-<p>Lets <a class="link" href="gst-plugins-base-libs-gstaudioencoder.html#GstAudioEncoder"><span class="type">GstAudioEncoder</span></a> sub-classes to know the memory <em class="parameter"><code>allocator</code></em>
-
-used by the base class and its <em class="parameter"><code>params</code></em>
-.</p>
-<p>Unref the <em class="parameter"><code>allocator</code></em>
- after use it.</p>
-<div class="refsect3">
-<a name="gst-audio-encoder-get-allocator.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>enc</p></td>
-<td class="parameter_description"><p>a <a class="link" href="gst-plugins-base-libs-gstaudioencoder.html#GstAudioEncoder"><span class="type">GstAudioEncoder</span></a></p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-<tr>
-<td class="parameter_name"><p>allocator</p></td>
-<td class="parameter_description"><p> the <a href="/usr/share/gtk-doc/html/gstreamer-1.0GstAllocator.html#GstAllocator-struct"><span class="type">GstAllocator</span></a>
-used. </p></td>
-<td class="parameter_annotations"><span class="annotation">[<acronym title="Parameter for returning results. Default is transfer full."><span class="acronym">out</span></acronym>][<acronym title="NULL is OK, both for passing and for returning."><span class="acronym">allow-none</span></acronym>][<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>]</span></td>
-</tr>
-<tr>
-<td class="parameter_name"><p>params</p></td>
-<td class="parameter_description"><p> the
-<span class="type">GstAllocatorParams</span> of <em class="parameter"><code>allocator</code></em>
-. </p></td>
-<td class="parameter_annotations"><span class="annotation">[<acronym title="Parameter for returning results. Default is transfer full."><span class="acronym">out</span></acronym>][<acronym title="NULL is OK, both for passing and for returning."><span class="acronym">allow-none</span></acronym>][<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>]</span></td>
-</tr>
-</tbody>
-</table></div>
-</div>
 </div>
 <hr>
 <div class="refsect2">
@@ -688,105 +436,24 @@
 <a name="gst-audio-encoder-negotiate"></a><h3>gst_audio_encoder_negotiate ()</h3>
 <pre class="programlisting"><a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
 gst_audio_encoder_negotiate (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstaudioencoder.html#GstAudioEncoder"><span class="type">GstAudioEncoder</span></a> *enc</code></em>);</pre>
-<p>Negotiate with downstream elements to currently configured <a href="/usr/share/gtk-doc/html/gstreamer-1.0GstCaps.html#GstCaps-struct"><span class="type">GstCaps</span></a>.
-Unmark GST_PAD_FLAG_NEED_RECONFIGURE in any case. But mark it again if
-negotiate fails.</p>
-<div class="refsect3">
-<a name="gst-audio-encoder-negotiate.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>enc</p></td>
-<td class="parameter_description"><p>a <a class="link" href="gst-plugins-base-libs-gstaudioencoder.html#GstAudioEncoder"><span class="type">GstAudioEncoder</span></a></p></td>
-<td class="parameter_annotations"> </td>
-</tr></tbody>
-</table></div>
-</div>
-<div class="refsect3">
-<a name="gst-audio-encoder-negotiate.returns"></a><h4>Returns</h4>
-<p> <a href="/usr/share/gtk-doc/html/glibglib-Standard-Macros.html#TRUE:CAPS"><span class="type">TRUE</span></a> if the negotiation succeeded, else <a href="/usr/share/gtk-doc/html/glibglib-Standard-Macros.html#FALSE:CAPS"><span class="type">FALSE</span></a>.</p>
-</div>
 </div>
 <hr>
 <div class="refsect2">
 <a name="gst-audio-encoder-get-audio-info"></a><h3>gst_audio_encoder_get_audio_info ()</h3>
 <pre class="programlisting"><a class="link" href="gst-plugins-base-libs-gstaudio.html#GstAudioInfo" title="struct GstAudioInfo"><span class="returnvalue">GstAudioInfo</span></a> *
 gst_audio_encoder_get_audio_info (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstaudioencoder.html#GstAudioEncoder"><span class="type">GstAudioEncoder</span></a> *enc</code></em>);</pre>
-<div class="refsect3">
-<a name="gst-audio-encoder-get-audio-info.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>enc</p></td>
-<td class="parameter_description"><p>a <a class="link" href="gst-plugins-base-libs-gstaudioencoder.html#GstAudioEncoder"><span class="type">GstAudioEncoder</span></a></p></td>
-<td class="parameter_annotations"> </td>
-</tr></tbody>
-</table></div>
-</div>
-<div class="refsect3">
-<a name="gst-audio-encoder-get-audio-info.returns"></a><h4>Returns</h4>
-<p> a <a class="link" href="gst-plugins-base-libs-gstaudio.html#GstAudioInfo" title="struct GstAudioInfo"><span class="type">GstAudioInfo</span></a> describing the input audio format</p>
-</div>
 </div>
 <hr>
 <div class="refsect2">
 <a name="gst-audio-encoder-get-drainable"></a><h3>gst_audio_encoder_get_drainable ()</h3>
 <pre class="programlisting"><a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
 gst_audio_encoder_get_drainable (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstaudioencoder.html#GstAudioEncoder"><span class="type">GstAudioEncoder</span></a> *enc</code></em>);</pre>
-<p>Queries encoder drain handling.</p>
-<div class="refsect3">
-<a name="gst-audio-encoder-get-drainable.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>enc</p></td>
-<td class="parameter_description"><p>a <a class="link" href="gst-plugins-base-libs-gstaudioencoder.html#GstAudioEncoder"><span class="type">GstAudioEncoder</span></a></p></td>
-<td class="parameter_annotations"> </td>
-</tr></tbody>
-</table></div>
-</div>
-<div class="refsect3">
-<a name="gst-audio-encoder-get-drainable.returns"></a><h4>Returns</h4>
-<p> TRUE if drainable handling is enabled.</p>
-<p>MT safe.</p>
-</div>
 </div>
 <hr>
 <div class="refsect2">
 <a name="gst-audio-encoder-get-frame-max"></a><h3>gst_audio_encoder_get_frame_max ()</h3>
 <pre class="programlisting"><a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#gint"><span class="returnvalue">gint</span></a>
 gst_audio_encoder_get_frame_max (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstaudioencoder.html#GstAudioEncoder"><span class="type">GstAudioEncoder</span></a> *enc</code></em>);</pre>
-<div class="refsect3">
-<a name="gst-audio-encoder-get-frame-max.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>enc</p></td>
-<td class="parameter_description"><p>a <a class="link" href="gst-plugins-base-libs-gstaudioencoder.html#GstAudioEncoder"><span class="type">GstAudioEncoder</span></a></p></td>
-<td class="parameter_annotations"> </td>
-</tr></tbody>
-</table></div>
-</div>
-<div class="refsect3">
-<a name="gst-audio-encoder-get-frame-max.returns"></a><h4>Returns</h4>
-<p> currently configured maximum handled frames</p>
-</div>
 </div>
 <hr>
 <div class="refsect2">
@@ -794,25 +461,6 @@
 <pre class="programlisting"><a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#gint"><span class="returnvalue">gint</span></a>
 gst_audio_encoder_get_frame_samples_min
                                (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstaudioencoder.html#GstAudioEncoder"><span class="type">GstAudioEncoder</span></a> *enc</code></em>);</pre>
-<div class="refsect3">
-<a name="gst-audio-encoder-get-frame-samples-min.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>enc</p></td>
-<td class="parameter_description"><p>a <a class="link" href="gst-plugins-base-libs-gstaudioencoder.html#GstAudioEncoder"><span class="type">GstAudioEncoder</span></a></p></td>
-<td class="parameter_annotations"> </td>
-</tr></tbody>
-</table></div>
-</div>
-<div class="refsect3">
-<a name="gst-audio-encoder-get-frame-samples-min.returns"></a><h4>Returns</h4>
-<p> currently minimum requested samples per frame</p>
-</div>
 </div>
 <hr>
 <div class="refsect2">
@@ -820,52 +468,12 @@
 <pre class="programlisting"><a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#gint"><span class="returnvalue">gint</span></a>
 gst_audio_encoder_get_frame_samples_max
                                (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstaudioencoder.html#GstAudioEncoder"><span class="type">GstAudioEncoder</span></a> *enc</code></em>);</pre>
-<div class="refsect3">
-<a name="gst-audio-encoder-get-frame-samples-max.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>enc</p></td>
-<td class="parameter_description"><p>a <a class="link" href="gst-plugins-base-libs-gstaudioencoder.html#GstAudioEncoder"><span class="type">GstAudioEncoder</span></a></p></td>
-<td class="parameter_annotations"> </td>
-</tr></tbody>
-</table></div>
-</div>
-<div class="refsect3">
-<a name="gst-audio-encoder-get-frame-samples-max.returns"></a><h4>Returns</h4>
-<p> currently maximum requested samples per frame</p>
-</div>
 </div>
 <hr>
 <div class="refsect2">
 <a name="gst-audio-encoder-get-hard-min"></a><h3>gst_audio_encoder_get_hard_min ()</h3>
 <pre class="programlisting"><a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
 gst_audio_encoder_get_hard_min (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstaudioencoder.html#GstAudioEncoder"><span class="type">GstAudioEncoder</span></a> *enc</code></em>);</pre>
-<p>Queries encoder hard minimum handling.</p>
-<div class="refsect3">
-<a name="gst-audio-encoder-get-hard-min.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>enc</p></td>
-<td class="parameter_description"><p>a <a class="link" href="gst-plugins-base-libs-gstaudioencoder.html#GstAudioEncoder"><span class="type">GstAudioEncoder</span></a></p></td>
-<td class="parameter_annotations"> </td>
-</tr></tbody>
-</table></div>
-</div>
-<div class="refsect3">
-<a name="gst-audio-encoder-get-hard-min.returns"></a><h4>Returns</h4>
-<p> TRUE if hard minimum handling is enabled.</p>
-<p>MT safe.</p>
-</div>
 </div>
 <hr>
 <div class="refsect2">
@@ -880,89 +488,18 @@
 gst_audio_encoder_get_latency (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstaudioencoder.html#GstAudioEncoder"><span class="type">GstAudioEncoder</span></a> *enc</code></em>,
                                <em class="parameter"><code><a href="/usr/share/gtk-doc/html/gstreamer-1.0GstClock.html#GstClockTime"><span class="type">GstClockTime</span></a> *min</code></em>,
                                <em class="parameter"><code><a href="/usr/share/gtk-doc/html/gstreamer-1.0GstClock.html#GstClockTime"><span class="type">GstClockTime</span></a> *max</code></em>);</pre>
-<p>Sets the variables pointed to by <em class="parameter"><code>min</code></em>
- and <em class="parameter"><code>max</code></em>
- to the currently configured
-latency.</p>
-<div class="refsect3">
-<a name="gst-audio-encoder-get-latency.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>enc</p></td>
-<td class="parameter_description"><p>a <a class="link" href="gst-plugins-base-libs-gstaudioencoder.html#GstAudioEncoder"><span class="type">GstAudioEncoder</span></a></p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-<tr>
-<td class="parameter_name"><p>min</p></td>
-<td class="parameter_description"><p> a pointer to storage to hold minimum latency. </p></td>
-<td class="parameter_annotations"><span class="annotation">[<acronym title="Parameter for returning results. Default is transfer full."><span class="acronym">out</span></acronym>][<acronym title="NULL is OK, both for passing and for returning."><span class="acronym">allow-none</span></acronym>]</span></td>
-</tr>
-<tr>
-<td class="parameter_name"><p>max</p></td>
-<td class="parameter_description"><p> a pointer to storage to hold maximum latency. </p></td>
-<td class="parameter_annotations"><span class="annotation">[<acronym title="Parameter for returning results. Default is transfer full."><span class="acronym">out</span></acronym>][<acronym title="NULL is OK, both for passing and for returning."><span class="acronym">allow-none</span></acronym>]</span></td>
-</tr>
-</tbody>
-</table></div>
-</div>
 </div>
 <hr>
 <div class="refsect2">
 <a name="gst-audio-encoder-get-lookahead"></a><h3>gst_audio_encoder_get_lookahead ()</h3>
 <pre class="programlisting"><a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#gint"><span class="returnvalue">gint</span></a>
 gst_audio_encoder_get_lookahead (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstaudioencoder.html#GstAudioEncoder"><span class="type">GstAudioEncoder</span></a> *enc</code></em>);</pre>
-<div class="refsect3">
-<a name="gst-audio-encoder-get-lookahead.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>enc</p></td>
-<td class="parameter_description"><p>a <a class="link" href="gst-plugins-base-libs-gstaudioencoder.html#GstAudioEncoder"><span class="type">GstAudioEncoder</span></a></p></td>
-<td class="parameter_annotations"> </td>
-</tr></tbody>
-</table></div>
-</div>
-<div class="refsect3">
-<a name="gst-audio-encoder-get-lookahead.returns"></a><h4>Returns</h4>
-<p> currently configured encoder lookahead</p>
-</div>
 </div>
 <hr>
 <div class="refsect2">
 <a name="gst-audio-encoder-get-mark-granule"></a><h3>gst_audio_encoder_get_mark_granule ()</h3>
 <pre class="programlisting"><a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
 gst_audio_encoder_get_mark_granule (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstaudioencoder.html#GstAudioEncoder"><span class="type">GstAudioEncoder</span></a> *enc</code></em>);</pre>
-<p>Queries if the encoder will handle granule marking.</p>
-<div class="refsect3">
-<a name="gst-audio-encoder-get-mark-granule.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>enc</p></td>
-<td class="parameter_description"><p>a <a class="link" href="gst-plugins-base-libs-gstaudioencoder.html#GstAudioEncoder"><span class="type">GstAudioEncoder</span></a></p></td>
-<td class="parameter_annotations"> </td>
-</tr></tbody>
-</table></div>
-</div>
-<div class="refsect3">
-<a name="gst-audio-encoder-get-mark-granule.returns"></a><h4>Returns</h4>
-<p> TRUE if granule marking is enabled.</p>
-<p>MT safe.</p>
-</div>
 </div>
 <hr>
 <div class="refsect2">
@@ -970,54 +507,12 @@
 <pre class="programlisting"><a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
 gst_audio_encoder_get_perfect_timestamp
                                (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstaudioencoder.html#GstAudioEncoder"><span class="type">GstAudioEncoder</span></a> *enc</code></em>);</pre>
-<p>Queries encoder perfect timestamp behaviour.</p>
-<div class="refsect3">
-<a name="gst-audio-encoder-get-perfect-timestamp.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>enc</p></td>
-<td class="parameter_description"><p>a <a class="link" href="gst-plugins-base-libs-gstaudioencoder.html#GstAudioEncoder"><span class="type">GstAudioEncoder</span></a></p></td>
-<td class="parameter_annotations"> </td>
-</tr></tbody>
-</table></div>
-</div>
-<div class="refsect3">
-<a name="gst-audio-encoder-get-perfect-timestamp.returns"></a><h4>Returns</h4>
-<p> TRUE if perfect timestamp setting enabled.</p>
-<p>MT safe.</p>
-</div>
 </div>
 <hr>
 <div class="refsect2">
 <a name="gst-audio-encoder-get-tolerance"></a><h3>gst_audio_encoder_get_tolerance ()</h3>
 <pre class="programlisting"><a href="/usr/share/gtk-doc/html/gstreamer-1.0GstClock.html#GstClockTime"><span class="returnvalue">GstClockTime</span></a>
 gst_audio_encoder_get_tolerance (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstaudioencoder.html#GstAudioEncoder"><span class="type">GstAudioEncoder</span></a> *enc</code></em>);</pre>
-<p>Queries current audio jitter tolerance threshold.</p>
-<div class="refsect3">
-<a name="gst-audio-encoder-get-tolerance.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>enc</p></td>
-<td class="parameter_description"><p>a <a class="link" href="gst-plugins-base-libs-gstaudioencoder.html#GstAudioEncoder"><span class="type">GstAudioEncoder</span></a></p></td>
-<td class="parameter_annotations"> </td>
-</tr></tbody>
-</table></div>
-</div>
-<div class="refsect3">
-<a name="gst-audio-encoder-get-tolerance.returns"></a><h4>Returns</h4>
-<p> encoder audio jitter tolerance threshold.</p>
-<p>MT safe.</p>
-</div>
 </div>
 <hr>
 <div class="refsect2">
@@ -1026,43 +521,6 @@
 gst_audio_encoder_proxy_getcaps (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstaudioencoder.html#GstAudioEncoder"><span class="type">GstAudioEncoder</span></a> *enc</code></em>,
                                  <em class="parameter"><code><a href="/usr/share/gtk-doc/html/gstreamer-1.0GstCaps.html#GstCaps-struct"><span class="type">GstCaps</span></a> *caps</code></em>,
                                  <em class="parameter"><code><a href="/usr/share/gtk-doc/html/gstreamer-1.0GstCaps.html#GstCaps-struct"><span class="type">GstCaps</span></a> *filter</code></em>);</pre>
-<p>Returns caps that express <em class="parameter"><code>caps</code></em>
- (or sink template caps if <em class="parameter"><code>caps</code></em>
- == NULL)
-restricted to channel/rate combinations supported by downstream elements
-(e.g. muxers).</p>
-<div class="refsect3">
-<a name="gst-audio-encoder-proxy-getcaps.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>enc</p></td>
-<td class="parameter_description"><p>a <a class="link" href="gst-plugins-base-libs-gstaudioencoder.html#GstAudioEncoder"><span class="type">GstAudioEncoder</span></a></p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-<tr>
-<td class="parameter_name"><p>caps</p></td>
-<td class="parameter_description"><p> initial caps. </p></td>
-<td class="parameter_annotations"><span class="annotation">[<acronym title="NULL is OK, both for passing and for returning."><span class="acronym">allow-none</span></acronym>]</span></td>
-</tr>
-<tr>
-<td class="parameter_name"><p>filter</p></td>
-<td class="parameter_description"><p> filter caps. </p></td>
-<td class="parameter_annotations"><span class="annotation">[<acronym title="NULL is OK, both for passing and for returning."><span class="acronym">allow-none</span></acronym>]</span></td>
-</tr>
-</tbody>
-</table></div>
-</div>
-<div class="refsect3">
-<a name="gst-audio-encoder-proxy-getcaps.returns"></a><h4>Returns</h4>
-<p> a <a href="/usr/share/gtk-doc/html/gstreamer-1.0GstCaps.html#GstCaps-struct"><span class="type">GstCaps</span></a> owned by caller. </p>
-<p><span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>]</span></p>
-</div>
 </div>
 <hr>
 <div class="refsect2">
@@ -1070,33 +528,6 @@
 <pre class="programlisting"><span class="returnvalue">void</span>
 gst_audio_encoder_set_drainable (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstaudioencoder.html#GstAudioEncoder"><span class="type">GstAudioEncoder</span></a> *enc</code></em>,
                                  <em class="parameter"><code><a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a> enabled</code></em>);</pre>
-<p>Configures encoder drain handling.  If drainable, subclass might
-be handed a NULL buffer to have it return any leftover encoded data.
-Otherwise, it is not considered so capable and will only ever be passed
-real data.</p>
-<p>MT safe.</p>
-<div class="refsect3">
-<a name="gst-audio-encoder-set-drainable.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>enc</p></td>
-<td class="parameter_description"><p>a <a class="link" href="gst-plugins-base-libs-gstaudioencoder.html#GstAudioEncoder"><span class="type">GstAudioEncoder</span></a></p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-<tr>
-<td class="parameter_name"><p>enabled</p></td>
-<td class="parameter_description"><p>new state</p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-</tbody>
-</table></div>
-</div>
 </div>
 <hr>
 <div class="refsect2">
@@ -1104,34 +535,6 @@
 <pre class="programlisting"><span class="returnvalue">void</span>
 gst_audio_encoder_set_frame_max (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstaudioencoder.html#GstAudioEncoder"><span class="type">GstAudioEncoder</span></a> *enc</code></em>,
                                  <em class="parameter"><code><a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#gint"><span class="type">gint</span></a> num</code></em>);</pre>
-<p>Sets max number of frames accepted at once (assumed minimally 1).
-Requires <em class="parameter"><code>frame_samples_min</code></em>
- and <em class="parameter"><code>frame_samples_max</code></em>
- to be the equal.</p>
-<p>Note: This value will be reset to 0 every time before
-GstAudioEncoder::<code class="function">set_format()</code> is called.</p>
-<div class="refsect3">
-<a name="gst-audio-encoder-set-frame-max.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>enc</p></td>
-<td class="parameter_description"><p>a <a class="link" href="gst-plugins-base-libs-gstaudioencoder.html#GstAudioEncoder"><span class="type">GstAudioEncoder</span></a></p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-<tr>
-<td class="parameter_name"><p>num</p></td>
-<td class="parameter_description"><p>number of frames</p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-</tbody>
-</table></div>
-</div>
 </div>
 <hr>
 <div class="refsect2">
@@ -1140,34 +543,6 @@
 gst_audio_encoder_set_frame_samples_min
                                (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstaudioencoder.html#GstAudioEncoder"><span class="type">GstAudioEncoder</span></a> *enc</code></em>,
                                 <em class="parameter"><code><a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#gint"><span class="type">gint</span></a> num</code></em>);</pre>
-<p>Sets number of samples (per channel) subclass needs to be handed,
-at least or will be handed all available if 0.</p>
-<p>If an exact number of samples is required, <a class="link" href="gst-plugins-base-libs-gstaudioencoder.html#gst-audio-encoder-set-frame-samples-max" title="gst_audio_encoder_set_frame_samples_max ()"><code class="function">gst_audio_encoder_set_frame_samples_max()</code></a>
-must be called with the same number.</p>
-<p>Note: This value will be reset to 0 every time before
-GstAudioEncoder::<code class="function">set_format()</code> is called.</p>
-<div class="refsect3">
-<a name="gst-audio-encoder-set-frame-samples-min.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>enc</p></td>
-<td class="parameter_description"><p>a <a class="link" href="gst-plugins-base-libs-gstaudioencoder.html#GstAudioEncoder"><span class="type">GstAudioEncoder</span></a></p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-<tr>
-<td class="parameter_name"><p>num</p></td>
-<td class="parameter_description"><p>number of samples per frame</p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-</tbody>
-</table></div>
-</div>
 </div>
 <hr>
 <div class="refsect2">
@@ -1176,34 +551,6 @@
 gst_audio_encoder_set_frame_samples_max
                                (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstaudioencoder.html#GstAudioEncoder"><span class="type">GstAudioEncoder</span></a> *enc</code></em>,
                                 <em class="parameter"><code><a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#gint"><span class="type">gint</span></a> num</code></em>);</pre>
-<p>Sets number of samples (per channel) subclass needs to be handed,
-at most or will be handed all available if 0.</p>
-<p>If an exact number of samples is required, <a class="link" href="gst-plugins-base-libs-gstaudioencoder.html#gst-audio-encoder-set-frame-samples-min" title="gst_audio_encoder_set_frame_samples_min ()"><code class="function">gst_audio_encoder_set_frame_samples_min()</code></a>
-must be called with the same number.</p>
-<p>Note: This value will be reset to 0 every time before
-GstAudioEncoder::<code class="function">set_format()</code> is called.</p>
-<div class="refsect3">
-<a name="gst-audio-encoder-set-frame-samples-max.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>enc</p></td>
-<td class="parameter_description"><p>a <a class="link" href="gst-plugins-base-libs-gstaudioencoder.html#GstAudioEncoder"><span class="type">GstAudioEncoder</span></a></p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-<tr>
-<td class="parameter_name"><p>num</p></td>
-<td class="parameter_description"><p>number of samples per frame</p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-</tbody>
-</table></div>
-</div>
 </div>
 <hr>
 <div class="refsect2">
@@ -1211,33 +558,6 @@
 <pre class="programlisting"><span class="returnvalue">void</span>
 gst_audio_encoder_set_hard_min (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstaudioencoder.html#GstAudioEncoder"><span class="type">GstAudioEncoder</span></a> *enc</code></em>,
                                 <em class="parameter"><code><a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a> enabled</code></em>);</pre>
-<p>Configures encoder hard minimum handling.  If enabled, subclass
-will never be handed less samples than it configured, which otherwise
-might occur near end-of-data handling.  Instead, the leftover samples
-will simply be discarded.</p>
-<p>MT safe.</p>
-<div class="refsect3">
-<a name="gst-audio-encoder-set-hard-min.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>enc</p></td>
-<td class="parameter_description"><p>a <a class="link" href="gst-plugins-base-libs-gstaudioencoder.html#GstAudioEncoder"><span class="type">GstAudioEncoder</span></a></p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-<tr>
-<td class="parameter_name"><p>enabled</p></td>
-<td class="parameter_description"><p>new state</p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-</tbody>
-</table></div>
-</div>
 </div>
 <hr>
 <div class="refsect2">
@@ -1252,30 +572,6 @@
 <pre class="programlisting"><span class="returnvalue">void</span>
 gst_audio_encoder_set_headers (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstaudioencoder.html#GstAudioEncoder"><span class="type">GstAudioEncoder</span></a> *enc</code></em>,
                                <em class="parameter"><code><a href="/usr/share/gtk-doc/html/glibglib-Doubly-Linked-Lists.html#GList"><span class="type">GList</span></a> *headers</code></em>);</pre>
-<p>Set the codec headers to be sent downstream whenever requested.</p>
-<div class="refsect3">
-<a name="gst-audio-encoder-set-headers.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>enc</p></td>
-<td class="parameter_description"><p>a <a class="link" href="gst-plugins-base-libs-gstaudioencoder.html#GstAudioEncoder"><span class="type">GstAudioEncoder</span></a></p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-<tr>
-<td class="parameter_name"><p>headers</p></td>
-<td class="parameter_description"><p> a list of
-<a href="/usr/share/gtk-doc/html/gstreamer-1.0GstBuffer.html#GstBuffer-struct"><span class="type">GstBuffer</span></a> containing the codec header. </p></td>
-<td class="parameter_annotations"><span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>][<acronym title="Generics and defining elements of containers and arrays."><span class="acronym">element-type</span></acronym> Gst.Buffer]</span></td>
-</tr>
-</tbody>
-</table></div>
-</div>
 </div>
 <hr>
 <div class="refsect2">
@@ -1284,34 +580,6 @@
 gst_audio_encoder_set_latency (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstaudioencoder.html#GstAudioEncoder"><span class="type">GstAudioEncoder</span></a> *enc</code></em>,
                                <em class="parameter"><code><a href="/usr/share/gtk-doc/html/gstreamer-1.0GstClock.html#GstClockTime"><span class="type">GstClockTime</span></a> min</code></em>,
                                <em class="parameter"><code><a href="/usr/share/gtk-doc/html/gstreamer-1.0GstClock.html#GstClockTime"><span class="type">GstClockTime</span></a> max</code></em>);</pre>
-<p>Sets encoder latency.</p>
-<div class="refsect3">
-<a name="gst-audio-encoder-set-latency.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>enc</p></td>
-<td class="parameter_description"><p>a <a class="link" href="gst-plugins-base-libs-gstaudioencoder.html#GstAudioEncoder"><span class="type">GstAudioEncoder</span></a></p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-<tr>
-<td class="parameter_name"><p>min</p></td>
-<td class="parameter_description"><p>minimum latency</p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-<tr>
-<td class="parameter_name"><p>max</p></td>
-<td class="parameter_description"><p>maximum latency</p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-</tbody>
-</table></div>
-</div>
 </div>
 <hr>
 <div class="refsect2">
@@ -1319,31 +587,6 @@
 <pre class="programlisting"><span class="returnvalue">void</span>
 gst_audio_encoder_set_lookahead (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstaudioencoder.html#GstAudioEncoder"><span class="type">GstAudioEncoder</span></a> *enc</code></em>,
                                  <em class="parameter"><code><a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#gint"><span class="type">gint</span></a> num</code></em>);</pre>
-<p>Sets encoder lookahead (in units of input rate samples)</p>
-<p>Note: This value will be reset to 0 every time before
-GstAudioEncoder::<code class="function">set_format()</code> is called.</p>
-<div class="refsect3">
-<a name="gst-audio-encoder-set-lookahead.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>enc</p></td>
-<td class="parameter_description"><p>a <a class="link" href="gst-plugins-base-libs-gstaudioencoder.html#GstAudioEncoder"><span class="type">GstAudioEncoder</span></a></p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-<tr>
-<td class="parameter_name"><p>num</p></td>
-<td class="parameter_description"><p>lookahead</p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-</tbody>
-</table></div>
-</div>
 </div>
 <hr>
 <div class="refsect2">
@@ -1351,30 +594,6 @@
 <pre class="programlisting"><span class="returnvalue">void</span>
 gst_audio_encoder_set_mark_granule (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstaudioencoder.html#GstAudioEncoder"><span class="type">GstAudioEncoder</span></a> *enc</code></em>,
                                     <em class="parameter"><code><a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a> enabled</code></em>);</pre>
-<p>Enable or disable encoder granule handling.</p>
-<p>MT safe.</p>
-<div class="refsect3">
-<a name="gst-audio-encoder-set-mark-granule.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>enc</p></td>
-<td class="parameter_description"><p>a <a class="link" href="gst-plugins-base-libs-gstaudioencoder.html#GstAudioEncoder"><span class="type">GstAudioEncoder</span></a></p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-<tr>
-<td class="parameter_name"><p>enabled</p></td>
-<td class="parameter_description"><p>new state</p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-</tbody>
-</table></div>
-</div>
 </div>
 <hr>
 <div class="refsect2">
@@ -1383,30 +602,6 @@
 gst_audio_encoder_set_perfect_timestamp
                                (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstaudioencoder.html#GstAudioEncoder"><span class="type">GstAudioEncoder</span></a> *enc</code></em>,
                                 <em class="parameter"><code><a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a> enabled</code></em>);</pre>
-<p>Enable or disable encoder perfect output timestamp preference.</p>
-<p>MT safe.</p>
-<div class="refsect3">
-<a name="gst-audio-encoder-set-perfect-timestamp.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>enc</p></td>
-<td class="parameter_description"><p>a <a class="link" href="gst-plugins-base-libs-gstaudioencoder.html#GstAudioEncoder"><span class="type">GstAudioEncoder</span></a></p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-<tr>
-<td class="parameter_name"><p>enabled</p></td>
-<td class="parameter_description"><p>new state</p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-</tbody>
-</table></div>
-</div>
 </div>
 <hr>
 <div class="refsect2">
@@ -1414,30 +609,6 @@
 <pre class="programlisting"><span class="returnvalue">void</span>
 gst_audio_encoder_set_tolerance (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstaudioencoder.html#GstAudioEncoder"><span class="type">GstAudioEncoder</span></a> *enc</code></em>,
                                  <em class="parameter"><code><a href="/usr/share/gtk-doc/html/gstreamer-1.0GstClock.html#GstClockTime"><span class="type">GstClockTime</span></a> tolerance</code></em>);</pre>
-<p>Configures encoder audio jitter tolerance threshold.</p>
-<p>MT safe.</p>
-<div class="refsect3">
-<a name="gst-audio-encoder-set-tolerance.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>enc</p></td>
-<td class="parameter_description"><p>a <a class="link" href="gst-plugins-base-libs-gstaudioencoder.html#GstAudioEncoder"><span class="type">GstAudioEncoder</span></a></p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-<tr>
-<td class="parameter_name"><p>tolerance</p></td>
-<td class="parameter_description"><p>new tolerance</p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-</tbody>
-</table></div>
-</div>
 </div>
 <hr>
 <div class="refsect2">
@@ -1446,40 +617,6 @@
 gst_audio_encoder_merge_tags (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstaudioencoder.html#GstAudioEncoder"><span class="type">GstAudioEncoder</span></a> *enc</code></em>,
                               <em class="parameter"><code>const <a href="/usr/share/gtk-doc/html/gstreamer-1.0GstTagList.html#GstTagList-struct"><span class="type">GstTagList</span></a> *tags</code></em>,
                               <em class="parameter"><code><a href="/usr/share/gtk-doc/html/gstreamer-1.0GstTagList.html#GstTagMergeMode"><span class="type">GstTagMergeMode</span></a> mode</code></em>);</pre>
-<p>Sets the audio encoder tags and how they should be merged with any
-upstream stream tags. This will override any tags previously-set
-with <a class="link" href="gst-plugins-base-libs-gstaudioencoder.html#gst-audio-encoder-merge-tags" title="gst_audio_encoder_merge_tags ()"><code class="function">gst_audio_encoder_merge_tags()</code></a>.</p>
-<p>Note that this is provided for convenience, and the subclass is
-not required to use this and can still do tag handling on its own.</p>
-<p>MT safe.</p>
-<div class="refsect3">
-<a name="gst-audio-encoder-merge-tags.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>enc</p></td>
-<td class="parameter_description"><p>a <a class="link" href="gst-plugins-base-libs-gstaudioencoder.html#GstAudioEncoder"><span class="type">GstAudioEncoder</span></a></p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-<tr>
-<td class="parameter_name"><p>tags</p></td>
-<td class="parameter_description"><p> a <a href="/usr/share/gtk-doc/html/gstreamer-1.0GstTagList.html#GstTagList-struct"><span class="type">GstTagList</span></a> to merge, or NULL to unset
-previously-set tags. </p></td>
-<td class="parameter_annotations"><span class="annotation">[<acronym title="NULL is OK, both for passing and for returning."><span class="acronym">allow-none</span></acronym>]</span></td>
-</tr>
-<tr>
-<td class="parameter_name"><p>mode</p></td>
-<td class="parameter_description"><p>the <a href="/usr/share/gtk-doc/html/gstreamer-1.0GstTagList.html#GstTagMergeMode"><span class="type">GstTagMergeMode</span></a> to use, usually <a href="/usr/share/gtk-doc/html/gstreamer-1.0GstTagList.html#GST-TAG-MERGE-REPLACE:CAPS"><span class="type">GST_TAG_MERGE_REPLACE</span></a></p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-</tbody>
-</table></div>
-</div>
 </div>
 </div>
 <div class="refsect1">
@@ -1487,7 +624,6 @@
 <div class="refsect2">
 <a name="GstAudioEncoder-struct"></a><h3>struct GstAudioEncoder</h3>
 <pre class="programlisting">struct GstAudioEncoder;</pre>
-<p>The opaque <a class="link" href="gst-plugins-base-libs-gstaudioencoder.html#GstAudioEncoder"><span class="type">GstAudioEncoder</span></a> data structure.</p>
 </div>
 <hr>
 <div class="refsect2">
@@ -1541,176 +677,18 @@
 				       GstQuery *query);
 };
 </pre>
-<p>Subclasses can override any of the available virtual methods or not, as
-needed. At minimum <em class="parameter"><code>set_format</code></em>
- and <em class="parameter"><code>handle_frame</code></em>
- needs to be overridden.</p>
-<div class="refsect3">
-<a name="GstAudioEncoderClass.members"></a><h4>Members</h4>
-<div class="informaltable"><table class="informaltable" width="100%" border="0">
-<colgroup>
-<col width="300px" class="struct_members_name">
-<col class="struct_members_description">
-<col width="200px" class="struct_members_annotations">
-</colgroup>
-<tbody>
-<tr>
-<td class="struct_member_name"><p><a href="/usr/share/gtk-doc/html/gstreamer-1.0GstElement.html#GstElementClass"><span class="type">GstElementClass</span></a> <em class="structfield"><code><a name="GstAudioEncoderClass.element-class"></a>element_class</code></em>;</p></td>
-<td class="struct_member_description"><p>The parent class structure</p></td>
-<td class="struct_member_annotations"> </td>
-</tr>
-<tr>
-<td class="struct_member_name"><p><em class="structfield"><code><a name="GstAudioEncoderClass.start"></a>start</code></em> ()</p></td>
-<td class="struct_member_description"><p>Optional.
-Called when the element starts processing.
-Allows opening external resources.</p></td>
-<td class="struct_member_annotations"> </td>
-</tr>
-<tr>
-<td class="struct_member_name"><p><em class="structfield"><code><a name="GstAudioEncoderClass.stop"></a>stop</code></em> ()</p></td>
-<td class="struct_member_description"><p>Optional.
-Called when the element stops processing.
-Allows closing external resources.</p></td>
-<td class="struct_member_annotations"> </td>
-</tr>
-<tr>
-<td class="struct_member_name"><p><em class="structfield"><code><a name="GstAudioEncoderClass.set-format"></a>set_format</code></em> ()</p></td>
-<td class="struct_member_description"><p>Notifies subclass of incoming data format.
-GstAudioInfo contains the format according to provided caps.</p></td>
-<td class="struct_member_annotations"> </td>
-</tr>
-<tr>
-<td class="struct_member_name"><p><em class="structfield"><code><a name="GstAudioEncoderClass.handle-frame"></a>handle_frame</code></em> ()</p></td>
-<td class="struct_member_description"><p>Provides input samples (or NULL to clear any remaining data)
-according to directions as configured by the subclass
-using the API.  Input data ref management is performed
-by base class, subclass should not care or intervene,
-and input data is only valid until next call to base class,
-most notably a call to <a class="link" href="gst-plugins-base-libs-gstaudioencoder.html#gst-audio-encoder-finish-frame" title="gst_audio_encoder_finish_frame ()"><code class="function">gst_audio_encoder_finish_frame()</code></a>.</p></td>
-<td class="struct_member_annotations"> </td>
-</tr>
-<tr>
-<td class="struct_member_name"><p><em class="structfield"><code><a name="GstAudioEncoderClass.flush"></a>flush</code></em> ()</p></td>
-<td class="struct_member_description"><p>Optional.
-Instructs subclass to clear any codec caches and discard
-any pending samples and not yet returned encoded data.</p></td>
-<td class="struct_member_annotations"> </td>
-</tr>
-<tr>
-<td class="struct_member_name"><p><em class="structfield"><code><a name="GstAudioEncoderClass.pre-push"></a>pre_push</code></em> ()</p></td>
-<td class="struct_member_description"><p>Optional.
-Called just prior to pushing (encoded data) buffer downstream.
-Subclass has full discretionary access to buffer,
-and a not OK flow return will abort downstream pushing.</p></td>
-<td class="struct_member_annotations"> </td>
-</tr>
-<tr>
-<td class="struct_member_name"><p><em class="structfield"><code><a name="GstAudioEncoderClass.sink-event"></a>sink_event</code></em> ()</p></td>
-<td class="struct_member_description"><p>Optional.
-Event handler on the sink pad. Subclasses should chain up to
-the parent implementation to invoke the default handler.</p></td>
-<td class="struct_member_annotations"> </td>
-</tr>
-<tr>
-<td class="struct_member_name"><p><em class="structfield"><code><a name="GstAudioEncoderClass.src-event"></a>src_event</code></em> ()</p></td>
-<td class="struct_member_description"><p>Optional.
-Event handler on the src pad. Subclasses should chain up to
-the parent implementation to invoke the default handler.</p></td>
-<td class="struct_member_annotations"> </td>
-</tr>
-<tr>
-<td class="struct_member_name"><p><em class="structfield"><code><a name="GstAudioEncoderClass.getcaps"></a>getcaps</code></em> ()</p></td>
-<td class="struct_member_description"><p>Optional.
-Allows for a custom sink getcaps implementation (e.g.
-for multichannel input specification).  If not implemented,
-default returns gst_audio_encoder_proxy_getcaps
-applied to sink template caps.</p></td>
-<td class="struct_member_annotations"> </td>
-</tr>
-<tr>
-<td class="struct_member_name"><p><em class="structfield"><code><a name="GstAudioEncoderClass.open"></a>open</code></em> ()</p></td>
-<td class="struct_member_description"><p>Optional.
-Called when the element changes to GST_STATE_READY.
-Allows opening external resources.</p></td>
-<td class="struct_member_annotations"> </td>
-</tr>
-<tr>
-<td class="struct_member_name"><p><em class="structfield"><code><a name="GstAudioEncoderClass.close"></a>close</code></em> ()</p></td>
-<td class="struct_member_description"><p>Optional.
-Called when the element changes to GST_STATE_NULL.
-Allows closing external resources.</p></td>
-<td class="struct_member_annotations"> </td>
-</tr>
-<tr>
-<td class="struct_member_name"><p><em class="structfield"><code><a name="GstAudioEncoderClass.negotiate"></a>negotiate</code></em> ()</p></td>
-<td class="struct_member_description"><p>Optional.
-Negotiate with downstream and configure buffer pools, etc.
-Subclasses should chain up to the parent implementation to
-invoke the default handler.</p></td>
-<td class="struct_member_annotations"> </td>
-</tr>
-<tr>
-<td class="struct_member_name"><p><em class="structfield"><code><a name="GstAudioEncoderClass.decide-allocation"></a>decide_allocation</code></em> ()</p></td>
-<td class="struct_member_description"><p>Optional.
-Setup the allocation parameters for allocating output
-buffers. The passed in query contains the result of the
-downstream allocation query.
-Subclasses should chain up to the parent implementation to
-invoke the default handler.</p></td>
-<td class="struct_member_annotations"> </td>
-</tr>
-<tr>
-<td class="struct_member_name"><p><em class="structfield"><code><a name="GstAudioEncoderClass.propose-allocation"></a>propose_allocation</code></em> ()</p></td>
-<td class="struct_member_description"><p>Optional.
-Propose buffer allocation parameters for upstream elements.
-Subclasses should chain up to the parent implementation to
-invoke the default handler.</p></td>
-<td class="struct_member_annotations"> </td>
-</tr>
-<tr>
-<td class="struct_member_name"><p><em class="structfield"><code><a name="GstAudioEncoderClass.transform-meta"></a>transform_meta</code></em> ()</p></td>
-<td class="struct_member_description"><p>Optional. Transform the metadata on the input buffer to the
-output buffer. By default this method copies all meta without
-tags and meta with only the "audio" tag. subclasses can
-implement this method and return <a href="/usr/share/gtk-doc/html/glibglib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a> if the metadata is to be
-copied. Since 1.6</p></td>
-<td class="struct_member_annotations"> </td>
-</tr>
-<tr>
-<td class="struct_member_name"><p><em class="structfield"><code><a name="GstAudioEncoderClass.sink-query"></a>sink_query</code></em> ()</p></td>
-<td class="struct_member_description"><p>Optional.
-Query handler on the sink pad. This function should
-return TRUE if the query could be performed. Subclasses
-should chain up to the parent implementation to invoke the
-default handler. Since 1.6</p></td>
-<td class="struct_member_annotations"> </td>
-</tr>
-<tr>
-<td class="struct_member_name"><p><em class="structfield"><code><a name="GstAudioEncoderClass.src-query"></a>src_query</code></em> ()</p></td>
-<td class="struct_member_description"><p>Optional.
-Query handler on the source pad. This function should
-return TRUE if the query could be performed. Subclasses
-should chain up to the parent implementation to invoke the
-default handler. Since 1.6</p></td>
-<td class="struct_member_annotations"> </td>
-</tr>
-</tbody>
-</table></div>
-</div>
 </div>
 <hr>
 <div class="refsect2">
 <a name="GST-AUDIO-ENCODER-SINK-NAME:CAPS"></a><h3>GST_AUDIO_ENCODER_SINK_NAME</h3>
 <pre class="programlisting">#define GST_AUDIO_ENCODER_SINK_NAME "sink"
 </pre>
-<p>the name of the templates for the sink pad</p>
 </div>
 <hr>
 <div class="refsect2">
 <a name="GST-AUDIO-ENCODER-SRC-NAME:CAPS"></a><h3>GST_AUDIO_ENCODER_SRC_NAME</h3>
 <pre class="programlisting">#define GST_AUDIO_ENCODER_SRC_NAME	        "src"
 </pre>
-<p>the name of the templates for the source pad</p>
 </div>
 </div>
 <div class="refsect1">
@@ -1748,10 +726,6 @@
 <p>Default value: 40000000</p>
 </div>
 </div>
-<div class="refsect1">
-<a name="gst-plugins-base-libs-gstaudioencoder.see-also"></a><h2>See Also</h2>
-<p><a href="/usr/share/gtk-doc/html/gstreamer-libs-1.0GstBaseTransform.html#GstBaseTransform-struct"><span class="type">GstBaseTransform</span></a></p>
-</div>
 </div>
 <div class="footer">
 <hr>Generated by GTK-Doc V1.25</div>
diff --git a/docs/libs/html/gst-plugins-base-libs-gstaudiofilter.html b/docs/libs/html/gst-plugins-base-libs-gstaudiofilter.html
index a0da99f..03388aa 100644
--- a/docs/libs/html/gst-plugins-base-libs-gstaudiofilter.html
+++ b/docs/libs/html/gst-plugins-base-libs-gstaudiofilter.html
@@ -28,7 +28,7 @@
 <div class="refnamediv"><table width="100%"><tr>
 <td valign="top">
 <h2><span class="refentrytitle"><a name="gst-plugins-base-libs-gstaudiofilter.top_of_page"></a>gstaudiofilter</span></h2>
-<p>gstaudiofilter — Base class for simple audio filters</p>
+<p>gstaudiofilter</p>
 </td>
 <td class="gallery_image" valign="top" align="right"></td>
 </tr></table></div>
@@ -85,17 +85,6 @@
 </div>
 <div class="refsect1">
 <a name="gst-plugins-base-libs-gstaudiofilter.description"></a><h2>Description</h2>
-<p><a class="link" href="gst-plugins-base-libs-gstaudiofilter.html#GstAudioFilter"><span class="type">GstAudioFilter</span></a> is a <a href="/usr/share/gtk-doc/html/gstreamer-libs-1.0GstBaseTransform.html#GstBaseTransform-struct"><span class="type">GstBaseTransform</span></a>-derived base class for simple audio
-filters, ie. those that output the same format that they get as input.</p>
-<p><a class="link" href="gst-plugins-base-libs-gstaudiofilter.html#GstAudioFilter"><span class="type">GstAudioFilter</span></a> will parse the input format for you (with error checking)
-before calling your setup function. Also, elements deriving from
-<a class="link" href="gst-plugins-base-libs-gstaudiofilter.html#GstAudioFilter"><span class="type">GstAudioFilter</span></a> may use <a class="link" href="gst-plugins-base-libs-gstaudiofilter.html#gst-audio-filter-class-add-pad-templates" title="gst_audio_filter_class_add_pad_templates ()"><code class="function">gst_audio_filter_class_add_pad_templates()</code></a> from
-their class_init function to easily configure the set of caps/formats that
-the element is able to handle.</p>
-<p>Derived classes should override the <a class="link" href="gst-plugins-base-libs-gstaudiofilter.html#GstAudioFilterClass.setup"><code class="function">GstAudioFilterClass.setup()</code></a> and
-<a href="/usr/share/gtk-doc/html/gstreamer-libs-1.0GstBaseTransform.html#GstBaseTransformClass.transform-ip"><code class="function">GstBaseTransformClass.transform_ip()</code></a> and/or
-<a href="/usr/share/gtk-doc/html/gstreamer-libs-1.0GstBaseTransform.html#GstBaseTransformClass.transform"><code class="function">GstBaseTransformClass.transform()</code></a>
-virtual functions in their class_init function.</p>
 </div>
 <div class="refsect1">
 <a name="gst-plugins-base-libs-gstaudiofilter.functions_details"></a><h2>Functions</h2>
@@ -105,32 +94,6 @@
 gst_audio_filter_class_add_pad_templates
                                (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstaudiofilter.html#GstAudioFilterClass" title="struct GstAudioFilterClass"><span class="type">GstAudioFilterClass</span></a> *klass</code></em>,
                                 <em class="parameter"><code><a href="/usr/share/gtk-doc/html/gstreamer-1.0GstCaps.html#GstCaps-struct"><span class="type">GstCaps</span></a> *allowed_caps</code></em>);</pre>
-<p>Convenience function to add pad templates to this element class, with
-<em class="parameter"><code>allowed_caps</code></em>
- as the caps that can be handled.</p>
-<p>This function is usually used from within a GObject class_init function.</p>
-<div class="refsect3">
-<a name="gst-audio-filter-class-add-pad-templates.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>klass</p></td>
-<td class="parameter_description"><p>an <a class="link" href="gst-plugins-base-libs-gstaudiofilter.html#GstAudioFilterClass" title="struct GstAudioFilterClass"><span class="type">GstAudioFilterClass</span></a></p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-<tr>
-<td class="parameter_name"><p>allowed_caps</p></td>
-<td class="parameter_description"><p>what formats the filter can handle, as <a href="/usr/share/gtk-doc/html/gstreamer-1.0GstCaps.html#GstCaps-struct"><span class="type">GstCaps</span></a></p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-</tbody>
-</table></div>
-</div>
 </div>
 </div>
 <div class="refsect1">
@@ -138,7 +101,6 @@
 <div class="refsect2">
 <a name="GstAudioFilter-struct"></a><h3>struct GstAudioFilter</h3>
 <pre class="programlisting">struct GstAudioFilter;</pre>
-<p>Base class for audio filters with the same format for input and output.</p>
 </div>
 <hr>
 <div class="refsect2">
@@ -150,32 +112,6 @@
   gboolean  (*setup) (GstAudioFilter * filter, const GstAudioInfo * info);
 };
 </pre>
-<p>In addition to the <em class="parameter"><code>setup</code></em>
- virtual function, you should also override the
-GstBaseTransform::transform and/or GstBaseTransform::transform_ip virtual
-function.</p>
-<div class="refsect3">
-<a name="GstAudioFilterClass.members"></a><h4>Members</h4>
-<div class="informaltable"><table class="informaltable" width="100%" border="0">
-<colgroup>
-<col width="300px" class="struct_members_name">
-<col class="struct_members_description">
-<col width="200px" class="struct_members_annotations">
-</colgroup>
-<tbody>
-<tr>
-<td class="struct_member_name"><p><a href="/usr/share/gtk-doc/html/gstreamer-libs-1.0GstBaseTransform.html#GstBaseTransformClass"><span class="type">GstBaseTransformClass</span></a> <em class="structfield"><code><a name="GstAudioFilterClass.basetransformclass"></a>basetransformclass</code></em>;</p></td>
-<td class="struct_member_description"><p>parent class</p></td>
-<td class="struct_member_annotations"> </td>
-</tr>
-<tr>
-<td class="struct_member_name"><p><em class="structfield"><code><a name="GstAudioFilterClass.setup"></a>setup</code></em> ()</p></td>
-<td class="struct_member_description"><p>virtual function called whenever the format changes</p></td>
-<td class="struct_member_annotations"> </td>
-</tr>
-</tbody>
-</table></div>
-</div>
 </div>
 </div>
 </div>
diff --git a/docs/libs/html/gst-plugins-base-libs-gstaudioiec61937.html b/docs/libs/html/gst-plugins-base-libs-gstaudioiec61937.html
index a070c38..e262050 100644
--- a/docs/libs/html/gst-plugins-base-libs-gstaudioiec61937.html
+++ b/docs/libs/html/gst-plugins-base-libs-gstaudioiec61937.html
@@ -27,7 +27,7 @@
 <div class="refnamediv"><table width="100%"><tr>
 <td valign="top">
 <h2><span class="refentrytitle"><a name="gst-plugins-base-libs-gstaudioiec61937.top_of_page"></a>gstaudioiec61937</span></h2>
-<p>gstaudioiec61937 — Utility functions for IEC 61937 payloading</p>
+<p>gstaudioiec61937</p>
 </td>
 <td class="gallery_image" valign="top" align="right"></td>
 </tr></table></div>
@@ -65,8 +65,6 @@
 </div>
 <div class="refsect1">
 <a name="gst-plugins-base-libs-gstaudioiec61937.description"></a><h2>Description</h2>
-<p>This module contains some helper functions for encapsulating various
-audio formats in IEC 61937 headers and padding.</p>
 </div>
 <div class="refsect1">
 <a name="gst-plugins-base-libs-gstaudioiec61937.functions_details"></a><h2>Functions</h2>
@@ -74,30 +72,6 @@
 <a name="gst-audio-iec61937-frame-size"></a><h3>gst_audio_iec61937_frame_size ()</h3>
 <pre class="programlisting"><a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#guint"><span class="returnvalue">guint</span></a>
 gst_audio_iec61937_frame_size (<em class="parameter"><code>const <a class="link" href="gst-plugins-base-libs-gstaudioringbuffer.html#GstAudioRingBufferSpec" title="struct GstAudioRingBufferSpec"><span class="type">GstAudioRingBufferSpec</span></a> *spec</code></em>);</pre>
-<p>Calculated the size of the buffer expected by <a class="link" href="gst-plugins-base-libs-gstaudioiec61937.html#gst-audio-iec61937-payload" title="gst_audio_iec61937_payload ()"><code class="function">gst_audio_iec61937_payload()</code></a> for
-payloading type from <em class="parameter"><code>spec</code></em>
-.</p>
-<div class="refsect3">
-<a name="gst-audio-iec61937-frame-size.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>spec</p></td>
-<td class="parameter_description"><p>the ringbufer spec</p></td>
-<td class="parameter_annotations"> </td>
-</tr></tbody>
-</table></div>
-</div>
-<div class="refsect3">
-<a name="gst-audio-iec61937-frame-size.returns"></a><h4>Returns</h4>
-<p> the size or 0 if the given <em class="parameter"><code>type</code></em>
-is not supported or cannot be
-payloaded.</p>
-</div>
 </div>
 <hr>
 <div class="refsect2">
@@ -109,65 +83,6 @@
                             <em class="parameter"><code><a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#guint"><span class="type">guint</span></a> dst_n</code></em>,
                             <em class="parameter"><code>const <a class="link" href="gst-plugins-base-libs-gstaudioringbuffer.html#GstAudioRingBufferSpec" title="struct GstAudioRingBufferSpec"><span class="type">GstAudioRingBufferSpec</span></a> *spec</code></em>,
                             <em class="parameter"><code><a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#gint"><span class="type">gint</span></a> endianness</code></em>);</pre>
-<p>Payloads <em class="parameter"><code>src</code></em>
- in the form specified by IEC 61937 for the type from <em class="parameter"><code>spec</code></em>
- and
-stores the result in <em class="parameter"><code>dst</code></em>
-. <em class="parameter"><code>src</code></em>
- must contain exactly one frame of data and
-the frame is not checked for errors.</p>
-<div class="refsect3">
-<a name="gst-audio-iec61937-payload.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>src</p></td>
-<td class="parameter_description"><p> a buffer containing the data to payload. </p></td>
-<td class="parameter_annotations"><span class="annotation">[<acronym title="Parameter points to an array of items."><span class="acronym">array</span></acronym> length=src_n]</span></td>
-</tr>
-<tr>
-<td class="parameter_name"><p>src_n</p></td>
-<td class="parameter_description"><p>size of <em class="parameter"><code>src</code></em>
-in bytes</p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-<tr>
-<td class="parameter_name"><p>dst</p></td>
-<td class="parameter_description"><p> the destination buffer to store the
-payloaded contents in. Should not overlap with <em class="parameter"><code>src</code></em>
-. </p></td>
-<td class="parameter_annotations"><span class="annotation">[<acronym title="Parameter points to an array of items."><span class="acronym">array</span></acronym> length=dst_n]</span></td>
-</tr>
-<tr>
-<td class="parameter_name"><p>dst_n</p></td>
-<td class="parameter_description"><p>size of <em class="parameter"><code>dst</code></em>
-in bytes</p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-<tr>
-<td class="parameter_name"><p>spec</p></td>
-<td class="parameter_description"><p>the ringbufer spec for <em class="parameter"><code>src</code></em>
-</p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-<tr>
-<td class="parameter_name"><p>endianness</p></td>
-<td class="parameter_description"><p>the expected byte order of the payloaded data</p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-</tbody>
-</table></div>
-</div>
-<div class="refsect3">
-<a name="gst-audio-iec61937-payload.returns"></a><h4>Returns</h4>
-<p> transfer-full: <a href="/usr/share/gtk-doc/html/glibglib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a> if the payloading was successful, <a href="/usr/share/gtk-doc/html/glibglib-Standard-Macros.html#FALSE:CAPS"><code class="literal">FALSE</code></a>
-otherwise.</p>
-</div>
 </div>
 </div>
 <div class="refsect1">
diff --git a/docs/libs/html/gst-plugins-base-libs-gstaudiometa.html b/docs/libs/html/gst-plugins-base-libs-gstaudiometa.html
index cf1a5b3..ae69dda 100644
--- a/docs/libs/html/gst-plugins-base-libs-gstaudiometa.html
+++ b/docs/libs/html/gst-plugins-base-libs-gstaudiometa.html
@@ -27,7 +27,7 @@
 <div class="refnamediv"><table width="100%"><tr>
 <td valign="top">
 <h2><span class="refentrytitle"><a name="gst-plugins-base-libs-gstaudiometa.top_of_page"></a>gstaudiometa</span></h2>
-<p>gstaudiometa — Buffer metadata for audio downmix matrix handling</p>
+<p>gstaudiometa</p>
 </td>
 <td class="gallery_image" valign="top" align="right"></td>
 </tr></table></div>
@@ -104,9 +104,6 @@
 </div>
 <div class="refsect1">
 <a name="gst-plugins-base-libs-gstaudiometa.description"></a><h2>Description</h2>
-<p><a class="link" href="gst-plugins-base-libs-gstaudiometa.html#GstAudioDownmixMeta" title="struct GstAudioDownmixMeta"><span class="type">GstAudioDownmixMeta</span></a> defines an audio downmix matrix to be send along with
-audio buffers. These functions in this module help to create and attach the
-meta as well as extracting it.</p>
 </div>
 <div class="refsect1">
 <a name="gst-plugins-base-libs-gstaudiometa.functions_details"></a><h2>Functions</h2>
@@ -119,66 +116,6 @@
                                    <em class="parameter"><code>const <a class="link" href="gst-plugins-base-libs-gstaudiochannels.html#GstAudioChannelPosition" title="enum GstAudioChannelPosition"><span class="type">GstAudioChannelPosition</span></a> *to_position</code></em>,
                                    <em class="parameter"><code><a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#gint"><span class="type">gint</span></a> to_channels</code></em>,
                                    <em class="parameter"><code>const <a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#gfloat"><span class="type">gfloat</span></a> **matrix</code></em>);</pre>
-<p>Attaches <a class="link" href="gst-plugins-base-libs-gstaudiometa.html#GstAudioDownmixMeta" title="struct GstAudioDownmixMeta"><span class="type">GstAudioDownmixMeta</span></a> metadata to <em class="parameter"><code>buffer</code></em>
- with the given parameters.</p>
-<p><em class="parameter"><code>matrix</code></em>
- is an two-dimensional array of <em class="parameter"><code>to_channels</code></em>
- times <em class="parameter"><code>from_channels</code></em>
-
-coefficients, i.e. the i-th output channels is constructed by multiplicating
-the input channels with the coefficients in <em class="parameter"><code>matrix</code></em>
-[i] and taking the sum
-of the results.</p>
-<div class="refsect3">
-<a name="gst-buffer-add-audio-downmix-meta.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>buffer</p></td>
-<td class="parameter_description"><p>a <a href="/usr/share/gtk-doc/html/gstreamer-1.0GstBuffer.html#GstBuffer-struct"><span class="type">GstBuffer</span></a></p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-<tr>
-<td class="parameter_name"><p>from_position</p></td>
-<td class="parameter_description"><p> the channel positions
-of the source. </p></td>
-<td class="parameter_annotations"><span class="annotation">[<acronym title="Parameter points to an array of items."><span class="acronym">array</span></acronym> length=from_channels]</span></td>
-</tr>
-<tr>
-<td class="parameter_name"><p>from_channels</p></td>
-<td class="parameter_description"><p>The number of channels of the source</p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-<tr>
-<td class="parameter_name"><p>to_position</p></td>
-<td class="parameter_description"><p> the channel positions of
-the destination. </p></td>
-<td class="parameter_annotations"><span class="annotation">[<acronym title="Parameter points to an array of items."><span class="acronym">array</span></acronym> length=to_channels]</span></td>
-</tr>
-<tr>
-<td class="parameter_name"><p>to_channels</p></td>
-<td class="parameter_description"><p>The number of channels of the destination</p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-<tr>
-<td class="parameter_name"><p>matrix</p></td>
-<td class="parameter_description"><p>The matrix coefficients.</p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-</tbody>
-</table></div>
-</div>
-<div class="refsect3">
-<a name="gst-buffer-add-audio-downmix-meta.returns"></a><h4>Returns</h4>
-<p> the <a class="link" href="gst-plugins-base-libs-gstaudiometa.html#GstAudioDownmixMeta" title="struct GstAudioDownmixMeta"><span class="type">GstAudioDownmixMeta</span></a> on <em class="parameter"><code>buffer</code></em>
-. </p>
-<p><span class="annotation">[<acronym title="Don't free data after the code is done."><span class="acronym">transfer none</span></acronym>]</span></p>
-</div>
 </div>
 <hr>
 <div class="refsect2">
@@ -194,43 +131,6 @@
                                (<em class="parameter"><code><a href="/usr/share/gtk-doc/html/gstreamer-1.0GstBuffer.html#GstBuffer-struct"><span class="type">GstBuffer</span></a> *buffer</code></em>,
                                 <em class="parameter"><code>const <a class="link" href="gst-plugins-base-libs-gstaudiochannels.html#GstAudioChannelPosition" title="enum GstAudioChannelPosition"><span class="type">GstAudioChannelPosition</span></a> *to_position</code></em>,
                                 <em class="parameter"><code><a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#gint"><span class="type">gint</span></a> to_channels</code></em>);</pre>
-<p>Find the <a class="link" href="gst-plugins-base-libs-gstaudiometa.html#GstAudioDownmixMeta" title="struct GstAudioDownmixMeta"><span class="type">GstAudioDownmixMeta</span></a> on <em class="parameter"><code>buffer</code></em>
- for the given destination
-channel positions.</p>
-<div class="refsect3">
-<a name="gst-buffer-get-audio-downmix-meta-for-channels.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>buffer</p></td>
-<td class="parameter_description"><p>a <a href="/usr/share/gtk-doc/html/gstreamer-1.0GstBuffer.html#GstBuffer-struct"><span class="type">GstBuffer</span></a></p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-<tr>
-<td class="parameter_name"><p>to_position</p></td>
-<td class="parameter_description"><p> the channel positions of
-the destination. </p></td>
-<td class="parameter_annotations"><span class="annotation">[<acronym title="Parameter points to an array of items."><span class="acronym">array</span></acronym> length=to_channels]</span></td>
-</tr>
-<tr>
-<td class="parameter_name"><p>to_channels</p></td>
-<td class="parameter_description"><p>The number of channels of the destination</p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-</tbody>
-</table></div>
-</div>
-<div class="refsect3">
-<a name="gst-buffer-get-audio-downmix-meta-for-channels.returns"></a><h4>Returns</h4>
-<p> the <a class="link" href="gst-plugins-base-libs-gstaudiometa.html#GstAudioDownmixMeta" title="struct GstAudioDownmixMeta"><span class="type">GstAudioDownmixMeta</span></a> on <em class="parameter"><code>buffer</code></em>
-. </p>
-<p><span class="annotation">[<acronym title="Don't free data after the code is done."><span class="acronym">transfer none</span></acronym>]</span></p>
-</div>
 </div>
 <hr>
 <div class="refsect2">
@@ -240,49 +140,6 @@
                                     <em class="parameter"><code><a href="/usr/share/gtk-doc/html/gstreamer-1.0gstreamer-GstFormat.html#GstFormat"><span class="type">GstFormat</span></a> format</code></em>,
                                     <em class="parameter"><code><a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#guint64"><span class="type">guint64</span></a> start</code></em>,
                                     <em class="parameter"><code><a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#guint64"><span class="type">guint64</span></a> end</code></em>);</pre>
-<p>Attaches <a class="link" href="gst-plugins-base-libs-gstaudiometa.html#GstAudioClippingMeta" title="struct GstAudioClippingMeta"><span class="type">GstAudioClippingMeta</span></a> metadata to <em class="parameter"><code>buffer</code></em>
- with the given parameters.</p>
-<div class="refsect3">
-<a name="gst-buffer-add-audio-clipping-meta.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>buffer</p></td>
-<td class="parameter_description"><p>a <a href="/usr/share/gtk-doc/html/gstreamer-1.0GstBuffer.html#GstBuffer-struct"><span class="type">GstBuffer</span></a></p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-<tr>
-<td class="parameter_name"><p>format</p></td>
-<td class="parameter_description"><p>GstFormat of <em class="parameter"><code>start</code></em>
-and <em class="parameter"><code>stop</code></em>
-, GST_FORMAT_DEFAULT is samples</p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-<tr>
-<td class="parameter_name"><p>start</p></td>
-<td class="parameter_description"><p>Amount of audio to clip from start of buffer</p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-<tr>
-<td class="parameter_name"><p>end</p></td>
-<td class="parameter_description"><p>Amount of  to clip from end of buffer</p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-</tbody>
-</table></div>
-</div>
-<div class="refsect3">
-<a name="gst-buffer-add-audio-clipping-meta.returns"></a><h4>Returns</h4>
-<p> the <a class="link" href="gst-plugins-base-libs-gstaudiometa.html#GstAudioClippingMeta" title="struct GstAudioClippingMeta"><span class="type">GstAudioClippingMeta</span></a> on <em class="parameter"><code>buffer</code></em>
-. </p>
-<p><span class="annotation">[<acronym title="Don't free data after the code is done."><span class="acronym">transfer none</span></acronym>]</span></p>
-</div>
-<p class="since">Since: 1.8</p>
 </div>
 <hr>
 <div class="refsect2">
@@ -304,60 +161,6 @@
   gfloat       **matrix;
 };
 </pre>
-<p>Extra buffer metadata describing audio downmixing matrix. This metadata is
-attached to audio buffers and contains a matrix to downmix the buffer number
-of channels to <em class="parameter"><code>channels</code></em>
-.</p>
-<p><em class="parameter"><code>matrix</code></em>
- is an two-dimensional array of <em class="parameter"><code>to_channels</code></em>
- times <em class="parameter"><code>from_channels</code></em>
-
-coefficients, i.e. the i-th output channels is constructed by multiplicating
-the input channels with the coefficients in <em class="parameter"><code>matrix</code></em>
-[i] and taking the sum
-of the results.</p>
-<div class="refsect3">
-<a name="GstAudioDownmixMeta.members"></a><h4>Members</h4>
-<div class="informaltable"><table class="informaltable" width="100%" border="0">
-<colgroup>
-<col width="300px" class="struct_members_name">
-<col class="struct_members_description">
-<col width="200px" class="struct_members_annotations">
-</colgroup>
-<tbody>
-<tr>
-<td class="struct_member_name"><p><a href="/usr/share/gtk-doc/html/gstreamer-1.0gstreamer-GstMeta.html#GstMeta"><span class="type">GstMeta</span></a> <em class="structfield"><code><a name="GstAudioDownmixMeta.meta"></a>meta</code></em>;</p></td>
-<td class="struct_member_description"><p>parent <a href="/usr/share/gtk-doc/html/gstreamer-1.0gstreamer-GstMeta.html#GstMeta"><span class="type">GstMeta</span></a></p></td>
-<td class="struct_member_annotations"> </td>
-</tr>
-<tr>
-<td class="struct_member_name"><p><a class="link" href="gst-plugins-base-libs-gstaudiochannels.html#GstAudioChannelPosition" title="enum GstAudioChannelPosition"><span class="type">GstAudioChannelPosition</span></a> *<em class="structfield"><code><a name="GstAudioDownmixMeta.from-position"></a>from_position</code></em>;</p></td>
-<td class="struct_member_description"><p>the channel positions of the source</p></td>
-<td class="struct_member_annotations"> </td>
-</tr>
-<tr>
-<td class="struct_member_name"><p><a class="link" href="gst-plugins-base-libs-gstaudiochannels.html#GstAudioChannelPosition" title="enum GstAudioChannelPosition"><span class="type">GstAudioChannelPosition</span></a> *<em class="structfield"><code><a name="GstAudioDownmixMeta.to-position"></a>to_position</code></em>;</p></td>
-<td class="struct_member_description"><p>the channel positions of the destination</p></td>
-<td class="struct_member_annotations"> </td>
-</tr>
-<tr>
-<td class="struct_member_name"><p><a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#gint"><span class="type">gint</span></a> <em class="structfield"><code><a name="GstAudioDownmixMeta.from-channels"></a>from_channels</code></em>;</p></td>
-<td class="struct_member_description"><p>the number of channels of the source</p></td>
-<td class="struct_member_annotations"> </td>
-</tr>
-<tr>
-<td class="struct_member_name"><p><a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#gint"><span class="type">gint</span></a> <em class="structfield"><code><a name="GstAudioDownmixMeta.to-channels"></a>to_channels</code></em>;</p></td>
-<td class="struct_member_description"><p>the number of channels of the destination</p></td>
-<td class="struct_member_annotations"> </td>
-</tr>
-<tr>
-<td class="struct_member_name"><p><a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#gfloat"><span class="type">gfloat</span></a> **<em class="structfield"><code><a name="GstAudioDownmixMeta.matrix"></a>matrix</code></em>;</p></td>
-<td class="struct_member_description"><p>the matrix coefficients.</p></td>
-<td class="struct_member_annotations"> </td>
-</tr>
-</tbody>
-</table></div>
-</div>
 </div>
 <hr>
 <div class="refsect2">
@@ -370,50 +173,6 @@
   guint64   end;
 };
 </pre>
-<p>Extra buffer metadata describing how much audio has to be clipped from
-the start or end of a buffer. This is used for compressed formats, where
-the first frame usually has some additional samples due to encoder and
-decoder delays, and the last frame usually has some additional samples to
-be able to fill the complete last frame.</p>
-<p>This is used to ensure that decoded data in the end has the same amount of
-samples, and multiply decoded streams can be gaplessly concatenated.</p>
-<p>Note: If clipping of the start is done by adjusting the segment, this meta
-has to be dropped from buffers as otherwise clipping could happen twice.</p>
-<div class="refsect3">
-<a name="GstAudioClippingMeta.members"></a><h4>Members</h4>
-<div class="informaltable"><table class="informaltable" width="100%" border="0">
-<colgroup>
-<col width="300px" class="struct_members_name">
-<col class="struct_members_description">
-<col width="200px" class="struct_members_annotations">
-</colgroup>
-<tbody>
-<tr>
-<td class="struct_member_name"><p><a href="/usr/share/gtk-doc/html/gstreamer-1.0gstreamer-GstMeta.html#GstMeta"><span class="type">GstMeta</span></a> <em class="structfield"><code><a name="GstAudioClippingMeta.meta"></a>meta</code></em>;</p></td>
-<td class="struct_member_description"><p>parent <a href="/usr/share/gtk-doc/html/gstreamer-1.0gstreamer-GstMeta.html#GstMeta"><span class="type">GstMeta</span></a></p></td>
-<td class="struct_member_annotations"> </td>
-</tr>
-<tr>
-<td class="struct_member_name"><p><a href="/usr/share/gtk-doc/html/gstreamer-1.0gstreamer-GstFormat.html#GstFormat"><span class="type">GstFormat</span></a> <em class="structfield"><code><a name="GstAudioClippingMeta.format"></a>format</code></em>;</p></td>
-<td class="struct_member_description"><p>GstFormat of <em class="parameter"><code>start</code></em>
-and <em class="parameter"><code>stop</code></em>
-, GST_FORMAT_DEFAULT is samples</p></td>
-<td class="struct_member_annotations"> </td>
-</tr>
-<tr>
-<td class="struct_member_name"><p><a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#guint64"><span class="type">guint64</span></a> <em class="structfield"><code><a name="GstAudioClippingMeta.start"></a>start</code></em>;</p></td>
-<td class="struct_member_description"><p>Amount of audio to clip from start of buffer</p></td>
-<td class="struct_member_annotations"> </td>
-</tr>
-<tr>
-<td class="struct_member_name"><p><a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#guint64"><span class="type">guint64</span></a> <em class="structfield"><code><a name="GstAudioClippingMeta.end"></a>end</code></em>;</p></td>
-<td class="struct_member_description"><p>Amount of  to clip from end of buffer</p></td>
-<td class="struct_member_annotations"> </td>
-</tr>
-</tbody>
-</table></div>
-</div>
-<p class="since">Since: 1.8</p>
 </div>
 </div>
 </div>
diff --git a/docs/libs/html/gst-plugins-base-libs-gstaudioringbuffer.html b/docs/libs/html/gst-plugins-base-libs-gstaudioringbuffer.html
index 889e608..84f8e2b 100644
--- a/docs/libs/html/gst-plugins-base-libs-gstaudioringbuffer.html
+++ b/docs/libs/html/gst-plugins-base-libs-gstaudioringbuffer.html
@@ -28,7 +28,7 @@
 <div class="refnamediv"><table width="100%"><tr>
 <td valign="top">
 <h2><span class="refentrytitle"><a name="gst-plugins-base-libs-gstaudioringbuffer.top_of_page"></a>gstaudioringbuffer</span></h2>
-<p>gstaudioringbuffer — Base class for audio ringbuffer implementations</p>
+<p>gstaudioringbuffer</p>
 </td>
 <td class="gallery_image" valign="top" align="right"></td>
 </tr></table></div>
@@ -345,19 +345,6 @@
 </div>
 <div class="refsect1">
 <a name="gst-plugins-base-libs-gstaudioringbuffer.description"></a><h2>Description</h2>
-<div class="refsect2">
-<a name="id-1.2.6.17.8.2"></a><p>
-This object is the base class for audio ringbuffers used by the base
-audio source and sink classes.
-</p>
-<p>
-The ringbuffer abstracts a circular buffer of data. One reader and
-one writer can operate on the data from different threads in a lockfree
-manner. The base class is sufficiently flexible to be used as an
-abstraction for DMA based ringbuffers as well as a pure software
-implementations.
-</p>
-</div>
 </div>
 <div class="refsect1">
 <a name="gst-plugins-base-libs-gstaudioringbuffer.functions_details"></a><h2>Functions</h2>
@@ -368,42 +355,6 @@
                                <em class="parameter"><code><a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#guint8"><span class="type">guint8</span></a> *data</code></em>,
                                <em class="parameter"><code><a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#guint"><span class="type">guint</span></a> len</code></em>,
                                <em class="parameter"><code><a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> user_data</code></em>);</pre>
-<p>This function is set with <a class="link" href="gst-plugins-base-libs-gstaudioringbuffer.html#gst-audio-ring-buffer-set-callback" title="gst_audio_ring_buffer_set_callback ()"><code class="function">gst_audio_ring_buffer_set_callback()</code></a> and is
-called to fill the memory at <em class="parameter"><code>data</code></em>
- with <em class="parameter"><code>len</code></em>
- bytes of samples.</p>
-<div class="refsect3">
-<a name="GstAudioRingBufferCallback.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>rbuf</p></td>
-<td class="parameter_description"><p>a <a class="link" href="gst-plugins-base-libs-gstaudioringbuffer.html#GstAudioRingBuffer"><span class="type">GstAudioRingBuffer</span></a></p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-<tr>
-<td class="parameter_name"><p>data</p></td>
-<td class="parameter_description"><p> target to fill. </p></td>
-<td class="parameter_annotations"><span class="annotation">[<acronym title="Parameter points to an array of items."><span class="acronym">array</span></acronym> length=len]</span></td>
-</tr>
-<tr>
-<td class="parameter_name"><p>len</p></td>
-<td class="parameter_description"><p>amount to fill</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</p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-</tbody>
-</table></div>
-</div>
 </div>
 <hr>
 <div class="refsect2">
@@ -436,36 +387,6 @@
 gst_audio_ring_buffer_set_callback (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstaudioringbuffer.html#GstAudioRingBuffer"><span class="type">GstAudioRingBuffer</span></a> *buf</code></em>,
                                     <em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstaudioringbuffer.html#GstAudioRingBufferCallback" title="GstAudioRingBufferCallback ()"><span class="type">GstAudioRingBufferCallback</span></a> cb</code></em>,
                                     <em class="parameter"><code><a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> user_data</code></em>);</pre>
-<p>Sets the given callback function on the buffer. This function
-will be called every time a segment has been written to a device.</p>
-<p>MT safe.</p>
-<div class="refsect3">
-<a name="gst-audio-ring-buffer-set-callback.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>buf</p></td>
-<td class="parameter_description"><p>the <a class="link" href="gst-plugins-base-libs-gstaudioringbuffer.html#GstAudioRingBuffer"><span class="type">GstAudioRingBuffer</span></a> to set the callback on</p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-<tr>
-<td class="parameter_name"><p>cb</p></td>
-<td class="parameter_description"><p> the callback to set. </p></td>
-<td class="parameter_annotations"><span class="annotation">[<acronym title="The callback is valid until first called."><span class="acronym">scope async</span></acronym>]</span></td>
-</tr>
-<tr>
-<td class="parameter_name"><p>user_data</p></td>
-<td class="parameter_description"><p>user data passed to the callback</p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-</tbody>
-</table></div>
-</div>
 </div>
 <hr>
 <div class="refsect2">
@@ -473,90 +394,18 @@
 <pre class="programlisting"><a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
 gst_audio_ring_buffer_acquire (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstaudioringbuffer.html#GstAudioRingBuffer"><span class="type">GstAudioRingBuffer</span></a> *buf</code></em>,
                                <em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstaudioringbuffer.html#GstAudioRingBufferSpec" title="struct GstAudioRingBufferSpec"><span class="type">GstAudioRingBufferSpec</span></a> *spec</code></em>);</pre>
-<p>Allocate the resources for the ringbuffer. This function fills
-in the data pointer of the ring buffer with a valid <a href="/usr/share/gtk-doc/html/gstreamer-1.0GstBuffer.html#GstBuffer-struct"><span class="type">GstBuffer</span></a>
-to which samples can be written.</p>
-<div class="refsect3">
-<a name="gst-audio-ring-buffer-acquire.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>buf</p></td>
-<td class="parameter_description"><p>the <a class="link" href="gst-plugins-base-libs-gstaudioringbuffer.html#GstAudioRingBuffer"><span class="type">GstAudioRingBuffer</span></a> to acquire</p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-<tr>
-<td class="parameter_name"><p>spec</p></td>
-<td class="parameter_description"><p>the specs of the buffer</p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-</tbody>
-</table></div>
-</div>
-<div class="refsect3">
-<a name="gst-audio-ring-buffer-acquire.returns"></a><h4>Returns</h4>
-<p> TRUE if the device could be acquired, FALSE on error.</p>
-<p>MT safe.</p>
-</div>
 </div>
 <hr>
 <div class="refsect2">
 <a name="gst-audio-ring-buffer-release"></a><h3>gst_audio_ring_buffer_release ()</h3>
 <pre class="programlisting"><a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
 gst_audio_ring_buffer_release (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstaudioringbuffer.html#GstAudioRingBuffer"><span class="type">GstAudioRingBuffer</span></a> *buf</code></em>);</pre>
-<p>Free the resources of the ringbuffer.</p>
-<div class="refsect3">
-<a name="gst-audio-ring-buffer-release.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>buf</p></td>
-<td class="parameter_description"><p>the <a class="link" href="gst-plugins-base-libs-gstaudioringbuffer.html#GstAudioRingBuffer"><span class="type">GstAudioRingBuffer</span></a> to release</p></td>
-<td class="parameter_annotations"> </td>
-</tr></tbody>
-</table></div>
-</div>
-<div class="refsect3">
-<a name="gst-audio-ring-buffer-release.returns"></a><h4>Returns</h4>
-<p> TRUE if the device could be released, FALSE on error.</p>
-<p>MT safe.</p>
-</div>
 </div>
 <hr>
 <div class="refsect2">
 <a name="gst-audio-ring-buffer-is-acquired"></a><h3>gst_audio_ring_buffer_is_acquired ()</h3>
 <pre class="programlisting"><a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
 gst_audio_ring_buffer_is_acquired (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstaudioringbuffer.html#GstAudioRingBuffer"><span class="type">GstAudioRingBuffer</span></a> *buf</code></em>);</pre>
-<p>Check if the ringbuffer is acquired and ready to use.</p>
-<div class="refsect3">
-<a name="gst-audio-ring-buffer-is-acquired.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>buf</p></td>
-<td class="parameter_description"><p>the <a class="link" href="gst-plugins-base-libs-gstaudioringbuffer.html#GstAudioRingBuffer"><span class="type">GstAudioRingBuffer</span></a> to check</p></td>
-<td class="parameter_annotations"> </td>
-</tr></tbody>
-</table></div>
-</div>
-<div class="refsect3">
-<a name="gst-audio-ring-buffer-is-acquired.returns"></a><h4>Returns</h4>
-<p> TRUE if the ringbuffer is acquired, FALSE on error.</p>
-<p>MT safe.</p>
-</div>
 </div>
 <hr>
 <div class="refsect2">
@@ -564,208 +413,42 @@
 <pre class="programlisting"><a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
 gst_audio_ring_buffer_activate (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstaudioringbuffer.html#GstAudioRingBuffer"><span class="type">GstAudioRingBuffer</span></a> *buf</code></em>,
                                 <em class="parameter"><code><a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a> active</code></em>);</pre>
-<p>Activate <em class="parameter"><code>buf</code></em>
- to start or stop pulling data.</p>
-<p>MT safe.</p>
-<div class="refsect3">
-<a name="gst-audio-ring-buffer-activate.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>buf</p></td>
-<td class="parameter_description"><p>the <a class="link" href="gst-plugins-base-libs-gstaudioringbuffer.html#GstAudioRingBuffer"><span class="type">GstAudioRingBuffer</span></a> to activate</p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-<tr>
-<td class="parameter_name"><p>active</p></td>
-<td class="parameter_description"><p>the new mode</p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-</tbody>
-</table></div>
-</div>
-<div class="refsect3">
-<a name="gst-audio-ring-buffer-activate.returns"></a><h4>Returns</h4>
-<p> TRUE if the device could be activated in the requested mode,
-FALSE on error.</p>
-</div>
 </div>
 <hr>
 <div class="refsect2">
 <a name="gst-audio-ring-buffer-is-active"></a><h3>gst_audio_ring_buffer_is_active ()</h3>
 <pre class="programlisting"><a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
 gst_audio_ring_buffer_is_active (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstaudioringbuffer.html#GstAudioRingBuffer"><span class="type">GstAudioRingBuffer</span></a> *buf</code></em>);</pre>
-<p>Check if <em class="parameter"><code>buf</code></em>
- is activated.</p>
-<p>MT safe.</p>
-<div class="refsect3">
-<a name="gst-audio-ring-buffer-is-active.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>buf</p></td>
-<td class="parameter_description"><p>the <a class="link" href="gst-plugins-base-libs-gstaudioringbuffer.html#GstAudioRingBuffer"><span class="type">GstAudioRingBuffer</span></a></p></td>
-<td class="parameter_annotations"> </td>
-</tr></tbody>
-</table></div>
-</div>
-<div class="refsect3">
-<a name="gst-audio-ring-buffer-is-active.returns"></a><h4>Returns</h4>
-<p> TRUE if the device is active.</p>
-</div>
 </div>
 <hr>
 <div class="refsect2">
 <a name="gst-audio-ring-buffer-start"></a><h3>gst_audio_ring_buffer_start ()</h3>
 <pre class="programlisting"><a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
 gst_audio_ring_buffer_start (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstaudioringbuffer.html#GstAudioRingBuffer"><span class="type">GstAudioRingBuffer</span></a> *buf</code></em>);</pre>
-<p>Start processing samples from the ringbuffer.</p>
-<div class="refsect3">
-<a name="gst-audio-ring-buffer-start.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>buf</p></td>
-<td class="parameter_description"><p>the <a class="link" href="gst-plugins-base-libs-gstaudioringbuffer.html#GstAudioRingBuffer"><span class="type">GstAudioRingBuffer</span></a> to start</p></td>
-<td class="parameter_annotations"> </td>
-</tr></tbody>
-</table></div>
-</div>
-<div class="refsect3">
-<a name="gst-audio-ring-buffer-start.returns"></a><h4>Returns</h4>
-<p> TRUE if the device could be started, FALSE on error.</p>
-<p>MT safe.</p>
-</div>
 </div>
 <hr>
 <div class="refsect2">
 <a name="gst-audio-ring-buffer-pause"></a><h3>gst_audio_ring_buffer_pause ()</h3>
 <pre class="programlisting"><a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
 gst_audio_ring_buffer_pause (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstaudioringbuffer.html#GstAudioRingBuffer"><span class="type">GstAudioRingBuffer</span></a> *buf</code></em>);</pre>
-<p>Pause processing samples from the ringbuffer.</p>
-<div class="refsect3">
-<a name="gst-audio-ring-buffer-pause.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>buf</p></td>
-<td class="parameter_description"><p>the <a class="link" href="gst-plugins-base-libs-gstaudioringbuffer.html#GstAudioRingBuffer"><span class="type">GstAudioRingBuffer</span></a> to pause</p></td>
-<td class="parameter_annotations"> </td>
-</tr></tbody>
-</table></div>
-</div>
-<div class="refsect3">
-<a name="gst-audio-ring-buffer-pause.returns"></a><h4>Returns</h4>
-<p> TRUE if the device could be paused, FALSE on error.</p>
-<p>MT safe.</p>
-</div>
 </div>
 <hr>
 <div class="refsect2">
 <a name="gst-audio-ring-buffer-stop"></a><h3>gst_audio_ring_buffer_stop ()</h3>
 <pre class="programlisting"><a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
 gst_audio_ring_buffer_stop (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstaudioringbuffer.html#GstAudioRingBuffer"><span class="type">GstAudioRingBuffer</span></a> *buf</code></em>);</pre>
-<p>Stop processing samples from the ringbuffer.</p>
-<div class="refsect3">
-<a name="gst-audio-ring-buffer-stop.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>buf</p></td>
-<td class="parameter_description"><p>the <a class="link" href="gst-plugins-base-libs-gstaudioringbuffer.html#GstAudioRingBuffer"><span class="type">GstAudioRingBuffer</span></a> to stop</p></td>
-<td class="parameter_annotations"> </td>
-</tr></tbody>
-</table></div>
-</div>
-<div class="refsect3">
-<a name="gst-audio-ring-buffer-stop.returns"></a><h4>Returns</h4>
-<p> TRUE if the device could be stopped, FALSE on error.</p>
-<p>MT safe.</p>
-</div>
 </div>
 <hr>
 <div class="refsect2">
 <a name="gst-audio-ring-buffer-delay"></a><h3>gst_audio_ring_buffer_delay ()</h3>
 <pre class="programlisting"><a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#guint"><span class="returnvalue">guint</span></a>
 gst_audio_ring_buffer_delay (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstaudioringbuffer.html#GstAudioRingBuffer"><span class="type">GstAudioRingBuffer</span></a> *buf</code></em>);</pre>
-<p>Get the number of samples queued in the audio device. This is
-usually less than the segment size but can be bigger when the
-implementation uses another internal buffer between the audio
-device.</p>
-<p>For playback ringbuffers this is the amount of samples transfered from the
-ringbuffer to the device but still not played.</p>
-<p>For capture ringbuffers this is the amount of samples in the device that are
-not yet transfered to the ringbuffer.</p>
-<div class="refsect3">
-<a name="gst-audio-ring-buffer-delay.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>buf</p></td>
-<td class="parameter_description"><p>the <a class="link" href="gst-plugins-base-libs-gstaudioringbuffer.html#GstAudioRingBuffer"><span class="type">GstAudioRingBuffer</span></a> to query</p></td>
-<td class="parameter_annotations"> </td>
-</tr></tbody>
-</table></div>
-</div>
-<div class="refsect3">
-<a name="gst-audio-ring-buffer-delay.returns"></a><h4>Returns</h4>
-<p> The number of samples queued in the audio device.</p>
-<p>MT safe.</p>
-</div>
 </div>
 <hr>
 <div class="refsect2">
 <a name="gst-audio-ring-buffer-samples-done"></a><h3>gst_audio_ring_buffer_samples_done ()</h3>
 <pre class="programlisting"><a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#guint64"><span class="returnvalue">guint64</span></a>
 gst_audio_ring_buffer_samples_done (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstaudioringbuffer.html#GstAudioRingBuffer"><span class="type">GstAudioRingBuffer</span></a> *buf</code></em>);</pre>
-<p>Get the number of samples that were processed by the ringbuffer
-since it was last started. This does not include the number of samples not
-yet processed (see <a class="link" href="gst-plugins-base-libs-gstaudioringbuffer.html#gst-audio-ring-buffer-delay" title="gst_audio_ring_buffer_delay ()"><code class="function">gst_audio_ring_buffer_delay()</code></a>).</p>
-<div class="refsect3">
-<a name="gst-audio-ring-buffer-samples-done.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>buf</p></td>
-<td class="parameter_description"><p>the <a class="link" href="gst-plugins-base-libs-gstaudioringbuffer.html#GstAudioRingBuffer"><span class="type">GstAudioRingBuffer</span></a> to query</p></td>
-<td class="parameter_annotations"> </td>
-</tr></tbody>
-</table></div>
-</div>
-<div class="refsect3">
-<a name="gst-audio-ring-buffer-samples-done.returns"></a><h4>Returns</h4>
-<p> The number of samples processed by the ringbuffer.</p>
-<p>MT safe.</p>
-</div>
 </div>
 <hr>
 <div class="refsect2">
@@ -773,35 +456,6 @@
 <pre class="programlisting"><span class="returnvalue">void</span>
 gst_audio_ring_buffer_set_sample (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstaudioringbuffer.html#GstAudioRingBuffer"><span class="type">GstAudioRingBuffer</span></a> *buf</code></em>,
                                   <em class="parameter"><code><a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#guint64"><span class="type">guint64</span></a> sample</code></em>);</pre>
-<p>Make sure that the next sample written to the device is
-accounted for as being the <em class="parameter"><code>sample</code></em>
- sample written to the
-device. This value will be used in reporting the current
-sample position of the ringbuffer.</p>
-<p>This function will also clear the buffer with silence.</p>
-<p>MT safe.</p>
-<div class="refsect3">
-<a name="gst-audio-ring-buffer-set-sample.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>buf</p></td>
-<td class="parameter_description"><p>the <a class="link" href="gst-plugins-base-libs-gstaudioringbuffer.html#GstAudioRingBuffer"><span class="type">GstAudioRingBuffer</span></a> to use</p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-<tr>
-<td class="parameter_name"><p>sample</p></td>
-<td class="parameter_description"><p>the sample number to set</p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-</tbody>
-</table></div>
-</div>
 </div>
 <hr>
 <div class="refsect2">
@@ -813,85 +467,6 @@
                               <em class="parameter"><code><a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#gint"><span class="type">gint</span></a> in_samples</code></em>,
                               <em class="parameter"><code><a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#gint"><span class="type">gint</span></a> out_samples</code></em>,
                               <em class="parameter"><code><a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#gint"><span class="type">gint</span></a> *accum</code></em>);</pre>
-<p>Commit <em class="parameter"><code>in_samples</code></em>
- samples pointed to by <em class="parameter"><code>data</code></em>
- to the ringbuffer <em class="parameter"><code>buf</code></em>
-.</p>
-<p><em class="parameter"><code>in_samples</code></em>
- and <em class="parameter"><code>out_samples</code></em>
- define the rate conversion to perform on the
-samples in <em class="parameter"><code>data</code></em>
-. For negative rates, <em class="parameter"><code>out_samples</code></em>
- must be negative and
-<em class="parameter"><code>in_samples</code></em>
- positive.</p>
-<p>When <em class="parameter"><code>out_samples</code></em>
- is positive, the first sample will be written at position <em class="parameter"><code>sample</code></em>
-
-in the ringbuffer. When <em class="parameter"><code>out_samples</code></em>
- is negative, the last sample will be written to
-<em class="parameter"><code>sample</code></em>
- in reverse order.</p>
-<p><em class="parameter"><code>out_samples</code></em>
- does not need to be a multiple of the segment size of the ringbuffer
-although it is recommended for optimal performance.</p>
-<p><em class="parameter"><code>accum</code></em>
- will hold a temporary accumulator used in rate conversion and should be
-set to 0 when this function is first called. In case the commit operation is
-interrupted, one can resume the processing by passing the previously returned
-<em class="parameter"><code>accum</code></em>
- value back to this function.</p>
-<p>MT safe.</p>
-<div class="refsect3">
-<a name="gst-audio-ring-buffer-commit.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>buf</p></td>
-<td class="parameter_description"><p>the <a class="link" href="gst-plugins-base-libs-gstaudioringbuffer.html#GstAudioRingBuffer"><span class="type">GstAudioRingBuffer</span></a> to commit</p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-<tr>
-<td class="parameter_name"><p>sample</p></td>
-<td class="parameter_description"><p>the sample position of the data</p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-<tr>
-<td class="parameter_name"><p>data</p></td>
-<td class="parameter_description"><p>the data to commit</p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-<tr>
-<td class="parameter_name"><p>in_samples</p></td>
-<td class="parameter_description"><p>the number of samples in the data to commit</p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-<tr>
-<td class="parameter_name"><p>out_samples</p></td>
-<td class="parameter_description"><p>the number of samples to write to the ringbuffer</p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-<tr>
-<td class="parameter_name"><p>accum</p></td>
-<td class="parameter_description"><p>accumulator for rate conversion.</p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-</tbody>
-</table></div>
-</div>
-<div class="refsect3">
-<a name="gst-audio-ring-buffer-commit.returns"></a><h4>Returns</h4>
-<p> The number of samples written to the ringbuffer or -1 on error. The
-number of samples written can be less than <em class="parameter"><code>out_samples</code></em>
-when <em class="parameter"><code>buf</code></em>
-was interrupted
-with a flush or stop.</p>
-</div>
 </div>
 <hr>
 <div class="refsect2">
@@ -902,53 +477,6 @@
                                <em class="parameter"><code><a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#gint64"><span class="type">gint64</span></a> src_val</code></em>,
                                <em class="parameter"><code><a href="/usr/share/gtk-doc/html/gstreamer-1.0gstreamer-GstFormat.html#GstFormat"><span class="type">GstFormat</span></a> dest_fmt</code></em>,
                                <em class="parameter"><code><a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#gint64"><span class="type">gint64</span></a> *dest_val</code></em>);</pre>
-<p>Convert <em class="parameter"><code>src_val</code></em>
- in <em class="parameter"><code>src_fmt</code></em>
- to the equivalent value in <em class="parameter"><code>dest_fmt</code></em>
-. The result
-will be put in <em class="parameter"><code>dest_val</code></em>
-.</p>
-<div class="refsect3">
-<a name="gst-audio-ring-buffer-convert.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>buf</p></td>
-<td class="parameter_description"><p>the <a class="link" href="gst-plugins-base-libs-gstaudioringbuffer.html#GstAudioRingBuffer"><span class="type">GstAudioRingBuffer</span></a></p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-<tr>
-<td class="parameter_name"><p>src_fmt</p></td>
-<td class="parameter_description"><p>the source format</p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-<tr>
-<td class="parameter_name"><p>src_val</p></td>
-<td class="parameter_description"><p>the source value</p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-<tr>
-<td class="parameter_name"><p>dest_fmt</p></td>
-<td class="parameter_description"><p>the destination format</p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-<tr>
-<td class="parameter_name"><p>dest_val</p></td>
-<td class="parameter_description"><p>a location to store the converted value</p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-</tbody>
-</table></div>
-</div>
-<div class="refsect3">
-<a name="gst-audio-ring-buffer-convert.returns"></a><h4>Returns</h4>
-<p> TRUE if the conversion succeeded.</p>
-</div>
 </div>
 <hr>
 <div class="refsect2">
@@ -958,46 +486,6 @@
                                     <em class="parameter"><code><a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#gint"><span class="type">gint</span></a> *segment</code></em>,
                                     <em class="parameter"><code><a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#guint8"><span class="type">guint8</span></a> **readptr</code></em>,
                                     <em class="parameter"><code><a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#gint"><span class="type">gint</span></a> *len</code></em>);</pre>
-<p>Returns a pointer to memory where the data from segment <em class="parameter"><code>segment</code></em>
-
-can be found. This function is mostly used by subclasses.</p>
-<div class="refsect3">
-<a name="gst-audio-ring-buffer-prepare-read.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>buf</p></td>
-<td class="parameter_description"><p>the <a class="link" href="gst-plugins-base-libs-gstaudioringbuffer.html#GstAudioRingBuffer"><span class="type">GstAudioRingBuffer</span></a> to read from</p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-<tr>
-<td class="parameter_name"><p>segment</p></td>
-<td class="parameter_description"><p>the segment to read</p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-<tr>
-<td class="parameter_name"><p>readptr</p></td>
-<td class="parameter_description"><p>the pointer to the memory where samples can be read</p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-<tr>
-<td class="parameter_name"><p>len</p></td>
-<td class="parameter_description"><p>the number of bytes to read</p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-</tbody>
-</table></div>
-</div>
-<div class="refsect3">
-<a name="gst-audio-ring-buffer-prepare-read.returns"></a><h4>Returns</h4>
-<p> FALSE if the buffer is not started.</p>
-<p>MT safe.</p>
-</div>
 </div>
 <hr>
 <div class="refsect2">
@@ -1008,61 +496,6 @@
                             <em class="parameter"><code><a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#guint8"><span class="type">guint8</span></a> *data</code></em>,
                             <em class="parameter"><code><a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#guint"><span class="type">guint</span></a> len</code></em>,
                             <em class="parameter"><code><a href="/usr/share/gtk-doc/html/gstreamer-1.0GstClock.html#GstClockTime"><span class="type">GstClockTime</span></a> *timestamp</code></em>);</pre>
-<p>Read <em class="parameter"><code>len</code></em>
- samples from the ringbuffer into the memory pointed
-to by <em class="parameter"><code>data</code></em>
-.
-The first sample should be read from position <em class="parameter"><code>sample</code></em>
- in
-the ringbuffer.</p>
-<p><em class="parameter"><code>len</code></em>
- should not be a multiple of the segment size of the ringbuffer
-although it is recommended.</p>
-<p><em class="parameter"><code>timestamp</code></em>
- will return the timestamp associated with the data returned.</p>
-<div class="refsect3">
-<a name="gst-audio-ring-buffer-read.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>buf</p></td>
-<td class="parameter_description"><p>the <a class="link" href="gst-plugins-base-libs-gstaudioringbuffer.html#GstAudioRingBuffer"><span class="type">GstAudioRingBuffer</span></a> to read from</p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-<tr>
-<td class="parameter_name"><p>sample</p></td>
-<td class="parameter_description"><p>the sample position of the data</p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-<tr>
-<td class="parameter_name"><p>data</p></td>
-<td class="parameter_description"><p>where the data should be read</p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-<tr>
-<td class="parameter_name"><p>len</p></td>
-<td class="parameter_description"><p>the number of samples in data to read</p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-<tr>
-<td class="parameter_name"><p>timestamp</p></td>
-<td class="parameter_description"><p>where the timestamp is returned</p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-</tbody>
-</table></div>
-</div>
-<div class="refsect3">
-<a name="gst-audio-ring-buffer-read.returns"></a><h4>Returns</h4>
-<p> The number of samples read from the ringbuffer or -1 on
-error.</p>
-<p>MT safe.</p>
-</div>
 </div>
 <hr>
 <div class="refsect2">
@@ -1070,54 +503,12 @@
 <pre class="programlisting"><span class="returnvalue">void</span>
 gst_audio_ring_buffer_clear (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstaudioringbuffer.html#GstAudioRingBuffer"><span class="type">GstAudioRingBuffer</span></a> *buf</code></em>,
                              <em class="parameter"><code><a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#gint"><span class="type">gint</span></a> segment</code></em>);</pre>
-<p>Clear the given segment of the buffer with silence samples.
-This function is used by subclasses.</p>
-<p>MT safe.</p>
-<div class="refsect3">
-<a name="gst-audio-ring-buffer-clear.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>buf</p></td>
-<td class="parameter_description"><p>the <a class="link" href="gst-plugins-base-libs-gstaudioringbuffer.html#GstAudioRingBuffer"><span class="type">GstAudioRingBuffer</span></a> to clear</p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-<tr>
-<td class="parameter_name"><p>segment</p></td>
-<td class="parameter_description"><p>the segment to clear</p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-</tbody>
-</table></div>
-</div>
 </div>
 <hr>
 <div class="refsect2">
 <a name="gst-audio-ring-buffer-clear-all"></a><h3>gst_audio_ring_buffer_clear_all ()</h3>
 <pre class="programlisting"><span class="returnvalue">void</span>
 gst_audio_ring_buffer_clear_all (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstaudioringbuffer.html#GstAudioRingBuffer"><span class="type">GstAudioRingBuffer</span></a> *buf</code></em>);</pre>
-<p>Fill the ringbuffer with silence.</p>
-<p>MT safe.</p>
-<div class="refsect3">
-<a name="gst-audio-ring-buffer-clear-all.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>buf</p></td>
-<td class="parameter_description"><p>the <a class="link" href="gst-plugins-base-libs-gstaudioringbuffer.html#GstAudioRingBuffer"><span class="type">GstAudioRingBuffer</span></a> to clear</p></td>
-<td class="parameter_annotations"> </td>
-</tr></tbody>
-</table></div>
-</div>
 </div>
 <hr>
 <div class="refsect2">
@@ -1125,116 +516,24 @@
 <pre class="programlisting"><span class="returnvalue">void</span>
 gst_audio_ring_buffer_advance (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstaudioringbuffer.html#GstAudioRingBuffer"><span class="type">GstAudioRingBuffer</span></a> *buf</code></em>,
                                <em class="parameter"><code><a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#guint"><span class="type">guint</span></a> advance</code></em>);</pre>
-<p>Subclasses should call this function to notify the fact that
-<em class="parameter"><code>advance</code></em>
- segments are now processed by the device.</p>
-<p>MT safe.</p>
-<div class="refsect3">
-<a name="gst-audio-ring-buffer-advance.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>buf</p></td>
-<td class="parameter_description"><p>the <a class="link" href="gst-plugins-base-libs-gstaudioringbuffer.html#GstAudioRingBuffer"><span class="type">GstAudioRingBuffer</span></a> to advance</p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-<tr>
-<td class="parameter_name"><p>advance</p></td>
-<td class="parameter_description"><p>the number of segments written</p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-</tbody>
-</table></div>
-</div>
 </div>
 <hr>
 <div class="refsect2">
 <a name="gst-audio-ring-buffer-close-device"></a><h3>gst_audio_ring_buffer_close_device ()</h3>
 <pre class="programlisting"><a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
 gst_audio_ring_buffer_close_device (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstaudioringbuffer.html#GstAudioRingBuffer"><span class="type">GstAudioRingBuffer</span></a> *buf</code></em>);</pre>
-<p>Close the audio device associated with the ring buffer. The ring buffer
-should already have been released via <a class="link" href="gst-plugins-base-libs-gstaudioringbuffer.html#gst-audio-ring-buffer-release" title="gst_audio_ring_buffer_release ()"><code class="function">gst_audio_ring_buffer_release()</code></a>.</p>
-<div class="refsect3">
-<a name="gst-audio-ring-buffer-close-device.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>buf</p></td>
-<td class="parameter_description"><p>the <a class="link" href="gst-plugins-base-libs-gstaudioringbuffer.html#GstAudioRingBuffer"><span class="type">GstAudioRingBuffer</span></a></p></td>
-<td class="parameter_annotations"> </td>
-</tr></tbody>
-</table></div>
-</div>
-<div class="refsect3">
-<a name="gst-audio-ring-buffer-close-device.returns"></a><h4>Returns</h4>
-<p> TRUE if the device could be closed, FALSE on error.</p>
-<p>MT safe.</p>
-</div>
 </div>
 <hr>
 <div class="refsect2">
 <a name="gst-audio-ring-buffer-open-device"></a><h3>gst_audio_ring_buffer_open_device ()</h3>
 <pre class="programlisting"><a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
 gst_audio_ring_buffer_open_device (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstaudioringbuffer.html#GstAudioRingBuffer"><span class="type">GstAudioRingBuffer</span></a> *buf</code></em>);</pre>
-<p>Open the audio device associated with the ring buffer. Does not perform any
-setup on the device. You must open the device before acquiring the ring
-buffer.</p>
-<div class="refsect3">
-<a name="gst-audio-ring-buffer-open-device.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>buf</p></td>
-<td class="parameter_description"><p>the <a class="link" href="gst-plugins-base-libs-gstaudioringbuffer.html#GstAudioRingBuffer"><span class="type">GstAudioRingBuffer</span></a></p></td>
-<td class="parameter_annotations"> </td>
-</tr></tbody>
-</table></div>
-</div>
-<div class="refsect3">
-<a name="gst-audio-ring-buffer-open-device.returns"></a><h4>Returns</h4>
-<p> TRUE if the device could be opened, FALSE on error.</p>
-<p>MT safe.</p>
-</div>
 </div>
 <hr>
 <div class="refsect2">
 <a name="gst-audio-ring-buffer-device-is-open"></a><h3>gst_audio_ring_buffer_device_is_open ()</h3>
 <pre class="programlisting"><a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
 gst_audio_ring_buffer_device_is_open (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstaudioringbuffer.html#GstAudioRingBuffer"><span class="type">GstAudioRingBuffer</span></a> *buf</code></em>);</pre>
-<p>Checks the status of the device associated with the ring buffer.</p>
-<div class="refsect3">
-<a name="gst-audio-ring-buffer-device-is-open.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>buf</p></td>
-<td class="parameter_description"><p>the <a class="link" href="gst-plugins-base-libs-gstaudioringbuffer.html#GstAudioRingBuffer"><span class="type">GstAudioRingBuffer</span></a></p></td>
-<td class="parameter_annotations"> </td>
-</tr></tbody>
-</table></div>
-</div>
-<div class="refsect3">
-<a name="gst-audio-ring-buffer-device-is-open.returns"></a><h4>Returns</h4>
-<p> TRUE if the device was open, FALSE if it was closed.</p>
-<p>MT safe.</p>
-</div>
 </div>
 <hr>
 <div class="refsect2">
@@ -1242,31 +541,6 @@
 <pre class="programlisting"><span class="returnvalue">void</span>
 gst_audio_ring_buffer_may_start (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstaudioringbuffer.html#GstAudioRingBuffer"><span class="type">GstAudioRingBuffer</span></a> *buf</code></em>,
                                  <em class="parameter"><code><a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a> allowed</code></em>);</pre>
-<p>Tell the ringbuffer that it is allowed to start playback when
-the ringbuffer is filled with samples.</p>
-<p>MT safe.</p>
-<div class="refsect3">
-<a name="gst-audio-ring-buffer-may-start.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>buf</p></td>
-<td class="parameter_description"><p>the <a class="link" href="gst-plugins-base-libs-gstaudioringbuffer.html#GstAudioRingBuffer"><span class="type">GstAudioRingBuffer</span></a></p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-<tr>
-<td class="parameter_name"><p>allowed</p></td>
-<td class="parameter_description"><p>the new value</p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-</tbody>
-</table></div>
-</div>
 </div>
 <hr>
 <div class="refsect2">
@@ -1274,35 +548,6 @@
 <pre class="programlisting"><a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
 gst_audio_ring_buffer_parse_caps (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstaudioringbuffer.html#GstAudioRingBufferSpec" title="struct GstAudioRingBufferSpec"><span class="type">GstAudioRingBufferSpec</span></a> *spec</code></em>,
                                   <em class="parameter"><code><a href="/usr/share/gtk-doc/html/gstreamer-1.0GstCaps.html#GstCaps-struct"><span class="type">GstCaps</span></a> *caps</code></em>);</pre>
-<p>Parse <em class="parameter"><code>caps</code></em>
- into <em class="parameter"><code>spec</code></em>
-.</p>
-<div class="refsect3">
-<a name="gst-audio-ring-buffer-parse-caps.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>spec</p></td>
-<td class="parameter_description"><p>a spec</p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-<tr>
-<td class="parameter_name"><p>caps</p></td>
-<td class="parameter_description"><p>a <a href="/usr/share/gtk-doc/html/gstreamer-1.0GstCaps.html#GstCaps-struct"><span class="type">GstCaps</span></a></p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-</tbody>
-</table></div>
-</div>
-<div class="refsect3">
-<a name="gst-audio-ring-buffer-parse-caps.returns"></a><h4>Returns</h4>
-<p> TRUE if the caps could be parsed.</p>
-</div>
 </div>
 <hr>
 <div class="refsect2">
@@ -1310,58 +555,12 @@
 <pre class="programlisting"><span class="returnvalue">void</span>
 gst_audio_ring_buffer_set_flushing (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstaudioringbuffer.html#GstAudioRingBuffer"><span class="type">GstAudioRingBuffer</span></a> *buf</code></em>,
                                     <em class="parameter"><code><a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a> flushing</code></em>);</pre>
-<p>Set the ringbuffer to flushing mode or normal mode.</p>
-<p>MT safe.</p>
-<div class="refsect3">
-<a name="gst-audio-ring-buffer-set-flushing.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>buf</p></td>
-<td class="parameter_description"><p>the <a class="link" href="gst-plugins-base-libs-gstaudioringbuffer.html#GstAudioRingBuffer"><span class="type">GstAudioRingBuffer</span></a> to flush</p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-<tr>
-<td class="parameter_name"><p>flushing</p></td>
-<td class="parameter_description"><p>the new mode</p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-</tbody>
-</table></div>
-</div>
 </div>
 <hr>
 <div class="refsect2">
 <a name="gst-audio-ring-buffer-is-flushing"></a><h3>gst_audio_ring_buffer_is_flushing ()</h3>
 <pre class="programlisting"><a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
 gst_audio_ring_buffer_is_flushing (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstaudioringbuffer.html#GstAudioRingBuffer"><span class="type">GstAudioRingBuffer</span></a> *buf</code></em>);</pre>
-<p>Check if <em class="parameter"><code>buf</code></em>
- is flushing.</p>
-<p>MT safe.</p>
-<div class="refsect3">
-<a name="gst-audio-ring-buffer-is-flushing.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>buf</p></td>
-<td class="parameter_description"><p>the <a class="link" href="gst-plugins-base-libs-gstaudioringbuffer.html#GstAudioRingBuffer"><span class="type">GstAudioRingBuffer</span></a></p></td>
-<td class="parameter_annotations"> </td>
-</tr></tbody>
-</table></div>
-</div>
-<div class="refsect3">
-<a name="gst-audio-ring-buffer-is-flushing.returns"></a><h4>Returns</h4>
-<p> TRUE if the device is flushing.</p>
-</div>
 </div>
 <hr>
 <div class="refsect2">
@@ -1370,30 +569,6 @@
 gst_audio_ring_buffer_set_channel_positions
                                (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstaudioringbuffer.html#GstAudioRingBuffer"><span class="type">GstAudioRingBuffer</span></a> *buf</code></em>,
                                 <em class="parameter"><code>const <a class="link" href="gst-plugins-base-libs-gstaudiochannels.html#GstAudioChannelPosition" title="enum GstAudioChannelPosition"><span class="type">GstAudioChannelPosition</span></a> *position</code></em>);</pre>
-<p>Tell the ringbuffer about the device's channel positions. This must
-be called in when the ringbuffer is acquired.</p>
-<div class="refsect3">
-<a name="gst-audio-ring-buffer-set-channel-positions.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>buf</p></td>
-<td class="parameter_description"><p>the <a class="link" href="gst-plugins-base-libs-gstaudioringbuffer.html#GstAudioRingBuffer"><span class="type">GstAudioRingBuffer</span></a></p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-<tr>
-<td class="parameter_name"><p>position</p></td>
-<td class="parameter_description"><p>the device channel positions</p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-</tbody>
-</table></div>
-</div>
 </div>
 <hr>
 <div class="refsect2">
@@ -1425,84 +600,6 @@
   gint                        waiting;
 };
 </pre>
-<p>The ringbuffer base class structure.</p>
-<div class="refsect3">
-<a name="GstAudioRingBuffer.members"></a><h4>Members</h4>
-<div class="informaltable"><table class="informaltable" width="100%" border="0">
-<colgroup>
-<col width="300px" class="struct_members_name">
-<col class="struct_members_description">
-<col width="200px" class="struct_members_annotations">
-</colgroup>
-<tbody>
-<tr>
-<td class="struct_member_name"><p><a href="/usr/share/gtk-doc/html/glibglib-Threads.html#GCond"><span class="type">GCond</span></a> <em class="structfield"><code><a name="GstAudioRingBuffer-struct.cond"></a>cond</code></em>;</p></td>
-<td class="struct_member_description"><p>used to signal start/stop/pause/resume actions</p></td>
-<td class="struct_member_annotations"> </td>
-</tr>
-<tr>
-<td class="struct_member_name"><p><a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a> <em class="structfield"><code><a name="GstAudioRingBuffer-struct.open"></a>open</code></em>;</p></td>
-<td class="struct_member_description"><p>boolean indicating that the ringbuffer is open</p></td>
-<td class="struct_member_annotations"> </td>
-</tr>
-<tr>
-<td class="struct_member_name"><p><a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a> <em class="structfield"><code><a name="GstAudioRingBuffer-struct.acquired"></a>acquired</code></em>;</p></td>
-<td class="struct_member_description"><p>boolean indicating that the ringbuffer is acquired</p></td>
-<td class="struct_member_annotations"> </td>
-</tr>
-<tr>
-<td class="struct_member_name"><p><a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#guint8"><span class="type">guint8</span></a> *<em class="structfield"><code><a name="GstAudioRingBuffer-struct.memory"></a>memory</code></em>;</p></td>
-<td class="struct_member_description"><p>data in the ringbuffer</p></td>
-<td class="struct_member_annotations"> </td>
-</tr>
-<tr>
-<td class="struct_member_name"><p><a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#gsize"><span class="type">gsize</span></a> <em class="structfield"><code><a name="GstAudioRingBuffer-struct.size"></a>size</code></em>;</p></td>
-<td class="struct_member_description"><p>size of data in the ringbuffer</p></td>
-<td class="struct_member_annotations"> </td>
-</tr>
-<tr>
-<td class="struct_member_name"><p><a href="/usr/share/gtk-doc/html/gstreamer-1.0GstClock.html#GstClockTime"><span class="type">GstClockTime</span></a> *<em class="structfield"><code><a name="GstAudioRingBuffer-struct.timestamps"></a>timestamps</code></em>;</p></td>
-<td> </td>
-<td> </td>
-</tr>
-<tr>
-<td class="struct_member_name"><p><a class="link" href="gst-plugins-base-libs-gstaudioringbuffer.html#GstAudioRingBufferSpec" title="struct GstAudioRingBufferSpec"><span class="type">GstAudioRingBufferSpec</span></a> <em class="structfield"><code><a name="GstAudioRingBuffer-struct.spec"></a>spec</code></em>;</p></td>
-<td class="struct_member_description"><p>format and layout of the ringbuffer data</p></td>
-<td class="struct_member_annotations"> </td>
-</tr>
-<tr>
-<td class="struct_member_name"><p><a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#gint"><span class="type">gint</span></a> <em class="structfield"><code><a name="GstAudioRingBuffer-struct.samples-per-seg"></a>samples_per_seg</code></em>;</p></td>
-<td class="struct_member_description"><p>number of samples in one segment</p></td>
-<td class="struct_member_annotations"> </td>
-</tr>
-<tr>
-<td class="struct_member_name"><p><a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#guint8"><span class="type">guint8</span></a> *<em class="structfield"><code><a name="GstAudioRingBuffer-struct.empty-seg"></a>empty_seg</code></em>;</p></td>
-<td class="struct_member_description"><p>pointer to memory holding one segment of silence samples</p></td>
-<td class="struct_member_annotations"> </td>
-</tr>
-<tr>
-<td class="struct_member_name"><p><a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#gint"><span class="type">gint</span></a> <em class="structfield"><code><a name="GstAudioRingBuffer-struct.state"></a>state</code></em>;</p></td>
-<td class="struct_member_description"><p>state of the buffer</p></td>
-<td class="struct_member_annotations"> </td>
-</tr>
-<tr>
-<td class="struct_member_name"><p><a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#gint"><span class="type">gint</span></a> <em class="structfield"><code><a name="GstAudioRingBuffer-struct.segdone"></a>segdone</code></em>;</p></td>
-<td class="struct_member_description"><p>readpointer in the ringbuffer</p></td>
-<td class="struct_member_annotations"> </td>
-</tr>
-<tr>
-<td class="struct_member_name"><p><a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#gint"><span class="type">gint</span></a> <em class="structfield"><code><a name="GstAudioRingBuffer-struct.segbase"></a>segbase</code></em>;</p></td>
-<td class="struct_member_description"><p>segment corresponding to segment 0 (unused)</p></td>
-<td class="struct_member_annotations"> </td>
-</tr>
-<tr>
-<td class="struct_member_name"><p><a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#gint"><span class="type">gint</span></a> <em class="structfield"><code><a name="GstAudioRingBuffer-struct.waiting"></a>waiting</code></em>;</p></td>
-<td class="struct_member_description"><p>is a reader or writer waiting for a free segment</p></td>
-<td class="struct_member_annotations"> </td>
-</tr>
-</tbody>
-</table></div>
-</div>
 </div>
 <hr>
 <div class="refsect2">
@@ -1532,80 +629,6 @@
   void         (*clear_all)    (GstAudioRingBuffer * buf);
 };
 </pre>
-<p>The vmethods that subclasses can override to implement the ringbuffer.</p>
-<div class="refsect3">
-<a name="GstAudioRingBufferClass.members"></a><h4>Members</h4>
-<div class="informaltable"><table class="informaltable" width="100%" border="0">
-<colgroup>
-<col width="300px" class="struct_members_name">
-<col class="struct_members_description">
-<col width="200px" class="struct_members_annotations">
-</colgroup>
-<tbody>
-<tr>
-<td class="struct_member_name"><p><em class="structfield"><code><a name="GstAudioRingBufferClass.open-device"></a>open_device</code></em> ()</p></td>
-<td class="struct_member_description"><p>open the device, don't set any params or allocate anything</p></td>
-<td class="struct_member_annotations"> </td>
-</tr>
-<tr>
-<td class="struct_member_name"><p><em class="structfield"><code><a name="GstAudioRingBufferClass.acquire"></a>acquire</code></em> ()</p></td>
-<td class="struct_member_description"><p>allocate the resources for the ringbuffer using the given spec</p></td>
-<td class="struct_member_annotations"> </td>
-</tr>
-<tr>
-<td class="struct_member_name"><p><em class="structfield"><code><a name="GstAudioRingBufferClass.release"></a>release</code></em> ()</p></td>
-<td class="struct_member_description"><p>free resources of the ringbuffer</p></td>
-<td class="struct_member_annotations"> </td>
-</tr>
-<tr>
-<td class="struct_member_name"><p><em class="structfield"><code><a name="GstAudioRingBufferClass.close-device"></a>close_device</code></em> ()</p></td>
-<td class="struct_member_description"><p>close the device</p></td>
-<td class="struct_member_annotations"> </td>
-</tr>
-<tr>
-<td class="struct_member_name"><p><em class="structfield"><code><a name="GstAudioRingBufferClass.start"></a>start</code></em> ()</p></td>
-<td class="struct_member_description"><p>start processing of samples</p></td>
-<td class="struct_member_annotations"> </td>
-</tr>
-<tr>
-<td class="struct_member_name"><p><em class="structfield"><code><a name="GstAudioRingBufferClass.pause"></a>pause</code></em> ()</p></td>
-<td class="struct_member_description"><p>pause processing of samples</p></td>
-<td class="struct_member_annotations"> </td>
-</tr>
-<tr>
-<td class="struct_member_name"><p><em class="structfield"><code><a name="GstAudioRingBufferClass.resume"></a>resume</code></em> ()</p></td>
-<td class="struct_member_description"><p>resume processing of samples after pause</p></td>
-<td class="struct_member_annotations"> </td>
-</tr>
-<tr>
-<td class="struct_member_name"><p><em class="structfield"><code><a name="GstAudioRingBufferClass.stop"></a>stop</code></em> ()</p></td>
-<td class="struct_member_description"><p>stop processing of samples</p></td>
-<td class="struct_member_annotations"> </td>
-</tr>
-<tr>
-<td class="struct_member_name"><p><em class="structfield"><code><a name="GstAudioRingBufferClass.delay"></a>delay</code></em> ()</p></td>
-<td class="struct_member_description"><p>get number of frames queued in device</p></td>
-<td class="struct_member_annotations"> </td>
-</tr>
-<tr>
-<td class="struct_member_name"><p><em class="structfield"><code><a name="GstAudioRingBufferClass.activate"></a>activate</code></em> ()</p></td>
-<td class="struct_member_description"><p>activate the thread that starts pulling and monitoring the
-consumed segments in the device.</p></td>
-<td class="struct_member_annotations"> </td>
-</tr>
-<tr>
-<td class="struct_member_name"><p><em class="structfield"><code><a name="GstAudioRingBufferClass.commit"></a>commit</code></em> ()</p></td>
-<td class="struct_member_description"><p>write samples into the ringbuffer</p></td>
-<td class="struct_member_annotations"> </td>
-</tr>
-<tr>
-<td class="struct_member_name"><p><em class="structfield"><code><a name="GstAudioRingBufferClass.clear-all"></a>clear_all</code></em> ()</p></td>
-<td class="struct_member_description"><p>clear the entire ringbuffer.</p></td>
-<td class="struct_member_annotations"> </td>
-</tr>
-</tbody>
-</table></div>
-</div>
 </div>
 <hr>
 <div class="refsect2">
@@ -1637,65 +660,10 @@
 				 * level device, defaults to segtotal. */
 };
 </pre>
-<p>The structure containing the format specification of the ringbuffer.</p>
-<div class="refsect3">
-<a name="GstAudioRingBufferSpec.members"></a><h4>Members</h4>
-<div class="informaltable"><table class="informaltable" width="100%" border="0">
-<colgroup>
-<col width="300px" class="struct_members_name">
-<col class="struct_members_description">
-<col width="200px" class="struct_members_annotations">
-</colgroup>
-<tbody>
-<tr>
-<td class="struct_member_name"><p><a href="/usr/share/gtk-doc/html/gstreamer-1.0GstCaps.html#GstCaps-struct"><span class="type">GstCaps</span></a> *<em class="structfield"><code><a name="GstAudioRingBufferSpec.caps"></a>caps</code></em>;</p></td>
-<td class="struct_member_description"><p>The caps that generated the Spec.</p></td>
-<td class="struct_member_annotations"> </td>
-</tr>
-<tr>
-<td class="struct_member_name"><p><a class="link" href="gst-plugins-base-libs-gstaudioringbuffer.html#GstAudioRingBufferFormatType" title="enum GstAudioRingBufferFormatType"><span class="type">GstAudioRingBufferFormatType</span></a> <em class="structfield"><code><a name="GstAudioRingBufferSpec.type"></a>type</code></em>;</p></td>
-<td class="struct_member_description"><p>the sample type</p></td>
-<td class="struct_member_annotations"> </td>
-</tr>
-<tr>
-<td class="struct_member_name"><p><a class="link" href="gst-plugins-base-libs-gstaudio.html#GstAudioInfo" title="struct GstAudioInfo"><span class="type">GstAudioInfo</span></a> <em class="structfield"><code><a name="GstAudioRingBufferSpec.info"></a>info</code></em>;</p></td>
-<td class="struct_member_description"><p>the <a class="link" href="gst-plugins-base-libs-gstaudio.html#GstAudioInfo" title="struct GstAudioInfo"><span class="type">GstAudioInfo</span></a></p></td>
-<td class="struct_member_annotations"> </td>
-</tr>
-<tr>
-<td class="struct_member_name"><p><a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#guint64"><span class="type">guint64</span></a> <em class="structfield"><code><a name="GstAudioRingBufferSpec.latency-time"></a>latency_time</code></em>;</p></td>
-<td class="struct_member_description"><p>the latency in microseconds</p></td>
-<td class="struct_member_annotations"> </td>
-</tr>
-<tr>
-<td class="struct_member_name"><p><a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#guint64"><span class="type">guint64</span></a> <em class="structfield"><code><a name="GstAudioRingBufferSpec.buffer-time"></a>buffer_time</code></em>;</p></td>
-<td class="struct_member_description"><p>the total buffer size in microseconds</p></td>
-<td class="struct_member_annotations"> </td>
-</tr>
-<tr>
-<td class="struct_member_name"><p><a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#gint"><span class="type">gint</span></a> <em class="structfield"><code><a name="GstAudioRingBufferSpec.segsize"></a>segsize</code></em>;</p></td>
-<td class="struct_member_description"><p>the size of one segment in bytes</p></td>
-<td class="struct_member_annotations"> </td>
-</tr>
-<tr>
-<td class="struct_member_name"><p><a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#gint"><span class="type">gint</span></a> <em class="structfield"><code><a name="GstAudioRingBufferSpec.segtotal"></a>segtotal</code></em>;</p></td>
-<td class="struct_member_description"><p>the total number of segments</p></td>
-<td class="struct_member_annotations"> </td>
-</tr>
-<tr>
-<td class="struct_member_name"><p><a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#gint"><span class="type">gint</span></a> <em class="structfield"><code><a name="GstAudioRingBufferSpec.seglatency"></a>seglatency</code></em>;</p></td>
-<td class="struct_member_description"><p>number of segments queued in the lower level device,
-defaults to segtotal</p></td>
-<td class="struct_member_annotations"> </td>
-</tr>
-</tbody>
-</table></div>
-</div>
 </div>
 <hr>
 <div class="refsect2">
 <a name="GstAudioRingBufferState"></a><h3>enum GstAudioRingBufferState</h3>
-<p>The state of the ringbuffer.</p>
 <div class="refsect3">
 <a name="GstAudioRingBufferState.members"></a><h4>Members</h4>
 <div class="informaltable"><table class="informaltable" width="100%" border="0">
@@ -1707,33 +675,23 @@
 <tbody>
 <tr>
 <td class="enum_member_name"><p><a name="GST-AUDIO-RING-BUFFER-STATE-STOPPED:CAPS"></a>GST_AUDIO_RING_BUFFER_STATE_STOPPED</p></td>
-<td class="enum_member_description">
-<p>The ringbuffer is stopped</p>
-</td>
-<td class="enum_member_annotations"> </td>
+<td> </td>
+<td> </td>
 </tr>
 <tr>
 <td class="enum_member_name"><p><a name="GST-AUDIO-RING-BUFFER-STATE-PAUSED:CAPS"></a>GST_AUDIO_RING_BUFFER_STATE_PAUSED</p></td>
-<td class="enum_member_description">
-<p>The ringbuffer is paused</p>
-</td>
-<td class="enum_member_annotations"> </td>
+<td> </td>
+<td> </td>
 </tr>
 <tr>
 <td class="enum_member_name"><p><a name="GST-AUDIO-RING-BUFFER-STATE-STARTED:CAPS"></a>GST_AUDIO_RING_BUFFER_STATE_STARTED</p></td>
-<td class="enum_member_description">
-<p>The ringbuffer is started</p>
-</td>
-<td class="enum_member_annotations"> </td>
+<td> </td>
+<td> </td>
 </tr>
 <tr>
 <td class="enum_member_name"><p><a name="GST-AUDIO-RING-BUFFER-STATE-ERROR:CAPS"></a>GST_AUDIO_RING_BUFFER_STATE_ERROR</p></td>
-<td class="enum_member_description">
-<p>The ringbuffer has encountered an
-    error after it has been started, e.g. because the device was
-    disconnected (Since 1.2)</p>
-</td>
-<td class="enum_member_annotations"> </td>
+<td> </td>
+<td> </td>
 </tr>
 </tbody>
 </table></div>
@@ -1742,7 +700,6 @@
 <hr>
 <div class="refsect2">
 <a name="GstAudioRingBufferFormatType"></a><h3>enum GstAudioRingBufferFormatType</h3>
-<p>The format of the samples in the ringbuffer.</p>
 <div class="refsect3">
 <a name="GstAudioRingBufferFormatType.members"></a><h4>Members</h4>
 <div class="informaltable"><table class="informaltable" width="100%" border="0">
@@ -1754,97 +711,69 @@
 <tbody>
 <tr>
 <td class="enum_member_name"><p><a name="GST-AUDIO-RING-BUFFER-FORMAT-TYPE-RAW:CAPS"></a>GST_AUDIO_RING_BUFFER_FORMAT_TYPE_RAW</p></td>
-<td class="enum_member_description">
-<p>samples in linear or float</p>
-</td>
-<td class="enum_member_annotations"> </td>
+<td> </td>
+<td> </td>
 </tr>
 <tr>
 <td class="enum_member_name"><p><a name="GST-AUDIO-RING-BUFFER-FORMAT-TYPE-MU-LAW:CAPS"></a>GST_AUDIO_RING_BUFFER_FORMAT_TYPE_MU_LAW</p></td>
-<td class="enum_member_description">
-<p>samples in mulaw</p>
-</td>
-<td class="enum_member_annotations"> </td>
+<td> </td>
+<td> </td>
 </tr>
 <tr>
 <td class="enum_member_name"><p><a name="GST-AUDIO-RING-BUFFER-FORMAT-TYPE-A-LAW:CAPS"></a>GST_AUDIO_RING_BUFFER_FORMAT_TYPE_A_LAW</p></td>
-<td class="enum_member_description">
-<p>samples in alaw</p>
-</td>
-<td class="enum_member_annotations"> </td>
+<td> </td>
+<td> </td>
 </tr>
 <tr>
 <td class="enum_member_name"><p><a name="GST-AUDIO-RING-BUFFER-FORMAT-TYPE-IMA-ADPCM:CAPS"></a>GST_AUDIO_RING_BUFFER_FORMAT_TYPE_IMA_ADPCM</p></td>
-<td class="enum_member_description">
-<p>samples in ima adpcm</p>
-</td>
-<td class="enum_member_annotations"> </td>
+<td> </td>
+<td> </td>
 </tr>
 <tr>
 <td class="enum_member_name"><p><a name="GST-AUDIO-RING-BUFFER-FORMAT-TYPE-MPEG:CAPS"></a>GST_AUDIO_RING_BUFFER_FORMAT_TYPE_MPEG</p></td>
-<td class="enum_member_description">
-<p>samples in mpeg audio (but not AAC) format</p>
-</td>
-<td class="enum_member_annotations"> </td>
+<td> </td>
+<td> </td>
 </tr>
 <tr>
 <td class="enum_member_name"><p><a name="GST-AUDIO-RING-BUFFER-FORMAT-TYPE-GSM:CAPS"></a>GST_AUDIO_RING_BUFFER_FORMAT_TYPE_GSM</p></td>
-<td class="enum_member_description">
-<p>samples in gsm format</p>
-</td>
-<td class="enum_member_annotations"> </td>
+<td> </td>
+<td> </td>
 </tr>
 <tr>
 <td class="enum_member_name"><p><a name="GST-AUDIO-RING-BUFFER-FORMAT-TYPE-IEC958:CAPS"></a>GST_AUDIO_RING_BUFFER_FORMAT_TYPE_IEC958</p></td>
-<td class="enum_member_description">
-<p>samples in IEC958 frames (e.g. AC3)</p>
-</td>
-<td class="enum_member_annotations"> </td>
+<td> </td>
+<td> </td>
 </tr>
 <tr>
 <td class="enum_member_name"><p><a name="GST-AUDIO-RING-BUFFER-FORMAT-TYPE-AC3:CAPS"></a>GST_AUDIO_RING_BUFFER_FORMAT_TYPE_AC3</p></td>
-<td class="enum_member_description">
-<p>samples in AC3 format</p>
-</td>
-<td class="enum_member_annotations"> </td>
+<td> </td>
+<td> </td>
 </tr>
 <tr>
 <td class="enum_member_name"><p><a name="GST-AUDIO-RING-BUFFER-FORMAT-TYPE-EAC3:CAPS"></a>GST_AUDIO_RING_BUFFER_FORMAT_TYPE_EAC3</p></td>
-<td class="enum_member_description">
-<p>samples in EAC3 format</p>
-</td>
-<td class="enum_member_annotations"> </td>
+<td> </td>
+<td> </td>
 </tr>
 <tr>
 <td class="enum_member_name"><p><a name="GST-AUDIO-RING-BUFFER-FORMAT-TYPE-DTS:CAPS"></a>GST_AUDIO_RING_BUFFER_FORMAT_TYPE_DTS</p></td>
-<td class="enum_member_description">
-<p>samples in DTS format</p>
-</td>
-<td class="enum_member_annotations"> </td>
+<td> </td>
+<td> </td>
 </tr>
 <tr>
 <td class="enum_member_name"><p><a name="GST-AUDIO-RING-BUFFER-FORMAT-TYPE-MPEG2-AAC:CAPS"></a>GST_AUDIO_RING_BUFFER_FORMAT_TYPE_MPEG2_AAC</p></td>
-<td class="enum_member_description">
-<p>samples in MPEG-2 AAC format</p>
-</td>
-<td class="enum_member_annotations"> </td>
+<td> </td>
+<td> </td>
 </tr>
 <tr>
 <td class="enum_member_name"><p><a name="GST-AUDIO-RING-BUFFER-FORMAT-TYPE-MPEG4-AAC:CAPS"></a>GST_AUDIO_RING_BUFFER_FORMAT_TYPE_MPEG4_AAC</p></td>
-<td class="enum_member_description">
-<p>samples in MPEG-4 AAC format</p>
-</td>
-<td class="enum_member_annotations"> </td>
+<td> </td>
+<td> </td>
 </tr>
 </tbody>
 </table></div>
 </div>
 </div>
 </div>
-<div class="refsect1">
-<a name="gst-plugins-base-libs-gstaudioringbuffer.see-also"></a><h2>See Also</h2>
-<p><a class="link" href="gst-plugins-base-libs-gstaudiobasesink.html#GstAudioBaseSink"><span class="type">GstAudioBaseSink</span></a>, <a class="link" href="gst-plugins-base-libs-gstaudiosink.html#GstAudioSink"><span class="type">GstAudioSink</span></a></p>
-</div>
 </div>
 <div class="footer">
 <hr>Generated by GTK-Doc V1.25</div>
diff --git a/docs/libs/html/gst-plugins-base-libs-gstaudiosink.html b/docs/libs/html/gst-plugins-base-libs-gstaudiosink.html
index c128bdc..4dac775 100644
--- a/docs/libs/html/gst-plugins-base-libs-gstaudiosink.html
+++ b/docs/libs/html/gst-plugins-base-libs-gstaudiosink.html
@@ -28,7 +28,7 @@
 <div class="refnamediv"><table width="100%"><tr>
 <td valign="top">
 <h2><span class="refentrytitle"><a name="gst-plugins-base-libs-gstaudiosink.top_of_page"></a>gstaudiosink</span></h2>
-<p>gstaudiosink — Simple base class for audio sinks</p>
+<p>gstaudiosink</p>
 </td>
 <td class="gallery_image" valign="top" align="right"></td>
 </tr></table></div>
@@ -69,48 +69,6 @@
 </div>
 <div class="refsect1">
 <a name="gst-plugins-base-libs-gstaudiosink.description"></a><h2>Description</h2>
-<p>This is the most simple base class for audio sinks that only requires
-subclasses to implement a set of simple functions:</p>
-<div class="variablelist"><table border="0" class="variablelist">
-<colgroup>
-<col align="left" valign="top">
-<col>
-</colgroup>
-<tbody>
-<tr>
-<td><p><span class="term"><code class="function">open()</code></span></p></td>
-<td><p>Open the device.</p></td>
-</tr>
-<tr>
-<td><p><span class="term"><code class="function">prepare()</code></span></p></td>
-<td><p>Configure the device with the specified format.</p></td>
-</tr>
-<tr>
-<td><p><span class="term"><code class="function">write()</code></span></p></td>
-<td><p>Write samples to the device.</p></td>
-</tr>
-<tr>
-<td><p><span class="term"><code class="function">reset()</code></span></p></td>
-<td><p>Unblock writes and flush the device.</p></td>
-</tr>
-<tr>
-<td><p><span class="term"><code class="function">delay()</code></span></p></td>
-<td><p>Get the number of samples written but not yet played
-    by the device.</p></td>
-</tr>
-<tr>
-<td><p><span class="term"><code class="function">unprepare()</code></span></p></td>
-<td><p>Undo operations done by prepare.</p></td>
-</tr>
-<tr>
-<td><p><span class="term"><code class="function">close()</code></span></p></td>
-<td><p>Close the device.</p></td>
-</tr>
-</tbody>
-</table></div>
-<p>All scheduling of samples and timestamps is done in this base class
-together with <a class="link" href="gst-plugins-base-libs-gstaudiobasesink.html#GstAudioBaseSink"><span class="type">GstAudioBaseSink</span></a> using a default implementation of a
-<a class="link" href="gst-plugins-base-libs-gstaudioringbuffer.html#GstAudioRingBuffer"><span class="type">GstAudioRingBuffer</span></a> that uses threads.</p>
 </div>
 <div class="refsect1">
 <a name="gst-plugins-base-libs-gstaudiosink.functions_details"></a><h2>Functions</h2>
@@ -121,7 +79,6 @@
 <div class="refsect2">
 <a name="GstAudioSink-struct"></a><h3>struct GstAudioSink</h3>
 <pre class="programlisting">struct GstAudioSink;</pre>
-<p>Opaque <a class="link" href="gst-plugins-base-libs-gstaudiosink.html#GstAudioSink"><span class="type">GstAudioSink</span></a>.</p>
 </div>
 <hr>
 <div class="refsect2">
@@ -147,64 +104,9 @@
   void     (*reset)     (GstAudioSink *sink);
 };
 </pre>
-<p><a class="link" href="gst-plugins-base-libs-gstaudiosink.html#GstAudioSink"><span class="type">GstAudioSink</span></a> class. Override the vmethods to implement functionality.</p>
-<div class="refsect3">
-<a name="GstAudioSinkClass.members"></a><h4>Members</h4>
-<div class="informaltable"><table class="informaltable" width="100%" border="0">
-<colgroup>
-<col width="300px" class="struct_members_name">
-<col class="struct_members_description">
-<col width="200px" class="struct_members_annotations">
-</colgroup>
-<tbody>
-<tr>
-<td class="struct_member_name"><p><em class="structfield"><code><a name="GstAudioSinkClass.open"></a>open</code></em> ()</p></td>
-<td class="struct_member_description"><p>Open the device. No configuration needs to be done at this point.
-This function is also used to check if the device is available.</p></td>
-<td class="struct_member_annotations"> </td>
-</tr>
-<tr>
-<td class="struct_member_name"><p><em class="structfield"><code><a name="GstAudioSinkClass.prepare"></a>prepare</code></em> ()</p></td>
-<td class="struct_member_description"><p>Prepare the device to operate with the specified parameters.</p></td>
-<td class="struct_member_annotations"> </td>
-</tr>
-<tr>
-<td class="struct_member_name"><p><em class="structfield"><code><a name="GstAudioSinkClass.unprepare"></a>unprepare</code></em> ()</p></td>
-<td class="struct_member_description"><p>Undo operations done in prepare.</p></td>
-<td class="struct_member_annotations"> </td>
-</tr>
-<tr>
-<td class="struct_member_name"><p><em class="structfield"><code><a name="GstAudioSinkClass.close"></a>close</code></em> ()</p></td>
-<td class="struct_member_description"><p>Close the device.</p></td>
-<td class="struct_member_annotations"> </td>
-</tr>
-<tr>
-<td class="struct_member_name"><p><em class="structfield"><code><a name="GstAudioSinkClass.write"></a>write</code></em> ()</p></td>
-<td class="struct_member_description"><p>Write data to the device.</p></td>
-<td class="struct_member_annotations"> </td>
-</tr>
-<tr>
-<td class="struct_member_name"><p><em class="structfield"><code><a name="GstAudioSinkClass.delay"></a>delay</code></em> ()</p></td>
-<td class="struct_member_description"><p>Return how many frames are still in the device. This is used to
-drive the synchronisation.</p></td>
-<td class="struct_member_annotations"> </td>
-</tr>
-<tr>
-<td class="struct_member_name"><p><em class="structfield"><code><a name="GstAudioSinkClass.reset"></a>reset</code></em> ()</p></td>
-<td class="struct_member_description"><p>Returns as quickly as possible from a write and flush any pending
-samples from the device.</p></td>
-<td class="struct_member_annotations"> </td>
-</tr>
-</tbody>
-</table></div>
 </div>
 </div>
 </div>
-<div class="refsect1">
-<a name="gst-plugins-base-libs-gstaudiosink.see-also"></a><h2>See Also</h2>
-<p><a class="link" href="gst-plugins-base-libs-gstaudiobasesink.html#GstAudioBaseSink"><span class="type">GstAudioBaseSink</span></a>, <a class="link" href="gst-plugins-base-libs-gstaudioringbuffer.html#GstAudioRingBuffer"><span class="type">GstAudioRingBuffer</span></a>, <a class="link" href="gst-plugins-base-libs-gstaudiosink.html#GstAudioSink"><span class="type">GstAudioSink</span></a>.</p>
-</div>
-</div>
 <div class="footer">
 <hr>Generated by GTK-Doc V1.25</div>
 </body>
diff --git a/docs/libs/html/gst-plugins-base-libs-gstaudiosrc.html b/docs/libs/html/gst-plugins-base-libs-gstaudiosrc.html
index 4f43ee8..5cfe2c3 100644
--- a/docs/libs/html/gst-plugins-base-libs-gstaudiosrc.html
+++ b/docs/libs/html/gst-plugins-base-libs-gstaudiosrc.html
@@ -28,7 +28,7 @@
 <div class="refnamediv"><table width="100%"><tr>
 <td valign="top">
 <h2><span class="refentrytitle"><a name="gst-plugins-base-libs-gstaudiosrc.top_of_page"></a>gstaudiosrc</span></h2>
-<p>gstaudiosrc — Simple base class for audio sources</p>
+<p>gstaudiosrc</p>
 </td>
 <td class="gallery_image" valign="top" align="right"></td>
 </tr></table></div>
@@ -70,48 +70,6 @@
 </div>
 <div class="refsect1">
 <a name="gst-plugins-base-libs-gstaudiosrc.description"></a><h2>Description</h2>
-<p>This is the most simple base class for audio sources that only requires
-subclasses to implement a set of simple functions:</p>
-<div class="variablelist"><table border="0" class="variablelist">
-<colgroup>
-<col align="left" valign="top">
-<col>
-</colgroup>
-<tbody>
-<tr>
-<td><p><span class="term"><code class="function">open()</code></span></p></td>
-<td><p>Open the device.</p></td>
-</tr>
-<tr>
-<td><p><span class="term"><code class="function">prepare()</code></span></p></td>
-<td><p>Configure the device with the specified format.</p></td>
-</tr>
-<tr>
-<td><p><span class="term"><code class="function">read()</code></span></p></td>
-<td><p>Read samples from the device.</p></td>
-</tr>
-<tr>
-<td><p><span class="term"><code class="function">reset()</code></span></p></td>
-<td><p>Unblock reads and flush the device.</p></td>
-</tr>
-<tr>
-<td><p><span class="term"><code class="function">delay()</code></span></p></td>
-<td><p>Get the number of samples in the device but not yet read.
-    </p></td>
-</tr>
-<tr>
-<td><p><span class="term"><code class="function">unprepare()</code></span></p></td>
-<td><p>Undo operations done by prepare.</p></td>
-</tr>
-<tr>
-<td><p><span class="term"><code class="function">close()</code></span></p></td>
-<td><p>Close the device.</p></td>
-</tr>
-</tbody>
-</table></div>
-<p>All scheduling of samples and timestamps is done in this base class
-together with <a class="link" href="gst-plugins-base-libs-gstaudiobasesrc.html#GstAudioBaseSrc"><span class="type">GstAudioBaseSrc</span></a> using a default implementation of a
-<a class="link" href="gst-plugins-base-libs-gstaudioringbuffer.html#GstAudioRingBuffer"><span class="type">GstAudioRingBuffer</span></a> that uses threads.</p>
 </div>
 <div class="refsect1">
 <a name="gst-plugins-base-libs-gstaudiosrc.functions_details"></a><h2>Functions</h2>
@@ -122,7 +80,6 @@
 <div class="refsect2">
 <a name="GstAudioSrc-struct"></a><h3>struct GstAudioSrc</h3>
 <pre class="programlisting">struct GstAudioSrc;</pre>
-<p>Base class for simple audio sources.</p>
 </div>
 <hr>
 <div class="refsect2">
@@ -149,62 +106,9 @@
   void     (*reset)     (GstAudioSrc *src);
 };
 </pre>
-<p><a class="link" href="gst-plugins-base-libs-gstaudiosrc.html#GstAudioSrc"><span class="type">GstAudioSrc</span></a> class. Override the vmethod to implement
-functionality.</p>
-<div class="refsect3">
-<a name="GstAudioSrcClass.members"></a><h4>Members</h4>
-<div class="informaltable"><table class="informaltable" width="100%" border="0">
-<colgroup>
-<col width="300px" class="struct_members_name">
-<col class="struct_members_description">
-<col width="200px" class="struct_members_annotations">
-</colgroup>
-<tbody>
-<tr>
-<td class="struct_member_name"><p><em class="structfield"><code><a name="GstAudioSrcClass.open"></a>open</code></em> ()</p></td>
-<td class="struct_member_description"><p>open the device with the specified caps</p></td>
-<td class="struct_member_annotations"> </td>
-</tr>
-<tr>
-<td class="struct_member_name"><p><em class="structfield"><code><a name="GstAudioSrcClass.prepare"></a>prepare</code></em> ()</p></td>
-<td class="struct_member_description"><p>configure device with format</p></td>
-<td class="struct_member_annotations"> </td>
-</tr>
-<tr>
-<td class="struct_member_name"><p><em class="structfield"><code><a name="GstAudioSrcClass.unprepare"></a>unprepare</code></em> ()</p></td>
-<td class="struct_member_description"><p>undo the configuration</p></td>
-<td class="struct_member_annotations"> </td>
-</tr>
-<tr>
-<td class="struct_member_name"><p><em class="structfield"><code><a name="GstAudioSrcClass.close"></a>close</code></em> ()</p></td>
-<td class="struct_member_description"><p>close the device</p></td>
-<td class="struct_member_annotations"> </td>
-</tr>
-<tr>
-<td class="struct_member_name"><p><em class="structfield"><code><a name="GstAudioSrcClass.read"></a>read</code></em> ()</p></td>
-<td class="struct_member_description"><p>read samples from the audio device</p></td>
-<td class="struct_member_annotations"> </td>
-</tr>
-<tr>
-<td class="struct_member_name"><p><em class="structfield"><code><a name="GstAudioSrcClass.delay"></a>delay</code></em> ()</p></td>
-<td class="struct_member_description"><p>the number of frames queued in the device</p></td>
-<td class="struct_member_annotations"> </td>
-</tr>
-<tr>
-<td class="struct_member_name"><p><em class="structfield"><code><a name="GstAudioSrcClass.reset"></a>reset</code></em> ()</p></td>
-<td class="struct_member_description"><p>unblock a read to the device and reset.</p></td>
-<td class="struct_member_annotations"> </td>
-</tr>
-</tbody>
-</table></div>
 </div>
 </div>
 </div>
-<div class="refsect1">
-<a name="gst-plugins-base-libs-gstaudiosrc.see-also"></a><h2>See Also</h2>
-<p><a class="link" href="gst-plugins-base-libs-gstaudiobasesrc.html#GstAudioBaseSrc"><span class="type">GstAudioBaseSrc</span></a>, <a class="link" href="gst-plugins-base-libs-gstaudioringbuffer.html#GstAudioRingBuffer"><span class="type">GstAudioRingBuffer</span></a>, <a class="link" href="gst-plugins-base-libs-gstaudiosrc.html#GstAudioSrc"><span class="type">GstAudioSrc</span></a>.</p>
-</div>
-</div>
 <div class="footer">
 <hr>Generated by GTK-Doc V1.25</div>
 </body>
diff --git a/docs/libs/html/gst-plugins-base-libs-gstcolorbalance.html b/docs/libs/html/gst-plugins-base-libs-gstcolorbalance.html
index 360284f..c3e39c4 100644
--- a/docs/libs/html/gst-plugins-base-libs-gstcolorbalance.html
+++ b/docs/libs/html/gst-plugins-base-libs-gstcolorbalance.html
@@ -29,7 +29,7 @@
 <div class="refnamediv"><table width="100%"><tr>
 <td valign="top">
 <h2><span class="refentrytitle"><a name="gst-plugins-base-libs-gstcolorbalance.top_of_page"></a>gstcolorbalance</span></h2>
-<p>gstcolorbalance — Interface for adjusting color balance settings</p>
+<p>gstcolorbalance</p>
 </td>
 <td class="gallery_image" valign="top" align="right"></td>
 </tr></table></div>
@@ -134,16 +134,6 @@
 </div>
 <div class="refsect1">
 <a name="gst-plugins-base-libs-gstcolorbalance.description"></a><h2>Description</h2>
-<div class="refsect2">
-<a name="id-1.2.15.13.9.2"></a><p>
-This interface is implemented by elements which can perform some color
-balance operation on video frames they process. For example, modifying
-the brightness, contrast, hue or saturation.
-</p>
-<p>
-Example elements are 'xvimagesink' and 'colorbalance'
-</p>
-</div>
 </div>
 <div class="refsect1">
 <a name="gst-plugins-base-libs-gstcolorbalance.functions_details"></a><h2>Functions</h2>
@@ -151,30 +141,6 @@
 <a name="gst-color-balance-list-channels"></a><h3>gst_color_balance_list_channels ()</h3>
 <pre class="programlisting">const <a href="/usr/share/gtk-doc/html/glibglib-Doubly-Linked-Lists.html#GList"><span class="returnvalue">GList</span></a> *
 gst_color_balance_list_channels (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstcolorbalance.html#GstColorBalance"><span class="type">GstColorBalance</span></a> *balance</code></em>);</pre>
-<p>Retrieve a list of the available channels.</p>
-<div class="refsect3">
-<a name="gst-color-balance-list-channels.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>balance</p></td>
-<td class="parameter_description"><p>A <a class="link" href="gst-plugins-base-libs-gstcolorbalance.html#GstColorBalance"><span class="type">GstColorBalance</span></a> instance</p></td>
-<td class="parameter_annotations"> </td>
-</tr></tbody>
-</table></div>
-</div>
-<div class="refsect3">
-<a name="gst-color-balance-list-channels.returns"></a><h4>Returns</h4>
-<p> A
-GList containing pointers to <a class="link" href="gst-plugins-base-libs-gstcolorbalancechannel.html#GstColorBalanceChannel"><span class="type">GstColorBalanceChannel</span></a>
-objects. The list is owned by the <a class="link" href="gst-plugins-base-libs-gstcolorbalance.html#GstColorBalance"><span class="type">GstColorBalance</span></a>
-instance and must not be freed. </p>
-<p><span class="annotation">[<acronym title="Generics and defining elements of containers and arrays."><span class="acronym">element-type</span></acronym> GstColorBalanceChannel][<acronym title="Don't free data after the code is done."><span class="acronym">transfer none</span></acronym>]</span></p>
-</div>
 </div>
 <hr>
 <div class="refsect2">
@@ -182,37 +148,6 @@
 <pre class="programlisting"><a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#gint"><span class="returnvalue">gint</span></a>
 gst_color_balance_get_value (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstcolorbalance.html#GstColorBalance"><span class="type">GstColorBalance</span></a> *balance</code></em>,
                              <em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstcolorbalancechannel.html#GstColorBalanceChannel"><span class="type">GstColorBalanceChannel</span></a> *channel</code></em>);</pre>
-<p>Retrieve the current value of the indicated channel, between min_value
-and max_value.</p>
-<p>See Also: The <span class="type">GstColorBalanceChannel.min_value</span> and
-        <span class="type">GstColorBalanceChannel.max_value</span> members of the
-        <a class="link" href="gst-plugins-base-libs-gstcolorbalancechannel.html#GstColorBalanceChannel"><span class="type">GstColorBalanceChannel</span></a> object.</p>
-<div class="refsect3">
-<a name="gst-color-balance-get-value.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>balance</p></td>
-<td class="parameter_description"><p>A <a class="link" href="gst-plugins-base-libs-gstcolorbalance.html#GstColorBalance"><span class="type">GstColorBalance</span></a> instance</p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-<tr>
-<td class="parameter_name"><p>channel</p></td>
-<td class="parameter_description"><p>A <a class="link" href="gst-plugins-base-libs-gstcolorbalancechannel.html#GstColorBalanceChannel"><span class="type">GstColorBalanceChannel</span></a> instance</p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-</tbody>
-</table></div>
-</div>
-<div class="refsect3">
-<a name="gst-color-balance-get-value.returns"></a><h4>Returns</h4>
-<p> The current value of the channel.</p>
-</div>
 </div>
 <hr>
 <div class="refsect2">
@@ -221,38 +156,6 @@
 gst_color_balance_set_value (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstcolorbalance.html#GstColorBalance"><span class="type">GstColorBalance</span></a> *balance</code></em>,
                              <em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstcolorbalancechannel.html#GstColorBalanceChannel"><span class="type">GstColorBalanceChannel</span></a> *channel</code></em>,
                              <em class="parameter"><code><a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#gint"><span class="type">gint</span></a> value</code></em>);</pre>
-<p>Sets the current value of the channel to the passed value, which must
-be between min_value and max_value.</p>
-<p>See Also: The <span class="type">GstColorBalanceChannel.min_value</span> and
-        <span class="type">GstColorBalanceChannel.max_value</span> members of the
-        <a class="link" href="gst-plugins-base-libs-gstcolorbalancechannel.html#GstColorBalanceChannel"><span class="type">GstColorBalanceChannel</span></a> object.</p>
-<div class="refsect3">
-<a name="gst-color-balance-set-value.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>balance</p></td>
-<td class="parameter_description"><p>A <a class="link" href="gst-plugins-base-libs-gstcolorbalance.html#GstColorBalance"><span class="type">GstColorBalance</span></a> instance</p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-<tr>
-<td class="parameter_name"><p>channel</p></td>
-<td class="parameter_description"><p>A <a class="link" href="gst-plugins-base-libs-gstcolorbalancechannel.html#GstColorBalanceChannel"><span class="type">GstColorBalanceChannel</span></a> instance</p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-<tr>
-<td class="parameter_name"><p>value</p></td>
-<td class="parameter_description"><p>The new value for the channel.</p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-</tbody>
-</table></div>
-</div>
 </div>
 <hr>
 <div class="refsect2">
@@ -261,63 +164,12 @@
 gst_color_balance_value_changed (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstcolorbalance.html#GstColorBalance"><span class="type">GstColorBalance</span></a> *balance</code></em>,
                                  <em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstcolorbalancechannel.html#GstColorBalanceChannel"><span class="type">GstColorBalanceChannel</span></a> *channel</code></em>,
                                  <em class="parameter"><code><a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#gint"><span class="type">gint</span></a> value</code></em>);</pre>
-<p>A helper function called by implementations of the GstColorBalance
-interface. It fires the <a class="link" href="gst-plugins-base-libs-gstcolorbalance.html#GstColorBalance-value-changed" title="The “value-changed” signal"><span class="type">“value-changed”</span></a> signal on the
-instance, and the <a class="link" href="gst-plugins-base-libs-gstcolorbalancechannel.html#GstColorBalanceChannel-value-changed" title="The “value-changed” signal"><span class="type">“value-changed”</span></a> signal on the
-channel object.</p>
-<div class="refsect3">
-<a name="gst-color-balance-value-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>balance</p></td>
-<td class="parameter_description"><p>A <a class="link" href="gst-plugins-base-libs-gstcolorbalance.html#GstColorBalance"><span class="type">GstColorBalance</span></a> instance</p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-<tr>
-<td class="parameter_name"><p>channel</p></td>
-<td class="parameter_description"><p>A <a class="link" href="gst-plugins-base-libs-gstcolorbalancechannel.html#GstColorBalanceChannel"><span class="type">GstColorBalanceChannel</span></a> whose value has changed</p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-<tr>
-<td class="parameter_name"><p>value</p></td>
-<td class="parameter_description"><p>The new value of the channel</p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-</tbody>
-</table></div>
-</div>
 </div>
 <hr>
 <div class="refsect2">
 <a name="gst-color-balance-get-balance-type"></a><h3>gst_color_balance_get_balance_type ()</h3>
 <pre class="programlisting"><a class="link" href="gst-plugins-base-libs-gstcolorbalance.html#GstColorBalanceType" title="enum GstColorBalanceType"><span class="returnvalue">GstColorBalanceType</span></a>
 gst_color_balance_get_balance_type (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstcolorbalance.html#GstColorBalance"><span class="type">GstColorBalance</span></a> *balance</code></em>);</pre>
-<p>Get the <a class="link" href="gst-plugins-base-libs-gstcolorbalance.html#GstColorBalanceType" title="enum GstColorBalanceType"><span class="type">GstColorBalanceType</span></a> of this implementation.</p>
-<div class="refsect3">
-<a name="gst-color-balance-get-balance-type.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>balance</p></td>
-<td class="parameter_description"><p>The <a class="link" href="gst-plugins-base-libs-gstcolorbalance.html#GstColorBalance"><span class="type">GstColorBalance</span></a> implementation</p></td>
-<td class="parameter_annotations"> </td>
-</tr></tbody>
-</table></div>
-</div>
-<div class="refsect3">
-<a name="gst-color-balance-get-balance-type.returns"></a><h4>Returns</h4>
-<p> A the <a class="link" href="gst-plugins-base-libs-gstcolorbalance.html#GstColorBalanceType" title="enum GstColorBalanceType"><span class="type">GstColorBalanceType</span></a>.</p>
-</div>
 </div>
 </div>
 <div class="refsect1">
@@ -348,57 +200,10 @@
                           gint                    value);
 };
 </pre>
-<p>Color-balance interface.</p>
-<div class="refsect3">
-<a name="GstColorBalanceInterface.members"></a><h4>Members</h4>
-<div class="informaltable"><table class="informaltable" width="100%" border="0">
-<colgroup>
-<col width="300px" class="struct_members_name">
-<col class="struct_members_description">
-<col width="200px" class="struct_members_annotations">
-</colgroup>
-<tbody>
-<tr>
-<td class="struct_member_name"><p><a href="/usr/share/gtk-doc/html/gobjectgobject-Type-Information.html#GTypeInterface"><span class="type">GTypeInterface</span></a> <em class="structfield"><code><a name="GstColorBalanceInterface.iface"></a>iface</code></em>;</p></td>
-<td class="struct_member_description"><p>the parent interface</p></td>
-<td class="struct_member_annotations"> </td>
-</tr>
-<tr>
-<td class="struct_member_name"><p><em class="structfield"><code><a name="GstColorBalanceInterface.list-channels"></a>list_channels</code></em> ()</p></td>
-<td class="struct_member_description"><p>list handled channels</p></td>
-<td class="struct_member_annotations"> </td>
-</tr>
-<tr>
-<td class="struct_member_name"><p><em class="structfield"><code><a name="GstColorBalanceInterface.set-value"></a>set_value</code></em> ()</p></td>
-<td class="struct_member_description"><p>set a channel value</p></td>
-<td class="struct_member_annotations"> </td>
-</tr>
-<tr>
-<td class="struct_member_name"><p><em class="structfield"><code><a name="GstColorBalanceInterface.get-value"></a>get_value</code></em> ()</p></td>
-<td class="struct_member_description"><p>get a channel value</p></td>
-<td class="struct_member_annotations"> </td>
-</tr>
-<tr>
-<td class="struct_member_name"><p><em class="structfield"><code><a name="GstColorBalanceInterface.get-balance-type"></a>get_balance_type</code></em> ()</p></td>
-<td class="struct_member_description"><p>implementation type</p></td>
-<td class="struct_member_annotations"> </td>
-</tr>
-<tr>
-<td class="struct_member_name"><p><em class="structfield"><code><a name="GstColorBalanceInterface.value-changed"></a>value_changed</code></em> ()</p></td>
-<td class="struct_member_description"><p>default handler for value changed notification</p></td>
-<td class="struct_member_annotations"> </td>
-</tr>
-</tbody>
-</table></div>
-</div>
 </div>
 <hr>
 <div class="refsect2">
 <a name="GstColorBalanceType"></a><h3>enum GstColorBalanceType</h3>
-<p>An enumeration indicating whether an element implements color balancing
-operations in software or in dedicated hardware. In general, dedicated
-hardware implementations (such as those provided by xvimagesink) are
-preferred.</p>
 <div class="refsect3">
 <a name="GstColorBalanceType.members"></a><h4>Members</h4>
 <div class="informaltable"><table class="informaltable" width="100%" border="0">
@@ -410,19 +215,13 @@
 <tbody>
 <tr>
 <td class="enum_member_name"><p><a name="GST-COLOR-BALANCE-HARDWARE:CAPS"></a>GST_COLOR_BALANCE_HARDWARE</p></td>
-<td class="enum_member_description">
-<p>Color balance is implemented with dedicated
-        hardware.</p>
-</td>
-<td class="enum_member_annotations"> </td>
+<td> </td>
+<td> </td>
 </tr>
 <tr>
 <td class="enum_member_name"><p><a name="GST-COLOR-BALANCE-SOFTWARE:CAPS"></a>GST_COLOR_BALANCE_SOFTWARE</p></td>
-<td class="enum_member_description">
-<p>Color balance is implemented via software
-        processing.</p>
-</td>
-<td class="enum_member_annotations"> </td>
+<td> </td>
+<td> </td>
 </tr>
 </tbody>
 </table></div>
@@ -434,43 +233,10 @@
 <div class="refsect2">
 <a name="GstColorBalance-value-changed"></a><h3>The <code class="literal">“value-changed”</code> signal</h3>
 <pre class="programlisting"><span class="returnvalue">void</span>
-user_function (<a class="link" href="gst-plugins-base-libs-gstcolorbalance.html#GstColorBalance"><span class="type">GstColorBalance</span></a>        *colorbalance,
-               <a class="link" href="gst-plugins-base-libs-gstcolorbalancechannel.html#GstColorBalanceChannel"><span class="type">GstColorBalanceChannel</span></a> *channel,
-               <a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#gint"><span class="type">gint</span></a>                    value,
+user_function (<a class="link" href="gst-plugins-base-libs-gstcolorbalance.html#GstColorBalance"><span class="type">GstColorBalance</span></a>        *gstcolorbalance,
+               <a class="link" href="gst-plugins-base-libs-gstcolorbalancechannel.html#GstColorBalanceChannel"><span class="type">GstColorBalanceChannel</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>Fired when the value of the indicated channel has changed.</p>
-<div class="refsect3">
-<a name="GstColorBalance-value-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>colorbalance</p></td>
-<td class="parameter_description"><p>The GstColorBalance instance</p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-<tr>
-<td class="parameter_name"><p>channel</p></td>
-<td class="parameter_description"><p>The <a class="link" href="gst-plugins-base-libs-gstcolorbalancechannel.html#GstColorBalanceChannel"><span class="type">GstColorBalanceChannel</span></a></p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-<tr>
-<td class="parameter_name"><p>value</p></td>
-<td class="parameter_description"><p>The new value</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>
 </div>
 </div>
diff --git a/docs/libs/html/gst-plugins-base-libs-gstcolorbalancechannel.html b/docs/libs/html/gst-plugins-base-libs-gstcolorbalancechannel.html
index 579de2c..21df104 100644
--- a/docs/libs/html/gst-plugins-base-libs-gstcolorbalancechannel.html
+++ b/docs/libs/html/gst-plugins-base-libs-gstcolorbalancechannel.html
@@ -29,8 +29,7 @@
 <div class="refnamediv"><table width="100%"><tr>
 <td valign="top">
 <h2><span class="refentrytitle"><a name="gst-plugins-base-libs-gstcolorbalancechannel.top_of_page"></a>gstcolorbalancechannel</span></h2>
-<p>gstcolorbalancechannel — Object representing a channel from the <a class="link" href="gst-plugins-base-libs-gstcolorbalance.html#GstColorBalance"><span class="type">GstColorBalance</span></a>
-        interface.</p>
+<p>gstcolorbalancechannel</p>
 </td>
 <td class="gallery_image" valign="top" align="right"></td>
 </tr></table></div>
@@ -81,12 +80,6 @@
 </div>
 <div class="refsect1">
 <a name="gst-plugins-base-libs-gstcolorbalancechannel.description"></a><h2>Description</h2>
-<div class="refsect2">
-<a name="id-1.2.15.14.8.2"></a><p>The <a class="link" href="gst-plugins-base-libs-gstcolorbalancechannel.html#GstColorBalanceChannel"><span class="type">GstColorBalanceChannel</span></a> object represents a parameter
-for modifying the color balance implemented by an element providing the
-<a class="link" href="gst-plugins-base-libs-gstcolorbalance.html#GstColorBalance"><span class="type">GstColorBalance</span></a> interface. For example, Hue or Saturation.
-</p>
-</div>
 </div>
 <div class="refsect1">
 <a name="gst-plugins-base-libs-gstcolorbalancechannel.functions_details"></a><h2>Functions</h2>
@@ -102,33 +95,6 @@
   gint    max_value;
 };
 </pre>
-<div class="refsect3">
-<a name="GstColorBalanceChannel.members"></a><h4>Members</h4>
-<div class="informaltable"><table class="informaltable" width="100%" border="0">
-<colgroup>
-<col width="300px" class="struct_members_name">
-<col class="struct_members_description">
-<col width="200px" class="struct_members_annotations">
-</colgroup>
-<tbody>
-<tr>
-<td class="struct_member_name"><p><a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *<em class="structfield"><code><a name="GstColorBalanceChannel-struct.label"></a>label</code></em>;</p></td>
-<td class="struct_member_description"><p>A string containing a descriptive name for this channel</p></td>
-<td class="struct_member_annotations"> </td>
-</tr>
-<tr>
-<td class="struct_member_name"><p><a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#gint"><span class="type">gint</span></a> <em class="structfield"><code><a name="GstColorBalanceChannel-struct.min-value"></a>min_value</code></em>;</p></td>
-<td class="struct_member_description"><p>The minimum valid value for this channel.</p></td>
-<td class="struct_member_annotations"> </td>
-</tr>
-<tr>
-<td class="struct_member_name"><p><a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#gint"><span class="type">gint</span></a> <em class="structfield"><code><a name="GstColorBalanceChannel-struct.max-value"></a>max_value</code></em>;</p></td>
-<td class="struct_member_description"><p>The maximum valid value for this channel.</p></td>
-<td class="struct_member_annotations"> </td>
-</tr>
-</tbody>
-</table></div>
-</div>
 </div>
 <hr>
 <div class="refsect2">
@@ -141,29 +107,6 @@
                           gint                    value);
 };
 </pre>
-<p>Color-balance channel class.</p>
-<div class="refsect3">
-<a name="GstColorBalanceChannelClass.members"></a><h4>Members</h4>
-<div class="informaltable"><table class="informaltable" width="100%" border="0">
-<colgroup>
-<col width="300px" class="struct_members_name">
-<col class="struct_members_description">
-<col width="200px" class="struct_members_annotations">
-</colgroup>
-<tbody>
-<tr>
-<td class="struct_member_name"><p><a href="/usr/share/gtk-doc/html/gobjectgobject-The-Base-Object-Type.html#GObjectClass"><span class="type">GObjectClass</span></a> <em class="structfield"><code><a name="GstColorBalanceChannelClass.parent"></a>parent</code></em>;</p></td>
-<td class="struct_member_description"><p>the parent class</p></td>
-<td class="struct_member_annotations"> </td>
-</tr>
-<tr>
-<td class="struct_member_name"><p><em class="structfield"><code><a name="GstColorBalanceChannelClass.value-changed"></a>value_changed</code></em> ()</p></td>
-<td class="struct_member_description"><p>default handler for value changed notification</p></td>
-<td class="struct_member_annotations"> </td>
-</tr>
-</tbody>
-</table></div>
-</div>
 </div>
 </div>
 <div class="refsect1">
@@ -171,37 +114,9 @@
 <div class="refsect2">
 <a name="GstColorBalanceChannel-value-changed"></a><h3>The <code class="literal">“value-changed”</code> signal</h3>
 <pre class="programlisting"><span class="returnvalue">void</span>
-user_function (<a class="link" href="gst-plugins-base-libs-gstcolorbalancechannel.html#GstColorBalanceChannel"><span class="type">GstColorBalanceChannel</span></a> *channel,
-               <a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#gint"><span class="type">gint</span></a>                    value,
+user_function (<a class="link" href="gst-plugins-base-libs-gstcolorbalancechannel.html#GstColorBalanceChannel"><span class="type">GstColorBalanceChannel</span></a> *gstcolorbalancechannel,
+               <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/glibglib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a>                user_data)</pre>
-<p>Fired when the value of the indicated channel has changed.</p>
-<div class="refsect3">
-<a name="GstColorBalanceChannel-value-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>channel</p></td>
-<td class="parameter_description"><p>The <a class="link" href="gst-plugins-base-libs-gstcolorbalancechannel.html#GstColorBalanceChannel"><span class="type">GstColorBalanceChannel</span></a></p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-<tr>
-<td class="parameter_name"><p>value</p></td>
-<td class="parameter_description"><p>The new value</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>
 </div>
 </div>
diff --git a/docs/libs/html/gst-plugins-base-libs-gstdiscoverer.html b/docs/libs/html/gst-plugins-base-libs-gstdiscoverer.html
index 0a004cd..1b5b91e 100644
--- a/docs/libs/html/gst-plugins-base-libs-gstdiscoverer.html
+++ b/docs/libs/html/gst-plugins-base-libs-gstdiscoverer.html
@@ -30,7 +30,7 @@
 <div class="refnamediv"><table width="100%"><tr>
 <td valign="top">
 <h2><span class="refentrytitle"><a name="gst-plugins-base-libs-gstdiscoverer.top_of_page"></a>gstdiscoverer</span></h2>
-<p>gstdiscoverer — Utility for discovering information on URIs.</p>
+<p>gstdiscoverer</p>
 </td>
 <td class="gallery_image" valign="top" align="right"></td>
 </tr></table></div>
@@ -565,18 +565,6 @@
 </div>
 <div class="refsect1">
 <a name="gst-plugins-base-libs-gstdiscoverer.description"></a><h2>Description</h2>
-<p>The <a class="link" href="gst-plugins-base-libs-gstdiscoverer.html#GstDiscoverer"><span class="type">GstDiscoverer</span></a> is a utility object which allows to get as much
-information as possible from one or many URIs.</p>
-<p>It provides two APIs, allowing usage in blocking or non-blocking mode.</p>
-<p>The blocking mode just requires calling <a class="link" href="gst-plugins-base-libs-gstdiscoverer.html#gst-discoverer-discover-uri" title="gst_discoverer_discover_uri ()"><code class="function">gst_discoverer_discover_uri()</code></a>
-with the URI one wishes to discover.</p>
-<p>The non-blocking mode requires a running <a href="/usr/share/gtk-doc/html/glibglib-The-Main-Event-Loop.html#GMainLoop"><span class="type">GMainLoop</span></a> iterating a
-<a href="/usr/share/gtk-doc/html/glibglib-The-Main-Event-Loop.html#GMainContext"><span class="type">GMainContext</span></a>, where one connects to the various signals, appends the
-URIs to be processed (through <a class="link" href="gst-plugins-base-libs-gstdiscoverer.html#gst-discoverer-discover-uri-async" title="gst_discoverer_discover_uri_async ()"><code class="function">gst_discoverer_discover_uri_async()</code></a>) and then
-asks for the discovery to begin (through <a class="link" href="gst-plugins-base-libs-gstdiscoverer.html#gst-discoverer-start" title="gst_discoverer_start ()"><code class="function">gst_discoverer_start()</code></a>).
-By default this will use the GLib default main context unless you have
-set a custom context using <a href="/usr/share/gtk-doc/html/glibglib-The-Main-Event-Loop.html#g-main-context-push-thread-default"><code class="function">g_main_context_push_thread_default()</code></a>.</p>
-<p>All the information is returned in a <a class="link" href="gst-plugins-base-libs-gstdiscoverer.html#GstDiscovererInfo"><span class="type">GstDiscovererInfo</span></a> structure.</p>
 </div>
 <div class="refsect1">
 <a name="gst-plugins-base-libs-gstdiscoverer.functions_details"></a><h2>Functions</h2>
@@ -585,87 +573,18 @@
 <pre class="programlisting"><a class="link" href="gst-plugins-base-libs-gstdiscoverer.html#GstDiscoverer"><span class="returnvalue">GstDiscoverer</span></a> *
 gst_discoverer_new (<em class="parameter"><code><a href="/usr/share/gtk-doc/html/gstreamer-1.0GstClock.html#GstClockTime"><span class="type">GstClockTime</span></a> timeout</code></em>,
                     <em class="parameter"><code><a href="/usr/share/gtk-doc/html/glibglib-Error-Reporting.html#GError"><span class="type">GError</span></a> **err</code></em>);</pre>
-<p>Creates a new <a class="link" href="gst-plugins-base-libs-gstdiscoverer.html#GstDiscoverer"><span class="type">GstDiscoverer</span></a> with the provided timeout.</p>
-<div class="refsect3">
-<a name="gst-discoverer-new.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>timeout</p></td>
-<td class="parameter_description"><p>timeout per file, in nanoseconds. Allowed are values between
-one second (<a href="/usr/share/gtk-doc/html/gstreamer-1.0GstClock.html#GST-SECOND:CAPS"><span class="type">GST_SECOND</span></a>) and one hour (3600 * <a href="/usr/share/gtk-doc/html/gstreamer-1.0GstClock.html#GST-SECOND:CAPS"><span class="type">GST_SECOND</span></a>)</p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-<tr>
-<td class="parameter_name"><p>err</p></td>
-<td class="parameter_description"><p>a pointer to a <a href="/usr/share/gtk-doc/html/glibglib-Error-Reporting.html#GError"><span class="type">GError</span></a>. can be <a href="/usr/share/gtk-doc/html/glibglib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a></p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-</tbody>
-</table></div>
-</div>
-<div class="refsect3">
-<a name="gst-discoverer-new.returns"></a><h4>Returns</h4>
-<p> The new <a class="link" href="gst-plugins-base-libs-gstdiscoverer.html#GstDiscoverer"><span class="type">GstDiscoverer</span></a>.
-If an error occurred when creating the discoverer, <em class="parameter"><code>err</code></em>
-will be set
-accordingly and <a href="/usr/share/gtk-doc/html/glibglib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a> will be returned. If <em class="parameter"><code>err</code></em>
-is set, the caller must
-free it when no longer needed using <a href="/usr/share/gtk-doc/html/glibglib-Error-Reporting.html#g-error-free"><code class="function">g_error_free()</code></a>. </p>
-<p><span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>]</span></p>
-</div>
 </div>
 <hr>
 <div class="refsect2">
 <a name="gst-discoverer-start"></a><h3>gst_discoverer_start ()</h3>
 <pre class="programlisting"><span class="returnvalue">void</span>
 gst_discoverer_start (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstdiscoverer.html#GstDiscoverer"><span class="type">GstDiscoverer</span></a> *discoverer</code></em>);</pre>
-<p>Allow asynchronous discovering of URIs to take place.
-A <a href="/usr/share/gtk-doc/html/glibglib-The-Main-Event-Loop.html#GMainLoop"><span class="type">GMainLoop</span></a> must be available for <a class="link" href="gst-plugins-base-libs-gstdiscoverer.html#GstDiscoverer"><span class="type">GstDiscoverer</span></a> to properly work in
-asynchronous mode.</p>
-<div class="refsect3">
-<a name="gst-discoverer-start.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>discoverer</p></td>
-<td class="parameter_description"><p>A <a class="link" href="gst-plugins-base-libs-gstdiscoverer.html#GstDiscoverer"><span class="type">GstDiscoverer</span></a></p></td>
-<td class="parameter_annotations"> </td>
-</tr></tbody>
-</table></div>
-</div>
 </div>
 <hr>
 <div class="refsect2">
 <a name="gst-discoverer-stop"></a><h3>gst_discoverer_stop ()</h3>
 <pre class="programlisting"><span class="returnvalue">void</span>
 gst_discoverer_stop (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstdiscoverer.html#GstDiscoverer"><span class="type">GstDiscoverer</span></a> *discoverer</code></em>);</pre>
-<p>Stop the discovery of any pending URIs and clears the list of
-pending URIS (if any).</p>
-<div class="refsect3">
-<a name="gst-discoverer-stop.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>discoverer</p></td>
-<td class="parameter_description"><p>A <a class="link" href="gst-plugins-base-libs-gstdiscoverer.html#GstDiscoverer"><span class="type">GstDiscoverer</span></a></p></td>
-<td class="parameter_annotations"> </td>
-</tr></tbody>
-</table></div>
-</div>
 </div>
 <hr>
 <div class="refsect2">
@@ -674,44 +593,6 @@
 gst_discoverer_discover_uri (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstdiscoverer.html#GstDiscoverer"><span class="type">GstDiscoverer</span></a> *discoverer</code></em>,
                              <em class="parameter"><code>const <a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *uri</code></em>,
                              <em class="parameter"><code><a href="/usr/share/gtk-doc/html/glibglib-Error-Reporting.html#GError"><span class="type">GError</span></a> **err</code></em>);</pre>
-<p>Synchronously discovers the given <em class="parameter"><code>uri</code></em>
-.</p>
-<p>A copy of <em class="parameter"><code>uri</code></em>
- will be made internally, so the caller can safely <a href="/usr/share/gtk-doc/html/glibglib-Memory-Allocation.html#g-free"><code class="function">g_free()</code></a>
-afterwards.</p>
-<div class="refsect3">
-<a name="gst-discoverer-discover-uri.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>discoverer</p></td>
-<td class="parameter_description"><p>A <a class="link" href="gst-plugins-base-libs-gstdiscoverer.html#GstDiscoverer"><span class="type">GstDiscoverer</span></a></p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-<tr>
-<td class="parameter_name"><p>uri</p></td>
-<td class="parameter_description"><p>The URI to run on.</p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-<tr>
-<td class="parameter_name"><p>err</p></td>
-<td class="parameter_description"><p> If an error occurred, this field will be filled in. </p></td>
-<td class="parameter_annotations"><span class="annotation">[<acronym title="Parameter for returning results. Default is transfer full."><span class="acronym">out</span></acronym>][<acronym title="NULL is OK, both for passing and for returning."><span class="acronym">allow-none</span></acronym>]</span></td>
-</tr>
-</tbody>
-</table></div>
-</div>
-<div class="refsect3">
-<a name="gst-discoverer-discover-uri.returns"></a><h4>Returns</h4>
-<p> the result of the scanning. Can be <a href="/usr/share/gtk-doc/html/glibglib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a> if an
-error occurred. </p>
-<p><span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>]</span></p>
-</div>
 </div>
 <hr>
 <div class="refsect2">
@@ -719,342 +600,72 @@
 <pre class="programlisting"><a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
 gst_discoverer_discover_uri_async (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstdiscoverer.html#GstDiscoverer"><span class="type">GstDiscoverer</span></a> *discoverer</code></em>,
                                    <em class="parameter"><code>const <a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *uri</code></em>);</pre>
-<p>Appends the given <em class="parameter"><code>uri</code></em>
- to the list of URIs to discoverer. The actual
-discovery of the <em class="parameter"><code>uri</code></em>
- will only take place if <a class="link" href="gst-plugins-base-libs-gstdiscoverer.html#gst-discoverer-start" title="gst_discoverer_start ()"><code class="function">gst_discoverer_start()</code></a> has
-been called.</p>
-<p>A copy of <em class="parameter"><code>uri</code></em>
- will be made internally, so the caller can safely <a href="/usr/share/gtk-doc/html/glibglib-Memory-Allocation.html#g-free"><code class="function">g_free()</code></a>
-afterwards.</p>
-<div class="refsect3">
-<a name="gst-discoverer-discover-uri-async.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>discoverer</p></td>
-<td class="parameter_description"><p>A <a class="link" href="gst-plugins-base-libs-gstdiscoverer.html#GstDiscoverer"><span class="type">GstDiscoverer</span></a></p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-<tr>
-<td class="parameter_name"><p>uri</p></td>
-<td class="parameter_description"><p>the URI to add.</p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-</tbody>
-</table></div>
-</div>
-<div class="refsect3">
-<a name="gst-discoverer-discover-uri-async.returns"></a><h4>Returns</h4>
-<p> <a href="/usr/share/gtk-doc/html/glibglib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a> if the <em class="parameter"><code>uri</code></em>
-was successfully appended to the list of pending
-uris, else <a href="/usr/share/gtk-doc/html/glibglib-Standard-Macros.html#FALSE:CAPS"><code class="literal">FALSE</code></a></p>
-</div>
 </div>
 <hr>
 <div class="refsect2">
 <a name="gst-discoverer-info-get-duration"></a><h3>gst_discoverer_info_get_duration ()</h3>
 <pre class="programlisting"><a href="/usr/share/gtk-doc/html/gstreamer-1.0GstClock.html#GstClockTime"><span class="returnvalue">GstClockTime</span></a>
 gst_discoverer_info_get_duration (<em class="parameter"><code>const <a class="link" href="gst-plugins-base-libs-gstdiscoverer.html#GstDiscovererInfo"><span class="type">GstDiscovererInfo</span></a> *info</code></em>);</pre>
-<div class="refsect3">
-<a name="gst-discoverer-info-get-duration.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>info</p></td>
-<td class="parameter_description"><p>a <a class="link" href="gst-plugins-base-libs-gstdiscoverer.html#GstDiscovererInfo"><span class="type">GstDiscovererInfo</span></a></p></td>
-<td class="parameter_annotations"> </td>
-</tr></tbody>
-</table></div>
-</div>
-<div class="refsect3">
-<a name="gst-discoverer-info-get-duration.returns"></a><h4>Returns</h4>
-<p> the duration of the URI in <a href="/usr/share/gtk-doc/html/gstreamer-1.0GstClock.html#GstClockTime"><span class="type">GstClockTime</span></a> (nanoseconds).</p>
-</div>
 </div>
 <hr>
 <div class="refsect2">
 <a name="gst-discoverer-info-get-misc"></a><h3>gst_discoverer_info_get_misc ()</h3>
 <pre class="programlisting">const <a href="/usr/share/gtk-doc/html/gstreamer-1.0GstStructure.html#GstStructure-struct"><span class="returnvalue">GstStructure</span></a> *
 gst_discoverer_info_get_misc (<em class="parameter"><code>const <a class="link" href="gst-plugins-base-libs-gstdiscoverer.html#GstDiscovererInfo"><span class="type">GstDiscovererInfo</span></a> *info</code></em>);</pre>
-<div class="warning">
-<p><code class="literal">gst_discoverer_info_get_misc</code> is deprecated and should not be used in newly-written code.</p>
-<p>This functions is deprecated since version 1.4, use
-<a class="link" href="gst-plugins-base-libs-gstdiscoverer.html#gst-discoverer-info-get-missing-elements-installer-details" title="gst_discoverer_info_get_missing_elements_installer_details ()"><span class="type">gst_discoverer_info_get_missing_elements_installer_details</span></a></p>
-</div>
-<div class="refsect3">
-<a name="gst-discoverer-info-get-misc.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>info</p></td>
-<td class="parameter_description"><p>a <a class="link" href="gst-plugins-base-libs-gstdiscoverer.html#GstDiscovererInfo"><span class="type">GstDiscovererInfo</span></a></p></td>
-<td class="parameter_annotations"> </td>
-</tr></tbody>
-</table></div>
-</div>
-<div class="refsect3">
-<a name="gst-discoverer-info-get-misc.returns"></a><h4>Returns</h4>
-<p> Miscellaneous information stored as a <a href="/usr/share/gtk-doc/html/gstreamer-1.0GstStructure.html#GstStructure-struct"><span class="type">GstStructure</span></a>
-(for example: information about missing plugins). If you wish to use the
-<a href="/usr/share/gtk-doc/html/gstreamer-1.0GstStructure.html#GstStructure-struct"><span class="type">GstStructure</span></a> after the life-time of <em class="parameter"><code>info</code></em>
-, you will need to copy it. </p>
-<p><span class="annotation">[<acronym title="Don't free data after the code is done."><span class="acronym">transfer none</span></acronym>]</span></p>
-</div>
 </div>
 <hr>
 <div class="refsect2">
 <a name="gst-discoverer-info-get-result"></a><h3>gst_discoverer_info_get_result ()</h3>
 <pre class="programlisting"><a class="link" href="gst-plugins-base-libs-gstdiscoverer.html#GstDiscovererResult" title="enum GstDiscovererResult"><span class="returnvalue">GstDiscovererResult</span></a>
 gst_discoverer_info_get_result (<em class="parameter"><code>const <a class="link" href="gst-plugins-base-libs-gstdiscoverer.html#GstDiscovererInfo"><span class="type">GstDiscovererInfo</span></a> *info</code></em>);</pre>
-<div class="refsect3">
-<a name="gst-discoverer-info-get-result.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>info</p></td>
-<td class="parameter_description"><p>a <a class="link" href="gst-plugins-base-libs-gstdiscoverer.html#GstDiscovererInfo"><span class="type">GstDiscovererInfo</span></a></p></td>
-<td class="parameter_annotations"> </td>
-</tr></tbody>
-</table></div>
-</div>
-<div class="refsect3">
-<a name="gst-discoverer-info-get-result.returns"></a><h4>Returns</h4>
-<p> the result of the discovery as a <a class="link" href="gst-plugins-base-libs-gstdiscoverer.html#GstDiscovererResult" title="enum GstDiscovererResult"><span class="type">GstDiscovererResult</span></a>.</p>
-</div>
 </div>
 <hr>
 <div class="refsect2">
 <a name="gst-discoverer-info-get-stream-info"></a><h3>gst_discoverer_info_get_stream_info ()</h3>
 <pre class="programlisting"><a class="link" href="gst-plugins-base-libs-gstdiscoverer.html#GstDiscovererStreamInfo" title="GstDiscovererStreamInfo"><span class="returnvalue">GstDiscovererStreamInfo</span></a> *
 gst_discoverer_info_get_stream_info (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstdiscoverer.html#GstDiscovererInfo"><span class="type">GstDiscovererInfo</span></a> *info</code></em>);</pre>
-<div class="refsect3">
-<a name="gst-discoverer-info-get-stream-info.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>info</p></td>
-<td class="parameter_description"><p>a <a class="link" href="gst-plugins-base-libs-gstdiscoverer.html#GstDiscovererInfo"><span class="type">GstDiscovererInfo</span></a></p></td>
-<td class="parameter_annotations"> </td>
-</tr></tbody>
-</table></div>
-</div>
-<div class="refsect3">
-<a name="gst-discoverer-info-get-stream-info.returns"></a><h4>Returns</h4>
-<p> the structure (or topology) of the URI as a
-<a class="link" href="gst-plugins-base-libs-gstdiscoverer.html#GstDiscovererStreamInfo" title="GstDiscovererStreamInfo"><span class="type">GstDiscovererStreamInfo</span></a>.
-This structure can be traversed to see the original hierarchy. Unref with
-<a class="link" href="gst-plugins-base-libs-gstdiscoverer.html#gst-discoverer-stream-info-unref" title="gst_discoverer_stream_info_unref()"><code class="function">gst_discoverer_stream_info_unref()</code></a> after usage. </p>
-<p><span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>]</span></p>
-</div>
 </div>
 <hr>
 <div class="refsect2">
 <a name="gst-discoverer-info-get-stream-list"></a><h3>gst_discoverer_info_get_stream_list ()</h3>
 <pre class="programlisting"><a href="/usr/share/gtk-doc/html/glibglib-Doubly-Linked-Lists.html#GList"><span class="returnvalue">GList</span></a> *
 gst_discoverer_info_get_stream_list (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstdiscoverer.html#GstDiscovererInfo"><span class="type">GstDiscovererInfo</span></a> *info</code></em>);</pre>
-<div class="refsect3">
-<a name="gst-discoverer-info-get-stream-list.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>info</p></td>
-<td class="parameter_description"><p>a <a class="link" href="gst-plugins-base-libs-gstdiscoverer.html#GstDiscovererInfo"><span class="type">GstDiscovererInfo</span></a></p></td>
-<td class="parameter_annotations"> </td>
-</tr></tbody>
-</table></div>
-</div>
-<div class="refsect3">
-<a name="gst-discoverer-info-get-stream-list.returns"></a><h4>Returns</h4>
-<p> the list of
-all streams contained in the <span class="type">info</span>. Free after usage
-with <a class="link" href="gst-plugins-base-libs-gstdiscoverer.html#gst-discoverer-stream-info-list-free" title="gst_discoverer_stream_info_list_free ()"><code class="function">gst_discoverer_stream_info_list_free()</code></a>. </p>
-<p><span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>][<acronym title="Generics and defining elements of containers and arrays."><span class="acronym">element-type</span></acronym> GstPbutils.DiscovererStreamInfo]</span></p>
-</div>
 </div>
 <hr>
 <div class="refsect2">
 <a name="gst-discoverer-info-get-tags"></a><h3>gst_discoverer_info_get_tags ()</h3>
 <pre class="programlisting">const <a href="/usr/share/gtk-doc/html/gstreamer-1.0GstTagList.html#GstTagList-struct"><span class="returnvalue">GstTagList</span></a> *
 gst_discoverer_info_get_tags (<em class="parameter"><code>const <a class="link" href="gst-plugins-base-libs-gstdiscoverer.html#GstDiscovererInfo"><span class="type">GstDiscovererInfo</span></a> *info</code></em>);</pre>
-<div class="refsect3">
-<a name="gst-discoverer-info-get-tags.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>info</p></td>
-<td class="parameter_description"><p>a <a class="link" href="gst-plugins-base-libs-gstdiscoverer.html#GstDiscovererInfo"><span class="type">GstDiscovererInfo</span></a></p></td>
-<td class="parameter_annotations"> </td>
-</tr></tbody>
-</table></div>
-</div>
-<div class="refsect3">
-<a name="gst-discoverer-info-get-tags.returns"></a><h4>Returns</h4>
-<p> all tags contained in the URI. If you wish to use
-the tags after the life-time of <em class="parameter"><code>info</code></em>
-, you will need to copy them. </p>
-<p><span class="annotation">[<acronym title="Don't free data after the code is done."><span class="acronym">transfer none</span></acronym>]</span></p>
-</div>
 </div>
 <hr>
 <div class="refsect2">
 <a name="gst-discoverer-info-get-toc"></a><h3>gst_discoverer_info_get_toc ()</h3>
 <pre class="programlisting">const <a href="/usr/share/gtk-doc/html/gstreamer-1.0GstToc.html#GstToc-struct"><span class="returnvalue">GstToc</span></a> *
 gst_discoverer_info_get_toc (<em class="parameter"><code>const <a class="link" href="gst-plugins-base-libs-gstdiscoverer.html#GstDiscovererInfo"><span class="type">GstDiscovererInfo</span></a> *info</code></em>);</pre>
-<div class="refsect3">
-<a name="gst-discoverer-info-get-toc.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>info</p></td>
-<td class="parameter_description"><p>a <a class="link" href="gst-plugins-base-libs-gstdiscoverer.html#GstDiscovererInfo"><span class="type">GstDiscovererInfo</span></a></p></td>
-<td class="parameter_annotations"> </td>
-</tr></tbody>
-</table></div>
-</div>
-<div class="refsect3">
-<a name="gst-discoverer-info-get-toc.returns"></a><h4>Returns</h4>
-<p> TOC contained in the URI. If you wish to use
-the TOC after the life-time of <em class="parameter"><code>info</code></em>
-, you will need to copy it. </p>
-<p><span class="annotation">[<acronym title="Don't free data after the code is done."><span class="acronym">transfer none</span></acronym>]</span></p>
-</div>
 </div>
 <hr>
 <div class="refsect2">
 <a name="gst-discoverer-info-get-uri"></a><h3>gst_discoverer_info_get_uri ()</h3>
 <pre class="programlisting">const <a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> *
 gst_discoverer_info_get_uri (<em class="parameter"><code>const <a class="link" href="gst-plugins-base-libs-gstdiscoverer.html#GstDiscovererInfo"><span class="type">GstDiscovererInfo</span></a> *info</code></em>);</pre>
-<div class="refsect3">
-<a name="gst-discoverer-info-get-uri.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>info</p></td>
-<td class="parameter_description"><p>a <a class="link" href="gst-plugins-base-libs-gstdiscoverer.html#GstDiscovererInfo"><span class="type">GstDiscovererInfo</span></a></p></td>
-<td class="parameter_annotations"> </td>
-</tr></tbody>
-</table></div>
-</div>
-<div class="refsect3">
-<a name="gst-discoverer-info-get-uri.returns"></a><h4>Returns</h4>
-<p> the URI to which this information corresponds to.
-Copy it if you wish to use it after the life-time of <em class="parameter"><code>info</code></em>
-. </p>
-<p><span class="annotation">[<acronym title="Don't free data after the code is done."><span class="acronym">transfer none</span></acronym>]</span></p>
-</div>
 </div>
 <hr>
 <div class="refsect2">
 <a name="gst-discoverer-info-get-seekable"></a><h3>gst_discoverer_info_get_seekable ()</h3>
 <pre class="programlisting"><a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
 gst_discoverer_info_get_seekable (<em class="parameter"><code>const <a class="link" href="gst-plugins-base-libs-gstdiscoverer.html#GstDiscovererInfo"><span class="type">GstDiscovererInfo</span></a> *info</code></em>);</pre>
-<div class="refsect3">
-<a name="gst-discoverer-info-get-seekable.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>info</p></td>
-<td class="parameter_description"><p>a <a class="link" href="gst-plugins-base-libs-gstdiscoverer.html#GstDiscovererInfo"><span class="type">GstDiscovererInfo</span></a></p></td>
-<td class="parameter_annotations"> </td>
-</tr></tbody>
-</table></div>
-</div>
-<div class="refsect3">
-<a name="gst-discoverer-info-get-seekable.returns"></a><h4>Returns</h4>
-<p> the whether the URI is seekable.</p>
-</div>
 </div>
 <hr>
 <div class="refsect2">
 <a name="gst-discoverer-info-ref"></a><h3>gst_discoverer_info_ref()</h3>
 <pre class="programlisting">#define gst_discoverer_info_ref(info) (g_object_ref((GObject*)info))
 </pre>
-<p>Increments the reference count of <em class="parameter"><code>info</code></em>
-.</p>
-<div class="refsect3">
-<a name="gst-discoverer-info-ref.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>info</p></td>
-<td class="parameter_description"><p>a <a class="link" href="gst-plugins-base-libs-gstdiscoverer.html#GstDiscovererInfo"><span class="type">GstDiscovererInfo</span></a></p></td>
-<td class="parameter_annotations"> </td>
-</tr></tbody>
-</table></div>
-</div>
-<div class="refsect3">
-<a name="gst-discoverer-info-ref.returns"></a><h4>Returns</h4>
-<p> the same <a class="link" href="gst-plugins-base-libs-gstdiscoverer.html#GstDiscovererInfo"><span class="type">GstDiscovererInfo</span></a> object</p>
-</div>
 </div>
 <hr>
 <div class="refsect2">
 <a name="gst-discoverer-info-unref"></a><h3>gst_discoverer_info_unref()</h3>
 <pre class="programlisting">#define gst_discoverer_info_unref(info) (g_object_unref((GObject*)info))
 </pre>
-<p>Decrements the reference count of <em class="parameter"><code>info</code></em>
-.</p>
-<div class="refsect3">
-<a name="gst-discoverer-info-unref.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>info</p></td>
-<td class="parameter_description"><p>a <a class="link" href="gst-plugins-base-libs-gstdiscoverer.html#GstDiscovererInfo"><span class="type">GstDiscovererInfo</span></a></p></td>
-<td class="parameter_annotations"> </td>
-</tr></tbody>
-</table></div>
-</div>
 </div>
 <hr>
 <div class="refsect2">
@@ -1062,159 +673,30 @@
 <pre class="programlisting"><a href="/usr/share/gtk-doc/html/glibglib-GVariant.html#GVariant"><span class="returnvalue">GVariant</span></a> *
 gst_discoverer_info_to_variant (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstdiscoverer.html#GstDiscovererInfo"><span class="type">GstDiscovererInfo</span></a> *info</code></em>,
                                 <em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstdiscoverer.html#GstDiscovererSerializeFlags" title="enum GstDiscovererSerializeFlags"><span class="type">GstDiscovererSerializeFlags</span></a> flags</code></em>);</pre>
-<p>Serializes <em class="parameter"><code>info</code></em>
- to a <a href="/usr/share/gtk-doc/html/glibglib-GVariant.html#GVariant"><span class="type">GVariant</span></a> that can be parsed again
-through <a class="link" href="gst-plugins-base-libs-gstdiscoverer.html#gst-discoverer-info-from-variant" title="gst_discoverer_info_from_variant ()"><code class="function">gst_discoverer_info_from_variant()</code></a>.</p>
-<p>Note that any <a href="/usr/share/gtk-doc/html/gstreamer-1.0GstToc.html#GstToc-struct"><span class="type">GstToc</span></a> (s) that might have been discovered will not be serialized
-for now.</p>
-<div class="refsect3">
-<a name="gst-discoverer-info-to-variant.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>info</p></td>
-<td class="parameter_description"><p>A <a class="link" href="gst-plugins-base-libs-gstdiscoverer.html#GstDiscovererInfo"><span class="type">GstDiscovererInfo</span></a></p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-<tr>
-<td class="parameter_name"><p>flags</p></td>
-<td class="parameter_description"><p>A combination of <a class="link" href="gst-plugins-base-libs-gstdiscoverer.html#GstDiscovererSerializeFlags" title="enum GstDiscovererSerializeFlags"><span class="type">GstDiscovererSerializeFlags</span></a> to specify
-what needs to be serialized.</p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-</tbody>
-</table></div>
-</div>
-<div class="refsect3">
-<a name="gst-discoverer-info-to-variant.returns"></a><h4>Returns</h4>
-<p> A newly-allocated <a href="/usr/share/gtk-doc/html/glibglib-GVariant.html#GVariant"><span class="type">GVariant</span></a> representing <em class="parameter"><code>info</code></em>
-. </p>
-<p><span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>]</span></p>
-</div>
-<p class="since">Since: 1.6</p>
 </div>
 <hr>
 <div class="refsect2">
 <a name="gst-discoverer-info-from-variant"></a><h3>gst_discoverer_info_from_variant ()</h3>
 <pre class="programlisting"><a class="link" href="gst-plugins-base-libs-gstdiscoverer.html#GstDiscovererInfo"><span class="returnvalue">GstDiscovererInfo</span></a> *
 gst_discoverer_info_from_variant (<em class="parameter"><code><a href="/usr/share/gtk-doc/html/glibglib-GVariant.html#GVariant"><span class="type">GVariant</span></a> *variant</code></em>);</pre>
-<p>Parses a <a href="/usr/share/gtk-doc/html/glibglib-GVariant.html#GVariant"><span class="type">GVariant</span></a> as produced by <a class="link" href="gst-plugins-base-libs-gstdiscoverer.html#gst-discoverer-info-to-variant" title="gst_discoverer_info_to_variant ()"><code class="function">gst_discoverer_info_to_variant()</code></a>
-back to a <a class="link" href="gst-plugins-base-libs-gstdiscoverer.html#GstDiscovererInfo"><span class="type">GstDiscovererInfo</span></a>.</p>
-<div class="refsect3">
-<a name="gst-discoverer-info-from-variant.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>variant</p></td>
-<td class="parameter_description"><p>A <a href="/usr/share/gtk-doc/html/glibglib-GVariant.html#GVariant"><span class="type">GVariant</span></a> to deserialize into a <a class="link" href="gst-plugins-base-libs-gstdiscoverer.html#GstDiscovererInfo"><span class="type">GstDiscovererInfo</span></a>.</p></td>
-<td class="parameter_annotations"> </td>
-</tr></tbody>
-</table></div>
-</div>
-<div class="refsect3">
-<a name="gst-discoverer-info-from-variant.returns"></a><h4>Returns</h4>
-<p> A newly-allocated <a class="link" href="gst-plugins-base-libs-gstdiscoverer.html#GstDiscovererInfo"><span class="type">GstDiscovererInfo</span></a>. </p>
-<p><span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>]</span></p>
-</div>
-<p class="since">Since: 1.6</p>
 </div>
 <hr>
 <div class="refsect2">
 <a name="gst-discoverer-stream-info-get-caps"></a><h3>gst_discoverer_stream_info_get_caps ()</h3>
 <pre class="programlisting"><a href="/usr/share/gtk-doc/html/gstreamer-1.0GstCaps.html#GstCaps-struct"><span class="returnvalue">GstCaps</span></a> *
 gst_discoverer_stream_info_get_caps (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstdiscoverer.html#GstDiscovererStreamInfo" title="GstDiscovererStreamInfo"><span class="type">GstDiscovererStreamInfo</span></a> *info</code></em>);</pre>
-<div class="refsect3">
-<a name="gst-discoverer-stream-info-get-caps.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>info</p></td>
-<td class="parameter_description"><p>a <a class="link" href="gst-plugins-base-libs-gstdiscoverer.html#GstDiscovererStreamInfo" title="GstDiscovererStreamInfo"><span class="type">GstDiscovererStreamInfo</span></a></p></td>
-<td class="parameter_annotations"> </td>
-</tr></tbody>
-</table></div>
-</div>
-<div class="refsect3">
-<a name="gst-discoverer-stream-info-get-caps.returns"></a><h4>Returns</h4>
-<p> the <a href="/usr/share/gtk-doc/html/gstreamer-1.0GstCaps.html#GstCaps-struct"><span class="type">GstCaps</span></a> of the stream. Unref with
-<a href="/usr/share/gtk-doc/html/gstreamer-1.0GstCaps.html#gst-caps-unref"><span class="type">gst_caps_unref</span></a> after usage. </p>
-<p><span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>]</span></p>
-</div>
 </div>
 <hr>
 <div class="refsect2">
 <a name="gst-discoverer-stream-info-get-misc"></a><h3>gst_discoverer_stream_info_get_misc ()</h3>
 <pre class="programlisting">const <a href="/usr/share/gtk-doc/html/gstreamer-1.0GstStructure.html#GstStructure-struct"><span class="returnvalue">GstStructure</span></a> *
 gst_discoverer_stream_info_get_misc (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstdiscoverer.html#GstDiscovererStreamInfo" title="GstDiscovererStreamInfo"><span class="type">GstDiscovererStreamInfo</span></a> *info</code></em>);</pre>
-<div class="warning">
-<p><code class="literal">gst_discoverer_stream_info_get_misc</code> is deprecated and should not be used in newly-written code.</p>
-<p>This functions is deprecated since version 1.4, use
-<a class="link" href="gst-plugins-base-libs-gstdiscoverer.html#gst-discoverer-info-get-missing-elements-installer-details" title="gst_discoverer_info_get_missing_elements_installer_details ()"><span class="type">gst_discoverer_info_get_missing_elements_installer_details</span></a></p>
-</div>
-<div class="refsect3">
-<a name="gst-discoverer-stream-info-get-misc.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>info</p></td>
-<td class="parameter_description"><p>a <a class="link" href="gst-plugins-base-libs-gstdiscoverer.html#GstDiscovererStreamInfo" title="GstDiscovererStreamInfo"><span class="type">GstDiscovererStreamInfo</span></a></p></td>
-<td class="parameter_annotations"> </td>
-</tr></tbody>
-</table></div>
-</div>
-<div class="refsect3">
-<a name="gst-discoverer-stream-info-get-misc.returns"></a><h4>Returns</h4>
-<p> additional information regarding the stream (for
-example codec version, profile, etc..). If you wish to use the <a href="/usr/share/gtk-doc/html/gstreamer-1.0GstStructure.html#GstStructure-struct"><span class="type">GstStructure</span></a>
-after the life-time of <em class="parameter"><code>info</code></em>
-you will need to copy it. </p>
-<p><span class="annotation">[<acronym title="Don't free data after the code is done."><span class="acronym">transfer none</span></acronym>]</span></p>
-</div>
 </div>
 <hr>
 <div class="refsect2">
 <a name="gst-discoverer-stream-info-get-next"></a><h3>gst_discoverer_stream_info_get_next ()</h3>
 <pre class="programlisting"><a class="link" href="gst-plugins-base-libs-gstdiscoverer.html#GstDiscovererStreamInfo" title="GstDiscovererStreamInfo"><span class="returnvalue">GstDiscovererStreamInfo</span></a> *
 gst_discoverer_stream_info_get_next (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstdiscoverer.html#GstDiscovererStreamInfo" title="GstDiscovererStreamInfo"><span class="type">GstDiscovererStreamInfo</span></a> *info</code></em>);</pre>
-<div class="refsect3">
-<a name="gst-discoverer-stream-info-get-next.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>info</p></td>
-<td class="parameter_description"><p>a <a class="link" href="gst-plugins-base-libs-gstdiscoverer.html#GstDiscovererStreamInfo" title="GstDiscovererStreamInfo"><span class="type">GstDiscovererStreamInfo</span></a></p></td>
-<td class="parameter_annotations"> </td>
-</tr></tbody>
-</table></div>
-</div>
-<div class="refsect3">
-<a name="gst-discoverer-stream-info-get-next.returns"></a><h4>Returns</h4>
-<p> the next <a class="link" href="gst-plugins-base-libs-gstdiscoverer.html#GstDiscovererStreamInfo" title="GstDiscovererStreamInfo"><span class="type">GstDiscovererStreamInfo</span></a> in a chain. <a href="/usr/share/gtk-doc/html/glibglib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a>
-for final streams.
-Unref with <a class="link" href="gst-plugins-base-libs-gstdiscoverer.html#gst-discoverer-stream-info-unref" title="gst_discoverer_stream_info_unref()"><span class="type">gst_discoverer_stream_info_unref</span></a> after usage. </p>
-<p><span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>]</span></p>
-</div>
 </div>
 <hr>
 <div class="refsect2">
@@ -1222,84 +704,18 @@
 <pre class="programlisting"><a class="link" href="gst-plugins-base-libs-gstdiscoverer.html#GstDiscovererStreamInfo" title="GstDiscovererStreamInfo"><span class="returnvalue">GstDiscovererStreamInfo</span></a> *
 gst_discoverer_stream_info_get_previous
                                (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstdiscoverer.html#GstDiscovererStreamInfo" title="GstDiscovererStreamInfo"><span class="type">GstDiscovererStreamInfo</span></a> *info</code></em>);</pre>
-<div class="refsect3">
-<a name="gst-discoverer-stream-info-get-previous.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>info</p></td>
-<td class="parameter_description"><p>a <a class="link" href="gst-plugins-base-libs-gstdiscoverer.html#GstDiscovererStreamInfo" title="GstDiscovererStreamInfo"><span class="type">GstDiscovererStreamInfo</span></a></p></td>
-<td class="parameter_annotations"> </td>
-</tr></tbody>
-</table></div>
-</div>
-<div class="refsect3">
-<a name="gst-discoverer-stream-info-get-previous.returns"></a><h4>Returns</h4>
-<p> the previous <a class="link" href="gst-plugins-base-libs-gstdiscoverer.html#GstDiscovererStreamInfo" title="GstDiscovererStreamInfo"><span class="type">GstDiscovererStreamInfo</span></a> in a chain.
-<a href="/usr/share/gtk-doc/html/glibglib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a> for starting points. Unref with <a class="link" href="gst-plugins-base-libs-gstdiscoverer.html#gst-discoverer-stream-info-unref" title="gst_discoverer_stream_info_unref()"><span class="type">gst_discoverer_stream_info_unref</span></a>
-after usage. </p>
-<p><span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>]</span></p>
-</div>
 </div>
 <hr>
 <div class="refsect2">
 <a name="gst-discoverer-stream-info-get-tags"></a><h3>gst_discoverer_stream_info_get_tags ()</h3>
 <pre class="programlisting">const <a href="/usr/share/gtk-doc/html/gstreamer-1.0GstTagList.html#GstTagList-struct"><span class="returnvalue">GstTagList</span></a> *
 gst_discoverer_stream_info_get_tags (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstdiscoverer.html#GstDiscovererStreamInfo" title="GstDiscovererStreamInfo"><span class="type">GstDiscovererStreamInfo</span></a> *info</code></em>);</pre>
-<div class="refsect3">
-<a name="gst-discoverer-stream-info-get-tags.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>info</p></td>
-<td class="parameter_description"><p>a <a class="link" href="gst-plugins-base-libs-gstdiscoverer.html#GstDiscovererStreamInfo" title="GstDiscovererStreamInfo"><span class="type">GstDiscovererStreamInfo</span></a></p></td>
-<td class="parameter_annotations"> </td>
-</tr></tbody>
-</table></div>
-</div>
-<div class="refsect3">
-<a name="gst-discoverer-stream-info-get-tags.returns"></a><h4>Returns</h4>
-<p> the tags contained in this stream. If you wish to
-use the tags after the life-time of <em class="parameter"><code>info</code></em>
-you will need to copy them. </p>
-<p><span class="annotation">[<acronym title="Don't free data after the code is done."><span class="acronym">transfer none</span></acronym>]</span></p>
-</div>
 </div>
 <hr>
 <div class="refsect2">
 <a name="gst-discoverer-stream-info-get-toc"></a><h3>gst_discoverer_stream_info_get_toc ()</h3>
 <pre class="programlisting">const <a href="/usr/share/gtk-doc/html/gstreamer-1.0GstToc.html#GstToc-struct"><span class="returnvalue">GstToc</span></a> *
 gst_discoverer_stream_info_get_toc (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstdiscoverer.html#GstDiscovererStreamInfo" title="GstDiscovererStreamInfo"><span class="type">GstDiscovererStreamInfo</span></a> *info</code></em>);</pre>
-<div class="refsect3">
-<a name="gst-discoverer-stream-info-get-toc.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>info</p></td>
-<td class="parameter_description"><p>a <a class="link" href="gst-plugins-base-libs-gstdiscoverer.html#GstDiscovererStreamInfo" title="GstDiscovererStreamInfo"><span class="type">GstDiscovererStreamInfo</span></a></p></td>
-<td class="parameter_annotations"> </td>
-</tr></tbody>
-</table></div>
-</div>
-<div class="refsect3">
-<a name="gst-discoverer-stream-info-get-toc.returns"></a><h4>Returns</h4>
-<p> the TOC contained in this stream. If you wish to
-use the TOC after the life-time of <em class="parameter"><code>info</code></em>
-you will need to copy it. </p>
-<p><span class="annotation">[<acronym title="Don't free data after the code is done."><span class="acronym">transfer none</span></acronym>]</span></p>
-</div>
 </div>
 <hr>
 <div class="refsect2">
@@ -1307,101 +723,24 @@
 <pre class="programlisting">const <a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> *
 gst_discoverer_stream_info_get_stream_id
                                (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstdiscoverer.html#GstDiscovererStreamInfo" title="GstDiscovererStreamInfo"><span class="type">GstDiscovererStreamInfo</span></a> *info</code></em>);</pre>
-<div class="refsect3">
-<a name="gst-discoverer-stream-info-get-stream-id.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>info</p></td>
-<td class="parameter_description"><p>a <a class="link" href="gst-plugins-base-libs-gstdiscoverer.html#GstDiscovererStreamInfo" title="GstDiscovererStreamInfo"><span class="type">GstDiscovererStreamInfo</span></a></p></td>
-<td class="parameter_annotations"> </td>
-</tr></tbody>
-</table></div>
-</div>
-<div class="refsect3">
-<a name="gst-discoverer-stream-info-get-stream-id.returns"></a><h4>Returns</h4>
-<p> the stream ID of this stream. If you wish to
-use the stream ID after the life-time of <em class="parameter"><code>info</code></em>
-you will need to copy it. </p>
-<p><span class="annotation">[<acronym title="Don't free data after the code is done."><span class="acronym">transfer none</span></acronym>]</span></p>
-</div>
 </div>
 <hr>
 <div class="refsect2">
 <a name="gst-discoverer-stream-info-ref"></a><h3>gst_discoverer_stream_info_ref()</h3>
 <pre class="programlisting">#define gst_discoverer_stream_info_ref(info) ((GstDiscovererStreamInfo*) g_object_ref((GObject*) info))
 </pre>
-<p>Increments the reference count of <em class="parameter"><code>info</code></em>
-.</p>
-<div class="refsect3">
-<a name="gst-discoverer-stream-info-ref.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>info</p></td>
-<td class="parameter_description"><p>a <a class="link" href="gst-plugins-base-libs-gstdiscoverer.html#GstDiscovererStreamInfo" title="GstDiscovererStreamInfo"><span class="type">GstDiscovererStreamInfo</span></a></p></td>
-<td class="parameter_annotations"> </td>
-</tr></tbody>
-</table></div>
-</div>
-<div class="refsect3">
-<a name="gst-discoverer-stream-info-ref.returns"></a><h4>Returns</h4>
-<p> the same <a class="link" href="gst-plugins-base-libs-gstdiscoverer.html#GstDiscovererStreamInfo" title="GstDiscovererStreamInfo"><span class="type">GstDiscovererStreamInfo</span></a> object</p>
-</div>
 </div>
 <hr>
 <div class="refsect2">
 <a name="gst-discoverer-stream-info-unref"></a><h3>gst_discoverer_stream_info_unref()</h3>
 <pre class="programlisting">#define gst_discoverer_stream_info_unref(info) (g_object_unref((GObject*) info))
 </pre>
-<p>Decrements the reference count of <em class="parameter"><code>info</code></em>
-.</p>
-<div class="refsect3">
-<a name="gst-discoverer-stream-info-unref.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>info</p></td>
-<td class="parameter_description"><p>a <a class="link" href="gst-plugins-base-libs-gstdiscoverer.html#GstDiscovererStreamInfo" title="GstDiscovererStreamInfo"><span class="type">GstDiscovererStreamInfo</span></a></p></td>
-<td class="parameter_annotations"> </td>
-</tr></tbody>
-</table></div>
-</div>
 </div>
 <hr>
 <div class="refsect2">
 <a name="gst-discoverer-stream-info-list-free"></a><h3>gst_discoverer_stream_info_list_free ()</h3>
 <pre class="programlisting"><span class="returnvalue">void</span>
 gst_discoverer_stream_info_list_free (<em class="parameter"><code><a href="/usr/share/gtk-doc/html/glibglib-Doubly-Linked-Lists.html#GList"><span class="type">GList</span></a> *infos</code></em>);</pre>
-<p>Decrements the reference count of all contained <a class="link" href="gst-plugins-base-libs-gstdiscoverer.html#GstDiscovererStreamInfo" title="GstDiscovererStreamInfo"><span class="type">GstDiscovererStreamInfo</span></a>
-and fress the <a href="/usr/share/gtk-doc/html/glibglib-Doubly-Linked-Lists.html#GList"><span class="type">GList</span></a>.</p>
-<div class="refsect3">
-<a name="gst-discoverer-stream-info-list-free.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>infos</p></td>
-<td class="parameter_description"><p> a <a href="/usr/share/gtk-doc/html/glibglib-Doubly-Linked-Lists.html#GList"><span class="type">GList</span></a> of <a class="link" href="gst-plugins-base-libs-gstdiscoverer.html#GstDiscovererStreamInfo" title="GstDiscovererStreamInfo"><span class="type">GstDiscovererStreamInfo</span></a>. </p></td>
-<td class="parameter_annotations"><span class="annotation">[<acronym title="Generics and defining elements of containers and arrays."><span class="acronym">element-type</span></acronym> GstPbutils.DiscovererStreamInfo]</span></td>
-</tr></tbody>
-</table></div>
-</div>
 </div>
 <hr>
 <div class="refsect2">
@@ -1409,27 +748,6 @@
 <pre class="programlisting">const <a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> *
 gst_discoverer_stream_info_get_stream_type_nick
                                (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstdiscoverer.html#GstDiscovererStreamInfo" title="GstDiscovererStreamInfo"><span class="type">GstDiscovererStreamInfo</span></a> *info</code></em>);</pre>
-<div class="refsect3">
-<a name="gst-discoverer-stream-info-get-stream-type-nick.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>info</p></td>
-<td class="parameter_description"><p>a <a class="link" href="gst-plugins-base-libs-gstdiscoverer.html#GstDiscovererStreamInfo" title="GstDiscovererStreamInfo"><span class="type">GstDiscovererStreamInfo</span></a></p></td>
-<td class="parameter_annotations"> </td>
-</tr></tbody>
-</table></div>
-</div>
-<div class="refsect3">
-<a name="gst-discoverer-stream-info-get-stream-type-nick.returns"></a><h4>Returns</h4>
-<p> a human readable name for the stream type of the given <em class="parameter"><code>info</code></em>
-(ex : "audio",
-"container",...).</p>
-</div>
 </div>
 <hr>
 <div class="refsect2">
@@ -1437,64 +755,12 @@
 <pre class="programlisting">const <a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> **
 gst_discoverer_info_get_missing_elements_installer_details
                                (<em class="parameter"><code>const <a class="link" href="gst-plugins-base-libs-gstdiscoverer.html#GstDiscovererInfo"><span class="type">GstDiscovererInfo</span></a> *info</code></em>);</pre>
-<p>Get the installer details for missing elements</p>
-<div class="refsect3">
-<a name="gst-discoverer-info-get-missing-elements-installer-details.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>info</p></td>
-<td class="parameter_description"><p>a <a class="link" href="gst-plugins-base-libs-gstdiscoverer.html#GstDiscovererStreamInfo" title="GstDiscovererStreamInfo"><span class="type">GstDiscovererStreamInfo</span></a> to retrieve installer detail
-for the missing element</p></td>
-<td class="parameter_annotations"> </td>
-</tr></tbody>
-</table></div>
-</div>
-<div class="refsect3">
-<a name="gst-discoverer-info-get-missing-elements-installer-details.returns"></a><h4>Returns</h4>
-<p> An array of strings
-containing informations about how to install the various missing elements
-for <em class="parameter"><code>info</code></em>
-to be usable. If you wish to use the strings after the life-time
-of <em class="parameter"><code>info</code></em>
-, you will need to copy them. </p>
-<p><span class="annotation">[<acronym title="Don't free data after the code is done."><span class="acronym">transfer none</span></acronym>][<acronym title="Parameter points to an array of items."><span class="acronym">array</span></acronym> zero-terminated=1]</span></p>
-</div>
-<p class="since">Since: 1.4</p>
 </div>
 <hr>
 <div class="refsect2">
 <a name="gst-discoverer-info-get-audio-streams"></a><h3>gst_discoverer_info_get_audio_streams ()</h3>
 <pre class="programlisting"><a href="/usr/share/gtk-doc/html/glibglib-Doubly-Linked-Lists.html#GList"><span class="returnvalue">GList</span></a> *
 gst_discoverer_info_get_audio_streams (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstdiscoverer.html#GstDiscovererInfo"><span class="type">GstDiscovererInfo</span></a> *info</code></em>);</pre>
-<p>Finds all the <a class="link" href="gst-plugins-base-libs-gstdiscoverer.html#GstDiscovererAudioInfo" title="GstDiscovererAudioInfo"><span class="type">GstDiscovererAudioInfo</span></a> contained in <em class="parameter"><code>info</code></em>
-</p>
-<div class="refsect3">
-<a name="gst-discoverer-info-get-audio-streams.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>info</p></td>
-<td class="parameter_description"><p>a <a class="link" href="gst-plugins-base-libs-gstdiscoverer.html#GstDiscovererInfo"><span class="type">GstDiscovererInfo</span></a></p></td>
-<td class="parameter_annotations"> </td>
-</tr></tbody>
-</table></div>
-</div>
-<div class="refsect3">
-<a name="gst-discoverer-info-get-audio-streams.returns"></a><h4>Returns</h4>
-<p> A <a href="/usr/share/gtk-doc/html/glibglib-Doubly-Linked-Lists.html#GList"><span class="type">GList</span></a> of
-matching <a class="link" href="gst-plugins-base-libs-gstdiscoverer.html#GstDiscovererStreamInfo" title="GstDiscovererStreamInfo"><span class="type">GstDiscovererStreamInfo</span></a>. The caller should free it with
-<a class="link" href="gst-plugins-base-libs-gstdiscoverer.html#gst-discoverer-stream-info-list-free" title="gst_discoverer_stream_info_list_free ()"><code class="function">gst_discoverer_stream_info_list_free()</code></a>. </p>
-<p><span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>][<acronym title="Generics and defining elements of containers and arrays."><span class="acronym">element-type</span></acronym> GstPbutils.DiscovererStreamInfo]</span></p>
-</div>
 </div>
 <hr>
 <div class="refsect2">
@@ -1502,30 +768,6 @@
 <pre class="programlisting"><a href="/usr/share/gtk-doc/html/glibglib-Doubly-Linked-Lists.html#GList"><span class="returnvalue">GList</span></a> *
 gst_discoverer_info_get_container_streams
                                (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstdiscoverer.html#GstDiscovererInfo"><span class="type">GstDiscovererInfo</span></a> *info</code></em>);</pre>
-<p>Finds all the <a class="link" href="gst-plugins-base-libs-gstdiscoverer.html#GstDiscovererContainerInfo" title="GstDiscovererContainerInfo"><span class="type">GstDiscovererContainerInfo</span></a> contained in <em class="parameter"><code>info</code></em>
-</p>
-<div class="refsect3">
-<a name="gst-discoverer-info-get-container-streams.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>info</p></td>
-<td class="parameter_description"><p>a <a class="link" href="gst-plugins-base-libs-gstdiscoverer.html#GstDiscovererInfo"><span class="type">GstDiscovererInfo</span></a></p></td>
-<td class="parameter_annotations"> </td>
-</tr></tbody>
-</table></div>
-</div>
-<div class="refsect3">
-<a name="gst-discoverer-info-get-container-streams.returns"></a><h4>Returns</h4>
-<p> A <a href="/usr/share/gtk-doc/html/glibglib-Doubly-Linked-Lists.html#GList"><span class="type">GList</span></a> of
-matching <a class="link" href="gst-plugins-base-libs-gstdiscoverer.html#GstDiscovererStreamInfo" title="GstDiscovererStreamInfo"><span class="type">GstDiscovererStreamInfo</span></a>. The caller should free it with
-<a class="link" href="gst-plugins-base-libs-gstdiscoverer.html#gst-discoverer-stream-info-list-free" title="gst_discoverer_stream_info_list_free ()"><code class="function">gst_discoverer_stream_info_list_free()</code></a>. </p>
-<p><span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>][<acronym title="Generics and defining elements of containers and arrays."><span class="acronym">element-type</span></acronym> GstPbutils.DiscovererStreamInfo]</span></p>
-</div>
 </div>
 <hr>
 <div class="refsect2">
@@ -1533,39 +775,6 @@
 <pre class="programlisting"><a href="/usr/share/gtk-doc/html/glibglib-Doubly-Linked-Lists.html#GList"><span class="returnvalue">GList</span></a> *
 gst_discoverer_info_get_streams (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstdiscoverer.html#GstDiscovererInfo"><span class="type">GstDiscovererInfo</span></a> *info</code></em>,
                                  <em class="parameter"><code><a href="/usr/share/gtk-doc/html/gobjectgobject-Type-Information.html#GType"><span class="type">GType</span></a> streamtype</code></em>);</pre>
-<p>Finds the <a class="link" href="gst-plugins-base-libs-gstdiscoverer.html#GstDiscovererStreamInfo" title="GstDiscovererStreamInfo"><span class="type">GstDiscovererStreamInfo</span></a> contained in <em class="parameter"><code>info</code></em>
- that match the
-given <em class="parameter"><code>streamtype</code></em>
-.</p>
-<div class="refsect3">
-<a name="gst-discoverer-info-get-streams.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>info</p></td>
-<td class="parameter_description"><p>a <a class="link" href="gst-plugins-base-libs-gstdiscoverer.html#GstDiscovererInfo"><span class="type">GstDiscovererInfo</span></a></p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-<tr>
-<td class="parameter_name"><p>streamtype</p></td>
-<td class="parameter_description"><p>a <a href="/usr/share/gtk-doc/html/gobjectgobject-Type-Information.html#GType"><span class="type">GType</span></a> derived from <a class="link" href="gst-plugins-base-libs-gstdiscoverer.html#GstDiscovererStreamInfo" title="GstDiscovererStreamInfo"><span class="type">GstDiscovererStreamInfo</span></a></p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-</tbody>
-</table></div>
-</div>
-<div class="refsect3">
-<a name="gst-discoverer-info-get-streams.returns"></a><h4>Returns</h4>
-<p> A <a href="/usr/share/gtk-doc/html/glibglib-Doubly-Linked-Lists.html#GList"><span class="type">GList</span></a> of
-matching <a class="link" href="gst-plugins-base-libs-gstdiscoverer.html#GstDiscovererStreamInfo" title="GstDiscovererStreamInfo"><span class="type">GstDiscovererStreamInfo</span></a>. The caller should free it with
-<a class="link" href="gst-plugins-base-libs-gstdiscoverer.html#gst-discoverer-stream-info-list-free" title="gst_discoverer_stream_info_list_free ()"><code class="function">gst_discoverer_stream_info_list_free()</code></a>. </p>
-<p><span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>][<acronym title="Generics and defining elements of containers and arrays."><span class="acronym">element-type</span></acronym> GstPbutils.DiscovererStreamInfo]</span></p>
-</div>
 </div>
 <hr>
 <div class="refsect2">
@@ -1573,85 +782,18 @@
 <pre class="programlisting"><a href="/usr/share/gtk-doc/html/glibglib-Doubly-Linked-Lists.html#GList"><span class="returnvalue">GList</span></a> *
 gst_discoverer_info_get_subtitle_streams
                                (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstdiscoverer.html#GstDiscovererInfo"><span class="type">GstDiscovererInfo</span></a> *info</code></em>);</pre>
-<p>Finds all the <a class="link" href="gst-plugins-base-libs-gstdiscoverer.html#GstDiscovererSubtitleInfo" title="GstDiscovererSubtitleInfo"><span class="type">GstDiscovererSubtitleInfo</span></a> contained in <em class="parameter"><code>info</code></em>
-</p>
-<div class="refsect3">
-<a name="gst-discoverer-info-get-subtitle-streams.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>info</p></td>
-<td class="parameter_description"><p>a <a class="link" href="gst-plugins-base-libs-gstdiscoverer.html#GstDiscovererInfo"><span class="type">GstDiscovererInfo</span></a></p></td>
-<td class="parameter_annotations"> </td>
-</tr></tbody>
-</table></div>
-</div>
-<div class="refsect3">
-<a name="gst-discoverer-info-get-subtitle-streams.returns"></a><h4>Returns</h4>
-<p> A <a href="/usr/share/gtk-doc/html/glibglib-Doubly-Linked-Lists.html#GList"><span class="type">GList</span></a> of
-matching <a class="link" href="gst-plugins-base-libs-gstdiscoverer.html#GstDiscovererStreamInfo" title="GstDiscovererStreamInfo"><span class="type">GstDiscovererStreamInfo</span></a>. The caller should free it with
-<a class="link" href="gst-plugins-base-libs-gstdiscoverer.html#gst-discoverer-stream-info-list-free" title="gst_discoverer_stream_info_list_free ()"><code class="function">gst_discoverer_stream_info_list_free()</code></a>. </p>
-<p><span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>][<acronym title="Generics and defining elements of containers and arrays."><span class="acronym">element-type</span></acronym> GstPbutils.DiscovererStreamInfo]</span></p>
-</div>
 </div>
 <hr>
 <div class="refsect2">
 <a name="gst-discoverer-info-get-video-streams"></a><h3>gst_discoverer_info_get_video_streams ()</h3>
 <pre class="programlisting"><a href="/usr/share/gtk-doc/html/glibglib-Doubly-Linked-Lists.html#GList"><span class="returnvalue">GList</span></a> *
 gst_discoverer_info_get_video_streams (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstdiscoverer.html#GstDiscovererInfo"><span class="type">GstDiscovererInfo</span></a> *info</code></em>);</pre>
-<p>Finds all the <a class="link" href="gst-plugins-base-libs-gstdiscoverer.html#GstDiscovererVideoInfo" title="GstDiscovererVideoInfo"><span class="type">GstDiscovererVideoInfo</span></a> contained in <em class="parameter"><code>info</code></em>
-</p>
-<div class="refsect3">
-<a name="gst-discoverer-info-get-video-streams.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>info</p></td>
-<td class="parameter_description"><p>a <a class="link" href="gst-plugins-base-libs-gstdiscoverer.html#GstDiscovererInfo"><span class="type">GstDiscovererInfo</span></a></p></td>
-<td class="parameter_annotations"> </td>
-</tr></tbody>
-</table></div>
-</div>
-<div class="refsect3">
-<a name="gst-discoverer-info-get-video-streams.returns"></a><h4>Returns</h4>
-<p> A <a href="/usr/share/gtk-doc/html/glibglib-Doubly-Linked-Lists.html#GList"><span class="type">GList</span></a> of
-matching <a class="link" href="gst-plugins-base-libs-gstdiscoverer.html#GstDiscovererStreamInfo" title="GstDiscovererStreamInfo"><span class="type">GstDiscovererStreamInfo</span></a>. The caller should free it with
-<a class="link" href="gst-plugins-base-libs-gstdiscoverer.html#gst-discoverer-stream-info-list-free" title="gst_discoverer_stream_info_list_free ()"><code class="function">gst_discoverer_stream_info_list_free()</code></a>. </p>
-<p><span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>][<acronym title="Generics and defining elements of containers and arrays."><span class="acronym">element-type</span></acronym> GstPbutils.DiscovererStreamInfo]</span></p>
-</div>
 </div>
 <hr>
 <div class="refsect2">
 <a name="gst-discoverer-audio-info-get-bitrate"></a><h3>gst_discoverer_audio_info_get_bitrate ()</h3>
 <pre class="programlisting"><a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#guint"><span class="returnvalue">guint</span></a>
 gst_discoverer_audio_info_get_bitrate (<em class="parameter"><code>const <a class="link" href="gst-plugins-base-libs-gstdiscoverer.html#GstDiscovererAudioInfo" title="GstDiscovererAudioInfo"><span class="type">GstDiscovererAudioInfo</span></a> *info</code></em>);</pre>
-<div class="refsect3">
-<a name="gst-discoverer-audio-info-get-bitrate.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>info</p></td>
-<td class="parameter_description"><p>a <a class="link" href="gst-plugins-base-libs-gstdiscoverer.html#GstDiscovererAudioInfo" title="GstDiscovererAudioInfo"><span class="type">GstDiscovererAudioInfo</span></a></p></td>
-<td class="parameter_annotations"> </td>
-</tr></tbody>
-</table></div>
-</div>
-<div class="refsect3">
-<a name="gst-discoverer-audio-info-get-bitrate.returns"></a><h4>Returns</h4>
-<p> the average or nominal bitrate of the stream in bits/second.</p>
-</div>
 </div>
 <hr>
 <div class="refsect2">
@@ -1659,50 +801,12 @@
 <pre class="programlisting"><a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#guint"><span class="returnvalue">guint</span></a>
 gst_discoverer_audio_info_get_channels
                                (<em class="parameter"><code>const <a class="link" href="gst-plugins-base-libs-gstdiscoverer.html#GstDiscovererAudioInfo" title="GstDiscovererAudioInfo"><span class="type">GstDiscovererAudioInfo</span></a> *info</code></em>);</pre>
-<div class="refsect3">
-<a name="gst-discoverer-audio-info-get-channels.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>info</p></td>
-<td class="parameter_description"><p>a <a class="link" href="gst-plugins-base-libs-gstdiscoverer.html#GstDiscovererAudioInfo" title="GstDiscovererAudioInfo"><span class="type">GstDiscovererAudioInfo</span></a></p></td>
-<td class="parameter_annotations"> </td>
-</tr></tbody>
-</table></div>
-</div>
-<div class="refsect3">
-<a name="gst-discoverer-audio-info-get-channels.returns"></a><h4>Returns</h4>
-<p> the number of channels in the stream.</p>
-</div>
 </div>
 <hr>
 <div class="refsect2">
 <a name="gst-discoverer-audio-info-get-depth"></a><h3>gst_discoverer_audio_info_get_depth ()</h3>
 <pre class="programlisting"><a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#guint"><span class="returnvalue">guint</span></a>
 gst_discoverer_audio_info_get_depth (<em class="parameter"><code>const <a class="link" href="gst-plugins-base-libs-gstdiscoverer.html#GstDiscovererAudioInfo" title="GstDiscovererAudioInfo"><span class="type">GstDiscovererAudioInfo</span></a> *info</code></em>);</pre>
-<div class="refsect3">
-<a name="gst-discoverer-audio-info-get-depth.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>info</p></td>
-<td class="parameter_description"><p>a <a class="link" href="gst-plugins-base-libs-gstdiscoverer.html#GstDiscovererAudioInfo" title="GstDiscovererAudioInfo"><span class="type">GstDiscovererAudioInfo</span></a></p></td>
-<td class="parameter_annotations"> </td>
-</tr></tbody>
-</table></div>
-</div>
-<div class="refsect3">
-<a name="gst-discoverer-audio-info-get-depth.returns"></a><h4>Returns</h4>
-<p> the number of bits used per sample in each channel.</p>
-</div>
 </div>
 <hr>
 <div class="refsect2">
@@ -1710,25 +814,6 @@
 <pre class="programlisting">const <a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> *
 gst_discoverer_audio_info_get_language
                                (<em class="parameter"><code>const <a class="link" href="gst-plugins-base-libs-gstdiscoverer.html#GstDiscovererAudioInfo" title="GstDiscovererAudioInfo"><span class="type">GstDiscovererAudioInfo</span></a> *info</code></em>);</pre>
-<div class="refsect3">
-<a name="gst-discoverer-audio-info-get-language.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>info</p></td>
-<td class="parameter_description"><p>a <a class="link" href="gst-plugins-base-libs-gstdiscoverer.html#GstDiscovererAudioInfo" title="GstDiscovererAudioInfo"><span class="type">GstDiscovererAudioInfo</span></a></p></td>
-<td class="parameter_annotations"> </td>
-</tr></tbody>
-</table></div>
-</div>
-<div class="refsect3">
-<a name="gst-discoverer-audio-info-get-language.returns"></a><h4>Returns</h4>
-<p> the language of the stream, or NULL if unknown.</p>
-</div>
 </div>
 <hr>
 <div class="refsect2">
@@ -1736,25 +821,6 @@
 <pre class="programlisting"><a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#guint"><span class="returnvalue">guint</span></a>
 gst_discoverer_audio_info_get_max_bitrate
                                (<em class="parameter"><code>const <a class="link" href="gst-plugins-base-libs-gstdiscoverer.html#GstDiscovererAudioInfo" title="GstDiscovererAudioInfo"><span class="type">GstDiscovererAudioInfo</span></a> *info</code></em>);</pre>
-<div class="refsect3">
-<a name="gst-discoverer-audio-info-get-max-bitrate.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>info</p></td>
-<td class="parameter_description"><p>a <a class="link" href="gst-plugins-base-libs-gstdiscoverer.html#GstDiscovererAudioInfo" title="GstDiscovererAudioInfo"><span class="type">GstDiscovererAudioInfo</span></a></p></td>
-<td class="parameter_annotations"> </td>
-</tr></tbody>
-</table></div>
-</div>
-<div class="refsect3">
-<a name="gst-discoverer-audio-info-get-max-bitrate.returns"></a><h4>Returns</h4>
-<p> the maximum bitrate of the stream in bits/second.</p>
-</div>
 </div>
 <hr>
 <div class="refsect2">
@@ -1762,25 +828,6 @@
 <pre class="programlisting"><a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#guint"><span class="returnvalue">guint</span></a>
 gst_discoverer_audio_info_get_sample_rate
                                (<em class="parameter"><code>const <a class="link" href="gst-plugins-base-libs-gstdiscoverer.html#GstDiscovererAudioInfo" title="GstDiscovererAudioInfo"><span class="type">GstDiscovererAudioInfo</span></a> *info</code></em>);</pre>
-<div class="refsect3">
-<a name="gst-discoverer-audio-info-get-sample-rate.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>info</p></td>
-<td class="parameter_description"><p>a <a class="link" href="gst-plugins-base-libs-gstdiscoverer.html#GstDiscovererAudioInfo" title="GstDiscovererAudioInfo"><span class="type">GstDiscovererAudioInfo</span></a></p></td>
-<td class="parameter_annotations"> </td>
-</tr></tbody>
-</table></div>
-</div>
-<div class="refsect3">
-<a name="gst-discoverer-audio-info-get-sample-rate.returns"></a><h4>Returns</h4>
-<p> the sample rate of the stream in Hertz.</p>
-</div>
 </div>
 <hr>
 <div class="refsect2">
@@ -1788,28 +835,6 @@
 <pre class="programlisting"><a href="/usr/share/gtk-doc/html/glibglib-Doubly-Linked-Lists.html#GList"><span class="returnvalue">GList</span></a> *
 gst_discoverer_container_info_get_streams
                                (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstdiscoverer.html#GstDiscovererContainerInfo" title="GstDiscovererContainerInfo"><span class="type">GstDiscovererContainerInfo</span></a> *info</code></em>);</pre>
-<div class="refsect3">
-<a name="gst-discoverer-container-info-get-streams.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>info</p></td>
-<td class="parameter_description"><p>a <a class="link" href="gst-plugins-base-libs-gstdiscoverer.html#GstDiscovererStreamInfo" title="GstDiscovererStreamInfo"><span class="type">GstDiscovererStreamInfo</span></a></p></td>
-<td class="parameter_annotations"> </td>
-</tr></tbody>
-</table></div>
-</div>
-<div class="refsect3">
-<a name="gst-discoverer-container-info-get-streams.returns"></a><h4>Returns</h4>
-<p> the list of
-<a class="link" href="gst-plugins-base-libs-gstdiscoverer.html#GstDiscovererStreamInfo" title="GstDiscovererStreamInfo"><span class="type">GstDiscovererStreamInfo</span></a> this container stream offers.
-Free with <a class="link" href="gst-plugins-base-libs-gstdiscoverer.html#gst-discoverer-stream-info-list-free" title="gst_discoverer_stream_info_list_free ()"><code class="function">gst_discoverer_stream_info_list_free()</code></a> after usage. </p>
-<p><span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>][<acronym title="Generics and defining elements of containers and arrays."><span class="acronym">element-type</span></acronym> GstPbutils.DiscovererStreamInfo]</span></p>
-</div>
 </div>
 <hr>
 <div class="refsect2">
@@ -1817,75 +842,18 @@
 <pre class="programlisting">const <a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> *
 gst_discoverer_subtitle_info_get_language
                                (<em class="parameter"><code>const <a class="link" href="gst-plugins-base-libs-gstdiscoverer.html#GstDiscovererSubtitleInfo" title="GstDiscovererSubtitleInfo"><span class="type">GstDiscovererSubtitleInfo</span></a> *info</code></em>);</pre>
-<div class="refsect3">
-<a name="gst-discoverer-subtitle-info-get-language.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>info</p></td>
-<td class="parameter_description"><p>a <a class="link" href="gst-plugins-base-libs-gstdiscoverer.html#GstDiscovererSubtitleInfo" title="GstDiscovererSubtitleInfo"><span class="type">GstDiscovererSubtitleInfo</span></a></p></td>
-<td class="parameter_annotations"> </td>
-</tr></tbody>
-</table></div>
-</div>
-<div class="refsect3">
-<a name="gst-discoverer-subtitle-info-get-language.returns"></a><h4>Returns</h4>
-<p> the language of the stream, or NULL if unknown.</p>
-</div>
 </div>
 <hr>
 <div class="refsect2">
 <a name="gst-discoverer-video-info-get-bitrate"></a><h3>gst_discoverer_video_info_get_bitrate ()</h3>
 <pre class="programlisting"><a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#guint"><span class="returnvalue">guint</span></a>
 gst_discoverer_video_info_get_bitrate (<em class="parameter"><code>const <a class="link" href="gst-plugins-base-libs-gstdiscoverer.html#GstDiscovererVideoInfo" title="GstDiscovererVideoInfo"><span class="type">GstDiscovererVideoInfo</span></a> *info</code></em>);</pre>
-<div class="refsect3">
-<a name="gst-discoverer-video-info-get-bitrate.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>info</p></td>
-<td class="parameter_description"><p>a <a class="link" href="gst-plugins-base-libs-gstdiscoverer.html#GstDiscovererVideoInfo" title="GstDiscovererVideoInfo"><span class="type">GstDiscovererVideoInfo</span></a></p></td>
-<td class="parameter_annotations"> </td>
-</tr></tbody>
-</table></div>
-</div>
-<div class="refsect3">
-<a name="gst-discoverer-video-info-get-bitrate.returns"></a><h4>Returns</h4>
-<p> the average or nominal bitrate of the video stream in bits/second.</p>
-</div>
 </div>
 <hr>
 <div class="refsect2">
 <a name="gst-discoverer-video-info-get-depth"></a><h3>gst_discoverer_video_info_get_depth ()</h3>
 <pre class="programlisting"><a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#guint"><span class="returnvalue">guint</span></a>
 gst_discoverer_video_info_get_depth (<em class="parameter"><code>const <a class="link" href="gst-plugins-base-libs-gstdiscoverer.html#GstDiscovererVideoInfo" title="GstDiscovererVideoInfo"><span class="type">GstDiscovererVideoInfo</span></a> *info</code></em>);</pre>
-<div class="refsect3">
-<a name="gst-discoverer-video-info-get-depth.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>info</p></td>
-<td class="parameter_description"><p>a <a class="link" href="gst-plugins-base-libs-gstdiscoverer.html#GstDiscovererVideoInfo" title="GstDiscovererVideoInfo"><span class="type">GstDiscovererVideoInfo</span></a></p></td>
-<td class="parameter_annotations"> </td>
-</tr></tbody>
-</table></div>
-</div>
-<div class="refsect3">
-<a name="gst-discoverer-video-info-get-depth.returns"></a><h4>Returns</h4>
-<p> the depth in bits of the video stream.</p>
-</div>
 </div>
 <hr>
 <div class="refsect2">
@@ -1893,25 +861,6 @@
 <pre class="programlisting"><a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#guint"><span class="returnvalue">guint</span></a>
 gst_discoverer_video_info_get_framerate_denom
                                (<em class="parameter"><code>const <a class="link" href="gst-plugins-base-libs-gstdiscoverer.html#GstDiscovererVideoInfo" title="GstDiscovererVideoInfo"><span class="type">GstDiscovererVideoInfo</span></a> *info</code></em>);</pre>
-<div class="refsect3">
-<a name="gst-discoverer-video-info-get-framerate-denom.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>info</p></td>
-<td class="parameter_description"><p>a <a class="link" href="gst-plugins-base-libs-gstdiscoverer.html#GstDiscovererVideoInfo" title="GstDiscovererVideoInfo"><span class="type">GstDiscovererVideoInfo</span></a></p></td>
-<td class="parameter_annotations"> </td>
-</tr></tbody>
-</table></div>
-</div>
-<div class="refsect3">
-<a name="gst-discoverer-video-info-get-framerate-denom.returns"></a><h4>Returns</h4>
-<p> the framerate of the video stream (denominator).</p>
-</div>
 </div>
 <hr>
 <div class="refsect2">
@@ -1919,50 +868,12 @@
 <pre class="programlisting"><a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#guint"><span class="returnvalue">guint</span></a>
 gst_discoverer_video_info_get_framerate_num
                                (<em class="parameter"><code>const <a class="link" href="gst-plugins-base-libs-gstdiscoverer.html#GstDiscovererVideoInfo" title="GstDiscovererVideoInfo"><span class="type">GstDiscovererVideoInfo</span></a> *info</code></em>);</pre>
-<div class="refsect3">
-<a name="gst-discoverer-video-info-get-framerate-num.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>info</p></td>
-<td class="parameter_description"><p>a <a class="link" href="gst-plugins-base-libs-gstdiscoverer.html#GstDiscovererVideoInfo" title="GstDiscovererVideoInfo"><span class="type">GstDiscovererVideoInfo</span></a></p></td>
-<td class="parameter_annotations"> </td>
-</tr></tbody>
-</table></div>
-</div>
-<div class="refsect3">
-<a name="gst-discoverer-video-info-get-framerate-num.returns"></a><h4>Returns</h4>
-<p> the framerate of the video stream (numerator).</p>
-</div>
 </div>
 <hr>
 <div class="refsect2">
 <a name="gst-discoverer-video-info-get-height"></a><h3>gst_discoverer_video_info_get_height ()</h3>
 <pre class="programlisting"><a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#guint"><span class="returnvalue">guint</span></a>
 gst_discoverer_video_info_get_height (<em class="parameter"><code>const <a class="link" href="gst-plugins-base-libs-gstdiscoverer.html#GstDiscovererVideoInfo" title="GstDiscovererVideoInfo"><span class="type">GstDiscovererVideoInfo</span></a> *info</code></em>);</pre>
-<div class="refsect3">
-<a name="gst-discoverer-video-info-get-height.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>info</p></td>
-<td class="parameter_description"><p>a <a class="link" href="gst-plugins-base-libs-gstdiscoverer.html#GstDiscovererVideoInfo" title="GstDiscovererVideoInfo"><span class="type">GstDiscovererVideoInfo</span></a></p></td>
-<td class="parameter_annotations"> </td>
-</tr></tbody>
-</table></div>
-</div>
-<div class="refsect3">
-<a name="gst-discoverer-video-info-get-height.returns"></a><h4>Returns</h4>
-<p> the height of the video stream in pixels.</p>
-</div>
 </div>
 <hr>
 <div class="refsect2">
@@ -1970,51 +881,12 @@
 <pre class="programlisting"><a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
 gst_discoverer_video_info_is_interlaced
                                (<em class="parameter"><code>const <a class="link" href="gst-plugins-base-libs-gstdiscoverer.html#GstDiscovererVideoInfo" title="GstDiscovererVideoInfo"><span class="type">GstDiscovererVideoInfo</span></a> *info</code></em>);</pre>
-<div class="refsect3">
-<a name="gst-discoverer-video-info-is-interlaced.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>info</p></td>
-<td class="parameter_description"><p>a <a class="link" href="gst-plugins-base-libs-gstdiscoverer.html#GstDiscovererVideoInfo" title="GstDiscovererVideoInfo"><span class="type">GstDiscovererVideoInfo</span></a></p></td>
-<td class="parameter_annotations"> </td>
-</tr></tbody>
-</table></div>
-</div>
-<div class="refsect3">
-<a name="gst-discoverer-video-info-is-interlaced.returns"></a><h4>Returns</h4>
-<p> <a href="/usr/share/gtk-doc/html/glibglib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a> if the stream is interlaced, else <a href="/usr/share/gtk-doc/html/glibglib-Standard-Macros.html#FALSE:CAPS"><code class="literal">FALSE</code></a>.</p>
-</div>
 </div>
 <hr>
 <div class="refsect2">
 <a name="gst-discoverer-video-info-is-image"></a><h3>gst_discoverer_video_info_is_image ()</h3>
 <pre class="programlisting"><a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
 gst_discoverer_video_info_is_image (<em class="parameter"><code>const <a class="link" href="gst-plugins-base-libs-gstdiscoverer.html#GstDiscovererVideoInfo" title="GstDiscovererVideoInfo"><span class="type">GstDiscovererVideoInfo</span></a> *info</code></em>);</pre>
-<div class="refsect3">
-<a name="gst-discoverer-video-info-is-image.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>info</p></td>
-<td class="parameter_description"><p>a <a class="link" href="gst-plugins-base-libs-gstdiscoverer.html#GstDiscovererVideoInfo" title="GstDiscovererVideoInfo"><span class="type">GstDiscovererVideoInfo</span></a></p></td>
-<td class="parameter_annotations"> </td>
-</tr></tbody>
-</table></div>
-</div>
-<div class="refsect3">
-<a name="gst-discoverer-video-info-is-image.returns"></a><h4>Returns</h4>
-<p> <a href="/usr/share/gtk-doc/html/glibglib-Standard-Macros.html#TRUE:CAPS"><span class="type">TRUE</span></a> if the video stream corresponds to an image (i.e. only contains
-one frame).</p>
-</div>
 </div>
 <hr>
 <div class="refsect2">
@@ -2022,25 +894,6 @@
 <pre class="programlisting"><a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#guint"><span class="returnvalue">guint</span></a>
 gst_discoverer_video_info_get_max_bitrate
                                (<em class="parameter"><code>const <a class="link" href="gst-plugins-base-libs-gstdiscoverer.html#GstDiscovererVideoInfo" title="GstDiscovererVideoInfo"><span class="type">GstDiscovererVideoInfo</span></a> *info</code></em>);</pre>
-<div class="refsect3">
-<a name="gst-discoverer-video-info-get-max-bitrate.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>info</p></td>
-<td class="parameter_description"><p>a <a class="link" href="gst-plugins-base-libs-gstdiscoverer.html#GstDiscovererVideoInfo" title="GstDiscovererVideoInfo"><span class="type">GstDiscovererVideoInfo</span></a></p></td>
-<td class="parameter_annotations"> </td>
-</tr></tbody>
-</table></div>
-</div>
-<div class="refsect3">
-<a name="gst-discoverer-video-info-get-max-bitrate.returns"></a><h4>Returns</h4>
-<p> the maximum bitrate of the video stream in bits/second.</p>
-</div>
 </div>
 <hr>
 <div class="refsect2">
@@ -2048,75 +901,18 @@
 <pre class="programlisting"><a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#guint"><span class="returnvalue">guint</span></a>
 gst_discoverer_video_info_get_par_denom
                                (<em class="parameter"><code>const <a class="link" href="gst-plugins-base-libs-gstdiscoverer.html#GstDiscovererVideoInfo" title="GstDiscovererVideoInfo"><span class="type">GstDiscovererVideoInfo</span></a> *info</code></em>);</pre>
-<div class="refsect3">
-<a name="gst-discoverer-video-info-get-par-denom.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>info</p></td>
-<td class="parameter_description"><p>a <a class="link" href="gst-plugins-base-libs-gstdiscoverer.html#GstDiscovererVideoInfo" title="GstDiscovererVideoInfo"><span class="type">GstDiscovererVideoInfo</span></a></p></td>
-<td class="parameter_annotations"> </td>
-</tr></tbody>
-</table></div>
-</div>
-<div class="refsect3">
-<a name="gst-discoverer-video-info-get-par-denom.returns"></a><h4>Returns</h4>
-<p> the Pixel Aspect Ratio (PAR) of the video stream (denominator).</p>
-</div>
 </div>
 <hr>
 <div class="refsect2">
 <a name="gst-discoverer-video-info-get-par-num"></a><h3>gst_discoverer_video_info_get_par_num ()</h3>
 <pre class="programlisting"><a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#guint"><span class="returnvalue">guint</span></a>
 gst_discoverer_video_info_get_par_num (<em class="parameter"><code>const <a class="link" href="gst-plugins-base-libs-gstdiscoverer.html#GstDiscovererVideoInfo" title="GstDiscovererVideoInfo"><span class="type">GstDiscovererVideoInfo</span></a> *info</code></em>);</pre>
-<div class="refsect3">
-<a name="gst-discoverer-video-info-get-par-num.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>info</p></td>
-<td class="parameter_description"><p>a <a class="link" href="gst-plugins-base-libs-gstdiscoverer.html#GstDiscovererVideoInfo" title="GstDiscovererVideoInfo"><span class="type">GstDiscovererVideoInfo</span></a></p></td>
-<td class="parameter_annotations"> </td>
-</tr></tbody>
-</table></div>
-</div>
-<div class="refsect3">
-<a name="gst-discoverer-video-info-get-par-num.returns"></a><h4>Returns</h4>
-<p> the Pixel Aspect Ratio (PAR) of the video stream (numerator).</p>
-</div>
 </div>
 <hr>
 <div class="refsect2">
 <a name="gst-discoverer-video-info-get-width"></a><h3>gst_discoverer_video_info_get_width ()</h3>
 <pre class="programlisting"><a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#guint"><span class="returnvalue">guint</span></a>
 gst_discoverer_video_info_get_width (<em class="parameter"><code>const <a class="link" href="gst-plugins-base-libs-gstdiscoverer.html#GstDiscovererVideoInfo" title="GstDiscovererVideoInfo"><span class="type">GstDiscovererVideoInfo</span></a> *info</code></em>);</pre>
-<div class="refsect3">
-<a name="gst-discoverer-video-info-get-width.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>info</p></td>
-<td class="parameter_description"><p>a <a class="link" href="gst-plugins-base-libs-gstdiscoverer.html#GstDiscovererVideoInfo" title="GstDiscovererVideoInfo"><span class="type">GstDiscovererVideoInfo</span></a></p></td>
-<td class="parameter_annotations"> </td>
-</tr></tbody>
-</table></div>
-</div>
-<div class="refsect3">
-<a name="gst-discoverer-video-info-get-width.returns"></a><h4>Returns</h4>
-<p> the width of the video stream in pixels.</p>
-</div>
 </div>
 </div>
 <div class="refsect1">
@@ -2124,18 +920,15 @@
 <div class="refsect2">
 <a name="GstDiscoverer-struct"></a><h3>struct GstDiscoverer</h3>
 <pre class="programlisting">struct GstDiscoverer;</pre>
-<p>The <a class="link" href="gst-plugins-base-libs-gstdiscoverer.html#GstDiscoverer"><span class="type">GstDiscoverer</span></a> structure.</p>
 </div>
 <hr>
 <div class="refsect2">
 <a name="GstDiscovererInfo-struct"></a><h3>GstDiscovererInfo</h3>
 <pre class="programlisting">typedef struct _GstDiscovererInfo GstDiscovererInfo;</pre>
-<p>Structure containing the information of a URI analyzed by <a class="link" href="gst-plugins-base-libs-gstdiscoverer.html#GstDiscoverer"><span class="type">GstDiscoverer</span></a>.</p>
 </div>
 <hr>
 <div class="refsect2">
 <a name="GstDiscovererResult"></a><h3>enum GstDiscovererResult</h3>
-<p>Result values for the discovery process.</p>
 <div class="refsect3">
 <a name="GstDiscovererResult.members"></a><h4>Members</h4>
 <div class="informaltable"><table class="informaltable" width="100%" border="0">
@@ -2147,45 +940,33 @@
 <tbody>
 <tr>
 <td class="enum_member_name"><p><a name="GST-DISCOVERER-OK:CAPS"></a>GST_DISCOVERER_OK</p></td>
-<td class="enum_member_description">
-<p>The discovery was successful</p>
-</td>
-<td class="enum_member_annotations"> </td>
+<td> </td>
+<td> </td>
 </tr>
 <tr>
 <td class="enum_member_name"><p><a name="GST-DISCOVERER-URI-INVALID:CAPS"></a>GST_DISCOVERER_URI_INVALID</p></td>
-<td class="enum_member_description">
-<p>the URI is invalid</p>
-</td>
-<td class="enum_member_annotations"> </td>
+<td> </td>
+<td> </td>
 </tr>
 <tr>
 <td class="enum_member_name"><p><a name="GST-DISCOVERER-ERROR:CAPS"></a>GST_DISCOVERER_ERROR</p></td>
-<td class="enum_member_description">
-<p>an error happened and the GError is set</p>
-</td>
-<td class="enum_member_annotations"> </td>
+<td> </td>
+<td> </td>
 </tr>
 <tr>
 <td class="enum_member_name"><p><a name="GST-DISCOVERER-TIMEOUT:CAPS"></a>GST_DISCOVERER_TIMEOUT</p></td>
-<td class="enum_member_description">
-<p>the discovery timed-out</p>
-</td>
-<td class="enum_member_annotations"> </td>
+<td> </td>
+<td> </td>
 </tr>
 <tr>
 <td class="enum_member_name"><p><a name="GST-DISCOVERER-BUSY:CAPS"></a>GST_DISCOVERER_BUSY</p></td>
-<td class="enum_member_description">
-<p>the discoverer was already discovering a file</p>
-</td>
-<td class="enum_member_annotations"> </td>
+<td> </td>
+<td> </td>
 </tr>
 <tr>
 <td class="enum_member_name"><p><a name="GST-DISCOVERER-MISSING-PLUGINS:CAPS"></a>GST_DISCOVERER_MISSING_PLUGINS</p></td>
-<td class="enum_member_description">
-<p>Some plugins are missing for full discovery</p>
-</td>
-<td class="enum_member_annotations"> </td>
+<td> </td>
+<td> </td>
 </tr>
 </tbody>
 </table></div>
@@ -2194,8 +975,6 @@
 <hr>
 <div class="refsect2">
 <a name="GstDiscovererSerializeFlags"></a><h3>enum GstDiscovererSerializeFlags</h3>
-<p>You can use these flags to control what is serialized by
-<a class="link" href="gst-plugins-base-libs-gstdiscoverer.html#gst-discoverer-info-to-variant" title="gst_discoverer_info_to_variant ()"><code class="function">gst_discoverer_info_to_variant()</code></a></p>
 <div class="refsect3">
 <a name="GstDiscovererSerializeFlags.members"></a><h4>Members</h4>
 <div class="informaltable"><table class="informaltable" width="100%" border="0">
@@ -2207,88 +986,57 @@
 <tbody>
 <tr>
 <td class="enum_member_name"><p><a name="GST-DISCOVERER-SERIALIZE-BASIC:CAPS"></a>GST_DISCOVERER_SERIALIZE_BASIC</p></td>
-<td class="enum_member_description">
-<p>Serialize only basic information, excluding
-caps, tags and miscellaneous information</p>
-</td>
-<td class="enum_member_annotations"> </td>
+<td> </td>
+<td> </td>
 </tr>
 <tr>
 <td class="enum_member_name"><p><a name="GST-DISCOVERER-SERIALIZE-CAPS"></a>GST_DISCOVERER_SERIALIZE_CAPS</p></td>
-<td class="enum_member_description">
-<p>Serialize the caps for each stream</p>
-</td>
-<td class="enum_member_annotations"> </td>
+<td> </td>
+<td> </td>
 </tr>
 <tr>
 <td class="enum_member_name"><p><a name="GST-DISCOVERER-SERIALIZE-TAGS:CAPS"></a>GST_DISCOVERER_SERIALIZE_TAGS</p></td>
-<td class="enum_member_description">
-<p>Serialize the tags for each stream</p>
-</td>
-<td class="enum_member_annotations"> </td>
+<td> </td>
+<td> </td>
 </tr>
 <tr>
 <td class="enum_member_name"><p><a name="GST-DISCOVERER-SERIALIZE-MISC:CAPS"></a>GST_DISCOVERER_SERIALIZE_MISC</p></td>
-<td class="enum_member_description">
-<p>Serialize miscellaneous information for each stream</p>
-</td>
-<td class="enum_member_annotations"> </td>
+<td> </td>
+<td> </td>
 </tr>
 <tr>
 <td class="enum_member_name"><p><a name="GST-DISCOVERER-SERIALIZE-ALL:CAPS"></a>GST_DISCOVERER_SERIALIZE_ALL</p></td>
-<td class="enum_member_description">
-<p>Serialize all the available info, including
-caps, tags and miscellaneous information</p>
-</td>
-<td class="enum_member_annotations"> </td>
+<td> </td>
+<td> </td>
 </tr>
 </tbody>
 </table></div>
 </div>
-<p class="since">Since: 1.6</p>
 </div>
 <hr>
 <div class="refsect2">
 <a name="GstDiscovererStreamInfo"></a><h3>GstDiscovererStreamInfo</h3>
 <pre class="programlisting">typedef struct _GstDiscovererStreamInfo GstDiscovererStreamInfo;</pre>
-<p>Base structure for information concerning a media stream. Depending on the
-stream type, one can find more media-specific information in
-<a class="link" href="gst-plugins-base-libs-gstdiscoverer.html#GstDiscovererAudioInfo" title="GstDiscovererAudioInfo"><span class="type">GstDiscovererAudioInfo</span></a>, <a class="link" href="gst-plugins-base-libs-gstdiscoverer.html#GstDiscovererVideoInfo" title="GstDiscovererVideoInfo"><span class="type">GstDiscovererVideoInfo</span></a>, and
-<a class="link" href="gst-plugins-base-libs-gstdiscoverer.html#GstDiscovererContainerInfo" title="GstDiscovererContainerInfo"><span class="type">GstDiscovererContainerInfo</span></a>.</p>
-<p>The <a class="link" href="gst-plugins-base-libs-gstdiscoverer.html#GstDiscovererStreamInfo" title="GstDiscovererStreamInfo"><span class="type">GstDiscovererStreamInfo</span></a> represents the topology of the stream. Siblings
-can be iterated over with <a class="link" href="gst-plugins-base-libs-gstdiscoverer.html#gst-discoverer-stream-info-get-next" title="gst_discoverer_stream_info_get_next ()"><code class="function">gst_discoverer_stream_info_get_next()</code></a> and
-<a class="link" href="gst-plugins-base-libs-gstdiscoverer.html#gst-discoverer-stream-info-get-previous" title="gst_discoverer_stream_info_get_previous ()"><code class="function">gst_discoverer_stream_info_get_previous()</code></a>. Children (sub-streams) of a
-stream can be accessed using the <a class="link" href="gst-plugins-base-libs-gstdiscoverer.html#GstDiscovererContainerInfo" title="GstDiscovererContainerInfo"><span class="type">GstDiscovererContainerInfo</span></a> API.</p>
-<p>As a simple example, if you run <a class="link" href="gst-plugins-base-libs-gstdiscoverer.html#GstDiscoverer"><span class="type">GstDiscoverer</span></a> on an AVI file with one audio
-and one video stream, you will get a <a class="link" href="gst-plugins-base-libs-gstdiscoverer.html#GstDiscovererContainerInfo" title="GstDiscovererContainerInfo"><span class="type">GstDiscovererContainerInfo</span></a>
-corresponding to the AVI container, which in turn will have a
-<a class="link" href="gst-plugins-base-libs-gstdiscoverer.html#GstDiscovererAudioInfo" title="GstDiscovererAudioInfo"><span class="type">GstDiscovererAudioInfo</span></a> sub-stream and a <a class="link" href="gst-plugins-base-libs-gstdiscoverer.html#GstDiscovererVideoInfo" title="GstDiscovererVideoInfo"><span class="type">GstDiscovererVideoInfo</span></a> sub-stream
-for the audio and video streams respectively.</p>
 </div>
 <hr>
 <div class="refsect2">
 <a name="GstDiscovererContainerInfo"></a><h3>GstDiscovererContainerInfo</h3>
 <pre class="programlisting">typedef struct _GstDiscovererContainerInfo GstDiscovererContainerInfo;</pre>
-<p><a class="link" href="gst-plugins-base-libs-gstdiscoverer.html#GstDiscovererStreamInfo" title="GstDiscovererStreamInfo"><span class="type">GstDiscovererStreamInfo</span></a> specific to container streams.</p>
 </div>
 <hr>
 <div class="refsect2">
 <a name="GstDiscovererAudioInfo"></a><h3>GstDiscovererAudioInfo</h3>
 <pre class="programlisting">typedef struct _GstDiscovererAudioInfo GstDiscovererAudioInfo;</pre>
-<p><a class="link" href="gst-plugins-base-libs-gstdiscoverer.html#GstDiscovererStreamInfo" title="GstDiscovererStreamInfo"><span class="type">GstDiscovererStreamInfo</span></a> specific to audio streams.</p>
 </div>
 <hr>
 <div class="refsect2">
 <a name="GstDiscovererVideoInfo"></a><h3>GstDiscovererVideoInfo</h3>
 <pre class="programlisting">typedef struct _GstDiscovererVideoInfo GstDiscovererVideoInfo;</pre>
-<p><a class="link" href="gst-plugins-base-libs-gstdiscoverer.html#GstDiscovererStreamInfo" title="GstDiscovererStreamInfo"><span class="type">GstDiscovererStreamInfo</span></a> specific to video streams (this includes images).</p>
 </div>
 <hr>
 <div class="refsect2">
 <a name="GstDiscovererSubtitleInfo"></a><h3>GstDiscovererSubtitleInfo</h3>
 <pre class="programlisting">typedef struct _GstDiscovererSubtitleInfo GstDiscovererSubtitleInfo;</pre>
-<p><a class="link" href="gst-plugins-base-libs-gstdiscoverer.html#GstDiscovererStreamInfo" title="GstDiscovererStreamInfo"><span class="type">GstDiscovererStreamInfo</span></a> specific to subtitle streams (this includes text and
-image based ones).</p>
 </div>
 </div>
 <div class="refsect1">
@@ -2296,10 +1044,7 @@
 <div class="refsect2">
 <a name="GstDiscoverer--timeout"></a><h3>The <code class="literal">“timeout”</code> property</h3>
 <pre class="programlisting">  “timeout”                  <a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#guint64"><span class="type">guint64</span></a></pre>
-<p>The duration (in nanoseconds) after which the discovery of an individual
-URI will timeout.</p>
-<p>If the discovery of a URI times out, the <a class="link" href="gst-plugins-base-libs-gstdiscoverer.html#GST-DISCOVERER-TIMEOUT:CAPS"><code class="literal">GST_DISCOVERER_TIMEOUT</code></a> will be
-set on the result flags.</p>
+<p>Timeout.</p>
 <p>Flags: Read / Write / Construct</p>
 <p>Allowed values: [1000000000,3600000000000]</p>
 <p>Default value: 15000000000</p>
@@ -2310,154 +1055,35 @@
 <div class="refsect2">
 <a name="GstDiscoverer-discovered"></a><h3>The <code class="literal">“discovered”</code> signal</h3>
 <pre class="programlisting"><span class="returnvalue">void</span>
-user_function (<a class="link" href="gst-plugins-base-libs-gstdiscoverer.html#GstDiscoverer"><span class="type">GstDiscoverer</span></a>     *discoverer,
-               <a class="link" href="gst-plugins-base-libs-gstdiscoverer.html#GstDiscovererInfo"><span class="type">GstDiscovererInfo</span></a> *info,
-               <a href="/usr/share/gtk-doc/html/glibglib-Error-Reporting.html#GError"><span class="type">GError</span></a>            *error,
+user_function (<a class="link" href="gst-plugins-base-libs-gstdiscoverer.html#GstDiscoverer"><span class="type">GstDiscoverer</span></a>     *gstdiscoverer,
+               <a class="link" href="gst-plugins-base-libs-gstdiscoverer.html#GstDiscovererInfo"><span class="type">GstDiscovererInfo</span></a> *arg1,
+               <a href="/usr/share/gtk-doc/html/glibglib-Error-Reporting.html#GError"><span class="type">GError</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>Will be emitted in async mode when all information on a URI could be
-discovered, or an error occurred.</p>
-<p>When an error occurs, <em class="parameter"><code>info</code></em>
- might still contain some partial information,
-depending on the circumstances of the error.</p>
-<div class="refsect3">
-<a name="GstDiscoverer-discovered.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>discoverer</p></td>
-<td class="parameter_description"><p>the <a class="link" href="gst-plugins-base-libs-gstdiscoverer.html#GstDiscoverer"><span class="type">GstDiscoverer</span></a></p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-<tr>
-<td class="parameter_name"><p>info</p></td>
-<td class="parameter_description"><p>the results <a class="link" href="gst-plugins-base-libs-gstdiscoverer.html#GstDiscovererInfo"><span class="type">GstDiscovererInfo</span></a></p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-<tr>
-<td class="parameter_name"><p>error</p></td>
-<td class="parameter_description"><p> <a href="/usr/share/gtk-doc/html/glibglib-Error-Reporting.html#GError"><span class="type">GError</span></a>, which will be non-NULL if an error
-occurred during discovery. You must not
-free this <a href="/usr/share/gtk-doc/html/glibglib-Error-Reporting.html#GError"><span class="type">GError</span></a>, it will be freed by
-the discoverer. </p></td>
-<td class="parameter_annotations"><span class="annotation">[<acronym title="Override the parsed C type with given type."><span class="acronym">type</span></acronym> GLib.Error]</span></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>
 </div>
 <hr>
 <div class="refsect2">
 <a name="GstDiscoverer-finished"></a><h3>The <code class="literal">“finished”</code> signal</h3>
 <pre class="programlisting"><span class="returnvalue">void</span>
-user_function (<a class="link" href="gst-plugins-base-libs-gstdiscoverer.html#GstDiscoverer"><span class="type">GstDiscoverer</span></a> *discoverer,
+user_function (<a class="link" href="gst-plugins-base-libs-gstdiscoverer.html#GstDiscoverer"><span class="type">GstDiscoverer</span></a> *gstdiscoverer,
                <a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a>       user_data)</pre>
-<p>Will be emitted in async mode when all pending URIs have been processed.</p>
-<div class="refsect3">
-<a name="GstDiscoverer-finished.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>discoverer</p></td>
-<td class="parameter_description"><p>the <a class="link" href="gst-plugins-base-libs-gstdiscoverer.html#GstDiscoverer"><span class="type">GstDiscoverer</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>
 <p>Flags: <a href="/usr/share/gtk-doc/html/gobjectgobject-Signals.html#G-SIGNAL-RUN-LAST:CAPS">Run Last</a></p>
 </div>
 <hr>
 <div class="refsect2">
 <a name="GstDiscoverer-source-setup"></a><h3>The <code class="literal">“source-setup”</code> signal</h3>
 <pre class="programlisting"><span class="returnvalue">void</span>
-user_function (<a class="link" href="gst-plugins-base-libs-gstdiscoverer.html#GstDiscoverer"><span class="type">GstDiscoverer</span></a> *discoverer,
-               <a href="/usr/share/gtk-doc/html/gstreamer-1.0GstElement.html#GstElement-struct"><span class="type">GstElement</span></a>    *source,
+user_function (<a class="link" href="gst-plugins-base-libs-gstdiscoverer.html#GstDiscoverer"><span class="type">GstDiscoverer</span></a> *gstdiscoverer,
+               <a href="/usr/share/gtk-doc/html/gstreamer-1.0GstElement.html#GstElement-struct"><span class="type">GstElement</span></a>    *arg1,
                <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 after the source element has been created for, so
-the URI being discovered, so it can be configured by setting additional
-properties (e.g. set a proxy server for an http source, or set the device
-and read speed for an audio cd source).</p>
-<p>This signal is usually emitted from the context of a GStreamer streaming
-thread.</p>
-<div class="refsect3">
-<a name="GstDiscoverer-source-setup.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>discoverer</p></td>
-<td class="parameter_description"><p>the <a class="link" href="gst-plugins-base-libs-gstdiscoverer.html#GstDiscoverer"><span class="type">GstDiscoverer</span></a></p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-<tr>
-<td class="parameter_name"><p>source</p></td>
-<td class="parameter_description"><p>source 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>
 <p>Flags: <a href="/usr/share/gtk-doc/html/gobjectgobject-Signals.html#G-SIGNAL-RUN-LAST:CAPS">Run Last</a></p>
 </div>
 <hr>
 <div class="refsect2">
 <a name="GstDiscoverer-starting"></a><h3>The <code class="literal">“starting”</code> signal</h3>
 <pre class="programlisting"><span class="returnvalue">void</span>
-user_function (<a class="link" href="gst-plugins-base-libs-gstdiscoverer.html#GstDiscoverer"><span class="type">GstDiscoverer</span></a> *discoverer,
+user_function (<a class="link" href="gst-plugins-base-libs-gstdiscoverer.html#GstDiscoverer"><span class="type">GstDiscoverer</span></a> *gstdiscoverer,
                <a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a>       user_data)</pre>
-<p>Will be emitted when the discover starts analyzing the pending URIs</p>
-<div class="refsect3">
-<a name="GstDiscoverer-starting.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>discoverer</p></td>
-<td class="parameter_description"><p>the <a class="link" href="gst-plugins-base-libs-gstdiscoverer.html#GstDiscoverer"><span class="type">GstDiscoverer</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>
 <p>Flags: <a href="/usr/share/gtk-doc/html/gobjectgobject-Signals.html#G-SIGNAL-RUN-LAST:CAPS">Run Last</a></p>
 </div>
 </div>
diff --git a/docs/libs/html/gst-plugins-base-libs-gstfft.html b/docs/libs/html/gst-plugins-base-libs-gstfft.html
index 726b0a2..f569ff2 100644
--- a/docs/libs/html/gst-plugins-base-libs-gstfft.html
+++ b/docs/libs/html/gst-plugins-base-libs-gstfft.html
@@ -27,7 +27,7 @@
 <div class="refnamediv"><table width="100%"><tr>
 <td valign="top">
 <h2><span class="refentrytitle"><a name="gst-plugins-base-libs-gstfft.top_of_page"></a>gstfft</span></h2>
-<p>gstfft — General FFT functions and declarations</p>
+<p>gstfft</p>
 </td>
 <td class="gallery_image" valign="top" align="right"></td>
 </tr></table></div>
@@ -68,8 +68,6 @@
 </div>
 <div class="refsect1">
 <a name="gst-plugins-base-libs-gstfft.description"></a><h2>Description</h2>
-<p>This library includes general definitions and functions, useful for
-all typed FFT classes.</p>
 </div>
 <div class="refsect1">
 <a name="gst-plugins-base-libs-gstfft.functions_details"></a><h2>Functions</h2>
@@ -77,37 +75,12 @@
 <a name="gst-fft-next-fast-length"></a><h3>gst_fft_next_fast_length ()</h3>
 <pre class="programlisting"><a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#gint"><span class="returnvalue">gint</span></a>
 gst_fft_next_fast_length (<em class="parameter"><code><a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#gint"><span class="type">gint</span></a> n</code></em>);</pre>
-<p>Returns the next number to <em class="parameter"><code>n</code></em>
- that is entirely a product
-of 2, 3 and 5. Using this as the <em class="parameter"><code>len</code></em>
- parameter for
-the different GstFFT types will provide the best performance.</p>
-<div class="refsect3">
-<a name="gst-fft-next-fast-length.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>n</p></td>
-<td class="parameter_description"><p>Number for which the next fast length should be returned</p></td>
-<td class="parameter_annotations"> </td>
-</tr></tbody>
-</table></div>
-</div>
-<div class="refsect3">
-<a name="gst-fft-next-fast-length.returns"></a><h4>Returns</h4>
-<p> the next fast FFT length.</p>
-</div>
 </div>
 </div>
 <div class="refsect1">
 <a name="gst-plugins-base-libs-gstfft.other_details"></a><h2>Types and Values</h2>
 <div class="refsect2">
 <a name="GstFFTWindow"></a><h3>enum GstFFTWindow</h3>
-<p>The various window functions available.</p>
 <div class="refsect3">
 <a name="GstFFTWindow.members"></a><h4>Members</h4>
 <div class="informaltable"><table class="informaltable" width="100%" border="0">
@@ -119,38 +92,28 @@
 <tbody>
 <tr>
 <td class="enum_member_name"><p><a name="GST-FFT-WINDOW-RECTANGULAR:CAPS"></a>GST_FFT_WINDOW_RECTANGULAR</p></td>
-<td class="enum_member_description">
-<p>Rectangular window</p>
-</td>
-<td class="enum_member_annotations"> </td>
+<td> </td>
+<td> </td>
 </tr>
 <tr>
 <td class="enum_member_name"><p><a name="GST-FFT-WINDOW-HAMMING:CAPS"></a>GST_FFT_WINDOW_HAMMING</p></td>
-<td class="enum_member_description">
-<p>Hamming window</p>
-</td>
-<td class="enum_member_annotations"> </td>
+<td> </td>
+<td> </td>
 </tr>
 <tr>
 <td class="enum_member_name"><p><a name="GST-FFT-WINDOW-HANN:CAPS"></a>GST_FFT_WINDOW_HANN</p></td>
-<td class="enum_member_description">
-<p>Hann (sometimes also called Hanning) window</p>
-</td>
-<td class="enum_member_annotations"> </td>
+<td> </td>
+<td> </td>
 </tr>
 <tr>
 <td class="enum_member_name"><p><a name="GST-FFT-WINDOW-BARTLETT:CAPS"></a>GST_FFT_WINDOW_BARTLETT</p></td>
-<td class="enum_member_description">
-<p>Bartlett window</p>
-</td>
-<td class="enum_member_annotations"> </td>
+<td> </td>
+<td> </td>
 </tr>
 <tr>
 <td class="enum_member_name"><p><a name="GST-FFT-WINDOW-BLACKMAN:CAPS"></a>GST_FFT_WINDOW_BLACKMAN</p></td>
-<td class="enum_member_description">
-<p>Blackman window</p>
-</td>
-<td class="enum_member_annotations"> </td>
+<td> </td>
+<td> </td>
 </tr>
 </tbody>
 </table></div>
diff --git a/docs/libs/html/gst-plugins-base-libs-gstfftf32.html b/docs/libs/html/gst-plugins-base-libs-gstfftf32.html
index 73a2fae..83902d2 100644
--- a/docs/libs/html/gst-plugins-base-libs-gstfftf32.html
+++ b/docs/libs/html/gst-plugins-base-libs-gstfftf32.html
@@ -27,7 +27,7 @@
 <div class="refnamediv"><table width="100%"><tr>
 <td valign="top">
 <h2><span class="refentrytitle"><a name="gst-plugins-base-libs-gstfftf32.top_of_page"></a>gstfftf32</span></h2>
-<p>gstfftf32 — FFT functions for 32 bit float samples</p>
+<p>gstfftf32</p>
 </td>
 <td class="gallery_image" valign="top" align="right"></td>
 </tr></table></div>
@@ -108,30 +108,6 @@
 </div>
 <div class="refsect1">
 <a name="gst-plugins-base-libs-gstfftf32.description"></a><h2>Description</h2>
-<p><a class="link" href="gst-plugins-base-libs-gstfftf32.html#GstFFTF32" title="GstFFTF32"><span class="type">GstFFTF32</span></a> provides a FFT implementation and related functions for
-32 bit float samples. To use this call <a class="link" href="gst-plugins-base-libs-gstfftf32.html#gst-fft-f32-new" title="gst_fft_f32_new ()"><code class="function">gst_fft_f32_new()</code></a> for
-allocating a <a class="link" href="gst-plugins-base-libs-gstfftf32.html#GstFFTF32" title="GstFFTF32"><span class="type">GstFFTF32</span></a> instance with the appropriate parameters and
-then call <a class="link" href="gst-plugins-base-libs-gstfftf32.html#gst-fft-f32-fft" title="gst_fft_f32_fft ()"><code class="function">gst_fft_f32_fft()</code></a> or <a class="link" href="gst-plugins-base-libs-gstfftf32.html#gst-fft-f32-inverse-fft" title="gst_fft_f32_inverse_fft ()"><code class="function">gst_fft_f32_inverse_fft()</code></a> to perform the
-FFT or inverse FFT on a buffer of samples.</p>
-<p>After use free the <a class="link" href="gst-plugins-base-libs-gstfftf32.html#GstFFTF32" title="GstFFTF32"><span class="type">GstFFTF32</span></a> instance with <a class="link" href="gst-plugins-base-libs-gstfftf32.html#gst-fft-f32-free" title="gst_fft_f32_free ()"><code class="function">gst_fft_f32_free()</code></a>.</p>
-<p>For the best performance use <a class="link" href="gst-plugins-base-libs-gstfft.html#gst-fft-next-fast-length" title="gst_fft_next_fast_length ()"><code class="function">gst_fft_next_fast_length()</code></a> to get a
-number that is entirely a product of 2, 3 and 5 and use this as the
-<em class="parameter"><code>len</code></em>
- parameter for <a class="link" href="gst-plugins-base-libs-gstfftf32.html#gst-fft-f32-new" title="gst_fft_f32_new ()"><code class="function">gst_fft_f32_new()</code></a>.</p>
-<p>The <em class="parameter"><code>len</code></em>
- parameter specifies the number of samples in the time domain that
-will be processed or generated. The number of samples in the frequency domain
-is <em class="parameter"><code>len</code></em>
-/2 + 1. To get n samples in the frequency domain use 2*n - 2 as <em class="parameter"><code>len</code></em>
-.</p>
-<p>Before performing the FFT on time domain data it usually makes sense
-to apply a window function to it. For this <a class="link" href="gst-plugins-base-libs-gstfftf32.html#gst-fft-f32-window" title="gst_fft_f32_window ()"><code class="function">gst_fft_f32_window()</code></a> can comfortably
-be used.</p>
-<p>Be aware, that you can't simply run <a class="link" href="gst-plugins-base-libs-gstfftf32.html#gst-fft-f32-inverse-fft" title="gst_fft_f32_inverse_fft ()"><code class="function">gst_fft_f32_inverse_fft()</code></a> on the
-resulting frequency data of <a class="link" href="gst-plugins-base-libs-gstfftf32.html#gst-fft-f32-fft" title="gst_fft_f32_fft ()"><code class="function">gst_fft_f32_fft()</code></a> to get the original data back.
-The relation between them is iFFT (FFT (x)) = x * nfft where nfft is the
-length of the FFT. This also has to be taken into account when calculation
-the magnitude of the frequency data.</p>
 </div>
 <div class="refsect1">
 <a name="gst-plugins-base-libs-gstfftf32.functions_details"></a><h2>Functions</h2>
@@ -140,39 +116,6 @@
 <pre class="programlisting"><a class="link" href="gst-plugins-base-libs-gstfftf32.html#GstFFTF32" title="GstFFTF32"><span class="returnvalue">GstFFTF32</span></a> *
 gst_fft_f32_new (<em class="parameter"><code><a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#gint"><span class="type">gint</span></a> len</code></em>,
                  <em class="parameter"><code><a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a> inverse</code></em>);</pre>
-<p>This returns a new <a class="link" href="gst-plugins-base-libs-gstfftf32.html#GstFFTF32" title="GstFFTF32"><span class="type">GstFFTF32</span></a> instance with the given parameters. It makes
-sense to keep one instance for several calls for speed reasons.</p>
-<p><em class="parameter"><code>len</code></em>
- must be even and to get the best performance a product of
-2, 3 and 5. To get the next number with this characteristics use
-<a class="link" href="gst-plugins-base-libs-gstfft.html#gst-fft-next-fast-length" title="gst_fft_next_fast_length ()"><code class="function">gst_fft_next_fast_length()</code></a>.</p>
-<p><span class="annotation">[<acronym title="Exposed in C code, not necessarily available in other languages."><span class="acronym">skip</span></acronym>]</span></p>
-<div class="refsect3">
-<a name="gst-fft-f32-new.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>len</p></td>
-<td class="parameter_description"><p>Length of the FFT in the time domain</p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-<tr>
-<td class="parameter_name"><p>inverse</p></td>
-<td class="parameter_description"><p><a href="/usr/share/gtk-doc/html/glibglib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a> if the <a class="link" href="gst-plugins-base-libs-gstfftf32.html#GstFFTF32" title="GstFFTF32"><span class="type">GstFFTF32</span></a> instance should be used for the inverse FFT</p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-</tbody>
-</table></div>
-</div>
-<div class="refsect3">
-<a name="gst-fft-f32-new.returns"></a><h4>Returns</h4>
-<p> a new <a class="link" href="gst-plugins-base-libs-gstfftf32.html#GstFFTF32" title="GstFFTF32"><span class="type">GstFFTF32</span></a> instance.</p>
-</div>
 </div>
 <hr>
 <div class="refsect2">
@@ -181,44 +124,6 @@
 gst_fft_f32_fft (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstfftf32.html#GstFFTF32" title="GstFFTF32"><span class="type">GstFFTF32</span></a> *self</code></em>,
                  <em class="parameter"><code>const <a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#gfloat"><span class="type">gfloat</span></a> *timedata</code></em>,
                  <em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstfftf32.html#GstFFTF32Complex" title="struct GstFFTF32Complex"><span class="type">GstFFTF32Complex</span></a> *freqdata</code></em>);</pre>
-<p>This performs the FFT on <em class="parameter"><code>timedata</code></em>
- and puts the result in <em class="parameter"><code>freqdata</code></em>
-.</p>
-<p><em class="parameter"><code>timedata</code></em>
- must have as many samples as specified with the <em class="parameter"><code>len</code></em>
- parameter while
-allocating the <a class="link" href="gst-plugins-base-libs-gstfftf32.html#GstFFTF32" title="GstFFTF32"><span class="type">GstFFTF32</span></a> instance with <a class="link" href="gst-plugins-base-libs-gstfftf32.html#gst-fft-f32-new" title="gst_fft_f32_new ()"><code class="function">gst_fft_f32_new()</code></a>.</p>
-<p><em class="parameter"><code>freqdata</code></em>
- must be large enough to hold <em class="parameter"><code>len</code></em>
-/2 + 1 <a class="link" href="gst-plugins-base-libs-gstfftf32.html#GstFFTF32Complex" title="struct GstFFTF32Complex"><span class="type">GstFFTF32Complex</span></a> frequency
-domain samples.</p>
-<div class="refsect3">
-<a name="gst-fft-f32-fft.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>self</p></td>
-<td class="parameter_description"><p><a class="link" href="gst-plugins-base-libs-gstfftf32.html#GstFFTF32" title="GstFFTF32"><span class="type">GstFFTF32</span></a> instance for this call</p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-<tr>
-<td class="parameter_name"><p>timedata</p></td>
-<td class="parameter_description"><p>Buffer of the samples in the time domain</p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-<tr>
-<td class="parameter_name"><p>freqdata</p></td>
-<td class="parameter_description"><p>Target buffer for the samples in the frequency domain</p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-</tbody>
-</table></div>
-</div>
 </div>
 <hr>
 <div class="refsect2">
@@ -227,44 +132,6 @@
 gst_fft_f32_inverse_fft (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstfftf32.html#GstFFTF32" title="GstFFTF32"><span class="type">GstFFTF32</span></a> *self</code></em>,
                          <em class="parameter"><code>const <a class="link" href="gst-plugins-base-libs-gstfftf32.html#GstFFTF32Complex" title="struct GstFFTF32Complex"><span class="type">GstFFTF32Complex</span></a> *freqdata</code></em>,
                          <em class="parameter"><code><a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#gfloat"><span class="type">gfloat</span></a> *timedata</code></em>);</pre>
-<p>This performs the inverse FFT on <em class="parameter"><code>freqdata</code></em>
- and puts the result in <em class="parameter"><code>timedata</code></em>
-.</p>
-<p><em class="parameter"><code>freqdata</code></em>
- must have <em class="parameter"><code>len</code></em>
-/2 + 1 samples, where <em class="parameter"><code>len</code></em>
- is the parameter specified
-while allocating the <a class="link" href="gst-plugins-base-libs-gstfftf32.html#GstFFTF32" title="GstFFTF32"><span class="type">GstFFTF32</span></a> instance with <a class="link" href="gst-plugins-base-libs-gstfftf32.html#gst-fft-f32-new" title="gst_fft_f32_new ()"><code class="function">gst_fft_f32_new()</code></a>.</p>
-<p><em class="parameter"><code>timedata</code></em>
- must be large enough to hold <em class="parameter"><code>len</code></em>
- time domain samples.</p>
-<div class="refsect3">
-<a name="gst-fft-f32-inverse-fft.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>self</p></td>
-<td class="parameter_description"><p><a class="link" href="gst-plugins-base-libs-gstfftf32.html#GstFFTF32" title="GstFFTF32"><span class="type">GstFFTF32</span></a> instance for this call</p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-<tr>
-<td class="parameter_name"><p>freqdata</p></td>
-<td class="parameter_description"><p>Buffer of the samples in the frequency domain</p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-<tr>
-<td class="parameter_name"><p>timedata</p></td>
-<td class="parameter_description"><p>Target buffer for the samples in the time domain</p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-</tbody>
-</table></div>
-</div>
 </div>
 <hr>
 <div class="refsect2">
@@ -273,59 +140,12 @@
 gst_fft_f32_window (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstfftf32.html#GstFFTF32" title="GstFFTF32"><span class="type">GstFFTF32</span></a> *self</code></em>,
                     <em class="parameter"><code><a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#gfloat"><span class="type">gfloat</span></a> *timedata</code></em>,
                     <em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstfft.html#GstFFTWindow" title="enum GstFFTWindow"><span class="type">GstFFTWindow</span></a> window</code></em>);</pre>
-<p>This calls the window function <em class="parameter"><code>window</code></em>
- on the <em class="parameter"><code>timedata</code></em>
- sample buffer.</p>
-<div class="refsect3">
-<a name="gst-fft-f32-window.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>self</p></td>
-<td class="parameter_description"><p><a class="link" href="gst-plugins-base-libs-gstfftf32.html#GstFFTF32" title="GstFFTF32"><span class="type">GstFFTF32</span></a> instance for this call</p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-<tr>
-<td class="parameter_name"><p>timedata</p></td>
-<td class="parameter_description"><p>Time domain samples</p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-<tr>
-<td class="parameter_name"><p>window</p></td>
-<td class="parameter_description"><p>Window function to apply</p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-</tbody>
-</table></div>
-</div>
 </div>
 <hr>
 <div class="refsect2">
 <a name="gst-fft-f32-free"></a><h3>gst_fft_f32_free ()</h3>
 <pre class="programlisting"><span class="returnvalue">void</span>
 gst_fft_f32_free (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstfftf32.html#GstFFTF32" title="GstFFTF32"><span class="type">GstFFTF32</span></a> *self</code></em>);</pre>
-<p>This frees the memory allocated for <em class="parameter"><code>self</code></em>
-.</p>
-<div class="refsect3">
-<a name="gst-fft-f32-free.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>self</p></td>
-<td class="parameter_description"><p><a class="link" href="gst-plugins-base-libs-gstfftf32.html#GstFFTF32" title="GstFFTF32"><span class="type">GstFFTF32</span></a> instance for this call</p></td>
-<td class="parameter_annotations"> </td>
-</tr></tbody>
-</table></div>
-</div>
 </div>
 </div>
 <div class="refsect1">
@@ -342,30 +162,6 @@
   gfloat i;
 };
 </pre>
-<p>Data type for complex numbers composed of
-32 bit float.</p>
-<div class="refsect3">
-<a name="GstFFTF32Complex.members"></a><h4>Members</h4>
-<div class="informaltable"><table class="informaltable" width="100%" border="0">
-<colgroup>
-<col width="300px" class="struct_members_name">
-<col class="struct_members_description">
-<col width="200px" class="struct_members_annotations">
-</colgroup>
-<tbody>
-<tr>
-<td class="struct_member_name"><p><a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#gfloat"><span class="type">gfloat</span></a> <em class="structfield"><code><a name="GstFFTF32Complex.r"></a>r</code></em>;</p></td>
-<td class="struct_member_description"><p>Real part</p></td>
-<td class="struct_member_annotations"> </td>
-</tr>
-<tr>
-<td class="struct_member_name"><p><a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#gfloat"><span class="type">gfloat</span></a> <em class="structfield"><code><a name="GstFFTF32Complex.i"></a>i</code></em>;</p></td>
-<td class="struct_member_description"><p>Imaginary part</p></td>
-<td class="struct_member_annotations"> </td>
-</tr>
-</tbody>
-</table></div>
-</div>
 </div>
 </div>
 </div>
diff --git a/docs/libs/html/gst-plugins-base-libs-gstfftf64.html b/docs/libs/html/gst-plugins-base-libs-gstfftf64.html
index d7a6946..19bd772 100644
--- a/docs/libs/html/gst-plugins-base-libs-gstfftf64.html
+++ b/docs/libs/html/gst-plugins-base-libs-gstfftf64.html
@@ -27,7 +27,7 @@
 <div class="refnamediv"><table width="100%"><tr>
 <td valign="top">
 <h2><span class="refentrytitle"><a name="gst-plugins-base-libs-gstfftf64.top_of_page"></a>gstfftf64</span></h2>
-<p>gstfftf64 — FFT functions for 64 bit float samples</p>
+<p>gstfftf64</p>
 </td>
 <td class="gallery_image" valign="top" align="right"></td>
 </tr></table></div>
@@ -108,30 +108,6 @@
 </div>
 <div class="refsect1">
 <a name="gst-plugins-base-libs-gstfftf64.description"></a><h2>Description</h2>
-<p><a class="link" href="gst-plugins-base-libs-gstfftf64.html#GstFFTF64" title="GstFFTF64"><span class="type">GstFFTF64</span></a> provides a FFT implementation and related functions for
-64 bit float samples. To use this call <a class="link" href="gst-plugins-base-libs-gstfftf64.html#gst-fft-f64-new" title="gst_fft_f64_new ()"><code class="function">gst_fft_f64_new()</code></a> for
-allocating a <a class="link" href="gst-plugins-base-libs-gstfftf64.html#GstFFTF64" title="GstFFTF64"><span class="type">GstFFTF64</span></a> instance with the appropriate parameters and
-then call <a class="link" href="gst-plugins-base-libs-gstfftf64.html#gst-fft-f64-fft" title="gst_fft_f64_fft ()"><code class="function">gst_fft_f64_fft()</code></a> or <a class="link" href="gst-plugins-base-libs-gstfftf64.html#gst-fft-f64-inverse-fft" title="gst_fft_f64_inverse_fft ()"><code class="function">gst_fft_f64_inverse_fft()</code></a> to perform the
-FFT or inverse FFT on a buffer of samples.</p>
-<p>After use free the <a class="link" href="gst-plugins-base-libs-gstfftf64.html#GstFFTF64" title="GstFFTF64"><span class="type">GstFFTF64</span></a> instance with <a class="link" href="gst-plugins-base-libs-gstfftf64.html#gst-fft-f64-free" title="gst_fft_f64_free ()"><code class="function">gst_fft_f64_free()</code></a>.</p>
-<p>For the best performance use <a class="link" href="gst-plugins-base-libs-gstfft.html#gst-fft-next-fast-length" title="gst_fft_next_fast_length ()"><code class="function">gst_fft_next_fast_length()</code></a> to get a
-number that is entirely a product of 2, 3 and 5 and use this as the
-<em class="parameter"><code>len</code></em>
- parameter for <a class="link" href="gst-plugins-base-libs-gstfftf64.html#gst-fft-f64-new" title="gst_fft_f64_new ()"><code class="function">gst_fft_f64_new()</code></a>.</p>
-<p>The <em class="parameter"><code>len</code></em>
- parameter specifies the number of samples in the time domain that
-will be processed or generated. The number of samples in the frequency domain
-is <em class="parameter"><code>len</code></em>
-/2 + 1. To get n samples in the frequency domain use 2*n - 2 as <em class="parameter"><code>len</code></em>
-.</p>
-<p>Before performing the FFT on time domain data it usually makes sense
-to apply a window function to it. For this <a class="link" href="gst-plugins-base-libs-gstfftf64.html#gst-fft-f64-window" title="gst_fft_f64_window ()"><code class="function">gst_fft_f64_window()</code></a> can comfortably
-be used.</p>
-<p>Be aware, that you can't simply run <a class="link" href="gst-plugins-base-libs-gstfftf32.html#gst-fft-f32-inverse-fft" title="gst_fft_f32_inverse_fft ()"><code class="function">gst_fft_f32_inverse_fft()</code></a> on the
-resulting frequency data of <a class="link" href="gst-plugins-base-libs-gstfftf32.html#gst-fft-f32-fft" title="gst_fft_f32_fft ()"><code class="function">gst_fft_f32_fft()</code></a> to get the original data back.
-The relation between them is iFFT (FFT (x)) = x * nfft where nfft is the
-length of the FFT. This also has to be taken into account when calculation
-the magnitude of the frequency data.</p>
 </div>
 <div class="refsect1">
 <a name="gst-plugins-base-libs-gstfftf64.functions_details"></a><h2>Functions</h2>
@@ -140,39 +116,6 @@
 <pre class="programlisting"><a class="link" href="gst-plugins-base-libs-gstfftf64.html#GstFFTF64" title="GstFFTF64"><span class="returnvalue">GstFFTF64</span></a> *
 gst_fft_f64_new (<em class="parameter"><code><a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#gint"><span class="type">gint</span></a> len</code></em>,
                  <em class="parameter"><code><a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a> inverse</code></em>);</pre>
-<p>This returns a new <a class="link" href="gst-plugins-base-libs-gstfftf64.html#GstFFTF64" title="GstFFTF64"><span class="type">GstFFTF64</span></a> instance with the given parameters. It makes
-sense to keep one instance for several calls for speed reasons.</p>
-<p><em class="parameter"><code>len</code></em>
- must be even and to get the best performance a product of
-2, 3 and 5. To get the next number with this characteristics use
-<a class="link" href="gst-plugins-base-libs-gstfft.html#gst-fft-next-fast-length" title="gst_fft_next_fast_length ()"><code class="function">gst_fft_next_fast_length()</code></a>.</p>
-<p><span class="annotation">[<acronym title="Exposed in C code, not necessarily available in other languages."><span class="acronym">skip</span></acronym>]</span></p>
-<div class="refsect3">
-<a name="gst-fft-f64-new.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>len</p></td>
-<td class="parameter_description"><p>Length of the FFT in the time domain</p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-<tr>
-<td class="parameter_name"><p>inverse</p></td>
-<td class="parameter_description"><p><a href="/usr/share/gtk-doc/html/glibglib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a> if the <a class="link" href="gst-plugins-base-libs-gstfftf64.html#GstFFTF64" title="GstFFTF64"><span class="type">GstFFTF64</span></a> instance should be used for the inverse FFT</p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-</tbody>
-</table></div>
-</div>
-<div class="refsect3">
-<a name="gst-fft-f64-new.returns"></a><h4>Returns</h4>
-<p> a new <a class="link" href="gst-plugins-base-libs-gstfftf64.html#GstFFTF64" title="GstFFTF64"><span class="type">GstFFTF64</span></a> instance.</p>
-</div>
 </div>
 <hr>
 <div class="refsect2">
@@ -181,44 +124,6 @@
 gst_fft_f64_fft (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstfftf64.html#GstFFTF64" title="GstFFTF64"><span class="type">GstFFTF64</span></a> *self</code></em>,
                  <em class="parameter"><code>const <a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#gdouble"><span class="type">gdouble</span></a> *timedata</code></em>,
                  <em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstfftf64.html#GstFFTF64Complex" title="struct GstFFTF64Complex"><span class="type">GstFFTF64Complex</span></a> *freqdata</code></em>);</pre>
-<p>This performs the FFT on <em class="parameter"><code>timedata</code></em>
- and puts the result in <em class="parameter"><code>freqdata</code></em>
-.</p>
-<p><em class="parameter"><code>timedata</code></em>
- must have as many samples as specified with the <em class="parameter"><code>len</code></em>
- parameter while
-allocating the <a class="link" href="gst-plugins-base-libs-gstfftf64.html#GstFFTF64" title="GstFFTF64"><span class="type">GstFFTF64</span></a> instance with <a class="link" href="gst-plugins-base-libs-gstfftf64.html#gst-fft-f64-new" title="gst_fft_f64_new ()"><code class="function">gst_fft_f64_new()</code></a>.</p>
-<p><em class="parameter"><code>freqdata</code></em>
- must be large enough to hold <em class="parameter"><code>len</code></em>
-/2 + 1 <a class="link" href="gst-plugins-base-libs-gstfftf64.html#GstFFTF64Complex" title="struct GstFFTF64Complex"><span class="type">GstFFTF64Complex</span></a> frequency
-domain samples.</p>
-<div class="refsect3">
-<a name="gst-fft-f64-fft.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>self</p></td>
-<td class="parameter_description"><p><a class="link" href="gst-plugins-base-libs-gstfftf64.html#GstFFTF64" title="GstFFTF64"><span class="type">GstFFTF64</span></a> instance for this call</p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-<tr>
-<td class="parameter_name"><p>timedata</p></td>
-<td class="parameter_description"><p>Buffer of the samples in the time domain</p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-<tr>
-<td class="parameter_name"><p>freqdata</p></td>
-<td class="parameter_description"><p>Target buffer for the samples in the frequency domain</p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-</tbody>
-</table></div>
-</div>
 </div>
 <hr>
 <div class="refsect2">
@@ -227,44 +132,6 @@
 gst_fft_f64_inverse_fft (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstfftf64.html#GstFFTF64" title="GstFFTF64"><span class="type">GstFFTF64</span></a> *self</code></em>,
                          <em class="parameter"><code>const <a class="link" href="gst-plugins-base-libs-gstfftf64.html#GstFFTF64Complex" title="struct GstFFTF64Complex"><span class="type">GstFFTF64Complex</span></a> *freqdata</code></em>,
                          <em class="parameter"><code><a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#gdouble"><span class="type">gdouble</span></a> *timedata</code></em>);</pre>
-<p>This performs the inverse FFT on <em class="parameter"><code>freqdata</code></em>
- and puts the result in <em class="parameter"><code>timedata</code></em>
-.</p>
-<p><em class="parameter"><code>freqdata</code></em>
- must have <em class="parameter"><code>len</code></em>
-/2 + 1 samples, where <em class="parameter"><code>len</code></em>
- is the parameter specified
-while allocating the <a class="link" href="gst-plugins-base-libs-gstfftf64.html#GstFFTF64" title="GstFFTF64"><span class="type">GstFFTF64</span></a> instance with <a class="link" href="gst-plugins-base-libs-gstfftf64.html#gst-fft-f64-new" title="gst_fft_f64_new ()"><code class="function">gst_fft_f64_new()</code></a>.</p>
-<p><em class="parameter"><code>timedata</code></em>
- must be large enough to hold <em class="parameter"><code>len</code></em>
- time domain samples.</p>
-<div class="refsect3">
-<a name="gst-fft-f64-inverse-fft.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>self</p></td>
-<td class="parameter_description"><p><a class="link" href="gst-plugins-base-libs-gstfftf64.html#GstFFTF64" title="GstFFTF64"><span class="type">GstFFTF64</span></a> instance for this call</p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-<tr>
-<td class="parameter_name"><p>freqdata</p></td>
-<td class="parameter_description"><p>Buffer of the samples in the frequency domain</p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-<tr>
-<td class="parameter_name"><p>timedata</p></td>
-<td class="parameter_description"><p>Target buffer for the samples in the time domain</p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-</tbody>
-</table></div>
-</div>
 </div>
 <hr>
 <div class="refsect2">
@@ -273,59 +140,12 @@
 gst_fft_f64_window (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstfftf64.html#GstFFTF64" title="GstFFTF64"><span class="type">GstFFTF64</span></a> *self</code></em>,
                     <em class="parameter"><code><a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#gdouble"><span class="type">gdouble</span></a> *timedata</code></em>,
                     <em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstfft.html#GstFFTWindow" title="enum GstFFTWindow"><span class="type">GstFFTWindow</span></a> window</code></em>);</pre>
-<p>This calls the window function <em class="parameter"><code>window</code></em>
- on the <em class="parameter"><code>timedata</code></em>
- sample buffer.</p>
-<div class="refsect3">
-<a name="gst-fft-f64-window.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>self</p></td>
-<td class="parameter_description"><p><a class="link" href="gst-plugins-base-libs-gstfftf64.html#GstFFTF64" title="GstFFTF64"><span class="type">GstFFTF64</span></a> instance for this call</p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-<tr>
-<td class="parameter_name"><p>timedata</p></td>
-<td class="parameter_description"><p>Time domain samples</p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-<tr>
-<td class="parameter_name"><p>window</p></td>
-<td class="parameter_description"><p>Window function to apply</p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-</tbody>
-</table></div>
-</div>
 </div>
 <hr>
 <div class="refsect2">
 <a name="gst-fft-f64-free"></a><h3>gst_fft_f64_free ()</h3>
 <pre class="programlisting"><span class="returnvalue">void</span>
 gst_fft_f64_free (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstfftf64.html#GstFFTF64" title="GstFFTF64"><span class="type">GstFFTF64</span></a> *self</code></em>);</pre>
-<p>This frees the memory allocated for <em class="parameter"><code>self</code></em>
-.</p>
-<div class="refsect3">
-<a name="gst-fft-f64-free.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>self</p></td>
-<td class="parameter_description"><p><a class="link" href="gst-plugins-base-libs-gstfftf64.html#GstFFTF64" title="GstFFTF64"><span class="type">GstFFTF64</span></a> instance for this call</p></td>
-<td class="parameter_annotations"> </td>
-</tr></tbody>
-</table></div>
-</div>
 </div>
 </div>
 <div class="refsect1">
@@ -342,30 +162,6 @@
   gdouble i;
 };
 </pre>
-<p>Data type for complex numbers composed of
-64 bit float.</p>
-<div class="refsect3">
-<a name="GstFFTF64Complex.members"></a><h4>Members</h4>
-<div class="informaltable"><table class="informaltable" width="100%" border="0">
-<colgroup>
-<col width="300px" class="struct_members_name">
-<col class="struct_members_description">
-<col width="200px" class="struct_members_annotations">
-</colgroup>
-<tbody>
-<tr>
-<td class="struct_member_name"><p><a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#gdouble"><span class="type">gdouble</span></a> <em class="structfield"><code><a name="GstFFTF64Complex.r"></a>r</code></em>;</p></td>
-<td class="struct_member_description"><p>Real part</p></td>
-<td class="struct_member_annotations"> </td>
-</tr>
-<tr>
-<td class="struct_member_name"><p><a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#gdouble"><span class="type">gdouble</span></a> <em class="structfield"><code><a name="GstFFTF64Complex.i"></a>i</code></em>;</p></td>
-<td class="struct_member_description"><p>Imaginary part</p></td>
-<td class="struct_member_annotations"> </td>
-</tr>
-</tbody>
-</table></div>
-</div>
 </div>
 </div>
 </div>
diff --git a/docs/libs/html/gst-plugins-base-libs-gstffts16.html b/docs/libs/html/gst-plugins-base-libs-gstffts16.html
index 1727cc3..637cde5 100644
--- a/docs/libs/html/gst-plugins-base-libs-gstffts16.html
+++ b/docs/libs/html/gst-plugins-base-libs-gstffts16.html
@@ -27,7 +27,7 @@
 <div class="refnamediv"><table width="100%"><tr>
 <td valign="top">
 <h2><span class="refentrytitle"><a name="gst-plugins-base-libs-gstffts16.top_of_page"></a>gstffts16</span></h2>
-<p>gstffts16 — FFT functions for signed 16 bit integer samples</p>
+<p>gstffts16</p>
 </td>
 <td class="gallery_image" valign="top" align="right"></td>
 </tr></table></div>
@@ -108,30 +108,6 @@
 </div>
 <div class="refsect1">
 <a name="gst-plugins-base-libs-gstffts16.description"></a><h2>Description</h2>
-<p><a class="link" href="gst-plugins-base-libs-gstffts16.html#GstFFTS16" title="GstFFTS16"><span class="type">GstFFTS16</span></a> provides a FFT implementation and related functions for
-signed 16 bit integer samples. To use this call <a class="link" href="gst-plugins-base-libs-gstffts16.html#gst-fft-s16-new" title="gst_fft_s16_new ()"><code class="function">gst_fft_s16_new()</code></a> for
-allocating a <a class="link" href="gst-plugins-base-libs-gstffts16.html#GstFFTS16" title="GstFFTS16"><span class="type">GstFFTS16</span></a> instance with the appropriate parameters and
-then call <a class="link" href="gst-plugins-base-libs-gstffts16.html#gst-fft-s16-fft" title="gst_fft_s16_fft ()"><code class="function">gst_fft_s16_fft()</code></a> or <a class="link" href="gst-plugins-base-libs-gstffts16.html#gst-fft-s16-inverse-fft" title="gst_fft_s16_inverse_fft ()"><code class="function">gst_fft_s16_inverse_fft()</code></a> to perform the
-FFT or inverse FFT on a buffer of samples.</p>
-<p>After use free the <a class="link" href="gst-plugins-base-libs-gstffts16.html#GstFFTS16" title="GstFFTS16"><span class="type">GstFFTS16</span></a> instance with <a class="link" href="gst-plugins-base-libs-gstffts16.html#gst-fft-s16-free" title="gst_fft_s16_free ()"><code class="function">gst_fft_s16_free()</code></a>.</p>
-<p>For the best performance use <a class="link" href="gst-plugins-base-libs-gstfft.html#gst-fft-next-fast-length" title="gst_fft_next_fast_length ()"><code class="function">gst_fft_next_fast_length()</code></a> to get a
-number that is entirely a product of 2, 3 and 5 and use this as the
-<em class="parameter"><code>len</code></em>
- parameter for <a class="link" href="gst-plugins-base-libs-gstffts16.html#gst-fft-s16-new" title="gst_fft_s16_new ()"><code class="function">gst_fft_s16_new()</code></a>.</p>
-<p>The <em class="parameter"><code>len</code></em>
- parameter specifies the number of samples in the time domain that
-will be processed or generated. The number of samples in the frequency domain
-is <em class="parameter"><code>len</code></em>
-/2 + 1. To get n samples in the frequency domain use 2*n - 2 as <em class="parameter"><code>len</code></em>
-.</p>
-<p>Before performing the FFT on time domain data it usually makes sense
-to apply a window function to it. For this <a class="link" href="gst-plugins-base-libs-gstffts16.html#gst-fft-s16-window" title="gst_fft_s16_window ()"><code class="function">gst_fft_s16_window()</code></a> can comfortably
-be used.</p>
-<p>Be aware, that you can't simply run <a class="link" href="gst-plugins-base-libs-gstffts16.html#gst-fft-s16-inverse-fft" title="gst_fft_s16_inverse_fft ()"><code class="function">gst_fft_s16_inverse_fft()</code></a> on the
-resulting frequency data of <a class="link" href="gst-plugins-base-libs-gstffts16.html#gst-fft-s16-fft" title="gst_fft_s16_fft ()"><code class="function">gst_fft_s16_fft()</code></a> to get the original data back.
-The relation between them is iFFT (FFT (x)) = x / nfft where nfft is the
-length of the FFT. This also has to be taken into account when calculation
-the magnitude of the frequency data.</p>
 </div>
 <div class="refsect1">
 <a name="gst-plugins-base-libs-gstffts16.functions_details"></a><h2>Functions</h2>
@@ -140,39 +116,6 @@
 <pre class="programlisting"><a class="link" href="gst-plugins-base-libs-gstffts16.html#GstFFTS16" title="GstFFTS16"><span class="returnvalue">GstFFTS16</span></a> *
 gst_fft_s16_new (<em class="parameter"><code><a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#gint"><span class="type">gint</span></a> len</code></em>,
                  <em class="parameter"><code><a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a> inverse</code></em>);</pre>
-<p>This returns a new <a class="link" href="gst-plugins-base-libs-gstffts16.html#GstFFTS16" title="GstFFTS16"><span class="type">GstFFTS16</span></a> instance with the given parameters. It makes
-sense to keep one instance for several calls for speed reasons.</p>
-<p><em class="parameter"><code>len</code></em>
- must be even and to get the best performance a product of
-2, 3 and 5. To get the next number with this characteristics use
-<a class="link" href="gst-plugins-base-libs-gstfft.html#gst-fft-next-fast-length" title="gst_fft_next_fast_length ()"><code class="function">gst_fft_next_fast_length()</code></a>.</p>
-<p><span class="annotation">[<acronym title="Exposed in C code, not necessarily available in other languages."><span class="acronym">skip</span></acronym>]</span></p>
-<div class="refsect3">
-<a name="gst-fft-s16-new.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>len</p></td>
-<td class="parameter_description"><p>Length of the FFT in the time domain</p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-<tr>
-<td class="parameter_name"><p>inverse</p></td>
-<td class="parameter_description"><p><a href="/usr/share/gtk-doc/html/glibglib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a> if the <a class="link" href="gst-plugins-base-libs-gstffts16.html#GstFFTS16" title="GstFFTS16"><span class="type">GstFFTS16</span></a> instance should be used for the inverse FFT</p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-</tbody>
-</table></div>
-</div>
-<div class="refsect3">
-<a name="gst-fft-s16-new.returns"></a><h4>Returns</h4>
-<p> a new <a class="link" href="gst-plugins-base-libs-gstffts16.html#GstFFTS16" title="GstFFTS16"><span class="type">GstFFTS16</span></a> instance.</p>
-</div>
 </div>
 <hr>
 <div class="refsect2">
@@ -181,44 +124,6 @@
 gst_fft_s16_fft (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstffts16.html#GstFFTS16" title="GstFFTS16"><span class="type">GstFFTS16</span></a> *self</code></em>,
                  <em class="parameter"><code>const <a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#gint16"><span class="type">gint16</span></a> *timedata</code></em>,
                  <em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstffts16.html#GstFFTS16Complex" title="struct GstFFTS16Complex"><span class="type">GstFFTS16Complex</span></a> *freqdata</code></em>);</pre>
-<p>This performs the FFT on <em class="parameter"><code>timedata</code></em>
- and puts the result in <em class="parameter"><code>freqdata</code></em>
-.</p>
-<p><em class="parameter"><code>timedata</code></em>
- must have as many samples as specified with the <em class="parameter"><code>len</code></em>
- parameter while
-allocating the <a class="link" href="gst-plugins-base-libs-gstffts16.html#GstFFTS16" title="GstFFTS16"><span class="type">GstFFTS16</span></a> instance with <a class="link" href="gst-plugins-base-libs-gstffts16.html#gst-fft-s16-new" title="gst_fft_s16_new ()"><code class="function">gst_fft_s16_new()</code></a>.</p>
-<p><em class="parameter"><code>freqdata</code></em>
- must be large enough to hold <em class="parameter"><code>len</code></em>
-/2 + 1 <a class="link" href="gst-plugins-base-libs-gstffts16.html#GstFFTS16Complex" title="struct GstFFTS16Complex"><span class="type">GstFFTS16Complex</span></a> frequency
-domain samples.</p>
-<div class="refsect3">
-<a name="gst-fft-s16-fft.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>self</p></td>
-<td class="parameter_description"><p><a class="link" href="gst-plugins-base-libs-gstffts16.html#GstFFTS16" title="GstFFTS16"><span class="type">GstFFTS16</span></a> instance for this call</p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-<tr>
-<td class="parameter_name"><p>timedata</p></td>
-<td class="parameter_description"><p>Buffer of the samples in the time domain</p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-<tr>
-<td class="parameter_name"><p>freqdata</p></td>
-<td class="parameter_description"><p>Target buffer for the samples in the frequency domain</p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-</tbody>
-</table></div>
-</div>
 </div>
 <hr>
 <div class="refsect2">
@@ -227,44 +132,6 @@
 gst_fft_s16_inverse_fft (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstffts16.html#GstFFTS16" title="GstFFTS16"><span class="type">GstFFTS16</span></a> *self</code></em>,
                          <em class="parameter"><code>const <a class="link" href="gst-plugins-base-libs-gstffts16.html#GstFFTS16Complex" title="struct GstFFTS16Complex"><span class="type">GstFFTS16Complex</span></a> *freqdata</code></em>,
                          <em class="parameter"><code><a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#gint16"><span class="type">gint16</span></a> *timedata</code></em>);</pre>
-<p>This performs the inverse FFT on <em class="parameter"><code>freqdata</code></em>
- and puts the result in <em class="parameter"><code>timedata</code></em>
-.</p>
-<p><em class="parameter"><code>freqdata</code></em>
- must have <em class="parameter"><code>len</code></em>
-/2 + 1 samples, where <em class="parameter"><code>len</code></em>
- is the parameter specified
-while allocating the <a class="link" href="gst-plugins-base-libs-gstffts16.html#GstFFTS16" title="GstFFTS16"><span class="type">GstFFTS16</span></a> instance with <a class="link" href="gst-plugins-base-libs-gstffts16.html#gst-fft-s16-new" title="gst_fft_s16_new ()"><code class="function">gst_fft_s16_new()</code></a>.</p>
-<p><em class="parameter"><code>timedata</code></em>
- must be large enough to hold <em class="parameter"><code>len</code></em>
- time domain samples.</p>
-<div class="refsect3">
-<a name="gst-fft-s16-inverse-fft.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>self</p></td>
-<td class="parameter_description"><p><a class="link" href="gst-plugins-base-libs-gstffts16.html#GstFFTS16" title="GstFFTS16"><span class="type">GstFFTS16</span></a> instance for this call</p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-<tr>
-<td class="parameter_name"><p>freqdata</p></td>
-<td class="parameter_description"><p>Buffer of the samples in the frequency domain</p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-<tr>
-<td class="parameter_name"><p>timedata</p></td>
-<td class="parameter_description"><p>Target buffer for the samples in the time domain</p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-</tbody>
-</table></div>
-</div>
 </div>
 <hr>
 <div class="refsect2">
@@ -273,59 +140,12 @@
 gst_fft_s16_window (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstffts16.html#GstFFTS16" title="GstFFTS16"><span class="type">GstFFTS16</span></a> *self</code></em>,
                     <em class="parameter"><code><a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#gint16"><span class="type">gint16</span></a> *timedata</code></em>,
                     <em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstfft.html#GstFFTWindow" title="enum GstFFTWindow"><span class="type">GstFFTWindow</span></a> window</code></em>);</pre>
-<p>This calls the window function <em class="parameter"><code>window</code></em>
- on the <em class="parameter"><code>timedata</code></em>
- sample buffer.</p>
-<div class="refsect3">
-<a name="gst-fft-s16-window.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>self</p></td>
-<td class="parameter_description"><p><a class="link" href="gst-plugins-base-libs-gstffts16.html#GstFFTS16" title="GstFFTS16"><span class="type">GstFFTS16</span></a> instance for this call</p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-<tr>
-<td class="parameter_name"><p>timedata</p></td>
-<td class="parameter_description"><p>Time domain samples</p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-<tr>
-<td class="parameter_name"><p>window</p></td>
-<td class="parameter_description"><p>Window function to apply</p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-</tbody>
-</table></div>
-</div>
 </div>
 <hr>
 <div class="refsect2">
 <a name="gst-fft-s16-free"></a><h3>gst_fft_s16_free ()</h3>
 <pre class="programlisting"><span class="returnvalue">void</span>
 gst_fft_s16_free (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstffts16.html#GstFFTS16" title="GstFFTS16"><span class="type">GstFFTS16</span></a> *self</code></em>);</pre>
-<p>This frees the memory allocated for <em class="parameter"><code>self</code></em>
-.</p>
-<div class="refsect3">
-<a name="gst-fft-s16-free.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>self</p></td>
-<td class="parameter_description"><p><a class="link" href="gst-plugins-base-libs-gstffts16.html#GstFFTS16" title="GstFFTS16"><span class="type">GstFFTS16</span></a> instance for this call</p></td>
-<td class="parameter_annotations"> </td>
-</tr></tbody>
-</table></div>
-</div>
 </div>
 </div>
 <div class="refsect1">
@@ -342,30 +162,6 @@
   gint16 i;
 };
 </pre>
-<p>Data type for complex numbers composed of
-signed 16 bit integers.</p>
-<div class="refsect3">
-<a name="GstFFTS16Complex.members"></a><h4>Members</h4>
-<div class="informaltable"><table class="informaltable" width="100%" border="0">
-<colgroup>
-<col width="300px" class="struct_members_name">
-<col class="struct_members_description">
-<col width="200px" class="struct_members_annotations">
-</colgroup>
-<tbody>
-<tr>
-<td class="struct_member_name"><p><a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#gint16"><span class="type">gint16</span></a> <em class="structfield"><code><a name="GstFFTS16Complex.r"></a>r</code></em>;</p></td>
-<td class="struct_member_description"><p>Real part</p></td>
-<td class="struct_member_annotations"> </td>
-</tr>
-<tr>
-<td class="struct_member_name"><p><a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#gint16"><span class="type">gint16</span></a> <em class="structfield"><code><a name="GstFFTS16Complex.i"></a>i</code></em>;</p></td>
-<td class="struct_member_description"><p>Imaginary part</p></td>
-<td class="struct_member_annotations"> </td>
-</tr>
-</tbody>
-</table></div>
-</div>
 </div>
 </div>
 </div>
diff --git a/docs/libs/html/gst-plugins-base-libs-gstffts32.html b/docs/libs/html/gst-plugins-base-libs-gstffts32.html
index 1bdc51e..56e79eb 100644
--- a/docs/libs/html/gst-plugins-base-libs-gstffts32.html
+++ b/docs/libs/html/gst-plugins-base-libs-gstffts32.html
@@ -27,7 +27,7 @@
 <div class="refnamediv"><table width="100%"><tr>
 <td valign="top">
 <h2><span class="refentrytitle"><a name="gst-plugins-base-libs-gstffts32.top_of_page"></a>gstffts32</span></h2>
-<p>gstffts32 — FFT functions for signed 32 bit integer samples</p>
+<p>gstffts32</p>
 </td>
 <td class="gallery_image" valign="top" align="right"></td>
 </tr></table></div>
@@ -108,30 +108,6 @@
 </div>
 <div class="refsect1">
 <a name="gst-plugins-base-libs-gstffts32.description"></a><h2>Description</h2>
-<p><a class="link" href="gst-plugins-base-libs-gstffts32.html#GstFFTS32" title="GstFFTS32"><span class="type">GstFFTS32</span></a> provides a FFT implementation and related functions for
-signed 32 bit integer samples. To use this call <a class="link" href="gst-plugins-base-libs-gstffts32.html#gst-fft-s32-new" title="gst_fft_s32_new ()"><code class="function">gst_fft_s32_new()</code></a> for
-allocating a <a class="link" href="gst-plugins-base-libs-gstffts32.html#GstFFTS32" title="GstFFTS32"><span class="type">GstFFTS32</span></a> instance with the appropriate parameters and
-then call <a class="link" href="gst-plugins-base-libs-gstffts32.html#gst-fft-s32-fft" title="gst_fft_s32_fft ()"><code class="function">gst_fft_s32_fft()</code></a> or <a class="link" href="gst-plugins-base-libs-gstffts32.html#gst-fft-s32-inverse-fft" title="gst_fft_s32_inverse_fft ()"><code class="function">gst_fft_s32_inverse_fft()</code></a> to perform the
-FFT or inverse FFT on a buffer of samples.</p>
-<p>After use free the <a class="link" href="gst-plugins-base-libs-gstffts32.html#GstFFTS32" title="GstFFTS32"><span class="type">GstFFTS32</span></a> instance with <a class="link" href="gst-plugins-base-libs-gstffts32.html#gst-fft-s32-free" title="gst_fft_s32_free ()"><code class="function">gst_fft_s32_free()</code></a>.</p>
-<p>For the best performance use <a class="link" href="gst-plugins-base-libs-gstfft.html#gst-fft-next-fast-length" title="gst_fft_next_fast_length ()"><code class="function">gst_fft_next_fast_length()</code></a> to get a
-number that is entirely a product of 2, 3 and 5 and use this as the
-<em class="parameter"><code>len</code></em>
- parameter for <a class="link" href="gst-plugins-base-libs-gstffts32.html#gst-fft-s32-new" title="gst_fft_s32_new ()"><code class="function">gst_fft_s32_new()</code></a>.</p>
-<p>The <em class="parameter"><code>len</code></em>
- parameter specifies the number of samples in the time domain that
-will be processed or generated. The number of samples in the frequency domain
-is <em class="parameter"><code>len</code></em>
-/2 + 1. To get n samples in the frequency domain use 2*n - 2 as <em class="parameter"><code>len</code></em>
-.</p>
-<p>Before performing the FFT on time domain data it usually makes sense
-to apply a window function to it. For this <a class="link" href="gst-plugins-base-libs-gstffts32.html#gst-fft-s32-window" title="gst_fft_s32_window ()"><code class="function">gst_fft_s32_window()</code></a> can comfortably
-be used.</p>
-<p>Be aware, that you can't simply run <a class="link" href="gst-plugins-base-libs-gstffts32.html#gst-fft-s32-inverse-fft" title="gst_fft_s32_inverse_fft ()"><code class="function">gst_fft_s32_inverse_fft()</code></a> on the
-resulting frequency data of <a class="link" href="gst-plugins-base-libs-gstffts32.html#gst-fft-s32-fft" title="gst_fft_s32_fft ()"><code class="function">gst_fft_s32_fft()</code></a> to get the original data back.
-The relation between them is iFFT (FFT (x)) = x / nfft where nfft is the
-length of the FFT. This also has to be taken into account when calculation
-the magnitude of the frequency data.</p>
 </div>
 <div class="refsect1">
 <a name="gst-plugins-base-libs-gstffts32.functions_details"></a><h2>Functions</h2>
@@ -140,39 +116,6 @@
 <pre class="programlisting"><a class="link" href="gst-plugins-base-libs-gstffts32.html#GstFFTS32" title="GstFFTS32"><span class="returnvalue">GstFFTS32</span></a> *
 gst_fft_s32_new (<em class="parameter"><code><a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#gint"><span class="type">gint</span></a> len</code></em>,
                  <em class="parameter"><code><a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a> inverse</code></em>);</pre>
-<p>This returns a new <a class="link" href="gst-plugins-base-libs-gstffts32.html#GstFFTS32" title="GstFFTS32"><span class="type">GstFFTS32</span></a> instance with the given parameters. It makes
-sense to keep one instance for several calls for speed reasons.</p>
-<p><em class="parameter"><code>len</code></em>
- must be even and to get the best performance a product of
-2, 3 and 5. To get the next number with this characteristics use
-<a class="link" href="gst-plugins-base-libs-gstfft.html#gst-fft-next-fast-length" title="gst_fft_next_fast_length ()"><code class="function">gst_fft_next_fast_length()</code></a>.</p>
-<p><span class="annotation">[<acronym title="Exposed in C code, not necessarily available in other languages."><span class="acronym">skip</span></acronym>]</span></p>
-<div class="refsect3">
-<a name="gst-fft-s32-new.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>len</p></td>
-<td class="parameter_description"><p>Length of the FFT in the time domain</p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-<tr>
-<td class="parameter_name"><p>inverse</p></td>
-<td class="parameter_description"><p><a href="/usr/share/gtk-doc/html/glibglib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a> if the <a class="link" href="gst-plugins-base-libs-gstffts32.html#GstFFTS32" title="GstFFTS32"><span class="type">GstFFTS32</span></a> instance should be used for the inverse FFT</p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-</tbody>
-</table></div>
-</div>
-<div class="refsect3">
-<a name="gst-fft-s32-new.returns"></a><h4>Returns</h4>
-<p> a new <a class="link" href="gst-plugins-base-libs-gstffts32.html#GstFFTS32" title="GstFFTS32"><span class="type">GstFFTS32</span></a> instance.</p>
-</div>
 </div>
 <hr>
 <div class="refsect2">
@@ -181,44 +124,6 @@
 gst_fft_s32_fft (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstffts32.html#GstFFTS32" title="GstFFTS32"><span class="type">GstFFTS32</span></a> *self</code></em>,
                  <em class="parameter"><code>const <a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#gint32"><span class="type">gint32</span></a> *timedata</code></em>,
                  <em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstffts32.html#GstFFTS32Complex" title="struct GstFFTS32Complex"><span class="type">GstFFTS32Complex</span></a> *freqdata</code></em>);</pre>
-<p>This performs the FFT on <em class="parameter"><code>timedata</code></em>
- and puts the result in <em class="parameter"><code>freqdata</code></em>
-.</p>
-<p><em class="parameter"><code>timedata</code></em>
- must have as many samples as specified with the <em class="parameter"><code>len</code></em>
- parameter while
-allocating the <a class="link" href="gst-plugins-base-libs-gstffts32.html#GstFFTS32" title="GstFFTS32"><span class="type">GstFFTS32</span></a> instance with <a class="link" href="gst-plugins-base-libs-gstffts32.html#gst-fft-s32-new" title="gst_fft_s32_new ()"><code class="function">gst_fft_s32_new()</code></a>.</p>
-<p><em class="parameter"><code>freqdata</code></em>
- must be large enough to hold <em class="parameter"><code>len</code></em>
-/2 + 1 <a class="link" href="gst-plugins-base-libs-gstffts32.html#GstFFTS32Complex" title="struct GstFFTS32Complex"><span class="type">GstFFTS32Complex</span></a> frequency
-domain samples.</p>
-<div class="refsect3">
-<a name="gst-fft-s32-fft.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>self</p></td>
-<td class="parameter_description"><p><a class="link" href="gst-plugins-base-libs-gstffts32.html#GstFFTS32" title="GstFFTS32"><span class="type">GstFFTS32</span></a> instance for this call</p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-<tr>
-<td class="parameter_name"><p>timedata</p></td>
-<td class="parameter_description"><p>Buffer of the samples in the time domain</p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-<tr>
-<td class="parameter_name"><p>freqdata</p></td>
-<td class="parameter_description"><p>Target buffer for the samples in the frequency domain</p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-</tbody>
-</table></div>
-</div>
 </div>
 <hr>
 <div class="refsect2">
@@ -227,44 +132,6 @@
 gst_fft_s32_inverse_fft (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstffts32.html#GstFFTS32" title="GstFFTS32"><span class="type">GstFFTS32</span></a> *self</code></em>,
                          <em class="parameter"><code>const <a class="link" href="gst-plugins-base-libs-gstffts32.html#GstFFTS32Complex" title="struct GstFFTS32Complex"><span class="type">GstFFTS32Complex</span></a> *freqdata</code></em>,
                          <em class="parameter"><code><a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#gint32"><span class="type">gint32</span></a> *timedata</code></em>);</pre>
-<p>This performs the inverse FFT on <em class="parameter"><code>freqdata</code></em>
- and puts the result in <em class="parameter"><code>timedata</code></em>
-.</p>
-<p><em class="parameter"><code>freqdata</code></em>
- must have <em class="parameter"><code>len</code></em>
-/2 + 1 samples, where <em class="parameter"><code>len</code></em>
- is the parameter specified
-while allocating the <a class="link" href="gst-plugins-base-libs-gstffts32.html#GstFFTS32" title="GstFFTS32"><span class="type">GstFFTS32</span></a> instance with <a class="link" href="gst-plugins-base-libs-gstffts32.html#gst-fft-s32-new" title="gst_fft_s32_new ()"><code class="function">gst_fft_s32_new()</code></a>.</p>
-<p><em class="parameter"><code>timedata</code></em>
- must be large enough to hold <em class="parameter"><code>len</code></em>
- time domain samples.</p>
-<div class="refsect3">
-<a name="gst-fft-s32-inverse-fft.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>self</p></td>
-<td class="parameter_description"><p><a class="link" href="gst-plugins-base-libs-gstffts32.html#GstFFTS32" title="GstFFTS32"><span class="type">GstFFTS32</span></a> instance for this call</p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-<tr>
-<td class="parameter_name"><p>freqdata</p></td>
-<td class="parameter_description"><p>Buffer of the samples in the frequency domain</p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-<tr>
-<td class="parameter_name"><p>timedata</p></td>
-<td class="parameter_description"><p>Target buffer for the samples in the time domain</p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-</tbody>
-</table></div>
-</div>
 </div>
 <hr>
 <div class="refsect2">
@@ -273,59 +140,12 @@
 gst_fft_s32_window (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstffts32.html#GstFFTS32" title="GstFFTS32"><span class="type">GstFFTS32</span></a> *self</code></em>,
                     <em class="parameter"><code><a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#gint32"><span class="type">gint32</span></a> *timedata</code></em>,
                     <em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstfft.html#GstFFTWindow" title="enum GstFFTWindow"><span class="type">GstFFTWindow</span></a> window</code></em>);</pre>
-<p>This calls the window function <em class="parameter"><code>window</code></em>
- on the <em class="parameter"><code>timedata</code></em>
- sample buffer.</p>
-<div class="refsect3">
-<a name="gst-fft-s32-window.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>self</p></td>
-<td class="parameter_description"><p><a class="link" href="gst-plugins-base-libs-gstffts32.html#GstFFTS32" title="GstFFTS32"><span class="type">GstFFTS32</span></a> instance for this call</p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-<tr>
-<td class="parameter_name"><p>timedata</p></td>
-<td class="parameter_description"><p>Time domain samples</p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-<tr>
-<td class="parameter_name"><p>window</p></td>
-<td class="parameter_description"><p>Window function to apply</p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-</tbody>
-</table></div>
-</div>
 </div>
 <hr>
 <div class="refsect2">
 <a name="gst-fft-s32-free"></a><h3>gst_fft_s32_free ()</h3>
 <pre class="programlisting"><span class="returnvalue">void</span>
 gst_fft_s32_free (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstffts32.html#GstFFTS32" title="GstFFTS32"><span class="type">GstFFTS32</span></a> *self</code></em>);</pre>
-<p>This frees the memory allocated for <em class="parameter"><code>self</code></em>
-.</p>
-<div class="refsect3">
-<a name="gst-fft-s32-free.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>self</p></td>
-<td class="parameter_description"><p><a class="link" href="gst-plugins-base-libs-gstffts32.html#GstFFTS32" title="GstFFTS32"><span class="type">GstFFTS32</span></a> instance for this call</p></td>
-<td class="parameter_annotations"> </td>
-</tr></tbody>
-</table></div>
-</div>
 </div>
 </div>
 <div class="refsect1">
@@ -342,30 +162,6 @@
   gint32 i;
 };
 </pre>
-<p>Data type for complex numbers composed of
-signed 32 bit integers.</p>
-<div class="refsect3">
-<a name="GstFFTS32Complex.members"></a><h4>Members</h4>
-<div class="informaltable"><table class="informaltable" width="100%" border="0">
-<colgroup>
-<col width="300px" class="struct_members_name">
-<col class="struct_members_description">
-<col width="200px" class="struct_members_annotations">
-</colgroup>
-<tbody>
-<tr>
-<td class="struct_member_name"><p><a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#gint32"><span class="type">gint32</span></a> <em class="structfield"><code><a name="GstFFTS32Complex.r"></a>r</code></em>;</p></td>
-<td class="struct_member_description"><p>Real part</p></td>
-<td class="struct_member_annotations"> </td>
-</tr>
-<tr>
-<td class="struct_member_name"><p><a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#gint32"><span class="type">gint32</span></a> <em class="structfield"><code><a name="GstFFTS32Complex.i"></a>i</code></em>;</p></td>
-<td class="struct_member_description"><p>Imaginary part</p></td>
-<td class="struct_member_annotations"> </td>
-</tr>
-</tbody>
-</table></div>
-</div>
 </div>
 </div>
 </div>
diff --git a/docs/libs/html/gst-plugins-base-libs-gstmikey.html b/docs/libs/html/gst-plugins-base-libs-gstmikey.html
index c8ade42..df33566 100644
--- a/docs/libs/html/gst-plugins-base-libs-gstmikey.html
+++ b/docs/libs/html/gst-plugins-base-libs-gstmikey.html
@@ -27,7 +27,7 @@
 <div class="refnamediv"><table width="100%"><tr>
 <td valign="top">
 <h2><span class="refentrytitle"><a name="gst-plugins-base-libs-gstmikey.top_of_page"></a>gstmikey</span></h2>
-<p>gstmikey — Helper methods for dealing with MIKEY messages</p>
+<p>gstmikey</p>
 </td>
 <td class="gallery_image" valign="top" align="right"></td>
 </tr></table></div>
@@ -527,12 +527,6 @@
 </div>
 <div class="refsect1">
 <a name="gst-plugins-base-libs-gstmikey.description"></a><h2>Description</h2>
-<div class="refsect2">
-<a name="id-1.2.12.3.6.2"></a><p>
-The GstMIKEY helper functions makes it easy to parse and create MIKEY
-messages.
-</p>
-</div>
 </div>
 <div class="refsect1">
 <a name="gst-plugins-base-libs-gstmikey.functions_details"></a><h2>Functions</h2>
@@ -540,12 +534,6 @@
 <a name="gst-mikey-message-new"></a><h3>gst_mikey_message_new ()</h3>
 <pre class="programlisting"><a class="link" href="gst-plugins-base-libs-gstmikey.html#GstMIKEYMessage" title="struct GstMIKEYMessage"><span class="returnvalue">GstMIKEYMessage</span></a> *
 gst_mikey_message_new (<em class="parameter"><code><span class="type">void</span></code></em>);</pre>
-<p>Make a new MIKEY message.</p>
-<div class="refsect3">
-<a name="gst-mikey-message-new.returns"></a><h4>Returns</h4>
-<p> a new <a class="link" href="gst-plugins-base-libs-gstmikey.html#GstMIKEYMessage" title="struct GstMIKEYMessage"><span class="type">GstMIKEYMessage</span></a> on success</p>
-</div>
-<p class="since">Since: 1.4</p>
 </div>
 <hr>
 <div class="refsect2">
@@ -554,74 +542,12 @@
 gst_mikey_message_new_from_bytes (<em class="parameter"><code><a href="/usr/share/gtk-doc/html/glibglib-Byte-Arrays.html#GBytes"><span class="type">GBytes</span></a> *bytes</code></em>,
                                   <em class="parameter"><code><span class="type">GstMIKEYDecryptInfo</span> *info</code></em>,
                                   <em class="parameter"><code><a href="/usr/share/gtk-doc/html/glibglib-Error-Reporting.html#GError"><span class="type">GError</span></a> **error</code></em>);</pre>
-<p>Make a new <a class="link" href="gst-plugins-base-libs-gstmikey.html#GstMIKEYMessage" title="struct GstMIKEYMessage"><span class="type">GstMIKEYMessage</span></a> from <em class="parameter"><code>bytes</code></em>
-.</p>
-<div class="refsect3">
-<a name="gst-mikey-message-new-from-bytes.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>bytes</p></td>
-<td class="parameter_description"><p>a <a href="/usr/share/gtk-doc/html/glibglib-Byte-Arrays.html#GBytes"><span class="type">GBytes</span></a></p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-<tr>
-<td class="parameter_name"><p>info</p></td>
-<td class="parameter_description"><p>a <span class="type">GstMIKEYDecryptInfo</span></p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-<tr>
-<td class="parameter_name"><p>error</p></td>
-<td class="parameter_description"><p>a <a href="/usr/share/gtk-doc/html/glibglib-Error-Reporting.html#GError"><span class="type">GError</span></a></p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-</tbody>
-</table></div>
-</div>
-<div class="refsect3">
-<a name="gst-mikey-message-new-from-bytes.returns"></a><h4>Returns</h4>
-<p> a new <a class="link" href="gst-plugins-base-libs-gstmikey.html#GstMIKEYMessage" title="struct GstMIKEYMessage"><span class="type">GstMIKEYMessage</span></a></p>
-</div>
-<p class="since">Since: 1.4</p>
 </div>
 <hr>
 <div class="refsect2">
 <a name="gst-mikey-message-new-from-caps"></a><h3>gst_mikey_message_new_from_caps ()</h3>
 <pre class="programlisting"><a class="link" href="gst-plugins-base-libs-gstmikey.html#GstMIKEYMessage" title="struct GstMIKEYMessage"><span class="returnvalue">GstMIKEYMessage</span></a> *
 gst_mikey_message_new_from_caps (<em class="parameter"><code><a href="/usr/share/gtk-doc/html/gstreamer-1.0GstCaps.html#GstCaps-struct"><span class="type">GstCaps</span></a> *caps</code></em>);</pre>
-<p>Makes mikey message including:</p>
-<div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; ">
-<li class="listitem"><p>Security Policy Payload</p></li>
-<li class="listitem"><p>Key Data Transport Payload</p></li>
-<li class="listitem"><p>Key Data Sub-Payload</p></li>
-</ul></div>
-<div class="refsect3">
-<a name="gst-mikey-message-new-from-caps.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>caps</p></td>
-<td class="parameter_description"><p>a <a href="/usr/share/gtk-doc/html/gstreamer-1.0GstCaps.html#GstCaps-struct"><span class="type">GstCaps</span></a>, including SRTP parameters (srtp/srtcp cipher, authorization, key data)</p></td>
-<td class="parameter_annotations"> </td>
-</tr></tbody>
-</table></div>
-</div>
-<div class="refsect3">
-<a name="gst-mikey-message-new-from-caps.returns"></a><h4>Returns</h4>
-<p> a <a class="link" href="gst-plugins-base-libs-gstmikey.html#GstMIKEYMessage" title="struct GstMIKEYMessage"><span class="type">GstMIKEYMessage</span></a>,
-or <a href="/usr/share/gtk-doc/html/glibglib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a> if there is no srtp information in the caps. </p>
-<p><span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>]</span></p>
-</div>
-<p class="since">Since: 1.8</p>
 </div>
 <hr>
 <div class="refsect2">
@@ -631,51 +557,6 @@
                                  <em class="parameter"><code><a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#gsize"><span class="type">gsize</span></a> size</code></em>,
                                  <em class="parameter"><code><span class="type">GstMIKEYDecryptInfo</span> *info</code></em>,
                                  <em class="parameter"><code><a href="/usr/share/gtk-doc/html/glibglib-Error-Reporting.html#GError"><span class="type">GError</span></a> **error</code></em>);</pre>
-<p>Parse <em class="parameter"><code>size</code></em>
- bytes from <em class="parameter"><code>data</code></em>
- into a <a class="link" href="gst-plugins-base-libs-gstmikey.html#GstMIKEYMessage" title="struct GstMIKEYMessage"><span class="type">GstMIKEYMessage</span></a>. <em class="parameter"><code>info</code></em>
- contains the
-parameters to decrypt and verify the data.</p>
-<div class="refsect3">
-<a name="gst-mikey-message-new-from-data.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>data</p></td>
-<td class="parameter_description"><p> bytes to read. </p></td>
-<td class="parameter_annotations"><span class="annotation">[<acronym title="Parameter points to an array of items."><span class="acronym">array</span></acronym> length=size][<acronym title="Generics and defining elements of containers and arrays."><span class="acronym">element-type</span></acronym> guint8]</span></td>
-</tr>
-<tr>
-<td class="parameter_name"><p>size</p></td>
-<td class="parameter_description"><p>length of <em class="parameter"><code>data</code></em>
-</p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-<tr>
-<td class="parameter_name"><p>info</p></td>
-<td class="parameter_description"><p><span class="type">GstMIKEYDecryptInfo</span></p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-<tr>
-<td class="parameter_name"><p>error</p></td>
-<td class="parameter_description"><p>a <a href="/usr/share/gtk-doc/html/glibglib-Error-Reporting.html#GError"><span class="type">GError</span></a></p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-</tbody>
-</table></div>
-</div>
-<div class="refsect3">
-<a name="gst-mikey-message-new-from-data.returns"></a><h4>Returns</h4>
-<p> a <a class="link" href="gst-plugins-base-libs-gstmikey.html#GstMIKEYMessage" title="struct GstMIKEYMessage"><span class="type">GstMIKEYMessage</span></a> on success or <a href="/usr/share/gtk-doc/html/glibglib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a> when parsing failed and
-<em class="parameter"><code>error</code></em>
-will be set.</p>
-</div>
-<p class="since">Since: 1.4</p>
 </div>
 <hr>
 <div class="refsect2">
@@ -684,149 +565,30 @@
 gst_mikey_message_to_bytes (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstmikey.html#GstMIKEYMessage" title="struct GstMIKEYMessage"><span class="type">GstMIKEYMessage</span></a> *msg</code></em>,
                             <em class="parameter"><code><span class="type">GstMIKEYEncryptInfo</span> *info</code></em>,
                             <em class="parameter"><code><a href="/usr/share/gtk-doc/html/glibglib-Error-Reporting.html#GError"><span class="type">GError</span></a> **error</code></em>);</pre>
-<p>Convert <em class="parameter"><code>msg</code></em>
- to a <a href="/usr/share/gtk-doc/html/glibglib-Byte-Arrays.html#GBytes"><span class="type">GBytes</span></a>.</p>
-<div class="refsect3">
-<a name="gst-mikey-message-to-bytes.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>msg</p></td>
-<td class="parameter_description"><p>a <a class="link" href="gst-plugins-base-libs-gstmikey.html#GstMIKEYMessage" title="struct GstMIKEYMessage"><span class="type">GstMIKEYMessage</span></a></p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-<tr>
-<td class="parameter_name"><p>info</p></td>
-<td class="parameter_description"><p>a <span class="type">GstMIKEYEncryptInfo</span></p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-<tr>
-<td class="parameter_name"><p>error</p></td>
-<td class="parameter_description"><p>a <a href="/usr/share/gtk-doc/html/glibglib-Error-Reporting.html#GError"><span class="type">GError</span></a></p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-</tbody>
-</table></div>
-</div>
-<div class="refsect3">
-<a name="gst-mikey-message-to-bytes.returns"></a><h4>Returns</h4>
-<p> a new <a href="/usr/share/gtk-doc/html/glibglib-Byte-Arrays.html#GBytes"><span class="type">GBytes</span></a> for <em class="parameter"><code>msg</code></em>
-.</p>
-</div>
-<p class="since">Since: 1.4</p>
 </div>
 <hr>
 <div class="refsect2">
 <a name="gst-mikey-message-base64-encode"></a><h3>gst_mikey_message_base64_encode ()</h3>
 <pre class="programlisting"><a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> *
 gst_mikey_message_base64_encode (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstmikey.html#GstMIKEYMessage" title="struct GstMIKEYMessage"><span class="type">GstMIKEYMessage</span></a> *msg</code></em>);</pre>
-<div class="refsect3">
-<a name="gst-mikey-message-base64-encode.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>msg</p></td>
-<td class="parameter_description"><p>a <a class="link" href="gst-plugins-base-libs-gstmikey.html#GstMIKEYMessage" title="struct GstMIKEYMessage"><span class="type">GstMIKEYMessage</span></a></p></td>
-<td class="parameter_annotations"> </td>
-</tr></tbody>
-</table></div>
-</div>
-<div class="refsect3">
-<a name="gst-mikey-message-base64-encode.returns"></a><h4>Returns</h4>
-<p> a <a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#gchar"><span class="type">gchar</span></a>, base64-encoded data. </p>
-<p><span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>]</span></p>
-</div>
-<p class="since">Since: 1.8</p>
 </div>
 <hr>
 <div class="refsect2">
 <a name="gst-mikey-message-copy"></a><h3>gst_mikey_message_copy ()</h3>
 <pre class="programlisting"><a class="link" href="gst-plugins-base-libs-gstmikey.html#GstMIKEYMessage" title="struct GstMIKEYMessage"><span class="returnvalue">GstMIKEYMessage</span></a> *
 gst_mikey_message_copy (<em class="parameter"><code>const <a class="link" href="gst-plugins-base-libs-gstmikey.html#GstMIKEYMessage" title="struct GstMIKEYMessage"><span class="type">GstMIKEYMessage</span></a> *message</code></em>);</pre>
-<p>Create a copy of the given message.</p>
-<div class="refsect3">
-<a name="gst-mikey-message-copy.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>message</p></td>
-<td class="parameter_description"><p>a <a class="link" href="gst-plugins-base-libs-gstmikey.html#GstMIKEYMessage" title="struct GstMIKEYMessage"><span class="type">GstMIKEYMessage</span></a>.</p></td>
-<td class="parameter_annotations"> </td>
-</tr></tbody>
-</table></div>
-</div>
-<div class="refsect3">
-<a name="gst-mikey-message-copy.returns"></a><h4>Returns</h4>
-<p> a new copy of <em class="parameter"><code>message</code></em>
-. </p>
-<p><span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>]</span></p>
-</div>
-<p class="since">Since: 1.4</p>
 </div>
 <hr>
 <div class="refsect2">
 <a name="gst-mikey-message-ref"></a><h3>gst_mikey_message_ref ()</h3>
 <pre class="programlisting"><a class="link" href="gst-plugins-base-libs-gstmikey.html#GstMIKEYMessage" title="struct GstMIKEYMessage"><span class="returnvalue">GstMIKEYMessage</span></a> *
 gst_mikey_message_ref (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstmikey.html#GstMIKEYMessage" title="struct GstMIKEYMessage"><span class="type">GstMIKEYMessage</span></a> *message</code></em>);</pre>
-<p>Increase the refcount of this message.</p>
-<div class="refsect3">
-<a name="gst-mikey-message-ref.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>message</p></td>
-<td class="parameter_description"><p>The message to refcount</p></td>
-<td class="parameter_annotations"> </td>
-</tr></tbody>
-</table></div>
-</div>
-<div class="refsect3">
-<a name="gst-mikey-message-ref.returns"></a><h4>Returns</h4>
-<p> <em class="parameter"><code>message</code></em>
-(for convenience when doing assignments). </p>
-<p><span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>]</span></p>
-</div>
-<p class="since">Since: 1.4</p>
 </div>
 <hr>
 <div class="refsect2">
 <a name="gst-mikey-message-unref"></a><h3>gst_mikey_message_unref ()</h3>
 <pre class="programlisting"><span class="returnvalue">void</span>
 gst_mikey_message_unref (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstmikey.html#GstMIKEYMessage" title="struct GstMIKEYMessage"><span class="type">GstMIKEYMessage</span></a> *message</code></em>);</pre>
-<p>Decrease the refcount of an message, freeing it if the refcount reaches 0.</p>
-<div class="refsect3">
-<a name="gst-mikey-message-unref.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>message</p></td>
-<td class="parameter_description"><p> the message to refcount. </p></td>
-<td class="parameter_annotations"><span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>]</span></td>
-</tr></tbody>
-</table></div>
-</div>
-<p class="since">Since: 1.4</p>
 </div>
 <hr>
 <div class="refsect2">
@@ -839,88 +601,12 @@
                             <em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstmikey.html#GstMIKEYPRFFunc" title="enum GstMIKEYPRFFunc"><span class="type">GstMIKEYPRFFunc</span></a> prf_func</code></em>,
                             <em class="parameter"><code><a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#guint32"><span class="type">guint32</span></a> CSB_id</code></em>,
                             <em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstmikey.html#GstMIKEYMapType" title="enum GstMIKEYMapType"><span class="type">GstMIKEYMapType</span></a> map_type</code></em>);</pre>
-<p>Set the information in <em class="parameter"><code>msg</code></em>
-.</p>
-<div class="refsect3">
-<a name="gst-mikey-message-set-info.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>msg</p></td>
-<td class="parameter_description"><p>a <a class="link" href="gst-plugins-base-libs-gstmikey.html#GstMIKEYMessage" title="struct GstMIKEYMessage"><span class="type">GstMIKEYMessage</span></a></p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-<tr>
-<td class="parameter_name"><p>version</p></td>
-<td class="parameter_description"><p>a version</p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-<tr>
-<td class="parameter_name"><p>type</p></td>
-<td class="parameter_description"><p>a <a class="link" href="gst-plugins-base-libs-gstmikey.html#GstMIKEYType" title="enum GstMIKEYType"><span class="type">GstMIKEYType</span></a></p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-<tr>
-<td class="parameter_name"><p>V</p></td>
-<td class="parameter_description"><p>verify flag</p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-<tr>
-<td class="parameter_name"><p>prf_func</p></td>
-<td class="parameter_description"><p>the <a class="link" href="gst-plugins-base-libs-gstmikey.html#GstMIKEYPRFFunc" title="enum GstMIKEYPRFFunc"><span class="type">GstMIKEYPRFFunc</span></a> function to use</p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-<tr>
-<td class="parameter_name"><p>CSB_id</p></td>
-<td class="parameter_description"><p>the Crypto Session Bundle id</p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-<tr>
-<td class="parameter_name"><p>map_type</p></td>
-<td class="parameter_description"><p>the <span class="type">GstMIKEYCSIDMapType</span></p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-</tbody>
-</table></div>
-</div>
-<div class="refsect3">
-<a name="gst-mikey-message-set-info.returns"></a><h4>Returns</h4>
-<p> <a href="/usr/share/gtk-doc/html/glibglib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a> on success</p>
-</div>
-<p class="since">Since: 1.4</p>
 </div>
 <hr>
 <div class="refsect2">
 <a name="gst-mikey-message-get-n-cs"></a><h3>gst_mikey_message_get_n_cs ()</h3>
 <pre class="programlisting"><a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#guint"><span class="returnvalue">guint</span></a>
 gst_mikey_message_get_n_cs (<em class="parameter"><code>const <a class="link" href="gst-plugins-base-libs-gstmikey.html#GstMIKEYMessage" title="struct GstMIKEYMessage"><span class="type">GstMIKEYMessage</span></a> *msg</code></em>);</pre>
-<p>Get the number of crypto sessions in <em class="parameter"><code>msg</code></em>
-.</p>
-<div class="refsect3">
-<a name="gst-mikey-message-get-n-cs.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>msg</p></td>
-<td class="parameter_description"><p>a <a class="link" href="gst-plugins-base-libs-gstmikey.html#GstMIKEYMessage" title="struct GstMIKEYMessage"><span class="type">GstMIKEYMessage</span></a></p></td>
-<td class="parameter_annotations"> </td>
-</tr></tbody>
-</table></div>
-</div>
-<div class="refsect3">
-<a name="gst-mikey-message-get-n-cs.returns"></a><h4>Returns</h4>
-<p> the number of crypto sessions</p>
-</div>
-<p class="since">Since: 1.4</p>
 </div>
 <hr>
 <div class="refsect2">
@@ -928,36 +614,6 @@
 <pre class="programlisting">const <a class="link" href="gst-plugins-base-libs-gstmikey.html#GstMIKEYMapSRTP" title="GstMIKEYMapSRTP"><span class="returnvalue">GstMIKEYMapSRTP</span></a> *
 gst_mikey_message_get_cs_srtp (<em class="parameter"><code>const <a class="link" href="gst-plugins-base-libs-gstmikey.html#GstMIKEYMessage" title="struct GstMIKEYMessage"><span class="type">GstMIKEYMessage</span></a> *msg</code></em>,
                                <em class="parameter"><code><a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#guint"><span class="type">guint</span></a> idx</code></em>);</pre>
-<p>Get the policy information of <em class="parameter"><code>msg</code></em>
- at <em class="parameter"><code>idx</code></em>
-.</p>
-<div class="refsect3">
-<a name="gst-mikey-message-get-cs-srtp.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>msg</p></td>
-<td class="parameter_description"><p>a <a class="link" href="gst-plugins-base-libs-gstmikey.html#GstMIKEYMessage" title="struct GstMIKEYMessage"><span class="type">GstMIKEYMessage</span></a></p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-<tr>
-<td class="parameter_name"><p>idx</p></td>
-<td class="parameter_description"><p>an index</p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-</tbody>
-</table></div>
-</div>
-<div class="refsect3">
-<a name="gst-mikey-message-get-cs-srtp.returns"></a><h4>Returns</h4>
-<p> a <a class="link" href="gst-plugins-base-libs-gstmikey.html#GstMIKEYMapSRTP" title="GstMIKEYMapSRTP"><span class="type">GstMIKEYMapSRTP</span></a></p>
-</div>
-<p class="since">Since: 1.4</p>
 </div>
 <hr>
 <div class="refsect2">
@@ -966,43 +622,6 @@
 gst_mikey_message_insert_cs_srtp (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstmikey.html#GstMIKEYMessage" title="struct GstMIKEYMessage"><span class="type">GstMIKEYMessage</span></a> *msg</code></em>,
                                   <em class="parameter"><code><a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#gint"><span class="type">gint</span></a> idx</code></em>,
                                   <em class="parameter"><code>const <a class="link" href="gst-plugins-base-libs-gstmikey.html#GstMIKEYMapSRTP" title="GstMIKEYMapSRTP"><span class="type">GstMIKEYMapSRTP</span></a> *map</code></em>);</pre>
-<p>Insert a Crypto Session map for SRTP in <em class="parameter"><code>msg</code></em>
- at <em class="parameter"><code>idx</code></em>
-</p>
-<p>When <em class="parameter"><code>idx</code></em>
- is -1, the policy will be appended.</p>
-<div class="refsect3">
-<a name="gst-mikey-message-insert-cs-srtp.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>msg</p></td>
-<td class="parameter_description"><p>a <a class="link" href="gst-plugins-base-libs-gstmikey.html#GstMIKEYMessage" title="struct GstMIKEYMessage"><span class="type">GstMIKEYMessage</span></a></p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-<tr>
-<td class="parameter_name"><p>idx</p></td>
-<td class="parameter_description"><p>the index to insert at</p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-<tr>
-<td class="parameter_name"><p>map</p></td>
-<td class="parameter_description"><p>the map info</p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-</tbody>
-</table></div>
-</div>
-<div class="refsect3">
-<a name="gst-mikey-message-insert-cs-srtp.returns"></a><h4>Returns</h4>
-<p> <a href="/usr/share/gtk-doc/html/glibglib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a> on success</p>
-</div>
-<p class="since">Since: 1.4</p>
 </div>
 <hr>
 <div class="refsect2">
@@ -1010,35 +629,6 @@
 <pre class="programlisting"><a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
 gst_mikey_message_remove_cs_srtp (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstmikey.html#GstMIKEYMessage" title="struct GstMIKEYMessage"><span class="type">GstMIKEYMessage</span></a> *msg</code></em>,
                                   <em class="parameter"><code><a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#gint"><span class="type">gint</span></a> idx</code></em>);</pre>
-<p>Remove the SRTP policy at <em class="parameter"><code>idx</code></em>
-.</p>
-<div class="refsect3">
-<a name="gst-mikey-message-remove-cs-srtp.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>msg</p></td>
-<td class="parameter_description"><p>a <a class="link" href="gst-plugins-base-libs-gstmikey.html#GstMIKEYMessage" title="struct GstMIKEYMessage"><span class="type">GstMIKEYMessage</span></a></p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-<tr>
-<td class="parameter_name"><p>idx</p></td>
-<td class="parameter_description"><p>the index to remove</p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-</tbody>
-</table></div>
-</div>
-<div class="refsect3">
-<a name="gst-mikey-message-remove-cs-srtp.returns"></a><h4>Returns</h4>
-<p> <a href="/usr/share/gtk-doc/html/glibglib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a> on success</p>
-</div>
-<p class="since">Since: 1.4</p>
 </div>
 <hr>
 <div class="refsect2">
@@ -1047,42 +637,6 @@
 gst_mikey_message_replace_cs_srtp (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstmikey.html#GstMIKEYMessage" title="struct GstMIKEYMessage"><span class="type">GstMIKEYMessage</span></a> *msg</code></em>,
                                    <em class="parameter"><code><a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#gint"><span class="type">gint</span></a> idx</code></em>,
                                    <em class="parameter"><code>const <a class="link" href="gst-plugins-base-libs-gstmikey.html#GstMIKEYMapSRTP" title="GstMIKEYMapSRTP"><span class="type">GstMIKEYMapSRTP</span></a> *map</code></em>);</pre>
-<p>Replace a Crypto Session map for SRTP in <em class="parameter"><code>msg</code></em>
- at <em class="parameter"><code>idx</code></em>
- with <em class="parameter"><code>map</code></em>
-.</p>
-<div class="refsect3">
-<a name="gst-mikey-message-replace-cs-srtp.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>msg</p></td>
-<td class="parameter_description"><p>a <a class="link" href="gst-plugins-base-libs-gstmikey.html#GstMIKEYMessage" title="struct GstMIKEYMessage"><span class="type">GstMIKEYMessage</span></a></p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-<tr>
-<td class="parameter_name"><p>idx</p></td>
-<td class="parameter_description"><p>the index to insert at</p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-<tr>
-<td class="parameter_name"><p>map</p></td>
-<td class="parameter_description"><p>the map info</p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-</tbody>
-</table></div>
-</div>
-<div class="refsect3">
-<a name="gst-mikey-message-replace-cs-srtp.returns"></a><h4>Returns</h4>
-<p> <a href="/usr/share/gtk-doc/html/glibglib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a> on success</p>
-</div>
-<p class="since">Since: 1.4</p>
 </div>
 <hr>
 <div class="refsect2">
@@ -1092,75 +646,12 @@
                                <em class="parameter"><code><a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#guint8"><span class="type">guint8</span></a> policy</code></em>,
                                <em class="parameter"><code><a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#guint32"><span class="type">guint32</span></a> ssrc</code></em>,
                                <em class="parameter"><code><a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#guint32"><span class="type">guint32</span></a> roc</code></em>);</pre>
-<p>Add a Crypto policy for SRTP to <em class="parameter"><code>msg</code></em>
-.</p>
-<div class="refsect3">
-<a name="gst-mikey-message-add-cs-srtp.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>msg</p></td>
-<td class="parameter_description"><p>a <a class="link" href="gst-plugins-base-libs-gstmikey.html#GstMIKEYMessage" title="struct GstMIKEYMessage"><span class="type">GstMIKEYMessage</span></a></p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-<tr>
-<td class="parameter_name"><p>policy</p></td>
-<td class="parameter_description"><p>The security policy applied for the stream with <em class="parameter"><code>ssrc</code></em>
-</p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-<tr>
-<td class="parameter_name"><p>ssrc</p></td>
-<td class="parameter_description"><p>the SSRC that must be used for the stream</p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-<tr>
-<td class="parameter_name"><p>roc</p></td>
-<td class="parameter_description"><p>current rollover counter</p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-</tbody>
-</table></div>
-</div>
-<div class="refsect3">
-<a name="gst-mikey-message-add-cs-srtp.returns"></a><h4>Returns</h4>
-<p> <a href="/usr/share/gtk-doc/html/glibglib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a> on success</p>
-</div>
-<p class="since">Since: 1.4</p>
 </div>
 <hr>
 <div class="refsect2">
 <a name="gst-mikey-message-get-n-payloads"></a><h3>gst_mikey_message_get_n_payloads ()</h3>
 <pre class="programlisting"><a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#guint"><span class="returnvalue">guint</span></a>
 gst_mikey_message_get_n_payloads (<em class="parameter"><code>const <a class="link" href="gst-plugins-base-libs-gstmikey.html#GstMIKEYMessage" title="struct GstMIKEYMessage"><span class="type">GstMIKEYMessage</span></a> *msg</code></em>);</pre>
-<p>Get the number of payloads in <em class="parameter"><code>msg</code></em>
-.</p>
-<div class="refsect3">
-<a name="gst-mikey-message-get-n-payloads.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>msg</p></td>
-<td class="parameter_description"><p>a <a class="link" href="gst-plugins-base-libs-gstmikey.html#GstMIKEYMessage" title="struct GstMIKEYMessage"><span class="type">GstMIKEYMessage</span></a></p></td>
-<td class="parameter_annotations"> </td>
-</tr></tbody>
-</table></div>
-</div>
-<div class="refsect3">
-<a name="gst-mikey-message-get-n-payloads.returns"></a><h4>Returns</h4>
-<p> the number of payloads in <em class="parameter"><code>msg</code></em>
-</p>
-</div>
-<p class="since">Since: 1.4</p>
 </div>
 <hr>
 <div class="refsect2">
@@ -1168,40 +659,6 @@
 <pre class="programlisting">const <a class="link" href="gst-plugins-base-libs-gstmikey.html#GstMIKEYPayload" title="struct GstMIKEYPayload"><span class="returnvalue">GstMIKEYPayload</span></a> *
 gst_mikey_message_get_payload (<em class="parameter"><code>const <a class="link" href="gst-plugins-base-libs-gstmikey.html#GstMIKEYMessage" title="struct GstMIKEYMessage"><span class="type">GstMIKEYMessage</span></a> *msg</code></em>,
                                <em class="parameter"><code><a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#guint"><span class="type">guint</span></a> idx</code></em>);</pre>
-<p>Get the <a class="link" href="gst-plugins-base-libs-gstmikey.html#GstMIKEYPayload" title="struct GstMIKEYPayload"><span class="type">GstMIKEYPayload</span></a> at <em class="parameter"><code>idx</code></em>
- in <em class="parameter"><code>msg</code></em>
-</p>
-<div class="refsect3">
-<a name="gst-mikey-message-get-payload.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>msg</p></td>
-<td class="parameter_description"><p>a <a class="link" href="gst-plugins-base-libs-gstmikey.html#GstMIKEYMessage" title="struct GstMIKEYMessage"><span class="type">GstMIKEYMessage</span></a></p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-<tr>
-<td class="parameter_name"><p>idx</p></td>
-<td class="parameter_description"><p>an index</p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-</tbody>
-</table></div>
-</div>
-<div class="refsect3">
-<a name="gst-mikey-message-get-payload.returns"></a><h4>Returns</h4>
-<p> the <a class="link" href="gst-plugins-base-libs-gstmikey.html#GstMIKEYPayload" title="struct GstMIKEYPayload"><span class="type">GstMIKEYPayload</span></a> at <em class="parameter"><code>idx</code></em>
-. The payload
-remains valid for as long as it is part of <em class="parameter"><code>msg</code></em>
-. </p>
-<p><span class="annotation">[<acronym title="Don't free data after the code is done."><span class="acronym">transfer none</span></acronym>]</span></p>
-</div>
-<p class="since">Since: 1.4</p>
 </div>
 <hr>
 <div class="refsect2">
@@ -1210,44 +667,6 @@
 gst_mikey_message_find_payload (<em class="parameter"><code>const <a class="link" href="gst-plugins-base-libs-gstmikey.html#GstMIKEYMessage" title="struct GstMIKEYMessage"><span class="type">GstMIKEYMessage</span></a> *msg</code></em>,
                                 <em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstmikey.html#GstMIKEYPayloadType" title="enum GstMIKEYPayloadType"><span class="type">GstMIKEYPayloadType</span></a> type</code></em>,
                                 <em class="parameter"><code><a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#guint"><span class="type">guint</span></a> nth</code></em>);</pre>
-<p>Find the <em class="parameter"><code>nth</code></em>
- occurence of the payload with <em class="parameter"><code>type</code></em>
- in <em class="parameter"><code>msg</code></em>
-.</p>
-<div class="refsect3">
-<a name="gst-mikey-message-find-payload.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>msg</p></td>
-<td class="parameter_description"><p>a <a class="link" href="gst-plugins-base-libs-gstmikey.html#GstMIKEYMessage" title="struct GstMIKEYMessage"><span class="type">GstMIKEYMessage</span></a></p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-<tr>
-<td class="parameter_name"><p>type</p></td>
-<td class="parameter_description"><p>a <a class="link" href="gst-plugins-base-libs-gstmikey.html#GstMIKEYPayloadType" title="enum GstMIKEYPayloadType"><span class="type">GstMIKEYPayloadType</span></a></p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-<tr>
-<td class="parameter_name"><p>nth</p></td>
-<td class="parameter_description"><p>payload to find</p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-</tbody>
-</table></div>
-</div>
-<div class="refsect3">
-<a name="gst-mikey-message-find-payload.returns"></a><h4>Returns</h4>
-<p> the <em class="parameter"><code>nth</code></em>
-<a class="link" href="gst-plugins-base-libs-gstmikey.html#GstMIKEYPayload" title="struct GstMIKEYPayload"><span class="type">GstMIKEYPayload</span></a> of <em class="parameter"><code>type</code></em>
-.</p>
-</div>
-<p class="since">Since: 1.4</p>
 </div>
 <hr>
 <div class="refsect2">
@@ -1256,45 +675,6 @@
 gst_mikey_message_insert_payload (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstmikey.html#GstMIKEYMessage" title="struct GstMIKEYMessage"><span class="type">GstMIKEYMessage</span></a> *msg</code></em>,
                                   <em class="parameter"><code><a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#guint"><span class="type">guint</span></a> idx</code></em>,
                                   <em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstmikey.html#GstMIKEYPayload" title="struct GstMIKEYPayload"><span class="type">GstMIKEYPayload</span></a> *payload</code></em>);</pre>
-<p>Insert the <em class="parameter"><code>payload</code></em>
- at index <em class="parameter"><code>idx</code></em>
- in <em class="parameter"><code>msg</code></em>
-. If <em class="parameter"><code>idx</code></em>
- is -1, the payload
-will be appended to <em class="parameter"><code>msg</code></em>
-.</p>
-<div class="refsect3">
-<a name="gst-mikey-message-insert-payload.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>msg</p></td>
-<td class="parameter_description"><p>a <a class="link" href="gst-plugins-base-libs-gstmikey.html#GstMIKEYMessage" title="struct GstMIKEYMessage"><span class="type">GstMIKEYMessage</span></a></p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-<tr>
-<td class="parameter_name"><p>idx</p></td>
-<td class="parameter_description"><p>an index</p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-<tr>
-<td class="parameter_name"><p>payload</p></td>
-<td class="parameter_description"><p> a <a class="link" href="gst-plugins-base-libs-gstmikey.html#GstMIKEYPayload" title="struct GstMIKEYPayload"><span class="type">GstMIKEYPayload</span></a>. </p></td>
-<td class="parameter_annotations"><span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>]</span></td>
-</tr>
-</tbody>
-</table></div>
-</div>
-<div class="refsect3">
-<a name="gst-mikey-message-insert-payload.returns"></a><h4>Returns</h4>
-<p> <a href="/usr/share/gtk-doc/html/glibglib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a> on success</p>
-</div>
-<p class="since">Since: 1.4</p>
 </div>
 <hr>
 <div class="refsect2">
@@ -1302,36 +682,6 @@
 <pre class="programlisting"><a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
 gst_mikey_message_remove_payload (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstmikey.html#GstMIKEYMessage" title="struct GstMIKEYMessage"><span class="type">GstMIKEYMessage</span></a> *msg</code></em>,
                                   <em class="parameter"><code><a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#guint"><span class="type">guint</span></a> idx</code></em>);</pre>
-<p>Remove the payload in <em class="parameter"><code>msg</code></em>
- at <em class="parameter"><code>idx</code></em>
-</p>
-<div class="refsect3">
-<a name="gst-mikey-message-remove-payload.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>msg</p></td>
-<td class="parameter_description"><p>a <a class="link" href="gst-plugins-base-libs-gstmikey.html#GstMIKEYMessage" title="struct GstMIKEYMessage"><span class="type">GstMIKEYMessage</span></a></p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-<tr>
-<td class="parameter_name"><p>idx</p></td>
-<td class="parameter_description"><p>an index</p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-</tbody>
-</table></div>
-</div>
-<div class="refsect3">
-<a name="gst-mikey-message-remove-payload.returns"></a><h4>Returns</h4>
-<p> <a href="/usr/share/gtk-doc/html/glibglib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a> on success</p>
-</div>
-<p class="since">Since: 1.4</p>
 </div>
 <hr>
 <div class="refsect2">
@@ -1340,42 +690,6 @@
 gst_mikey_message_replace_payload (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstmikey.html#GstMIKEYMessage" title="struct GstMIKEYMessage"><span class="type">GstMIKEYMessage</span></a> *msg</code></em>,
                                    <em class="parameter"><code><a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#guint"><span class="type">guint</span></a> idx</code></em>,
                                    <em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstmikey.html#GstMIKEYPayload" title="struct GstMIKEYPayload"><span class="type">GstMIKEYPayload</span></a> *payload</code></em>);</pre>
-<p>Replace the payload at <em class="parameter"><code>idx</code></em>
- in <em class="parameter"><code>msg</code></em>
- with <em class="parameter"><code>payload</code></em>
-.</p>
-<div class="refsect3">
-<a name="gst-mikey-message-replace-payload.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>msg</p></td>
-<td class="parameter_description"><p>a <a class="link" href="gst-plugins-base-libs-gstmikey.html#GstMIKEYMessage" title="struct GstMIKEYMessage"><span class="type">GstMIKEYMessage</span></a></p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-<tr>
-<td class="parameter_name"><p>idx</p></td>
-<td class="parameter_description"><p>an index</p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-<tr>
-<td class="parameter_name"><p>payload</p></td>
-<td class="parameter_description"><p> a <a class="link" href="gst-plugins-base-libs-gstmikey.html#GstMIKEYPayload" title="struct GstMIKEYPayload"><span class="type">GstMIKEYPayload</span></a>. </p></td>
-<td class="parameter_annotations"><span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>]</span></td>
-</tr>
-</tbody>
-</table></div>
-</div>
-<div class="refsect3">
-<a name="gst-mikey-message-replace-payload.returns"></a><h4>Returns</h4>
-<p> <a href="/usr/share/gtk-doc/html/glibglib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a> on success</p>
-</div>
-<p class="since">Since: 1.4</p>
 </div>
 <hr>
 <div class="refsect2">
@@ -1383,93 +697,18 @@
 <pre class="programlisting"><a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
 gst_mikey_message_add_payload (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstmikey.html#GstMIKEYMessage" title="struct GstMIKEYMessage"><span class="type">GstMIKEYMessage</span></a> *msg</code></em>,
                                <em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstmikey.html#GstMIKEYPayload" title="struct GstMIKEYPayload"><span class="type">GstMIKEYPayload</span></a> *payload</code></em>);</pre>
-<p>Add a new payload to <em class="parameter"><code>msg</code></em>
-.</p>
-<div class="refsect3">
-<a name="gst-mikey-message-add-payload.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>msg</p></td>
-<td class="parameter_description"><p>a <a class="link" href="gst-plugins-base-libs-gstmikey.html#GstMIKEYMessage" title="struct GstMIKEYMessage"><span class="type">GstMIKEYMessage</span></a></p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-<tr>
-<td class="parameter_name"><p>payload</p></td>
-<td class="parameter_description"><p> a <a class="link" href="gst-plugins-base-libs-gstmikey.html#GstMIKEYPayload" title="struct GstMIKEYPayload"><span class="type">GstMIKEYPayload</span></a>. </p></td>
-<td class="parameter_annotations"><span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>]</span></td>
-</tr>
-</tbody>
-</table></div>
-</div>
-<div class="refsect3">
-<a name="gst-mikey-message-add-payload.returns"></a><h4>Returns</h4>
-<p> <a href="/usr/share/gtk-doc/html/glibglib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a> on success</p>
-</div>
-<p class="since">Since: 1.4</p>
 </div>
 <hr>
 <div class="refsect2">
 <a name="gst-mikey-payload-new"></a><h3>gst_mikey_payload_new ()</h3>
 <pre class="programlisting"><a class="link" href="gst-plugins-base-libs-gstmikey.html#GstMIKEYPayload" title="struct GstMIKEYPayload"><span class="returnvalue">GstMIKEYPayload</span></a> *
 gst_mikey_payload_new (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstmikey.html#GstMIKEYPayloadType" title="enum GstMIKEYPayloadType"><span class="type">GstMIKEYPayloadType</span></a> type</code></em>);</pre>
-<p>Make a new <a class="link" href="gst-plugins-base-libs-gstmikey.html#GstMIKEYPayload" title="struct GstMIKEYPayload"><span class="type">GstMIKEYPayload</span></a> with <em class="parameter"><code>type</code></em>
-.</p>
-<div class="refsect3">
-<a name="gst-mikey-payload-new.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>type</p></td>
-<td class="parameter_description"><p>a <a class="link" href="gst-plugins-base-libs-gstmikey.html#GstMIKEYPayloadType" title="enum GstMIKEYPayloadType"><span class="type">GstMIKEYPayloadType</span></a></p></td>
-<td class="parameter_annotations"> </td>
-</tr></tbody>
-</table></div>
-</div>
-<div class="refsect3">
-<a name="gst-mikey-payload-new.returns"></a><h4>Returns</h4>
-<p> a new <a class="link" href="gst-plugins-base-libs-gstmikey.html#GstMIKEYPayload" title="struct GstMIKEYPayload"><span class="type">GstMIKEYPayload</span></a> or <a href="/usr/share/gtk-doc/html/glibglib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a> on failure. </p>
-<p><span class="annotation">[<acronym title="NULL may be passed as the value in, out, in-out; or as a return value."><span class="acronym">nullable</span></acronym>]</span></p>
-</div>
-<p class="since">Since: 1.4</p>
 </div>
 <hr>
 <div class="refsect2">
 <a name="gst-mikey-payload-copy"></a><h3>gst_mikey_payload_copy ()</h3>
 <pre class="programlisting"><a class="link" href="gst-plugins-base-libs-gstmikey.html#GstMIKEYPayload" title="struct GstMIKEYPayload"><span class="returnvalue">GstMIKEYPayload</span></a> *
 gst_mikey_payload_copy (<em class="parameter"><code>const <a class="link" href="gst-plugins-base-libs-gstmikey.html#GstMIKEYPayload" title="struct GstMIKEYPayload"><span class="type">GstMIKEYPayload</span></a> *payload</code></em>);</pre>
-<p>Create a copy of the given payload.</p>
-<div class="refsect3">
-<a name="gst-mikey-payload-copy.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>payload</p></td>
-<td class="parameter_description"><p>a <a class="link" href="gst-plugins-base-libs-gstmikey.html#GstMIKEYPayload" title="struct GstMIKEYPayload"><span class="type">GstMIKEYPayload</span></a>.</p></td>
-<td class="parameter_annotations"> </td>
-</tr></tbody>
-</table></div>
-</div>
-<div class="refsect3">
-<a name="gst-mikey-payload-copy.returns"></a><h4>Returns</h4>
-<p> a new copy of <em class="parameter"><code>payload</code></em>
-. </p>
-<p><span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>]</span></p>
-</div>
-<p class="since">Since: 1.4</p>
 </div>
 <hr>
 <div class="refsect2">
@@ -1481,52 +720,6 @@
                                 <em class="parameter"><code>const <a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#guint8"><span class="type">guint8</span></a> *vf_data</code></em>,
                                 <em class="parameter"><code><a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#guint8"><span class="type">guint8</span></a> vt_len</code></em>,
                                 <em class="parameter"><code>const <a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#guint8"><span class="type">guint8</span></a> *vt_data</code></em>);</pre>
-<p>Set the key validity period in the <a class="link" href="gst-plugins-base-libs-gstmikey.html#GST-MIKEY-PT-KEY-DATA:CAPS"><code class="literal">GST_MIKEY_PT_KEY_DATA</code></a> <em class="parameter"><code>payload</code></em>
-.</p>
-<div class="refsect3">
-<a name="gst-mikey-payload-key-data-set-interval.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>payload</p></td>
-<td class="parameter_description"><p>a <a class="link" href="gst-plugins-base-libs-gstmikey.html#GstMIKEYPayload" title="struct GstMIKEYPayload"><span class="type">GstMIKEYPayload</span></a></p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-<tr>
-<td class="parameter_name"><p>vf_len</p></td>
-<td class="parameter_description"><p>the length of <em class="parameter"><code>vf_data</code></em>
-</p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-<tr>
-<td class="parameter_name"><p>vf_data</p></td>
-<td class="parameter_description"><p> the Valid From data. </p></td>
-<td class="parameter_annotations"><span class="annotation">[<acronym title="Parameter points to an array of items."><span class="acronym">array</span></acronym> length=vf_data]</span></td>
-</tr>
-<tr>
-<td class="parameter_name"><p>vt_len</p></td>
-<td class="parameter_description"><p>the length of <em class="parameter"><code>vt_data</code></em>
-</p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-<tr>
-<td class="parameter_name"><p>vt_data</p></td>
-<td class="parameter_description"><p> the Valid To data. </p></td>
-<td class="parameter_annotations"><span class="annotation">[<acronym title="Parameter points to an array of items."><span class="acronym">array</span></acronym> length=vt_len]</span></td>
-</tr>
-</tbody>
-</table></div>
-</div>
-<div class="refsect3">
-<a name="gst-mikey-payload-key-data-set-interval.returns"></a><h4>Returns</h4>
-<p> <a href="/usr/share/gtk-doc/html/glibglib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a> on success</p>
-</div>
-<p class="since">Since: 1.4</p>
 </div>
 <hr>
 <div class="refsect2">
@@ -1536,51 +729,6 @@
                                     <em class="parameter"><code><span class="type">GstMIKEYKeyDataType</span> key_type</code></em>,
                                     <em class="parameter"><code><a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#guint16"><span class="type">guint16</span></a> key_len</code></em>,
                                     <em class="parameter"><code>const <a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#guint8"><span class="type">guint8</span></a> *key_data</code></em>);</pre>
-<p>Set <em class="parameter"><code>key_len</code></em>
- bytes of <em class="parameter"><code>key_data</code></em>
- of type <em class="parameter"><code>key_type</code></em>
- as the key for the
-<a class="link" href="gst-plugins-base-libs-gstmikey.html#GST-MIKEY-PT-KEY-DATA:CAPS"><code class="literal">GST_MIKEY_PT_KEY_DATA</code></a> <em class="parameter"><code>payload</code></em>
-.</p>
-<div class="refsect3">
-<a name="gst-mikey-payload-key-data-set-key.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>payload</p></td>
-<td class="parameter_description"><p>a <a class="link" href="gst-plugins-base-libs-gstmikey.html#GstMIKEYPayload" title="struct GstMIKEYPayload"><span class="type">GstMIKEYPayload</span></a></p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-<tr>
-<td class="parameter_name"><p>key_type</p></td>
-<td class="parameter_description"><p>a <span class="type">GstMIKEYKeyDataType</span></p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-<tr>
-<td class="parameter_name"><p>key_len</p></td>
-<td class="parameter_description"><p>the length of <em class="parameter"><code>key_data</code></em>
-</p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-<tr>
-<td class="parameter_name"><p>key_data</p></td>
-<td class="parameter_description"><p> the key of type <em class="parameter"><code>key_type</code></em>
-. </p></td>
-<td class="parameter_annotations"><span class="annotation">[<acronym title="Parameter points to an array of items."><span class="acronym">array</span></acronym> length=key_len]</span></td>
-</tr>
-</tbody>
-</table></div>
-</div>
-<div class="refsect3">
-<a name="gst-mikey-payload-key-data-set-key.returns"></a><h4>Returns</h4>
-<p> <a href="/usr/share/gtk-doc/html/glibglib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a> on success</p>
-</div>
-<p class="since">Since: 1.4</p>
 </div>
 <hr>
 <div class="refsect2">
@@ -1589,43 +737,6 @@
 gst_mikey_payload_key_data_set_salt (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstmikey.html#GstMIKEYPayload" title="struct GstMIKEYPayload"><span class="type">GstMIKEYPayload</span></a> *payload</code></em>,
                                      <em class="parameter"><code><a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#guint16"><span class="type">guint16</span></a> salt_len</code></em>,
                                      <em class="parameter"><code>const <a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#guint8"><span class="type">guint8</span></a> *salt_data</code></em>);</pre>
-<p>Set the salt key data. If <em class="parameter"><code>salt_len</code></em>
- is 0 and <em class="parameter"><code>salt_data</code></em>
- is <a href="/usr/share/gtk-doc/html/glibglib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a>, the
-salt data will be removed.</p>
-<div class="refsect3">
-<a name="gst-mikey-payload-key-data-set-salt.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>payload</p></td>
-<td class="parameter_description"><p>a <a class="link" href="gst-plugins-base-libs-gstmikey.html#GstMIKEYPayload" title="struct GstMIKEYPayload"><span class="type">GstMIKEYPayload</span></a></p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-<tr>
-<td class="parameter_name"><p>salt_len</p></td>
-<td class="parameter_description"><p>the length of <em class="parameter"><code>salt_data</code></em>
-</p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-<tr>
-<td class="parameter_name"><p>salt_data</p></td>
-<td class="parameter_description"><p> the salt. </p></td>
-<td class="parameter_annotations"><span class="annotation">[<acronym title="Parameter points to an array of items."><span class="acronym">array</span></acronym> length=salt_len][<acronym title="NULL is OK, both for passing and for returning."><span class="acronym">allow-none</span></acronym>]</span></td>
-</tr>
-</tbody>
-</table></div>
-</div>
-<div class="refsect3">
-<a name="gst-mikey-payload-key-data-set-salt.returns"></a><h4>Returns</h4>
-<p> <a href="/usr/share/gtk-doc/html/glibglib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a> on success</p>
-</div>
-<p class="since">Since: 1.4</p>
 </div>
 <hr>
 <div class="refsect2">
@@ -1634,93 +745,18 @@
 gst_mikey_payload_key_data_set_spi (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstmikey.html#GstMIKEYPayload" title="struct GstMIKEYPayload"><span class="type">GstMIKEYPayload</span></a> *payload</code></em>,
                                     <em class="parameter"><code><a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#guint8"><span class="type">guint8</span></a> spi_len</code></em>,
                                     <em class="parameter"><code>const <a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#guint8"><span class="type">guint8</span></a> *spi_data</code></em>);</pre>
-<p>Set the SPI/MKI validity in the <a class="link" href="gst-plugins-base-libs-gstmikey.html#GST-MIKEY-PT-KEY-DATA:CAPS"><code class="literal">GST_MIKEY_PT_KEY_DATA</code></a> <em class="parameter"><code>payload</code></em>
-.</p>
-<div class="refsect3">
-<a name="gst-mikey-payload-key-data-set-spi.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>payload</p></td>
-<td class="parameter_description"><p>a <a class="link" href="gst-plugins-base-libs-gstmikey.html#GstMIKEYPayload" title="struct GstMIKEYPayload"><span class="type">GstMIKEYPayload</span></a></p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-<tr>
-<td class="parameter_name"><p>spi_len</p></td>
-<td class="parameter_description"><p>the length of <em class="parameter"><code>spi_data</code></em>
-</p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-<tr>
-<td class="parameter_name"><p>spi_data</p></td>
-<td class="parameter_description"><p> the SPI/MKI data. </p></td>
-<td class="parameter_annotations"><span class="annotation">[<acronym title="Parameter points to an array of items."><span class="acronym">array</span></acronym> length=spi_len]</span></td>
-</tr>
-</tbody>
-</table></div>
-</div>
-<div class="refsect3">
-<a name="gst-mikey-payload-key-data-set-spi.returns"></a><h4>Returns</h4>
-<p> <a href="/usr/share/gtk-doc/html/glibglib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a> on success</p>
-</div>
-<p class="since">Since: 1.4</p>
 </div>
 <hr>
 <div class="refsect2">
 <a name="gst-mikey-payload-ref"></a><h3>gst_mikey_payload_ref ()</h3>
 <pre class="programlisting"><a class="link" href="gst-plugins-base-libs-gstmikey.html#GstMIKEYPayload" title="struct GstMIKEYPayload"><span class="returnvalue">GstMIKEYPayload</span></a> *
 gst_mikey_payload_ref (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstmikey.html#GstMIKEYPayload" title="struct GstMIKEYPayload"><span class="type">GstMIKEYPayload</span></a> *payload</code></em>);</pre>
-<p>Increase the refcount of this payload.</p>
-<div class="refsect3">
-<a name="gst-mikey-payload-ref.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>payload</p></td>
-<td class="parameter_description"><p>The payload to refcount</p></td>
-<td class="parameter_annotations"> </td>
-</tr></tbody>
-</table></div>
-</div>
-<div class="refsect3">
-<a name="gst-mikey-payload-ref.returns"></a><h4>Returns</h4>
-<p> <em class="parameter"><code>payload</code></em>
-(for convenience when doing assignments). </p>
-<p><span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>]</span></p>
-</div>
-<p class="since">Since: 1.4</p>
 </div>
 <hr>
 <div class="refsect2">
 <a name="gst-mikey-payload-unref"></a><h3>gst_mikey_payload_unref ()</h3>
 <pre class="programlisting"><span class="returnvalue">void</span>
 gst_mikey_payload_unref (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstmikey.html#GstMIKEYPayload" title="struct GstMIKEYPayload"><span class="type">GstMIKEYPayload</span></a> *payload</code></em>);</pre>
-<p>Decrease the refcount of an payload, freeing it if the refcount reaches 0.</p>
-<div class="refsect3">
-<a name="gst-mikey-payload-unref.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>payload</p></td>
-<td class="parameter_description"><p> the payload to refcount. </p></td>
-<td class="parameter_annotations"><span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>]</span></td>
-</tr></tbody>
-</table></div>
-</div>
-<p class="since">Since: 1.4</p>
 </div>
 <hr>
 <div class="refsect2">
@@ -1729,41 +765,6 @@
 gst_mikey_payload_kemac_set (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstmikey.html#GstMIKEYPayload" title="struct GstMIKEYPayload"><span class="type">GstMIKEYPayload</span></a> *payload</code></em>,
                              <em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstmikey.html#GstMIKEYEncAlg" title="enum GstMIKEYEncAlg"><span class="type">GstMIKEYEncAlg</span></a> enc_alg</code></em>,
                              <em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstmikey.html#GstMIKEYMacAlg" title="enum GstMIKEYMacAlg"><span class="type">GstMIKEYMacAlg</span></a> mac_alg</code></em>);</pre>
-<p>Set the KEMAC parameters. <em class="parameter"><code>payload</code></em>
- should point to a <a class="link" href="gst-plugins-base-libs-gstmikey.html#GST-MIKEY-PT-KEMAC:CAPS"><code class="literal">GST_MIKEY_PT_KEMAC</code></a>
-payload.</p>
-<div class="refsect3">
-<a name="gst-mikey-payload-kemac-set.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>payload</p></td>
-<td class="parameter_description"><p>a <a class="link" href="gst-plugins-base-libs-gstmikey.html#GstMIKEYPayload" title="struct GstMIKEYPayload"><span class="type">GstMIKEYPayload</span></a></p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-<tr>
-<td class="parameter_name"><p>enc_alg</p></td>
-<td class="parameter_description"><p>the <a class="link" href="gst-plugins-base-libs-gstmikey.html#GstMIKEYEncAlg" title="enum GstMIKEYEncAlg"><span class="type">GstMIKEYEncAlg</span></a></p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-<tr>
-<td class="parameter_name"><p>mac_alg</p></td>
-<td class="parameter_description"><p>a <a class="link" href="gst-plugins-base-libs-gstmikey.html#GstMIKEYMacAlg" title="enum GstMIKEYMacAlg"><span class="type">GstMIKEYMacAlg</span></a></p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-</tbody>
-</table></div>
-</div>
-<div class="refsect3">
-<a name="gst-mikey-payload-kemac-set.returns"></a><h4>Returns</h4>
-<p> <a href="/usr/share/gtk-doc/html/glibglib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a> on success</p>
-</div>
-<p class="since">Since: 1.4</p>
 </div>
 <hr>
 <div class="refsect2">
@@ -1771,66 +772,12 @@
 <pre class="programlisting"><a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
 gst_mikey_payload_kemac_add_sub (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstmikey.html#GstMIKEYPayload" title="struct GstMIKEYPayload"><span class="type">GstMIKEYPayload</span></a> *payload</code></em>,
                                  <em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstmikey.html#GstMIKEYPayload" title="struct GstMIKEYPayload"><span class="type">GstMIKEYPayload</span></a> *newpay</code></em>);</pre>
-<p>Add a new sub payload to <em class="parameter"><code>payload</code></em>
-.</p>
-<div class="refsect3">
-<a name="gst-mikey-payload-kemac-add-sub.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>payload</p></td>
-<td class="parameter_description"><p>a <a class="link" href="gst-plugins-base-libs-gstmikey.html#GstMIKEYPayload" title="struct GstMIKEYPayload"><span class="type">GstMIKEYPayload</span></a></p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-<tr>
-<td class="parameter_name"><p>newpay</p></td>
-<td class="parameter_description"><p> a <a class="link" href="gst-plugins-base-libs-gstmikey.html#GstMIKEYPayload" title="struct GstMIKEYPayload"><span class="type">GstMIKEYPayload</span></a> to add. </p></td>
-<td class="parameter_annotations"><span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>]</span></td>
-</tr>
-</tbody>
-</table></div>
-</div>
-<div class="refsect3">
-<a name="gst-mikey-payload-kemac-add-sub.returns"></a><h4>Returns</h4>
-<p> <a href="/usr/share/gtk-doc/html/glibglib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a> on success.</p>
-</div>
-<p class="since">Since: 1.4</p>
 </div>
 <hr>
 <div class="refsect2">
 <a name="gst-mikey-payload-kemac-get-n-sub"></a><h3>gst_mikey_payload_kemac_get_n_sub ()</h3>
 <pre class="programlisting"><a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#guint"><span class="returnvalue">guint</span></a>
 gst_mikey_payload_kemac_get_n_sub (<em class="parameter"><code>const <a class="link" href="gst-plugins-base-libs-gstmikey.html#GstMIKEYPayload" title="struct GstMIKEYPayload"><span class="type">GstMIKEYPayload</span></a> *payload</code></em>);</pre>
-<p>Get the number of sub payloads of <em class="parameter"><code>payload</code></em>
-. <em class="parameter"><code>payload</code></em>
- should be of type
-<a class="link" href="gst-plugins-base-libs-gstmikey.html#GST-MIKEY-PT-KEMAC:CAPS"><code class="literal">GST_MIKEY_PT_KEMAC</code></a>.</p>
-<div class="refsect3">
-<a name="gst-mikey-payload-kemac-get-n-sub.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>payload</p></td>
-<td class="parameter_description"><p>a <a class="link" href="gst-plugins-base-libs-gstmikey.html#GstMIKEYPayload" title="struct GstMIKEYPayload"><span class="type">GstMIKEYPayload</span></a></p></td>
-<td class="parameter_annotations"> </td>
-</tr></tbody>
-</table></div>
-</div>
-<div class="refsect3">
-<a name="gst-mikey-payload-kemac-get-n-sub.returns"></a><h4>Returns</h4>
-<p> the number of sub payloads in <em class="parameter"><code>payload</code></em>
-</p>
-</div>
-<p class="since">Since: 1.4</p>
 </div>
 <hr>
 <div class="refsect2">
@@ -1838,40 +785,6 @@
 <pre class="programlisting">const <a class="link" href="gst-plugins-base-libs-gstmikey.html#GstMIKEYPayload" title="struct GstMIKEYPayload"><span class="returnvalue">GstMIKEYPayload</span></a> *
 gst_mikey_payload_kemac_get_sub (<em class="parameter"><code>const <a class="link" href="gst-plugins-base-libs-gstmikey.html#GstMIKEYPayload" title="struct GstMIKEYPayload"><span class="type">GstMIKEYPayload</span></a> *payload</code></em>,
                                  <em class="parameter"><code><a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#guint"><span class="type">guint</span></a> idx</code></em>);</pre>
-<p>Get the sub payload of <em class="parameter"><code>payload</code></em>
- at <em class="parameter"><code>idx</code></em>
-. <em class="parameter"><code>payload</code></em>
- should be of type
-<a class="link" href="gst-plugins-base-libs-gstmikey.html#GST-MIKEY-PT-KEMAC:CAPS"><code class="literal">GST_MIKEY_PT_KEMAC</code></a>.</p>
-<div class="refsect3">
-<a name="gst-mikey-payload-kemac-get-sub.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>payload</p></td>
-<td class="parameter_description"><p>a <a class="link" href="gst-plugins-base-libs-gstmikey.html#GstMIKEYPayload" title="struct GstMIKEYPayload"><span class="type">GstMIKEYPayload</span></a></p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-<tr>
-<td class="parameter_name"><p>idx</p></td>
-<td class="parameter_description"><p>an index</p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-</tbody>
-</table></div>
-</div>
-<div class="refsect3">
-<a name="gst-mikey-payload-kemac-get-sub.returns"></a><h4>Returns</h4>
-<p> the <a class="link" href="gst-plugins-base-libs-gstmikey.html#GstMIKEYPayload" title="struct GstMIKEYPayload"><span class="type">GstMIKEYPayload</span></a> at <em class="parameter"><code>idx</code></em>
-. </p>
-<p><span class="annotation">[<acronym title="Don't free data after the code is done."><span class="acronym">transfer none</span></acronym>]</span></p>
-</div>
-<p class="since">Since: 1.4</p>
 </div>
 <hr>
 <div class="refsect2">
@@ -1879,36 +792,6 @@
 <pre class="programlisting"><a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
 gst_mikey_payload_kemac_remove_sub (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstmikey.html#GstMIKEYPayload" title="struct GstMIKEYPayload"><span class="type">GstMIKEYPayload</span></a> *payload</code></em>,
                                     <em class="parameter"><code><a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#guint"><span class="type">guint</span></a> idx</code></em>);</pre>
-<p>Remove the sub payload at <em class="parameter"><code>idx</code></em>
- in <em class="parameter"><code>payload</code></em>
-.</p>
-<div class="refsect3">
-<a name="gst-mikey-payload-kemac-remove-sub.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>payload</p></td>
-<td class="parameter_description"><p>a <a class="link" href="gst-plugins-base-libs-gstmikey.html#GstMIKEYPayload" title="struct GstMIKEYPayload"><span class="type">GstMIKEYPayload</span></a></p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-<tr>
-<td class="parameter_name"><p>idx</p></td>
-<td class="parameter_description"><p>the index to remove</p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-</tbody>
-</table></div>
-</div>
-<div class="refsect3">
-<a name="gst-mikey-payload-kemac-remove-sub.returns"></a><h4>Returns</h4>
-<p> <a href="/usr/share/gtk-doc/html/glibglib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a> on success.</p>
-</div>
-<p class="since">Since: 1.4</p>
 </div>
 <hr>
 <div class="refsect2">
@@ -1918,48 +801,6 @@
                            <em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstmikey.html#GstMIKEYCacheType" title="enum GstMIKEYCacheType"><span class="type">GstMIKEYCacheType</span></a> C</code></em>,
                            <em class="parameter"><code><a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#guint16"><span class="type">guint16</span></a> data_len</code></em>,
                            <em class="parameter"><code>const <a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#guint8"><span class="type">guint8</span></a> *data</code></em>);</pre>
-<p>Set the PKE values in <em class="parameter"><code>payload</code></em>
-. <em class="parameter"><code>payload</code></em>
- must be of type
-<a class="link" href="gst-plugins-base-libs-gstmikey.html#GST-MIKEY-PT-PKE:CAPS"><code class="literal">GST_MIKEY_PT_PKE</code></a>.</p>
-<div class="refsect3">
-<a name="gst-mikey-payload-pke-set.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>payload</p></td>
-<td class="parameter_description"><p>a <a class="link" href="gst-plugins-base-libs-gstmikey.html#GstMIKEYPayload" title="struct GstMIKEYPayload"><span class="type">GstMIKEYPayload</span></a></p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-<tr>
-<td class="parameter_name"><p>C</p></td>
-<td class="parameter_description"><p>envelope key cache indicator</p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-<tr>
-<td class="parameter_name"><p>data_len</p></td>
-<td class="parameter_description"><p>the length of <em class="parameter"><code>data</code></em>
-</p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-<tr>
-<td class="parameter_name"><p>data</p></td>
-<td class="parameter_description"><p> the encrypted envelope key. </p></td>
-<td class="parameter_annotations"><span class="annotation">[<acronym title="Parameter points to an array of items."><span class="acronym">array</span></acronym> length=data_len]</span></td>
-</tr>
-</tbody>
-</table></div>
-</div>
-<div class="refsect3">
-<a name="gst-mikey-payload-pke-set.returns"></a><h4>Returns</h4>
-<p> <a href="/usr/share/gtk-doc/html/glibglib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a> on success</p>
-</div>
-<p class="since">Since: 1.4</p>
 </div>
 <hr>
 <div class="refsect2">
@@ -1969,46 +810,6 @@
                            <em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstmikey.html#GstMIKEYCacheType" title="enum GstMIKEYCacheType"><span class="type">GstMIKEYCacheType</span></a> C</code></em>,
                            <em class="parameter"><code><a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#guint16"><span class="type">guint16</span></a> data_len</code></em>,
                            <em class="parameter"><code>const <a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#guint8"><span class="type">guint8</span></a> *data</code></em>);</pre>
-<p>Add a new PKE payload to <em class="parameter"><code>msg</code></em>
- with the given parameters.</p>
-<div class="refsect3">
-<a name="gst-mikey-message-add-pke.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>msg</p></td>
-<td class="parameter_description"><p>a <a class="link" href="gst-plugins-base-libs-gstmikey.html#GstMIKEYMessage" title="struct GstMIKEYMessage"><span class="type">GstMIKEYMessage</span></a></p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-<tr>
-<td class="parameter_name"><p>C</p></td>
-<td class="parameter_description"><p>envelope key cache indicator</p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-<tr>
-<td class="parameter_name"><p>data_len</p></td>
-<td class="parameter_description"><p>the length of <em class="parameter"><code>data</code></em>
-</p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-<tr>
-<td class="parameter_name"><p>data</p></td>
-<td class="parameter_description"><p> the encrypted envelope key. </p></td>
-<td class="parameter_annotations"><span class="annotation">[<acronym title="Parameter points to an array of items."><span class="acronym">array</span></acronym> length=data_len]</span></td>
-</tr>
-</tbody>
-</table></div>
-</div>
-<div class="refsect3">
-<a name="gst-mikey-message-add-pke.returns"></a><h4>Returns</h4>
-<p> <a href="/usr/share/gtk-doc/html/glibglib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a> on success</p>
-</div>
-<p class="since">Since: 1.4</p>
 </div>
 <hr>
 <div class="refsect2">
@@ -2017,40 +818,6 @@
 gst_mikey_payload_t_set (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstmikey.html#GstMIKEYPayload" title="struct GstMIKEYPayload"><span class="type">GstMIKEYPayload</span></a> *payload</code></em>,
                          <em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstmikey.html#GstMIKEYTSType" title="enum GstMIKEYTSType"><span class="type">GstMIKEYTSType</span></a> type</code></em>,
                          <em class="parameter"><code>const <a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#guint8"><span class="type">guint8</span></a> *ts_value</code></em>);</pre>
-<p>Set the timestamp in a <a class="link" href="gst-plugins-base-libs-gstmikey.html#GST-MIKEY-PT-T:CAPS"><code class="literal">GST_MIKEY_PT_T</code></a> <em class="parameter"><code>payload</code></em>
-.</p>
-<div class="refsect3">
-<a name="gst-mikey-payload-t-set.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>payload</p></td>
-<td class="parameter_description"><p>a <a class="link" href="gst-plugins-base-libs-gstmikey.html#GstMIKEYPayload" title="struct GstMIKEYPayload"><span class="type">GstMIKEYPayload</span></a></p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-<tr>
-<td class="parameter_name"><p>type</p></td>
-<td class="parameter_description"><p>the <a class="link" href="gst-plugins-base-libs-gstmikey.html#GstMIKEYTSType" title="enum GstMIKEYTSType"><span class="type">GstMIKEYTSType</span></a></p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-<tr>
-<td class="parameter_name"><p>ts_value</p></td>
-<td class="parameter_description"><p> the timestamp value. </p></td>
-<td class="parameter_annotations"><span class="annotation">[<acronym title="Parameter points to an array of items."><span class="acronym">array</span></acronym>]</span></td>
-</tr>
-</tbody>
-</table></div>
-</div>
-<div class="refsect3">
-<a name="gst-mikey-payload-t-set.returns"></a><h4>Returns</h4>
-<p> <a href="/usr/share/gtk-doc/html/glibglib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a> on success</p>
-</div>
-<p class="since">Since: 1.4</p>
 </div>
 <hr>
 <div class="refsect2">
@@ -2059,70 +826,12 @@
 gst_mikey_message_add_t (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstmikey.html#GstMIKEYMessage" title="struct GstMIKEYMessage"><span class="type">GstMIKEYMessage</span></a> *msg</code></em>,
                          <em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstmikey.html#GstMIKEYTSType" title="enum GstMIKEYTSType"><span class="type">GstMIKEYTSType</span></a> type</code></em>,
                          <em class="parameter"><code>const <a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#guint8"><span class="type">guint8</span></a> *ts_value</code></em>);</pre>
-<p>Add a new T payload to <em class="parameter"><code>msg</code></em>
- with the given parameters.</p>
-<div class="refsect3">
-<a name="gst-mikey-message-add-t.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>msg</p></td>
-<td class="parameter_description"><p>a <a class="link" href="gst-plugins-base-libs-gstmikey.html#GstMIKEYMessage" title="struct GstMIKEYMessage"><span class="type">GstMIKEYMessage</span></a></p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-<tr>
-<td class="parameter_name"><p>type</p></td>
-<td class="parameter_description"><p>specifies the timestamp type used</p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-<tr>
-<td class="parameter_name"><p>ts_value</p></td>
-<td class="parameter_description"><p> The timestamp value of the specified <em class="parameter"><code>type</code></em>
-. </p></td>
-<td class="parameter_annotations"><span class="annotation">[<acronym title="Parameter points to an array of items."><span class="acronym">array</span></acronym>]</span></td>
-</tr>
-</tbody>
-</table></div>
-</div>
-<div class="refsect3">
-<a name="gst-mikey-message-add-t.returns"></a><h4>Returns</h4>
-<p> <a href="/usr/share/gtk-doc/html/glibglib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a> on success</p>
-</div>
-<p class="since">Since: 1.4</p>
 </div>
 <hr>
 <div class="refsect2">
 <a name="gst-mikey-message-add-t-now-ntp-utc"></a><h3>gst_mikey_message_add_t_now_ntp_utc ()</h3>
 <pre class="programlisting"><a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
 gst_mikey_message_add_t_now_ntp_utc (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstmikey.html#GstMIKEYMessage" title="struct GstMIKEYMessage"><span class="type">GstMIKEYMessage</span></a> *msg</code></em>);</pre>
-<p>Add a new T payload to <em class="parameter"><code>msg</code></em>
- that contains the current time
-in NTP-UTC format.</p>
-<div class="refsect3">
-<a name="gst-mikey-message-add-t-now-ntp-utc.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>msg</p></td>
-<td class="parameter_description"><p>a <a class="link" href="gst-plugins-base-libs-gstmikey.html#GstMIKEYMessage" title="struct GstMIKEYMessage"><span class="type">GstMIKEYMessage</span></a></p></td>
-<td class="parameter_annotations"> </td>
-</tr></tbody>
-</table></div>
-</div>
-<div class="refsect3">
-<a name="gst-mikey-message-add-t-now-ntp-utc.returns"></a><h4>Returns</h4>
-<p> <a href="/usr/share/gtk-doc/html/glibglib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a> on success</p>
-</div>
-<p class="since">Since: 1.4</p>
 </div>
 <hr>
 <div class="refsect2">
@@ -2131,41 +840,6 @@
 gst_mikey_payload_rand_set (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstmikey.html#GstMIKEYPayload" title="struct GstMIKEYPayload"><span class="type">GstMIKEYPayload</span></a> *payload</code></em>,
                             <em class="parameter"><code><a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#guint8"><span class="type">guint8</span></a> len</code></em>,
                             <em class="parameter"><code>const <a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#guint8"><span class="type">guint8</span></a> *rand</code></em>);</pre>
-<p>Set the random values in a <a class="link" href="gst-plugins-base-libs-gstmikey.html#GST-MIKEY-PT-RAND:CAPS"><code class="literal">GST_MIKEY_PT_RAND</code></a> <em class="parameter"><code>payload</code></em>
-.</p>
-<div class="refsect3">
-<a name="gst-mikey-payload-rand-set.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>payload</p></td>
-<td class="parameter_description"><p>a <a class="link" href="gst-plugins-base-libs-gstmikey.html#GstMIKEYPayload" title="struct GstMIKEYPayload"><span class="type">GstMIKEYPayload</span></a></p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-<tr>
-<td class="parameter_name"><p>len</p></td>
-<td class="parameter_description"><p>the length of <em class="parameter"><code>rand</code></em>
-</p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-<tr>
-<td class="parameter_name"><p>rand</p></td>
-<td class="parameter_description"><p> random values. </p></td>
-<td class="parameter_annotations"><span class="annotation">[<acronym title="Parameter points to an array of items."><span class="acronym">array</span></acronym> length=len]</span></td>
-</tr>
-</tbody>
-</table></div>
-</div>
-<div class="refsect3">
-<a name="gst-mikey-payload-rand-set.returns"></a><h4>Returns</h4>
-<p> <a href="/usr/share/gtk-doc/html/glibglib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a> on success</p>
-</div>
-<p class="since">Since: 1.4</p>
 </div>
 <hr>
 <div class="refsect2">
@@ -2174,41 +848,6 @@
 gst_mikey_message_add_rand (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstmikey.html#GstMIKEYMessage" title="struct GstMIKEYMessage"><span class="type">GstMIKEYMessage</span></a> *msg</code></em>,
                             <em class="parameter"><code><a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#guint8"><span class="type">guint8</span></a> len</code></em>,
                             <em class="parameter"><code>const <a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#guint8"><span class="type">guint8</span></a> *rand</code></em>);</pre>
-<p>Add a new RAND payload to <em class="parameter"><code>msg</code></em>
- with the given parameters.</p>
-<div class="refsect3">
-<a name="gst-mikey-message-add-rand.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>msg</p></td>
-<td class="parameter_description"><p>a <a class="link" href="gst-plugins-base-libs-gstmikey.html#GstMIKEYMessage" title="struct GstMIKEYMessage"><span class="type">GstMIKEYMessage</span></a></p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-<tr>
-<td class="parameter_name"><p>len</p></td>
-<td class="parameter_description"><p>the length of <em class="parameter"><code>rand</code></em>
-</p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-<tr>
-<td class="parameter_name"><p>rand</p></td>
-<td class="parameter_description"><p> random data. </p></td>
-<td class="parameter_annotations"><span class="annotation">[<acronym title="Parameter points to an array of items."><span class="acronym">array</span></acronym> length=len]</span></td>
-</tr>
-</tbody>
-</table></div>
-</div>
-<div class="refsect3">
-<a name="gst-mikey-message-add-rand.returns"></a><h4>Returns</h4>
-<p> <a href="/usr/share/gtk-doc/html/glibglib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a> on success</p>
-</div>
-<p class="since">Since: 1.4</p>
 </div>
 <hr>
 <div class="refsect2">
@@ -2216,36 +855,6 @@
 <pre class="programlisting"><a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
 gst_mikey_message_add_rand_len (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstmikey.html#GstMIKEYMessage" title="struct GstMIKEYMessage"><span class="type">GstMIKEYMessage</span></a> *msg</code></em>,
                                 <em class="parameter"><code><a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#guint8"><span class="type">guint8</span></a> len</code></em>);</pre>
-<p>Add a new RAND payload to <em class="parameter"><code>msg</code></em>
- with <em class="parameter"><code>len</code></em>
- random bytes.</p>
-<div class="refsect3">
-<a name="gst-mikey-message-add-rand-len.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>msg</p></td>
-<td class="parameter_description"><p>a <a class="link" href="gst-plugins-base-libs-gstmikey.html#GstMIKEYMessage" title="struct GstMIKEYMessage"><span class="type">GstMIKEYMessage</span></a></p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-<tr>
-<td class="parameter_name"><p>len</p></td>
-<td class="parameter_description"><p>length</p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-</tbody>
-</table></div>
-</div>
-<div class="refsect3">
-<a name="gst-mikey-message-add-rand-len.returns"></a><h4>Returns</h4>
-<p> <a href="/usr/share/gtk-doc/html/glibglib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a> on success</p>
-</div>
-<p class="since">Since: 1.4</p>
 </div>
 <hr>
 <div class="refsect2">
@@ -2254,70 +863,12 @@
 gst_mikey_payload_sp_set (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstmikey.html#GstMIKEYPayload" title="struct GstMIKEYPayload"><span class="type">GstMIKEYPayload</span></a> *payload</code></em>,
                           <em class="parameter"><code><a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#guint"><span class="type">guint</span></a> policy</code></em>,
                           <em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstmikey.html#GstMIKEYSecProto" title="enum GstMIKEYSecProto"><span class="type">GstMIKEYSecProto</span></a> proto</code></em>);</pre>
-<p>Set the Security Policy parameters for <em class="parameter"><code>payload</code></em>
-.</p>
-<div class="refsect3">
-<a name="gst-mikey-payload-sp-set.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>payload</p></td>
-<td class="parameter_description"><p>a <a class="link" href="gst-plugins-base-libs-gstmikey.html#GstMIKEYPayload" title="struct GstMIKEYPayload"><span class="type">GstMIKEYPayload</span></a></p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-<tr>
-<td class="parameter_name"><p>policy</p></td>
-<td class="parameter_description"><p>the policy number</p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-<tr>
-<td class="parameter_name"><p>proto</p></td>
-<td class="parameter_description"><p>a <a class="link" href="gst-plugins-base-libs-gstmikey.html#GstMIKEYSecProto" title="enum GstMIKEYSecProto"><span class="type">GstMIKEYSecProto</span></a></p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-</tbody>
-</table></div>
-</div>
-<div class="refsect3">
-<a name="gst-mikey-payload-sp-set.returns"></a><h4>Returns</h4>
-<p> <a href="/usr/share/gtk-doc/html/glibglib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a> on success</p>
-</div>
-<p class="since">Since: 1.4</p>
 </div>
 <hr>
 <div class="refsect2">
 <a name="gst-mikey-payload-sp-get-n-params"></a><h3>gst_mikey_payload_sp_get_n_params ()</h3>
 <pre class="programlisting"><a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#guint"><span class="returnvalue">guint</span></a>
 gst_mikey_payload_sp_get_n_params (<em class="parameter"><code>const <a class="link" href="gst-plugins-base-libs-gstmikey.html#GstMIKEYPayload" title="struct GstMIKEYPayload"><span class="type">GstMIKEYPayload</span></a> *payload</code></em>);</pre>
-<p>Get the number of security policy parameters in a <a class="link" href="gst-plugins-base-libs-gstmikey.html#GST-MIKEY-PT-SP:CAPS"><code class="literal">GST_MIKEY_PT_SP</code></a>
-<em class="parameter"><code>payload</code></em>
-.</p>
-<div class="refsect3">
-<a name="gst-mikey-payload-sp-get-n-params.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>payload</p></td>
-<td class="parameter_description"><p>a <a class="link" href="gst-plugins-base-libs-gstmikey.html#GstMIKEYPayload" title="struct GstMIKEYPayload"><span class="type">GstMIKEYPayload</span></a></p></td>
-<td class="parameter_annotations"> </td>
-</tr></tbody>
-</table></div>
-</div>
-<div class="refsect3">
-<a name="gst-mikey-payload-sp-get-n-params.returns"></a><h4>Returns</h4>
-<p> the number of parameters in <em class="parameter"><code>payload</code></em>
-</p>
-</div>
-<p class="since">Since: 1.4</p>
 </div>
 <hr>
 <div class="refsect2">
@@ -2325,39 +876,6 @@
 <pre class="programlisting">const <a class="link" href="gst-plugins-base-libs-gstmikey.html#GstMIKEYPayloadSPParam" title="GstMIKEYPayloadSPParam"><span class="returnvalue">GstMIKEYPayloadSPParam</span></a> *
 gst_mikey_payload_sp_get_param (<em class="parameter"><code>const <a class="link" href="gst-plugins-base-libs-gstmikey.html#GstMIKEYPayload" title="struct GstMIKEYPayload"><span class="type">GstMIKEYPayload</span></a> *payload</code></em>,
                                 <em class="parameter"><code><a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#guint"><span class="type">guint</span></a> idx</code></em>);</pre>
-<p>Get the Security Policy parameter in a <a class="link" href="gst-plugins-base-libs-gstmikey.html#GST-MIKEY-PT-SP:CAPS"><code class="literal">GST_MIKEY_PT_SP</code></a> <em class="parameter"><code>payload</code></em>
-
-at <em class="parameter"><code>idx</code></em>
-.</p>
-<div class="refsect3">
-<a name="gst-mikey-payload-sp-get-param.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>payload</p></td>
-<td class="parameter_description"><p>a <a class="link" href="gst-plugins-base-libs-gstmikey.html#GstMIKEYPayload" title="struct GstMIKEYPayload"><span class="type">GstMIKEYPayload</span></a></p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-<tr>
-<td class="parameter_name"><p>idx</p></td>
-<td class="parameter_description"><p>an index</p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-</tbody>
-</table></div>
-</div>
-<div class="refsect3">
-<a name="gst-mikey-payload-sp-get-param.returns"></a><h4>Returns</h4>
-<p> the <a class="link" href="gst-plugins-base-libs-gstmikey.html#GstMIKEYPayloadSPParam" title="GstMIKEYPayloadSPParam"><span class="type">GstMIKEYPayloadSPParam</span></a> at <em class="parameter"><code>idx</code></em>
-in <em class="parameter"><code>payload</code></em>
-</p>
-</div>
-<p class="since">Since: 1.4</p>
 </div>
 <hr>
 <div class="refsect2">
@@ -2367,50 +885,6 @@
                                 <em class="parameter"><code><a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#guint8"><span class="type">guint8</span></a> type</code></em>,
                                 <em class="parameter"><code><a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#guint8"><span class="type">guint8</span></a> len</code></em>,
                                 <em class="parameter"><code>const <a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#guint8"><span class="type">guint8</span></a> *val</code></em>);</pre>
-<p>Add a new parameter to the <a class="link" href="gst-plugins-base-libs-gstmikey.html#GST-MIKEY-PT-SP:CAPS"><code class="literal">GST_MIKEY_PT_SP</code></a> <em class="parameter"><code>payload</code></em>
- with <em class="parameter"><code>type</code></em>
-, <em class="parameter"><code>len</code></em>
-
-and <em class="parameter"><code>val</code></em>
-.</p>
-<div class="refsect3">
-<a name="gst-mikey-payload-sp-add-param.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>payload</p></td>
-<td class="parameter_description"><p>a <a class="link" href="gst-plugins-base-libs-gstmikey.html#GstMIKEYPayload" title="struct GstMIKEYPayload"><span class="type">GstMIKEYPayload</span></a></p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-<tr>
-<td class="parameter_name"><p>type</p></td>
-<td class="parameter_description"><p>a type</p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-<tr>
-<td class="parameter_name"><p>len</p></td>
-<td class="parameter_description"><p>a length</p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-<tr>
-<td class="parameter_name"><p>val</p></td>
-<td class="parameter_description"><p> <em class="parameter"><code>len</code></em>
-bytes of data. </p></td>
-<td class="parameter_annotations"><span class="annotation">[<acronym title="Parameter points to an array of items."><span class="acronym">array</span></acronym> length=len]</span></td>
-</tr>
-</tbody>
-</table></div>
-</div>
-<div class="refsect3">
-<a name="gst-mikey-payload-sp-add-param.returns"></a><h4>Returns</h4>
-<p> <a href="/usr/share/gtk-doc/html/glibglib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a> on success</p>
-</div>
-<p class="since">Since: 1.4</p>
 </div>
 <hr>
 <div class="refsect2">
@@ -2418,37 +892,6 @@
 <pre class="programlisting"><a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
 gst_mikey_payload_sp_remove_param (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstmikey.html#GstMIKEYPayload" title="struct GstMIKEYPayload"><span class="type">GstMIKEYPayload</span></a> *payload</code></em>,
                                    <em class="parameter"><code><a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#guint"><span class="type">guint</span></a> idx</code></em>);</pre>
-<p>Remove the Security Policy parameters from a <a class="link" href="gst-plugins-base-libs-gstmikey.html#GST-MIKEY-PT-SP:CAPS"><code class="literal">GST_MIKEY_PT_SP</code></a>
-<em class="parameter"><code>payload</code></em>
- at <em class="parameter"><code>idx</code></em>
-.</p>
-<div class="refsect3">
-<a name="gst-mikey-payload-sp-remove-param.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>payload</p></td>
-<td class="parameter_description"><p>a <a class="link" href="gst-plugins-base-libs-gstmikey.html#GstMIKEYPayload" title="struct GstMIKEYPayload"><span class="type">GstMIKEYPayload</span></a></p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-<tr>
-<td class="parameter_name"><p>idx</p></td>
-<td class="parameter_description"><p>an index</p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-</tbody>
-</table></div>
-</div>
-<div class="refsect3">
-<a name="gst-mikey-payload-sp-remove-param.returns"></a><h4>Returns</h4>
-<p> <a href="/usr/share/gtk-doc/html/glibglib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a> on success</p>
-</div>
-<p class="since">Since: 1.4</p>
 </div>
 </div>
 <div class="refsect1">
@@ -2457,12 +900,10 @@
 <a name="GST-MIKEY-VERSION:CAPS"></a><h3>GST_MIKEY_VERSION</h3>
 <pre class="programlisting">#define GST_MIKEY_VERSION 1
 </pre>
-<p>The supported MIKEY version 1.</p>
 </div>
 <hr>
 <div class="refsect2">
 <a name="GstMIKEYType"></a><h3>enum GstMIKEYType</h3>
-<p>Different MIKEY data types.</p>
 <div class="refsect3">
 <a name="GstMIKEYType.members"></a><h4>Members</h4>
 <div class="informaltable"><table class="informaltable" width="100%" border="0">
@@ -2474,59 +915,43 @@
 <tbody>
 <tr>
 <td class="enum_member_name"><p><a name="GST-MIKEY-TYPE-INVALID:CAPS"></a>GST_MIKEY_TYPE_INVALID</p></td>
-<td class="enum_member_description">
-<p>Invalid type</p>
-</td>
-<td class="enum_member_annotations"> </td>
+<td> </td>
+<td> </td>
 </tr>
 <tr>
 <td class="enum_member_name"><p><a name="GST-MIKEY-TYPE-PSK-INIT:CAPS"></a>GST_MIKEY_TYPE_PSK_INIT</p></td>
-<td class="enum_member_description">
-<p>Initiator's pre-shared key message</p>
-</td>
-<td class="enum_member_annotations"> </td>
+<td> </td>
+<td> </td>
 </tr>
 <tr>
 <td class="enum_member_name"><p><a name="GST-MIKEY-TYPE-PSK-VERIFY:CAPS"></a>GST_MIKEY_TYPE_PSK_VERIFY</p></td>
-<td class="enum_member_description">
-<p>Verification message of a Pre-shared key message</p>
-</td>
-<td class="enum_member_annotations"> </td>
+<td> </td>
+<td> </td>
 </tr>
 <tr>
 <td class="enum_member_name"><p><a name="GST-MIKEY-TYPE-PK-INIT:CAPS"></a>GST_MIKEY_TYPE_PK_INIT</p></td>
-<td class="enum_member_description">
-<p>Initiator's public-key transport message</p>
-</td>
-<td class="enum_member_annotations"> </td>
+<td> </td>
+<td> </td>
 </tr>
 <tr>
 <td class="enum_member_name"><p><a name="GST-MIKEY-TYPE-PK-VERIFY:CAPS"></a>GST_MIKEY_TYPE_PK_VERIFY</p></td>
-<td class="enum_member_description">
-<p>Verification message of a public-key message</p>
-</td>
-<td class="enum_member_annotations"> </td>
+<td> </td>
+<td> </td>
 </tr>
 <tr>
 <td class="enum_member_name"><p><a name="GST-MIKEY-TYPE-DH-INIT:CAPS"></a>GST_MIKEY_TYPE_DH_INIT</p></td>
-<td class="enum_member_description">
-<p>Initiator's DH exchange message</p>
-</td>
-<td class="enum_member_annotations"> </td>
+<td> </td>
+<td> </td>
 </tr>
 <tr>
 <td class="enum_member_name"><p><a name="GST-MIKEY-TYPE-DH-RESP:CAPS"></a>GST_MIKEY_TYPE_DH_RESP</p></td>
-<td class="enum_member_description">
-<p>Responder's DH exchange message</p>
-</td>
-<td class="enum_member_annotations"> </td>
+<td> </td>
+<td> </td>
 </tr>
 <tr>
 <td class="enum_member_name"><p><a name="GST-MIKEY-TYPE-ERROR:CAPS"></a>GST_MIKEY_TYPE_ERROR</p></td>
-<td class="enum_member_description">
-<p>Error message</p>
-</td>
-<td class="enum_member_annotations"> </td>
+<td> </td>
+<td> </td>
 </tr>
 </tbody>
 </table></div>
@@ -2546,65 +971,10 @@
   GArray *payloads;
 };
 </pre>
-<p>Structure holding the information of the MIKEY message</p>
-<div class="refsect3">
-<a name="GstMIKEYMessage.members"></a><h4>Members</h4>
-<div class="informaltable"><table class="informaltable" width="100%" border="0">
-<colgroup>
-<col width="300px" class="struct_members_name">
-<col class="struct_members_description">
-<col width="200px" class="struct_members_annotations">
-</colgroup>
-<tbody>
-<tr>
-<td class="struct_member_name"><p><a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#guint8"><span class="type">guint8</span></a> <em class="structfield"><code><a name="GstMIKEYMessage.version"></a>version</code></em>;</p></td>
-<td class="struct_member_description"><p>the version</p></td>
-<td class="struct_member_annotations"> </td>
-</tr>
-<tr>
-<td class="struct_member_name"><p><a class="link" href="gst-plugins-base-libs-gstmikey.html#GstMIKEYType" title="enum GstMIKEYType"><span class="type">GstMIKEYType</span></a> <em class="structfield"><code><a name="GstMIKEYMessage.type"></a>type</code></em>;</p></td>
-<td class="struct_member_description"><p>the <a class="link" href="gst-plugins-base-libs-gstmikey.html#GstMIKEYType" title="enum GstMIKEYType"><span class="type">GstMIKEYType</span></a> message type</p></td>
-<td class="struct_member_annotations"> </td>
-</tr>
-<tr>
-<td class="struct_member_name"><p><a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a> <em class="structfield"><code><a name="GstMIKEYMessage.V"></a>V</code></em>;</p></td>
-<td class="struct_member_description"><p>verify flag</p></td>
-<td class="struct_member_annotations"> </td>
-</tr>
-<tr>
-<td class="struct_member_name"><p><a class="link" href="gst-plugins-base-libs-gstmikey.html#GstMIKEYPRFFunc" title="enum GstMIKEYPRFFunc"><span class="type">GstMIKEYPRFFunc</span></a> <em class="structfield"><code><a name="GstMIKEYMessage.prf-func"></a>prf_func</code></em>;</p></td>
-<td class="struct_member_description"><p>a <a class="link" href="gst-plugins-base-libs-gstmikey.html#GstMIKEYPRFFunc" title="enum GstMIKEYPRFFunc"><span class="type">GstMIKEYPRFFunc</span></a></p></td>
-<td class="struct_member_annotations"> </td>
-</tr>
-<tr>
-<td class="struct_member_name"><p><a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#guint32"><span class="type">guint32</span></a> <em class="structfield"><code><a name="GstMIKEYMessage.CSB-id"></a>CSB_id</code></em>;</p></td>
-<td class="struct_member_description"><p>Identifies the Crypto Session Bundle</p></td>
-<td class="struct_member_annotations"> </td>
-</tr>
-<tr>
-<td class="struct_member_name"><p><a class="link" href="gst-plugins-base-libs-gstmikey.html#GstMIKEYMapType" title="enum GstMIKEYMapType"><span class="type">GstMIKEYMapType</span></a> <em class="structfield"><code><a name="GstMIKEYMessage.map-type"></a>map_type</code></em>;</p></td>
-<td class="struct_member_description"><p>a <a class="link" href="gst-plugins-base-libs-gstmikey.html#GstMIKEYMapType" title="enum GstMIKEYMapType"><span class="type">GstMIKEYMapType</span></a></p></td>
-<td class="struct_member_annotations"> </td>
-</tr>
-<tr>
-<td class="struct_member_name"><p><a href="/usr/share/gtk-doc/html/glibglib-Arrays.html#GArray"><span class="type">GArray</span></a> *<em class="structfield"><code><a name="GstMIKEYMessage.map-info"></a>map_info</code></em>;</p></td>
-<td class="struct_member_description"><p>map info array of type depending on <em class="parameter"><code>map_type</code></em>
-</p></td>
-<td class="struct_member_annotations"> </td>
-</tr>
-<tr>
-<td class="struct_member_name"><p><a href="/usr/share/gtk-doc/html/glibglib-Arrays.html#GArray"><span class="type">GArray</span></a> *<em class="structfield"><code><a name="GstMIKEYMessage.payloads"></a>payloads</code></em>;</p></td>
-<td class="struct_member_description"><p>the payload array of <a class="link" href="gst-plugins-base-libs-gstmikey.html#GstMIKEYPayload" title="struct GstMIKEYPayload"><span class="type">GstMIKEYPayload</span></a></p></td>
-<td class="struct_member_annotations"> </td>
-</tr>
-</tbody>
-</table></div>
-</div>
 </div>
 <hr>
 <div class="refsect2">
 <a name="GstMIKEYPRFFunc"></a><h3>enum GstMIKEYPRFFunc</h3>
-<p>The PRF function that has been/will be used for key derivation</p>
 <div class="refsect3">
 <a name="GstMIKEYPRFFunc.members"></a><h4>Members</h4>
 <div class="informaltable"><table class="informaltable" width="100%" border="0">
@@ -2615,10 +985,8 @@
 </colgroup>
 <tbody><tr>
 <td class="enum_member_name"><p><a name="GST-MIKEY-PRF-MIKEY-1:CAPS"></a>GST_MIKEY_PRF_MIKEY_1</p></td>
-<td class="enum_member_description">
-<p>MIKEY-1 PRF function</p>
-</td>
-<td class="enum_member_annotations"> </td>
+<td> </td>
+<td> </td>
 </tr></tbody>
 </table></div>
 </div>
@@ -2626,8 +994,6 @@
 <hr>
 <div class="refsect2">
 <a name="GstMIKEYMapType"></a><h3>enum GstMIKEYMapType</h3>
-<p>Specifies the method of uniquely mapping Crypto Sessions to the security
-protocol sessions.</p>
 <div class="refsect3">
 <a name="GstMIKEYMapType.members"></a><h4>Members</h4>
 <div class="informaltable"><table class="informaltable" width="100%" border="0">
@@ -2638,8 +1004,8 @@
 </colgroup>
 <tbody><tr>
 <td class="enum_member_name"><p><a name="GST-MIKEY-MAP-TYPE-SRTP:CAPS"></a>GST_MIKEY_MAP_TYPE_SRTP</p></td>
-<td class="enum_member_description"> </td>
-<td class="enum_member_annotations"> </td>
+<td> </td>
+<td> </td>
 </tr></tbody>
 </table></div>
 </div>
@@ -2653,40 +1019,10 @@
   guint32 roc;
 } GstMIKEYMapSRTP;
 </pre>
-<p>The Security policy Map item for SRTP</p>
-<div class="refsect3">
-<a name="GstMIKEYMapSRTP.members"></a><h4>Members</h4>
-<div class="informaltable"><table class="informaltable" width="100%" border="0">
-<colgroup>
-<col width="300px" class="struct_members_name">
-<col class="struct_members_description">
-<col width="200px" class="struct_members_annotations">
-</colgroup>
-<tbody>
-<tr>
-<td class="struct_member_name"><p><a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#guint8"><span class="type">guint8</span></a> <em class="structfield"><code><a name="GstMIKEYMapSRTP.policy"></a>policy</code></em>;</p></td>
-<td class="struct_member_description"><p>The security policy applied for the stream with <em class="parameter"><code>ssrc</code></em>
-</p></td>
-<td class="struct_member_annotations"> </td>
-</tr>
-<tr>
-<td class="struct_member_name"><p><a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#guint32"><span class="type">guint32</span></a> <em class="structfield"><code><a name="GstMIKEYMapSRTP.ssrc"></a>ssrc</code></em>;</p></td>
-<td class="struct_member_description"><p>the SSRC that must be used for the stream</p></td>
-<td class="struct_member_annotations"> </td>
-</tr>
-<tr>
-<td class="struct_member_name"><p><a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#guint32"><span class="type">guint32</span></a> <em class="structfield"><code><a name="GstMIKEYMapSRTP.roc"></a>roc</code></em>;</p></td>
-<td class="struct_member_description"><p>current rollover counter</p></td>
-<td class="struct_member_annotations"> </td>
-</tr>
-</tbody>
-</table></div>
-</div>
 </div>
 <hr>
 <div class="refsect2">
 <a name="GstMIKEYPayloadType"></a><h3>enum GstMIKEYPayloadType</h3>
-<p>Different MIKEY Payload types.</p>
 <div class="refsect3">
 <a name="GstMIKEYPayloadType.members"></a><h4>Members</h4>
 <div class="informaltable"><table class="informaltable" width="100%" border="0">
@@ -2698,108 +1034,78 @@
 <tbody>
 <tr>
 <td class="enum_member_name"><p><a name="GST-MIKEY-PT-LAST:CAPS"></a>GST_MIKEY_PT_LAST</p></td>
-<td class="enum_member_description">
-<p>Last payload</p>
-</td>
-<td class="enum_member_annotations"> </td>
+<td> </td>
+<td> </td>
 </tr>
 <tr>
 <td class="enum_member_name"><p><a name="GST-MIKEY-PT-KEMAC:CAPS"></a>GST_MIKEY_PT_KEMAC</p></td>
-<td class="enum_member_description">
-<p>Key data transport payload</p>
-</td>
-<td class="enum_member_annotations"> </td>
+<td> </td>
+<td> </td>
 </tr>
 <tr>
 <td class="enum_member_name"><p><a name="GST-MIKEY-PT-PKE:CAPS"></a>GST_MIKEY_PT_PKE</p></td>
-<td class="enum_member_description">
-<p>Envelope data payload</p>
-</td>
-<td class="enum_member_annotations"> </td>
+<td> </td>
+<td> </td>
 </tr>
 <tr>
 <td class="enum_member_name"><p><a name="GST-MIKEY-PT-DH:CAPS"></a>GST_MIKEY_PT_DH</p></td>
-<td class="enum_member_description">
-<p>DH data payload</p>
-</td>
-<td class="enum_member_annotations"> </td>
+<td> </td>
+<td> </td>
 </tr>
 <tr>
 <td class="enum_member_name"><p><a name="GST-MIKEY-PT-SIGN:CAPS"></a>GST_MIKEY_PT_SIGN</p></td>
-<td class="enum_member_description">
-<p>Signature payload</p>
-</td>
-<td class="enum_member_annotations"> </td>
+<td> </td>
+<td> </td>
 </tr>
 <tr>
 <td class="enum_member_name"><p><a name="GST-MIKEY-PT-T:CAPS"></a>GST_MIKEY_PT_T</p></td>
-<td class="enum_member_description">
-<p>Timestamp payload</p>
-</td>
-<td class="enum_member_annotations"> </td>
+<td> </td>
+<td> </td>
 </tr>
 <tr>
 <td class="enum_member_name"><p><a name="GST-MIKEY-PT-ID:CAPS"></a>GST_MIKEY_PT_ID</p></td>
-<td class="enum_member_description">
-<p>ID payload</p>
-</td>
-<td class="enum_member_annotations"> </td>
+<td> </td>
+<td> </td>
 </tr>
 <tr>
 <td class="enum_member_name"><p><a name="GST-MIKEY-PT-CERT:CAPS"></a>GST_MIKEY_PT_CERT</p></td>
-<td class="enum_member_description">
-<p>Certificate Payload</p>
-</td>
-<td class="enum_member_annotations"> </td>
+<td> </td>
+<td> </td>
 </tr>
 <tr>
 <td class="enum_member_name"><p><a name="GST-MIKEY-PT-CHASH:CAPS"></a>GST_MIKEY_PT_CHASH</p></td>
-<td class="enum_member_description">
-<p>Cert hash payload</p>
-</td>
-<td class="enum_member_annotations"> </td>
+<td> </td>
+<td> </td>
 </tr>
 <tr>
 <td class="enum_member_name"><p><a name="GST-MIKEY-PT-V:CAPS"></a>GST_MIKEY_PT_V</p></td>
-<td class="enum_member_description">
-<p>Verfication message payload</p>
-</td>
-<td class="enum_member_annotations"> </td>
+<td> </td>
+<td> </td>
 </tr>
 <tr>
 <td class="enum_member_name"><p><a name="GST-MIKEY-PT-SP:CAPS"></a>GST_MIKEY_PT_SP</p></td>
-<td class="enum_member_description">
-<p>Security Policy payload</p>
-</td>
-<td class="enum_member_annotations"> </td>
+<td> </td>
+<td> </td>
 </tr>
 <tr>
 <td class="enum_member_name"><p><a name="GST-MIKEY-PT-RAND:CAPS"></a>GST_MIKEY_PT_RAND</p></td>
-<td class="enum_member_description">
-<p>RAND payload</p>
-</td>
-<td class="enum_member_annotations"> </td>
+<td> </td>
+<td> </td>
 </tr>
 <tr>
 <td class="enum_member_name"><p><a name="GST-MIKEY-PT-ERR:CAPS"></a>GST_MIKEY_PT_ERR</p></td>
-<td class="enum_member_description">
-<p>Error payload</p>
-</td>
-<td class="enum_member_annotations"> </td>
+<td> </td>
+<td> </td>
 </tr>
 <tr>
 <td class="enum_member_name"><p><a name="GST-MIKEY-PT-KEY-DATA:CAPS"></a>GST_MIKEY_PT_KEY_DATA</p></td>
-<td class="enum_member_description">
-<p>Key data sub-payload</p>
-</td>
-<td class="enum_member_annotations"> </td>
+<td> </td>
+<td> </td>
 </tr>
 <tr>
 <td class="enum_member_name"><p><a name="GST-MIKEY-PT-GEN-EXT:CAPS"></a>GST_MIKEY_PT_GEN_EXT</p></td>
-<td class="enum_member_description">
-<p>General Extension Payload</p>
-</td>
-<td class="enum_member_annotations"> </td>
+<td> </td>
+<td> </td>
 </tr>
 </tbody>
 </table></div>
@@ -2813,34 +1119,10 @@
   guint len;
 };
 </pre>
-<p>Hold the common fields for all payloads</p>
-<div class="refsect3">
-<a name="GstMIKEYPayload.members"></a><h4>Members</h4>
-<div class="informaltable"><table class="informaltable" width="100%" border="0">
-<colgroup>
-<col width="300px" class="struct_members_name">
-<col class="struct_members_description">
-<col width="200px" class="struct_members_annotations">
-</colgroup>
-<tbody>
-<tr>
-<td class="struct_member_name"><p><a class="link" href="gst-plugins-base-libs-gstmikey.html#GstMIKEYPayloadType" title="enum GstMIKEYPayloadType"><span class="type">GstMIKEYPayloadType</span></a> <em class="structfield"><code><a name="GstMIKEYPayload.type"></a>type</code></em>;</p></td>
-<td class="struct_member_description"><p>the payload type</p></td>
-<td class="struct_member_annotations"> </td>
-</tr>
-<tr>
-<td class="struct_member_name"><p><a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#guint"><span class="type">guint</span></a> <em class="structfield"><code><a name="GstMIKEYPayload.len"></a>len</code></em>;</p></td>
-<td class="struct_member_description"><p>length of the payload</p></td>
-<td class="struct_member_annotations"> </td>
-</tr>
-</tbody>
-</table></div>
-</div>
 </div>
 <hr>
 <div class="refsect2">
 <a name="GstMIKEYEncAlg"></a><h3>enum GstMIKEYEncAlg</h3>
-<p>The encryption algorithm used to encrypt the Encr data field</p>
 <div class="refsect3">
 <a name="GstMIKEYEncAlg.members"></a><h4>Members</h4>
 <div class="informaltable"><table class="informaltable" width="100%" border="0">
@@ -2852,24 +1134,18 @@
 <tbody>
 <tr>
 <td class="enum_member_name"><p><a name="GST-MIKEY-ENC-NULL:CAPS"></a>GST_MIKEY_ENC_NULL</p></td>
-<td class="enum_member_description">
-<p>no encryption</p>
-</td>
-<td class="enum_member_annotations"> </td>
+<td> </td>
+<td> </td>
 </tr>
 <tr>
 <td class="enum_member_name"><p><a name="GST-MIKEY-ENC-AES-CM-128:CAPS"></a>GST_MIKEY_ENC_AES_CM_128</p></td>
-<td class="enum_member_description">
-<p>AES-CM using a 128-bit key</p>
-</td>
-<td class="enum_member_annotations"> </td>
+<td> </td>
+<td> </td>
 </tr>
 <tr>
 <td class="enum_member_name"><p><a name="GST-MIKEY-ENC-AES-KW-128:CAPS"></a>GST_MIKEY_ENC_AES_KW_128</p></td>
-<td class="enum_member_description">
-<p>AES Key Wrap using a 128-bit key</p>
-</td>
-<td class="enum_member_annotations"> </td>
+<td> </td>
+<td> </td>
 </tr>
 </tbody>
 </table></div>
@@ -2878,7 +1154,6 @@
 <hr>
 <div class="refsect2">
 <a name="GstMIKEYMacAlg"></a><h3>enum GstMIKEYMacAlg</h3>
-<p>Specifies the authentication algorithm used</p>
 <div class="refsect3">
 <a name="GstMIKEYMacAlg.members"></a><h4>Members</h4>
 <div class="informaltable"><table class="informaltable" width="100%" border="0">
@@ -2890,17 +1165,13 @@
 <tbody>
 <tr>
 <td class="enum_member_name"><p><a name="GST-MIKEY-MAC-NULL:CAPS"></a>GST_MIKEY_MAC_NULL</p></td>
-<td class="enum_member_description">
-<p>no authentication</p>
-</td>
-<td class="enum_member_annotations"> </td>
+<td> </td>
+<td> </td>
 </tr>
 <tr>
 <td class="enum_member_name"><p><a name="GST-MIKEY-MAC-HMAC-SHA-1-160:CAPS"></a>GST_MIKEY_MAC_HMAC_SHA_1_160</p></td>
-<td class="enum_member_description">
-<p>HMAC-SHA-1-160</p>
-</td>
-<td class="enum_member_annotations"> </td>
+<td> </td>
+<td> </td>
 </tr>
 </tbody>
 </table></div>
@@ -2917,44 +1188,10 @@
   GArray *subpayloads;
 } GstMIKEYPayloadKEMAC;
 </pre>
-<p>A structure holding the KEMAC payload</p>
-<div class="refsect3">
-<a name="GstMIKEYPayloadKEMAC.members"></a><h4>Members</h4>
-<div class="informaltable"><table class="informaltable" width="100%" border="0">
-<colgroup>
-<col width="300px" class="struct_members_name">
-<col class="struct_members_description">
-<col width="200px" class="struct_members_annotations">
-</colgroup>
-<tbody>
-<tr>
-<td class="struct_member_name"><p><a class="link" href="gst-plugins-base-libs-gstmikey.html#GstMIKEYPayload" title="struct GstMIKEYPayload"><span class="type">GstMIKEYPayload</span></a> <em class="structfield"><code><a name="GstMIKEYPayloadKEMAC.pt"></a>pt</code></em>;</p></td>
-<td class="struct_member_description"><p>the common <a class="link" href="gst-plugins-base-libs-gstmikey.html#GstMIKEYPayload" title="struct GstMIKEYPayload"><span class="type">GstMIKEYPayload</span></a></p></td>
-<td class="struct_member_annotations"> </td>
-</tr>
-<tr>
-<td class="struct_member_name"><p><a class="link" href="gst-plugins-base-libs-gstmikey.html#GstMIKEYEncAlg" title="enum GstMIKEYEncAlg"><span class="type">GstMIKEYEncAlg</span></a> <em class="structfield"><code><a name="GstMIKEYPayloadKEMAC.enc-alg"></a>enc_alg</code></em>;</p></td>
-<td class="struct_member_description"><p>the <a class="link" href="gst-plugins-base-libs-gstmikey.html#GstMIKEYEncAlg" title="enum GstMIKEYEncAlg"><span class="type">GstMIKEYEncAlg</span></a></p></td>
-<td class="struct_member_annotations"> </td>
-</tr>
-<tr>
-<td class="struct_member_name"><p><a class="link" href="gst-plugins-base-libs-gstmikey.html#GstMIKEYMacAlg" title="enum GstMIKEYMacAlg"><span class="type">GstMIKEYMacAlg</span></a> <em class="structfield"><code><a name="GstMIKEYPayloadKEMAC.mac-alg"></a>mac_alg</code></em>;</p></td>
-<td class="struct_member_description"><p>the <a class="link" href="gst-plugins-base-libs-gstmikey.html#GstMIKEYMacAlg" title="enum GstMIKEYMacAlg"><span class="type">GstMIKEYMacAlg</span></a></p></td>
-<td class="struct_member_annotations"> </td>
-</tr>
-<tr>
-<td class="struct_member_name"><p><a href="/usr/share/gtk-doc/html/glibglib-Arrays.html#GArray"><span class="type">GArray</span></a> *<em class="structfield"><code><a name="GstMIKEYPayloadKEMAC.subpayloads"></a>subpayloads</code></em>;</p></td>
-<td class="struct_member_description"><p>the subpayloads</p></td>
-<td class="struct_member_annotations"> </td>
-</tr>
-</tbody>
-</table></div>
-</div>
 </div>
 <hr>
 <div class="refsect2">
 <a name="GstMIKEYCacheType"></a><h3>enum GstMIKEYCacheType</h3>
-<p>The different cache types</p>
 <div class="refsect3">
 <a name="GstMIKEYCacheType.members"></a><h4>Members</h4>
 <div class="informaltable"><table class="informaltable" width="100%" border="0">
@@ -2966,25 +1203,18 @@
 <tbody>
 <tr>
 <td class="enum_member_name"><p><a name="GST-MIKEY-CACHE-NONE:CAPS"></a>GST_MIKEY_CACHE_NONE</p></td>
-<td class="enum_member_description">
-<p>The envelope key MUST NOT be cached</p>
-</td>
-<td class="enum_member_annotations"> </td>
+<td> </td>
+<td> </td>
 </tr>
 <tr>
 <td class="enum_member_name"><p><a name="GST-MIKEY-CACHE-ALWAYS:CAPS"></a>GST_MIKEY_CACHE_ALWAYS</p></td>
-<td class="enum_member_description">
-<p>The envelope key MUST be cached</p>
-</td>
-<td class="enum_member_annotations"> </td>
+<td> </td>
+<td> </td>
 </tr>
 <tr>
 <td class="enum_member_name"><p><a name="GST-MIKEY-CACHE-FOR-CSB:CAPS"></a>GST_MIKEY_CACHE_FOR_CSB</p></td>
-<td class="enum_member_description">
-<p>The envelope key MUST be cached, but only
-                          to be used for the specific CSB.</p>
-</td>
-<td class="enum_member_annotations"> </td>
+<td> </td>
+<td> </td>
 </tr>
 </tbody>
 </table></div>
@@ -3001,48 +1231,10 @@
   guint8           *data;
 } GstMIKEYPayloadPKE;
 </pre>
-<p>The Envelope data payload contains the encrypted envelope key that is
-used in the public-key transport to protect the data in the Key data
-transport payload.  The encryption algorithm used is implicit from
-the certificate/public key used.</p>
-<div class="refsect3">
-<a name="GstMIKEYPayloadPKE.members"></a><h4>Members</h4>
-<div class="informaltable"><table class="informaltable" width="100%" border="0">
-<colgroup>
-<col width="300px" class="struct_members_name">
-<col class="struct_members_description">
-<col width="200px" class="struct_members_annotations">
-</colgroup>
-<tbody>
-<tr>
-<td class="struct_member_name"><p><a class="link" href="gst-plugins-base-libs-gstmikey.html#GstMIKEYPayload" title="struct GstMIKEYPayload"><span class="type">GstMIKEYPayload</span></a> <em class="structfield"><code><a name="GstMIKEYPayloadPKE.pt"></a>pt</code></em>;</p></td>
-<td class="struct_member_description"><p>the common <a class="link" href="gst-plugins-base-libs-gstmikey.html#GstMIKEYPayload" title="struct GstMIKEYPayload"><span class="type">GstMIKEYPayload</span></a></p></td>
-<td class="struct_member_annotations"> </td>
-</tr>
-<tr>
-<td class="struct_member_name"><p><a class="link" href="gst-plugins-base-libs-gstmikey.html#GstMIKEYCacheType" title="enum GstMIKEYCacheType"><span class="type">GstMIKEYCacheType</span></a> <em class="structfield"><code><a name="GstMIKEYPayloadPKE.C"></a>C</code></em>;</p></td>
-<td class="struct_member_description"><p>envelope key cache indicator</p></td>
-<td class="struct_member_annotations"> </td>
-</tr>
-<tr>
-<td class="struct_member_name"><p><a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#guint16"><span class="type">guint16</span></a> <em class="structfield"><code><a name="GstMIKEYPayloadPKE.data-len"></a>data_len</code></em>;</p></td>
-<td class="struct_member_description"><p>length of <em class="parameter"><code>data</code></em>
-</p></td>
-<td class="struct_member_annotations"> </td>
-</tr>
-<tr>
-<td class="struct_member_name"><p><a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#guint8"><span class="type">guint8</span></a> *<em class="structfield"><code><a name="GstMIKEYPayloadPKE.data"></a>data</code></em>;</p></td>
-<td class="struct_member_description"><p>the encrypted envelope key</p></td>
-<td class="struct_member_annotations"> </td>
-</tr>
-</tbody>
-</table></div>
-</div>
 </div>
 <hr>
 <div class="refsect2">
 <a name="GstMIKEYTSType"></a><h3>enum GstMIKEYTSType</h3>
-<p>Specifies the timestamp type.</p>
 <div class="refsect3">
 <a name="GstMIKEYTSType.members"></a><h4>Members</h4>
 <div class="informaltable"><table class="informaltable" width="100%" border="0">
@@ -3054,24 +1246,18 @@
 <tbody>
 <tr>
 <td class="enum_member_name"><p><a name="GST-MIKEY-TS-TYPE-NTP-UTC:CAPS"></a>GST_MIKEY_TS_TYPE_NTP_UTC</p></td>
-<td class="enum_member_description">
-<p>an NTP time in UTC timezone</p>
-</td>
-<td class="enum_member_annotations"> </td>
+<td> </td>
+<td> </td>
 </tr>
 <tr>
 <td class="enum_member_name"><p><a name="GST-MIKEY-TS-TYPE-NTP:CAPS"></a>GST_MIKEY_TS_TYPE_NTP</p></td>
-<td class="enum_member_description">
-<p>an NTP time</p>
-</td>
-<td class="enum_member_annotations"> </td>
+<td> </td>
+<td> </td>
 </tr>
 <tr>
 <td class="enum_member_name"><p><a name="GST-MIKEY-TS-TYPE-COUNTER:CAPS"></a>GST_MIKEY_TS_TYPE_COUNTER</p></td>
-<td class="enum_member_description">
-<p>a counter</p>
-</td>
-<td class="enum_member_annotations"> </td>
+<td> </td>
+<td> </td>
 </tr>
 </tbody>
 </table></div>
@@ -3087,34 +1273,6 @@
   guint8         *ts_value;
 } GstMIKEYPayloadT;
 </pre>
-<p>The timestamp payload carries the timestamp information</p>
-<div class="refsect3">
-<a name="GstMIKEYPayloadT.members"></a><h4>Members</h4>
-<div class="informaltable"><table class="informaltable" width="100%" border="0">
-<colgroup>
-<col width="300px" class="struct_members_name">
-<col class="struct_members_description">
-<col width="200px" class="struct_members_annotations">
-</colgroup>
-<tbody>
-<tr>
-<td class="struct_member_name"><p><a class="link" href="gst-plugins-base-libs-gstmikey.html#GstMIKEYPayload" title="struct GstMIKEYPayload"><span class="type">GstMIKEYPayload</span></a> <em class="structfield"><code><a name="GstMIKEYPayloadT.pt"></a>pt</code></em>;</p></td>
-<td class="struct_member_description"><p>the payload header</p></td>
-<td class="struct_member_annotations"> </td>
-</tr>
-<tr>
-<td class="struct_member_name"><p><a class="link" href="gst-plugins-base-libs-gstmikey.html#GstMIKEYTSType" title="enum GstMIKEYTSType"><span class="type">GstMIKEYTSType</span></a> <em class="structfield"><code><a name="GstMIKEYPayloadT.type"></a>type</code></em>;</p></td>
-<td class="struct_member_description"><p>a <a class="link" href="gst-plugins-base-libs-gstmikey.html#GstMIKEYTSType" title="enum GstMIKEYTSType"><span class="type">GstMIKEYTSType</span></a></p></td>
-<td class="struct_member_annotations"> </td>
-</tr>
-<tr>
-<td class="struct_member_name"><p><a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#guint8"><span class="type">guint8</span></a> *<em class="structfield"><code><a name="GstMIKEYPayloadT.ts-value"></a>ts_value</code></em>;</p></td>
-<td class="struct_member_description"><p>the timestamp value</p></td>
-<td class="struct_member_annotations"> </td>
-</tr>
-</tbody>
-</table></div>
-</div>
 </div>
 <hr>
 <div class="refsect2">
@@ -3126,40 +1284,10 @@
   guint8 *rand;
 } GstMIKEYPayloadRAND;
 </pre>
-<p>The RAND payload consists of a (pseudo-)random bit-string</p>
-<div class="refsect3">
-<a name="GstMIKEYPayloadRAND.members"></a><h4>Members</h4>
-<div class="informaltable"><table class="informaltable" width="100%" border="0">
-<colgroup>
-<col width="300px" class="struct_members_name">
-<col class="struct_members_description">
-<col width="200px" class="struct_members_annotations">
-</colgroup>
-<tbody>
-<tr>
-<td class="struct_member_name"><p><a class="link" href="gst-plugins-base-libs-gstmikey.html#GstMIKEYPayload" title="struct GstMIKEYPayload"><span class="type">GstMIKEYPayload</span></a> <em class="structfield"><code><a name="GstMIKEYPayloadRAND.pt"></a>pt</code></em>;</p></td>
-<td class="struct_member_description"><p>the payload header</p></td>
-<td class="struct_member_annotations"> </td>
-</tr>
-<tr>
-<td class="struct_member_name"><p><a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#guint8"><span class="type">guint8</span></a> <em class="structfield"><code><a name="GstMIKEYPayloadRAND.len"></a>len</code></em>;</p></td>
-<td class="struct_member_description"><p>the length of <em class="parameter"><code>rand</code></em>
-</p></td>
-<td class="struct_member_annotations"> </td>
-</tr>
-<tr>
-<td class="struct_member_name"><p><a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#guint8"><span class="type">guint8</span></a> *<em class="structfield"><code><a name="GstMIKEYPayloadRAND.rand"></a>rand</code></em>;</p></td>
-<td class="struct_member_description"><p>random values</p></td>
-<td class="struct_member_annotations"> </td>
-</tr>
-</tbody>
-</table></div>
-</div>
 </div>
 <hr>
 <div class="refsect2">
 <a name="GstMIKEYSecProto"></a><h3>enum GstMIKEYSecProto</h3>
-<p>Specifies the security protocol</p>
 <div class="refsect3">
 <a name="GstMIKEYSecProto.members"></a><h4>Members</h4>
 <div class="informaltable"><table class="informaltable" width="100%" border="0">
@@ -3170,8 +1298,8 @@
 </colgroup>
 <tbody><tr>
 <td class="enum_member_name"><p><a name="GST-MIKEY-SEC-PROTO-SRTP:CAPS"></a>GST_MIKEY_SEC_PROTO_SRTP</p></td>
-<td class="enum_member_description"> </td>
-<td class="enum_member_annotations"> </td>
+<td> </td>
+<td> </td>
 </tr></tbody>
 </table></div>
 </div>
@@ -3179,7 +1307,6 @@
 <hr>
 <div class="refsect2">
 <a name="GstMIKEYSecSRTP"></a><h3>enum GstMIKEYSecSRTP</h3>
-<p>This policy specifies the parameters for SRTP and SRTCP</p>
 <div class="refsect3">
 <a name="GstMIKEYSecSRTP.members"></a><h4>Members</h4>
 <div class="informaltable"><table class="informaltable" width="100%" border="0">
@@ -3191,94 +1318,68 @@
 <tbody>
 <tr>
 <td class="enum_member_name"><p><a name="GST-MIKEY-SP-SRTP-ENC-ALG:CAPS"></a>GST_MIKEY_SP_SRTP_ENC_ALG</p></td>
-<td class="enum_member_description">
-<p>Encryption algorithm</p>
-</td>
-<td class="enum_member_annotations"> </td>
+<td> </td>
+<td> </td>
 </tr>
 <tr>
 <td class="enum_member_name"><p><a name="GST-MIKEY-SP-SRTP-ENC-KEY-LEN:CAPS"></a>GST_MIKEY_SP_SRTP_ENC_KEY_LEN</p></td>
-<td class="enum_member_description">
-<p>Session Encr. key length</p>
-</td>
-<td class="enum_member_annotations"> </td>
+<td> </td>
+<td> </td>
 </tr>
 <tr>
 <td class="enum_member_name"><p><a name="GST-MIKEY-SP-SRTP-AUTH-ALG:CAPS"></a>GST_MIKEY_SP_SRTP_AUTH_ALG</p></td>
-<td class="enum_member_description">
-<p>Authentication algorithm</p>
-</td>
-<td class="enum_member_annotations"> </td>
+<td> </td>
+<td> </td>
 </tr>
 <tr>
 <td class="enum_member_name"><p><a name="GST-MIKEY-SP-SRTP-AUTH-KEY-LEN:CAPS"></a>GST_MIKEY_SP_SRTP_AUTH_KEY_LEN</p></td>
-<td class="enum_member_description">
-<p>Session Auth. key length</p>
-</td>
-<td class="enum_member_annotations"> </td>
+<td> </td>
+<td> </td>
 </tr>
 <tr>
 <td class="enum_member_name"><p><a name="GST-MIKEY-SP-SRTP-SALT-KEY-LEN:CAPS"></a>GST_MIKEY_SP_SRTP_SALT_KEY_LEN</p></td>
-<td class="enum_member_description">
-<p>Session Salt key length</p>
-</td>
-<td class="enum_member_annotations"> </td>
+<td> </td>
+<td> </td>
 </tr>
 <tr>
 <td class="enum_member_name"><p><a name="GST-MIKEY-SP-SRTP-PRF:CAPS"></a>GST_MIKEY_SP_SRTP_PRF</p></td>
-<td class="enum_member_description">
-<p>SRTP Pseudo Random Function</p>
-</td>
-<td class="enum_member_annotations"> </td>
+<td> </td>
+<td> </td>
 </tr>
 <tr>
 <td class="enum_member_name"><p><a name="GST-MIKEY-SP-SRTP-KEY-DERIV-RATE:CAPS"></a>GST_MIKEY_SP_SRTP_KEY_DERIV_RATE</p></td>
-<td class="enum_member_description">
-<p>Key derivation rate</p>
-</td>
-<td class="enum_member_annotations"> </td>
+<td> </td>
+<td> </td>
 </tr>
 <tr>
 <td class="enum_member_name"><p><a name="GST-MIKEY-SP-SRTP-SRTP-ENC:CAPS"></a>GST_MIKEY_SP_SRTP_SRTP_ENC</p></td>
-<td class="enum_member_description">
-<p>SRTP encryption off/on, 0 if off, 1 if on</p>
-</td>
-<td class="enum_member_annotations"> </td>
+<td> </td>
+<td> </td>
 </tr>
 <tr>
 <td class="enum_member_name"><p><a name="GST-MIKEY-SP-SRTP-SRTCP-ENC:CAPS"></a>GST_MIKEY_SP_SRTP_SRTCP_ENC</p></td>
-<td class="enum_member_description">
-<p>SRTCP encryption off/on, 0 if off, 1 if on</p>
-</td>
-<td class="enum_member_annotations"> </td>
+<td> </td>
+<td> </td>
 </tr>
 <tr>
 <td class="enum_member_name"><p><a name="GST-MIKEY-SP-SRTP-FEC-ORDER:CAPS"></a>GST_MIKEY_SP_SRTP_FEC_ORDER</p></td>
-<td class="enum_member_description">
-<p>sender's FEC order</p>
-</td>
-<td class="enum_member_annotations"> </td>
+<td> </td>
+<td> </td>
 </tr>
 <tr>
 <td class="enum_member_name"><p><a name="GST-MIKEY-SP-SRTP-SRTP-AUTH:CAPS"></a>GST_MIKEY_SP_SRTP_SRTP_AUTH</p></td>
-<td class="enum_member_description">
-<p>SRTP authentication off/on, 0 if off, 1 if on</p>
-</td>
-<td class="enum_member_annotations"> </td>
+<td> </td>
+<td> </td>
 </tr>
 <tr>
 <td class="enum_member_name"><p><a name="GST-MIKEY-SP-SRTP-AUTH-TAG-LEN:CAPS"></a>GST_MIKEY_SP_SRTP_AUTH_TAG_LEN</p></td>
-<td class="enum_member_description">
-<p>Authentication tag length</p>
-</td>
-<td class="enum_member_annotations"> </td>
+<td> </td>
+<td> </td>
 </tr>
 <tr>
 <td class="enum_member_name"><p><a name="GST-MIKEY-SP-SRTP-SRTP-PREFIX-LEN:CAPS"></a>GST_MIKEY_SP_SRTP_SRTP_PREFIX_LEN</p></td>
-<td class="enum_member_description">
-<p>SRTP prefix length</p>
-</td>
-<td class="enum_member_annotations"> </td>
+<td> </td>
+<td> </td>
 </tr>
 </tbody>
 </table></div>
@@ -3295,40 +1396,6 @@
   GArray *params;
 } GstMIKEYPayloadSP;
 </pre>
-<p>The Security Policy payload defines a set of policies that apply to a
-specific security protocol</p>
-<div class="refsect3">
-<a name="GstMIKEYPayloadSP.members"></a><h4>Members</h4>
-<div class="informaltable"><table class="informaltable" width="100%" border="0">
-<colgroup>
-<col width="300px" class="struct_members_name">
-<col class="struct_members_description">
-<col width="200px" class="struct_members_annotations">
-</colgroup>
-<tbody>
-<tr>
-<td class="struct_member_name"><p><a class="link" href="gst-plugins-base-libs-gstmikey.html#GstMIKEYPayload" title="struct GstMIKEYPayload"><span class="type">GstMIKEYPayload</span></a> <em class="structfield"><code><a name="GstMIKEYPayloadSP.pt"></a>pt</code></em>;</p></td>
-<td class="struct_member_description"><p>the payload header</p></td>
-<td class="struct_member_annotations"> </td>
-</tr>
-<tr>
-<td class="struct_member_name"><p><a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#guint"><span class="type">guint</span></a> <em class="structfield"><code><a name="GstMIKEYPayloadSP.policy"></a>policy</code></em>;</p></td>
-<td class="struct_member_description"><p>the policy number</p></td>
-<td class="struct_member_annotations"> </td>
-</tr>
-<tr>
-<td class="struct_member_name"><p><a class="link" href="gst-plugins-base-libs-gstmikey.html#GstMIKEYSecProto" title="enum GstMIKEYSecProto"><span class="type">GstMIKEYSecProto</span></a> <em class="structfield"><code><a name="GstMIKEYPayloadSP.proto"></a>proto</code></em>;</p></td>
-<td class="struct_member_description"><p>the security protocol</p></td>
-<td class="struct_member_annotations"> </td>
-</tr>
-<tr>
-<td class="struct_member_name"><p><a href="/usr/share/gtk-doc/html/glibglib-Arrays.html#GArray"><span class="type">GArray</span></a> *<em class="structfield"><code><a name="GstMIKEYPayloadSP.params"></a>params</code></em>;</p></td>
-<td class="struct_member_description"><p>array of <span class="type">GstMIKEYPayloadPSParam</span></p></td>
-<td class="struct_member_annotations"> </td>
-</tr>
-</tbody>
-</table></div>
-</div>
 </div>
 <hr>
 <div class="refsect2">
@@ -3339,35 +1406,6 @@
   guint8 *val;
 } GstMIKEYPayloadSPParam;
 </pre>
-<p>A Type/Length/Value field for security paramaters</p>
-<div class="refsect3">
-<a name="GstMIKEYPayloadSPParam.members"></a><h4>Members</h4>
-<div class="informaltable"><table class="informaltable" width="100%" border="0">
-<colgroup>
-<col width="300px" class="struct_members_name">
-<col class="struct_members_description">
-<col width="200px" class="struct_members_annotations">
-</colgroup>
-<tbody>
-<tr>
-<td class="struct_member_name"><p><a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#guint8"><span class="type">guint8</span></a> <em class="structfield"><code><a name="GstMIKEYPayloadSPParam.type"></a>type</code></em>;</p></td>
-<td class="struct_member_description"><p>specifies the type of the parameter</p></td>
-<td class="struct_member_annotations"> </td>
-</tr>
-<tr>
-<td class="struct_member_name"><p><a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#guint8"><span class="type">guint8</span></a> <em class="structfield"><code><a name="GstMIKEYPayloadSPParam.len"></a>len</code></em>;</p></td>
-<td class="struct_member_description"><p>specifies the length of <em class="parameter"><code>val</code></em>
-</p></td>
-<td class="struct_member_annotations"> </td>
-</tr>
-<tr>
-<td class="struct_member_name"><p><a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#guint8"><span class="type">guint8</span></a> *<em class="structfield"><code><a name="GstMIKEYPayloadSPParam.val"></a>val</code></em>;</p></td>
-<td class="struct_member_description"><p>specifies the value of the parameter</p></td>
-<td class="struct_member_annotations"> </td>
-</tr>
-</tbody>
-</table></div>
-</div>
 </div>
 </div>
 </div>
diff --git a/docs/libs/html/gst-plugins-base-libs-gstnavigation.html b/docs/libs/html/gst-plugins-base-libs-gstnavigation.html
index ee62dd0..28b3c6b 100644
--- a/docs/libs/html/gst-plugins-base-libs-gstnavigation.html
+++ b/docs/libs/html/gst-plugins-base-libs-gstnavigation.html
@@ -28,8 +28,7 @@
 <div class="refnamediv"><table width="100%"><tr>
 <td valign="top">
 <h2><span class="refentrytitle"><a name="gst-plugins-base-libs-gstnavigation.top_of_page"></a>gstnavigation</span></h2>
-<p>gstnavigation — Interface for creating, sending and parsing navigation
-events.</p>
+<p>gstnavigation</p>
 </td>
 <td class="gallery_image" valign="top" align="right"></td>
 </tr></table></div>
@@ -320,34 +319,6 @@
 </div>
 <div class="refsect1">
 <a name="gst-plugins-base-libs-gstnavigation.description"></a><h2>Description</h2>
-<p>The Navigation interface is used for creating and injecting navigation related
-events such as mouse button presses, cursor motion and key presses. The associated
-library also provides methods for parsing received events, and for sending and
-receiving navigation related bus events. One main usecase is DVD menu navigation.</p>
-<p>The main parts of the API are:</p>
-<div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; ">
-<li class="listitem"><p>
-The GstNavigation interface, implemented by elements which provide an application
-with the ability to create and inject navigation events into the pipeline.
-</p></li>
-<li class="listitem"><p>
-GstNavigation event handling API. GstNavigation events are created in response to
-calls on a GstNavigation interface implementation, and sent in the pipeline. Upstream
-elements can use the navigation event API functions to parse the contents of received
-messages.
-</p></li>
-<li class="listitem">
-<p>
-GstNavigation message handling API. GstNavigation messages may be sent on the message
-bus to inform applications of navigation related changes in the pipeline, such as the
-mouse moving over a clickable region, or the set of available angles changing.
-</p>
-<p>
-The GstNavigation message functions provide functions for creating and parsing
-custom bus messages for signaling GstNavigation changes.
-</p>
-</li>
-</ul></div>
 </div>
 <div class="refsect1">
 <a name="gst-plugins-base-libs-gstnavigation.functions_details"></a><h2>Functions</h2>
@@ -364,35 +335,6 @@
 gst_navigation_send_key_event (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstnavigation.html#GstNavigation"><span class="type">GstNavigation</span></a> *navigation</code></em>,
                                <em class="parameter"><code>const <span class="type">char</span> *event</code></em>,
                                <em class="parameter"><code>const <span class="type">char</span> *key</code></em>);</pre>
-<div class="refsect3">
-<a name="gst-navigation-send-key-event.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>navigation</p></td>
-<td class="parameter_description"><p>The navigation interface instance</p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-<tr>
-<td class="parameter_name"><p>event</p></td>
-<td class="parameter_description"><p>The type of the key event. Recognised values are "key-press" and
-"key-release"</p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-<tr>
-<td class="parameter_name"><p>key</p></td>
-<td class="parameter_description"><p>Character representation of the key. This is typically as produced
-by XKeysymToString.</p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-</tbody>
-</table></div>
-</div>
 </div>
 <hr>
 <div class="refsect2">
@@ -403,49 +345,6 @@
                                  <em class="parameter"><code><span class="type">int</span> button</code></em>,
                                  <em class="parameter"><code><span class="type">double</span> x</code></em>,
                                  <em class="parameter"><code><span class="type">double</span> y</code></em>);</pre>
-<p>Sends a mouse event to the navigation interface. Mouse event coordinates
-are sent relative to the display space of the related output area. This is
-usually the size in pixels of the window associated with the element
-implementing the <a class="link" href="gst-plugins-base-libs-gstnavigation.html#GstNavigation"><span class="type">GstNavigation</span></a> interface.</p>
-<div class="refsect3">
-<a name="gst-navigation-send-mouse-event.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>navigation</p></td>
-<td class="parameter_description"><p>The navigation interface instance</p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-<tr>
-<td class="parameter_name"><p>event</p></td>
-<td class="parameter_description"><p>The type of mouse event, as a text string. Recognised values are
-"mouse-button-press", "mouse-button-release" and "mouse-move".</p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-<tr>
-<td class="parameter_name"><p>button</p></td>
-<td class="parameter_description"><p>The button number of the button being pressed or released. Pass 0
-for mouse-move events.</p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-<tr>
-<td class="parameter_name"><p>x</p></td>
-<td class="parameter_description"><p>The x coordinate of the mouse event.</p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-<tr>
-<td class="parameter_name"><p>y</p></td>
-<td class="parameter_description"><p>The y coordinate of the mouse event.</p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-</tbody>
-</table></div>
-</div>
 </div>
 <hr>
 <div class="refsect2">
@@ -453,29 +352,6 @@
 <pre class="programlisting"><span class="returnvalue">void</span>
 gst_navigation_send_command (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstnavigation.html#GstNavigation"><span class="type">GstNavigation</span></a> *navigation</code></em>,
                              <em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstnavigation.html#GstNavigationCommand" title="enum GstNavigationCommand"><span class="type">GstNavigationCommand</span></a> command</code></em>);</pre>
-<p>Sends the indicated command to the navigation interface.</p>
-<div class="refsect3">
-<a name="gst-navigation-send-command.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>navigation</p></td>
-<td class="parameter_description"><p>The navigation interface instance</p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-<tr>
-<td class="parameter_name"><p>command</p></td>
-<td class="parameter_description"><p>The command to issue</p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-</tbody>
-</table></div>
-</div>
 </div>
 <hr>
 <div class="refsect2">
@@ -483,35 +359,6 @@
 <pre class="programlisting"><a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
 gst_navigation_event_parse_command (<em class="parameter"><code><a href="/usr/share/gtk-doc/html/gstreamer-1.0GstEvent.html#GstEvent-struct"><span class="type">GstEvent</span></a> *event</code></em>,
                                     <em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstnavigation.html#GstNavigationCommand" title="enum GstNavigationCommand"><span class="type">GstNavigationCommand</span></a> *command</code></em>);</pre>
-<p>Inspect a <a class="link" href="gst-plugins-base-libs-gstnavigation.html#GstNavigation"><span class="type">GstNavigation</span></a> command event and retrieve the enum value of the
-associated command.</p>
-<div class="refsect3">
-<a name="gst-navigation-event-parse-command.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>event</p></td>
-<td class="parameter_description"><p>A <a href="/usr/share/gtk-doc/html/gstreamer-1.0GstEvent.html#GstEvent-struct"><span class="type">GstEvent</span></a> to inspect.</p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-<tr>
-<td class="parameter_name"><p>command</p></td>
-<td class="parameter_description"><p>Pointer to GstNavigationCommand to receive the type of the
-navigation event.</p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-</tbody>
-</table></div>
-</div>
-<div class="refsect3">
-<a name="gst-navigation-event-parse-command.returns"></a><h4>Returns</h4>
-<p> TRUE if the navigation command could be extracted, otherwise FALSE.</p>
-</div>
 </div>
 <hr>
 <div class="refsect2">
@@ -519,30 +366,6 @@
 <pre class="programlisting"><a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
 gst_navigation_event_parse_key_event (<em class="parameter"><code><a href="/usr/share/gtk-doc/html/gstreamer-1.0GstEvent.html#GstEvent-struct"><span class="type">GstEvent</span></a> *event</code></em>,
                                       <em class="parameter"><code>const <a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#gchar"><span class="type">gchar</span></a> **key</code></em>);</pre>
-<div class="refsect3">
-<a name="gst-navigation-event-parse-key-event.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>event</p></td>
-<td class="parameter_description"><p>A <a href="/usr/share/gtk-doc/html/gstreamer-1.0GstEvent.html#GstEvent-struct"><span class="type">GstEvent</span></a> to inspect.</p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-<tr>
-<td class="parameter_name"><p>key</p></td>
-<td class="parameter_description"><p>A pointer to a location to receive the string identifying the key
-press. The returned string is owned by the event, and valid only until the
-event is unreffed.</p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-</tbody>
-</table></div>
-</div>
 </div>
 <hr>
 <div class="refsect2">
@@ -553,49 +376,6 @@
                                 <em class="parameter"><code><a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#gint"><span class="type">gint</span></a> *button</code></em>,
                                 <em class="parameter"><code><a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#gdouble"><span class="type">gdouble</span></a> *x</code></em>,
                                 <em class="parameter"><code><a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#gdouble"><span class="type">gdouble</span></a> *y</code></em>);</pre>
-<p>Retrieve the details of either a <a class="link" href="gst-plugins-base-libs-gstnavigation.html#GstNavigation"><span class="type">GstNavigation</span></a> mouse button press event or
-a mouse button release event. Determine which type the event is using
-<code class="function">gst_navigation_event_get_type()</code> to retrieve the <a class="link" href="gst-plugins-base-libs-gstnavigation.html#GstNavigationEventType" title="enum GstNavigationEventType"><span class="type">GstNavigationEventType</span></a>.</p>
-<div class="refsect3">
-<a name="gst-navigation-event-parse-mouse-button-event.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>event</p></td>
-<td class="parameter_description"><p>A <a href="/usr/share/gtk-doc/html/gstreamer-1.0GstEvent.html#GstEvent-struct"><span class="type">GstEvent</span></a> to inspect.</p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-<tr>
-<td class="parameter_name"><p>button</p></td>
-<td class="parameter_description"><p>Pointer to a gint that will receive the button number associated
-with the event.</p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-<tr>
-<td class="parameter_name"><p>x</p></td>
-<td class="parameter_description"><p>Pointer to a gdouble to receive the x coordinate of the mouse button
-event.</p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-<tr>
-<td class="parameter_name"><p>y</p></td>
-<td class="parameter_description"><p>Pointer to a gdouble to receive the y coordinate of the mouse button
-event.</p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-</tbody>
-</table></div>
-</div>
-<div class="refsect3">
-<a name="gst-navigation-event-parse-mouse-button-event.returns"></a><h4>Returns</h4>
-<p> TRUE if the button number and both coordinates could be extracted,
-otherwise FALSE.</p>
-</div>
 </div>
 <hr>
 <div class="refsect2">
@@ -605,68 +385,12 @@
                                (<em class="parameter"><code><a href="/usr/share/gtk-doc/html/gstreamer-1.0GstEvent.html#GstEvent-struct"><span class="type">GstEvent</span></a> *event</code></em>,
                                 <em class="parameter"><code><a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#gdouble"><span class="type">gdouble</span></a> *x</code></em>,
                                 <em class="parameter"><code><a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#gdouble"><span class="type">gdouble</span></a> *y</code></em>);</pre>
-<p>Inspect a <a class="link" href="gst-plugins-base-libs-gstnavigation.html#GstNavigation"><span class="type">GstNavigation</span></a> mouse movement event and extract the coordinates
-of the event.</p>
-<div class="refsect3">
-<a name="gst-navigation-event-parse-mouse-move-event.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>event</p></td>
-<td class="parameter_description"><p>A <a href="/usr/share/gtk-doc/html/gstreamer-1.0GstEvent.html#GstEvent-struct"><span class="type">GstEvent</span></a> to inspect.</p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-<tr>
-<td class="parameter_name"><p>x</p></td>
-<td class="parameter_description"><p>Pointer to a gdouble to receive the x coordinate of the mouse movement.</p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-<tr>
-<td class="parameter_name"><p>y</p></td>
-<td class="parameter_description"><p>Pointer to a gdouble to receive the y coordinate of the mouse movement.</p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-</tbody>
-</table></div>
-</div>
-<div class="refsect3">
-<a name="gst-navigation-event-parse-mouse-move-event.returns"></a><h4>Returns</h4>
-<p> TRUE if both coordinates could be extracted, otherwise FALSE.</p>
-</div>
 </div>
 <hr>
 <div class="refsect2">
 <a name="gst-navigation-message-get-type"></a><h3>gst_navigation_message_get_type ()</h3>
 <pre class="programlisting"><a class="link" href="gst-plugins-base-libs-gstnavigation.html#GstNavigationMessageType" title="enum GstNavigationMessageType"><span class="returnvalue">GstNavigationMessageType</span></a>
 gst_navigation_message_get_type (<em class="parameter"><code><a href="/usr/share/gtk-doc/html/gstreamer-1.0GstMessage.html#GstMessage-struct"><span class="type">GstMessage</span></a> *message</code></em>);</pre>
-<p>Check a bus message to see if it is a <a class="link" href="gst-plugins-base-libs-gstnavigation.html#GstNavigation"><span class="type">GstNavigation</span></a> event, and return
-the <a class="link" href="gst-plugins-base-libs-gstnavigation.html#GstNavigationMessageType" title="enum GstNavigationMessageType"><span class="type">GstNavigationMessageType</span></a> identifying the type of the message if so.</p>
-<div class="refsect3">
-<a name="gst-navigation-message-get-type.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>message</p></td>
-<td class="parameter_description"><p>A <a href="/usr/share/gtk-doc/html/gstreamer-1.0GstMessage.html#GstMessage-struct"><span class="type">GstMessage</span></a> to inspect.</p></td>
-<td class="parameter_annotations"> </td>
-</tr></tbody>
-</table></div>
-</div>
-<div class="refsect3">
-<a name="gst-navigation-message-get-type.returns"></a><h4>Returns</h4>
-<p> The type of the <a href="/usr/share/gtk-doc/html/gstreamer-1.0GstMessage.html#GstMessage-struct"><span class="type">GstMessage</span></a>, or
-<a class="link" href="gst-plugins-base-libs-gstnavigation.html#GST-NAVIGATION-MESSAGE-INVALID:CAPS"><span class="type">GST_NAVIGATION_MESSAGE_INVALID</span></a> if the message is not a <a class="link" href="gst-plugins-base-libs-gstnavigation.html#GstNavigation"><span class="type">GstNavigation</span></a>
-notification.</p>
-</div>
 </div>
 <hr>
 <div class="refsect2">
@@ -676,41 +400,6 @@
                                (<em class="parameter"><code><a href="/usr/share/gtk-doc/html/gstreamer-1.0GstObject.html#GstObject-struct"><span class="type">GstObject</span></a> *src</code></em>,
                                 <em class="parameter"><code><a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#guint"><span class="type">guint</span></a> cur_angle</code></em>,
                                 <em class="parameter"><code><a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#guint"><span class="type">guint</span></a> n_angles</code></em>);</pre>
-<p>Creates a new <a class="link" href="gst-plugins-base-libs-gstnavigation.html#GstNavigation"><span class="type">GstNavigation</span></a> message with type
-<a class="link" href="gst-plugins-base-libs-gstnavigation.html#GST-NAVIGATION-MESSAGE-ANGLES-CHANGED:CAPS"><span class="type">GST_NAVIGATION_MESSAGE_ANGLES_CHANGED</span></a> for notifying an application
-that the current angle, or current number of angles available in a
-multiangle video has changed.</p>
-<div class="refsect3">
-<a name="gst-navigation-message-new-angles-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>src</p></td>
-<td class="parameter_description"><p>A <a href="/usr/share/gtk-doc/html/gstreamer-1.0GstObject.html#GstObject-struct"><span class="type">GstObject</span></a> to set as source of the new message.</p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-<tr>
-<td class="parameter_name"><p>cur_angle</p></td>
-<td class="parameter_description"><p>The currently selected angle.</p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-<tr>
-<td class="parameter_name"><p>n_angles</p></td>
-<td class="parameter_description"><p>The number of viewing angles now available.</p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-</tbody>
-</table></div>
-</div>
-<div class="refsect3">
-<a name="gst-navigation-message-new-angles-changed.returns"></a><h4>Returns</h4>
-<p> The new <a href="/usr/share/gtk-doc/html/gstreamer-1.0GstMessage.html#GstMessage-struct"><span class="type">GstMessage</span></a>.</p>
-</div>
 </div>
 <hr>
 <div class="refsect2">
@@ -718,27 +407,6 @@
 <pre class="programlisting"><a href="/usr/share/gtk-doc/html/gstreamer-1.0GstMessage.html#GstMessage-struct"><span class="returnvalue">GstMessage</span></a> *
 gst_navigation_message_new_commands_changed
                                (<em class="parameter"><code><a href="/usr/share/gtk-doc/html/gstreamer-1.0GstObject.html#GstObject-struct"><span class="type">GstObject</span></a> *src</code></em>);</pre>
-<p>Creates a new <a class="link" href="gst-plugins-base-libs-gstnavigation.html#GstNavigation"><span class="type">GstNavigation</span></a> message with type
-<a class="link" href="gst-plugins-base-libs-gstnavigation.html#GST-NAVIGATION-MESSAGE-COMMANDS-CHANGED:CAPS"><span class="type">GST_NAVIGATION_MESSAGE_COMMANDS_CHANGED</span></a></p>
-<div class="refsect3">
-<a name="gst-navigation-message-new-commands-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>src</p></td>
-<td class="parameter_description"><p>A <a href="/usr/share/gtk-doc/html/gstreamer-1.0GstObject.html#GstObject-struct"><span class="type">GstObject</span></a> to set as source of the new message.</p></td>
-<td class="parameter_annotations"> </td>
-</tr></tbody>
-</table></div>
-</div>
-<div class="refsect3">
-<a name="gst-navigation-message-new-commands-changed.returns"></a><h4>Returns</h4>
-<p> The new <a href="/usr/share/gtk-doc/html/gstreamer-1.0GstMessage.html#GstMessage-struct"><span class="type">GstMessage</span></a>.</p>
-</div>
 </div>
 <hr>
 <div class="refsect2">
@@ -746,35 +414,6 @@
 <pre class="programlisting"><a href="/usr/share/gtk-doc/html/gstreamer-1.0GstMessage.html#GstMessage-struct"><span class="returnvalue">GstMessage</span></a> *
 gst_navigation_message_new_event (<em class="parameter"><code><a href="/usr/share/gtk-doc/html/gstreamer-1.0GstObject.html#GstObject-struct"><span class="type">GstObject</span></a> *src</code></em>,
                                   <em class="parameter"><code><a href="/usr/share/gtk-doc/html/gstreamer-1.0GstEvent.html#GstEvent-struct"><span class="type">GstEvent</span></a> *event</code></em>);</pre>
-<p>Creates a new <a class="link" href="gst-plugins-base-libs-gstnavigation.html#GstNavigation"><span class="type">GstNavigation</span></a> message with type
-<a class="link" href="gst-plugins-base-libs-gstnavigation.html#GST-NAVIGATION-MESSAGE-EVENT:CAPS"><span class="type">GST_NAVIGATION_MESSAGE_EVENT</span></a>.</p>
-<div class="refsect3">
-<a name="gst-navigation-message-new-event.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>src</p></td>
-<td class="parameter_description"><p>A <a href="/usr/share/gtk-doc/html/gstreamer-1.0GstObject.html#GstObject-struct"><span class="type">GstObject</span></a> to set as source of the new message.</p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-<tr>
-<td class="parameter_name"><p>event</p></td>
-<td class="parameter_description"><p> A navigation <a href="/usr/share/gtk-doc/html/gstreamer-1.0GstEvent.html#GstEvent-struct"><span class="type">GstEvent</span></a>. </p></td>
-<td class="parameter_annotations"><span class="annotation">[<acronym title="Don't free data after the code is done."><span class="acronym">transfer none</span></acronym>]</span></td>
-</tr>
-</tbody>
-</table></div>
-</div>
-<div class="refsect3">
-<a name="gst-navigation-message-new-event.returns"></a><h4>Returns</h4>
-<p> The new <a href="/usr/share/gtk-doc/html/gstreamer-1.0GstMessage.html#GstMessage-struct"><span class="type">GstMessage</span></a>.</p>
-</div>
-<p class="since">Since: 1.6</p>
 </div>
 <hr>
 <div class="refsect2">
@@ -782,35 +421,6 @@
 <pre class="programlisting"><a href="/usr/share/gtk-doc/html/gstreamer-1.0GstMessage.html#GstMessage-struct"><span class="returnvalue">GstMessage</span></a> *
 gst_navigation_message_new_mouse_over (<em class="parameter"><code><a href="/usr/share/gtk-doc/html/gstreamer-1.0GstObject.html#GstObject-struct"><span class="type">GstObject</span></a> *src</code></em>,
                                        <em class="parameter"><code><a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a> active</code></em>);</pre>
-<p>Creates a new <a class="link" href="gst-plugins-base-libs-gstnavigation.html#GstNavigation"><span class="type">GstNavigation</span></a> message with type
-<a class="link" href="gst-plugins-base-libs-gstnavigation.html#GST-NAVIGATION-MESSAGE-MOUSE-OVER:CAPS"><span class="type">GST_NAVIGATION_MESSAGE_MOUSE_OVER</span></a>.</p>
-<div class="refsect3">
-<a name="gst-navigation-message-new-mouse-over.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>src</p></td>
-<td class="parameter_description"><p>A <a href="/usr/share/gtk-doc/html/gstreamer-1.0GstObject.html#GstObject-struct"><span class="type">GstObject</span></a> to set as source of the new message.</p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-<tr>
-<td class="parameter_name"><p>active</p></td>
-<td class="parameter_description"><p><a href="/usr/share/gtk-doc/html/glibglib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a> if the mouse has entered a clickable area of the display.
-<a href="/usr/share/gtk-doc/html/glibglib-Standard-Macros.html#FALSE:CAPS"><code class="literal">FALSE</code></a> if it over a non-clickable area.</p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-</tbody>
-</table></div>
-</div>
-<div class="refsect3">
-<a name="gst-navigation-message-new-mouse-over.returns"></a><h4>Returns</h4>
-<p> The new <a href="/usr/share/gtk-doc/html/gstreamer-1.0GstMessage.html#GstMessage-struct"><span class="type">GstMessage</span></a>.</p>
-</div>
 </div>
 <hr>
 <div class="refsect2">
@@ -820,42 +430,6 @@
                                (<em class="parameter"><code><a href="/usr/share/gtk-doc/html/gstreamer-1.0GstMessage.html#GstMessage-struct"><span class="type">GstMessage</span></a> *message</code></em>,
                                 <em class="parameter"><code><a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#guint"><span class="type">guint</span></a> *cur_angle</code></em>,
                                 <em class="parameter"><code><a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#guint"><span class="type">guint</span></a> *n_angles</code></em>);</pre>
-<p>Parse a <a class="link" href="gst-plugins-base-libs-gstnavigation.html#GstNavigation"><span class="type">GstNavigation</span></a> message of type GST_NAVIGATION_MESSAGE_ANGLES_CHANGED
-and extract the <em class="parameter"><code>cur_angle</code></em>
- and <em class="parameter"><code>n_angles</code></em>
- parameters.</p>
-<div class="refsect3">
-<a name="gst-navigation-message-parse-angles-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>message</p></td>
-<td class="parameter_description"><p>A <a href="/usr/share/gtk-doc/html/gstreamer-1.0GstMessage.html#GstMessage-struct"><span class="type">GstMessage</span></a> to inspect.</p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-<tr>
-<td class="parameter_name"><p>cur_angle</p></td>
-<td class="parameter_description"><p>A pointer to a <a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#guint"><span class="type">guint</span></a> to receive the new current angle number,
-or NULL</p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-<tr>
-<td class="parameter_name"><p>n_angles</p></td>
-<td class="parameter_description"><p>A pointer to a <a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#guint"><span class="type">guint</span></a> to receive the new angle count, or NULL.</p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-</tbody>
-</table></div>
-</div>
-<div class="refsect3">
-<a name="gst-navigation-message-parse-angles-changed.returns"></a><h4>Returns</h4>
-<p> <a href="/usr/share/gtk-doc/html/glibglib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a> if the message could be successfully parsed. <a href="/usr/share/gtk-doc/html/glibglib-Standard-Macros.html#FALSE:CAPS"><code class="literal">FALSE</code></a> if not.</p>
-</div>
 </div>
 <hr>
 <div class="refsect2">
@@ -863,38 +437,6 @@
 <pre class="programlisting"><a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
 gst_navigation_message_parse_event (<em class="parameter"><code><a href="/usr/share/gtk-doc/html/gstreamer-1.0GstMessage.html#GstMessage-struct"><span class="type">GstMessage</span></a> *message</code></em>,
                                     <em class="parameter"><code><a href="/usr/share/gtk-doc/html/gstreamer-1.0GstEvent.html#GstEvent-struct"><span class="type">GstEvent</span></a> **event</code></em>);</pre>
-<p>Parse a <a class="link" href="gst-plugins-base-libs-gstnavigation.html#GstNavigation"><span class="type">GstNavigation</span></a> message of type <a class="link" href="gst-plugins-base-libs-gstnavigation.html#GST-NAVIGATION-MESSAGE-EVENT:CAPS"><span class="type">GST_NAVIGATION_MESSAGE_EVENT</span></a>
-and extract contained <a href="/usr/share/gtk-doc/html/gstreamer-1.0GstEvent.html#GstEvent-struct"><span class="type">GstEvent</span></a>. The caller must unref the <em class="parameter"><code>event</code></em>
- when done
-with it.</p>
-<div class="refsect3">
-<a name="gst-navigation-message-parse-event.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>message</p></td>
-<td class="parameter_description"><p>A <a href="/usr/share/gtk-doc/html/gstreamer-1.0GstMessage.html#GstMessage-struct"><span class="type">GstMessage</span></a> to inspect.</p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-<tr>
-<td class="parameter_name"><p>event</p></td>
-<td class="parameter_description"><p> a pointer to a <a href="/usr/share/gtk-doc/html/gstreamer-1.0GstEvent.html#GstEvent-struct"><span class="type">GstEvent</span></a> to receive the
-contained navigation event. </p></td>
-<td class="parameter_annotations"><span class="annotation">[<acronym title="Parameter for returning results. Default is transfer full."><span class="acronym">out</span></acronym>][<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>]</span></td>
-</tr>
-</tbody>
-</table></div>
-</div>
-<div class="refsect3">
-<a name="gst-navigation-message-parse-event.returns"></a><h4>Returns</h4>
-<p> <a href="/usr/share/gtk-doc/html/glibglib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a> if the message could be successfully parsed. <a href="/usr/share/gtk-doc/html/glibglib-Standard-Macros.html#FALSE:CAPS"><code class="literal">FALSE</code></a> if not.</p>
-</div>
-<p class="since">Since: 1.6</p>
 </div>
 <hr>
 <div class="refsect2">
@@ -903,89 +445,24 @@
 gst_navigation_message_parse_mouse_over
                                (<em class="parameter"><code><a href="/usr/share/gtk-doc/html/gstreamer-1.0GstMessage.html#GstMessage-struct"><span class="type">GstMessage</span></a> *message</code></em>,
                                 <em class="parameter"><code><a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a> *active</code></em>);</pre>
-<p>Parse a <a class="link" href="gst-plugins-base-libs-gstnavigation.html#GstNavigation"><span class="type">GstNavigation</span></a> message of type <a class="link" href="gst-plugins-base-libs-gstnavigation.html#GST-NAVIGATION-MESSAGE-MOUSE-OVER:CAPS"><span class="type">GST_NAVIGATION_MESSAGE_MOUSE_OVER</span></a>
-and extract the active/inactive flag. If the mouse over event is marked
-active, it indicates that the mouse is over a clickable area.</p>
-<div class="refsect3">
-<a name="gst-navigation-message-parse-mouse-over.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>message</p></td>
-<td class="parameter_description"><p>A <a href="/usr/share/gtk-doc/html/gstreamer-1.0GstMessage.html#GstMessage-struct"><span class="type">GstMessage</span></a> to inspect.</p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-<tr>
-<td class="parameter_name"><p>active</p></td>
-<td class="parameter_description"><p>A pointer to a gboolean to receive the active/inactive state,
-or NULL.</p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-</tbody>
-</table></div>
-</div>
-<div class="refsect3">
-<a name="gst-navigation-message-parse-mouse-over.returns"></a><h4>Returns</h4>
-<p> <a href="/usr/share/gtk-doc/html/glibglib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a> if the message could be successfully parsed. <a href="/usr/share/gtk-doc/html/glibglib-Standard-Macros.html#FALSE:CAPS"><code class="literal">FALSE</code></a> if not.</p>
-</div>
 </div>
 <hr>
 <div class="refsect2">
 <a name="gst-navigation-query-new-angles"></a><h3>gst_navigation_query_new_angles ()</h3>
 <pre class="programlisting"><a href="/usr/share/gtk-doc/html/gstreamer-1.0GstQuery.html#GstQuery-struct"><span class="returnvalue">GstQuery</span></a> *
 gst_navigation_query_new_angles (<em class="parameter"><code><span class="type">void</span></code></em>);</pre>
-<p>Create a new <a class="link" href="gst-plugins-base-libs-gstnavigation.html#GstNavigation"><span class="type">GstNavigation</span></a> angles query. When executed, it will
-query the pipeline for the set of currently available angles, which may be
-greater than one in a multiangle video.</p>
-<div class="refsect3">
-<a name="gst-navigation-query-new-angles.returns"></a><h4>Returns</h4>
-<p> The new query.</p>
-</div>
 </div>
 <hr>
 <div class="refsect2">
 <a name="gst-navigation-query-get-type"></a><h3>gst_navigation_query_get_type ()</h3>
 <pre class="programlisting"><a class="link" href="gst-plugins-base-libs-gstnavigation.html#GstNavigationQueryType" title="enum GstNavigationQueryType"><span class="returnvalue">GstNavigationQueryType</span></a>
 gst_navigation_query_get_type (<em class="parameter"><code><a href="/usr/share/gtk-doc/html/gstreamer-1.0GstQuery.html#GstQuery-struct"><span class="type">GstQuery</span></a> *query</code></em>);</pre>
-<p>Inspect a <a href="/usr/share/gtk-doc/html/gstreamer-1.0GstQuery.html#GstQuery-struct"><span class="type">GstQuery</span></a> and return the <a class="link" href="gst-plugins-base-libs-gstnavigation.html#GstNavigationQueryType" title="enum GstNavigationQueryType"><span class="type">GstNavigationQueryType</span></a> associated with
-it if it is a <a class="link" href="gst-plugins-base-libs-gstnavigation.html#GstNavigation"><span class="type">GstNavigation</span></a> query.</p>
-<div class="refsect3">
-<a name="gst-navigation-query-get-type.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>query</p></td>
-<td class="parameter_description"><p>The query to inspect</p></td>
-<td class="parameter_annotations"> </td>
-</tr></tbody>
-</table></div>
-</div>
-<div class="refsect3">
-<a name="gst-navigation-query-get-type.returns"></a><h4>Returns</h4>
-<p> The <a class="link" href="gst-plugins-base-libs-gstnavigation.html#GstNavigationQueryType" title="enum GstNavigationQueryType"><span class="type">GstNavigationQueryType</span></a> of the query, or
-<a class="link" href="gst-plugins-base-libs-gstnavigation.html#GST-NAVIGATION-QUERY-INVALID:CAPS"><span class="type">GST_NAVIGATION_QUERY_INVALID</span></a></p>
-</div>
 </div>
 <hr>
 <div class="refsect2">
 <a name="gst-navigation-query-new-commands"></a><h3>gst_navigation_query_new_commands ()</h3>
 <pre class="programlisting"><a href="/usr/share/gtk-doc/html/gstreamer-1.0GstQuery.html#GstQuery-struct"><span class="returnvalue">GstQuery</span></a> *
 gst_navigation_query_new_commands (<em class="parameter"><code><span class="type">void</span></code></em>);</pre>
-<p>Create a new <a class="link" href="gst-plugins-base-libs-gstnavigation.html#GstNavigation"><span class="type">GstNavigation</span></a> commands query. When executed, it will
-query the pipeline for the set of currently available commands.</p>
-<div class="refsect3">
-<a name="gst-navigation-query-new-commands.returns"></a><h4>Returns</h4>
-<p> The new query.</p>
-</div>
 </div>
 <hr>
 <div class="refsect2">
@@ -994,45 +471,6 @@
 gst_navigation_query_parse_angles (<em class="parameter"><code><a href="/usr/share/gtk-doc/html/gstreamer-1.0GstQuery.html#GstQuery-struct"><span class="type">GstQuery</span></a> *query</code></em>,
                                    <em class="parameter"><code><a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#guint"><span class="type">guint</span></a> *cur_angle</code></em>,
                                    <em class="parameter"><code><a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#guint"><span class="type">guint</span></a> *n_angles</code></em>);</pre>
-<p>Parse the current angle number in the <a class="link" href="gst-plugins-base-libs-gstnavigation.html#GstNavigation"><span class="type">GstNavigation</span></a> angles <em class="parameter"><code>query</code></em>
- into the
-<a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#guint"><span class="type">guint</span></a> pointed to by the <em class="parameter"><code>cur_angle</code></em>
- variable, and the number of available
-angles into the <a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#guint"><span class="type">guint</span></a> pointed to by the <em class="parameter"><code>n_angles</code></em>
- variable.</p>
-<div class="refsect3">
-<a name="gst-navigation-query-parse-angles.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>query</p></td>
-<td class="parameter_description"><p>a <a href="/usr/share/gtk-doc/html/gstreamer-1.0GstQuery.html#GstQuery-struct"><span class="type">GstQuery</span></a></p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-<tr>
-<td class="parameter_name"><p>cur_angle</p></td>
-<td class="parameter_description"><p>Pointer to a <a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#guint"><span class="type">guint</span></a> into which to store the currently selected
-angle value from the query, or NULL</p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-<tr>
-<td class="parameter_name"><p>n_angles</p></td>
-<td class="parameter_description"><p>Pointer to a <a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#guint"><span class="type">guint</span></a> into which to store the number of angles
-value from the query, or NULL</p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-</tbody>
-</table></div>
-</div>
-<div class="refsect3">
-<a name="gst-navigation-query-parse-angles.returns"></a><h4>Returns</h4>
-<p> <a href="/usr/share/gtk-doc/html/glibglib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a> if the query could be successfully parsed. <a href="/usr/share/gtk-doc/html/glibglib-Standard-Macros.html#FALSE:CAPS"><code class="literal">FALSE</code></a> if not.</p>
-</div>
 </div>
 <hr>
 <div class="refsect2">
@@ -1041,34 +479,6 @@
 gst_navigation_query_parse_commands_length
                                (<em class="parameter"><code><a href="/usr/share/gtk-doc/html/gstreamer-1.0GstQuery.html#GstQuery-struct"><span class="type">GstQuery</span></a> *query</code></em>,
                                 <em class="parameter"><code><a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#guint"><span class="type">guint</span></a> *n_cmds</code></em>);</pre>
-<p>Parse the number of commands in the <a class="link" href="gst-plugins-base-libs-gstnavigation.html#GstNavigation"><span class="type">GstNavigation</span></a> commands <em class="parameter"><code>query</code></em>
-.</p>
-<div class="refsect3">
-<a name="gst-navigation-query-parse-commands-length.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>query</p></td>
-<td class="parameter_description"><p>a <a href="/usr/share/gtk-doc/html/gstreamer-1.0GstQuery.html#GstQuery-struct"><span class="type">GstQuery</span></a></p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-<tr>
-<td class="parameter_name"><p>n_cmds</p></td>
-<td class="parameter_description"><p> the number of commands in this query. </p></td>
-<td class="parameter_annotations"><span class="annotation">[<acronym title="Parameter for returning results. Default is transfer full."><span class="acronym">out</span></acronym>]</span></td>
-</tr>
-</tbody>
-</table></div>
-</div>
-<div class="refsect3">
-<a name="gst-navigation-query-parse-commands-length.returns"></a><h4>Returns</h4>
-<p> <a href="/usr/share/gtk-doc/html/glibglib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a> if the query could be successfully parsed. <a href="/usr/share/gtk-doc/html/glibglib-Standard-Macros.html#FALSE:CAPS"><code class="literal">FALSE</code></a> if not.</p>
-</div>
 </div>
 <hr>
 <div class="refsect2">
@@ -1078,44 +488,6 @@
                                (<em class="parameter"><code><a href="/usr/share/gtk-doc/html/gstreamer-1.0GstQuery.html#GstQuery-struct"><span class="type">GstQuery</span></a> *query</code></em>,
                                 <em class="parameter"><code><a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#guint"><span class="type">guint</span></a> nth</code></em>,
                                 <em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstnavigation.html#GstNavigationCommand" title="enum GstNavigationCommand"><span class="type">GstNavigationCommand</span></a> *cmd</code></em>);</pre>
-<p>Parse the <a class="link" href="gst-plugins-base-libs-gstnavigation.html#GstNavigation"><span class="type">GstNavigation</span></a> command query and retrieve the <em class="parameter"><code>nth</code></em>
- command from
-it into <em class="parameter"><code>cmd</code></em>
-. If the list contains less elements than <em class="parameter"><code>nth</code></em>
-, <em class="parameter"><code>cmd</code></em>
- will be
-set to <a class="link" href="gst-plugins-base-libs-gstnavigation.html#GST-NAVIGATION-COMMAND-INVALID:CAPS"><span class="type">GST_NAVIGATION_COMMAND_INVALID</span></a>.</p>
-<div class="refsect3">
-<a name="gst-navigation-query-parse-commands-nth.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>query</p></td>
-<td class="parameter_description"><p>a <a href="/usr/share/gtk-doc/html/gstreamer-1.0GstQuery.html#GstQuery-struct"><span class="type">GstQuery</span></a></p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-<tr>
-<td class="parameter_name"><p>nth</p></td>
-<td class="parameter_description"><p>the nth command to retrieve.</p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-<tr>
-<td class="parameter_name"><p>cmd</p></td>
-<td class="parameter_description"><p> a pointer to store the nth command into. </p></td>
-<td class="parameter_annotations"><span class="annotation">[<acronym title="Parameter for returning results. Default is transfer full."><span class="acronym">out</span></acronym>]</span></td>
-</tr>
-</tbody>
-</table></div>
-</div>
-<div class="refsect3">
-<a name="gst-navigation-query-parse-commands-nth.returns"></a><h4>Returns</h4>
-<p> <a href="/usr/share/gtk-doc/html/glibglib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a> if the query could be successfully parsed. <a href="/usr/share/gtk-doc/html/glibglib-Standard-Macros.html#FALSE:CAPS"><code class="literal">FALSE</code></a> if not.</p>
-</div>
 </div>
 <hr>
 <div class="refsect2">
@@ -1124,35 +496,6 @@
 gst_navigation_query_set_angles (<em class="parameter"><code><a href="/usr/share/gtk-doc/html/gstreamer-1.0GstQuery.html#GstQuery-struct"><span class="type">GstQuery</span></a> *query</code></em>,
                                  <em class="parameter"><code><a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#guint"><span class="type">guint</span></a> cur_angle</code></em>,
                                  <em class="parameter"><code><a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#guint"><span class="type">guint</span></a> n_angles</code></em>);</pre>
-<p>Set the <a class="link" href="gst-plugins-base-libs-gstnavigation.html#GstNavigation"><span class="type">GstNavigation</span></a> angles query result field in <em class="parameter"><code>query</code></em>
-.</p>
-<div class="refsect3">
-<a name="gst-navigation-query-set-angles.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>query</p></td>
-<td class="parameter_description"><p>a <a href="/usr/share/gtk-doc/html/gstreamer-1.0GstQuery.html#GstQuery-struct"><span class="type">GstQuery</span></a></p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-<tr>
-<td class="parameter_name"><p>cur_angle</p></td>
-<td class="parameter_description"><p>the current viewing angle to set.</p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-<tr>
-<td class="parameter_name"><p>n_angles</p></td>
-<td class="parameter_description"><p>the number of viewing angles to set.</p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-</tbody>
-</table></div>
-</div>
 </div>
 <hr>
 <div class="refsect2">
@@ -1161,39 +504,6 @@
 gst_navigation_query_set_commands (<em class="parameter"><code><a href="/usr/share/gtk-doc/html/gstreamer-1.0GstQuery.html#GstQuery-struct"><span class="type">GstQuery</span></a> *query</code></em>,
                                    <em class="parameter"><code><a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#gint"><span class="type">gint</span></a> n_cmds</code></em>,
                                    <em class="parameter"><code>...</code></em>);</pre>
-<p>Set the <a class="link" href="gst-plugins-base-libs-gstnavigation.html#GstNavigation"><span class="type">GstNavigation</span></a> command query result fields in <em class="parameter"><code>query</code></em>
-. The number
-of commands passed must be equal to <em class="parameter"><code>n_commands</code></em>
-.</p>
-<div class="refsect3">
-<a name="gst-navigation-query-set-commands.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>query</p></td>
-<td class="parameter_description"><p>a <a href="/usr/share/gtk-doc/html/gstreamer-1.0GstQuery.html#GstQuery-struct"><span class="type">GstQuery</span></a></p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-<tr>
-<td class="parameter_name"><p>n_cmds</p></td>
-<td class="parameter_description"><p>the number of commands to set.</p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-<tr>
-<td class="parameter_name"><p>...</p></td>
-<td class="parameter_description"><p>A list of <em class="parameter"><code>GstNavigationCommand</code></em>
-values, <em class="parameter"><code>n_cmds</code></em>
-entries long.</p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-</tbody>
-</table></div>
-</div>
 </div>
 <hr>
 <div class="refsect2">
@@ -1202,39 +512,6 @@
 gst_navigation_query_set_commandsv (<em class="parameter"><code><a href="/usr/share/gtk-doc/html/gstreamer-1.0GstQuery.html#GstQuery-struct"><span class="type">GstQuery</span></a> *query</code></em>,
                                     <em class="parameter"><code><a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#gint"><span class="type">gint</span></a> n_cmds</code></em>,
                                     <em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstnavigation.html#GstNavigationCommand" title="enum GstNavigationCommand"><span class="type">GstNavigationCommand</span></a> *cmds</code></em>);</pre>
-<p>Set the <a class="link" href="gst-plugins-base-libs-gstnavigation.html#GstNavigation"><span class="type">GstNavigation</span></a> command query result fields in <em class="parameter"><code>query</code></em>
-. The number
-of commands passed must be equal to <em class="parameter"><code>n_commands</code></em>
-.</p>
-<div class="refsect3">
-<a name="gst-navigation-query-set-commandsv.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>query</p></td>
-<td class="parameter_description"><p>a <a href="/usr/share/gtk-doc/html/gstreamer-1.0GstQuery.html#GstQuery-struct"><span class="type">GstQuery</span></a></p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-<tr>
-<td class="parameter_name"><p>n_cmds</p></td>
-<td class="parameter_description"><p>the number of commands to set.</p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-<tr>
-<td class="parameter_name"><p>cmds</p></td>
-<td class="parameter_description"><p>An array containing <em class="parameter"><code>n_cmds</code></em>
-<em class="parameter"><code>GstNavigationCommand</code></em>
-values.</p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-</tbody>
-</table></div>
-</div>
 </div>
 </div>
 <div class="refsect1">
@@ -1253,51 +530,10 @@
   void (*send_event) (GstNavigation *navigation, GstStructure *structure);
 };
 </pre>
-<p>Navigation interface.</p>
-<div class="refsect3">
-<a name="GstNavigationInterface.members"></a><h4>Members</h4>
-<div class="informaltable"><table class="informaltable" width="100%" border="0">
-<colgroup>
-<col width="300px" class="struct_members_name">
-<col class="struct_members_description">
-<col width="200px" class="struct_members_annotations">
-</colgroup>
-<tbody>
-<tr>
-<td class="struct_member_name"><p><a href="/usr/share/gtk-doc/html/gobjectgobject-Type-Information.html#GTypeInterface"><span class="type">GTypeInterface</span></a> <em class="structfield"><code><a name="GstNavigationInterface.iface"></a>iface</code></em>;</p></td>
-<td class="struct_member_description"><p>the parent interface</p></td>
-<td class="struct_member_annotations"> </td>
-</tr>
-<tr>
-<td class="struct_member_name"><p><em class="structfield"><code><a name="GstNavigationInterface.send-event"></a>send_event</code></em> ()</p></td>
-<td class="struct_member_description"><p>sending a navigation event</p></td>
-<td class="struct_member_annotations"> </td>
-</tr>
-</tbody>
-</table></div>
-</div>
 </div>
 <hr>
 <div class="refsect2">
 <a name="GstNavigationCommand"></a><h3>enum GstNavigationCommand</h3>
-<p>A set of commands that may be issued to an element providing the
-<a class="link" href="gst-plugins-base-libs-gstnavigation.html#GstNavigation"><span class="type">GstNavigation</span></a> interface. The available commands can be queried via
-the <a class="link" href="gst-plugins-base-libs-gstnavigation.html#gst-navigation-query-new-commands" title="gst_navigation_query_new_commands ()"><code class="function">gst_navigation_query_new_commands()</code></a> query.</p>
-<p>For convenience in handling DVD navigation, the MENU commands are aliased as:
-   GST_NAVIGATION_COMMAND_DVD_MENU            = <em class="parameter"><code>GST_NAVIGATION_COMMAND_MENU1</code></em>
-
-   GST_NAVIGATION_COMMAND_DVD_TITLE_MENU      = <em class="parameter"><code>GST_NAVIGATION_COMMAND_MENU2</code></em>
-
-   GST_NAVIGATION_COMMAND_DVD_ROOT_MENU       = <em class="parameter"><code>GST_NAVIGATION_COMMAND_MENU3</code></em>
-
-   GST_NAVIGATION_COMMAND_DVD_SUBPICTURE_MENU = <em class="parameter"><code>GST_NAVIGATION_COMMAND_MENU4</code></em>
-
-   GST_NAVIGATION_COMMAND_DVD_AUDIO_MENU      = <em class="parameter"><code>GST_NAVIGATION_COMMAND_MENU5</code></em>
-
-   GST_NAVIGATION_COMMAND_DVD_ANGLE_MENU      = <em class="parameter"><code>GST_NAVIGATION_COMMAND_MENU6</code></em>
-
-   GST_NAVIGATION_COMMAND_DVD_CHAPTER_MENU    = <em class="parameter"><code>GST_NAVIGATION_COMMAND_MENU7</code></em>
-</p>
 <div class="refsect3">
 <a name="GstNavigationCommand.members"></a><h4>Members</h4>
 <div class="informaltable"><table class="informaltable" width="100%" border="0">
@@ -1309,122 +545,78 @@
 <tbody>
 <tr>
 <td class="enum_member_name"><p><a name="GST-NAVIGATION-COMMAND-INVALID:CAPS"></a>GST_NAVIGATION_COMMAND_INVALID</p></td>
-<td class="enum_member_description">
-<p>An invalid command entry</p>
-</td>
-<td class="enum_member_annotations"> </td>
+<td> </td>
+<td> </td>
 </tr>
 <tr>
 <td class="enum_member_name"><p><a name="GST-NAVIGATION-COMMAND-MENU1:CAPS"></a>GST_NAVIGATION_COMMAND_MENU1</p></td>
-<td class="enum_member_description">
-<p>Execute navigation menu command 1. For DVD,
-this enters the DVD root menu, or exits back to the title from the menu.</p>
-</td>
-<td class="enum_member_annotations"> </td>
+<td> </td>
+<td> </td>
 </tr>
 <tr>
 <td class="enum_member_name"><p><a name="GST-NAVIGATION-COMMAND-MENU2:CAPS"></a>GST_NAVIGATION_COMMAND_MENU2</p></td>
-<td class="enum_member_description">
-<p>Execute navigation menu command 2. For DVD,
-this jumps to the DVD title menu.</p>
-</td>
-<td class="enum_member_annotations"> </td>
+<td> </td>
+<td> </td>
 </tr>
 <tr>
 <td class="enum_member_name"><p><a name="GST-NAVIGATION-COMMAND-MENU3:CAPS"></a>GST_NAVIGATION_COMMAND_MENU3</p></td>
-<td class="enum_member_description">
-<p>Execute navigation menu command 3. For DVD,
-this jumps into the DVD root menu.</p>
-</td>
-<td class="enum_member_annotations"> </td>
+<td> </td>
+<td> </td>
 </tr>
 <tr>
 <td class="enum_member_name"><p><a name="GST-NAVIGATION-COMMAND-MENU4:CAPS"></a>GST_NAVIGATION_COMMAND_MENU4</p></td>
-<td class="enum_member_description">
-<p>Execute navigation menu command 4. For DVD,
-this jumps to the Subpicture menu.</p>
-</td>
-<td class="enum_member_annotations"> </td>
+<td> </td>
+<td> </td>
 </tr>
 <tr>
 <td class="enum_member_name"><p><a name="GST-NAVIGATION-COMMAND-MENU5:CAPS"></a>GST_NAVIGATION_COMMAND_MENU5</p></td>
-<td class="enum_member_description">
-<p>Execute navigation menu command 5. For DVD,
-the jumps to the audio menu.</p>
-</td>
-<td class="enum_member_annotations"> </td>
+<td> </td>
+<td> </td>
 </tr>
 <tr>
 <td class="enum_member_name"><p><a name="GST-NAVIGATION-COMMAND-MENU6:CAPS"></a>GST_NAVIGATION_COMMAND_MENU6</p></td>
-<td class="enum_member_description">
-<p>Execute navigation menu command 6. For DVD,
-this jumps to the angles menu.</p>
-</td>
-<td class="enum_member_annotations"> </td>
+<td> </td>
+<td> </td>
 </tr>
 <tr>
 <td class="enum_member_name"><p><a name="GST-NAVIGATION-COMMAND-MENU7:CAPS"></a>GST_NAVIGATION_COMMAND_MENU7</p></td>
-<td class="enum_member_description">
-<p>Execute navigation menu command 7. For DVD,
-this jumps to the chapter menu.</p>
-</td>
-<td class="enum_member_annotations"> </td>
+<td> </td>
+<td> </td>
 </tr>
 <tr>
 <td class="enum_member_name"><p><a name="GST-NAVIGATION-COMMAND-LEFT:CAPS"></a>GST_NAVIGATION_COMMAND_LEFT</p></td>
-<td class="enum_member_description">
-<p>Select the next button to the left in a menu,
-if such a button exists.</p>
-</td>
-<td class="enum_member_annotations"> </td>
+<td> </td>
+<td> </td>
 </tr>
 <tr>
 <td class="enum_member_name"><p><a name="GST-NAVIGATION-COMMAND-RIGHT:CAPS"></a>GST_NAVIGATION_COMMAND_RIGHT</p></td>
-<td class="enum_member_description">
-<p>Select the next button to the right in a menu,
-if such a button exists.</p>
-</td>
-<td class="enum_member_annotations"> </td>
+<td> </td>
+<td> </td>
 </tr>
 <tr>
 <td class="enum_member_name"><p><a name="GST-NAVIGATION-COMMAND-UP:CAPS"></a>GST_NAVIGATION_COMMAND_UP</p></td>
-<td class="enum_member_description">
-<p>Select the button above the current one in a
-menu, if such a button exists.</p>
-</td>
-<td class="enum_member_annotations"> </td>
+<td> </td>
+<td> </td>
 </tr>
 <tr>
 <td class="enum_member_name"><p><a name="GST-NAVIGATION-COMMAND-DOWN:CAPS"></a>GST_NAVIGATION_COMMAND_DOWN</p></td>
-<td class="enum_member_description">
-<p>Select the button below the current one in a
-menu, if such a button exists.</p>
-</td>
-<td class="enum_member_annotations"> </td>
+<td> </td>
+<td> </td>
 </tr>
 <tr>
 <td class="enum_member_name"><p><a name="GST-NAVIGATION-COMMAND-ACTIVATE:CAPS"></a>GST_NAVIGATION_COMMAND_ACTIVATE</p></td>
-<td class="enum_member_description">
-<p>Activate (click) the currently selected
-button in a menu, if such a button exists.</p>
-</td>
-<td class="enum_member_annotations"> </td>
+<td> </td>
+<td> </td>
 </tr>
 <tr>
 <td class="enum_member_name"><p><a name="GST-NAVIGATION-COMMAND-PREV-ANGLE:CAPS"></a>GST_NAVIGATION_COMMAND_PREV_ANGLE</p></td>
-<td class="enum_member_description">
-<p>Switch to the previous angle in a
-multiangle feature.</p>
-</td>
-<td class="enum_member_annotations"> </td>
+<td> </td>
+<td> </td>
 </tr>
 <tr>
 <td class="enum_member_name"><p><a name="GST-NAVIGATION-COMMAND-NEXT-ANGLE:CAPS"></a>GST_NAVIGATION_COMMAND_NEXT_ANGLE</p></td>
-<td class="enum_member_description">
-<p>Switch to the next angle in a multiangle
-feature.</p>
-</td>
-<td class="enum_member_annotations"> </td>
+<td> </td>
+<td> </td>
 </tr>
 </tbody>
 </table></div>
@@ -1433,8 +625,6 @@
 <hr>
 <div class="refsect2">
 <a name="GstNavigationEventType"></a><h3>enum GstNavigationEventType</h3>
-<p>Enum values for the various events that an element implementing the
-GstNavigation interface might send up the pipeline.</p>
 <div class="refsect3">
 <a name="GstNavigationEventType.members"></a><h4>Members</h4>
 <div class="informaltable"><table class="informaltable" width="100%" border="0">
@@ -1446,62 +636,38 @@
 <tbody>
 <tr>
 <td class="enum_member_name"><p><a name="GST-NAVIGATION-EVENT-INVALID:CAPS"></a>GST_NAVIGATION_EVENT_INVALID</p></td>
-<td class="enum_member_description">
-<p>Returned from
-<code class="function">gst_navigation_event_get_type()</code> when the passed event is not a navigation event.</p>
-</td>
-<td class="enum_member_annotations"> </td>
+<td> </td>
+<td> </td>
 </tr>
 <tr>
 <td class="enum_member_name"><p><a name="GST-NAVIGATION-EVENT-KEY-PRESS:CAPS"></a>GST_NAVIGATION_EVENT_KEY_PRESS</p></td>
-<td class="enum_member_description">
-<p>A key press event. Use
-<a class="link" href="gst-plugins-base-libs-gstnavigation.html#gst-navigation-event-parse-key-event" title="gst_navigation_event_parse_key_event ()"><code class="function">gst_navigation_event_parse_key_event()</code></a> to extract the details from the event.</p>
-</td>
-<td class="enum_member_annotations"> </td>
+<td> </td>
+<td> </td>
 </tr>
 <tr>
 <td class="enum_member_name"><p><a name="GST-NAVIGATION-EVENT-KEY-RELEASE:CAPS"></a>GST_NAVIGATION_EVENT_KEY_RELEASE</p></td>
-<td class="enum_member_description">
-<p>A key release event. Use
-<a class="link" href="gst-plugins-base-libs-gstnavigation.html#gst-navigation-event-parse-key-event" title="gst_navigation_event_parse_key_event ()"><code class="function">gst_navigation_event_parse_key_event()</code></a> to extract the details from the event.</p>
-</td>
-<td class="enum_member_annotations"> </td>
+<td> </td>
+<td> </td>
 </tr>
 <tr>
 <td class="enum_member_name"><p><a name="GST-NAVIGATION-EVENT-MOUSE-BUTTON-PRESS:CAPS"></a>GST_NAVIGATION_EVENT_MOUSE_BUTTON_PRESS</p></td>
-<td class="enum_member_description">
-<p>A mouse button press event. Use
-<a class="link" href="gst-plugins-base-libs-gstnavigation.html#gst-navigation-event-parse-mouse-button-event" title="gst_navigation_event_parse_mouse_button_event ()"><code class="function">gst_navigation_event_parse_mouse_button_event()</code></a> to extract the details from the
-event.</p>
-</td>
-<td class="enum_member_annotations"> </td>
+<td> </td>
+<td> </td>
 </tr>
 <tr>
 <td class="enum_member_name"><p><a name="GST-NAVIGATION-EVENT-MOUSE-BUTTON-RELEASE:CAPS"></a>GST_NAVIGATION_EVENT_MOUSE_BUTTON_RELEASE</p></td>
-<td class="enum_member_description">
-<p>A mouse button release event. Use
-<a class="link" href="gst-plugins-base-libs-gstnavigation.html#gst-navigation-event-parse-mouse-button-event" title="gst_navigation_event_parse_mouse_button_event ()"><code class="function">gst_navigation_event_parse_mouse_button_event()</code></a> to extract the details from the
-event.</p>
-</td>
-<td class="enum_member_annotations"> </td>
+<td> </td>
+<td> </td>
 </tr>
 <tr>
 <td class="enum_member_name"><p><a name="GST-NAVIGATION-EVENT-MOUSE-MOVE:CAPS"></a>GST_NAVIGATION_EVENT_MOUSE_MOVE</p></td>
-<td class="enum_member_description">
-<p>A mouse movement event. Use
-<a class="link" href="gst-plugins-base-libs-gstnavigation.html#gst-navigation-event-parse-mouse-move-event" title="gst_navigation_event_parse_mouse_move_event ()"><code class="function">gst_navigation_event_parse_mouse_move_event()</code></a> to extract the details from the
-event.</p>
-</td>
-<td class="enum_member_annotations"> </td>
+<td> </td>
+<td> </td>
 </tr>
 <tr>
 <td class="enum_member_name"><p><a name="GST-NAVIGATION-EVENT-COMMAND:CAPS"></a>GST_NAVIGATION_EVENT_COMMAND</p></td>
-<td class="enum_member_description">
-<p>A navigation command event. Use
-<a class="link" href="gst-plugins-base-libs-gstnavigation.html#gst-navigation-event-parse-command" title="gst_navigation_event_parse_command ()"><code class="function">gst_navigation_event_parse_command()</code></a> to extract the details from the event.</p>
-</td>
-<td class="enum_member_annotations"> </td>
+<td> </td>
+<td> </td>
 </tr>
 </tbody>
 </table></div>
@@ -1510,8 +676,6 @@
 <hr>
 <div class="refsect2">
 <a name="GstNavigationMessageType"></a><h3>enum GstNavigationMessageType</h3>
-<p>A set of notifications that may be received on the bus when navigation
-related status changes.</p>
 <div class="refsect3">
 <a name="GstNavigationMessageType.members"></a><h4>Members</h4>
 <div class="informaltable"><table class="informaltable" width="100%" border="0">
@@ -1523,45 +687,28 @@
 <tbody>
 <tr>
 <td class="enum_member_name"><p><a name="GST-NAVIGATION-MESSAGE-INVALID:CAPS"></a>GST_NAVIGATION_MESSAGE_INVALID</p></td>
-<td class="enum_member_description">
-<p>Returned from
-<a class="link" href="gst-plugins-base-libs-gstnavigation.html#gst-navigation-message-get-type" title="gst_navigation_message_get_type ()"><code class="function">gst_navigation_message_get_type()</code></a> when the passed message is not a
-navigation message.</p>
-</td>
-<td class="enum_member_annotations"> </td>
+<td> </td>
+<td> </td>
 </tr>
 <tr>
 <td class="enum_member_name"><p><a name="GST-NAVIGATION-MESSAGE-MOUSE-OVER:CAPS"></a>GST_NAVIGATION_MESSAGE_MOUSE_OVER</p></td>
-<td class="enum_member_description">
-<p>Sent when the mouse moves over or leaves a
-clickable region of the output, such as a DVD menu button.</p>
-</td>
-<td class="enum_member_annotations"> </td>
+<td> </td>
+<td> </td>
 </tr>
 <tr>
 <td class="enum_member_name"><p><a name="GST-NAVIGATION-MESSAGE-COMMANDS-CHANGED:CAPS"></a>GST_NAVIGATION_MESSAGE_COMMANDS_CHANGED</p></td>
-<td class="enum_member_description">
-<p>Sent when the set of available commands
-changes and should re-queried by interested applications.</p>
-</td>
-<td class="enum_member_annotations"> </td>
+<td> </td>
+<td> </td>
 </tr>
 <tr>
 <td class="enum_member_name"><p><a name="GST-NAVIGATION-MESSAGE-ANGLES-CHANGED:CAPS"></a>GST_NAVIGATION_MESSAGE_ANGLES_CHANGED</p></td>
-<td class="enum_member_description">
-<p>Sent when display angles in a multi-angle
-feature (such as a multiangle DVD) change - either angles have appeared or
-disappeared.</p>
-</td>
-<td class="enum_member_annotations"> </td>
+<td> </td>
+<td> </td>
 </tr>
 <tr>
 <td class="enum_member_name"><p><a name="GST-NAVIGATION-MESSAGE-EVENT:CAPS"></a>GST_NAVIGATION_MESSAGE_EVENT</p></td>
-<td class="enum_member_description">
-<p>Sent when a navigation event was not handled
-by any element in the pipeline (Since 1.6)</p>
-</td>
-<td class="enum_member_annotations"> </td>
+<td> </td>
+<td> </td>
 </tr>
 </tbody>
 </table></div>
@@ -1570,7 +717,6 @@
 <hr>
 <div class="refsect2">
 <a name="GstNavigationQueryType"></a><h3>enum GstNavigationQueryType</h3>
-<p>Tyoes of navigation interface queries.</p>
 <div class="refsect3">
 <a name="GstNavigationQueryType.members"></a><h4>Members</h4>
 <div class="informaltable"><table class="informaltable" width="100%" border="0">
@@ -1582,24 +728,18 @@
 <tbody>
 <tr>
 <td class="enum_member_name"><p><a name="GST-NAVIGATION-QUERY-INVALID:CAPS"></a>GST_NAVIGATION_QUERY_INVALID</p></td>
-<td class="enum_member_description">
-<p>invalid query</p>
-</td>
-<td class="enum_member_annotations"> </td>
+<td> </td>
+<td> </td>
 </tr>
 <tr>
 <td class="enum_member_name"><p><a name="GST-NAVIGATION-QUERY-COMMANDS:CAPS"></a>GST_NAVIGATION_QUERY_COMMANDS</p></td>
-<td class="enum_member_description">
-<p>command query</p>
-</td>
-<td class="enum_member_annotations"> </td>
+<td> </td>
+<td> </td>
 </tr>
 <tr>
 <td class="enum_member_name"><p><a name="GST-NAVIGATION-QUERY-ANGLES:CAPS"></a>GST_NAVIGATION_QUERY_ANGLES</p></td>
-<td class="enum_member_description">
-<p>viewing angle query</p>
-</td>
-<td class="enum_member_annotations"> </td>
+<td> </td>
+<td> </td>
 </tr>
 </tbody>
 </table></div>
diff --git a/docs/libs/html/gst-plugins-base-libs-gstpbutils.html b/docs/libs/html/gst-plugins-base-libs-gstpbutils.html
index 36cc8a0..bfc6dec 100644
--- a/docs/libs/html/gst-plugins-base-libs-gstpbutils.html
+++ b/docs/libs/html/gst-plugins-base-libs-gstpbutils.html
@@ -27,7 +27,7 @@
 <div class="refnamediv"><table width="100%"><tr>
 <td valign="top">
 <h2><span class="refentrytitle"><a name="gst-plugins-base-libs-gstpbutils.top_of_page"></a>gstpbutils</span></h2>
-<p>gstpbutils — General Application and Plugin Utility Library</p>
+<p>gstpbutils</p>
 </td>
 <td class="gallery_image" valign="top" align="right"></td>
 </tr></table></div>
@@ -55,42 +55,6 @@
 </div>
 <div class="refsect1">
 <a name="gst-plugins-base-libs-gstpbutils.description"></a><h2>Description</h2>
-<div class="refsect2">
-<a name="id-1.2.14.3.5.2"></a><h3>Linking to this library</h3>
-<p>
-libgstpbutils is a general utility library for plugins and applications.
-It currently provides the
-following:
-</p>
-<div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; ">
-<li class="listitem"><p>
-human-readable description strings of codecs, elements, sources, decoders,
-encoders, or sinks from decoder/encoder caps, element names, or protocol
-names.
-</p></li>
-<li class="listitem"><p>
-support for applications to initiate installation of missing plugins (if
-this is supported by the distribution or operating system used)
-</p></li>
-<li class="listitem"><p>
-API for GStreamer elements to create missing-plugin messages in order to
-communicate to the application that a certain type of plugin is missing
-(decoder, encoder, URI protocol source, URI protocol sink, named element)
-</p></li>
-<li class="listitem"><p>
-API for applications to recognise and handle missing-plugin messages
-</p></li>
-</ul></div>
-<p>
-You should obtain the required CFLAGS and LIBS using pkg-config on the
-gstreamer-plugins-base-0.10 module. You will then also need to add
-'-lgstpbutils-0.10' manually to your LIBS line.
-</p>
-<p>
-Before using any of its functions, applications and plugins must call
-<a class="link" href="gst-plugins-base-libs-gstpbutils.html#gst-pb-utils-init" title="gst_pb_utils_init ()"><code class="function">gst_pb_utils_init()</code></a> to initialise the library.
-</p>
-</div>
 </div>
 <div class="refsect1">
 <a name="gst-plugins-base-libs-gstpbutils.functions_details"></a><h2>Functions</h2>
@@ -98,11 +62,6 @@
 <a name="gst-pb-utils-init"></a><h3>gst_pb_utils_init ()</h3>
 <pre class="programlisting"><span class="returnvalue">void</span>
 gst_pb_utils_init (<em class="parameter"><code><span class="type">void</span></code></em>);</pre>
-<p>Initialises the base utils support library. This function is not
-thread-safe. Applications should call it after calling <a href="/usr/share/gtk-doc/html/gstreamer-1.0gstreamer-Gst.html#gst-init"><code class="function">gst_init()</code></a>,
-plugins should call it from their plugin_init function.</p>
-<p>This function may be called multiple times. It will do nothing if the
-library has already been initialised.</p>
 </div>
 </div>
 <div class="refsect1">
diff --git a/docs/libs/html/gst-plugins-base-libs-gstpbutilscodecutils.html b/docs/libs/html/gst-plugins-base-libs-gstpbutilscodecutils.html
index b310dcc..5f0f78a 100644
--- a/docs/libs/html/gst-plugins-base-libs-gstpbutilscodecutils.html
+++ b/docs/libs/html/gst-plugins-base-libs-gstpbutilscodecutils.html
@@ -27,7 +27,7 @@
 <div class="refnamediv"><table width="100%"><tr>
 <td valign="top">
 <h2><span class="refentrytitle"><a name="gst-plugins-base-libs-gstpbutilscodecutils.top_of_page"></a>gstpbutilscodecutils</span></h2>
-<p>gstpbutilscodecutils — Miscellaneous codec-specific utility functions</p>
+<p>gstpbutilscodecutils</p>
 </td>
 <td class="gallery_image" valign="top" align="right"></td>
 </tr></table></div>
@@ -71,6 +71,22 @@
 </tr>
 <tr>
 <td class="function_type">
+<a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#guint"><span class="returnvalue">guint</span></a>
+</td>
+<td class="function_name">
+<a class="link" href="gst-plugins-base-libs-gstpbutilscodecutils.html#gst-codec-utils-aac-get-channels" title="gst_codec_utils_aac_get_channels ()">gst_codec_utils_aac_get_channels</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="function_type">
+<a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#guint"><span class="returnvalue">guint</span></a>
+</td>
+<td class="function_name">
+<a class="link" href="gst-plugins-base-libs-gstpbutilscodecutils.html#gst-codec-utils-aac-get-sample-rate" title="gst_codec_utils_aac_get_sample_rate ()">gst_codec_utils_aac_get_sample_rate</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">
@@ -216,12 +232,6 @@
 </div>
 <div class="refsect1">
 <a name="gst-plugins-base-libs-gstpbutilscodecutils.description"></a><h2>Description</h2>
-<div class="refsect2">
-<a name="id-1.2.14.5.5.2"></a><p>
-Provides codec-specific ulility functions such as functions to provide the
-codec profile and level in human-readable string form from header data.
-</p>
-</div>
 </div>
 <div class="refsect1">
 <a name="gst-plugins-base-libs-gstpbutilscodecutils.functions_details"></a><h2>Functions</h2>
@@ -230,29 +240,6 @@
 <pre class="programlisting"><a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#guint"><span class="returnvalue">guint</span></a>
 gst_codec_utils_aac_get_sample_rate_from_index
                                (<em class="parameter"><code><a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#guint"><span class="type">guint</span></a> sr_idx</code></em>);</pre>
-<p>Translates the sample rate index found in AAC headers to the actual sample
-rate.</p>
-<div class="refsect3">
-<a name="gst-codec-utils-aac-get-sample-rate-from-index.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>sr_idx</p></td>
-<td class="parameter_description"><p>Sample rate index as from the AudioSpecificConfig (MPEG-4
-container) or ADTS frame header</p></td>
-<td class="parameter_annotations"> </td>
-</tr></tbody>
-</table></div>
-</div>
-<div class="refsect3">
-<a name="gst-codec-utils-aac-get-sample-rate-from-index.returns"></a><h4>Returns</h4>
-<p> The sample rate if <em class="parameter"><code>sr_idx</code></em>
-is valid, 0 otherwise.</p>
-</div>
 </div>
 <hr>
 <div class="refsect2">
@@ -260,27 +247,6 @@
 <pre class="programlisting"><a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#gint"><span class="returnvalue">gint</span></a>
 gst_codec_utils_aac_get_index_from_sample_rate
                                (<em class="parameter"><code><a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#guint"><span class="type">guint</span></a> rate</code></em>);</pre>
-<p>Translates the sample rate to the index corresponding to it in AAC spec.</p>
-<div class="refsect3">
-<a name="gst-codec-utils-aac-get-index-from-sample-rate.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>rate</p></td>
-<td class="parameter_description"><p>Sample rate</p></td>
-<td class="parameter_annotations"> </td>
-</tr></tbody>
-</table></div>
-</div>
-<div class="refsect3">
-<a name="gst-codec-utils-aac-get-index-from-sample-rate.returns"></a><h4>Returns</h4>
-<p> The AAC index for this sample rate, -1 if the rate is not a
-valid AAC sample rate.</p>
-</div>
 </div>
 <hr>
 <div class="refsect2">
@@ -288,43 +254,6 @@
 <pre class="programlisting">const <a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> *
 gst_codec_utils_aac_get_profile (<em class="parameter"><code>const <a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#guint8"><span class="type">guint8</span></a> *audio_config</code></em>,
                                  <em class="parameter"><code><a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#guint"><span class="type">guint</span></a> len</code></em>);</pre>
-<p>Returns the profile of the given AAC stream as a string. The profile is
-determined using the AudioObjectType field which is in the first 5 bits of
-<em class="parameter"><code>audio_config</code></em>
-.</p>
-<div class="note">
-HE-AAC support has not yet been implemented.
-</div>
-<div class="refsect3">
-<a name="gst-codec-utils-aac-get-profile.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>audio_config</p></td>
-<td class="parameter_description"><p>a pointer to the AudioSpecificConfig as specified in the
-Elementary Stream Descriptor (esds) in ISO/IEC 14496-1 (see
-<a class="link" href="gst-plugins-base-libs-gstpbutilscodecutils.html#gst-codec-utils-aac-get-level" title="gst_codec_utils_aac_get_level ()"><code class="function">gst_codec_utils_aac_get_level()</code></a> for a more details).</p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-<tr>
-<td class="parameter_name"><p>len</p></td>
-<td class="parameter_description"><p>Length of <em class="parameter"><code>audio_config</code></em>
-in bytes</p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-</tbody>
-</table></div>
-</div>
-<div class="refsect3">
-<a name="gst-codec-utils-aac-get-profile.returns"></a><h4>Returns</h4>
-<p> The profile as a const string and <a href="/usr/share/gtk-doc/html/glibglib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a> if the profile could not be
-determined.</p>
-</div>
 </div>
 <hr>
 <div class="refsect2">
@@ -332,57 +261,20 @@
 <pre class="programlisting">const <a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> *
 gst_codec_utils_aac_get_level (<em class="parameter"><code>const <a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#guint8"><span class="type">guint8</span></a> *audio_config</code></em>,
                                <em class="parameter"><code><a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#guint"><span class="type">guint</span></a> len</code></em>);</pre>
-<p>Determines the level of a stream as defined in ISO/IEC 14496-3. For AAC LC
-streams, the constraints from the AAC audio profile are applied. For AAC
-Main, LTP, SSR and others, the Main profile is used.</p>
-<p>The <em class="parameter"><code>audio_config</code></em>
- parameter follows the following format, starting from the
-most significant bit of the first byte:</p>
-<div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; ">
-<li class="listitem"><p>
-    Bit 0:4 contains the AudioObjectType
-  </p></li>
-<li class="listitem"><p>
-    Bit 5:8 contains the sample frequency index (if this is 0xf, then the
-            next 24 bits define the actual sample frequency, and subsequent
-            fields are appropriately shifted).
-   </p></li>
-<li class="listitem"><p>
-    Bit 9:12 contains the channel configuration
-  </p></li>
-</ul></div>
-<div class="note">
-HE-AAC support has not yet been implemented.
 </div>
-<div class="refsect3">
-<a name="gst-codec-utils-aac-get-level.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>audio_config</p></td>
-<td class="parameter_description"><p>a pointer to the AudioSpecificConfig as specified in the
-Elementary Stream Descriptor (esds) in ISO/IEC 14496-1.</p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-<tr>
-<td class="parameter_name"><p>len</p></td>
-<td class="parameter_description"><p>Length of <em class="parameter"><code>audio_config</code></em>
-in bytes</p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-</tbody>
-</table></div>
+<hr>
+<div class="refsect2">
+<a name="gst-codec-utils-aac-get-channels"></a><h3>gst_codec_utils_aac_get_channels ()</h3>
+<pre class="programlisting"><a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#guint"><span class="returnvalue">guint</span></a>
+gst_codec_utils_aac_get_channels (<em class="parameter"><code>const <a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#guint8"><span class="type">guint8</span></a> *audio_config</code></em>,
+                                  <em class="parameter"><code><a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#guint"><span class="type">guint</span></a> len</code></em>);</pre>
 </div>
-<div class="refsect3">
-<a name="gst-codec-utils-aac-get-level.returns"></a><h4>Returns</h4>
-<p> The level as a const string and <a href="/usr/share/gtk-doc/html/glibglib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a> if the level could not be
-determined.</p>
-</div>
+<hr>
+<div class="refsect2">
+<a name="gst-codec-utils-aac-get-sample-rate"></a><h3>gst_codec_utils_aac_get_sample_rate ()</h3>
+<pre class="programlisting"><a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#guint"><span class="returnvalue">guint</span></a>
+gst_codec_utils_aac_get_sample_rate (<em class="parameter"><code>const <a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#guint8"><span class="type">guint8</span></a> *audio_config</code></em>,
+                                     <em class="parameter"><code><a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#guint"><span class="type">guint</span></a> len</code></em>);</pre>
 </div>
 <hr>
 <div class="refsect2">
@@ -392,49 +284,6 @@
                                (<em class="parameter"><code><a href="/usr/share/gtk-doc/html/gstreamer-1.0GstCaps.html#GstCaps-struct"><span class="type">GstCaps</span></a> *caps</code></em>,
                                 <em class="parameter"><code>const <a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#guint8"><span class="type">guint8</span></a> *audio_config</code></em>,
                                 <em class="parameter"><code><a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#guint"><span class="type">guint</span></a> len</code></em>);</pre>
-<p>Sets the level and profile on <em class="parameter"><code>caps</code></em>
- if it can be determined from
-<em class="parameter"><code>audio_config</code></em>
-. See <a class="link" href="gst-plugins-base-libs-gstpbutilscodecutils.html#gst-codec-utils-aac-get-level" title="gst_codec_utils_aac_get_level ()"><code class="function">gst_codec_utils_aac_get_level()</code></a> and
-<a class="link" href="gst-plugins-base-libs-gstpbutilscodecutils.html#gst-codec-utils-aac-get-profile" title="gst_codec_utils_aac_get_profile ()"><code class="function">gst_codec_utils_aac_get_profile()</code></a> for more details on the parameters.
-<em class="parameter"><code>caps</code></em>
- must be audio/mpeg caps with an "mpegversion" field of either 2 or 4.
-If mpegversion is 4, the "base-profile" field is also set in <em class="parameter"><code>caps</code></em>
-.</p>
-<div class="refsect3">
-<a name="gst-codec-utils-aac-caps-set-level-and-profile.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>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> to which level and profile fields are to be added</p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-<tr>
-<td class="parameter_name"><p>audio_config</p></td>
-<td class="parameter_description"><p>a pointer to the AudioSpecificConfig as specified in the
-Elementary Stream Descriptor (esds) in ISO/IEC 14496-1 (see
-below for a more details).</p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-<tr>
-<td class="parameter_name"><p>len</p></td>
-<td class="parameter_description"><p>Length of <em class="parameter"><code>audio_config</code></em>
-in bytes</p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-</tbody>
-</table></div>
-</div>
-<div class="refsect3">
-<a name="gst-codec-utils-aac-caps-set-level-and-profile.returns"></a><h4>Returns</h4>
-<p> <a href="/usr/share/gtk-doc/html/glibglib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a> if the level and profile could be set, <a href="/usr/share/gtk-doc/html/glibglib-Standard-Macros.html#FALSE:CAPS"><code class="literal">FALSE</code></a> otherwise.</p>
-</div>
 </div>
 <hr>
 <div class="refsect2">
@@ -442,48 +291,6 @@
 <pre class="programlisting">const <a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> *
 gst_codec_utils_h264_get_profile (<em class="parameter"><code>const <a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#guint8"><span class="type">guint8</span></a> *sps</code></em>,
                                   <em class="parameter"><code><a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#guint"><span class="type">guint</span></a> len</code></em>);</pre>
-<p>Converts the profile indication (profile_idc) in the stream's
-sequence parameter set into a string. The SPS is expected to have the
-following format, as defined in the H.264 specification. The SPS is viewed
-as a bitstream here, with bit 0 being the most significant bit of the first
-byte.</p>
-<div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; ">
-<li class="listitem"><p>Bit 0:7   - Profile indication</p></li>
-<li class="listitem"><p>Bit 8     - constraint_set0_flag</p></li>
-<li class="listitem"><p>Bit 9     - constraint_set1_flag</p></li>
-<li class="listitem"><p>Bit 10    - constraint_set2_flag</p></li>
-<li class="listitem"><p>Bit 11    - constraint_set3_flag</p></li>
-<li class="listitem"><p>Bit 12    - constraint_set3_flag</p></li>
-<li class="listitem"><p>Bit 13:15 - Reserved</p></li>
-<li class="listitem"><p>Bit 16:24 - Level indication</p></li>
-</ul></div>
-<div class="refsect3">
-<a name="gst-codec-utils-h264-get-profile.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>sps</p></td>
-<td class="parameter_description"><p>Pointer to the sequence parameter set for the stream.</p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-<tr>
-<td class="parameter_name"><p>len</p></td>
-<td class="parameter_description"><p>Length of the data available in <em class="parameter"><code>sps</code></em>
-.</p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-</tbody>
-</table></div>
-</div>
-<div class="refsect3">
-<a name="gst-codec-utils-h264-get-profile.returns"></a><h4>Returns</h4>
-<p> The profile as a const string, or <a href="/usr/share/gtk-doc/html/glibglib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a> if there is an error.</p>
-</div>
 </div>
 <hr>
 <div class="refsect2">
@@ -491,36 +298,6 @@
 <pre class="programlisting">const <a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> *
 gst_codec_utils_h264_get_level (<em class="parameter"><code>const <a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#guint8"><span class="type">guint8</span></a> *sps</code></em>,
                                 <em class="parameter"><code><a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#guint"><span class="type">guint</span></a> len</code></em>);</pre>
-<p>Converts the level indication (level_idc) in the stream's
-sequence parameter set into a string. The SPS is expected to have the
-same format as for <a class="link" href="gst-plugins-base-libs-gstpbutilscodecutils.html#gst-codec-utils-h264-get-profile" title="gst_codec_utils_h264_get_profile ()"><code class="function">gst_codec_utils_h264_get_profile()</code></a>.</p>
-<div class="refsect3">
-<a name="gst-codec-utils-h264-get-level.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>sps</p></td>
-<td class="parameter_description"><p>Pointer to the sequence parameter set for the stream.</p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-<tr>
-<td class="parameter_name"><p>len</p></td>
-<td class="parameter_description"><p>Length of the data available in <em class="parameter"><code>sps</code></em>
-.</p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-</tbody>
-</table></div>
-</div>
-<div class="refsect3">
-<a name="gst-codec-utils-h264-get-level.returns"></a><h4>Returns</h4>
-<p> The level as a const string, or <a href="/usr/share/gtk-doc/html/glibglib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a> if there is an error.</p>
-</div>
 </div>
 <hr>
 <div class="refsect2">
@@ -530,69 +307,12 @@
                                (<em class="parameter"><code><a href="/usr/share/gtk-doc/html/gstreamer-1.0GstCaps.html#GstCaps-struct"><span class="type">GstCaps</span></a> *caps</code></em>,
                                 <em class="parameter"><code>const <a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#guint8"><span class="type">guint8</span></a> *sps</code></em>,
                                 <em class="parameter"><code><a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#guint"><span class="type">guint</span></a> len</code></em>);</pre>
-<p>Sets the level and profile in <em class="parameter"><code>caps</code></em>
- if it can be determined from <em class="parameter"><code>sps</code></em>
-. See
-<a class="link" href="gst-plugins-base-libs-gstpbutilscodecutils.html#gst-codec-utils-h264-get-level" title="gst_codec_utils_h264_get_level ()"><code class="function">gst_codec_utils_h264_get_level()</code></a> and <a class="link" href="gst-plugins-base-libs-gstpbutilscodecutils.html#gst-codec-utils-h264-get-profile" title="gst_codec_utils_h264_get_profile ()"><code class="function">gst_codec_utils_h264_get_profile()</code></a>
-for more details on the parameters.</p>
-<div class="refsect3">
-<a name="gst-codec-utils-h264-caps-set-level-and-profile.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>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> to which the level and profile are to be added</p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-<tr>
-<td class="parameter_name"><p>sps</p></td>
-<td class="parameter_description"><p>Pointer to the sequence parameter set for the stream.</p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-<tr>
-<td class="parameter_name"><p>len</p></td>
-<td class="parameter_description"><p>Length of the data available in <em class="parameter"><code>sps</code></em>
-.</p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-</tbody>
-</table></div>
-</div>
-<div class="refsect3">
-<a name="gst-codec-utils-h264-caps-set-level-and-profile.returns"></a><h4>Returns</h4>
-<p> <a href="/usr/share/gtk-doc/html/glibglib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a> if the level and profile could be set, <a href="/usr/share/gtk-doc/html/glibglib-Standard-Macros.html#FALSE:CAPS"><code class="literal">FALSE</code></a> otherwise.</p>
-</div>
 </div>
 <hr>
 <div class="refsect2">
 <a name="gst-codec-utils-h264-get-level-idc"></a><h3>gst_codec_utils_h264_get_level_idc ()</h3>
 <pre class="programlisting"><a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#guint8"><span class="returnvalue">guint8</span></a>
 gst_codec_utils_h264_get_level_idc (<em class="parameter"><code>const <a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *level</code></em>);</pre>
-<p>Transform a level string from the caps into the level_idc</p>
-<div class="refsect3">
-<a name="gst-codec-utils-h264-get-level-idc.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>level</p></td>
-<td class="parameter_description"><p>A level string from caps</p></td>
-<td class="parameter_annotations"> </td>
-</tr></tbody>
-</table></div>
-</div>
-<div class="refsect3">
-<a name="gst-codec-utils-h264-get-level-idc.returns"></a><h4>Returns</h4>
-<p> the level_idc or 0 if the level is unknown</p>
-</div>
 </div>
 <hr>
 <div class="refsect2">
@@ -600,52 +320,6 @@
 <pre class="programlisting">const <a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> *
 gst_codec_utils_h265_get_profile (<em class="parameter"><code>const <a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#guint8"><span class="type">guint8</span></a> *profile_tier_level</code></em>,
                                   <em class="parameter"><code><a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#guint"><span class="type">guint</span></a> len</code></em>);</pre>
-<p>Converts the profile indication (general_profile_idc) in the stream's
-profile_level_tier structure into a string. The profile_tier_level is
-expected to have the following format, as defined in the H.265
-specification. The profile_tier_level is viewed as a bitstream here,
-with bit 0 being the most significant bit of the first byte.</p>
-<div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; ">
-<li class="listitem"><p>Bit 0:1   - general_profile_space</p></li>
-<li class="listitem"><p>Bit 2     - general_tier_flag</p></li>
-<li class="listitem"><p>Bit 3:7   - general_profile_idc</p></li>
-<li class="listitem"><p>Bit 8:39  - gernal_profile_compatibility_flags</p></li>
-<li class="listitem"><p>Bit 40    - general_progressive_source_flag</p></li>
-<li class="listitem"><p>Bit 41    - general_interlaced_source_flag</p></li>
-<li class="listitem"><p>Bit 42    - general_non_packed_constraint_flag</p></li>
-<li class="listitem"><p>Bit 43    - general_frame_only_constraint_flag</p></li>
-<li class="listitem"><p>Bit 44:87 - general_reserved_zero_44bits</p></li>
-<li class="listitem"><p>Bit 88:95 - general_level_idc</p></li>
-</ul></div>
-<div class="refsect3">
-<a name="gst-codec-utils-h265-get-profile.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>profile_tier_level</p></td>
-<td class="parameter_description"><p>Pointer to the profile_tier_level
-structure for the stream.</p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-<tr>
-<td class="parameter_name"><p>len</p></td>
-<td class="parameter_description"><p>Length of the data available in <em class="parameter"><code>profile_tier_level</code></em>
-</p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-</tbody>
-</table></div>
-</div>
-<div class="refsect3">
-<a name="gst-codec-utils-h265-get-profile.returns"></a><h4>Returns</h4>
-<p> The profile as a const string, or <a href="/usr/share/gtk-doc/html/glibglib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a> if there is an error.</p>
-<p>Since 1.4</p>
-</div>
 </div>
 <hr>
 <div class="refsect2">
@@ -653,38 +327,6 @@
 <pre class="programlisting">const <a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> *
 gst_codec_utils_h265_get_tier (<em class="parameter"><code>const <a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#guint8"><span class="type">guint8</span></a> *profile_tier_level</code></em>,
                                <em class="parameter"><code><a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#guint"><span class="type">guint</span></a> len</code></em>);</pre>
-<p>Converts the tier indication (general_tier_flag) in the stream's
-profile_tier_level structure into a string. The profile_tier_level
-is expected to have the same format as for <a class="link" href="gst-plugins-base-libs-gstpbutilscodecutils.html#gst-codec-utils-h264-get-profile" title="gst_codec_utils_h264_get_profile ()"><code class="function">gst_codec_utils_h264_get_profile()</code></a>.</p>
-<div class="refsect3">
-<a name="gst-codec-utils-h265-get-tier.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>profile_tier_level</p></td>
-<td class="parameter_description"><p>Pointer to the profile_tier_level structure
-for the stream.</p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-<tr>
-<td class="parameter_name"><p>len</p></td>
-<td class="parameter_description"><p>Length of the data available in <em class="parameter"><code>profile_tier_level</code></em>
-.</p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-</tbody>
-</table></div>
-</div>
-<div class="refsect3">
-<a name="gst-codec-utils-h265-get-tier.returns"></a><h4>Returns</h4>
-<p> The tier as a const string, or <a href="/usr/share/gtk-doc/html/glibglib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a> if there is an error.</p>
-<p>Since 1.4</p>
-</div>
 </div>
 <hr>
 <div class="refsect2">
@@ -692,65 +334,12 @@
 <pre class="programlisting">const <a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> *
 gst_codec_utils_h265_get_level (<em class="parameter"><code>const <a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#guint8"><span class="type">guint8</span></a> *profile_tier_level</code></em>,
                                 <em class="parameter"><code><a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#guint"><span class="type">guint</span></a> len</code></em>);</pre>
-<p>Converts the level indication (general_level_idc) in the stream's
-profile_tier_level structure into a string. The profiel_tier_level is
-expected to have the same format as for <a class="link" href="gst-plugins-base-libs-gstpbutilscodecutils.html#gst-codec-utils-h264-get-profile" title="gst_codec_utils_h264_get_profile ()"><code class="function">gst_codec_utils_h264_get_profile()</code></a>.</p>
-<div class="refsect3">
-<a name="gst-codec-utils-h265-get-level.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>profile_tier_level</p></td>
-<td class="parameter_description"><p>Pointer to the profile_tier_level structure
-for the stream</p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-<tr>
-<td class="parameter_name"><p>len</p></td>
-<td class="parameter_description"><p>Length of the data available in <em class="parameter"><code>profile_tier_level</code></em>
-.</p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-</tbody>
-</table></div>
-</div>
-<div class="refsect3">
-<a name="gst-codec-utils-h265-get-level.returns"></a><h4>Returns</h4>
-<p> The level as a const string, or <a href="/usr/share/gtk-doc/html/glibglib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a> if there is an error.</p>
-<p>Since 1.4</p>
-</div>
 </div>
 <hr>
 <div class="refsect2">
 <a name="gst-codec-utils-h265-get-level-idc"></a><h3>gst_codec_utils_h265_get_level_idc ()</h3>
 <pre class="programlisting"><a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#guint8"><span class="returnvalue">guint8</span></a>
 gst_codec_utils_h265_get_level_idc (<em class="parameter"><code>const <a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *level</code></em>);</pre>
-<p>Transform a level string from the caps into the level_idc</p>
-<div class="refsect3">
-<a name="gst-codec-utils-h265-get-level-idc.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>level</p></td>
-<td class="parameter_description"><p>A level string from caps</p></td>
-<td class="parameter_annotations"> </td>
-</tr></tbody>
-</table></div>
-</div>
-<div class="refsect3">
-<a name="gst-codec-utils-h265-get-level-idc.returns"></a><h4>Returns</h4>
-<p> the level_idc or 0 if the level is unknown</p>
-<p>Since 1.4</p>
-</div>
 </div>
 <hr>
 <div class="refsect2">
@@ -760,45 +349,6 @@
                                (<em class="parameter"><code><a href="/usr/share/gtk-doc/html/gstreamer-1.0GstCaps.html#GstCaps-struct"><span class="type">GstCaps</span></a> *caps</code></em>,
                                 <em class="parameter"><code>const <a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#guint8"><span class="type">guint8</span></a> *profile_tier_level</code></em>,
                                 <em class="parameter"><code><a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#guint"><span class="type">guint</span></a> len</code></em>);</pre>
-<p>Sets the level, tier and profile in <em class="parameter"><code>caps</code></em>
- if it can be determined from
-<em class="parameter"><code>profile_tier_level</code></em>
-. See <a class="link" href="gst-plugins-base-libs-gstpbutilscodecutils.html#gst-codec-utils-h265-get-level" title="gst_codec_utils_h265_get_level ()"><code class="function">gst_codec_utils_h265_get_level()</code></a>,
-<a class="link" href="gst-plugins-base-libs-gstpbutilscodecutils.html#gst-codec-utils-h265-get-tier" title="gst_codec_utils_h265_get_tier ()"><code class="function">gst_codec_utils_h265_get_tier()</code></a> and <a class="link" href="gst-plugins-base-libs-gstpbutilscodecutils.html#gst-codec-utils-h265-get-profile" title="gst_codec_utils_h265_get_profile ()"><code class="function">gst_codec_utils_h265_get_profile()</code></a>
-for more details on the parameters.</p>
-<div class="refsect3">
-<a name="gst-codec-utils-h265-caps-set-level-tier-and-profile.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>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> to which the level, tier and profile are to be added</p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-<tr>
-<td class="parameter_name"><p>profile_tier_level</p></td>
-<td class="parameter_description"><p>Pointer to the profile_tier_level struct</p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-<tr>
-<td class="parameter_name"><p>len</p></td>
-<td class="parameter_description"><p>Length of the data available in <em class="parameter"><code>profile_tier_level</code></em>
-.</p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-</tbody>
-</table></div>
-</div>
-<div class="refsect3">
-<a name="gst-codec-utils-h265-caps-set-level-tier-and-profile.returns"></a><h4>Returns</h4>
-<p> <a href="/usr/share/gtk-doc/html/glibglib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a> if the level, tier, profile could be set, <a href="/usr/share/gtk-doc/html/glibglib-Standard-Macros.html#FALSE:CAPS"><code class="literal">FALSE</code></a> otherwise.</p>
-<p>Since 1.4</p>
-</div>
 </div>
 <hr>
 <div class="refsect2">
@@ -807,38 +357,6 @@
 gst_codec_utils_mpeg4video_get_profile
                                (<em class="parameter"><code>const <a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#guint8"><span class="type">guint8</span></a> *vis_obj_seq</code></em>,
                                 <em class="parameter"><code><a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#guint"><span class="type">guint</span></a> len</code></em>);</pre>
-<p>Converts the profile indication in the stream's visual object sequence into
-a string. <em class="parameter"><code>vis_obj_seq</code></em>
- is expected to be the data following the visual
-object sequence start code. Only the first byte
-(profile_and_level_indication) is used.</p>
-<div class="refsect3">
-<a name="gst-codec-utils-mpeg4video-get-profile.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>vis_obj_seq</p></td>
-<td class="parameter_description"><p>Pointer to the visual object sequence for the stream.</p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-<tr>
-<td class="parameter_name"><p>len</p></td>
-<td class="parameter_description"><p>Length of the data available in <em class="parameter"><code>sps</code></em>
-.</p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-</tbody>
-</table></div>
-</div>
-<div class="refsect3">
-<a name="gst-codec-utils-mpeg4video-get-profile.returns"></a><h4>Returns</h4>
-<p> The profile as a const string, or NULL if there is an error.</p>
-</div>
 </div>
 <hr>
 <div class="refsect2">
@@ -846,38 +364,6 @@
 <pre class="programlisting">const <a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> *
 gst_codec_utils_mpeg4video_get_level (<em class="parameter"><code>const <a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#guint8"><span class="type">guint8</span></a> *vis_obj_seq</code></em>,
                                       <em class="parameter"><code><a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#guint"><span class="type">guint</span></a> len</code></em>);</pre>
-<p>Converts the level indication in the stream's visual object sequence into
-a string. <em class="parameter"><code>vis_obj_seq</code></em>
- is expected to be the data following the visual
-object sequence start code. Only the first byte
-(profile_and_level_indication) is used.</p>
-<div class="refsect3">
-<a name="gst-codec-utils-mpeg4video-get-level.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>vis_obj_seq</p></td>
-<td class="parameter_description"><p>Pointer to the visual object sequence for the stream.</p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-<tr>
-<td class="parameter_name"><p>len</p></td>
-<td class="parameter_description"><p>Length of the data available in <em class="parameter"><code>sps</code></em>
-.</p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-</tbody>
-</table></div>
-</div>
-<div class="refsect3">
-<a name="gst-codec-utils-mpeg4video-get-level.returns"></a><h4>Returns</h4>
-<p> The level as a const string, or NULL if there is an error.</p>
-</div>
 </div>
 <hr>
 <div class="refsect2">
@@ -887,44 +373,6 @@
                                (<em class="parameter"><code><a href="/usr/share/gtk-doc/html/gstreamer-1.0GstCaps.html#GstCaps-struct"><span class="type">GstCaps</span></a> *caps</code></em>,
                                 <em class="parameter"><code>const <a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#guint8"><span class="type">guint8</span></a> *vis_obj_seq</code></em>,
                                 <em class="parameter"><code><a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#guint"><span class="type">guint</span></a> len</code></em>);</pre>
-<p>Sets the level and profile in <em class="parameter"><code>caps</code></em>
- if it can be determined from
-<em class="parameter"><code>vis_obj_seq</code></em>
-. See <a class="link" href="gst-plugins-base-libs-gstpbutilscodecutils.html#gst-codec-utils-mpeg4video-get-level" title="gst_codec_utils_mpeg4video_get_level ()"><code class="function">gst_codec_utils_mpeg4video_get_level()</code></a> and
-<a class="link" href="gst-plugins-base-libs-gstpbutilscodecutils.html#gst-codec-utils-mpeg4video-get-profile" title="gst_codec_utils_mpeg4video_get_profile ()"><code class="function">gst_codec_utils_mpeg4video_get_profile()</code></a> for more details on the
-parameters.</p>
-<div class="refsect3">
-<a name="gst-codec-utils-mpeg4video-caps-set-level-and-profile.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>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> to which the level and profile are to be added</p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-<tr>
-<td class="parameter_name"><p>vis_obj_seq</p></td>
-<td class="parameter_description"><p>Pointer to the visual object sequence for the stream.</p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-<tr>
-<td class="parameter_name"><p>len</p></td>
-<td class="parameter_description"><p>Length of the data available in <em class="parameter"><code>sps</code></em>
-.</p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-</tbody>
-</table></div>
-</div>
-<div class="refsect3">
-<a name="gst-codec-utils-mpeg4video-caps-set-level-and-profile.returns"></a><h4>Returns</h4>
-<p> <a href="/usr/share/gtk-doc/html/glibglib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a> if the level and profile could be set, <a href="/usr/share/gtk-doc/html/glibglib-Standard-Macros.html#FALSE:CAPS"><code class="literal">FALSE</code></a> otherwise.</p>
-</div>
 </div>
 <hr>
 <div class="refsect2">
@@ -936,54 +384,6 @@
                                   <em class="parameter"><code><a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#guint8"><span class="type">guint8</span></a> stream_count</code></em>,
                                   <em class="parameter"><code><a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#guint8"><span class="type">guint8</span></a> coupled_count</code></em>,
                                   <em class="parameter"><code>const <a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#guint8"><span class="type">guint8</span></a> *channel_mapping</code></em>);</pre>
-<p>Creates Opus caps from the given parameters.</p>
-<div class="refsect3">
-<a name="gst-codec-utils-opus-create-caps.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>rate</p></td>
-<td class="parameter_description"><p>the sample rate</p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-<tr>
-<td class="parameter_name"><p>channels</p></td>
-<td class="parameter_description"><p>the number of channels</p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-<tr>
-<td class="parameter_name"><p>channel_mapping_family</p></td>
-<td class="parameter_description"><p>the channel mapping family</p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-<tr>
-<td class="parameter_name"><p>stream_count</p></td>
-<td class="parameter_description"><p>the number of independent streams</p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-<tr>
-<td class="parameter_name"><p>coupled_count</p></td>
-<td class="parameter_description"><p>the number of stereo streams</p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-<tr>
-<td class="parameter_name"><p>channel_mapping</p></td>
-<td class="parameter_description"><p> the mapping between the streams. </p></td>
-<td class="parameter_annotations"><span class="annotation">[<acronym title="NULL is OK, both for passing and for returning."><span class="acronym">allow-none</span></acronym>]</span></td>
-</tr>
-</tbody>
-</table></div>
-</div>
-<div class="refsect3">
-<a name="gst-codec-utils-opus-create-caps.returns"></a><h4>Returns</h4>
-<p> The <a href="/usr/share/gtk-doc/html/gstreamer-1.0GstCaps.html#GstCaps-struct"><span class="type">GstCaps</span></a>.</p>
-</div>
-<p class="since">Since: 1.8</p>
 </div>
 <hr>
 <div class="refsect2">
@@ -992,37 +392,6 @@
 gst_codec_utils_opus_create_caps_from_header
                                (<em class="parameter"><code><a href="/usr/share/gtk-doc/html/gstreamer-1.0GstBuffer.html#GstBuffer-struct"><span class="type">GstBuffer</span></a> *header</code></em>,
                                 <em class="parameter"><code><a href="/usr/share/gtk-doc/html/gstreamer-1.0GstBuffer.html#GstBuffer-struct"><span class="type">GstBuffer</span></a> *comments</code></em>);</pre>
-<p>Creates Opus caps from the given OpusHead <em class="parameter"><code>header</code></em>
- and comment header
-<em class="parameter"><code>comments</code></em>
-.</p>
-<div class="refsect3">
-<a name="gst-codec-utils-opus-create-caps-from-header.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>header</p></td>
-<td class="parameter_description"><p>OpusHead header</p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-<tr>
-<td class="parameter_name"><p>comments</p></td>
-<td class="parameter_description"><p> Comment header or NULL. </p></td>
-<td class="parameter_annotations"><span class="annotation">[<acronym title="NULL is OK, both for passing and for returning."><span class="acronym">allow-none</span></acronym>]</span></td>
-</tr>
-</tbody>
-</table></div>
-</div>
-<div class="refsect3">
-<a name="gst-codec-utils-opus-create-caps-from-header.returns"></a><h4>Returns</h4>
-<p> The <a href="/usr/share/gtk-doc/html/gstreamer-1.0GstCaps.html#GstCaps-struct"><span class="type">GstCaps</span></a>.</p>
-</div>
-<p class="since">Since: 1.8</p>
 </div>
 <hr>
 <div class="refsect2">
@@ -1035,59 +404,6 @@
                                  <em class="parameter"><code><a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#guint8"><span class="type">guint8</span></a> *stream_count</code></em>,
                                  <em class="parameter"><code><a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#guint8"><span class="type">guint8</span></a> *coupled_count</code></em>,
                                  <em class="parameter"><code><a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#guint8"><span class="type">guint8</span></a> channel_mapping[256]</code></em>);</pre>
-<p>Parses Opus caps and fills the different fields with defaults if possible.</p>
-<div class="refsect3">
-<a name="gst-codec-utils-opus-parse-caps.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>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> to which the level and profile are to be added</p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-<tr>
-<td class="parameter_name"><p>rate</p></td>
-<td class="parameter_description"><p>the sample rate</p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-<tr>
-<td class="parameter_name"><p>channels</p></td>
-<td class="parameter_description"><p>the number of channels</p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-<tr>
-<td class="parameter_name"><p>channel_mapping_family</p></td>
-<td class="parameter_description"><p>the channel mapping family</p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-<tr>
-<td class="parameter_name"><p>stream_count</p></td>
-<td class="parameter_description"><p>the number of independent streams</p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-<tr>
-<td class="parameter_name"><p>coupled_count</p></td>
-<td class="parameter_description"><p>the number of stereo streams</p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-<tr>
-<td class="parameter_name"><p>channel_mapping</p></td>
-<td class="parameter_description"><p>the mapping between the streams</p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-</tbody>
-</table></div>
-</div>
-<div class="refsect3">
-<a name="gst-codec-utils-opus-parse-caps.returns"></a><h4>Returns</h4>
-<p> <a href="/usr/share/gtk-doc/html/glibglib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a> if parsing was successful, <a href="/usr/share/gtk-doc/html/glibglib-Standard-Macros.html#FALSE:CAPS"><code class="literal">FALSE</code></a> otherwise.</p>
-</div>
-<p class="since">Since: 1.8</p>
 </div>
 <hr>
 <div class="refsect2">
@@ -1101,64 +417,6 @@
                                     <em class="parameter"><code>const <a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#guint8"><span class="type">guint8</span></a> *channel_mapping</code></em>,
                                     <em class="parameter"><code><a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#guint16"><span class="type">guint16</span></a> pre_skip</code></em>,
                                     <em class="parameter"><code><a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#gint16"><span class="type">gint16</span></a> output_gain</code></em>);</pre>
-<p>Creates OpusHead header from the given parameters.</p>
-<div class="refsect3">
-<a name="gst-codec-utils-opus-create-header.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>rate</p></td>
-<td class="parameter_description"><p>the sample rate</p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-<tr>
-<td class="parameter_name"><p>channels</p></td>
-<td class="parameter_description"><p>the number of channels</p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-<tr>
-<td class="parameter_name"><p>channel_mapping_family</p></td>
-<td class="parameter_description"><p>the channel mapping family</p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-<tr>
-<td class="parameter_name"><p>stream_count</p></td>
-<td class="parameter_description"><p>the number of independent streams</p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-<tr>
-<td class="parameter_name"><p>coupled_count</p></td>
-<td class="parameter_description"><p>the number of stereo streams</p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-<tr>
-<td class="parameter_name"><p>channel_mapping</p></td>
-<td class="parameter_description"><p> the mapping between the streams. </p></td>
-<td class="parameter_annotations"><span class="annotation">[<acronym title="NULL is OK, both for passing and for returning."><span class="acronym">allow-none</span></acronym>]</span></td>
-</tr>
-<tr>
-<td class="parameter_name"><p>pre_skip</p></td>
-<td class="parameter_description"><p>Pre-skip in 48kHz samples or 0</p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-<tr>
-<td class="parameter_name"><p>output_gain</p></td>
-<td class="parameter_description"><p>Output gain or 0</p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-</tbody>
-</table></div>
-</div>
-<div class="refsect3">
-<a name="gst-codec-utils-opus-create-header.returns"></a><h4>Returns</h4>
-<p> The <a href="/usr/share/gtk-doc/html/gstreamer-1.0GstBuffer.html#GstBuffer-struct"><span class="type">GstBuffer</span></a> containing the OpusHead.</p>
-</div>
-<p class="since">Since: 1.8</p>
 </div>
 <hr>
 <div class="refsect2">
@@ -1173,69 +431,6 @@
                                    <em class="parameter"><code><a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#guint8"><span class="type">guint8</span></a> channel_mapping[256]</code></em>,
                                    <em class="parameter"><code><a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#guint16"><span class="type">guint16</span></a> *pre_skip</code></em>,
                                    <em class="parameter"><code><a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#gint16"><span class="type">gint16</span></a> *output_gain</code></em>);</pre>
-<p>Parses the OpusHead header.</p>
-<div class="refsect3">
-<a name="gst-codec-utils-opus-parse-header.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>header</p></td>
-<td class="parameter_description"><p>the OpusHead <a href="/usr/share/gtk-doc/html/gstreamer-1.0GstBuffer.html#GstBuffer-struct"><span class="type">GstBuffer</span></a></p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-<tr>
-<td class="parameter_name"><p>rate</p></td>
-<td class="parameter_description"><p>the sample rate</p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-<tr>
-<td class="parameter_name"><p>channels</p></td>
-<td class="parameter_description"><p>the number of channels</p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-<tr>
-<td class="parameter_name"><p>channel_mapping_family</p></td>
-<td class="parameter_description"><p>the channel mapping family</p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-<tr>
-<td class="parameter_name"><p>stream_count</p></td>
-<td class="parameter_description"><p>the number of independent streams</p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-<tr>
-<td class="parameter_name"><p>coupled_count</p></td>
-<td class="parameter_description"><p>the number of stereo streams</p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-<tr>
-<td class="parameter_name"><p>channel_mapping</p></td>
-<td class="parameter_description"><p>the mapping between the streams</p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-<tr>
-<td class="parameter_name"><p>pre_skip</p></td>
-<td class="parameter_description"><p>Pre-skip in 48kHz samples or 0</p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-<tr>
-<td class="parameter_name"><p>output_gain</p></td>
-<td class="parameter_description"><p>Output gain or 0</p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-</tbody>
-</table></div>
-</div>
-<div class="refsect3">
-<a name="gst-codec-utils-opus-parse-header.returns"></a><h4>Returns</h4>
-<p> <a href="/usr/share/gtk-doc/html/glibglib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a> if parsing was successful, <a href="/usr/share/gtk-doc/html/glibglib-Standard-Macros.html#FALSE:CAPS"><code class="literal">FALSE</code></a> otherwise.</p>
-</div>
-<p class="since">Since: 1.8</p>
 </div>
 </div>
 <div class="refsect1">
diff --git a/docs/libs/html/gst-plugins-base-libs-gstpbutilsdescriptions.html b/docs/libs/html/gst-plugins-base-libs-gstpbutilsdescriptions.html
index d795ce0..5ebad53 100644
--- a/docs/libs/html/gst-plugins-base-libs-gstpbutilsdescriptions.html
+++ b/docs/libs/html/gst-plugins-base-libs-gstpbutilsdescriptions.html
@@ -27,8 +27,7 @@
 <div class="refnamediv"><table width="100%"><tr>
 <td valign="top">
 <h2><span class="refentrytitle"><a name="gst-plugins-base-libs-gstpbutilsdescriptions.top_of_page"></a>gstpbutilsdescriptions</span></h2>
-<p>gstpbutilsdescriptions — Provides human-readable descriptions for caps/codecs
-and encoder, decoder, URI source and URI sink elements</p>
+<p>gstpbutilsdescriptions</p>
 </td>
 <td class="gallery_image" valign="top" align="right"></td>
 </tr></table></div>
@@ -106,18 +105,6 @@
 </div>
 <div class="refsect1">
 <a name="gst-plugins-base-libs-gstpbutilsdescriptions.description"></a><h2>Description</h2>
-<div class="refsect2">
-<a name="id-1.2.14.6.5.2"></a><p>
-The above functions provide human-readable strings for media formats
-and decoder/demuxer/depayloader/encoder/muxer/payloader elements for use
-in error dialogs or other messages shown to users.
-</p>
-<p>
-<a class="link" href="gst-plugins-base-libs-gstpbutilsdescriptions.html#gst-pb-utils-add-codec-description-to-tag-list" title="gst_pb_utils_add_codec_description_to_tag_list ()"><code class="function">gst_pb_utils_add_codec_description_to_tag_list()</code></a> is a utility function
-for demuxer and decoder elements to add audio/video codec tags from a
-given (fixed) <a href="/usr/share/gtk-doc/html/gstreamer-1.0GstCaps.html#GstCaps-struct"><span class="type">GstCaps</span></a>.
-</p>
-</div>
 </div>
 <div class="refsect1">
 <a name="gst-plugins-base-libs-gstpbutilsdescriptions.functions_details"></a><h2>Functions</h2>
@@ -125,171 +112,30 @@
 <a name="gst-pb-utils-get-source-description"></a><h3>gst_pb_utils_get_source_description ()</h3>
 <pre class="programlisting"><a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> *
 gst_pb_utils_get_source_description (<em class="parameter"><code>const <a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *protocol</code></em>);</pre>
-<p>Returns a localised string describing a source element handling the protocol
-specified in <em class="parameter"><code>protocol</code></em>
-, for use in error dialogs or other messages to be
-seen by the user. Should never return NULL unless <em class="parameter"><code>protocol</code></em>
- is invalid.</p>
-<p>This function is mainly for internal use, applications would typically
-use <a class="link" href="gst-plugins-base-libs-gstpbutilsmissingplugins.html#gst-missing-plugin-message-get-description" title="gst_missing_plugin_message_get_description ()"><code class="function">gst_missing_plugin_message_get_description()</code></a> to get a description of
-a missing feature from a missing-plugin message.</p>
-<div class="refsect3">
-<a name="gst-pb-utils-get-source-description.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>protocol</p></td>
-<td class="parameter_description"><p>the protocol the source element needs to handle, e.g. "http"</p></td>
-<td class="parameter_annotations"> </td>
-</tr></tbody>
-</table></div>
-</div>
-<div class="refsect3">
-<a name="gst-pb-utils-get-source-description.returns"></a><h4>Returns</h4>
-<p> a newly-allocated description string, or NULL on error. Free
-string with <a href="/usr/share/gtk-doc/html/glibglib-Memory-Allocation.html#g-free"><code class="function">g_free()</code></a> when not needed any longer.</p>
-</div>
 </div>
 <hr>
 <div class="refsect2">
 <a name="gst-pb-utils-get-sink-description"></a><h3>gst_pb_utils_get_sink_description ()</h3>
 <pre class="programlisting"><a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> *
 gst_pb_utils_get_sink_description (<em class="parameter"><code>const <a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *protocol</code></em>);</pre>
-<p>Returns a localised string describing a sink element handling the protocol
-specified in <em class="parameter"><code>protocol</code></em>
-, for use in error dialogs or other messages to be
-seen by the user. Should never return NULL unless <em class="parameter"><code>protocol</code></em>
- is invalid.</p>
-<p>This function is mainly for internal use, applications would typically
-use <a class="link" href="gst-plugins-base-libs-gstpbutilsmissingplugins.html#gst-missing-plugin-message-get-description" title="gst_missing_plugin_message_get_description ()"><code class="function">gst_missing_plugin_message_get_description()</code></a> to get a description of
-a missing feature from a missing-plugin message.</p>
-<div class="refsect3">
-<a name="gst-pb-utils-get-sink-description.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>protocol</p></td>
-<td class="parameter_description"><p>the protocol the sink element needs to handle, e.g. "http"</p></td>
-<td class="parameter_annotations"> </td>
-</tr></tbody>
-</table></div>
-</div>
-<div class="refsect3">
-<a name="gst-pb-utils-get-sink-description.returns"></a><h4>Returns</h4>
-<p> a newly-allocated description string, or NULL on error. Free
-string with <a href="/usr/share/gtk-doc/html/glibglib-Memory-Allocation.html#g-free"><code class="function">g_free()</code></a> when not needed any longer.</p>
-</div>
 </div>
 <hr>
 <div class="refsect2">
 <a name="gst-pb-utils-get-decoder-description"></a><h3>gst_pb_utils_get_decoder_description ()</h3>
 <pre class="programlisting"><a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> *
 gst_pb_utils_get_decoder_description (<em class="parameter"><code>const <a href="/usr/share/gtk-doc/html/gstreamer-1.0GstCaps.html#GstCaps-struct"><span class="type">GstCaps</span></a> *caps</code></em>);</pre>
-<p>Returns a localised string describing an decoder for the format specified
-in <em class="parameter"><code>caps</code></em>
-, for use in error dialogs or other messages to be seen by the user.
-Should never return NULL unless <em class="parameter"><code>factory_name</code></em>
- or <em class="parameter"><code>caps</code></em>
- are invalid.</p>
-<p>This function is mainly for internal use, applications would typically
-use <a class="link" href="gst-plugins-base-libs-gstpbutilsmissingplugins.html#gst-missing-plugin-message-get-description" title="gst_missing_plugin_message_get_description ()"><code class="function">gst_missing_plugin_message_get_description()</code></a> to get a description of
-a missing feature from a missing-plugin message.</p>
-<div class="refsect3">
-<a name="gst-pb-utils-get-decoder-description.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>caps</p></td>
-<td class="parameter_description"><p>the (fixed) <a href="/usr/share/gtk-doc/html/gstreamer-1.0GstCaps.html#GstCaps-struct"><span class="type">GstCaps</span></a> for which an decoder description is needed</p></td>
-<td class="parameter_annotations"> </td>
-</tr></tbody>
-</table></div>
-</div>
-<div class="refsect3">
-<a name="gst-pb-utils-get-decoder-description.returns"></a><h4>Returns</h4>
-<p> a newly-allocated description string, or NULL on error. Free
-string with <a href="/usr/share/gtk-doc/html/glibglib-Memory-Allocation.html#g-free"><code class="function">g_free()</code></a> when not needed any longer.</p>
-</div>
 </div>
 <hr>
 <div class="refsect2">
 <a name="gst-pb-utils-get-encoder-description"></a><h3>gst_pb_utils_get_encoder_description ()</h3>
 <pre class="programlisting"><a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> *
 gst_pb_utils_get_encoder_description (<em class="parameter"><code>const <a href="/usr/share/gtk-doc/html/gstreamer-1.0GstCaps.html#GstCaps-struct"><span class="type">GstCaps</span></a> *caps</code></em>);</pre>
-<p>Returns a localised string describing an encoder for the format specified
-in <em class="parameter"><code>caps</code></em>
-, for use in error dialogs or other messages to be seen by the user.
-Should never return NULL unless <em class="parameter"><code>factory_name</code></em>
- or <em class="parameter"><code>caps</code></em>
- are invalid.</p>
-<p>This function is mainly for internal use, applications would typically
-use <a class="link" href="gst-plugins-base-libs-gstpbutilsmissingplugins.html#gst-missing-plugin-message-get-description" title="gst_missing_plugin_message_get_description ()"><code class="function">gst_missing_plugin_message_get_description()</code></a> to get a description of
-a missing feature from a missing-plugin message.</p>
-<div class="refsect3">
-<a name="gst-pb-utils-get-encoder-description.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>caps</p></td>
-<td class="parameter_description"><p>the (fixed) <a href="/usr/share/gtk-doc/html/gstreamer-1.0GstCaps.html#GstCaps-struct"><span class="type">GstCaps</span></a> for which an encoder description is needed</p></td>
-<td class="parameter_annotations"> </td>
-</tr></tbody>
-</table></div>
-</div>
-<div class="refsect3">
-<a name="gst-pb-utils-get-encoder-description.returns"></a><h4>Returns</h4>
-<p> a newly-allocated description string, or NULL on error. Free
-string with <a href="/usr/share/gtk-doc/html/glibglib-Memory-Allocation.html#g-free"><code class="function">g_free()</code></a> when not needed any longer.</p>
-</div>
 </div>
 <hr>
 <div class="refsect2">
 <a name="gst-pb-utils-get-element-description"></a><h3>gst_pb_utils_get_element_description ()</h3>
 <pre class="programlisting"><a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> *
 gst_pb_utils_get_element_description (<em class="parameter"><code>const <a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *factory_name</code></em>);</pre>
-<p>Returns a localised string describing the given element, for use in
-error dialogs or other messages to be seen by the user. Should never
-return NULL unless <em class="parameter"><code>factory_name</code></em>
- is invalid.</p>
-<p>This function is mainly for internal use, applications would typically
-use <a class="link" href="gst-plugins-base-libs-gstpbutilsmissingplugins.html#gst-missing-plugin-message-get-description" title="gst_missing_plugin_message_get_description ()"><code class="function">gst_missing_plugin_message_get_description()</code></a> to get a description of
-a missing feature from a missing-plugin message.</p>
-<div class="refsect3">
-<a name="gst-pb-utils-get-element-description.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>factory_name</p></td>
-<td class="parameter_description"><p>the name of the element, e.g. "giosrc"</p></td>
-<td class="parameter_annotations"> </td>
-</tr></tbody>
-</table></div>
-</div>
-<div class="refsect3">
-<a name="gst-pb-utils-get-element-description.returns"></a><h4>Returns</h4>
-<p> a newly-allocated description string, or NULL on error. Free
-string with <a href="/usr/share/gtk-doc/html/glibglib-Memory-Allocation.html#g-free"><code class="function">g_free()</code></a> when not needed any longer.</p>
-</div>
 </div>
 <hr>
 <div class="refsect2">
@@ -299,75 +145,12 @@
                                (<em class="parameter"><code><a href="/usr/share/gtk-doc/html/gstreamer-1.0GstTagList.html#GstTagList-struct"><span class="type">GstTagList</span></a> *taglist</code></em>,
                                 <em class="parameter"><code>const <a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *codec_tag</code></em>,
                                 <em class="parameter"><code>const <a href="/usr/share/gtk-doc/html/gstreamer-1.0GstCaps.html#GstCaps-struct"><span class="type">GstCaps</span></a> *caps</code></em>);</pre>
-<p>Adds a codec tag describing the format specified by <em class="parameter"><code>caps</code></em>
- to <em class="parameter"><code>taglist</code></em>
-.</p>
-<div class="refsect3">
-<a name="gst-pb-utils-add-codec-description-to-tag-list.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>taglist</p></td>
-<td class="parameter_description"><p>a <a href="/usr/share/gtk-doc/html/gstreamer-1.0GstTagList.html#GstTagList-struct"><span class="type">GstTagList</span></a></p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-<tr>
-<td class="parameter_name"><p>codec_tag</p></td>
-<td class="parameter_description"><p> a GStreamer codec tag such as <a href="/usr/share/gtk-doc/html/gstreamer-1.0GstTagList.html#GST-TAG-AUDIO-CODEC:CAPS"><span class="type">GST_TAG_AUDIO_CODEC</span></a>,
-<a href="/usr/share/gtk-doc/html/gstreamer-1.0GstTagList.html#GST-TAG-VIDEO-CODEC:CAPS"><span class="type">GST_TAG_VIDEO_CODEC</span></a> or <a href="/usr/share/gtk-doc/html/gstreamer-1.0GstTagList.html#GST-TAG-CODEC:CAPS"><span class="type">GST_TAG_CODEC</span></a>. If none is specified,
-the function will attempt to detect the appropriate category. </p></td>
-<td class="parameter_annotations"><span class="annotation">[<acronym title="NULL is OK, both for passing and for returning."><span class="acronym">allow-none</span></acronym>]</span></td>
-</tr>
-<tr>
-<td class="parameter_name"><p>caps</p></td>
-<td class="parameter_description"><p>the (fixed) <a href="/usr/share/gtk-doc/html/gstreamer-1.0GstCaps.html#GstCaps-struct"><span class="type">GstCaps</span></a> for which a codec tag should be added.</p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-</tbody>
-</table></div>
-</div>
-<div class="refsect3">
-<a name="gst-pb-utils-add-codec-description-to-tag-list.returns"></a><h4>Returns</h4>
-<p> TRUE if a codec tag was added, FALSE otherwise.</p>
-</div>
 </div>
 <hr>
 <div class="refsect2">
 <a name="gst-pb-utils-get-codec-description"></a><h3>gst_pb_utils_get_codec_description ()</h3>
 <pre class="programlisting"><a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> *
 gst_pb_utils_get_codec_description (<em class="parameter"><code>const <a href="/usr/share/gtk-doc/html/gstreamer-1.0GstCaps.html#GstCaps-struct"><span class="type">GstCaps</span></a> *caps</code></em>);</pre>
-<p>Returns a localised (as far as this is possible) string describing the
-media format specified in <em class="parameter"><code>caps</code></em>
-, for use in error dialogs or other messages
-to be seen by the user. Should never return NULL unless <em class="parameter"><code>caps</code></em>
- is invalid.</p>
-<p>Also see the convenience function
-<a class="link" href="gst-plugins-base-libs-gstpbutilsdescriptions.html#gst-pb-utils-add-codec-description-to-tag-list" title="gst_pb_utils_add_codec_description_to_tag_list ()"><code class="function">gst_pb_utils_add_codec_description_to_tag_list()</code></a>.</p>
-<div class="refsect3">
-<a name="gst-pb-utils-get-codec-description.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>caps</p></td>
-<td class="parameter_description"><p>the (fixed) <a href="/usr/share/gtk-doc/html/gstreamer-1.0GstCaps.html#GstCaps-struct"><span class="type">GstCaps</span></a> for which an format description is needed</p></td>
-<td class="parameter_annotations"> </td>
-</tr></tbody>
-</table></div>
-</div>
-<div class="refsect3">
-<a name="gst-pb-utils-get-codec-description.returns"></a><h4>Returns</h4>
-<p> a newly-allocated description string, or NULL on error. Free
-string with <a href="/usr/share/gtk-doc/html/glibglib-Memory-Allocation.html#g-free"><code class="function">g_free()</code></a> when not needed any longer.</p>
-</div>
 </div>
 </div>
 <div class="refsect1">
diff --git a/docs/libs/html/gst-plugins-base-libs-gstpbutilsinstallplugins.html b/docs/libs/html/gst-plugins-base-libs-gstpbutilsinstallplugins.html
index 310b861..c4bb1c8 100644
--- a/docs/libs/html/gst-plugins-base-libs-gstpbutilsinstallplugins.html
+++ b/docs/libs/html/gst-plugins-base-libs-gstpbutilsinstallplugins.html
@@ -27,7 +27,7 @@
 <div class="refnamediv"><table width="100%"><tr>
 <td valign="top">
 <h2><span class="refentrytitle"><a name="gst-plugins-base-libs-gstpbutilsinstallplugins.top_of_page"></a>gstpbutilsinstallplugins</span></h2>
-<p>gstpbutilsinstallplugins — Missing plugin installation support for applications</p>
+<p>gstpbutilsinstallplugins</p>
 </td>
 <td class="gallery_image" valign="top" align="right"></td>
 </tr></table></div>
@@ -163,362 +163,6 @@
 </div>
 <div class="refsect1">
 <a name="gst-plugins-base-libs-gstpbutilsinstallplugins.description"></a><h2>Description</h2>
-<div class="refsect2">
-<a name="id-1.2.14.8.6.2"></a><h3>Overview</h3>
-<p>
-Using this API, applications can request the installation of missing
-GStreamer plugins. These may be missing decoders/demuxers or encoders/muxers
-for a certain format, sources or sinks for a certain URI protocol
-(e.g. 'http'), or certain elements known by their element factory name
-('audioresample').
-</p>
-<p>
-Whether plugin installation is supported or not depends on the operating
-system and/or distribution in question. The vendor of the operating system
-needs to make sure the necessary hooks and mechanisms are in place for
-plugin installation to work. See below for more detailed information.
-</p>
-<p>
-From the application perspective, plugin installation is usually triggered
-either
-</p>
-<div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; ">
-<li class="listitem"><p>
-when the application itself has found that it wants or needs to install a
-certain element
-</p></li>
-<li class="listitem"><p>
-when the application has been notified by an element (such as playbin or
-decodebin) that one or more plugins are missing <span class="emphasis"><em>and</em></span>
-the application has decided that it wants to install one or more of those
-missing plugins
-</p></li>
-</ul></div>
-<p>
-</p>
-<p>
-The install functions in this section all take one or more 'detail strings'.
-These detail strings contain information about the type of plugin that
-needs to be installed (decoder, encoder, source, sink, or named element),
-and some additional information such GStreamer version used and a
-human-readable description of the component to install for user dialogs.
-</p>
-<p>
-Applications should not concern themselves with the composition of the
-string itself. They should regard the string as if it was a shared secret
-between GStreamer and the plugin installer application.
-</p>
-<p>
-Detail strings can be obtained using the function
-<a class="link" href="gst-plugins-base-libs-gstpbutilsmissingplugins.html#gst-missing-plugin-message-get-installer-detail" title="gst_missing_plugin_message_get_installer_detail ()"><code class="function">gst_missing_plugin_message_get_installer_detail()</code></a> on a missing-plugin
-message. Such a message will either have been found by the application on
-a pipeline's <a href="/usr/share/gtk-doc/html/gstreamer-1.0GstBus.html#GstBus-struct"><span class="type">GstBus</span></a>, or the application will have created it itself using
-<a class="link" href="gst-plugins-base-libs-gstpbutilsmissingplugins.html#gst-missing-element-message-new" title="gst_missing_element_message_new ()"><code class="function">gst_missing_element_message_new()</code></a>, <a class="link" href="gst-plugins-base-libs-gstpbutilsmissingplugins.html#gst-missing-decoder-message-new" title="gst_missing_decoder_message_new ()"><code class="function">gst_missing_decoder_message_new()</code></a>,
-<a class="link" href="gst-plugins-base-libs-gstpbutilsmissingplugins.html#gst-missing-encoder-message-new" title="gst_missing_encoder_message_new ()"><code class="function">gst_missing_encoder_message_new()</code></a>, <a class="link" href="gst-plugins-base-libs-gstpbutilsmissingplugins.html#gst-missing-uri-sink-message-new" title="gst_missing_uri_sink_message_new ()"><code class="function">gst_missing_uri_sink_message_new()</code></a>, or
-<a class="link" href="gst-plugins-base-libs-gstpbutilsmissingplugins.html#gst-missing-uri-source-message-new" title="gst_missing_uri_source_message_new ()"><code class="function">gst_missing_uri_source_message_new()</code></a>.
-</p>
-<p>
-For each GStreamer element/plugin/component that should be installed, the
-application needs one of those 'installer detail' string mentioned in the
-previous section. This string can be obtained, as already mentioned above,
-from a missing-plugin message using the function
-<a class="link" href="gst-plugins-base-libs-gstpbutilsmissingplugins.html#gst-missing-plugin-message-get-installer-detail" title="gst_missing_plugin_message_get_installer_detail ()"><code class="function">gst_missing_plugin_message_get_installer_detail()</code></a>. The missing-plugin
-message is either posted by another element and then found on the bus
-by the application, or the application has created it itself as described
-above.
-</p>
-<p>
-The application will then call <a class="link" href="gst-plugins-base-libs-gstpbutilsinstallplugins.html#gst-install-plugins-async" title="gst_install_plugins_async ()"><code class="function">gst_install_plugins_async()</code></a>, passing a
-NULL-terminated array of installer detail strings, and a function that
-should be called when the installation of the plugins has finished
-(successfully or not). Optionally, a <a class="link" href="gst-plugins-base-libs-gstpbutilsinstallplugins.html#GstInstallPluginsContext" title="GstInstallPluginsContext"><span class="type">GstInstallPluginsContext</span></a> created
-with <a class="link" href="gst-plugins-base-libs-gstpbutilsinstallplugins.html#gst-install-plugins-context-new" title="gst_install_plugins_context_new ()"><code class="function">gst_install_plugins_context_new()</code></a> may be passed as well. This way
-additional optional arguments like the application window's XID can be
-passed to the external installer application.
-</p>
-<p>
-<a class="link" href="gst-plugins-base-libs-gstpbutilsinstallplugins.html#gst-install-plugins-async" title="gst_install_plugins_async ()"><code class="function">gst_install_plugins_async()</code></a> will return almost immediately, with the
-return code indicating whether plugin installation was started or not.
-If the necessary hooks for plugin installation are in place and an
-external installer application has in fact been called, the passed in
-function will be called with a result code as soon as the external installer
-has finished. If the result code indicates that new plugins have been
-installed, the application will want to call <a href="/usr/share/gtk-doc/html/gstreamer-1.0gstreamer-Gst.html#gst-update-registry"><code class="function">gst_update_registry()</code></a> so the
-run-time plugin registry is updated and the new plugins are made available
-to the application.
-</p>
-<div class="note">
-A Gtk/GLib main loop must be running in order for the result function to
-be called when the external installer has finished. If this is not the case,
-make sure to regularly call
-<pre class="programlisting">
-g_main_context_iteration (NULL,FALSE);
-</pre>
-from your code.
-</div>
-<p>
-</p>
-<p>
-<span class="emphasis"><em>1. Installer hook</em></span>
-</p>
-<p>
-When GStreamer applications initiate plugin installation via
-<a class="link" href="gst-plugins-base-libs-gstpbutilsinstallplugins.html#gst-install-plugins-async" title="gst_install_plugins_async ()"><code class="function">gst_install_plugins_async()</code></a> or <a class="link" href="gst-plugins-base-libs-gstpbutilsinstallplugins.html#gst-install-plugins-sync" title="gst_install_plugins_sync ()"><code class="function">gst_install_plugins_sync()</code></a>, a pre-defined
-helper application will be called.
-</p>
-<p>
-The exact path of the helper application to be called is set at compile
-time, usually by the <code class="literal">./configure</code> script based on the
-install prefix. For a normal package build into the <code class="literal">/usr</code>
-prefix, this will usually default to
-<code class="filename">/usr/libexec/gst-install-plugins-helper</code> or
-<code class="filename">/usr/lib/gst-install-plugins-helper</code>.
-</p>
-<p>
-Vendors/distros who want to support GStreamer plugin installation should
-either provide such a helper script/application or use the
-<code class="literal">./configure</code> option
-<code class="literal">--with-install-plugins-helper=/path/to/installer</code> to
-make GStreamer call an installer of their own directly.
-</p>
-<p>
-It is strongly recommended that vendors provide a small helper application
-as interlocutor to the real installer though, even more so if command line
-argument munging is required to transform the command line arguments
-passed by GStreamer to the helper application into arguments that are
-understood by the real installer.
-</p>
-<p>
-The helper application path defined at compile time can be overriden at
-runtime by setting the <code class="envar">GST_INSTALL_PLUGINS_HELPER</code>
-environment variable. This can be useful for testing/debugging purposes.
-</p>
-<p>
-<span class="emphasis"><em>2. Arguments passed to the install helper</em></span>
-</p>
-<p>
-GStreamer will pass the following arguments to the install helper (this is
-in addition to the path of the executable itself, which is by convention
-argv[0]):
-</p>
-<div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; ">
-<li class="listitem"><p>
-   none to many optional arguments in the form of
-   <code class="literal">--foo-bar=val</code>. Example:
-   <code class="literal">--transient-for=XID</code> where XID is the X Window ID of
-   the main window of the calling application (so the installer can make
-   itself transient to that window). Unknown optional arguments should
-   be ignored by the installer.
- </p></li>
-<li class="listitem"><p>
-   one 'installer detail string' argument for each plugin to be installed;
-   these strings will have a <code class="literal">gstreamer</code> prefix; the
-   exact format of the detail string is explained below
- </p></li>
-</ul></div>
-<p>
-</p>
-<p>
-<span class="emphasis"><em>3. Detail string describing the missing plugin</em></span>
-</p>
-<p>
-The string is in UTF-8 encoding and is made up of several fields, separated
-by '|' characters (but neither the first nor the last character is a '|').
-The fields are:
-</p>
-<div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; ">
-<li class="listitem">
-<p>
-   plugin system identifier, ie. "gstreamer"
-  </p>
-<p>
-   This identifier determines the format of the rest of the detail string.
-   Automatic plugin installers should not process detail strings with
-   unknown identifiers. This allows other plugin-based libraries to use
-   the same mechanism for their automatic plugin installation needs, or
-   for the format to be changed should it turn out to be insufficient.
-  </p>
-</li>
-<li class="listitem">
-<p>
-   plugin system version, e.g. "0.10"
-  </p>
-<p>
-   This is required so that when there is a GStreamer-0.12 or GStreamer-1.0
-   at some point in future, the different major versions can still co-exist
-   and use the same plugin install mechanism in the same way.
-  </p>
-</li>
-<li class="listitem">
-<p>
-   application identifier, e.g. "totem"
-  </p>
-<p>
-   This may also be in the form of "pid/12345" if the program name can't
-   be obtained for some reason.
-  </p>
-</li>
-<li class="listitem"><p>
-   human-readable localised description of the required component,
-   e.g. "Vorbis audio decoder"
-  </p></li>
-<li class="listitem">
-<p>
-   identifier string for the required component (see below for details about
-   how to map this to the package/plugin that needs installing), e.g.
-   </p>
-<div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: circle; ">
-<li class="listitem"><p>
-      urisource-$(PROTOCOL_REQUIRED), e.g. urisource-http or urisource-mms
-    </p></li>
-<li class="listitem"><p>
-      element-$(ELEMENT_REQUIRED), e.g. element-videoconvert
-    </p></li>
-<li class="listitem">
-<p>
-      decoder-$(CAPS_REQUIRED), e.g. (do read below for more details!):
-      </p>
-<div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: square; ">
-<li class="listitem"><p>decoder-audio/x-vorbis</p></li>
-<li class="listitem"><p>decoder-application/ogg</p></li>
-<li class="listitem"><p>decoder-audio/mpeg, mpegversion=(int)4</p></li>
-<li class="listitem"><p>decoder-video/mpeg, systemstream=(boolean)true, mpegversion=(int)2</p></li>
-</ul></div>
-<p>
-    </p>
-</li>
-<li class="listitem"><p>
-      encoder-$(CAPS_REQUIRED), e.g. encoder-audio/x-vorbis
-    </p></li>
-</ul></div>
-<p>
-  </p>
-</li>
-<li class="listitem"><p>
-    optional further fields not yet specified
-  </p></li>
-</ul></div>
-<p>
-</p>
-<p>
-An entire ID string might then look like this, for example:
-<code class="literal">
-gstreamer|0.10|totem|Vorbis audio decoder|decoder-audio/x-vorbis
-</code>
-</p>
-<p>
-Plugin installers parsing this ID string should expect further fields also
-separated by '|' symbols and either ignore them, warn the user, or error
-out when encountering them.
-</p>
-<p>
-Those unfamiliar with the GStreamer 'caps' system should note a few things
-about the caps string used in the above decoder/encoder case:
-  </p>
-<div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; ">
-<li class="listitem"><p>
-      the first part ("video/mpeg") of the caps string is a GStreamer media
-      type and <span class="emphasis"><em>not</em></span> a MIME type. Wherever possible, the
-      GStreamer media type will be the same as the corresponding MIME type,
-      but often it is not.
-    </p></li>
-<li class="listitem"><p>
-      a caps string may or may not have additional comma-separated fields
-      of various types (as seen in the examples above)
-    </p></li>
-<li class="listitem">
-<p>
-      the caps string of a 'required' component (as above) will always have
-      fields with fixed values, whereas an introspected string (see below)
-      may have fields with non-fixed values. Compare for example:
-      </p>
-<div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: circle; ">
-<li class="listitem"><p>
-          <code class="literal">audio/mpeg, mpegversion=(int)4</code> vs.
-          <code class="literal">audio/mpeg, mpegversion=(int){2, 4}</code>
-        </p></li>
-<li class="listitem"><p>
-          <code class="literal">video/mpeg, mpegversion=(int)2</code> vs.
-          <code class="literal">video/mpeg, systemstream=(boolean){ true, false}, mpegversion=(int)[1, 2]</code>
-        </p></li>
-</ul></div>
-<p>
-    </p>
-</li>
-</ul></div>
-<p>
-</p>
-<p>
-<span class="emphasis"><em>4. Exit codes the installer should return</em></span>
-</p>
-<p>
-The installer should return one of the following exit codes when it exits:
-</p>
-<div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; ">
-<li class="listitem"><p>
-    0 if all of the requested plugins could be installed
-    (<a class="link" href="gst-plugins-base-libs-gstpbutilsinstallplugins.html#GST-INSTALL-PLUGINS-SUCCESS:CAPS"><span class="type">GST_INSTALL_PLUGINS_SUCCESS</span></a>)
-  </p></li>
-<li class="listitem"><p>
-    1 if no appropriate installation candidate for any of the requested
-    plugins could be found. Only return this if nothing has been installed
-    (<a class="link" href="gst-plugins-base-libs-gstpbutilsinstallplugins.html#GST-INSTALL-PLUGINS-NOT-FOUND:CAPS"><span class="type">GST_INSTALL_PLUGINS_NOT_FOUND</span></a>)
-  </p></li>
-<li class="listitem"><p>
-    2 if an error occured during the installation. The application will
-    assume that the user will already have seen an error message by the
-    installer in this case and will usually not show another one
-    (<a class="link" href="gst-plugins-base-libs-gstpbutilsinstallplugins.html#GST-INSTALL-PLUGINS-ERROR:CAPS"><span class="type">GST_INSTALL_PLUGINS_ERROR</span></a>)
-  </p></li>
-<li class="listitem"><p>
-    3 if some of the requested plugins could be installed, but not all
-    (<a class="link" href="gst-plugins-base-libs-gstpbutilsinstallplugins.html#GST-INSTALL-PLUGINS-PARTIAL-SUCCESS:CAPS"><span class="type">GST_INSTALL_PLUGINS_PARTIAL_SUCCESS</span></a>)
-  </p></li>
-<li class="listitem"><p>
-    4 if the user aborted the installation (<a class="link" href="gst-plugins-base-libs-gstpbutilsinstallplugins.html#GST-INSTALL-PLUGINS-USER-ABORT:CAPS"><span class="type">GST_INSTALL_PLUGINS_USER_ABORT</span></a>)
-  </p></li>
-</ul></div>
-<p>
-</p>
-<p>
-<span class="emphasis"><em>5. How to map the required detail string to packages</em></span>
-</p>
-<p>
-It is up to the vendor to find mechanism to map required components from
-the detail string to the actual packages/plugins to install. This could
-be a hardcoded list of mappings, for example, or be part of the packaging
-system metadata.
-</p>
-<p>
-GStreamer plugin files can be introspected for this information. The
-<code class="literal">gst-inspect</code> utility has a special command line option
-that will output information similar to what is required. For example
-<span class="command"><strong>
-$ gst-inspect-1.0 --print-plugin-auto-install-info /path/to/libgstvorbis.so
-</strong></span>
-should output something along the lines of
-<code class="computeroutput">
-decoder-audio/x-vorbis
-element-vorbisdec
-element-vorbisenc
-element-vorbisparse
-element-vorbistag
-encoder-audio/x-vorbis
-</code>
-Note that in the encoder and decoder case the introspected caps can be more
-complex with additional fields, e.g.
-<code class="literal">audio/mpeg,mpegversion=(int){2,4}</code>, so they will not
-always exactly match the caps wanted by the application. It is up to the
-installer to deal with this (either by doing proper caps intersection using
-the GStreamer <a href="/usr/share/gtk-doc/html/gstreamer-1.0GstCaps.html#GstCaps-struct"><span class="type">GstCaps</span></a> API, or by only taking into account the media type).
-</p>
-<p>
-Another potential source of problems are plugins such as ladspa or
-libvisual where the list of elements depends on the installed
-ladspa/libvisual plugins at the time. This is also up to the distribution
-to handle (but usually not relevant for playback applications).
-</p>
-</div>
 </div>
 <div class="refsect1">
 <a name="gst-plugins-base-libs-gstpbutilsinstallplugins.functions_details"></a><h2>Functions</h2>
@@ -527,31 +171,6 @@
 <pre class="programlisting"><span class="returnvalue">void</span>
 <span class="c_punctuation">(</span>*GstInstallPluginsResultFunc<span class="c_punctuation">)</span> (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstpbutilsinstallplugins.html#GstInstallPluginsReturn" title="enum GstInstallPluginsReturn"><span class="type">GstInstallPluginsReturn</span></a> result</code></em>,
                                 <em class="parameter"><code><a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> user_data</code></em>);</pre>
-<p>The prototype of the callback function that will be called once the
-external plugin installer program has returned. You only need to provide
-a callback function if you are using the asynchronous interface.</p>
-<div class="refsect3">
-<a name="GstInstallPluginsResultFunc.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>result</p></td>
-<td class="parameter_description"><p>whether the installation of the requested plugins succeeded or not</p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-<tr>
-<td class="parameter_name"><p>user_data</p></td>
-<td class="parameter_description"><p>the user data passed to <a class="link" href="gst-plugins-base-libs-gstpbutilsinstallplugins.html#gst-install-plugins-async" title="gst_install_plugins_async ()"><code class="function">gst_install_plugins_async()</code></a></p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-</tbody>
-</table></div>
-</div>
 </div>
 <hr>
 <div class="refsect2">
@@ -561,60 +180,6 @@
                            <em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstpbutilsinstallplugins.html#GstInstallPluginsContext" title="GstInstallPluginsContext"><span class="type">GstInstallPluginsContext</span></a> *ctx</code></em>,
                            <em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstpbutilsinstallplugins.html#GstInstallPluginsResultFunc" title="GstInstallPluginsResultFunc ()"><span class="type">GstInstallPluginsResultFunc</span></a> func</code></em>,
                            <em class="parameter"><code><a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> user_data</code></em>);</pre>
-<p>Requests plugin installation without blocking. Once the plugins have been
-installed or installation has failed, <em class="parameter"><code>func</code></em>
- will be called with the result
-of the installation and your provided <em class="parameter"><code>user_data</code></em>
- pointer.</p>
-<p>This function requires a running GLib/Gtk main loop. If you are not
-running a GLib/Gtk main loop, make sure to regularly call
-g_main_context_iteration(NULL,FALSE).</p>
-<p>The installer strings that make up <em class="parameter"><code>detail</code></em>
- are typically obtained by
-calling <a class="link" href="gst-plugins-base-libs-gstpbutilsmissingplugins.html#gst-missing-plugin-message-get-installer-detail" title="gst_missing_plugin_message_get_installer_detail ()"><code class="function">gst_missing_plugin_message_get_installer_detail()</code></a> on missing-plugin
-messages that have been caught on a pipeline's bus or created by the
-application via the provided API, such as <a class="link" href="gst-plugins-base-libs-gstpbutilsmissingplugins.html#gst-missing-element-message-new" title="gst_missing_element_message_new ()"><code class="function">gst_missing_element_message_new()</code></a>.</p>
-<p>It is possible to request the installation of multiple missing plugins in
-one go (as might be required if there is a demuxer for a certain format
-installed but no suitable video decoder and no suitable audio decoder).</p>
-<div class="refsect3">
-<a name="gst-install-plugins-async.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>details</p></td>
-<td class="parameter_description"><p> NULL-terminated array
-of installer string details (see below). </p></td>
-<td class="parameter_annotations"><span class="annotation">[<acronym title="Parameter points to an array of items."><span class="acronym">array</span></acronym> zero-terminated=1][<acronym title="Don't free data after the code is done."><span class="acronym">transfer none</span></acronym>]</span></td>
-</tr>
-<tr>
-<td class="parameter_name"><p>ctx</p></td>
-<td class="parameter_description"><p> a <a class="link" href="gst-plugins-base-libs-gstpbutilsinstallplugins.html#GstInstallPluginsContext" title="GstInstallPluginsContext"><span class="type">GstInstallPluginsContext</span></a>, or NULL. </p></td>
-<td class="parameter_annotations"><span class="annotation">[<acronym title="NULL is OK, both for passing and for returning."><span class="acronym">allow-none</span></acronym>]</span></td>
-</tr>
-<tr>
-<td class="parameter_name"><p>func</p></td>
-<td class="parameter_description"><p> the function to call when the installer program returns. </p></td>
-<td class="parameter_annotations"><span class="annotation">[<acronym title="The callback is valid until first called."><span class="acronym">scope async</span></acronym>]</span></td>
-</tr>
-<tr>
-<td class="parameter_name"><p>user_data</p></td>
-<td class="parameter_description"><p> the user data to pass to <em class="parameter"><code>func</code></em>
-when called, or NULL. </p></td>
-<td class="parameter_annotations"><span class="annotation">[<acronym title="This parameter is a 'user_data', for callbacks; many bindings can pass NULL here."><span class="acronym">closure</span></acronym>]</span></td>
-</tr>
-</tbody>
-</table></div>
-</div>
-<div class="refsect3">
-<a name="gst-install-plugins-async.returns"></a><h4>Returns</h4>
-<p> result code whether an external installer could be started</p>
-</div>
 </div>
 <hr>
 <div class="refsect2">
@@ -622,70 +187,12 @@
 <pre class="programlisting"><a class="link" href="gst-plugins-base-libs-gstpbutilsinstallplugins.html#GstInstallPluginsReturn" title="enum GstInstallPluginsReturn"><span class="returnvalue">GstInstallPluginsReturn</span></a>
 gst_install_plugins_sync (<em class="parameter"><code>const <a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#gchar"><span class="type">gchar</span></a> * const *details</code></em>,
                           <em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstpbutilsinstallplugins.html#GstInstallPluginsContext" title="GstInstallPluginsContext"><span class="type">GstInstallPluginsContext</span></a> *ctx</code></em>);</pre>
-<p>Requests plugin installation and block until the plugins have been
-installed or installation has failed.</p>
-<p>This function should almost never be used, it only exists for cases where
-a non-GLib main loop is running and the user wants to run it in a separate
-thread and marshal the result back asynchronously into the main thread
-using the other non-GLib main loop. You should almost always use
-<a class="link" href="gst-plugins-base-libs-gstpbutilsinstallplugins.html#gst-install-plugins-async" title="gst_install_plugins_async ()"><code class="function">gst_install_plugins_async()</code></a> instead of this function.</p>
-<div class="refsect3">
-<a name="gst-install-plugins-sync.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>details</p></td>
-<td class="parameter_description"><p> NULL-terminated array
-of installer string details. </p></td>
-<td class="parameter_annotations"><span class="annotation">[<acronym title="Parameter points to an array of items."><span class="acronym">array</span></acronym> zero-terminated=1][<acronym title="Don't free data after the code is done."><span class="acronym">transfer none</span></acronym>]</span></td>
-</tr>
-<tr>
-<td class="parameter_name"><p>ctx</p></td>
-<td class="parameter_description"><p> a <a class="link" href="gst-plugins-base-libs-gstpbutilsinstallplugins.html#GstInstallPluginsContext" title="GstInstallPluginsContext"><span class="type">GstInstallPluginsContext</span></a>, or NULL. </p></td>
-<td class="parameter_annotations"><span class="annotation">[<acronym title="NULL is OK, both for passing and for returning."><span class="acronym">allow-none</span></acronym>]</span></td>
-</tr>
-</tbody>
-</table></div>
-</div>
-<div class="refsect3">
-<a name="gst-install-plugins-sync.returns"></a><h4>Returns</h4>
-<p> the result of the installation.</p>
-</div>
 </div>
 <hr>
 <div class="refsect2">
 <a name="gst-install-plugins-return-get-name"></a><h3>gst_install_plugins_return_get_name ()</h3>
 <pre class="programlisting">const <a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> *
 gst_install_plugins_return_get_name (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstpbutilsinstallplugins.html#GstInstallPluginsReturn" title="enum GstInstallPluginsReturn"><span class="type">GstInstallPluginsReturn</span></a> ret</code></em>);</pre>
-<p>Convenience function to return the descriptive string associated
-with a status code.  This function returns English strings and
-should not be used for user messages. It is here only to assist
-in debugging.</p>
-<div class="refsect3">
-<a name="gst-install-plugins-return-get-name.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>ret</p></td>
-<td class="parameter_description"><p>the return status code</p></td>
-<td class="parameter_annotations"> </td>
-</tr></tbody>
-</table></div>
-</div>
-<div class="refsect3">
-<a name="gst-install-plugins-return-get-name.returns"></a><h4>Returns</h4>
-<p> a descriptive string for the status code in <em class="parameter"><code>ret</code></em>
-</p>
-</div>
 </div>
 <hr>
 <div class="refsect2">
@@ -693,60 +200,24 @@
 <pre class="programlisting"><a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
 gst_install_plugins_installation_in_progress
                                (<em class="parameter"><code><span class="type">void</span></code></em>);</pre>
-<p>Checks whether plugin installation (initiated by this application only)
-is currently in progress.</p>
-<div class="refsect3">
-<a name="gst-install-plugins-installation-in-progress.returns"></a><h4>Returns</h4>
-<p> TRUE if plugin installation is in progress, otherwise FALSE</p>
-</div>
 </div>
 <hr>
 <div class="refsect2">
 <a name="gst-install-plugins-supported"></a><h3>gst_install_plugins_supported ()</h3>
 <pre class="programlisting"><a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
 gst_install_plugins_supported (<em class="parameter"><code><span class="type">void</span></code></em>);</pre>
-<p>Checks whether plugin installation is likely to be supported by the
-current environment. This currently only checks whether the helper script
-that is to be provided by the distribution or operating system vendor
-exists.</p>
-<div class="refsect3">
-<a name="gst-install-plugins-supported.returns"></a><h4>Returns</h4>
-<p> TRUE if plugin installation is likely to be supported.</p>
-</div>
 </div>
 <hr>
 <div class="refsect2">
 <a name="gst-install-plugins-context-new"></a><h3>gst_install_plugins_context_new ()</h3>
 <pre class="programlisting"><a class="link" href="gst-plugins-base-libs-gstpbutilsinstallplugins.html#GstInstallPluginsContext" title="GstInstallPluginsContext"><span class="returnvalue">GstInstallPluginsContext</span></a> *
 gst_install_plugins_context_new (<em class="parameter"><code><span class="type">void</span></code></em>);</pre>
-<p>Creates a new <a class="link" href="gst-plugins-base-libs-gstpbutilsinstallplugins.html#GstInstallPluginsContext" title="GstInstallPluginsContext"><span class="type">GstInstallPluginsContext</span></a>.</p>
-<div class="refsect3">
-<a name="gst-install-plugins-context-new.returns"></a><h4>Returns</h4>
-<p> a new <a class="link" href="gst-plugins-base-libs-gstpbutilsinstallplugins.html#GstInstallPluginsContext" title="GstInstallPluginsContext"><span class="type">GstInstallPluginsContext</span></a>. Free with
-<a class="link" href="gst-plugins-base-libs-gstpbutilsinstallplugins.html#gst-install-plugins-context-free" title="gst_install_plugins_context_free ()"><code class="function">gst_install_plugins_context_free()</code></a> when no longer needed</p>
-</div>
 </div>
 <hr>
 <div class="refsect2">
 <a name="gst-install-plugins-context-free"></a><h3>gst_install_plugins_context_free ()</h3>
 <pre class="programlisting"><span class="returnvalue">void</span>
 gst_install_plugins_context_free (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstpbutilsinstallplugins.html#GstInstallPluginsContext" title="GstInstallPluginsContext"><span class="type">GstInstallPluginsContext</span></a> *ctx</code></em>);</pre>
-<p>Frees a <a class="link" href="gst-plugins-base-libs-gstpbutilsinstallplugins.html#GstInstallPluginsContext" title="GstInstallPluginsContext"><span class="type">GstInstallPluginsContext</span></a>.</p>
-<div class="refsect3">
-<a name="gst-install-plugins-context-free.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>ctx</p></td>
-<td class="parameter_description"><p>a <a class="link" href="gst-plugins-base-libs-gstpbutilsinstallplugins.html#GstInstallPluginsContext" title="GstInstallPluginsContext"><span class="type">GstInstallPluginsContext</span></a></p></td>
-<td class="parameter_annotations"> </td>
-</tr></tbody>
-</table></div>
-</div>
 </div>
 <hr>
 <div class="refsect2">
@@ -754,48 +225,6 @@
 <pre class="programlisting"><span class="returnvalue">void</span>
 gst_install_plugins_context_set_xid (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstpbutilsinstallplugins.html#GstInstallPluginsContext" title="GstInstallPluginsContext"><span class="type">GstInstallPluginsContext</span></a> *ctx</code></em>,
                                      <em class="parameter"><code><a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#guint"><span class="type">guint</span></a> xid</code></em>);</pre>
-<p>This function is for X11-based applications (such as most Gtk/Qt
-applications on linux/unix) only. You can use it to tell the external
-installer the XID of your main application window. That way the installer
-can make its own window transient to your application window during the
-installation.</p>
-<p>If set, the XID will be passed to the installer via a --transient-for=XID
-command line option.</p>
-<p>Gtk+/Gnome application should be able to obtain the XID of the top-level
-window like this:</p>
-<pre class="programlisting">
-##include &lt;gtk/gtk.h&gt;
-##ifdef GDK_WINDOWING_X11
-##include &lt;gdk/gdkx.h&gt;
-##endif
-...
-##ifdef GDK_WINDOWING_X11
-  xid = GDK_WINDOW_XWINDOW (GTK_WIDGET (application_window)-&gt;window);
-##endif
-...
-</pre>
-<div class="refsect3">
-<a name="gst-install-plugins-context-set-xid.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>ctx</p></td>
-<td class="parameter_description"><p>a <a class="link" href="gst-plugins-base-libs-gstpbutilsinstallplugins.html#GstInstallPluginsContext" title="GstInstallPluginsContext"><span class="type">GstInstallPluginsContext</span></a></p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-<tr>
-<td class="parameter_name"><p>xid</p></td>
-<td class="parameter_description"><p>the XWindow ID (XID) of the top-level application</p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-</tbody>
-</table></div>
-</div>
 </div>
 <hr>
 <div class="refsect2">
@@ -804,33 +233,6 @@
 gst_install_plugins_context_set_confirm_search
                                (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstpbutilsinstallplugins.html#GstInstallPluginsContext" title="GstInstallPluginsContext"><span class="type">GstInstallPluginsContext</span></a> *ctx</code></em>,
                                 <em class="parameter"><code><a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a> confirm_search</code></em>);</pre>
-<p>This function is used to tell the external installer process whether it
-should ask for confirmation or not before searching for missing plugins.</p>
-<p>If set, this option will be passed to the installer via a
---interaction=[show-confirm-search|hide-confirm-search] command line option.</p>
-<div class="refsect3">
-<a name="gst-install-plugins-context-set-confirm-search.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>ctx</p></td>
-<td class="parameter_description"><p>a <a class="link" href="gst-plugins-base-libs-gstpbutilsinstallplugins.html#GstInstallPluginsContext" title="GstInstallPluginsContext"><span class="type">GstInstallPluginsContext</span></a></p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-<tr>
-<td class="parameter_name"><p>confirm_search</p></td>
-<td class="parameter_description"><p>whether to ask for confirmation before searching for plugins</p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-</tbody>
-</table></div>
-</div>
-<p class="since">Since: 1.6</p>
 </div>
 <hr>
 <div class="refsect2">
@@ -839,35 +241,6 @@
 gst_install_plugins_context_set_desktop_id
                                (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstpbutilsinstallplugins.html#GstInstallPluginsContext" title="GstInstallPluginsContext"><span class="type">GstInstallPluginsContext</span></a> *ctx</code></em>,
                                 <em class="parameter"><code>const <a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *desktop_id</code></em>);</pre>
-<p>This function is used to pass the calling application's desktop file ID to
-the external installer process.</p>
-<p>A desktop file ID is the basename of the desktop file, including the
-.desktop extension.</p>
-<p>If set, the desktop file ID will be passed to the installer via a
---desktop-id= command line option.</p>
-<div class="refsect3">
-<a name="gst-install-plugins-context-set-desktop-id.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>ctx</p></td>
-<td class="parameter_description"><p>a <a class="link" href="gst-plugins-base-libs-gstpbutilsinstallplugins.html#GstInstallPluginsContext" title="GstInstallPluginsContext"><span class="type">GstInstallPluginsContext</span></a></p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-<tr>
-<td class="parameter_name"><p>desktop_id</p></td>
-<td class="parameter_description"><p>the desktop file ID of the calling application</p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-</tbody>
-</table></div>
-</div>
-<p class="since">Since: 1.6</p>
 </div>
 <hr>
 <div class="refsect2">
@@ -876,54 +249,12 @@
 gst_install_plugins_context_set_startup_notification_id
                                (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstpbutilsinstallplugins.html#GstInstallPluginsContext" title="GstInstallPluginsContext"><span class="type">GstInstallPluginsContext</span></a> *ctx</code></em>,
                                 <em class="parameter"><code>const <a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *startup_id</code></em>);</pre>
-<p>Sets the startup notification ID for the launched process.</p>
-<p>This is typically used to to pass the current X11 event timestamp to the
-external installer process.</p>
-<p>Startup notification IDs are defined in the
-<a class="ulink" href="http://standards.freedesktop.org/startup-notification-spec/startup-notification-latest.txt" target="_top">FreeDesktop.Org Startup Notifications standard</a>.</p>
-<p>If set, the ID will be passed to the installer via a
---startup-notification-id= command line option.</p>
-<p>GTK+/GNOME applications should be able to create a startup notification ID
-like this:</p>
-<pre class="programlisting">
-  timestamp = gtk_get_current_event_time ();
-  startup_id = g_strdup_printf ("_TIME%u", timestamp);
-...
-</pre>
-<div class="refsect3">
-<a name="gst-install-plugins-context-set-startup-notification-id.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>ctx</p></td>
-<td class="parameter_description"><p>a <a class="link" href="gst-plugins-base-libs-gstpbutilsinstallplugins.html#GstInstallPluginsContext" title="GstInstallPluginsContext"><span class="type">GstInstallPluginsContext</span></a></p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-<tr>
-<td class="parameter_name"><p>startup_id</p></td>
-<td class="parameter_description"><p>the startup notification ID</p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-</tbody>
-</table></div>
-</div>
-<p class="since">Since: 1.6</p>
 </div>
 </div>
 <div class="refsect1">
 <a name="gst-plugins-base-libs-gstpbutilsinstallplugins.other_details"></a><h2>Types and Values</h2>
 <div class="refsect2">
 <a name="GstInstallPluginsReturn"></a><h3>enum GstInstallPluginsReturn</h3>
-<p>Result codes returned by <a class="link" href="gst-plugins-base-libs-gstpbutilsinstallplugins.html#gst-install-plugins-async" title="gst_install_plugins_async ()"><code class="function">gst_install_plugins_async()</code></a> and
-<a class="link" href="gst-plugins-base-libs-gstpbutilsinstallplugins.html#gst-install-plugins-sync" title="gst_install_plugins_sync ()"><code class="function">gst_install_plugins_sync()</code></a>, and also the result code passed to the
-<a class="link" href="gst-plugins-base-libs-gstpbutilsinstallplugins.html#GstInstallPluginsResultFunc" title="GstInstallPluginsResultFunc ()"><span class="type">GstInstallPluginsResultFunc</span></a> specified with <a class="link" href="gst-plugins-base-libs-gstpbutilsinstallplugins.html#gst-install-plugins-async" title="gst_install_plugins_async ()"><code class="function">gst_install_plugins_async()</code></a>.</p>
-<p>These codes indicate success or failure of starting an external installer
-program and to what extent the requested plugins could be installed.</p>
 <div class="refsect3">
 <a name="GstInstallPluginsReturn.members"></a><h4>Members</h4>
 <div class="informaltable"><table class="informaltable" width="100%" border="0">
@@ -935,93 +266,58 @@
 <tbody>
 <tr>
 <td class="enum_member_name"><p><a name="GST-INSTALL-PLUGINS-SUCCESS:CAPS"></a>GST_INSTALL_PLUGINS_SUCCESS</p></td>
-<td class="enum_member_description">
-<p>all of the requested plugins could be
-    installed</p>
-</td>
-<td class="enum_member_annotations"> </td>
+<td> </td>
+<td> </td>
 </tr>
 <tr>
 <td class="enum_member_name"><p><a name="GST-INSTALL-PLUGINS-NOT-FOUND:CAPS"></a>GST_INSTALL_PLUGINS_NOT_FOUND</p></td>
-<td class="enum_member_description">
-<p>no appropriate installation candidate for
-    any of the requested plugins could be found. Only return this if nothing
-    has been installed. Return <a class="link" href="gst-plugins-base-libs-gstpbutilsinstallplugins.html#GST-INSTALL-PLUGINS-PARTIAL-SUCCESS:CAPS"><span class="type">GST_INSTALL_PLUGINS_PARTIAL_SUCCESS</span></a> if
-    some (but not all) of the requested plugins could be installed.</p>
-</td>
-<td class="enum_member_annotations"> </td>
+<td> </td>
+<td> </td>
 </tr>
 <tr>
 <td class="enum_member_name"><p><a name="GST-INSTALL-PLUGINS-ERROR:CAPS"></a>GST_INSTALL_PLUGINS_ERROR</p></td>
-<td class="enum_member_description">
-<p>an error occured during the installation. If
-    this happens, the  user has already seen an error message and another
-    one should not be displayed</p>
-</td>
-<td class="enum_member_annotations"> </td>
+<td> </td>
+<td> </td>
 </tr>
 <tr>
 <td class="enum_member_name"><p><a name="GST-INSTALL-PLUGINS-PARTIAL-SUCCESS:CAPS"></a>GST_INSTALL_PLUGINS_PARTIAL_SUCCESS</p></td>
-<td class="enum_member_description">
-<p>some of the requested plugins could
-    be installed, but not all</p>
-</td>
-<td class="enum_member_annotations"> </td>
+<td> </td>
+<td> </td>
 </tr>
 <tr>
 <td class="enum_member_name"><p><a name="GST-INSTALL-PLUGINS-USER-ABORT:CAPS"></a>GST_INSTALL_PLUGINS_USER_ABORT</p></td>
-<td class="enum_member_description">
-<p>the user has aborted the installation</p>
-</td>
-<td class="enum_member_annotations"> </td>
+<td> </td>
+<td> </td>
 </tr>
 <tr>
 <td class="enum_member_name"><p><a name="GST-INSTALL-PLUGINS-CRASHED:CAPS"></a>GST_INSTALL_PLUGINS_CRASHED</p></td>
-<td class="enum_member_description">
-<p>the installer had an unclean exit code
-    (ie. death by signal)</p>
-</td>
-<td class="enum_member_annotations"> </td>
+<td> </td>
+<td> </td>
 </tr>
 <tr>
 <td class="enum_member_name"><p><a name="GST-INSTALL-PLUGINS-INVALID:CAPS"></a>GST_INSTALL_PLUGINS_INVALID</p></td>
-<td class="enum_member_description">
-<p>the helper returned an invalid status code</p>
-</td>
-<td class="enum_member_annotations"> </td>
+<td> </td>
+<td> </td>
 </tr>
 <tr>
 <td class="enum_member_name"><p><a name="GST-INSTALL-PLUGINS-STARTED-OK:CAPS"></a>GST_INSTALL_PLUGINS_STARTED_OK</p></td>
-<td class="enum_member_description">
-<p>returned by <a class="link" href="gst-plugins-base-libs-gstpbutilsinstallplugins.html#gst-install-plugins-async" title="gst_install_plugins_async ()"><code class="function">gst_install_plugins_async()</code></a> to
-    indicate that everything went fine so far and the provided callback
-    will be called with the result of the installation later</p>
-</td>
-<td class="enum_member_annotations"> </td>
+<td> </td>
+<td> </td>
 </tr>
 <tr>
 <td class="enum_member_name"><p><a name="GST-INSTALL-PLUGINS-INTERNAL-FAILURE:CAPS"></a>GST_INSTALL_PLUGINS_INTERNAL_FAILURE</p></td>
-<td class="enum_member_description">
-<p>some internal failure has
-    occured when trying to start the installer</p>
-</td>
-<td class="enum_member_annotations"> </td>
+<td> </td>
+<td> </td>
 </tr>
 <tr>
 <td class="enum_member_name"><p><a name="GST-INSTALL-PLUGINS-HELPER-MISSING:CAPS"></a>GST_INSTALL_PLUGINS_HELPER_MISSING</p></td>
-<td class="enum_member_description">
-<p>the helper script to call the
-    actual installer is not installed</p>
-</td>
-<td class="enum_member_annotations"> </td>
+<td> </td>
+<td> </td>
 </tr>
 <tr>
 <td class="enum_member_name"><p><a name="GST-INSTALL-PLUGINS-INSTALL-IN-PROGRESS:CAPS"></a>GST_INSTALL_PLUGINS_INSTALL_IN_PROGRESS</p></td>
-<td class="enum_member_description">
-<p>a previously-started plugin
-    installation is still in progress, try again later</p>
-</td>
-<td class="enum_member_annotations"> </td>
+<td> </td>
+<td> </td>
 </tr>
 </tbody>
 </table></div>
@@ -1031,8 +327,6 @@
 <div class="refsect2">
 <a name="GstInstallPluginsContext"></a><h3>GstInstallPluginsContext</h3>
 <pre class="programlisting">typedef struct _GstInstallPluginsContext GstInstallPluginsContext;</pre>
-<p>Opaque context structure for the plugin installation. Use the provided
-API to set details on it.</p>
 </div>
 </div>
 </div>
diff --git a/docs/libs/html/gst-plugins-base-libs-gstpbutilsmissingplugins.html b/docs/libs/html/gst-plugins-base-libs-gstpbutilsmissingplugins.html
index 65fafd3..8f4ee6f 100644
--- a/docs/libs/html/gst-plugins-base-libs-gstpbutilsmissingplugins.html
+++ b/docs/libs/html/gst-plugins-base-libs-gstpbutilsmissingplugins.html
@@ -27,7 +27,7 @@
 <div class="refnamediv"><table width="100%"><tr>
 <td valign="top">
 <h2><span class="refentrytitle"><a name="gst-plugins-base-libs-gstpbutilsmissingplugins.top_of_page"></a>gstpbutilsmissingplugins</span></h2>
-<p>gstpbutilsmissingplugins — Create, recognise and parse missing-plugins messages</p>
+<p>gstpbutilsmissingplugins</p>
 </td>
 <td class="gallery_image" valign="top" align="right"></td>
 </tr></table></div>
@@ -153,35 +153,6 @@
 </div>
 <div class="refsect1">
 <a name="gst-plugins-base-libs-gstpbutilsmissingplugins.description"></a><h2>Description</h2>
-<div class="refsect2">
-<a name="id-1.2.14.7.5.2"></a><p>
-Functions to create, recognise and parse missing-plugins messages for
-applications and elements.
-</p>
-<p>
-Missing-plugin messages are posted on the bus by elements like decodebin
-or playbin if they can't find an appropriate source element or decoder
-element. The application can use these messages for two things:
-</p>
-<div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; ">
-<li class="listitem"><p>
-    concise error/problem reporting to the user mentioning what exactly
-    is missing, see <a class="link" href="gst-plugins-base-libs-gstpbutilsmissingplugins.html#gst-missing-plugin-message-get-description" title="gst_missing_plugin_message_get_description ()"><code class="function">gst_missing_plugin_message_get_description()</code></a>
-  </p></li>
-<li class="listitem"><p>
-    initiate installation of missing plugins, see
-    <a class="link" href="gst-plugins-base-libs-gstpbutilsmissingplugins.html#gst-missing-plugin-message-get-installer-detail" title="gst_missing_plugin_message_get_installer_detail ()"><code class="function">gst_missing_plugin_message_get_installer_detail()</code></a> and
-    <a class="link" href="gst-plugins-base-libs-gstpbutilsinstallplugins.html#gst-install-plugins-async" title="gst_install_plugins_async ()"><code class="function">gst_install_plugins_async()</code></a>
-  </p></li>
-</ul></div>
-<p>
-</p>
-<p>
-Applications may also create missing-plugin messages themselves to install
-required elements that are missing, using the install mechanism mentioned
-above.
-</p>
-</div>
 </div>
 <div class="refsect1">
 <a name="gst-plugins-base-libs-gstpbutilsmissingplugins.functions_details"></a><h2>Functions</h2>
@@ -190,31 +161,6 @@
 <pre class="programlisting"><a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> *
 gst_missing_plugin_message_get_installer_detail
                                (<em class="parameter"><code><a href="/usr/share/gtk-doc/html/gstreamer-1.0GstMessage.html#GstMessage-struct"><span class="type">GstMessage</span></a> *msg</code></em>);</pre>
-<p>Returns an opaque string containing all the details about the missing
-element to be passed to an external installer called via
-<a class="link" href="gst-plugins-base-libs-gstpbutilsinstallplugins.html#gst-install-plugins-async" title="gst_install_plugins_async ()"><code class="function">gst_install_plugins_async()</code></a> or <a class="link" href="gst-plugins-base-libs-gstpbutilsinstallplugins.html#gst-install-plugins-sync" title="gst_install_plugins_sync ()"><code class="function">gst_install_plugins_sync()</code></a>.</p>
-<p>This function is mainly for applications that call external plugin
-installation mechanisms using one of the two above-mentioned functions.</p>
-<div class="refsect3">
-<a name="gst-missing-plugin-message-get-installer-detail.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>msg</p></td>
-<td class="parameter_description"><p>a missing-plugin <a href="/usr/share/gtk-doc/html/gstreamer-1.0GstMessage.html#GstMessage-struct"><span class="type">GstMessage</span></a> of type <a href="/usr/share/gtk-doc/html/gstreamer-1.0GstMessage.html#GST-MESSAGE-ELEMENT:CAPS"><span class="type">GST_MESSAGE_ELEMENT</span></a></p></td>
-<td class="parameter_annotations"> </td>
-</tr></tbody>
-</table></div>
-</div>
-<div class="refsect3">
-<a name="gst-missing-plugin-message-get-installer-detail.returns"></a><h4>Returns</h4>
-<p> a newly-allocated detail string, or NULL on error. Free string
-with <a href="/usr/share/gtk-doc/html/glibglib-Memory-Allocation.html#g-free"><code class="function">g_free()</code></a> when not needed any longer.</p>
-</div>
 </div>
 <hr>
 <div class="refsect2">
@@ -222,61 +168,12 @@
 <pre class="programlisting"><a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> *
 gst_missing_plugin_message_get_description
                                (<em class="parameter"><code><a href="/usr/share/gtk-doc/html/gstreamer-1.0GstMessage.html#GstMessage-struct"><span class="type">GstMessage</span></a> *msg</code></em>);</pre>
-<p>Returns a localised string describing the missing feature, for use in
-error dialogs and the like. Should never return NULL unless <em class="parameter"><code>msg</code></em>
- is not
-a valid missing-plugin message.</p>
-<p>This function is mainly for applications that need a human-readable string
-describing a missing plugin, given a previously collected missing-plugin
-message</p>
-<div class="refsect3">
-<a name="gst-missing-plugin-message-get-description.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>msg</p></td>
-<td class="parameter_description"><p>a missing-plugin <a href="/usr/share/gtk-doc/html/gstreamer-1.0GstMessage.html#GstMessage-struct"><span class="type">GstMessage</span></a> of type <a href="/usr/share/gtk-doc/html/gstreamer-1.0GstMessage.html#GST-MESSAGE-ELEMENT:CAPS"><span class="type">GST_MESSAGE_ELEMENT</span></a></p></td>
-<td class="parameter_annotations"> </td>
-</tr></tbody>
-</table></div>
-</div>
-<div class="refsect3">
-<a name="gst-missing-plugin-message-get-description.returns"></a><h4>Returns</h4>
-<p> a newly-allocated description string, or NULL on error. Free
-string with <a href="/usr/share/gtk-doc/html/glibglib-Memory-Allocation.html#g-free"><code class="function">g_free()</code></a> when not needed any longer.</p>
-</div>
 </div>
 <hr>
 <div class="refsect2">
 <a name="gst-is-missing-plugin-message"></a><h3>gst_is_missing_plugin_message ()</h3>
 <pre class="programlisting"><a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
 gst_is_missing_plugin_message (<em class="parameter"><code><a href="/usr/share/gtk-doc/html/gstreamer-1.0GstMessage.html#GstMessage-struct"><span class="type">GstMessage</span></a> *msg</code></em>);</pre>
-<p>Checks whether <em class="parameter"><code>msg</code></em>
- is a missing plugins message.</p>
-<div class="refsect3">
-<a name="gst-is-missing-plugin-message.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>msg</p></td>
-<td class="parameter_description"><p>a <a href="/usr/share/gtk-doc/html/gstreamer-1.0GstMessage.html#GstMessage-struct"><span class="type">GstMessage</span></a></p></td>
-<td class="parameter_annotations"> </td>
-</tr></tbody>
-</table></div>
-</div>
-<div class="refsect3">
-<a name="gst-is-missing-plugin-message.returns"></a><h4>Returns</h4>
-<p> <a href="/usr/share/gtk-doc/html/glibglib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a> if <em class="parameter"><code>msg</code></em>
-is a missing-plugins message, otherwise <a href="/usr/share/gtk-doc/html/glibglib-Standard-Macros.html#FALSE:CAPS"><code class="literal">FALSE</code></a>.</p>
-</div>
 </div>
 <hr>
 <div class="refsect2">
@@ -284,37 +181,6 @@
 <pre class="programlisting"><a href="/usr/share/gtk-doc/html/gstreamer-1.0GstMessage.html#GstMessage-struct"><span class="returnvalue">GstMessage</span></a> *
 gst_missing_decoder_message_new (<em class="parameter"><code><a href="/usr/share/gtk-doc/html/gstreamer-1.0GstElement.html#GstElement-struct"><span class="type">GstElement</span></a> *element</code></em>,
                                  <em class="parameter"><code>const <a href="/usr/share/gtk-doc/html/gstreamer-1.0GstCaps.html#GstCaps-struct"><span class="type">GstCaps</span></a> *decode_caps</code></em>);</pre>
-<p>Creates a missing-plugin message for <em class="parameter"><code>element</code></em>
- to notify the application
-that a decoder element for a particular set of (fixed) caps is missing.
-This function is mainly for use in plugins.</p>
-<div class="refsect3">
-<a name="gst-missing-decoder-message-new.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>element</p></td>
-<td class="parameter_description"><p>the <a href="/usr/share/gtk-doc/html/gstreamer-1.0GstElement.html#GstElement-struct"><span class="type">GstElement</span></a> posting the message</p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-<tr>
-<td class="parameter_name"><p>decode_caps</p></td>
-<td class="parameter_description"><p>the (fixed) caps for which a decoder element is needed</p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-</tbody>
-</table></div>
-</div>
-<div class="refsect3">
-<a name="gst-missing-decoder-message-new.returns"></a><h4>Returns</h4>
-<p> a new <a href="/usr/share/gtk-doc/html/gstreamer-1.0GstMessage.html#GstMessage-struct"><span class="type">GstMessage</span></a>, or NULL on error. </p>
-<p><span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>]</span></p>
-</div>
 </div>
 <hr>
 <div class="refsect2">
@@ -322,37 +188,6 @@
 <pre class="programlisting"><a href="/usr/share/gtk-doc/html/gstreamer-1.0GstMessage.html#GstMessage-struct"><span class="returnvalue">GstMessage</span></a> *
 gst_missing_encoder_message_new (<em class="parameter"><code><a href="/usr/share/gtk-doc/html/gstreamer-1.0GstElement.html#GstElement-struct"><span class="type">GstElement</span></a> *element</code></em>,
                                  <em class="parameter"><code>const <a href="/usr/share/gtk-doc/html/gstreamer-1.0GstCaps.html#GstCaps-struct"><span class="type">GstCaps</span></a> *encode_caps</code></em>);</pre>
-<p>Creates a missing-plugin message for <em class="parameter"><code>element</code></em>
- to notify the application
-that an encoder element for a particular set of (fixed) caps is missing.
-This function is mainly for use in plugins.</p>
-<div class="refsect3">
-<a name="gst-missing-encoder-message-new.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>element</p></td>
-<td class="parameter_description"><p>the <a href="/usr/share/gtk-doc/html/gstreamer-1.0GstElement.html#GstElement-struct"><span class="type">GstElement</span></a> posting the message</p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-<tr>
-<td class="parameter_name"><p>encode_caps</p></td>
-<td class="parameter_description"><p>the (fixed) caps for which an encoder element is needed</p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-</tbody>
-</table></div>
-</div>
-<div class="refsect3">
-<a name="gst-missing-encoder-message-new.returns"></a><h4>Returns</h4>
-<p> a new <a href="/usr/share/gtk-doc/html/gstreamer-1.0GstMessage.html#GstMessage-struct"><span class="type">GstMessage</span></a>, or NULL on error. </p>
-<p><span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>]</span></p>
-</div>
 </div>
 <hr>
 <div class="refsect2">
@@ -360,38 +195,6 @@
 <pre class="programlisting"><a href="/usr/share/gtk-doc/html/gstreamer-1.0GstMessage.html#GstMessage-struct"><span class="returnvalue">GstMessage</span></a> *
 gst_missing_uri_source_message_new (<em class="parameter"><code><a href="/usr/share/gtk-doc/html/gstreamer-1.0GstElement.html#GstElement-struct"><span class="type">GstElement</span></a> *element</code></em>,
                                     <em class="parameter"><code>const <a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *protocol</code></em>);</pre>
-<p>Creates a missing-plugin message for <em class="parameter"><code>element</code></em>
- to notify the application
-that a source element for a particular URI protocol is missing. This
-function is mainly for use in plugins.</p>
-<div class="refsect3">
-<a name="gst-missing-uri-source-message-new.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>element</p></td>
-<td class="parameter_description"><p>the <a href="/usr/share/gtk-doc/html/gstreamer-1.0GstElement.html#GstElement-struct"><span class="type">GstElement</span></a> posting the message</p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-<tr>
-<td class="parameter_name"><p>protocol</p></td>
-<td class="parameter_description"><p>the URI protocol the missing source needs to implement,
-e.g. "http" or "mms"</p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-</tbody>
-</table></div>
-</div>
-<div class="refsect3">
-<a name="gst-missing-uri-source-message-new.returns"></a><h4>Returns</h4>
-<p> a new <a href="/usr/share/gtk-doc/html/gstreamer-1.0GstMessage.html#GstMessage-struct"><span class="type">GstMessage</span></a>, or NULL on error. </p>
-<p><span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>]</span></p>
-</div>
 </div>
 <hr>
 <div class="refsect2">
@@ -399,38 +202,6 @@
 <pre class="programlisting"><a href="/usr/share/gtk-doc/html/gstreamer-1.0GstMessage.html#GstMessage-struct"><span class="returnvalue">GstMessage</span></a> *
 gst_missing_uri_sink_message_new (<em class="parameter"><code><a href="/usr/share/gtk-doc/html/gstreamer-1.0GstElement.html#GstElement-struct"><span class="type">GstElement</span></a> *element</code></em>,
                                   <em class="parameter"><code>const <a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *protocol</code></em>);</pre>
-<p>Creates a missing-plugin message for <em class="parameter"><code>element</code></em>
- to notify the application
-that a sink element for a particular URI protocol is missing. This
-function is mainly for use in plugins.</p>
-<div class="refsect3">
-<a name="gst-missing-uri-sink-message-new.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>element</p></td>
-<td class="parameter_description"><p>the <a href="/usr/share/gtk-doc/html/gstreamer-1.0GstElement.html#GstElement-struct"><span class="type">GstElement</span></a> posting the message</p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-<tr>
-<td class="parameter_name"><p>protocol</p></td>
-<td class="parameter_description"><p>the URI protocol the missing sink needs to implement,
-e.g. "http" or "smb"</p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-</tbody>
-</table></div>
-</div>
-<div class="refsect3">
-<a name="gst-missing-uri-sink-message-new.returns"></a><h4>Returns</h4>
-<p> a new <a href="/usr/share/gtk-doc/html/gstreamer-1.0GstMessage.html#GstMessage-struct"><span class="type">GstMessage</span></a>, or NULL on error. </p>
-<p><span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>]</span></p>
-</div>
 </div>
 <hr>
 <div class="refsect2">
@@ -438,38 +209,6 @@
 <pre class="programlisting"><a href="/usr/share/gtk-doc/html/gstreamer-1.0GstMessage.html#GstMessage-struct"><span class="returnvalue">GstMessage</span></a> *
 gst_missing_element_message_new (<em class="parameter"><code><a href="/usr/share/gtk-doc/html/gstreamer-1.0GstElement.html#GstElement-struct"><span class="type">GstElement</span></a> *element</code></em>,
                                  <em class="parameter"><code>const <a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *factory_name</code></em>);</pre>
-<p>Creates a missing-plugin message for <em class="parameter"><code>element</code></em>
- to notify the application
-that a certain required element is missing. This function is mainly for
-use in plugins.</p>
-<div class="refsect3">
-<a name="gst-missing-element-message-new.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>element</p></td>
-<td class="parameter_description"><p>the <a href="/usr/share/gtk-doc/html/gstreamer-1.0GstElement.html#GstElement-struct"><span class="type">GstElement</span></a> posting the message</p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-<tr>
-<td class="parameter_name"><p>factory_name</p></td>
-<td class="parameter_description"><p>the name of the missing element (element factory),
-e.g. "videoscale" or "cdparanoiasrc"</p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-</tbody>
-</table></div>
-</div>
-<div class="refsect3">
-<a name="gst-missing-element-message-new.returns"></a><h4>Returns</h4>
-<p> a new <a href="/usr/share/gtk-doc/html/gstreamer-1.0GstMessage.html#GstMessage-struct"><span class="type">GstMessage</span></a>, or NULL on error. </p>
-<p><span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>]</span></p>
-</div>
 </div>
 <hr>
 <div class="refsect2">
@@ -477,34 +216,6 @@
 <pre class="programlisting"><a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> *
 gst_missing_uri_source_installer_detail_new
                                (<em class="parameter"><code>const <a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *protocol</code></em>);</pre>
-<p>Returns an opaque string containing all the details about the missing
-element to be passed to an external installer called via
-<a class="link" href="gst-plugins-base-libs-gstpbutilsinstallplugins.html#gst-install-plugins-async" title="gst_install_plugins_async ()"><code class="function">gst_install_plugins_async()</code></a> or <a class="link" href="gst-plugins-base-libs-gstpbutilsinstallplugins.html#gst-install-plugins-sync" title="gst_install_plugins_sync ()"><code class="function">gst_install_plugins_sync()</code></a>.</p>
-<p>This function is mainly for applications that call external plugin
-installation mechanisms using one of the two above-mentioned functions in
-the case where the application knows exactly what kind of plugin it is
-missing.</p>
-<div class="refsect3">
-<a name="gst-missing-uri-source-installer-detail-new.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>protocol</p></td>
-<td class="parameter_description"><p>the URI protocol the missing source needs to implement,
-e.g. "http" or "mms"</p></td>
-<td class="parameter_annotations"> </td>
-</tr></tbody>
-</table></div>
-</div>
-<div class="refsect3">
-<a name="gst-missing-uri-source-installer-detail-new.returns"></a><h4>Returns</h4>
-<p> a newly-allocated detail string, or NULL on error. Free string
-with <a href="/usr/share/gtk-doc/html/glibglib-Memory-Allocation.html#g-free"><code class="function">g_free()</code></a> when not needed any longer.</p>
-</div>
 </div>
 <hr>
 <div class="refsect2">
@@ -512,34 +223,6 @@
 <pre class="programlisting"><a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> *
 gst_missing_uri_sink_installer_detail_new
                                (<em class="parameter"><code>const <a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *protocol</code></em>);</pre>
-<p>Returns an opaque string containing all the details about the missing
-element to be passed to an external installer called via
-<a class="link" href="gst-plugins-base-libs-gstpbutilsinstallplugins.html#gst-install-plugins-async" title="gst_install_plugins_async ()"><code class="function">gst_install_plugins_async()</code></a> or <a class="link" href="gst-plugins-base-libs-gstpbutilsinstallplugins.html#gst-install-plugins-sync" title="gst_install_plugins_sync ()"><code class="function">gst_install_plugins_sync()</code></a>.</p>
-<p>This function is mainly for applications that call external plugin
-installation mechanisms using one of the two above-mentioned functions in
-the case where the application knows exactly what kind of plugin it is
-missing.</p>
-<div class="refsect3">
-<a name="gst-missing-uri-sink-installer-detail-new.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>protocol</p></td>
-<td class="parameter_description"><p>the URI protocol the missing source needs to implement,
-e.g. "http" or "mms"</p></td>
-<td class="parameter_annotations"> </td>
-</tr></tbody>
-</table></div>
-</div>
-<div class="refsect3">
-<a name="gst-missing-uri-sink-installer-detail-new.returns"></a><h4>Returns</h4>
-<p> a newly-allocated detail string, or NULL on error. Free string
-with <a href="/usr/share/gtk-doc/html/glibglib-Memory-Allocation.html#g-free"><code class="function">g_free()</code></a> when not needed any longer.</p>
-</div>
 </div>
 <hr>
 <div class="refsect2">
@@ -547,34 +230,6 @@
 <pre class="programlisting"><a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> *
 gst_missing_element_installer_detail_new
                                (<em class="parameter"><code>const <a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *factory_name</code></em>);</pre>
-<p>Returns an opaque string containing all the details about the missing
-element to be passed to an external installer called via
-<a class="link" href="gst-plugins-base-libs-gstpbutilsinstallplugins.html#gst-install-plugins-async" title="gst_install_plugins_async ()"><code class="function">gst_install_plugins_async()</code></a> or <a class="link" href="gst-plugins-base-libs-gstpbutilsinstallplugins.html#gst-install-plugins-sync" title="gst_install_plugins_sync ()"><code class="function">gst_install_plugins_sync()</code></a>.</p>
-<p>This function is mainly for applications that call external plugin
-installation mechanisms using one of the two above-mentioned functions in
-the case where the application knows exactly what kind of plugin it is
-missing.</p>
-<div class="refsect3">
-<a name="gst-missing-element-installer-detail-new.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>factory_name</p></td>
-<td class="parameter_description"><p>the name of the missing element (element factory),
-e.g. "videoscale" or "cdparanoiasrc"</p></td>
-<td class="parameter_annotations"> </td>
-</tr></tbody>
-</table></div>
-</div>
-<div class="refsect3">
-<a name="gst-missing-element-installer-detail-new.returns"></a><h4>Returns</h4>
-<p> a newly-allocated detail string, or NULL on error. Free string
-with <a href="/usr/share/gtk-doc/html/glibglib-Memory-Allocation.html#g-free"><code class="function">g_free()</code></a> when not needed any longer.</p>
-</div>
 </div>
 <hr>
 <div class="refsect2">
@@ -582,33 +237,6 @@
 <pre class="programlisting"><a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> *
 gst_missing_decoder_installer_detail_new
                                (<em class="parameter"><code>const <a href="/usr/share/gtk-doc/html/gstreamer-1.0GstCaps.html#GstCaps-struct"><span class="type">GstCaps</span></a> *decode_caps</code></em>);</pre>
-<p>Returns an opaque string containing all the details about the missing
-element to be passed to an external installer called via
-<a class="link" href="gst-plugins-base-libs-gstpbutilsinstallplugins.html#gst-install-plugins-async" title="gst_install_plugins_async ()"><code class="function">gst_install_plugins_async()</code></a> or <a class="link" href="gst-plugins-base-libs-gstpbutilsinstallplugins.html#gst-install-plugins-sync" title="gst_install_plugins_sync ()"><code class="function">gst_install_plugins_sync()</code></a>.</p>
-<p>This function is mainly for applications that call external plugin
-installation mechanisms using one of the two above-mentioned functions in
-the case where the application knows exactly what kind of plugin it is
-missing.</p>
-<div class="refsect3">
-<a name="gst-missing-decoder-installer-detail-new.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>decode_caps</p></td>
-<td class="parameter_description"><p>the (fixed) caps for which a decoder element is needed</p></td>
-<td class="parameter_annotations"> </td>
-</tr></tbody>
-</table></div>
-</div>
-<div class="refsect3">
-<a name="gst-missing-decoder-installer-detail-new.returns"></a><h4>Returns</h4>
-<p> a newly-allocated detail string, or NULL on error. Free string
-with <a href="/usr/share/gtk-doc/html/glibglib-Memory-Allocation.html#g-free"><code class="function">g_free()</code></a> when not needed any longer.</p>
-</div>
 </div>
 <hr>
 <div class="refsect2">
@@ -616,33 +244,6 @@
 <pre class="programlisting"><a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> *
 gst_missing_encoder_installer_detail_new
                                (<em class="parameter"><code>const <a href="/usr/share/gtk-doc/html/gstreamer-1.0GstCaps.html#GstCaps-struct"><span class="type">GstCaps</span></a> *encode_caps</code></em>);</pre>
-<p>Returns an opaque string containing all the details about the missing
-element to be passed to an external installer called via
-<a class="link" href="gst-plugins-base-libs-gstpbutilsinstallplugins.html#gst-install-plugins-async" title="gst_install_plugins_async ()"><code class="function">gst_install_plugins_async()</code></a> or <a class="link" href="gst-plugins-base-libs-gstpbutilsinstallplugins.html#gst-install-plugins-sync" title="gst_install_plugins_sync ()"><code class="function">gst_install_plugins_sync()</code></a>.</p>
-<p>This function is mainly for applications that call external plugin
-installation mechanisms using one of the two above-mentioned functions in
-the case where the application knows exactly what kind of plugin it is
-missing.</p>
-<div class="refsect3">
-<a name="gst-missing-encoder-installer-detail-new.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>encode_caps</p></td>
-<td class="parameter_description"><p>the (fixed) caps for which an encoder element is needed</p></td>
-<td class="parameter_annotations"> </td>
-</tr></tbody>
-</table></div>
-</div>
-<div class="refsect3">
-<a name="gst-missing-encoder-installer-detail-new.returns"></a><h4>Returns</h4>
-<p> a newly-allocated detail string, or NULL on error. Free string
-with <a href="/usr/share/gtk-doc/html/glibglib-Memory-Allocation.html#g-free"><code class="function">g_free()</code></a> when not needed any longer.</p>
-</div>
 </div>
 </div>
 <div class="refsect1">
diff --git a/docs/libs/html/gst-plugins-base-libs-gstpluginsbaseversion.html b/docs/libs/html/gst-plugins-base-libs-gstpluginsbaseversion.html
index 8510faa..8877754 100644
--- a/docs/libs/html/gst-plugins-base-libs-gstpluginsbaseversion.html
+++ b/docs/libs/html/gst-plugins-base-libs-gstpluginsbaseversion.html
@@ -27,7 +27,7 @@
 <div class="refnamediv"><table width="100%"><tr>
 <td valign="top">
 <h2><span class="refentrytitle"><a name="gst-plugins-base-libs-gstpluginsbaseversion.top_of_page"></a>gstpluginsbaseversion</span></h2>
-<p>gstpluginsbaseversion — GStreamer gst-plugins-base libraries version macros.</p>
+<p>gstpluginsbaseversion</p>
 </td>
 <td class="gallery_image" valign="top" align="right"></td>
 </tr></table></div>
@@ -98,11 +98,6 @@
 </div>
 <div class="refsect1">
 <a name="gst-plugins-base-libs-gstpluginsbaseversion.description"></a><h2>Description</h2>
-<p>Use the GST_PLUGINS_BASE_VERSION_* macros e.g. to check what version of
-gst-plugins-base you are building against, and <a class="link" href="gst-plugins-base-libs-gstpluginsbaseversion.html#gst-plugins-base-version" title="gst_plugins_base_version ()"><code class="function">gst_plugins_base_version()</code></a>
-if you need to check at runtime what version of the gst-plugins-base
-libraries are being used / you are currently linked against.</p>
-<p>The version macros get defined by including &lt;gst/pbutils/pbutils.h&gt;.</p>
 </div>
 <div class="refsect1">
 <a name="gst-plugins-base-libs-gstpluginsbaseversion.functions_details"></a><h2>Functions</h2>
@@ -118,52 +113,12 @@
                           <em class="parameter"><code><a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#guint"><span class="type">guint</span></a> *minor</code></em>,
                           <em class="parameter"><code><a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#guint"><span class="type">guint</span></a> *micro</code></em>,
                           <em class="parameter"><code><a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#guint"><span class="type">guint</span></a> *nano</code></em>);</pre>
-<p>Gets the version number of the GStreamer Plugins Base libraries.</p>
-<div class="refsect3">
-<a name="gst-plugins-base-version.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>major</p></td>
-<td class="parameter_description"><p> pointer to a guint to store the major version number, or <a href="/usr/share/gtk-doc/html/glibglib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a>. </p></td>
-<td class="parameter_annotations"><span class="annotation">[<acronym title="Parameter for returning results. Default is transfer full."><span class="acronym">out</span></acronym>]</span></td>
-</tr>
-<tr>
-<td class="parameter_name"><p>minor</p></td>
-<td class="parameter_description"><p> pointer to a guint to store the minor version number, or <a href="/usr/share/gtk-doc/html/glibglib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a>. </p></td>
-<td class="parameter_annotations"><span class="annotation">[<acronym title="Parameter for returning results. Default is transfer full."><span class="acronym">out</span></acronym>]</span></td>
-</tr>
-<tr>
-<td class="parameter_name"><p>micro</p></td>
-<td class="parameter_description"><p> pointer to a guint to store the micro version number, or <a href="/usr/share/gtk-doc/html/glibglib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a>. </p></td>
-<td class="parameter_annotations"><span class="annotation">[<acronym title="Parameter for returning results. Default is transfer full."><span class="acronym">out</span></acronym>]</span></td>
-</tr>
-<tr>
-<td class="parameter_name"><p>nano</p></td>
-<td class="parameter_description"><p> pointer to a guint to store the nano version number, or <a href="/usr/share/gtk-doc/html/glibglib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a>. </p></td>
-<td class="parameter_annotations"><span class="annotation">[<acronym title="Parameter for returning results. Default is transfer full."><span class="acronym">out</span></acronym>]</span></td>
-</tr>
-</tbody>
-</table></div>
-</div>
 </div>
 <hr>
 <div class="refsect2">
 <a name="gst-plugins-base-version-string"></a><h3>gst_plugins_base_version_string ()</h3>
 <pre class="programlisting"><a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> *
 gst_plugins_base_version_string (<em class="parameter"><code><span class="type">void</span></code></em>);</pre>
-<p>This function returns a string that is useful for describing this version
-of GStreamer's gst-plugins-base libraries to the outside world: user agent
-strings, logging, about dialogs ...</p>
-<div class="refsect3">
-<a name="gst-plugins-base-version-string.returns"></a><h4>Returns</h4>
-<p> a newly allocated string describing this version of gst-plugins-base</p>
-</div>
 </div>
 </div>
 <div class="refsect1">
@@ -172,29 +127,24 @@
 <a name="GST-PLUGINS-BASE-VERSION-MAJOR:CAPS"></a><h3>GST_PLUGINS_BASE_VERSION_MAJOR</h3>
 <pre class="programlisting">#define GST_PLUGINS_BASE_VERSION_MAJOR (1)
 </pre>
-<p>The major version of GStreamer's gst-plugins-base libraries at compile time.</p>
 </div>
 <hr>
 <div class="refsect2">
 <a name="GST-PLUGINS-BASE-VERSION-MINOR:CAPS"></a><h3>GST_PLUGINS_BASE_VERSION_MINOR</h3>
-<pre class="programlisting">#define GST_PLUGINS_BASE_VERSION_MINOR (8)
+<pre class="programlisting">#define GST_PLUGINS_BASE_VERSION_MINOR (9)
 </pre>
-<p>The minor version of GStreamer's gst-plugins-base libraries at compile time.</p>
 </div>
 <hr>
 <div class="refsect2">
 <a name="GST-PLUGINS-BASE-VERSION-MICRO:CAPS"></a><h3>GST_PLUGINS_BASE_VERSION_MICRO</h3>
-<pre class="programlisting">#define GST_PLUGINS_BASE_VERSION_MICRO (2)
+<pre class="programlisting">#define GST_PLUGINS_BASE_VERSION_MICRO (1)
 </pre>
-<p>The micro version of GStreamer's gst-plugins-base libraries at compile time.</p>
 </div>
 <hr>
 <div class="refsect2">
 <a name="GST-PLUGINS-BASE-VERSION-NANO:CAPS"></a><h3>GST_PLUGINS_BASE_VERSION_NANO</h3>
 <pre class="programlisting">#define GST_PLUGINS_BASE_VERSION_NANO (0)
 </pre>
-<p>The nano version of GStreamer's gst-plugins-base libraries at compile time.
-Actual releases have 0, GIT versions have 1, prerelease versions have 2-...</p>
 </div>
 </div>
 </div>
diff --git a/docs/libs/html/gst-plugins-base-libs-gstriff.html b/docs/libs/html/gst-plugins-base-libs-gstriff.html
index 36d01e5..1bbf7b9 100644
--- a/docs/libs/html/gst-plugins-base-libs-gstriff.html
+++ b/docs/libs/html/gst-plugins-base-libs-gstriff.html
@@ -27,7 +27,7 @@
 <div class="refnamediv"><table width="100%"><tr>
 <td valign="top">
 <h2><span class="refentrytitle"><a name="gst-plugins-base-libs-gstriff.top_of_page"></a>gstriff</span></h2>
-<p>gstriff — Riff fileformat utillity functions.</p>
+<p>gstriff</p>
 </td>
 <td class="gallery_image" valign="top" align="right"></td>
 </tr></table></div>
@@ -169,8 +169,6 @@
 </div>
 <div class="refsect1">
 <a name="gst-plugins-base-libs-gstriff.description"></a><h2>Description</h2>
-<p>A collection of functions to handle riff base files, such as avi, wav and
-asf.</p>
 </div>
 <div class="refsect1">
 <a name="gst-plugins-base-libs-gstriff.functions_details"></a><h2>Functions</h2>
@@ -218,52 +216,6 @@
                             <em class="parameter"><code><a href="/usr/share/gtk-doc/html/gstreamer-1.0GstBuffer.html#GstBuffer-struct"><span class="type">GstBuffer</span></a> *strf_data</code></em>,
                             <em class="parameter"><code><a href="/usr/share/gtk-doc/html/gstreamer-1.0GstBuffer.html#GstBuffer-struct"><span class="type">GstBuffer</span></a> *strd_data</code></em>,
                             <em class="parameter"><code><span class="type">char</span> **codec_name</code></em>);</pre>
-<div class="refsect3">
-<a name="gst-riff-create-video-caps.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>codec_fcc</p></td>
-<td class="parameter_description"><p>fourCC codec for this codec.</p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-<tr>
-<td class="parameter_name"><p>strh</p></td>
-<td class="parameter_description"><p>pointer to the strh stream header structure.</p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-<tr>
-<td class="parameter_name"><p>strf</p></td>
-<td class="parameter_description"><p>pointer to the strf stream header structure, including any
-data that is within the range of strf.size, but excluding any
-additional data withint this chunk but outside strf.size.</p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-<tr>
-<td class="parameter_name"><p>strf_data</p></td>
-<td class="parameter_description"><p>a <a href="/usr/share/gtk-doc/html/gstreamer-1.0GstBuffer.html#GstBuffer-struct"><span class="type">GstBuffer</span></a> containing the additional data in the strf
-chunk outside reach of strf.size. Ususally a palette.</p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-<tr>
-<td class="parameter_name"><p>strd_data</p></td>
-<td class="parameter_description"><p>a <a href="/usr/share/gtk-doc/html/gstreamer-1.0GstBuffer.html#GstBuffer-struct"><span class="type">GstBuffer</span></a> containing the data in the strd stream header
-chunk. Usually codec initialization data.</p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-<tr>
-<td class="parameter_name"><p>codec_name</p></td>
-<td class="parameter_description"><p>if given, will be filled with a human-readable codec name.</p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-</tbody>
-</table></div>
-</div>
 </div>
 <hr>
 <div class="refsect2">
@@ -276,7 +228,6 @@
 <a name="gst-riff-init"></a><h3>gst_riff_init ()</h3>
 <pre class="programlisting"><span class="returnvalue">void</span>
 gst_riff_init (<em class="parameter"><code><span class="type">void</span></code></em>);</pre>
-<p>Initialize riff library.</p>
 </div>
 <hr>
 <div class="refsect2">
@@ -287,50 +238,6 @@
                       <em class="parameter"><code><a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#guint"><span class="type">guint</span></a> *offset</code></em>,
                       <em class="parameter"><code><a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#guint32"><span class="type">guint32</span></a> *fourcc</code></em>,
                       <em class="parameter"><code><a href="/usr/share/gtk-doc/html/gstreamer-1.0GstBuffer.html#GstBuffer-struct"><span class="type">GstBuffer</span></a> **chunk_data</code></em>);</pre>
-<p>Reads a single chunk.</p>
-<div class="refsect3">
-<a name="gst-riff-parse-chunk.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>element</p></td>
-<td class="parameter_description"><p>caller element (used for debugging).</p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-<tr>
-<td class="parameter_name"><p>buf</p></td>
-<td class="parameter_description"><p>input buffer.</p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-<tr>
-<td class="parameter_name"><p>offset</p></td>
-<td class="parameter_description"><p>offset in the buffer in the caller. Is incremented
-by the read size by this function.</p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-<tr>
-<td class="parameter_name"><p>fourcc</p></td>
-<td class="parameter_description"><p>fourcc (returned by this function0 of the chunk.</p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-<tr>
-<td class="parameter_name"><p>chunk_data</p></td>
-<td class="parameter_description"><p>buffer (returned by the function) containing the
-chunk data, which may be NULL if chunksize == 0</p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-</tbody>
-</table></div>
-</div>
-<div class="refsect3">
-<a name="gst-riff-parse-chunk.returns"></a><h4>Returns</h4>
-<p> FALSE on error, TRUE otherwise</p>
-</div>
 </div>
 <hr>
 <div class="refsect2">
@@ -339,46 +246,6 @@
 gst_riff_parse_file_header (<em class="parameter"><code><a href="/usr/share/gtk-doc/html/gstreamer-1.0GstElement.html#GstElement-struct"><span class="type">GstElement</span></a> *element</code></em>,
                             <em class="parameter"><code><a href="/usr/share/gtk-doc/html/gstreamer-1.0GstBuffer.html#GstBuffer-struct"><span class="type">GstBuffer</span></a> *buf</code></em>,
                             <em class="parameter"><code><a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#guint32"><span class="type">guint32</span></a> *doctype</code></em>);</pre>
-<p>Reads the first few bytes from the provided buffer, checks
-if this stream is a RIFF stream, and determines document type.
-This function takes ownership of <em class="parameter"><code>buf</code></em>
- so it should not be used anymore
-after calling this function.</p>
-<div class="refsect3">
-<a name="gst-riff-parse-file-header.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>element</p></td>
-<td class="parameter_description"><p>caller element (used for debugging/error).</p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-<tr>
-<td class="parameter_name"><p>buf</p></td>
-<td class="parameter_description"><p>input buffer from which the file header will be parsed,
-should be at least 12 bytes long.</p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-<tr>
-<td class="parameter_name"><p>doctype</p></td>
-<td class="parameter_description"><p>a fourcc (returned by this function) to indicate the
-type of document (according to the header).</p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-</tbody>
-</table></div>
-</div>
-<div class="refsect3">
-<a name="gst-riff-parse-file-header.returns"></a><h4>Returns</h4>
-<p> FALSE if this is not a RIFF stream (in which case the
-caller should error out; we already throw an error), or TRUE
-if it is.</p>
-</div>
 </div>
 <hr>
 <div class="refsect2">
@@ -387,36 +254,6 @@
 gst_riff_parse_info (<em class="parameter"><code><a href="/usr/share/gtk-doc/html/gstreamer-1.0GstElement.html#GstElement-struct"><span class="type">GstElement</span></a> *element</code></em>,
                      <em class="parameter"><code><a href="/usr/share/gtk-doc/html/gstreamer-1.0GstBuffer.html#GstBuffer-struct"><span class="type">GstBuffer</span></a> *buf</code></em>,
                      <em class="parameter"><code><a href="/usr/share/gtk-doc/html/gstreamer-1.0GstTagList.html#GstTagList-struct"><span class="type">GstTagList</span></a> **taglist</code></em>);</pre>
-<p>Parses stream metadata from input data.</p>
-<div class="refsect3">
-<a name="gst-riff-parse-info.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>element</p></td>
-<td class="parameter_description"><p>caller element (used for debugging/error).</p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-<tr>
-<td class="parameter_name"><p>buf</p></td>
-<td class="parameter_description"><p>input data to be used for parsing, stripped from header.</p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-<tr>
-<td class="parameter_name"><p>taglist</p></td>
-<td class="parameter_description"><p>a pointer to a taglist (returned by this function)
-containing information about this stream. May be
-NULL if no supported tags were found.</p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-</tbody>
-</table></div>
-</div>
 </div>
 <hr>
 <div class="refsect2">
@@ -426,50 +263,6 @@
                           <em class="parameter"><code><a href="/usr/share/gtk-doc/html/gstreamer-1.0GstBuffer.html#GstBuffer-struct"><span class="type">GstBuffer</span></a> *buf</code></em>,
                           <em class="parameter"><code><span class="type">gst_riff_strf_auds</span> **strf</code></em>,
                           <em class="parameter"><code><a href="/usr/share/gtk-doc/html/gstreamer-1.0GstBuffer.html#GstBuffer-struct"><span class="type">GstBuffer</span></a> **data</code></em>);</pre>
-<p>Parses an audio stream´s strf structure plus optionally some
-extradata from input data. This function takes ownership of <em class="parameter"><code>buf</code></em>
-.
-use.</p>
-<div class="refsect3">
-<a name="gst-riff-parse-strf-auds.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>element</p></td>
-<td class="parameter_description"><p>caller element (used for debugging/error).</p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-<tr>
-<td class="parameter_name"><p>buf</p></td>
-<td class="parameter_description"><p>input data to be used for parsing, stripped from header.</p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-<tr>
-<td class="parameter_name"><p>strf</p></td>
-<td class="parameter_description"><p>a pointer (returned by this function) to a filled-in
-strf/auds structure. Caller should free it.</p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-<tr>
-<td class="parameter_name"><p>data</p></td>
-<td class="parameter_description"><p>a pointer (returned by this function) to a buffer
-containing extradata for this particular stream (e.g.
-codec initialization data).</p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-</tbody>
-</table></div>
-</div>
-<div class="refsect3">
-<a name="gst-riff-parse-strf-auds.returns"></a><h4>Returns</h4>
-<p> TRUE if parsing succeeded, otherwise FALSE. The stream
-should be skipped on error, but it is not fatal.</p>
-</div>
 </div>
 <hr>
 <div class="refsect2">
@@ -479,49 +272,6 @@
                           <em class="parameter"><code><a href="/usr/share/gtk-doc/html/gstreamer-1.0GstBuffer.html#GstBuffer-struct"><span class="type">GstBuffer</span></a> *buf</code></em>,
                           <em class="parameter"><code><span class="type">gst_riff_strf_iavs</span> **strf</code></em>,
                           <em class="parameter"><code><a href="/usr/share/gtk-doc/html/gstreamer-1.0GstBuffer.html#GstBuffer-struct"><span class="type">GstBuffer</span></a> **data</code></em>);</pre>
-<p>Parses a interleaved (also known as "complex")  stream´s strf
-structure plus optionally some extradata from input data. This
-function takes ownership of <em class="parameter"><code>buf</code></em>
-.</p>
-<div class="refsect3">
-<a name="gst-riff-parse-strf-iavs.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>element</p></td>
-<td class="parameter_description"><p>caller element (used for debugging/error).</p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-<tr>
-<td class="parameter_name"><p>buf</p></td>
-<td class="parameter_description"><p>input data to be used for parsing, stripped from header.</p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-<tr>
-<td class="parameter_name"><p>strf</p></td>
-<td class="parameter_description"><p>a pointer (returned by this function) to a filled-in
-strf/iavs structure. Caller should free it.</p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-<tr>
-<td class="parameter_name"><p>data</p></td>
-<td class="parameter_description"><p>a pointer (returned by this function) to a buffer
-containing extradata for this particular stream (e.g.
-codec initialization data).</p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-</tbody>
-</table></div>
-</div>
-<div class="refsect3">
-<a name="gst-riff-parse-strf-iavs.returns"></a><h4>Returns</h4>
-<p> TRUE if parsing succeeded, otherwise FALSE.</p>
-</div>
 </div>
 <hr>
 <div class="refsect2">
@@ -531,49 +281,6 @@
                           <em class="parameter"><code><a href="/usr/share/gtk-doc/html/gstreamer-1.0GstBuffer.html#GstBuffer-struct"><span class="type">GstBuffer</span></a> *buf</code></em>,
                           <em class="parameter"><code><span class="type">gst_riff_strf_vids</span> **strf</code></em>,
                           <em class="parameter"><code><a href="/usr/share/gtk-doc/html/gstreamer-1.0GstBuffer.html#GstBuffer-struct"><span class="type">GstBuffer</span></a> **data</code></em>);</pre>
-<p>Parses a video stream´s strf structure plus optionally some
-extradata from input data. This function takes ownership of <em class="parameter"><code>buf</code></em>
-.</p>
-<div class="refsect3">
-<a name="gst-riff-parse-strf-vids.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>element</p></td>
-<td class="parameter_description"><p>caller element (used for debugging/error).</p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-<tr>
-<td class="parameter_name"><p>buf</p></td>
-<td class="parameter_description"><p>input data to be used for parsing, stripped from header.</p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-<tr>
-<td class="parameter_name"><p>strf</p></td>
-<td class="parameter_description"><p>a pointer (returned by this function) to a filled-in
-strf/vids structure. Caller should free it.</p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-<tr>
-<td class="parameter_name"><p>data</p></td>
-<td class="parameter_description"><p>a pointer (returned by this function) to a buffer
-containing extradata for this particular stream (e.g.
-palette, codec initialization data).</p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-</tbody>
-</table></div>
-</div>
-<div class="refsect3">
-<a name="gst-riff-parse-strf-vids.returns"></a><h4>Returns</h4>
-<p> TRUE if parsing succeeded, otherwise FALSE. The stream
-should be skipped on error, but it is not fatal.</p>
-</div>
 </div>
 <hr>
 <div class="refsect2">
@@ -582,41 +289,6 @@
 gst_riff_parse_strh (<em class="parameter"><code><a href="/usr/share/gtk-doc/html/gstreamer-1.0GstElement.html#GstElement-struct"><span class="type">GstElement</span></a> *element</code></em>,
                      <em class="parameter"><code><a href="/usr/share/gtk-doc/html/gstreamer-1.0GstBuffer.html#GstBuffer-struct"><span class="type">GstBuffer</span></a> *buf</code></em>,
                      <em class="parameter"><code><span class="type">gst_riff_strh</span> **strh</code></em>);</pre>
-<p>Parses a strh structure from input data. Takes ownership of <em class="parameter"><code>buf</code></em>
-.</p>
-<div class="refsect3">
-<a name="gst-riff-parse-strh.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>element</p></td>
-<td class="parameter_description"><p>caller element (used for debugging/error).</p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-<tr>
-<td class="parameter_name"><p>buf</p></td>
-<td class="parameter_description"><p>input data to be used for parsing, stripped from header.</p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-<tr>
-<td class="parameter_name"><p>strh</p></td>
-<td class="parameter_description"><p>a pointer (returned by this function) to a filled-in
-strh structure. Caller should free it.</p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-</tbody>
-</table></div>
-</div>
-<div class="refsect3">
-<a name="gst-riff-parse-strh.returns"></a><h4>Returns</h4>
-<p> TRUE if parsing succeeded, otherwise FALSE. The stream
-should be skipped on error, but it is not fatal.</p>
-</div>
 </div>
 <hr>
 <div class="refsect2">
@@ -627,49 +299,6 @@
                      <em class="parameter"><code><a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#guint64"><span class="type">guint64</span></a> *offset</code></em>,
                      <em class="parameter"><code><a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#guint32"><span class="type">guint32</span></a> *tag</code></em>,
                      <em class="parameter"><code><a href="/usr/share/gtk-doc/html/gstreamer-1.0GstBuffer.html#GstBuffer-struct"><span class="type">GstBuffer</span></a> **chunk_data</code></em>);</pre>
-<p>Reads a single chunk of data. 'JUNK' chunks are skipped
-automatically.</p>
-<div class="refsect3">
-<a name="gst-riff-read-chunk.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>element</p></td>
-<td class="parameter_description"><p>caller element (used for debugging).</p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-<tr>
-<td class="parameter_name"><p>pad</p></td>
-<td class="parameter_description"><p>pad to pull data from.</p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-<tr>
-<td class="parameter_name"><p>offset</p></td>
-<td class="parameter_description"><p>offset to pull from, incremented by this function.</p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-<tr>
-<td class="parameter_name"><p>tag</p></td>
-<td class="parameter_description"><p>fourcc of the chunk (returned by this function).</p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-<tr>
-<td class="parameter_name"><p>chunk_data</p></td>
-<td class="parameter_description"><p>buffer (returned by this function).</p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-</tbody>
-</table></div>
-</div>
-<div class="refsect3">
-<a name="gst-riff-read-chunk.returns"></a><h4>Returns</h4>
-<p> flow status.</p>
-</div>
 </div>
 </div>
 <div class="refsect1">
diff --git a/docs/libs/html/gst-plugins-base-libs-gstrtcpbuffer.html b/docs/libs/html/gst-plugins-base-libs-gstrtcpbuffer.html
index 194b1d7..c30305b 100644
--- a/docs/libs/html/gst-plugins-base-libs-gstrtcpbuffer.html
+++ b/docs/libs/html/gst-plugins-base-libs-gstrtcpbuffer.html
@@ -27,7 +27,7 @@
 <div class="refnamediv"><table width="100%"><tr>
 <td valign="top">
 <h2><span class="refentrytitle"><a name="gst-plugins-base-libs-gstrtcpbuffer.top_of_page"></a>gstrtcpbuffer</span></h2>
-<p>gstrtcpbuffer — Helper methods for dealing with RTCP buffers</p>
+<p>gstrtcpbuffer</p>
 </td>
 <td class="gallery_image" valign="top" align="right"></td>
 </tr></table></div>
@@ -559,20 +559,6 @@
 </div>
 <div class="refsect1">
 <a name="gst-plugins-base-libs-gstrtcpbuffer.description"></a><h2>Description</h2>
-<p>Note: The API in this module is not yet declared stable.</p>
-<div class="refsect2">
-<a name="id-1.2.9.7.6.3"></a><p>
-The GstRTPCBuffer helper functions makes it easy to parse and create regular 
-<a href="/usr/share/gtk-doc/html/gstreamer-1.0GstBuffer.html#GstBuffer-struct"><span class="type">GstBuffer</span></a> objects that contain compound RTCP packets. These buffers are typically
-of 'application/x-rtcp' <a href="/usr/share/gtk-doc/html/gstreamer-1.0GstCaps.html#GstCaps-struct"><span class="type">GstCaps</span></a>.
-</p>
-<p>
-An RTCP buffer consists of 1 or more <a class="link" href="gst-plugins-base-libs-gstrtcpbuffer.html#GstRTCPPacket" title="struct GstRTCPPacket"><span class="type">GstRTCPPacket</span></a> structures that you can
-retrieve with <a class="link" href="gst-plugins-base-libs-gstrtcpbuffer.html#gst-rtcp-buffer-get-first-packet" title="gst_rtcp_buffer_get_first_packet ()"><code class="function">gst_rtcp_buffer_get_first_packet()</code></a>. <a class="link" href="gst-plugins-base-libs-gstrtcpbuffer.html#GstRTCPPacket" title="struct GstRTCPPacket"><span class="type">GstRTCPPacket</span></a> acts as a pointer
-into the RTCP buffer; you can move to the next packet with
-<a class="link" href="gst-plugins-base-libs-gstrtcpbuffer.html#gst-rtcp-packet-move-to-next" title="gst_rtcp_packet_move_to_next ()"><code class="function">gst_rtcp_packet_move_to_next()</code></a>.
-</p>
-</div>
 </div>
 <div class="refsect1">
 <a name="gst-plugins-base-libs-gstrtcpbuffer.functions_details"></a><h2>Functions</h2>
@@ -581,41 +567,6 @@
 <pre class="programlisting"><a href="/usr/share/gtk-doc/html/gstreamer-1.0GstBuffer.html#GstBuffer-struct"><span class="returnvalue">GstBuffer</span></a> *
 gst_rtcp_buffer_new_take_data (<em class="parameter"><code><a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> data</code></em>,
                                <em class="parameter"><code><a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#guint"><span class="type">guint</span></a> len</code></em>);</pre>
-<p>Create a new buffer and set the data and size of the buffer to <em class="parameter"><code>data</code></em>
- and <em class="parameter"><code>len</code></em>
-
-respectively. <em class="parameter"><code>data</code></em>
- will be freed when the buffer is unreffed, so this
-function transfers ownership of <em class="parameter"><code>data</code></em>
- to the new buffer.</p>
-<div class="refsect3">
-<a name="gst-rtcp-buffer-new-take-data.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>data</p></td>
-<td class="parameter_description"><p> data for the new buffer. </p></td>
-<td class="parameter_annotations"><span class="annotation">[<acronym title="Parameter points to an array of items."><span class="acronym">array</span></acronym> length=len][<acronym title="Generics and defining elements of containers and arrays."><span class="acronym">element-type</span></acronym> guint8]</span></td>
-</tr>
-<tr>
-<td class="parameter_name"><p>len</p></td>
-<td class="parameter_description"><p>the length of data</p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-</tbody>
-</table></div>
-</div>
-<div class="refsect3">
-<a name="gst-rtcp-buffer-new-take-data.returns"></a><h4>Returns</h4>
-<p> A newly allocated buffer with <em class="parameter"><code>data</code></em>
-and of size <em class="parameter"><code>len</code></em>
-.</p>
-</div>
 </div>
 <hr>
 <div class="refsect2">
@@ -623,40 +574,6 @@
 <pre class="programlisting"><a href="/usr/share/gtk-doc/html/gstreamer-1.0GstBuffer.html#GstBuffer-struct"><span class="returnvalue">GstBuffer</span></a> *
 gst_rtcp_buffer_new_copy_data (<em class="parameter"><code><a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> data</code></em>,
                                <em class="parameter"><code><a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#guint"><span class="type">guint</span></a> len</code></em>);</pre>
-<p>Create a new buffer and set the data to a copy of <em class="parameter"><code>len</code></em>
-
-bytes of <em class="parameter"><code>data</code></em>
- and the size to <em class="parameter"><code>len</code></em>
-. The data will be freed when the buffer
-is freed.</p>
-<div class="refsect3">
-<a name="gst-rtcp-buffer-new-copy-data.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>data</p></td>
-<td class="parameter_description"><p> data for the new buffer. </p></td>
-<td class="parameter_annotations"><span class="annotation">[<acronym title="Parameter points to an array of items."><span class="acronym">array</span></acronym> length=len][<acronym title="Generics and defining elements of containers and arrays."><span class="acronym">element-type</span></acronym> guint8]</span></td>
-</tr>
-<tr>
-<td class="parameter_name"><p>len</p></td>
-<td class="parameter_description"><p>the length of data</p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-</tbody>
-</table></div>
-</div>
-<div class="refsect3">
-<a name="gst-rtcp-buffer-new-copy-data.returns"></a><h4>Returns</h4>
-<p> A newly allocated buffer with a copy of <em class="parameter"><code>data</code></em>
-and of size <em class="parameter"><code>len</code></em>
-.</p>
-</div>
 </div>
 <hr>
 <div class="refsect2">
@@ -664,72 +581,12 @@
 <pre class="programlisting"><a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
 gst_rtcp_buffer_validate_data_reduced (<em class="parameter"><code><a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#guint8"><span class="type">guint8</span></a> *data</code></em>,
                                        <em class="parameter"><code><a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#guint"><span class="type">guint</span></a> len</code></em>);</pre>
-<p>Check if the <em class="parameter"><code>data</code></em>
- and <em class="parameter"><code>size</code></em>
- point to the data of a valid RTCP packet.
-Use this function to validate a packet before using the other functions in
-this module.</p>
-<p>This function is updated to support reduced size rtcp packets according to
-RFC 5506 and will validate full compound RTCP packets as well as reduced
-size RTCP packets.</p>
-<div class="refsect3">
-<a name="gst-rtcp-buffer-validate-data-reduced.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>data</p></td>
-<td class="parameter_description"><p> the data to validate. </p></td>
-<td class="parameter_annotations"><span class="annotation">[<acronym title="Parameter points to an array of items."><span class="acronym">array</span></acronym> length=len]</span></td>
-</tr>
-<tr>
-<td class="parameter_name"><p>len</p></td>
-<td class="parameter_description"><p>the length of <em class="parameter"><code>data</code></em>
-to validate</p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-</tbody>
-</table></div>
-</div>
-<div class="refsect3">
-<a name="gst-rtcp-buffer-validate-data-reduced.returns"></a><h4>Returns</h4>
-<p> TRUE if the data points to a valid RTCP packet.</p>
-</div>
-<p class="since">Since: 1.6</p>
 </div>
 <hr>
 <div class="refsect2">
 <a name="gst-rtcp-buffer-validate-reduced"></a><h3>gst_rtcp_buffer_validate_reduced ()</h3>
 <pre class="programlisting"><a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
 gst_rtcp_buffer_validate_reduced (<em class="parameter"><code><a href="/usr/share/gtk-doc/html/gstreamer-1.0GstBuffer.html#GstBuffer-struct"><span class="type">GstBuffer</span></a> *buffer</code></em>);</pre>
-<p>Check if the data pointed to by <em class="parameter"><code>buffer</code></em>
- is a valid RTCP packet using
-<a class="link" href="gst-plugins-base-libs-gstrtcpbuffer.html#gst-rtcp-buffer-validate-reduced" title="gst_rtcp_buffer_validate_reduced ()"><code class="function">gst_rtcp_buffer_validate_reduced()</code></a>.</p>
-<div class="refsect3">
-<a name="gst-rtcp-buffer-validate-reduced.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>buffer</p></td>
-<td class="parameter_description"><p>the buffer to validate</p></td>
-<td class="parameter_annotations"> </td>
-</tr></tbody>
-</table></div>
-</div>
-<div class="refsect3">
-<a name="gst-rtcp-buffer-validate-reduced.returns"></a><h4>Returns</h4>
-<p> TRUE if <em class="parameter"><code>buffer</code></em>
-is a valid RTCP packet.</p>
-</div>
-<p class="since">Since: 1.6</p>
 </div>
 <hr>
 <div class="refsect2">
@@ -737,96 +594,18 @@
 <pre class="programlisting"><a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
 gst_rtcp_buffer_validate_data (<em class="parameter"><code><a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#guint8"><span class="type">guint8</span></a> *data</code></em>,
                                <em class="parameter"><code><a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#guint"><span class="type">guint</span></a> len</code></em>);</pre>
-<p>Check if the <em class="parameter"><code>data</code></em>
- and <em class="parameter"><code>size</code></em>
- point to the data of a valid compound,
-non-reduced size RTCP packet.
-Use this function to validate a packet before using the other functions in
-this module.</p>
-<div class="refsect3">
-<a name="gst-rtcp-buffer-validate-data.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>data</p></td>
-<td class="parameter_description"><p> the data to validate. </p></td>
-<td class="parameter_annotations"><span class="annotation">[<acronym title="Parameter points to an array of items."><span class="acronym">array</span></acronym> length=len]</span></td>
-</tr>
-<tr>
-<td class="parameter_name"><p>len</p></td>
-<td class="parameter_description"><p>the length of <em class="parameter"><code>data</code></em>
-to validate</p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-</tbody>
-</table></div>
-</div>
-<div class="refsect3">
-<a name="gst-rtcp-buffer-validate-data.returns"></a><h4>Returns</h4>
-<p> TRUE if the data points to a valid RTCP packet.</p>
-</div>
 </div>
 <hr>
 <div class="refsect2">
 <a name="gst-rtcp-buffer-validate"></a><h3>gst_rtcp_buffer_validate ()</h3>
 <pre class="programlisting"><a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
 gst_rtcp_buffer_validate (<em class="parameter"><code><a href="/usr/share/gtk-doc/html/gstreamer-1.0GstBuffer.html#GstBuffer-struct"><span class="type">GstBuffer</span></a> *buffer</code></em>);</pre>
-<p>Check if the data pointed to by <em class="parameter"><code>buffer</code></em>
- is a valid RTCP packet using
-<a class="link" href="gst-plugins-base-libs-gstrtcpbuffer.html#gst-rtcp-buffer-validate-data" title="gst_rtcp_buffer_validate_data ()"><code class="function">gst_rtcp_buffer_validate_data()</code></a>.</p>
-<div class="refsect3">
-<a name="gst-rtcp-buffer-validate.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>buffer</p></td>
-<td class="parameter_description"><p>the buffer to validate</p></td>
-<td class="parameter_annotations"> </td>
-</tr></tbody>
-</table></div>
-</div>
-<div class="refsect3">
-<a name="gst-rtcp-buffer-validate.returns"></a><h4>Returns</h4>
-<p> TRUE if <em class="parameter"><code>buffer</code></em>
-is a valid RTCP packet.</p>
-</div>
 </div>
 <hr>
 <div class="refsect2">
 <a name="gst-rtcp-buffer-new"></a><h3>gst_rtcp_buffer_new ()</h3>
 <pre class="programlisting"><a href="/usr/share/gtk-doc/html/gstreamer-1.0GstBuffer.html#GstBuffer-struct"><span class="returnvalue">GstBuffer</span></a> *
 gst_rtcp_buffer_new (<em class="parameter"><code><a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#guint"><span class="type">guint</span></a> mtu</code></em>);</pre>
-<p>Create a new buffer for constructing RTCP packets. The packet will have a
-maximum size of <em class="parameter"><code>mtu</code></em>
-.</p>
-<div class="refsect3">
-<a name="gst-rtcp-buffer-new.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>mtu</p></td>
-<td class="parameter_description"><p>the maximum mtu size.</p></td>
-<td class="parameter_annotations"> </td>
-</tr></tbody>
-</table></div>
-</div>
-<div class="refsect3">
-<a name="gst-rtcp-buffer-new.returns"></a><h4>Returns</h4>
-<p> A newly allocated buffer.</p>
-</div>
 </div>
 <hr>
 <div class="refsect2">
@@ -835,93 +614,18 @@
 gst_rtcp_buffer_map (<em class="parameter"><code><a href="/usr/share/gtk-doc/html/gstreamer-1.0GstBuffer.html#GstBuffer-struct"><span class="type">GstBuffer</span></a> *buffer</code></em>,
                      <em class="parameter"><code><a href="/usr/share/gtk-doc/html/gstreamer-1.0GstMemory.html#GstMapFlags"><span class="type">GstMapFlags</span></a> flags</code></em>,
                      <em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstrtcpbuffer.html#GstRTCPBuffer" title="struct GstRTCPBuffer"><span class="type">GstRTCPBuffer</span></a> *rtcp</code></em>);</pre>
-<p>Open <em class="parameter"><code>buffer</code></em>
- for reading or writing, depending on <em class="parameter"><code>flags</code></em>
-. The resulting RTCP
-buffer state is stored in <em class="parameter"><code>rtcp</code></em>
-.</p>
-<div class="refsect3">
-<a name="gst-rtcp-buffer-map.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>buffer</p></td>
-<td class="parameter_description"><p>a buffer with an RTCP packet</p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-<tr>
-<td class="parameter_name"><p>flags</p></td>
-<td class="parameter_description"><p>flags for the mapping</p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-<tr>
-<td class="parameter_name"><p>rtcp</p></td>
-<td class="parameter_description"><p>resulting <a class="link" href="gst-plugins-base-libs-gstrtcpbuffer.html#GstRTCPBuffer" title="struct GstRTCPBuffer"><span class="type">GstRTCPBuffer</span></a></p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-</tbody>
-</table></div>
-</div>
 </div>
 <hr>
 <div class="refsect2">
 <a name="gst-rtcp-buffer-unmap"></a><h3>gst_rtcp_buffer_unmap ()</h3>
 <pre class="programlisting"><a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
 gst_rtcp_buffer_unmap (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstrtcpbuffer.html#GstRTCPBuffer" title="struct GstRTCPBuffer"><span class="type">GstRTCPBuffer</span></a> *rtcp</code></em>);</pre>
-<p>Finish <em class="parameter"><code>rtcp</code></em>
- after being constructed. This function is usually called
-after <a class="link" href="gst-plugins-base-libs-gstrtcpbuffer.html#gst-rtcp-buffer-map" title="gst_rtcp_buffer_map ()"><code class="function">gst_rtcp_buffer_map()</code></a> and after adding the RTCP items to the new buffer.</p>
-<p>The function adjusts the size of <em class="parameter"><code>rtcp</code></em>
- with the total length of all the
-added packets.</p>
-<div class="refsect3">
-<a name="gst-rtcp-buffer-unmap.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>rtcp</p></td>
-<td class="parameter_description"><p>a buffer with an RTCP packet</p></td>
-<td class="parameter_annotations"> </td>
-</tr></tbody>
-</table></div>
-</div>
 </div>
 <hr>
 <div class="refsect2">
 <a name="gst-rtcp-buffer-get-packet-count"></a><h3>gst_rtcp_buffer_get_packet_count ()</h3>
 <pre class="programlisting"><a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#guint"><span class="returnvalue">guint</span></a>
 gst_rtcp_buffer_get_packet_count (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstrtcpbuffer.html#GstRTCPBuffer" title="struct GstRTCPBuffer"><span class="type">GstRTCPBuffer</span></a> *rtcp</code></em>);</pre>
-<p>Get the number of RTCP packets in <em class="parameter"><code>rtcp</code></em>
-.</p>
-<div class="refsect3">
-<a name="gst-rtcp-buffer-get-packet-count.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>rtcp</p></td>
-<td class="parameter_description"><p>a valid RTCP buffer</p></td>
-<td class="parameter_annotations"> </td>
-</tr></tbody>
-</table></div>
-</div>
-<div class="refsect3">
-<a name="gst-rtcp-buffer-get-packet-count.returns"></a><h4>Returns</h4>
-<p> the number of RTCP packets in <em class="parameter"><code>rtcp</code></em>
-.</p>
-</div>
 </div>
 <hr>
 <div class="refsect2">
@@ -929,67 +633,12 @@
 <pre class="programlisting"><a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
 gst_rtcp_buffer_get_first_packet (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstrtcpbuffer.html#GstRTCPBuffer" title="struct GstRTCPBuffer"><span class="type">GstRTCPBuffer</span></a> *rtcp</code></em>,
                                   <em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstrtcpbuffer.html#GstRTCPPacket" title="struct GstRTCPPacket"><span class="type">GstRTCPPacket</span></a> *packet</code></em>);</pre>
-<p>Initialize a new <a class="link" href="gst-plugins-base-libs-gstrtcpbuffer.html#GstRTCPPacket" title="struct GstRTCPPacket"><span class="type">GstRTCPPacket</span></a> pointer that points to the first packet in
-<em class="parameter"><code>rtcp</code></em>
-.</p>
-<div class="refsect3">
-<a name="gst-rtcp-buffer-get-first-packet.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>rtcp</p></td>
-<td class="parameter_description"><p>a valid RTCP buffer</p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-<tr>
-<td class="parameter_name"><p>packet</p></td>
-<td class="parameter_description"><p>a <a class="link" href="gst-plugins-base-libs-gstrtcpbuffer.html#GstRTCPPacket" title="struct GstRTCPPacket"><span class="type">GstRTCPPacket</span></a></p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-</tbody>
-</table></div>
-</div>
-<div class="refsect3">
-<a name="gst-rtcp-buffer-get-first-packet.returns"></a><h4>Returns</h4>
-<p> TRUE if the packet existed in <em class="parameter"><code>rtcp</code></em>
-.</p>
-</div>
 </div>
 <hr>
 <div class="refsect2">
 <a name="gst-rtcp-packet-move-to-next"></a><h3>gst_rtcp_packet_move_to_next ()</h3>
 <pre class="programlisting"><a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
 gst_rtcp_packet_move_to_next (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstrtcpbuffer.html#GstRTCPPacket" title="struct GstRTCPPacket"><span class="type">GstRTCPPacket</span></a> *packet</code></em>);</pre>
-<p>Move the packet pointer <em class="parameter"><code>packet</code></em>
- to the next packet in the payload.
-Use <a class="link" href="gst-plugins-base-libs-gstrtcpbuffer.html#gst-rtcp-buffer-get-first-packet" title="gst_rtcp_buffer_get_first_packet ()"><code class="function">gst_rtcp_buffer_get_first_packet()</code></a> to initialize <em class="parameter"><code>packet</code></em>
-.</p>
-<div class="refsect3">
-<a name="gst-rtcp-packet-move-to-next.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>packet</p></td>
-<td class="parameter_description"><p>a <a class="link" href="gst-plugins-base-libs-gstrtcpbuffer.html#GstRTCPPacket" title="struct GstRTCPPacket"><span class="type">GstRTCPPacket</span></a></p></td>
-<td class="parameter_annotations"> </td>
-</tr></tbody>
-</table></div>
-</div>
-<div class="refsect3">
-<a name="gst-rtcp-packet-move-to-next.returns"></a><h4>Returns</h4>
-<p> TRUE if <em class="parameter"><code>packet</code></em>
-is pointing to a valid packet after calling this
-function.</p>
-</div>
 </div>
 <hr>
 <div class="refsect2">
@@ -998,187 +647,36 @@
 gst_rtcp_buffer_add_packet (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstrtcpbuffer.html#GstRTCPBuffer" title="struct GstRTCPBuffer"><span class="type">GstRTCPBuffer</span></a> *rtcp</code></em>,
                             <em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstrtcpbuffer.html#GstRTCPType" title="enum GstRTCPType"><span class="type">GstRTCPType</span></a> type</code></em>,
                             <em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstrtcpbuffer.html#GstRTCPPacket" title="struct GstRTCPPacket"><span class="type">GstRTCPPacket</span></a> *packet</code></em>);</pre>
-<p>Add a new packet of <em class="parameter"><code>type</code></em>
- to <em class="parameter"><code>rtcp</code></em>
-. <em class="parameter"><code>packet</code></em>
- will point to the newly created 
-packet.</p>
-<div class="refsect3">
-<a name="gst-rtcp-buffer-add-packet.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>rtcp</p></td>
-<td class="parameter_description"><p>a valid RTCP buffer</p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-<tr>
-<td class="parameter_name"><p>type</p></td>
-<td class="parameter_description"><p>the <a class="link" href="gst-plugins-base-libs-gstrtcpbuffer.html#GstRTCPType" title="enum GstRTCPType"><span class="type">GstRTCPType</span></a> of the new packet</p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-<tr>
-<td class="parameter_name"><p>packet</p></td>
-<td class="parameter_description"><p>pointer to new packet</p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-</tbody>
-</table></div>
-</div>
-<div class="refsect3">
-<a name="gst-rtcp-buffer-add-packet.returns"></a><h4>Returns</h4>
-<p> <a href="/usr/share/gtk-doc/html/glibglib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a> if the packet could be created. This function returns <a href="/usr/share/gtk-doc/html/glibglib-Standard-Macros.html#FALSE:CAPS"><code class="literal">FALSE</code></a>
-if the max mtu is exceeded for the buffer.</p>
-</div>
 </div>
 <hr>
 <div class="refsect2">
 <a name="gst-rtcp-packet-remove"></a><h3>gst_rtcp_packet_remove ()</h3>
 <pre class="programlisting"><a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
 gst_rtcp_packet_remove (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstrtcpbuffer.html#GstRTCPPacket" title="struct GstRTCPPacket"><span class="type">GstRTCPPacket</span></a> *packet</code></em>);</pre>
-<p>Removes the packet pointed to by <em class="parameter"><code>packet</code></em>
- and moves pointer to the next one</p>
-<div class="refsect3">
-<a name="gst-rtcp-packet-remove.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>packet</p></td>
-<td class="parameter_description"><p>a <a class="link" href="gst-plugins-base-libs-gstrtcpbuffer.html#GstRTCPPacket" title="struct GstRTCPPacket"><span class="type">GstRTCPPacket</span></a></p></td>
-<td class="parameter_annotations"> </td>
-</tr></tbody>
-</table></div>
-</div>
-<div class="refsect3">
-<a name="gst-rtcp-packet-remove.returns"></a><h4>Returns</h4>
-<p> TRUE if <em class="parameter"><code>packet</code></em>
-is pointing to a valid packet after calling this
-function.</p>
-</div>
 </div>
 <hr>
 <div class="refsect2">
 <a name="gst-rtcp-packet-get-padding"></a><h3>gst_rtcp_packet_get_padding ()</h3>
 <pre class="programlisting"><a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
 gst_rtcp_packet_get_padding (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstrtcpbuffer.html#GstRTCPPacket" title="struct GstRTCPPacket"><span class="type">GstRTCPPacket</span></a> *packet</code></em>);</pre>
-<p>Get the packet padding of the packet pointed to by <em class="parameter"><code>packet</code></em>
-.</p>
-<div class="refsect3">
-<a name="gst-rtcp-packet-get-padding.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>packet</p></td>
-<td class="parameter_description"><p>a valid <a class="link" href="gst-plugins-base-libs-gstrtcpbuffer.html#GstRTCPPacket" title="struct GstRTCPPacket"><span class="type">GstRTCPPacket</span></a></p></td>
-<td class="parameter_annotations"> </td>
-</tr></tbody>
-</table></div>
-</div>
-<div class="refsect3">
-<a name="gst-rtcp-packet-get-padding.returns"></a><h4>Returns</h4>
-<p> If the packet has the padding bit set.</p>
-</div>
 </div>
 <hr>
 <div class="refsect2">
 <a name="gst-rtcp-packet-get-count"></a><h3>gst_rtcp_packet_get_count ()</h3>
 <pre class="programlisting"><a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#guint8"><span class="returnvalue">guint8</span></a>
 gst_rtcp_packet_get_count (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstrtcpbuffer.html#GstRTCPPacket" title="struct GstRTCPPacket"><span class="type">GstRTCPPacket</span></a> *packet</code></em>);</pre>
-<p>Get the count field in <em class="parameter"><code>packet</code></em>
-.</p>
-<div class="refsect3">
-<a name="gst-rtcp-packet-get-count.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>packet</p></td>
-<td class="parameter_description"><p>a valid <a class="link" href="gst-plugins-base-libs-gstrtcpbuffer.html#GstRTCPPacket" title="struct GstRTCPPacket"><span class="type">GstRTCPPacket</span></a></p></td>
-<td class="parameter_annotations"> </td>
-</tr></tbody>
-</table></div>
-</div>
-<div class="refsect3">
-<a name="gst-rtcp-packet-get-count.returns"></a><h4>Returns</h4>
-<p> The count field in <em class="parameter"><code>packet</code></em>
-or -1 if <em class="parameter"><code>packet</code></em>
-does not point to a
-valid packet.</p>
-</div>
 </div>
 <hr>
 <div class="refsect2">
 <a name="gst-rtcp-packet-get-type"></a><h3>gst_rtcp_packet_get_type ()</h3>
 <pre class="programlisting"><a class="link" href="gst-plugins-base-libs-gstrtcpbuffer.html#GstRTCPType" title="enum GstRTCPType"><span class="returnvalue">GstRTCPType</span></a>
 gst_rtcp_packet_get_type (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstrtcpbuffer.html#GstRTCPPacket" title="struct GstRTCPPacket"><span class="type">GstRTCPPacket</span></a> *packet</code></em>);</pre>
-<p>Get the packet type of the packet pointed to by <em class="parameter"><code>packet</code></em>
-.</p>
-<div class="refsect3">
-<a name="gst-rtcp-packet-get-type.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>packet</p></td>
-<td class="parameter_description"><p>a valid <a class="link" href="gst-plugins-base-libs-gstrtcpbuffer.html#GstRTCPPacket" title="struct GstRTCPPacket"><span class="type">GstRTCPPacket</span></a></p></td>
-<td class="parameter_annotations"> </td>
-</tr></tbody>
-</table></div>
-</div>
-<div class="refsect3">
-<a name="gst-rtcp-packet-get-type.returns"></a><h4>Returns</h4>
-<p> The packet type or GST_RTCP_TYPE_INVALID when <em class="parameter"><code>packet</code></em>
-is not
-pointing to a valid packet.</p>
-</div>
 </div>
 <hr>
 <div class="refsect2">
 <a name="gst-rtcp-packet-get-length"></a><h3>gst_rtcp_packet_get_length ()</h3>
 <pre class="programlisting"><a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#guint16"><span class="returnvalue">guint16</span></a>
 gst_rtcp_packet_get_length (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstrtcpbuffer.html#GstRTCPPacket" title="struct GstRTCPPacket"><span class="type">GstRTCPPacket</span></a> *packet</code></em>);</pre>
-<p>Get the length field of <em class="parameter"><code>packet</code></em>
-. This is the length of the packet in 
-32-bit words minus one.</p>
-<div class="refsect3">
-<a name="gst-rtcp-packet-get-length.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>packet</p></td>
-<td class="parameter_description"><p>a valid <a class="link" href="gst-plugins-base-libs-gstrtcpbuffer.html#GstRTCPPacket" title="struct GstRTCPPacket"><span class="type">GstRTCPPacket</span></a></p></td>
-<td class="parameter_annotations"> </td>
-</tr></tbody>
-</table></div>
-</div>
-<div class="refsect3">
-<a name="gst-rtcp-packet-get-length.returns"></a><h4>Returns</h4>
-<p> The length field of <em class="parameter"><code>packet</code></em>
-.</p>
-</div>
 </div>
 <hr>
 <div class="refsect2">
@@ -1190,49 +688,6 @@
                                     <em class="parameter"><code><a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#guint32"><span class="type">guint32</span></a> *rtptime</code></em>,
                                     <em class="parameter"><code><a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#guint32"><span class="type">guint32</span></a> *packet_count</code></em>,
                                     <em class="parameter"><code><a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#guint32"><span class="type">guint32</span></a> *octet_count</code></em>);</pre>
-<p>Parse the SR sender info and store the values.</p>
-<div class="refsect3">
-<a name="gst-rtcp-packet-sr-get-sender-info.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>packet</p></td>
-<td class="parameter_description"><p>a valid SR <a class="link" href="gst-plugins-base-libs-gstrtcpbuffer.html#GstRTCPPacket" title="struct GstRTCPPacket"><span class="type">GstRTCPPacket</span></a></p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-<tr>
-<td class="parameter_name"><p>ssrc</p></td>
-<td class="parameter_description"><p>result SSRC</p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-<tr>
-<td class="parameter_name"><p>ntptime</p></td>
-<td class="parameter_description"><p>result NTP time</p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-<tr>
-<td class="parameter_name"><p>rtptime</p></td>
-<td class="parameter_description"><p>result RTP time</p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-<tr>
-<td class="parameter_name"><p>packet_count</p></td>
-<td class="parameter_description"><p>result packet count</p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-<tr>
-<td class="parameter_name"><p>octet_count</p></td>
-<td class="parameter_description"><p>result octet count</p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-</tbody>
-</table></div>
-</div>
 </div>
 <hr>
 <div class="refsect2">
@@ -1244,77 +699,12 @@
                                     <em class="parameter"><code><a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#guint32"><span class="type">guint32</span></a> rtptime</code></em>,
                                     <em class="parameter"><code><a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#guint32"><span class="type">guint32</span></a> packet_count</code></em>,
                                     <em class="parameter"><code><a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#guint32"><span class="type">guint32</span></a> octet_count</code></em>);</pre>
-<p>Set the given values in the SR packet <em class="parameter"><code>packet</code></em>
-.</p>
-<div class="refsect3">
-<a name="gst-rtcp-packet-sr-set-sender-info.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>packet</p></td>
-<td class="parameter_description"><p>a valid SR <a class="link" href="gst-plugins-base-libs-gstrtcpbuffer.html#GstRTCPPacket" title="struct GstRTCPPacket"><span class="type">GstRTCPPacket</span></a></p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-<tr>
-<td class="parameter_name"><p>ssrc</p></td>
-<td class="parameter_description"><p>the SSRC </p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-<tr>
-<td class="parameter_name"><p>ntptime</p></td>
-<td class="parameter_description"><p>the NTP time</p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-<tr>
-<td class="parameter_name"><p>rtptime</p></td>
-<td class="parameter_description"><p>the RTP time</p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-<tr>
-<td class="parameter_name"><p>packet_count</p></td>
-<td class="parameter_description"><p>the packet count</p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-<tr>
-<td class="parameter_name"><p>octet_count</p></td>
-<td class="parameter_description"><p>the octet count</p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-</tbody>
-</table></div>
-</div>
 </div>
 <hr>
 <div class="refsect2">
 <a name="gst-rtcp-packet-rr-get-ssrc"></a><h3>gst_rtcp_packet_rr_get_ssrc ()</h3>
 <pre class="programlisting"><a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#guint32"><span class="returnvalue">guint32</span></a>
 gst_rtcp_packet_rr_get_ssrc (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstrtcpbuffer.html#GstRTCPPacket" title="struct GstRTCPPacket"><span class="type">GstRTCPPacket</span></a> *packet</code></em>);</pre>
-<p>Get the ssrc field of the RR <em class="parameter"><code>packet</code></em>
-.</p>
-<div class="refsect3">
-<a name="gst-rtcp-packet-rr-get-ssrc.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>packet</p></td>
-<td class="parameter_description"><p>a valid RR <a class="link" href="gst-plugins-base-libs-gstrtcpbuffer.html#GstRTCPPacket" title="struct GstRTCPPacket"><span class="type">GstRTCPPacket</span></a></p></td>
-<td class="parameter_annotations"> </td>
-</tr></tbody>
-</table></div>
-</div>
-<div class="refsect3">
-<a name="gst-rtcp-packet-rr-get-ssrc.returns"></a><h4>Returns</h4>
-<p> the ssrc.</p>
-</div>
 </div>
 <hr>
 <div class="refsect2">
@@ -1322,58 +712,12 @@
 <pre class="programlisting"><span class="returnvalue">void</span>
 gst_rtcp_packet_rr_set_ssrc (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstrtcpbuffer.html#GstRTCPPacket" title="struct GstRTCPPacket"><span class="type">GstRTCPPacket</span></a> *packet</code></em>,
                              <em class="parameter"><code><a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#guint32"><span class="type">guint32</span></a> ssrc</code></em>);</pre>
-<p>Set the ssrc field of the RR <em class="parameter"><code>packet</code></em>
-.</p>
-<div class="refsect3">
-<a name="gst-rtcp-packet-rr-set-ssrc.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>packet</p></td>
-<td class="parameter_description"><p>a valid RR <a class="link" href="gst-plugins-base-libs-gstrtcpbuffer.html#GstRTCPPacket" title="struct GstRTCPPacket"><span class="type">GstRTCPPacket</span></a></p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-<tr>
-<td class="parameter_name"><p>ssrc</p></td>
-<td class="parameter_description"><p>the SSRC to set</p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-</tbody>
-</table></div>
-</div>
 </div>
 <hr>
 <div class="refsect2">
 <a name="gst-rtcp-packet-get-rb-count"></a><h3>gst_rtcp_packet_get_rb_count ()</h3>
 <pre class="programlisting"><a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#guint"><span class="returnvalue">guint</span></a>
 gst_rtcp_packet_get_rb_count (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstrtcpbuffer.html#GstRTCPPacket" title="struct GstRTCPPacket"><span class="type">GstRTCPPacket</span></a> *packet</code></em>);</pre>
-<p>Get the number of report blocks in <em class="parameter"><code>packet</code></em>
-.</p>
-<div class="refsect3">
-<a name="gst-rtcp-packet-get-rb-count.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>packet</p></td>
-<td class="parameter_description"><p>a valid SR or RR <a class="link" href="gst-plugins-base-libs-gstrtcpbuffer.html#GstRTCPPacket" title="struct GstRTCPPacket"><span class="type">GstRTCPPacket</span></a></p></td>
-<td class="parameter_annotations"> </td>
-</tr></tbody>
-</table></div>
-</div>
-<div class="refsect3">
-<a name="gst-rtcp-packet-get-rb-count.returns"></a><h4>Returns</h4>
-<p> The number of report blocks in <em class="parameter"><code>packet</code></em>
-.</p>
-</div>
 </div>
 <hr>
 <div class="refsect2">
@@ -1388,68 +732,6 @@
                         <em class="parameter"><code><a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#guint32"><span class="type">guint32</span></a> *jitter</code></em>,
                         <em class="parameter"><code><a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#guint32"><span class="type">guint32</span></a> *lsr</code></em>,
                         <em class="parameter"><code><a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#guint32"><span class="type">guint32</span></a> *dlsr</code></em>);</pre>
-<p>Parse the values of the <em class="parameter"><code>nth</code></em>
- report block in <em class="parameter"><code>packet</code></em>
- and store the result in
-the values.</p>
-<div class="refsect3">
-<a name="gst-rtcp-packet-get-rb.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>packet</p></td>
-<td class="parameter_description"><p>a valid SR or RR <a class="link" href="gst-plugins-base-libs-gstrtcpbuffer.html#GstRTCPPacket" title="struct GstRTCPPacket"><span class="type">GstRTCPPacket</span></a></p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-<tr>
-<td class="parameter_name"><p>nth</p></td>
-<td class="parameter_description"><p>the nth report block in <em class="parameter"><code>packet</code></em>
-</p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-<tr>
-<td class="parameter_name"><p>ssrc</p></td>
-<td class="parameter_description"><p>result for data source being reported</p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-<tr>
-<td class="parameter_name"><p>fractionlost</p></td>
-<td class="parameter_description"><p>result for fraction lost since last SR/RR</p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-<tr>
-<td class="parameter_name"><p>packetslost</p></td>
-<td class="parameter_description"><p>result for the cumululative number of packets lost</p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-<tr>
-<td class="parameter_name"><p>exthighestseq</p></td>
-<td class="parameter_description"><p>result for the extended last sequence number received</p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-<tr>
-<td class="parameter_name"><p>jitter</p></td>
-<td class="parameter_description"><p>result for the interarrival jitter</p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-<tr>
-<td class="parameter_name"><p>lsr</p></td>
-<td class="parameter_description"><p>result for the last SR packet from this source</p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-<tr>
-<td class="parameter_name"><p>dlsr</p></td>
-<td class="parameter_description"><p>result for the delay since last SR packet</p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-</tbody>
-</table></div>
-</div>
 </div>
 <hr>
 <div class="refsect2">
@@ -1463,66 +745,6 @@
                         <em class="parameter"><code><a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#guint32"><span class="type">guint32</span></a> jitter</code></em>,
                         <em class="parameter"><code><a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#guint32"><span class="type">guint32</span></a> lsr</code></em>,
                         <em class="parameter"><code><a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#guint32"><span class="type">guint32</span></a> dlsr</code></em>);</pre>
-<p>Add a new report block to <em class="parameter"><code>packet</code></em>
- with the given values.</p>
-<div class="refsect3">
-<a name="gst-rtcp-packet-add-rb.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>packet</p></td>
-<td class="parameter_description"><p>a valid SR or RR <a class="link" href="gst-plugins-base-libs-gstrtcpbuffer.html#GstRTCPPacket" title="struct GstRTCPPacket"><span class="type">GstRTCPPacket</span></a></p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-<tr>
-<td class="parameter_name"><p>ssrc</p></td>
-<td class="parameter_description"><p>data source being reported</p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-<tr>
-<td class="parameter_name"><p>fractionlost</p></td>
-<td class="parameter_description"><p>fraction lost since last SR/RR</p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-<tr>
-<td class="parameter_name"><p>packetslost</p></td>
-<td class="parameter_description"><p>the cumululative number of packets lost</p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-<tr>
-<td class="parameter_name"><p>exthighestseq</p></td>
-<td class="parameter_description"><p>the extended last sequence number received</p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-<tr>
-<td class="parameter_name"><p>jitter</p></td>
-<td class="parameter_description"><p>the interarrival jitter</p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-<tr>
-<td class="parameter_name"><p>lsr</p></td>
-<td class="parameter_description"><p>the last SR packet from this source</p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-<tr>
-<td class="parameter_name"><p>dlsr</p></td>
-<td class="parameter_description"><p>the delay since last SR packet</p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-</tbody>
-</table></div>
-</div>
-<div class="refsect3">
-<a name="gst-rtcp-packet-add-rb.returns"></a><h4>Returns</h4>
-<p> <a href="/usr/share/gtk-doc/html/glibglib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a> if the packet was created. This function can return <a href="/usr/share/gtk-doc/html/glibglib-Standard-Macros.html#FALSE:CAPS"><code class="literal">FALSE</code></a> if
-the max MTU is exceeded or the number of report blocks is greater than
-<a class="link" href="gst-plugins-base-libs-gstrtcpbuffer.html#GST-RTCP-MAX-RB-COUNT:CAPS" title="GST_RTCP_MAX_RB_COUNT"><span class="type">GST_RTCP_MAX_RB_COUNT</span></a>.</p>
-</div>
 </div>
 <hr>
 <div class="refsect2">
@@ -1537,227 +759,42 @@
                         <em class="parameter"><code><a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#guint32"><span class="type">guint32</span></a> jitter</code></em>,
                         <em class="parameter"><code><a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#guint32"><span class="type">guint32</span></a> lsr</code></em>,
                         <em class="parameter"><code><a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#guint32"><span class="type">guint32</span></a> dlsr</code></em>);</pre>
-<p>Set the <em class="parameter"><code>nth</code></em>
- new report block in <em class="parameter"><code>packet</code></em>
- with the given values.</p>
-<p>Note: Not implemented.</p>
-<div class="refsect3">
-<a name="gst-rtcp-packet-set-rb.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>packet</p></td>
-<td class="parameter_description"><p>a valid SR or RR <a class="link" href="gst-plugins-base-libs-gstrtcpbuffer.html#GstRTCPPacket" title="struct GstRTCPPacket"><span class="type">GstRTCPPacket</span></a></p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-<tr>
-<td class="parameter_name"><p>nth</p></td>
-<td class="parameter_description"><p>the nth report block to set</p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-<tr>
-<td class="parameter_name"><p>ssrc</p></td>
-<td class="parameter_description"><p>data source being reported</p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-<tr>
-<td class="parameter_name"><p>fractionlost</p></td>
-<td class="parameter_description"><p>fraction lost since last SR/RR</p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-<tr>
-<td class="parameter_name"><p>packetslost</p></td>
-<td class="parameter_description"><p>the cumululative number of packets lost</p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-<tr>
-<td class="parameter_name"><p>exthighestseq</p></td>
-<td class="parameter_description"><p>the extended last sequence number received</p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-<tr>
-<td class="parameter_name"><p>jitter</p></td>
-<td class="parameter_description"><p>the interarrival jitter</p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-<tr>
-<td class="parameter_name"><p>lsr</p></td>
-<td class="parameter_description"><p>the last SR packet from this source</p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-<tr>
-<td class="parameter_name"><p>dlsr</p></td>
-<td class="parameter_description"><p>the delay since last SR packet</p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-</tbody>
-</table></div>
-</div>
 </div>
 <hr>
 <div class="refsect2">
 <a name="gst-rtcp-packet-sdes-get-item-count"></a><h3>gst_rtcp_packet_sdes_get_item_count ()</h3>
 <pre class="programlisting"><a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#guint"><span class="returnvalue">guint</span></a>
 gst_rtcp_packet_sdes_get_item_count (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstrtcpbuffer.html#GstRTCPPacket" title="struct GstRTCPPacket"><span class="type">GstRTCPPacket</span></a> *packet</code></em>);</pre>
-<p>Get the number of items in the SDES packet <em class="parameter"><code>packet</code></em>
-.</p>
-<div class="refsect3">
-<a name="gst-rtcp-packet-sdes-get-item-count.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>packet</p></td>
-<td class="parameter_description"><p>a valid SDES <a class="link" href="gst-plugins-base-libs-gstrtcpbuffer.html#GstRTCPPacket" title="struct GstRTCPPacket"><span class="type">GstRTCPPacket</span></a></p></td>
-<td class="parameter_annotations"> </td>
-</tr></tbody>
-</table></div>
-</div>
-<div class="refsect3">
-<a name="gst-rtcp-packet-sdes-get-item-count.returns"></a><h4>Returns</h4>
-<p> The number of items in <em class="parameter"><code>packet</code></em>
-.</p>
-</div>
 </div>
 <hr>
 <div class="refsect2">
 <a name="gst-rtcp-packet-sdes-first-item"></a><h3>gst_rtcp_packet_sdes_first_item ()</h3>
 <pre class="programlisting"><a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
 gst_rtcp_packet_sdes_first_item (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstrtcpbuffer.html#GstRTCPPacket" title="struct GstRTCPPacket"><span class="type">GstRTCPPacket</span></a> *packet</code></em>);</pre>
-<p>Move to the first SDES item in <em class="parameter"><code>packet</code></em>
-.</p>
-<div class="refsect3">
-<a name="gst-rtcp-packet-sdes-first-item.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>packet</p></td>
-<td class="parameter_description"><p>a valid SDES <a class="link" href="gst-plugins-base-libs-gstrtcpbuffer.html#GstRTCPPacket" title="struct GstRTCPPacket"><span class="type">GstRTCPPacket</span></a></p></td>
-<td class="parameter_annotations"> </td>
-</tr></tbody>
-</table></div>
-</div>
-<div class="refsect3">
-<a name="gst-rtcp-packet-sdes-first-item.returns"></a><h4>Returns</h4>
-<p> TRUE if there was a first item.</p>
-</div>
 </div>
 <hr>
 <div class="refsect2">
 <a name="gst-rtcp-packet-sdes-next-item"></a><h3>gst_rtcp_packet_sdes_next_item ()</h3>
 <pre class="programlisting"><a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
 gst_rtcp_packet_sdes_next_item (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstrtcpbuffer.html#GstRTCPPacket" title="struct GstRTCPPacket"><span class="type">GstRTCPPacket</span></a> *packet</code></em>);</pre>
-<p>Move to the next SDES item in <em class="parameter"><code>packet</code></em>
-.</p>
-<div class="refsect3">
-<a name="gst-rtcp-packet-sdes-next-item.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>packet</p></td>
-<td class="parameter_description"><p>a valid SDES <a class="link" href="gst-plugins-base-libs-gstrtcpbuffer.html#GstRTCPPacket" title="struct GstRTCPPacket"><span class="type">GstRTCPPacket</span></a></p></td>
-<td class="parameter_annotations"> </td>
-</tr></tbody>
-</table></div>
-</div>
-<div class="refsect3">
-<a name="gst-rtcp-packet-sdes-next-item.returns"></a><h4>Returns</h4>
-<p> TRUE if there was a next item.</p>
-</div>
 </div>
 <hr>
 <div class="refsect2">
 <a name="gst-rtcp-packet-sdes-get-ssrc"></a><h3>gst_rtcp_packet_sdes_get_ssrc ()</h3>
 <pre class="programlisting"><a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#guint32"><span class="returnvalue">guint32</span></a>
 gst_rtcp_packet_sdes_get_ssrc (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstrtcpbuffer.html#GstRTCPPacket" title="struct GstRTCPPacket"><span class="type">GstRTCPPacket</span></a> *packet</code></em>);</pre>
-<p>Get the SSRC of the current SDES item.</p>
-<div class="refsect3">
-<a name="gst-rtcp-packet-sdes-get-ssrc.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>packet</p></td>
-<td class="parameter_description"><p>a valid SDES <a class="link" href="gst-plugins-base-libs-gstrtcpbuffer.html#GstRTCPPacket" title="struct GstRTCPPacket"><span class="type">GstRTCPPacket</span></a></p></td>
-<td class="parameter_annotations"> </td>
-</tr></tbody>
-</table></div>
-</div>
-<div class="refsect3">
-<a name="gst-rtcp-packet-sdes-get-ssrc.returns"></a><h4>Returns</h4>
-<p> the SSRC of the current item.</p>
-</div>
 </div>
 <hr>
 <div class="refsect2">
 <a name="gst-rtcp-packet-sdes-first-entry"></a><h3>gst_rtcp_packet_sdes_first_entry ()</h3>
 <pre class="programlisting"><a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
 gst_rtcp_packet_sdes_first_entry (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstrtcpbuffer.html#GstRTCPPacket" title="struct GstRTCPPacket"><span class="type">GstRTCPPacket</span></a> *packet</code></em>);</pre>
-<p>Move to the first SDES entry in the current item.</p>
-<div class="refsect3">
-<a name="gst-rtcp-packet-sdes-first-entry.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>packet</p></td>
-<td class="parameter_description"><p>a valid SDES <a class="link" href="gst-plugins-base-libs-gstrtcpbuffer.html#GstRTCPPacket" title="struct GstRTCPPacket"><span class="type">GstRTCPPacket</span></a></p></td>
-<td class="parameter_annotations"> </td>
-</tr></tbody>
-</table></div>
-</div>
-<div class="refsect3">
-<a name="gst-rtcp-packet-sdes-first-entry.returns"></a><h4>Returns</h4>
-<p> <a href="/usr/share/gtk-doc/html/glibglib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a> if there was a first entry.</p>
-</div>
 </div>
 <hr>
 <div class="refsect2">
 <a name="gst-rtcp-packet-sdes-next-entry"></a><h3>gst_rtcp_packet_sdes_next_entry ()</h3>
 <pre class="programlisting"><a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
 gst_rtcp_packet_sdes_next_entry (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstrtcpbuffer.html#GstRTCPPacket" title="struct GstRTCPPacket"><span class="type">GstRTCPPacket</span></a> *packet</code></em>);</pre>
-<p>Move to the next SDES entry in the current item.</p>
-<div class="refsect3">
-<a name="gst-rtcp-packet-sdes-next-entry.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>packet</p></td>
-<td class="parameter_description"><p>a valid SDES <a class="link" href="gst-plugins-base-libs-gstrtcpbuffer.html#GstRTCPPacket" title="struct GstRTCPPacket"><span class="type">GstRTCPPacket</span></a></p></td>
-<td class="parameter_annotations"> </td>
-</tr></tbody>
-</table></div>
-</div>
-<div class="refsect3">
-<a name="gst-rtcp-packet-sdes-next-entry.returns"></a><h4>Returns</h4>
-<p> <a href="/usr/share/gtk-doc/html/glibglib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a> if there was a next entry.</p>
-</div>
 </div>
 <hr>
 <div class="refsect2">
@@ -1767,53 +804,6 @@
                                 <em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstrtcpbuffer.html#GstRTCPSDESType" title="enum GstRTCPSDESType"><span class="type">GstRTCPSDESType</span></a> *type</code></em>,
                                 <em class="parameter"><code><a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#guint8"><span class="type">guint8</span></a> *len</code></em>,
                                 <em class="parameter"><code><a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#guint8"><span class="type">guint8</span></a> **data</code></em>);</pre>
-<p>Get the data of the current SDES item entry. <em class="parameter"><code>type</code></em>
- (when not NULL) will
-contain the type of the entry. <em class="parameter"><code>data</code></em>
- (when not NULL) will point to <em class="parameter"><code>len</code></em>
-
-bytes.</p>
-<p>When <em class="parameter"><code>type</code></em>
- refers to a text item, <em class="parameter"><code>data</code></em>
- will point to a UTF8 string. Note
-that this UTF8 string is NOT null-terminated. Use
-<a class="link" href="gst-plugins-base-libs-gstrtcpbuffer.html#gst-rtcp-packet-sdes-copy-entry" title="gst_rtcp_packet_sdes_copy_entry ()"><code class="function">gst_rtcp_packet_sdes_copy_entry()</code></a> to get a null-terminated copy of the entry.</p>
-<div class="refsect3">
-<a name="gst-rtcp-packet-sdes-get-entry.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>packet</p></td>
-<td class="parameter_description"><p>a valid SDES <a class="link" href="gst-plugins-base-libs-gstrtcpbuffer.html#GstRTCPPacket" title="struct GstRTCPPacket"><span class="type">GstRTCPPacket</span></a></p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-<tr>
-<td class="parameter_name"><p>type</p></td>
-<td class="parameter_description"><p>result of the entry type</p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-<tr>
-<td class="parameter_name"><p>len</p></td>
-<td class="parameter_description"><p> result length of the entry data. </p></td>
-<td class="parameter_annotations"><span class="annotation">[<acronym title="Parameter for returning results. Default is transfer full."><span class="acronym">out</span></acronym>]</span></td>
-</tr>
-<tr>
-<td class="parameter_name"><p>data</p></td>
-<td class="parameter_description"><p> result entry data. </p></td>
-<td class="parameter_annotations"><span class="annotation">[<acronym title="Parameter for returning results. Default is transfer full."><span class="acronym">out</span></acronym>][<acronym title="Parameter points to an array of items."><span class="acronym">array</span></acronym> length=len][<acronym title="Don't free data after the code is done."><span class="acronym">transfer none</span></acronym>]</span></td>
-</tr>
-</tbody>
-</table></div>
-</div>
-<div class="refsect3">
-<a name="gst-rtcp-packet-sdes-get-entry.returns"></a><h4>Returns</h4>
-<p> <a href="/usr/share/gtk-doc/html/glibglib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a> if there was valid data.</p>
-</div>
 </div>
 <hr>
 <div class="refsect2">
@@ -1823,44 +813,6 @@
                                  <em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstrtcpbuffer.html#GstRTCPSDESType" title="enum GstRTCPSDESType"><span class="type">GstRTCPSDESType</span></a> *type</code></em>,
                                  <em class="parameter"><code><a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#guint8"><span class="type">guint8</span></a> *len</code></em>,
                                  <em class="parameter"><code><a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#guint8"><span class="type">guint8</span></a> **data</code></em>);</pre>
-<p>This function is like <a class="link" href="gst-plugins-base-libs-gstrtcpbuffer.html#gst-rtcp-packet-sdes-get-entry" title="gst_rtcp_packet_sdes_get_entry ()"><code class="function">gst_rtcp_packet_sdes_get_entry()</code></a> but it returns a
-null-terminated copy of the data instead. use <a href="/usr/share/gtk-doc/html/glibglib-Memory-Allocation.html#g-free"><code class="function">g_free()</code></a> after usage.</p>
-<div class="refsect3">
-<a name="gst-rtcp-packet-sdes-copy-entry.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>packet</p></td>
-<td class="parameter_description"><p>a valid SDES <a class="link" href="gst-plugins-base-libs-gstrtcpbuffer.html#GstRTCPPacket" title="struct GstRTCPPacket"><span class="type">GstRTCPPacket</span></a></p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-<tr>
-<td class="parameter_name"><p>type</p></td>
-<td class="parameter_description"><p>result of the entry type</p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-<tr>
-<td class="parameter_name"><p>len</p></td>
-<td class="parameter_description"><p> result length of the entry data. </p></td>
-<td class="parameter_annotations"><span class="annotation">[<acronym title="Parameter for returning results. Default is transfer full."><span class="acronym">out</span></acronym>]</span></td>
-</tr>
-<tr>
-<td class="parameter_name"><p>data</p></td>
-<td class="parameter_description"><p> result entry data. </p></td>
-<td class="parameter_annotations"><span class="annotation">[<acronym title="Parameter for returning results. Default is transfer full."><span class="acronym">out</span></acronym>][<acronym title="Parameter points to an array of items."><span class="acronym">array</span></acronym> length=len]</span></td>
-</tr>
-</tbody>
-</table></div>
-</div>
-<div class="refsect3">
-<a name="gst-rtcp-packet-sdes-copy-entry.returns"></a><h4>Returns</h4>
-<p> <a href="/usr/share/gtk-doc/html/glibglib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a> if there was valid data.</p>
-</div>
 </div>
 <hr>
 <div class="refsect2">
@@ -1868,36 +820,6 @@
 <pre class="programlisting"><a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
 gst_rtcp_packet_sdes_add_item (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstrtcpbuffer.html#GstRTCPPacket" title="struct GstRTCPPacket"><span class="type">GstRTCPPacket</span></a> *packet</code></em>,
                                <em class="parameter"><code><a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#guint32"><span class="type">guint32</span></a> ssrc</code></em>);</pre>
-<p>Add a new SDES item for <em class="parameter"><code>ssrc</code></em>
- to <em class="parameter"><code>packet</code></em>
-.</p>
-<div class="refsect3">
-<a name="gst-rtcp-packet-sdes-add-item.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>packet</p></td>
-<td class="parameter_description"><p>a valid SDES <a class="link" href="gst-plugins-base-libs-gstrtcpbuffer.html#GstRTCPPacket" title="struct GstRTCPPacket"><span class="type">GstRTCPPacket</span></a></p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-<tr>
-<td class="parameter_name"><p>ssrc</p></td>
-<td class="parameter_description"><p>the SSRC of the new item to add</p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-</tbody>
-</table></div>
-</div>
-<div class="refsect3">
-<a name="gst-rtcp-packet-sdes-add-item.returns"></a><h4>Returns</h4>
-<p> <a href="/usr/share/gtk-doc/html/glibglib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a> if the item could be added, <a href="/usr/share/gtk-doc/html/glibglib-Standard-Macros.html#FALSE:CAPS"><code class="literal">FALSE</code></a> if the maximum amount of
-items has been exceeded for the SDES packet or the MTU has been reached.</p>
-</div>
 </div>
 <hr>
 <div class="refsect2">
@@ -1907,73 +829,12 @@
                                 <em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstrtcpbuffer.html#GstRTCPSDESType" title="enum GstRTCPSDESType"><span class="type">GstRTCPSDESType</span></a> type</code></em>,
                                 <em class="parameter"><code><a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#guint8"><span class="type">guint8</span></a> len</code></em>,
                                 <em class="parameter"><code>const <a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#guint8"><span class="type">guint8</span></a> *data</code></em>);</pre>
-<p>Add a new SDES entry to the current item in <em class="parameter"><code>packet</code></em>
-.</p>
-<div class="refsect3">
-<a name="gst-rtcp-packet-sdes-add-entry.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>packet</p></td>
-<td class="parameter_description"><p>a valid SDES <a class="link" href="gst-plugins-base-libs-gstrtcpbuffer.html#GstRTCPPacket" title="struct GstRTCPPacket"><span class="type">GstRTCPPacket</span></a></p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-<tr>
-<td class="parameter_name"><p>type</p></td>
-<td class="parameter_description"><p>the <a class="link" href="gst-plugins-base-libs-gstrtcpbuffer.html#GstRTCPSDESType" title="enum GstRTCPSDESType"><span class="type">GstRTCPSDESType</span></a> of the SDES entry</p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-<tr>
-<td class="parameter_name"><p>len</p></td>
-<td class="parameter_description"><p>the data length</p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-<tr>
-<td class="parameter_name"><p>data</p></td>
-<td class="parameter_description"><p> the data. </p></td>
-<td class="parameter_annotations"><span class="annotation">[<acronym title="Parameter points to an array of items."><span class="acronym">array</span></acronym> length=len]</span></td>
-</tr>
-</tbody>
-</table></div>
-</div>
-<div class="refsect3">
-<a name="gst-rtcp-packet-sdes-add-entry.returns"></a><h4>Returns</h4>
-<p> <a href="/usr/share/gtk-doc/html/glibglib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a> if the item could be added, <a href="/usr/share/gtk-doc/html/glibglib-Standard-Macros.html#FALSE:CAPS"><code class="literal">FALSE</code></a> if the MTU has been
-reached.</p>
-</div>
 </div>
 <hr>
 <div class="refsect2">
 <a name="gst-rtcp-packet-bye-get-ssrc-count"></a><h3>gst_rtcp_packet_bye_get_ssrc_count ()</h3>
 <pre class="programlisting"><a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#guint"><span class="returnvalue">guint</span></a>
 gst_rtcp_packet_bye_get_ssrc_count (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstrtcpbuffer.html#GstRTCPPacket" title="struct GstRTCPPacket"><span class="type">GstRTCPPacket</span></a> *packet</code></em>);</pre>
-<p>Get the number of SSRC fields in <em class="parameter"><code>packet</code></em>
-.</p>
-<div class="refsect3">
-<a name="gst-rtcp-packet-bye-get-ssrc-count.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>packet</p></td>
-<td class="parameter_description"><p>a valid BYE <a class="link" href="gst-plugins-base-libs-gstrtcpbuffer.html#GstRTCPPacket" title="struct GstRTCPPacket"><span class="type">GstRTCPPacket</span></a></p></td>
-<td class="parameter_annotations"> </td>
-</tr></tbody>
-</table></div>
-</div>
-<div class="refsect3">
-<a name="gst-rtcp-packet-bye-get-ssrc-count.returns"></a><h4>Returns</h4>
-<p> The number of SSRC fields in <em class="parameter"><code>packet</code></em>
-.</p>
-</div>
 </div>
 <hr>
 <div class="refsect2">
@@ -1981,37 +842,6 @@
 <pre class="programlisting"><a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#guint32"><span class="returnvalue">guint32</span></a>
 gst_rtcp_packet_bye_get_nth_ssrc (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstrtcpbuffer.html#GstRTCPPacket" title="struct GstRTCPPacket"><span class="type">GstRTCPPacket</span></a> *packet</code></em>,
                                   <em class="parameter"><code><a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#guint"><span class="type">guint</span></a> nth</code></em>);</pre>
-<p>Get the <em class="parameter"><code>nth</code></em>
- SSRC of the BYE <em class="parameter"><code>packet</code></em>
-.</p>
-<div class="refsect3">
-<a name="gst-rtcp-packet-bye-get-nth-ssrc.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>packet</p></td>
-<td class="parameter_description"><p>a valid BYE <a class="link" href="gst-plugins-base-libs-gstrtcpbuffer.html#GstRTCPPacket" title="struct GstRTCPPacket"><span class="type">GstRTCPPacket</span></a></p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-<tr>
-<td class="parameter_name"><p>nth</p></td>
-<td class="parameter_description"><p>the nth SSRC to get</p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-</tbody>
-</table></div>
-</div>
-<div class="refsect3">
-<a name="gst-rtcp-packet-bye-get-nth-ssrc.returns"></a><h4>Returns</h4>
-<p> The <em class="parameter"><code>nth</code></em>
-SSRC of <em class="parameter"><code>packet</code></em>
-.</p>
-</div>
 </div>
 <hr>
 <div class="refsect2">
@@ -2019,37 +849,6 @@
 <pre class="programlisting"><a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
 gst_rtcp_packet_bye_add_ssrc (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstrtcpbuffer.html#GstRTCPPacket" title="struct GstRTCPPacket"><span class="type">GstRTCPPacket</span></a> *packet</code></em>,
                               <em class="parameter"><code><a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#guint32"><span class="type">guint32</span></a> ssrc</code></em>);</pre>
-<p>Add <em class="parameter"><code>ssrc</code></em>
- to the BYE <em class="parameter"><code>packet</code></em>
-.</p>
-<div class="refsect3">
-<a name="gst-rtcp-packet-bye-add-ssrc.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>packet</p></td>
-<td class="parameter_description"><p>a valid BYE <a class="link" href="gst-plugins-base-libs-gstrtcpbuffer.html#GstRTCPPacket" title="struct GstRTCPPacket"><span class="type">GstRTCPPacket</span></a></p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-<tr>
-<td class="parameter_name"><p>ssrc</p></td>
-<td class="parameter_description"><p>an SSRC to add</p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-</tbody>
-</table></div>
-</div>
-<div class="refsect3">
-<a name="gst-rtcp-packet-bye-add-ssrc.returns"></a><h4>Returns</h4>
-<p> <a href="/usr/share/gtk-doc/html/glibglib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a> if the ssrc was added. This function can return <a href="/usr/share/gtk-doc/html/glibglib-Standard-Macros.html#FALSE:CAPS"><code class="literal">FALSE</code></a> if
-the max MTU is exceeded or the number of sources blocks is greater than
-<a class="link" href="gst-plugins-base-libs-gstrtcpbuffer.html#GST-RTCP-MAX-BYE-SSRC-COUNT:CAPS" title="GST_RTCP_MAX_BYE_SSRC_COUNT"><span class="type">GST_RTCP_MAX_BYE_SSRC_COUNT</span></a>.</p>
-</div>
 </div>
 <hr>
 <div class="refsect2">
@@ -2058,100 +857,18 @@
 gst_rtcp_packet_bye_add_ssrcs (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstrtcpbuffer.html#GstRTCPPacket" title="struct GstRTCPPacket"><span class="type">GstRTCPPacket</span></a> *packet</code></em>,
                                <em class="parameter"><code><a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#guint32"><span class="type">guint32</span></a> *ssrc</code></em>,
                                <em class="parameter"><code><a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#guint"><span class="type">guint</span></a> len</code></em>);</pre>
-<p>Adds <em class="parameter"><code>len</code></em>
- SSRCs in <em class="parameter"><code>ssrc</code></em>
- to BYE <em class="parameter"><code>packet</code></em>
-.</p>
-<div class="refsect3">
-<a name="gst-rtcp-packet-bye-add-ssrcs.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>packet</p></td>
-<td class="parameter_description"><p>a valid BYE <a class="link" href="gst-plugins-base-libs-gstrtcpbuffer.html#GstRTCPPacket" title="struct GstRTCPPacket"><span class="type">GstRTCPPacket</span></a></p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-<tr>
-<td class="parameter_name"><p>ssrc</p></td>
-<td class="parameter_description"><p>an array of SSRCs to add</p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-<tr>
-<td class="parameter_name"><p>len</p></td>
-<td class="parameter_description"><p>number of elements in <em class="parameter"><code>ssrc</code></em>
-</p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-</tbody>
-</table></div>
-</div>
-<div class="refsect3">
-<a name="gst-rtcp-packet-bye-add-ssrcs.returns"></a><h4>Returns</h4>
-<p> <a href="/usr/share/gtk-doc/html/glibglib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a> if the all the SSRCs were added. This function can return <a href="/usr/share/gtk-doc/html/glibglib-Standard-Macros.html#FALSE:CAPS"><code class="literal">FALSE</code></a> if
-the max MTU is exceeded or the number of sources blocks is greater than
-<a class="link" href="gst-plugins-base-libs-gstrtcpbuffer.html#GST-RTCP-MAX-BYE-SSRC-COUNT:CAPS" title="GST_RTCP_MAX_BYE_SSRC_COUNT"><span class="type">GST_RTCP_MAX_BYE_SSRC_COUNT</span></a>.</p>
-</div>
 </div>
 <hr>
 <div class="refsect2">
 <a name="gst-rtcp-packet-bye-get-reason-len"></a><h3>gst_rtcp_packet_bye_get_reason_len ()</h3>
 <pre class="programlisting"><a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#guint8"><span class="returnvalue">guint8</span></a>
 gst_rtcp_packet_bye_get_reason_len (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstrtcpbuffer.html#GstRTCPPacket" title="struct GstRTCPPacket"><span class="type">GstRTCPPacket</span></a> *packet</code></em>);</pre>
-<p>Get the length of the reason string.</p>
-<div class="refsect3">
-<a name="gst-rtcp-packet-bye-get-reason-len.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>packet</p></td>
-<td class="parameter_description"><p>a valid BYE <a class="link" href="gst-plugins-base-libs-gstrtcpbuffer.html#GstRTCPPacket" title="struct GstRTCPPacket"><span class="type">GstRTCPPacket</span></a></p></td>
-<td class="parameter_annotations"> </td>
-</tr></tbody>
-</table></div>
-</div>
-<div class="refsect3">
-<a name="gst-rtcp-packet-bye-get-reason-len.returns"></a><h4>Returns</h4>
-<p> The length of the reason string or 0 when there is no reason string
-present.</p>
-</div>
 </div>
 <hr>
 <div class="refsect2">
 <a name="gst-rtcp-packet-bye-get-reason"></a><h3>gst_rtcp_packet_bye_get_reason ()</h3>
 <pre class="programlisting"><a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> *
 gst_rtcp_packet_bye_get_reason (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstrtcpbuffer.html#GstRTCPPacket" title="struct GstRTCPPacket"><span class="type">GstRTCPPacket</span></a> *packet</code></em>);</pre>
-<p>Get the reason in <em class="parameter"><code>packet</code></em>
-.</p>
-<div class="refsect3">
-<a name="gst-rtcp-packet-bye-get-reason.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>packet</p></td>
-<td class="parameter_description"><p>a valid BYE <a class="link" href="gst-plugins-base-libs-gstrtcpbuffer.html#GstRTCPPacket" title="struct GstRTCPPacket"><span class="type">GstRTCPPacket</span></a></p></td>
-<td class="parameter_annotations"> </td>
-</tr></tbody>
-</table></div>
-</div>
-<div class="refsect3">
-<a name="gst-rtcp-packet-bye-get-reason.returns"></a><h4>Returns</h4>
-<p> The reason for the BYE <em class="parameter"><code>packet</code></em>
-or NULL if the packet did not contain
-a reason string. The string must be freed with <a href="/usr/share/gtk-doc/html/glibglib-Memory-Allocation.html#g-free"><code class="function">g_free()</code></a> after usage.</p>
-</div>
 </div>
 <hr>
 <div class="refsect2">
@@ -2159,62 +876,12 @@
 <pre class="programlisting"><a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
 gst_rtcp_packet_bye_set_reason (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstrtcpbuffer.html#GstRTCPPacket" title="struct GstRTCPPacket"><span class="type">GstRTCPPacket</span></a> *packet</code></em>,
                                 <em class="parameter"><code>const <a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *reason</code></em>);</pre>
-<p>Set the reason string to <em class="parameter"><code>reason</code></em>
- in <em class="parameter"><code>packet</code></em>
-.</p>
-<div class="refsect3">
-<a name="gst-rtcp-packet-bye-set-reason.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>packet</p></td>
-<td class="parameter_description"><p>a valid BYE <a class="link" href="gst-plugins-base-libs-gstrtcpbuffer.html#GstRTCPPacket" title="struct GstRTCPPacket"><span class="type">GstRTCPPacket</span></a></p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-<tr>
-<td class="parameter_name"><p>reason</p></td>
-<td class="parameter_description"><p>a reason string</p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-</tbody>
-</table></div>
-</div>
-<div class="refsect3">
-<a name="gst-rtcp-packet-bye-set-reason.returns"></a><h4>Returns</h4>
-<p> TRUE if the string could be set.</p>
-</div>
 </div>
 <hr>
 <div class="refsect2">
 <a name="gst-rtcp-packet-fb-get-type"></a><h3>gst_rtcp_packet_fb_get_type ()</h3>
 <pre class="programlisting"><a class="link" href="gst-plugins-base-libs-gstrtcpbuffer.html#GstRTCPFBType" title="enum GstRTCPFBType"><span class="returnvalue">GstRTCPFBType</span></a>
 gst_rtcp_packet_fb_get_type (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstrtcpbuffer.html#GstRTCPPacket" title="struct GstRTCPPacket"><span class="type">GstRTCPPacket</span></a> *packet</code></em>);</pre>
-<p>Get the feedback message type of the FB <em class="parameter"><code>packet</code></em>
-.</p>
-<div class="refsect3">
-<a name="gst-rtcp-packet-fb-get-type.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>packet</p></td>
-<td class="parameter_description"><p>a valid RTPFB or PSFB <a class="link" href="gst-plugins-base-libs-gstrtcpbuffer.html#GstRTCPPacket" title="struct GstRTCPPacket"><span class="type">GstRTCPPacket</span></a></p></td>
-<td class="parameter_annotations"> </td>
-</tr></tbody>
-</table></div>
-</div>
-<div class="refsect3">
-<a name="gst-rtcp-packet-fb-get-type.returns"></a><h4>Returns</h4>
-<p> The feedback message type.</p>
-</div>
 </div>
 <hr>
 <div class="refsect2">
@@ -2222,57 +889,12 @@
 <pre class="programlisting"><span class="returnvalue">void</span>
 gst_rtcp_packet_fb_set_type (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstrtcpbuffer.html#GstRTCPPacket" title="struct GstRTCPPacket"><span class="type">GstRTCPPacket</span></a> *packet</code></em>,
                              <em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstrtcpbuffer.html#GstRTCPFBType" title="enum GstRTCPFBType"><span class="type">GstRTCPFBType</span></a> type</code></em>);</pre>
-<p>Set the feedback message type of the FB <em class="parameter"><code>packet</code></em>
-.</p>
-<div class="refsect3">
-<a name="gst-rtcp-packet-fb-set-type.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>packet</p></td>
-<td class="parameter_description"><p>a valid RTPFB or PSFB <a class="link" href="gst-plugins-base-libs-gstrtcpbuffer.html#GstRTCPPacket" title="struct GstRTCPPacket"><span class="type">GstRTCPPacket</span></a></p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-<tr>
-<td class="parameter_name"><p>type</p></td>
-<td class="parameter_description"><p>the <a class="link" href="gst-plugins-base-libs-gstrtcpbuffer.html#GstRTCPFBType" title="enum GstRTCPFBType"><span class="type">GstRTCPFBType</span></a> to set</p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-</tbody>
-</table></div>
-</div>
 </div>
 <hr>
 <div class="refsect2">
 <a name="gst-rtcp-packet-fb-get-sender-ssrc"></a><h3>gst_rtcp_packet_fb_get_sender_ssrc ()</h3>
 <pre class="programlisting"><a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#guint32"><span class="returnvalue">guint32</span></a>
 gst_rtcp_packet_fb_get_sender_ssrc (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstrtcpbuffer.html#GstRTCPPacket" title="struct GstRTCPPacket"><span class="type">GstRTCPPacket</span></a> *packet</code></em>);</pre>
-<p>Get the sender SSRC field of the RTPFB or PSFB <em class="parameter"><code>packet</code></em>
-.</p>
-<div class="refsect3">
-<a name="gst-rtcp-packet-fb-get-sender-ssrc.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>packet</p></td>
-<td class="parameter_description"><p>a valid RTPFB or PSFB <a class="link" href="gst-plugins-base-libs-gstrtcpbuffer.html#GstRTCPPacket" title="struct GstRTCPPacket"><span class="type">GstRTCPPacket</span></a></p></td>
-<td class="parameter_annotations"> </td>
-</tr></tbody>
-</table></div>
-</div>
-<div class="refsect3">
-<a name="gst-rtcp-packet-fb-get-sender-ssrc.returns"></a><h4>Returns</h4>
-<p> the sender SSRC.</p>
-</div>
 </div>
 <hr>
 <div class="refsect2">
@@ -2280,57 +902,12 @@
 <pre class="programlisting"><span class="returnvalue">void</span>
 gst_rtcp_packet_fb_set_sender_ssrc (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstrtcpbuffer.html#GstRTCPPacket" title="struct GstRTCPPacket"><span class="type">GstRTCPPacket</span></a> *packet</code></em>,
                                     <em class="parameter"><code><a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#guint32"><span class="type">guint32</span></a> ssrc</code></em>);</pre>
-<p>Set the sender SSRC field of the RTPFB or PSFB <em class="parameter"><code>packet</code></em>
-.</p>
-<div class="refsect3">
-<a name="gst-rtcp-packet-fb-set-sender-ssrc.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>packet</p></td>
-<td class="parameter_description"><p>a valid RTPFB or PSFB <a class="link" href="gst-plugins-base-libs-gstrtcpbuffer.html#GstRTCPPacket" title="struct GstRTCPPacket"><span class="type">GstRTCPPacket</span></a></p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-<tr>
-<td class="parameter_name"><p>ssrc</p></td>
-<td class="parameter_description"><p>a sender SSRC</p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-</tbody>
-</table></div>
-</div>
 </div>
 <hr>
 <div class="refsect2">
 <a name="gst-rtcp-packet-fb-get-media-ssrc"></a><h3>gst_rtcp_packet_fb_get_media_ssrc ()</h3>
 <pre class="programlisting"><a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#guint32"><span class="returnvalue">guint32</span></a>
 gst_rtcp_packet_fb_get_media_ssrc (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstrtcpbuffer.html#GstRTCPPacket" title="struct GstRTCPPacket"><span class="type">GstRTCPPacket</span></a> *packet</code></em>);</pre>
-<p>Get the media SSRC field of the RTPFB or PSFB <em class="parameter"><code>packet</code></em>
-.</p>
-<div class="refsect3">
-<a name="gst-rtcp-packet-fb-get-media-ssrc.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>packet</p></td>
-<td class="parameter_description"><p>a valid RTPFB or PSFB <a class="link" href="gst-plugins-base-libs-gstrtcpbuffer.html#GstRTCPPacket" title="struct GstRTCPPacket"><span class="type">GstRTCPPacket</span></a></p></td>
-<td class="parameter_annotations"> </td>
-</tr></tbody>
-</table></div>
-</div>
-<div class="refsect3">
-<a name="gst-rtcp-packet-fb-get-media-ssrc.returns"></a><h4>Returns</h4>
-<p> the media SSRC.</p>
-</div>
 </div>
 <hr>
 <div class="refsect2">
@@ -2338,58 +915,12 @@
 <pre class="programlisting"><span class="returnvalue">void</span>
 gst_rtcp_packet_fb_set_media_ssrc (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstrtcpbuffer.html#GstRTCPPacket" title="struct GstRTCPPacket"><span class="type">GstRTCPPacket</span></a> *packet</code></em>,
                                    <em class="parameter"><code><a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#guint32"><span class="type">guint32</span></a> ssrc</code></em>);</pre>
-<p>Set the media SSRC field of the RTPFB or PSFB <em class="parameter"><code>packet</code></em>
-.</p>
-<div class="refsect3">
-<a name="gst-rtcp-packet-fb-set-media-ssrc.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>packet</p></td>
-<td class="parameter_description"><p>a valid RTPFB or PSFB <a class="link" href="gst-plugins-base-libs-gstrtcpbuffer.html#GstRTCPPacket" title="struct GstRTCPPacket"><span class="type">GstRTCPPacket</span></a></p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-<tr>
-<td class="parameter_name"><p>ssrc</p></td>
-<td class="parameter_description"><p>a media SSRC</p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-</tbody>
-</table></div>
-</div>
 </div>
 <hr>
 <div class="refsect2">
 <a name="gst-rtcp-packet-fb-get-fci-length"></a><h3>gst_rtcp_packet_fb_get_fci_length ()</h3>
 <pre class="programlisting"><a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#guint16"><span class="returnvalue">guint16</span></a>
 gst_rtcp_packet_fb_get_fci_length (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstrtcpbuffer.html#GstRTCPPacket" title="struct GstRTCPPacket"><span class="type">GstRTCPPacket</span></a> *packet</code></em>);</pre>
-<p>Get the length of the Feedback Control Information attached to a
-RTPFB or PSFB <em class="parameter"><code>packet</code></em>
-.</p>
-<div class="refsect3">
-<a name="gst-rtcp-packet-fb-get-fci-length.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>packet</p></td>
-<td class="parameter_description"><p>a valid RTPFB or PSFB <a class="link" href="gst-plugins-base-libs-gstrtcpbuffer.html#GstRTCPPacket" title="struct GstRTCPPacket"><span class="type">GstRTCPPacket</span></a></p></td>
-<td class="parameter_annotations"> </td>
-</tr></tbody>
-</table></div>
-</div>
-<div class="refsect3">
-<a name="gst-rtcp-packet-fb-get-fci-length.returns"></a><h4>Returns</h4>
-<p> The length of the FCI in 32-bit words.</p>
-</div>
 </div>
 <hr>
 <div class="refsect2">
@@ -2397,185 +928,36 @@
 <pre class="programlisting"><a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
 gst_rtcp_packet_fb_set_fci_length (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstrtcpbuffer.html#GstRTCPPacket" title="struct GstRTCPPacket"><span class="type">GstRTCPPacket</span></a> *packet</code></em>,
                                    <em class="parameter"><code><a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#guint16"><span class="type">guint16</span></a> wordlen</code></em>);</pre>
-<p>Set the length of the Feedback Control Information attached to a
-RTPFB or PSFB <em class="parameter"><code>packet</code></em>
-.</p>
-<div class="refsect3">
-<a name="gst-rtcp-packet-fb-set-fci-length.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>packet</p></td>
-<td class="parameter_description"><p>a valid RTPFB or PSFB <a class="link" href="gst-plugins-base-libs-gstrtcpbuffer.html#GstRTCPPacket" title="struct GstRTCPPacket"><span class="type">GstRTCPPacket</span></a></p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-<tr>
-<td class="parameter_name"><p>wordlen</p></td>
-<td class="parameter_description"><p>Length of the FCI in 32-bit words</p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-</tbody>
-</table></div>
-</div>
-<div class="refsect3">
-<a name="gst-rtcp-packet-fb-set-fci-length.returns"></a><h4>Returns</h4>
-<p> <a href="/usr/share/gtk-doc/html/glibglib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a> if there was enough space in the packet to add this much FCI</p>
-</div>
 </div>
 <hr>
 <div class="refsect2">
 <a name="gst-rtcp-packet-fb-get-fci"></a><h3>gst_rtcp_packet_fb_get_fci ()</h3>
 <pre class="programlisting"><a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#guint8"><span class="returnvalue">guint8</span></a> *
 gst_rtcp_packet_fb_get_fci (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstrtcpbuffer.html#GstRTCPPacket" title="struct GstRTCPPacket"><span class="type">GstRTCPPacket</span></a> *packet</code></em>);</pre>
-<p>Get the Feedback Control Information attached to a RTPFB or PSFB <em class="parameter"><code>packet</code></em>
-.</p>
-<div class="refsect3">
-<a name="gst-rtcp-packet-fb-get-fci.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>packet</p></td>
-<td class="parameter_description"><p>a valid RTPFB or PSFB <a class="link" href="gst-plugins-base-libs-gstrtcpbuffer.html#GstRTCPPacket" title="struct GstRTCPPacket"><span class="type">GstRTCPPacket</span></a></p></td>
-<td class="parameter_annotations"> </td>
-</tr></tbody>
-</table></div>
-</div>
-<div class="refsect3">
-<a name="gst-rtcp-packet-fb-get-fci.returns"></a><h4>Returns</h4>
-<p> a pointer to the FCI</p>
-</div>
 </div>
 <hr>
 <div class="refsect2">
 <a name="gst-rtcp-ntp-to-unix"></a><h3>gst_rtcp_ntp_to_unix ()</h3>
 <pre class="programlisting"><a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#guint64"><span class="returnvalue">guint64</span></a>
 gst_rtcp_ntp_to_unix (<em class="parameter"><code><a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#guint64"><span class="type">guint64</span></a> ntptime</code></em>);</pre>
-<p>Converts an NTP time to UNIX nanoseconds. <em class="parameter"><code>ntptime</code></em>
- can typically be
-the NTP time of an SR RTCP message and contains, in the upper 32 bits, the
-number of seconds since 1900 and, in the lower 32 bits, the fractional
-seconds. The resulting value will be the number of nanoseconds since 1970.</p>
-<div class="refsect3">
-<a name="gst-rtcp-ntp-to-unix.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>ntptime</p></td>
-<td class="parameter_description"><p>an NTP timestamp</p></td>
-<td class="parameter_annotations"> </td>
-</tr></tbody>
-</table></div>
-</div>
-<div class="refsect3">
-<a name="gst-rtcp-ntp-to-unix.returns"></a><h4>Returns</h4>
-<p> the UNIX time for <em class="parameter"><code>ntptime</code></em>
-in nanoseconds.</p>
-</div>
 </div>
 <hr>
 <div class="refsect2">
 <a name="gst-rtcp-unix-to-ntp"></a><h3>gst_rtcp_unix_to_ntp ()</h3>
 <pre class="programlisting"><a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#guint64"><span class="returnvalue">guint64</span></a>
 gst_rtcp_unix_to_ntp (<em class="parameter"><code><a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#guint64"><span class="type">guint64</span></a> unixtime</code></em>);</pre>
-<p>Converts a UNIX timestamp in nanoseconds to an NTP time. The caller should
-pass a value with nanoseconds since 1970. The NTP time will, in the upper
-32 bits, contain the number of seconds since 1900 and, in the lower 32
-bits, the fractional seconds. The resulting value can be used as an ntptime
-for constructing SR RTCP packets.</p>
-<div class="refsect3">
-<a name="gst-rtcp-unix-to-ntp.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>unixtime</p></td>
-<td class="parameter_description"><p>an UNIX timestamp in nanoseconds</p></td>
-<td class="parameter_annotations"> </td>
-</tr></tbody>
-</table></div>
-</div>
-<div class="refsect3">
-<a name="gst-rtcp-unix-to-ntp.returns"></a><h4>Returns</h4>
-<p> the NTP time for <em class="parameter"><code>unixtime</code></em>
-.</p>
-</div>
 </div>
 <hr>
 <div class="refsect2">
 <a name="gst-rtcp-sdes-name-to-type"></a><h3>gst_rtcp_sdes_name_to_type ()</h3>
 <pre class="programlisting"><a class="link" href="gst-plugins-base-libs-gstrtcpbuffer.html#GstRTCPSDESType" title="enum GstRTCPSDESType"><span class="returnvalue">GstRTCPSDESType</span></a>
 gst_rtcp_sdes_name_to_type (<em class="parameter"><code>const <a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *name</code></em>);</pre>
-<p>Convert <em class="parameter"><code>name</code></em>
- into a <em class="parameter"><code>GstRTCPSDESType</code></em>
-. <em class="parameter"><code>name</code></em>
- is typically a key in a
-<a href="/usr/share/gtk-doc/html/gstreamer-1.0GstStructure.html#GstStructure-struct"><span class="type">GstStructure</span></a> containing SDES items.</p>
-<div class="refsect3">
-<a name="gst-rtcp-sdes-name-to-type.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>name</p></td>
-<td class="parameter_description"><p>a SDES name</p></td>
-<td class="parameter_annotations"> </td>
-</tr></tbody>
-</table></div>
-</div>
-<div class="refsect3">
-<a name="gst-rtcp-sdes-name-to-type.returns"></a><h4>Returns</h4>
-<p> the <a class="link" href="gst-plugins-base-libs-gstrtcpbuffer.html#GstRTCPSDESType" title="enum GstRTCPSDESType"><span class="type">GstRTCPSDESType</span></a> for <em class="parameter"><code>name</code></em>
-or <a class="link" href="gst-plugins-base-libs-gstrtcpbuffer.html#GST-RTCP-SDES-PRIV:CAPS"><span class="type">GST_RTCP_SDES_PRIV</span></a> when <em class="parameter"><code>name</code></em>
-is a private sdes item.</p>
-</div>
 </div>
 <hr>
 <div class="refsect2">
 <a name="gst-rtcp-sdes-type-to-name"></a><h3>gst_rtcp_sdes_type_to_name ()</h3>
 <pre class="programlisting">const <a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> *
 gst_rtcp_sdes_type_to_name (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstrtcpbuffer.html#GstRTCPSDESType" title="enum GstRTCPSDESType"><span class="type">GstRTCPSDESType</span></a> type</code></em>);</pre>
-<p>Converts <em class="parameter"><code>type</code></em>
- to the string equivalent. The string is typically used as a
-key in a <a href="/usr/share/gtk-doc/html/gstreamer-1.0GstStructure.html#GstStructure-struct"><span class="type">GstStructure</span></a> containing SDES items.</p>
-<div class="refsect3">
-<a name="gst-rtcp-sdes-type-to-name.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>type</p></td>
-<td class="parameter_description"><p>a <a class="link" href="gst-plugins-base-libs-gstrtcpbuffer.html#GstRTCPSDESType" title="enum GstRTCPSDESType"><span class="type">GstRTCPSDESType</span></a></p></td>
-<td class="parameter_annotations"> </td>
-</tr></tbody>
-</table></div>
-</div>
-<div class="refsect3">
-<a name="gst-rtcp-sdes-type-to-name.returns"></a><h4>Returns</h4>
-<p> the string equivalent of <em class="parameter"><code>type</code></em>
-</p>
-</div>
 </div>
 </div>
 <div class="refsect1">
@@ -2584,55 +966,46 @@
 <a name="GST-RTCP-VERSION:CAPS"></a><h3>GST_RTCP_VERSION</h3>
 <pre class="programlisting">#define GST_RTCP_VERSION 2
 </pre>
-<p>The supported RTCP version 2.</p>
 </div>
 <hr>
 <div class="refsect2">
 <a name="GST-RTCP-MAX-SDES:CAPS"></a><h3>GST_RTCP_MAX_SDES</h3>
 <pre class="programlisting">#define GST_RTCP_MAX_SDES 255
 </pre>
-<p>The maximum text length for an SDES item.</p>
 </div>
 <hr>
 <div class="refsect2">
 <a name="GST-RTCP-MAX-BYE-SSRC-COUNT:CAPS"></a><h3>GST_RTCP_MAX_BYE_SSRC_COUNT</h3>
 <pre class="programlisting">#define GST_RTCP_MAX_BYE_SSRC_COUNT   31
 </pre>
-<p>The maximum amount of SSRCs in a BYE packet.</p>
 </div>
 <hr>
 <div class="refsect2">
 <a name="GST-RTCP-MAX-RB-COUNT:CAPS"></a><h3>GST_RTCP_MAX_RB_COUNT</h3>
 <pre class="programlisting">#define GST_RTCP_MAX_RB_COUNT   31
 </pre>
-<p>The maximum amount of Receiver report blocks in RR and SR messages.</p>
 </div>
 <hr>
 <div class="refsect2">
 <a name="GST-RTCP-MAX-SDES-ITEM-COUNT:CAPS"></a><h3>GST_RTCP_MAX_SDES_ITEM_COUNT</h3>
 <pre class="programlisting">#define GST_RTCP_MAX_SDES_ITEM_COUNT   31
 </pre>
-<p>The maximum amount of SDES items.</p>
 </div>
 <hr>
 <div class="refsect2">
 <a name="GST-RTCP-VALID-MASK:CAPS"></a><h3>GST_RTCP_VALID_MASK</h3>
 <pre class="programlisting">#define GST_RTCP_VALID_MASK (0xc000 | 0x2000 | 0xfe)
 </pre>
-<p>Mask for version, padding bit and packet type pair</p>
 </div>
 <hr>
 <div class="refsect2">
 <a name="GST-RTCP-VALID-VALUE:CAPS"></a><h3>GST_RTCP_VALID_VALUE</h3>
 <pre class="programlisting">#define GST_RTCP_VALID_VALUE ((GST_RTCP_VERSION &lt;&lt; 14) | GST_RTCP_TYPE_SR)
 </pre>
-<p>Valid value for the first two bytes of an RTCP packet after applying
-<a class="link" href="gst-plugins-base-libs-gstrtcpbuffer.html#GST-RTCP-VALID-MASK:CAPS" title="GST_RTCP_VALID_MASK"><span class="type">GST_RTCP_VALID_MASK</span></a> to them.</p>
 </div>
 <hr>
 <div class="refsect2">
 <a name="GstRTCPType"></a><h3>enum GstRTCPType</h3>
-<p>Different RTCP packet types.</p>
 <div class="refsect3">
 <a name="GstRTCPType.members"></a><h4>Members</h4>
 <div class="informaltable"><table class="informaltable" width="100%" border="0">
@@ -2644,59 +1017,43 @@
 <tbody>
 <tr>
 <td class="enum_member_name"><p><a name="GST-RTCP-TYPE-INVALID:CAPS"></a>GST_RTCP_TYPE_INVALID</p></td>
-<td class="enum_member_description">
-<p>Invalid type</p>
-</td>
-<td class="enum_member_annotations"> </td>
+<td> </td>
+<td> </td>
 </tr>
 <tr>
 <td class="enum_member_name"><p><a name="GST-RTCP-TYPE-SR:CAPS"></a>GST_RTCP_TYPE_SR</p></td>
-<td class="enum_member_description">
-<p>Sender report</p>
-</td>
-<td class="enum_member_annotations"> </td>
+<td> </td>
+<td> </td>
 </tr>
 <tr>
 <td class="enum_member_name"><p><a name="GST-RTCP-TYPE-RR:CAPS"></a>GST_RTCP_TYPE_RR</p></td>
-<td class="enum_member_description">
-<p>Receiver report</p>
-</td>
-<td class="enum_member_annotations"> </td>
+<td> </td>
+<td> </td>
 </tr>
 <tr>
 <td class="enum_member_name"><p><a name="GST-RTCP-TYPE-SDES:CAPS"></a>GST_RTCP_TYPE_SDES</p></td>
-<td class="enum_member_description">
-<p>Source description</p>
-</td>
-<td class="enum_member_annotations"> </td>
+<td> </td>
+<td> </td>
 </tr>
 <tr>
 <td class="enum_member_name"><p><a name="GST-RTCP-TYPE-BYE:CAPS"></a>GST_RTCP_TYPE_BYE</p></td>
-<td class="enum_member_description">
-<p>Goodbye</p>
-</td>
-<td class="enum_member_annotations"> </td>
+<td> </td>
+<td> </td>
 </tr>
 <tr>
 <td class="enum_member_name"><p><a name="GST-RTCP-TYPE-APP:CAPS"></a>GST_RTCP_TYPE_APP</p></td>
-<td class="enum_member_description">
-<p>Application defined</p>
-</td>
-<td class="enum_member_annotations"> </td>
+<td> </td>
+<td> </td>
 </tr>
 <tr>
 <td class="enum_member_name"><p><a name="GST-RTCP-TYPE-RTPFB:CAPS"></a>GST_RTCP_TYPE_RTPFB</p></td>
-<td class="enum_member_description">
-<p>Transport layer feedback.</p>
-</td>
-<td class="enum_member_annotations"> </td>
+<td> </td>
+<td> </td>
 </tr>
 <tr>
 <td class="enum_member_name"><p><a name="GST-RTCP-TYPE-PSFB:CAPS"></a>GST_RTCP_TYPE_PSFB</p></td>
-<td class="enum_member_description">
-<p>Payload-specific feedback.</p>
-</td>
-<td class="enum_member_annotations"> </td>
+<td> </td>
+<td> </td>
 </tr>
 </tbody>
 </table></div>
@@ -2710,37 +1067,10 @@
   guint          offset;
 };
 </pre>
-<p>Data structure that points to a packet at <em class="parameter"><code>offset</code></em>
- in <em class="parameter"><code>buffer</code></em>
-.
-The size of the structure is made public to allow stack allocations.</p>
-<div class="refsect3">
-<a name="GstRTCPPacket.members"></a><h4>Members</h4>
-<div class="informaltable"><table class="informaltable" width="100%" border="0">
-<colgroup>
-<col width="300px" class="struct_members_name">
-<col class="struct_members_description">
-<col width="200px" class="struct_members_annotations">
-</colgroup>
-<tbody>
-<tr>
-<td class="struct_member_name"><p><a class="link" href="gst-plugins-base-libs-gstrtcpbuffer.html#GstRTCPBuffer" title="struct GstRTCPBuffer"><span class="type">GstRTCPBuffer</span></a> *<em class="structfield"><code><a name="GstRTCPPacket.rtcp"></a>rtcp</code></em>;</p></td>
-<td class="struct_member_description"><p>pointer to RTCP buffer</p></td>
-<td class="struct_member_annotations"> </td>
-</tr>
-<tr>
-<td class="struct_member_name"><p><a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#guint"><span class="type">guint</span></a> <em class="structfield"><code><a name="GstRTCPPacket.offset"></a>offset</code></em>;</p></td>
-<td class="struct_member_description"><p>offset of packet in buffer data</p></td>
-<td class="struct_member_annotations"> </td>
-</tr>
-</tbody>
-</table></div>
-</div>
 </div>
 <hr>
 <div class="refsect2">
 <a name="GstRTCPSDESType"></a><h3>enum GstRTCPSDESType</h3>
-<p>Different types of SDES content.</p>
 <div class="refsect3">
 <a name="GstRTCPSDESType.members"></a><h4>Members</h4>
 <div class="informaltable"><table class="informaltable" width="100%" border="0">
@@ -2752,73 +1082,53 @@
 <tbody>
 <tr>
 <td class="enum_member_name"><p><a name="GST-RTCP-SDES-INVALID:CAPS"></a>GST_RTCP_SDES_INVALID</p></td>
-<td class="enum_member_description">
-<p>Invalid SDES entry</p>
-</td>
-<td class="enum_member_annotations"> </td>
+<td> </td>
+<td> </td>
 </tr>
 <tr>
 <td class="enum_member_name"><p><a name="GST-RTCP-SDES-END:CAPS"></a>GST_RTCP_SDES_END</p></td>
-<td class="enum_member_description">
-<p>End of SDES list</p>
-</td>
-<td class="enum_member_annotations"> </td>
+<td> </td>
+<td> </td>
 </tr>
 <tr>
 <td class="enum_member_name"><p><a name="GST-RTCP-SDES-CNAME:CAPS"></a>GST_RTCP_SDES_CNAME</p></td>
-<td class="enum_member_description">
-<p>Canonical name</p>
-</td>
-<td class="enum_member_annotations"> </td>
+<td> </td>
+<td> </td>
 </tr>
 <tr>
 <td class="enum_member_name"><p><a name="GST-RTCP-SDES-NAME:CAPS"></a>GST_RTCP_SDES_NAME</p></td>
-<td class="enum_member_description">
-<p>User name</p>
-</td>
-<td class="enum_member_annotations"> </td>
+<td> </td>
+<td> </td>
 </tr>
 <tr>
 <td class="enum_member_name"><p><a name="GST-RTCP-SDES-EMAIL:CAPS"></a>GST_RTCP_SDES_EMAIL</p></td>
-<td class="enum_member_description">
-<p>User's electronic mail address</p>
-</td>
-<td class="enum_member_annotations"> </td>
+<td> </td>
+<td> </td>
 </tr>
 <tr>
 <td class="enum_member_name"><p><a name="GST-RTCP-SDES-PHONE:CAPS"></a>GST_RTCP_SDES_PHONE</p></td>
-<td class="enum_member_description">
-<p>User's phone number</p>
-</td>
-<td class="enum_member_annotations"> </td>
+<td> </td>
+<td> </td>
 </tr>
 <tr>
 <td class="enum_member_name"><p><a name="GST-RTCP-SDES-LOC:CAPS"></a>GST_RTCP_SDES_LOC</p></td>
-<td class="enum_member_description">
-<p>Geographic user location</p>
-</td>
-<td class="enum_member_annotations"> </td>
+<td> </td>
+<td> </td>
 </tr>
 <tr>
 <td class="enum_member_name"><p><a name="GST-RTCP-SDES-TOOL:CAPS"></a>GST_RTCP_SDES_TOOL</p></td>
-<td class="enum_member_description">
-<p>Name of application or tool</p>
-</td>
-<td class="enum_member_annotations"> </td>
+<td> </td>
+<td> </td>
 </tr>
 <tr>
 <td class="enum_member_name"><p><a name="GST-RTCP-SDES-NOTE:CAPS"></a>GST_RTCP_SDES_NOTE</p></td>
-<td class="enum_member_description">
-<p>Notice about the source</p>
-</td>
-<td class="enum_member_annotations"> </td>
+<td> </td>
+<td> </td>
 </tr>
 <tr>
 <td class="enum_member_name"><p><a name="GST-RTCP-SDES-PRIV:CAPS"></a>GST_RTCP_SDES_PRIV</p></td>
-<td class="enum_member_description">
-<p>Private extensions</p>
-</td>
-<td class="enum_member_annotations"> </td>
+<td> </td>
+<td> </td>
 </tr>
 </tbody>
 </table></div>
@@ -2827,7 +1137,6 @@
 <hr>
 <div class="refsect2">
 <a name="GstRTCPFBType"></a><h3>enum GstRTCPFBType</h3>
-<p>Different types of feedback messages.</p>
 <div class="refsect3">
 <a name="GstRTCPFBType.members"></a><h4>Members</h4>
 <div class="informaltable"><table class="informaltable" width="100%" border="0">
@@ -2839,96 +1148,68 @@
 <tbody>
 <tr>
 <td class="enum_member_name"><p><a name="GST-RTCP-FB-TYPE-INVALID:CAPS"></a>GST_RTCP_FB_TYPE_INVALID</p></td>
-<td class="enum_member_description">
-<p>Invalid type</p>
-</td>
-<td class="enum_member_annotations"> </td>
+<td> </td>
+<td> </td>
 </tr>
 <tr>
 <td class="enum_member_name"><p><a name="GST-RTCP-RTPFB-TYPE-NACK:CAPS"></a>GST_RTCP_RTPFB_TYPE_NACK</p></td>
-<td class="enum_member_description">
-<p>Generic NACK</p>
-</td>
-<td class="enum_member_annotations"> </td>
+<td> </td>
+<td> </td>
 </tr>
 <tr>
 <td class="enum_member_name"><p><a name="GST-RTCP-RTPFB-TYPE-TMMBR:CAPS"></a>GST_RTCP_RTPFB_TYPE_TMMBR</p></td>
-<td class="enum_member_description">
-<p>Temporary Maximum Media Stream Bit Rate Request</p>
-</td>
-<td class="enum_member_annotations"> </td>
+<td> </td>
+<td> </td>
 </tr>
 <tr>
 <td class="enum_member_name"><p><a name="GST-RTCP-RTPFB-TYPE-TMMBN:CAPS"></a>GST_RTCP_RTPFB_TYPE_TMMBN</p></td>
-<td class="enum_member_description">
-<p>Temporary Maximum Media Stream Bit Rate
-   Notification</p>
-</td>
-<td class="enum_member_annotations"> </td>
+<td> </td>
+<td> </td>
 </tr>
 <tr>
 <td class="enum_member_name"><p><a name="GST-RTCP-RTPFB-TYPE-RTCP-SR-REQ:CAPS"></a>GST_RTCP_RTPFB_TYPE_RTCP_SR_REQ</p></td>
-<td class="enum_member_description">
-<p>Request an SR packet for early
-   synchronization</p>
-</td>
-<td class="enum_member_annotations"> </td>
+<td> </td>
+<td> </td>
 </tr>
 <tr>
 <td class="enum_member_name"><p><a name="GST-RTCP-PSFB-TYPE-PLI:CAPS"></a>GST_RTCP_PSFB_TYPE_PLI</p></td>
-<td class="enum_member_description">
-<p>Picture Loss Indication</p>
-</td>
-<td class="enum_member_annotations"> </td>
+<td> </td>
+<td> </td>
 </tr>
 <tr>
 <td class="enum_member_name"><p><a name="GST-RTCP-PSFB-TYPE-SLI:CAPS"></a>GST_RTCP_PSFB_TYPE_SLI</p></td>
-<td class="enum_member_description">
-<p>Slice Loss Indication</p>
-</td>
-<td class="enum_member_annotations"> </td>
+<td> </td>
+<td> </td>
 </tr>
 <tr>
 <td class="enum_member_name"><p><a name="GST-RTCP-PSFB-TYPE-RPSI:CAPS"></a>GST_RTCP_PSFB_TYPE_RPSI</p></td>
-<td class="enum_member_description">
-<p>Reference Picture Selection Indication</p>
-</td>
-<td class="enum_member_annotations"> </td>
+<td> </td>
+<td> </td>
 </tr>
 <tr>
 <td class="enum_member_name"><p><a name="GST-RTCP-PSFB-TYPE-AFB:CAPS"></a>GST_RTCP_PSFB_TYPE_AFB</p></td>
-<td class="enum_member_description">
-<p>Application layer Feedback</p>
-</td>
-<td class="enum_member_annotations"> </td>
+<td> </td>
+<td> </td>
 </tr>
 <tr>
 <td class="enum_member_name"><p><a name="GST-RTCP-PSFB-TYPE-FIR:CAPS"></a>GST_RTCP_PSFB_TYPE_FIR</p></td>
-<td class="enum_member_description">
-<p>Full Intra Request Command</p>
-</td>
-<td class="enum_member_annotations"> </td>
+<td> </td>
+<td> </td>
 </tr>
 <tr>
 <td class="enum_member_name"><p><a name="GST-RTCP-PSFB-TYPE-TSTR:CAPS"></a>GST_RTCP_PSFB_TYPE_TSTR</p></td>
-<td class="enum_member_description">
-<p>Temporal-Spatial Trade-off Request</p>
-</td>
-<td class="enum_member_annotations"> </td>
+<td> </td>
+<td> </td>
 </tr>
 <tr>
 <td class="enum_member_name"><p><a name="GST-RTCP-PSFB-TYPE-TSTN:CAPS"></a>GST_RTCP_PSFB_TYPE_TSTN</p></td>
-<td class="enum_member_description">
-<p>Temporal-Spatial Trade-off Notification</p>
-</td>
-<td class="enum_member_annotations"> </td>
+<td> </td>
+<td> </td>
 </tr>
 <tr>
 <td class="enum_member_name"><p><a name="GST-RTCP-PSFB-TYPE-VBCN:CAPS"></a>GST_RTCP_PSFB_TYPE_VBCN</p></td>
-<td class="enum_member_description">
-<p>Video Back Channel Message</p>
-</td>
-<td class="enum_member_annotations"> </td>
+<td> </td>
+<td> </td>
 </tr>
 </tbody>
 </table></div>
@@ -2950,10 +1231,6 @@
 </pre>
 </div>
 </div>
-<div class="refsect1">
-<a name="gst-plugins-base-libs-gstrtcpbuffer.see-also"></a><h2>See Also</h2>
-<p><a class="link" href="gst-plugins-base-libs-gstrtpbasepayload.html#GstRTPBasePayload"><span class="type">GstRTPBasePayload</span></a>, <a class="link" href="gst-plugins-base-libs-gstrtpbasedepayload.html#GstRTPBaseDepayload"><span class="type">GstRTPBaseDepayload</span></a>, <span class="type">gstrtpbuffer</span></p>
-</div>
 </div>
 <div class="footer">
 <hr>Generated by GTK-Doc V1.25</div>
diff --git a/docs/libs/html/gst-plugins-base-libs-gstrtpbaseaudiopayload.html b/docs/libs/html/gst-plugins-base-libs-gstrtpbaseaudiopayload.html
index 88195fc..b893552 100644
--- a/docs/libs/html/gst-plugins-base-libs-gstrtpbaseaudiopayload.html
+++ b/docs/libs/html/gst-plugins-base-libs-gstrtpbaseaudiopayload.html
@@ -29,7 +29,7 @@
 <div class="refnamediv"><table width="100%"><tr>
 <td valign="top">
 <h2><span class="refentrytitle"><a name="gst-plugins-base-libs-gstrtpbaseaudiopayload.top_of_page"></a>gstrtpbaseaudiopayload</span></h2>
-<p>gstrtpbaseaudiopayload — Base class for audio RTP payloader</p>
+<p>gstrtpbaseaudiopayload</p>
 </td>
 <td class="gallery_image" valign="top" align="right"></td>
 </tr></table></div>
@@ -159,35 +159,6 @@
 </div>
 <div class="refsect1">
 <a name="gst-plugins-base-libs-gstrtpbaseaudiopayload.description"></a><h2>Description</h2>
-<p>Provides a base class for audio RTP payloaders for frame or sample based
-audio codecs (constant bitrate)</p>
-<p>This class derives from GstRTPBasePayload. It can be used for payloading
-audio codecs. It will only work with constant bitrate codecs. It supports
-both frame based and sample based codecs. It takes care of packing up the
-audio data into RTP packets and filling up the headers accordingly. The
-payloading is done based on the maximum MTU (mtu) and the maximum time per
-packet (max-ptime). The general idea is to divide large data buffers into
-smaller RTP packets. The RTP packet size is the minimum of either the MTU,
-max-ptime (if set) or available data. The RTP packet size is always larger or
-equal to min-ptime (if set). If min-ptime is not set, any residual data is
-sent in a last RTP packet. In the case of frame based codecs, the resulting
-RTP packets always contain full frames.</p>
-<div class="refsect2">
-<a name="id-1.2.9.3.9.4"></a><h3>Usage</h3>
-<p>
-To use this base class, your child element needs to call either
-<a class="link" href="gst-plugins-base-libs-gstrtpbaseaudiopayload.html#gst-rtp-base-audio-payload-set-frame-based" title="gst_rtp_base_audio_payload_set_frame_based ()"><code class="function">gst_rtp_base_audio_payload_set_frame_based()</code></a> or
-<a class="link" href="gst-plugins-base-libs-gstrtpbaseaudiopayload.html#gst-rtp-base-audio-payload-set-sample-based" title="gst_rtp_base_audio_payload_set_sample_based ()"><code class="function">gst_rtp_base_audio_payload_set_sample_based()</code></a>. This is usually done in the
-element's <code class="function">_init()</code> function. Then, the child element must call either
-<a class="link" href="gst-plugins-base-libs-gstrtpbaseaudiopayload.html#gst-rtp-base-audio-payload-set-frame-options" title="gst_rtp_base_audio_payload_set_frame_options ()"><code class="function">gst_rtp_base_audio_payload_set_frame_options()</code></a>,
-<a class="link" href="gst-plugins-base-libs-gstrtpbaseaudiopayload.html#gst-rtp-base-audio-payload-set-sample-options" title="gst_rtp_base_audio_payload_set_sample_options ()"><code class="function">gst_rtp_base_audio_payload_set_sample_options()</code></a> or
-gst_rtp_base_audio_payload_set_samplebits_options. Since
-GstRTPBaseAudioPayload derives from GstRTPBasePayload, the child element
-must set any variables or call/override any functions required by that base
-class. The child element does not need to override any other functions
-specific to GstRTPBaseAudioPayload.
-</p>
-</div>
 </div>
 <div class="refsect1">
 <a name="gst-plugins-base-libs-gstrtpbaseaudiopayload.functions_details"></a><h2>Functions</h2>
@@ -196,23 +167,6 @@
 <pre class="programlisting"><span class="returnvalue">void</span>
 gst_rtp_base_audio_payload_set_frame_based
                                (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstrtpbaseaudiopayload.html#GstRTPBaseAudioPayload"><span class="type">GstRTPBaseAudioPayload</span></a> *rtpbaseaudiopayload</code></em>);</pre>
-<p>Tells <a class="link" href="gst-plugins-base-libs-gstrtpbaseaudiopayload.html#GstRTPBaseAudioPayload"><span class="type">GstRTPBaseAudioPayload</span></a> that the child element is for a frame based
-audio codec</p>
-<div class="refsect3">
-<a name="gst-rtp-base-audio-payload-set-frame-based.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>rtpbaseaudiopayload</p></td>
-<td class="parameter_description"><p>a pointer to the element.</p></td>
-<td class="parameter_annotations"> </td>
-</tr></tbody>
-</table></div>
-</div>
 </div>
 <hr>
 <div class="refsect2">
@@ -222,34 +176,6 @@
                                (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstrtpbaseaudiopayload.html#GstRTPBaseAudioPayload"><span class="type">GstRTPBaseAudioPayload</span></a> *rtpbaseaudiopayload</code></em>,
                                 <em class="parameter"><code><a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#gint"><span class="type">gint</span></a> frame_duration</code></em>,
                                 <em class="parameter"><code><a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#gint"><span class="type">gint</span></a> frame_size</code></em>);</pre>
-<p>Sets the options for frame based audio codecs.</p>
-<div class="refsect3">
-<a name="gst-rtp-base-audio-payload-set-frame-options.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>rtpbaseaudiopayload</p></td>
-<td class="parameter_description"><p>a pointer to the element.</p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-<tr>
-<td class="parameter_name"><p>frame_duration</p></td>
-<td class="parameter_description"><p>The duraction of an audio frame in milliseconds.</p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-<tr>
-<td class="parameter_name"><p>frame_size</p></td>
-<td class="parameter_description"><p>The size of an audio frame in bytes.</p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-</tbody>
-</table></div>
-</div>
 </div>
 <hr>
 <div class="refsect2">
@@ -257,23 +183,6 @@
 <pre class="programlisting"><span class="returnvalue">void</span>
 gst_rtp_base_audio_payload_set_sample_based
                                (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstrtpbaseaudiopayload.html#GstRTPBaseAudioPayload"><span class="type">GstRTPBaseAudioPayload</span></a> *rtpbaseaudiopayload</code></em>);</pre>
-<p>Tells <a class="link" href="gst-plugins-base-libs-gstrtpbaseaudiopayload.html#GstRTPBaseAudioPayload"><span class="type">GstRTPBaseAudioPayload</span></a> that the child element is for a sample based
-audio codec</p>
-<div class="refsect3">
-<a name="gst-rtp-base-audio-payload-set-sample-based.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>rtpbaseaudiopayload</p></td>
-<td class="parameter_description"><p>a pointer to the element.</p></td>
-<td class="parameter_annotations"> </td>
-</tr></tbody>
-</table></div>
-</div>
 </div>
 <hr>
 <div class="refsect2">
@@ -282,29 +191,6 @@
 gst_rtp_base_audio_payload_set_sample_options
                                (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstrtpbaseaudiopayload.html#GstRTPBaseAudioPayload"><span class="type">GstRTPBaseAudioPayload</span></a> *rtpbaseaudiopayload</code></em>,
                                 <em class="parameter"><code><a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#gint"><span class="type">gint</span></a> sample_size</code></em>);</pre>
-<p>Sets the options for sample based audio codecs.</p>
-<div class="refsect3">
-<a name="gst-rtp-base-audio-payload-set-sample-options.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>rtpbaseaudiopayload</p></td>
-<td class="parameter_description"><p>a pointer to the element.</p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-<tr>
-<td class="parameter_name"><p>sample_size</p></td>
-<td class="parameter_description"><p>Size per sample in bytes.</p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-</tbody>
-</table></div>
-</div>
 </div>
 <hr>
 <div class="refsect2">
@@ -312,27 +198,6 @@
 <pre class="programlisting"><a href="/usr/share/gtk-doc/html/gstreamer-libs-1.0GstAdapter.html#GstAdapter-struct"><span class="returnvalue">GstAdapter</span></a> *
 gst_rtp_base_audio_payload_get_adapter
                                (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstrtpbaseaudiopayload.html#GstRTPBaseAudioPayload"><span class="type">GstRTPBaseAudioPayload</span></a> *rtpbaseaudiopayload</code></em>);</pre>
-<p>Gets the internal adapter used by the depayloader.</p>
-<div class="refsect3">
-<a name="gst-rtp-base-audio-payload-get-adapter.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>rtpbaseaudiopayload</p></td>
-<td class="parameter_description"><p>a <a class="link" href="gst-plugins-base-libs-gstrtpbaseaudiopayload.html#GstRTPBaseAudioPayload"><span class="type">GstRTPBaseAudioPayload</span></a></p></td>
-<td class="parameter_annotations"> </td>
-</tr></tbody>
-</table></div>
-</div>
-<div class="refsect3">
-<a name="gst-rtp-base-audio-payload-get-adapter.returns"></a><h4>Returns</h4>
-<p> a <a href="/usr/share/gtk-doc/html/gstreamer-libs-1.0GstAdapter.html#GstAdapter-struct"><span class="type">GstAdapter</span></a>. </p>
-<p><span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>]</span></p>
-</div>
 </div>
 <hr>
 <div class="refsect2">
@@ -342,48 +207,6 @@
                                  <em class="parameter"><code>const <a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#guint8"><span class="type">guint8</span></a> *data</code></em>,
                                  <em class="parameter"><code><a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#guint"><span class="type">guint</span></a> payload_len</code></em>,
                                  <em class="parameter"><code><a href="/usr/share/gtk-doc/html/gstreamer-1.0GstClock.html#GstClockTime"><span class="type">GstClockTime</span></a> timestamp</code></em>);</pre>
-<p>Create an RTP buffer and store <em class="parameter"><code>payload_len</code></em>
- bytes of <em class="parameter"><code>data</code></em>
- as the
-payload. Set the timestamp on the new buffer to <em class="parameter"><code>timestamp</code></em>
- before pushing
-the buffer downstream.</p>
-<div class="refsect3">
-<a name="gst-rtp-base-audio-payload-push.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>baseaudiopayload</p></td>
-<td class="parameter_description"><p>a <a class="link" href="gst-plugins-base-libs-gstrtpbasepayload.html#GstRTPBasePayload"><span class="type">GstRTPBasePayload</span></a></p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-<tr>
-<td class="parameter_name"><p>data</p></td>
-<td class="parameter_description"><p>data to set as payload</p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-<tr>
-<td class="parameter_name"><p>payload_len</p></td>
-<td class="parameter_description"><p>length of payload</p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-<tr>
-<td class="parameter_name"><p>timestamp</p></td>
-<td class="parameter_description"><p>a <a href="/usr/share/gtk-doc/html/gstreamer-1.0GstClock.html#GstClockTime"><span class="type">GstClockTime</span></a></p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-</tbody>
-</table></div>
-</div>
-<div class="refsect3">
-<a name="gst-rtp-base-audio-payload-push.returns"></a><h4>Returns</h4>
-<p> a <a href="/usr/share/gtk-doc/html/gstreamer-1.0GstPad.html#GstFlowReturn"><span class="type">GstFlowReturn</span></a></p>
-</div>
 </div>
 <hr>
 <div class="refsect2">
@@ -392,46 +215,6 @@
 gst_rtp_base_audio_payload_flush (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstrtpbaseaudiopayload.html#GstRTPBaseAudioPayload"><span class="type">GstRTPBaseAudioPayload</span></a> *baseaudiopayload</code></em>,
                                   <em class="parameter"><code><a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#guint"><span class="type">guint</span></a> payload_len</code></em>,
                                   <em class="parameter"><code><a href="/usr/share/gtk-doc/html/gstreamer-1.0GstClock.html#GstClockTime"><span class="type">GstClockTime</span></a> timestamp</code></em>);</pre>
-<p>Create an RTP buffer and store <em class="parameter"><code>payload_len</code></em>
- bytes of the adapter as the
-payload. Set the timestamp on the new buffer to <em class="parameter"><code>timestamp</code></em>
- before pushing
-the buffer downstream.</p>
-<p>If <em class="parameter"><code>payload_len</code></em>
- is -1, all pending bytes will be flushed. If <em class="parameter"><code>timestamp</code></em>
- is
--1, the timestamp will be calculated automatically.</p>
-<div class="refsect3">
-<a name="gst-rtp-base-audio-payload-flush.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>baseaudiopayload</p></td>
-<td class="parameter_description"><p>a <a class="link" href="gst-plugins-base-libs-gstrtpbasepayload.html#GstRTPBasePayload"><span class="type">GstRTPBasePayload</span></a></p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-<tr>
-<td class="parameter_name"><p>payload_len</p></td>
-<td class="parameter_description"><p>length of payload</p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-<tr>
-<td class="parameter_name"><p>timestamp</p></td>
-<td class="parameter_description"><p>a <a href="/usr/share/gtk-doc/html/gstreamer-1.0GstClock.html#GstClockTime"><span class="type">GstClockTime</span></a></p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-</tbody>
-</table></div>
-</div>
-<div class="refsect3">
-<a name="gst-rtp-base-audio-payload-flush.returns"></a><h4>Returns</h4>
-<p> a <a href="/usr/share/gtk-doc/html/gstreamer-1.0GstPad.html#GstFlowReturn"><span class="type">GstFlowReturn</span></a></p>
-</div>
 </div>
 <hr>
 <div class="refsect2">
@@ -440,29 +223,6 @@
 gst_rtp_base_audio_payload_set_samplebits_options
                                (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstrtpbaseaudiopayload.html#GstRTPBaseAudioPayload"><span class="type">GstRTPBaseAudioPayload</span></a> *rtpbaseaudiopayload</code></em>,
                                 <em class="parameter"><code><a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#gint"><span class="type">gint</span></a> sample_size</code></em>);</pre>
-<p>Sets the options for sample based audio codecs.</p>
-<div class="refsect3">
-<a name="gst-rtp-base-audio-payload-set-samplebits-options.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>rtpbaseaudiopayload</p></td>
-<td class="parameter_description"><p>a pointer to the element.</p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-<tr>
-<td class="parameter_name"><p>sample_size</p></td>
-<td class="parameter_description"><p>Size per sample in bits.</p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-</tbody>
-</table></div>
-</div>
 </div>
 </div>
 <div class="refsect1">
@@ -478,18 +238,6 @@
   GstRTPBasePayloadClass parent_class;
 };
 </pre>
-<p>Base class for audio RTP payloader.</p>
-<div class="refsect3">
-<a name="GstRTPBaseAudioPayloadClass.members"></a><h4>Members</h4>
-<div class="informaltable"><table class="informaltable" width="100%" border="0">
-<colgroup>
-<col width="300px" class="struct_members_name">
-<col class="struct_members_description">
-<col width="200px" class="struct_members_annotations">
-</colgroup>
-<tbody></tbody>
-</table></div>
-</div>
 </div>
 </div>
 <div class="refsect1">
diff --git a/docs/libs/html/gst-plugins-base-libs-gstrtpbasedepayload.html b/docs/libs/html/gst-plugins-base-libs-gstrtpbasedepayload.html
index 48b09ff..fe65232 100644
--- a/docs/libs/html/gst-plugins-base-libs-gstrtpbasedepayload.html
+++ b/docs/libs/html/gst-plugins-base-libs-gstrtpbasedepayload.html
@@ -29,7 +29,7 @@
 <div class="refnamediv"><table width="100%"><tr>
 <td valign="top">
 <h2><span class="refentrytitle"><a name="gst-plugins-base-libs-gstrtpbasedepayload.top_of_page"></a>gstrtpbasedepayload</span></h2>
-<p>gstrtpbasedepayload — Base class for RTP depayloader</p>
+<p>gstrtpbasedepayload</p>
 </td>
 <td class="gallery_image" valign="top" align="right"></td>
 </tr></table></div>
@@ -123,7 +123,6 @@
 </div>
 <div class="refsect1">
 <a name="gst-plugins-base-libs-gstrtpbasedepayload.description"></a><h2>Description</h2>
-<p>Provides a base class for RTP depayloaders</p>
 </div>
 <div class="refsect1">
 <a name="gst-plugins-base-libs-gstrtpbasedepayload.functions_details"></a><h2>Functions</h2>
@@ -144,39 +143,6 @@
 <pre class="programlisting"><a href="/usr/share/gtk-doc/html/gstreamer-1.0GstPad.html#GstFlowReturn"><span class="returnvalue">GstFlowReturn</span></a>
 gst_rtp_base_depayload_push (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstrtpbasedepayload.html#GstRTPBaseDepayload"><span class="type">GstRTPBaseDepayload</span></a> *filter</code></em>,
                              <em class="parameter"><code><a href="/usr/share/gtk-doc/html/gstreamer-1.0GstBuffer.html#GstBuffer-struct"><span class="type">GstBuffer</span></a> *out_buf</code></em>);</pre>
-<p>Push <em class="parameter"><code>out_buf</code></em>
- to the peer of <em class="parameter"><code>filter</code></em>
-. This function takes ownership of
-<em class="parameter"><code>out_buf</code></em>
-.</p>
-<p>This function will by default apply the last incomming timestamp on
-the outgoing buffer when it didn't have a timestamp already.</p>
-<div class="refsect3">
-<a name="gst-rtp-base-depayload-push.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>filter</p></td>
-<td class="parameter_description"><p>a <a class="link" href="gst-plugins-base-libs-gstrtpbasedepayload.html#GstRTPBaseDepayload"><span class="type">GstRTPBaseDepayload</span></a></p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-<tr>
-<td class="parameter_name"><p>out_buf</p></td>
-<td class="parameter_description"><p>a <a href="/usr/share/gtk-doc/html/gstreamer-1.0GstBuffer.html#GstBuffer-struct"><span class="type">GstBuffer</span></a></p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-</tbody>
-</table></div>
-</div>
-<div class="refsect3">
-<a name="gst-rtp-base-depayload-push.returns"></a><h4>Returns</h4>
-<p> a <a href="/usr/share/gtk-doc/html/gstreamer-1.0GstPad.html#GstFlowReturn"><span class="type">GstFlowReturn</span></a>.</p>
-</div>
 </div>
 <hr>
 <div class="refsect2">
@@ -184,37 +150,6 @@
 <pre class="programlisting"><a href="/usr/share/gtk-doc/html/gstreamer-1.0GstPad.html#GstFlowReturn"><span class="returnvalue">GstFlowReturn</span></a>
 gst_rtp_base_depayload_push_list (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstrtpbasedepayload.html#GstRTPBaseDepayload"><span class="type">GstRTPBaseDepayload</span></a> *filter</code></em>,
                                   <em class="parameter"><code><a href="/usr/share/gtk-doc/html/gstreamer-1.0GstBufferList.html#GstBufferList-struct"><span class="type">GstBufferList</span></a> *out_list</code></em>);</pre>
-<p>Push <em class="parameter"><code>out_list</code></em>
- to the peer of <em class="parameter"><code>filter</code></em>
-. This function takes ownership of
-<em class="parameter"><code>out_list</code></em>
-.</p>
-<div class="refsect3">
-<a name="gst-rtp-base-depayload-push-list.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>filter</p></td>
-<td class="parameter_description"><p>a <a class="link" href="gst-plugins-base-libs-gstrtpbasedepayload.html#GstRTPBaseDepayload"><span class="type">GstRTPBaseDepayload</span></a></p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-<tr>
-<td class="parameter_name"><p>out_list</p></td>
-<td class="parameter_description"><p>a <a href="/usr/share/gtk-doc/html/gstreamer-1.0GstBufferList.html#GstBufferList-struct"><span class="type">GstBufferList</span></a></p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-</tbody>
-</table></div>
-</div>
-<div class="refsect3">
-<a name="gst-rtp-base-depayload-push-list.returns"></a><h4>Returns</h4>
-<p> a <a href="/usr/share/gtk-doc/html/gstreamer-1.0GstPad.html#GstFlowReturn"><span class="type">GstFlowReturn</span></a>.</p>
-</div>
 </div>
 </div>
 <div class="refsect1">
@@ -263,44 +198,6 @@
   GstBuffer * (*process_rtp_packet) (GstRTPBaseDepayload *base, GstRTPBuffer * rtp_buffer);
 };
 </pre>
-<p>Base class for audio RTP payloader.</p>
-<div class="refsect3">
-<a name="GstRTPBaseDepayloadClass.members"></a><h4>Members</h4>
-<div class="informaltable"><table class="informaltable" width="100%" border="0">
-<colgroup>
-<col width="300px" class="struct_members_name">
-<col class="struct_members_description">
-<col width="200px" class="struct_members_annotations">
-</colgroup>
-<tbody>
-<tr>
-<td class="struct_member_name"><p><em class="structfield"><code><a name="GstRTPBaseDepayloadClass.set-caps"></a>set_caps</code></em> ()</p></td>
-<td class="struct_member_description"><p>configure the depayloader</p></td>
-<td class="struct_member_annotations"> </td>
-</tr>
-<tr>
-<td class="struct_member_name"><p><em class="structfield"><code><a name="GstRTPBaseDepayloadClass.process"></a>process</code></em> ()</p></td>
-<td class="struct_member_description"><p>process incoming rtp packets</p></td>
-<td class="struct_member_annotations"> </td>
-</tr>
-<tr>
-<td class="struct_member_name"><p><em class="structfield"><code><a name="GstRTPBaseDepayloadClass.packet-lost"></a>packet_lost</code></em> ()</p></td>
-<td class="struct_member_description"><p>signal the depayloader about packet loss</p></td>
-<td class="struct_member_annotations"> </td>
-</tr>
-<tr>
-<td class="struct_member_name"><p><em class="structfield"><code><a name="GstRTPBaseDepayloadClass.handle-event"></a>handle_event</code></em> ()</p></td>
-<td class="struct_member_description"><p>custom event handling</p></td>
-<td class="struct_member_annotations"> </td>
-</tr>
-<tr>
-<td class="struct_member_name"><p><em class="structfield"><code><a name="GstRTPBaseDepayloadClass.process-rtp-packet"></a>process_rtp_packet</code></em> ()</p></td>
-<td> </td>
-<td> </td>
-</tr>
-</tbody>
-</table></div>
-</div>
 </div>
 </div>
 <div class="refsect1">
@@ -308,65 +205,7 @@
 <div class="refsect2">
 <a name="GstRTPBaseDepayload--stats"></a><h3>The <code class="literal">“stats”</code> property</h3>
 <pre class="programlisting">  “stats”                    <a href="/usr/share/gtk-doc/html/gstreamer-1.0GstStructure.html#GstStructure-struct"><span class="type">GstStructure</span></a> *</pre>
-<p>Various depayloader statistics retrieved atomically (and are therefore
-synchroized with each other). This property return a GstStructure named
-application/x-rtp-depayload-stats containing the following fields relating to
-the last processed buffer and current state of the stream being depayloaded:</p>
-<div class="variablelist"><table border="0" class="variablelist">
-<colgroup>
-<col align="left" valign="top">
-<col>
-</colgroup>
-<tbody>
-<tr>
-<td><p><span class="term">clock-rate</span></p></td>
-<td><p><a href="/usr/share/gtk-doc/html/gobjectgobject-Type-Information.html#G-TYPE-UINT:CAPS"><span class="type">G_TYPE_UINT</span></a>, clock-rate of the
-    stream</p></td>
-</tr>
-<tr>
-<td><p><span class="term">npt-start</span></p></td>
-<td><p><a href="/usr/share/gtk-doc/html/gobjectgobject-Type-Information.html#G-TYPE-UINT64:CAPS"><span class="type">G_TYPE_UINT64</span></a>, time of playback start
-    </p></td>
-</tr>
-<tr>
-<td><p><span class="term">npt-stop</span></p></td>
-<td><p><a href="/usr/share/gtk-doc/html/gobjectgobject-Type-Information.html#G-TYPE-UINT64:CAPS"><span class="type">G_TYPE_UINT64</span></a>, time of playback stop
-    </p></td>
-</tr>
-<tr>
-<td><p><span class="term">play-speed</span></p></td>
-<td><p><a href="/usr/share/gtk-doc/html/gobjectgobject-Type-Information.html#G-TYPE-DOUBLE:CAPS"><span class="type">G_TYPE_DOUBLE</span></a>, the playback speed
-    </p></td>
-</tr>
-<tr>
-<td><p><span class="term">play-scale</span></p></td>
-<td><p><a href="/usr/share/gtk-doc/html/gobjectgobject-Type-Information.html#G-TYPE-DOUBLE:CAPS"><span class="type">G_TYPE_DOUBLE</span></a>, the playback scale
-    </p></td>
-</tr>
-<tr>
-<td><p><span class="term">running-time-dts</span></p></td>
-<td><p><a href="/usr/share/gtk-doc/html/gobjectgobject-Type-Information.html#G-TYPE-UINT64:CAPS"><span class="type">G_TYPE_UINT64</span></a>, the last running-time of the
-     last DTS
-    </p></td>
-</tr>
-<tr>
-<td><p><span class="term">running-time-pts</span></p></td>
-<td><p><a href="/usr/share/gtk-doc/html/gobjectgobject-Type-Information.html#G-TYPE-UINT64:CAPS"><span class="type">G_TYPE_UINT64</span></a>, the last running-time of the
-     last PTS
-    </p></td>
-</tr>
-<tr>
-<td><p><span class="term">seqnum</span></p></td>
-<td><p><a href="/usr/share/gtk-doc/html/gobjectgobject-Type-Information.html#G-TYPE-UINT:CAPS"><span class="type">G_TYPE_UINT</span></a>, the last seen seqnum
-    </p></td>
-</tr>
-<tr>
-<td><p><span class="term">timestamp</span></p></td>
-<td><p><a href="/usr/share/gtk-doc/html/gobjectgobject-Type-Information.html#G-TYPE-UINT:CAPS"><span class="type">G_TYPE_UINT</span></a>, the last seen RTP timestamp
-    </p></td>
-</tr>
-</tbody>
-</table></div>
+<p>Various statistics.</p>
 <p>Flags: Read</p>
 </div>
 </div>
diff --git a/docs/libs/html/gst-plugins-base-libs-gstrtpbasepayload.html b/docs/libs/html/gst-plugins-base-libs-gstrtpbasepayload.html
index b07b626..89851fb 100644
--- a/docs/libs/html/gst-plugins-base-libs-gstrtpbasepayload.html
+++ b/docs/libs/html/gst-plugins-base-libs-gstrtpbasepayload.html
@@ -29,7 +29,7 @@
 <div class="refnamediv"><table width="100%"><tr>
 <td valign="top">
 <h2><span class="refentrytitle"><a name="gst-plugins-base-libs-gstrtpbasepayload.top_of_page"></a>gstrtpbasepayload</span></h2>
-<p>gstrtpbasepayload — Base class for RTP payloader</p>
+<p>gstrtpbasepayload</p>
 </td>
 <td class="gallery_image" valign="top" align="right"></td>
 </tr></table></div>
@@ -217,7 +217,6 @@
 </div>
 <div class="refsect1">
 <a name="gst-plugins-base-libs-gstrtpbasepayload.description"></a><h2>Description</h2>
-<p>Provides a base class for RTP payloaders</p>
 </div>
 <div class="refsect1">
 <a name="gst-plugins-base-libs-gstrtpbasepayload.functions_details"></a><h2>Functions</h2>
@@ -225,92 +224,24 @@
 <a name="GST-RTP-BASE-PAYLOAD-MTU:CAPS"></a><h3>GST_RTP_BASE_PAYLOAD_MTU()</h3>
 <pre class="programlisting">#define GST_RTP_BASE_PAYLOAD_MTU(payload) (GST_RTP_BASE_PAYLOAD (payload)-&gt;mtu)
 </pre>
-<p>Get access to the configured MTU of <em class="parameter"><code>payload</code></em>
-.</p>
-<div class="refsect3">
-<a name="GST-RTP-BASE-PAYLOAD-MTU.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>payload</p></td>
-<td class="parameter_description"><p>a <a class="link" href="gst-plugins-base-libs-gstrtpbasepayload.html#GstRTPBasePayload"><span class="type">GstRTPBasePayload</span></a></p></td>
-<td class="parameter_annotations"> </td>
-</tr></tbody>
-</table></div>
-</div>
 </div>
 <hr>
 <div class="refsect2">
 <a name="GST-RTP-BASE-PAYLOAD-PT:CAPS"></a><h3>GST_RTP_BASE_PAYLOAD_PT()</h3>
 <pre class="programlisting">#define GST_RTP_BASE_PAYLOAD_PT(payload)  (GST_RTP_BASE_PAYLOAD (payload)-&gt;pt)
 </pre>
-<p>Get access to the configured payload type of <em class="parameter"><code>payload</code></em>
-.</p>
-<div class="refsect3">
-<a name="GST-RTP-BASE-PAYLOAD-PT.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>payload</p></td>
-<td class="parameter_description"><p>a <a class="link" href="gst-plugins-base-libs-gstrtpbasepayload.html#GstRTPBasePayload"><span class="type">GstRTPBasePayload</span></a></p></td>
-<td class="parameter_annotations"> </td>
-</tr></tbody>
-</table></div>
-</div>
 </div>
 <hr>
 <div class="refsect2">
 <a name="GST-RTP-BASE-PAYLOAD-SINKPAD:CAPS"></a><h3>GST_RTP_BASE_PAYLOAD_SINKPAD()</h3>
 <pre class="programlisting">#define GST_RTP_BASE_PAYLOAD_SINKPAD(payload) (GST_RTP_BASE_PAYLOAD (payload)-&gt;sinkpad)
 </pre>
-<p>Get access to the sinkpad of <em class="parameter"><code>payload</code></em>
-.</p>
-<div class="refsect3">
-<a name="GST-RTP-BASE-PAYLOAD-SINKPAD.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>payload</p></td>
-<td class="parameter_description"><p>a <a class="link" href="gst-plugins-base-libs-gstrtpbasepayload.html#GstRTPBasePayload"><span class="type">GstRTPBasePayload</span></a></p></td>
-<td class="parameter_annotations"> </td>
-</tr></tbody>
-</table></div>
-</div>
 </div>
 <hr>
 <div class="refsect2">
 <a name="GST-RTP-BASE-PAYLOAD-SRCPAD:CAPS"></a><h3>GST_RTP_BASE_PAYLOAD_SRCPAD()</h3>
 <pre class="programlisting">#define GST_RTP_BASE_PAYLOAD_SRCPAD(payload)  (GST_RTP_BASE_PAYLOAD (payload)-&gt;srcpad)
 </pre>
-<p>Get access to the srcpad of <em class="parameter"><code>payload</code></em>
-.</p>
-<div class="refsect3">
-<a name="GST-RTP-BASE-PAYLOAD-SRCPAD.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>payload</p></td>
-<td class="parameter_description"><p>a <a class="link" href="gst-plugins-base-libs-gstrtpbasepayload.html#GstRTPBasePayload"><span class="type">GstRTPBasePayload</span></a></p></td>
-<td class="parameter_annotations"> </td>
-</tr></tbody>
-</table></div>
-</div>
 </div>
 <hr>
 <div class="refsect2">
@@ -319,44 +250,6 @@
 gst_rtp_base_payload_is_filled (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstrtpbasepayload.html#GstRTPBasePayload"><span class="type">GstRTPBasePayload</span></a> *payload</code></em>,
                                 <em class="parameter"><code><a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#guint"><span class="type">guint</span></a> size</code></em>,
                                 <em class="parameter"><code><a href="/usr/share/gtk-doc/html/gstreamer-1.0GstClock.html#GstClockTime"><span class="type">GstClockTime</span></a> duration</code></em>);</pre>
-<p>Check if the packet with <em class="parameter"><code>size</code></em>
- and <em class="parameter"><code>duration</code></em>
- would exceed the configured
-maximum size.</p>
-<div class="refsect3">
-<a name="gst-rtp-base-payload-is-filled.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>payload</p></td>
-<td class="parameter_description"><p>a <a class="link" href="gst-plugins-base-libs-gstrtpbasepayload.html#GstRTPBasePayload"><span class="type">GstRTPBasePayload</span></a></p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-<tr>
-<td class="parameter_name"><p>size</p></td>
-<td class="parameter_description"><p>the size of the packet</p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-<tr>
-<td class="parameter_name"><p>duration</p></td>
-<td class="parameter_description"><p>the duration of the packet</p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-</tbody>
-</table></div>
-</div>
-<div class="refsect3">
-<a name="gst-rtp-base-payload-is-filled.returns"></a><h4>Returns</h4>
-<p> <a href="/usr/share/gtk-doc/html/glibglib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a> if the packet of <em class="parameter"><code>size</code></em>
-and <em class="parameter"><code>duration</code></em>
-would exceed the
-configured MTU or max_ptime.</p>
-</div>
 </div>
 <hr>
 <div class="refsect2">
@@ -364,37 +257,6 @@
 <pre class="programlisting"><a href="/usr/share/gtk-doc/html/gstreamer-1.0GstPad.html#GstFlowReturn"><span class="returnvalue">GstFlowReturn</span></a>
 gst_rtp_base_payload_push (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstrtpbasepayload.html#GstRTPBasePayload"><span class="type">GstRTPBasePayload</span></a> *payload</code></em>,
                            <em class="parameter"><code><a href="/usr/share/gtk-doc/html/gstreamer-1.0GstBuffer.html#GstBuffer-struct"><span class="type">GstBuffer</span></a> *buffer</code></em>);</pre>
-<p>Push <em class="parameter"><code>buffer</code></em>
- to the peer element of the payloader. The SSRC, payload type,
-seqnum and timestamp of the RTP buffer will be updated first.</p>
-<p>This function takes ownership of <em class="parameter"><code>buffer</code></em>
-.</p>
-<div class="refsect3">
-<a name="gst-rtp-base-payload-push.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>payload</p></td>
-<td class="parameter_description"><p>a <a class="link" href="gst-plugins-base-libs-gstrtpbasepayload.html#GstRTPBasePayload"><span class="type">GstRTPBasePayload</span></a></p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-<tr>
-<td class="parameter_name"><p>buffer</p></td>
-<td class="parameter_description"><p>a <a href="/usr/share/gtk-doc/html/gstreamer-1.0GstBuffer.html#GstBuffer-struct"><span class="type">GstBuffer</span></a></p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-</tbody>
-</table></div>
-</div>
-<div class="refsect3">
-<a name="gst-rtp-base-payload-push.returns"></a><h4>Returns</h4>
-<p> a <a href="/usr/share/gtk-doc/html/gstreamer-1.0GstPad.html#GstFlowReturn"><span class="type">GstFlowReturn</span></a>.</p>
-</div>
 </div>
 <hr>
 <div class="refsect2">
@@ -402,37 +264,6 @@
 <pre class="programlisting"><a href="/usr/share/gtk-doc/html/gstreamer-1.0GstPad.html#GstFlowReturn"><span class="returnvalue">GstFlowReturn</span></a>
 gst_rtp_base_payload_push_list (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstrtpbasepayload.html#GstRTPBasePayload"><span class="type">GstRTPBasePayload</span></a> *payload</code></em>,
                                 <em class="parameter"><code><a href="/usr/share/gtk-doc/html/gstreamer-1.0GstBufferList.html#GstBufferList-struct"><span class="type">GstBufferList</span></a> *list</code></em>);</pre>
-<p>Push <em class="parameter"><code>list</code></em>
- to the peer element of the payloader. The SSRC, payload type,
-seqnum and timestamp of the RTP buffer will be updated first.</p>
-<p>This function takes ownership of <em class="parameter"><code>list</code></em>
-.</p>
-<div class="refsect3">
-<a name="gst-rtp-base-payload-push-list.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>payload</p></td>
-<td class="parameter_description"><p>a <a class="link" href="gst-plugins-base-libs-gstrtpbasepayload.html#GstRTPBasePayload"><span class="type">GstRTPBasePayload</span></a></p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-<tr>
-<td class="parameter_name"><p>list</p></td>
-<td class="parameter_description"><p>a <a href="/usr/share/gtk-doc/html/gstreamer-1.0GstBufferList.html#GstBufferList-struct"><span class="type">GstBufferList</span></a></p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-</tbody>
-</table></div>
-</div>
-<div class="refsect3">
-<a name="gst-rtp-base-payload-push-list.returns"></a><h4>Returns</h4>
-<p> a <a href="/usr/share/gtk-doc/html/gstreamer-1.0GstPad.html#GstFlowReturn"><span class="type">GstFlowReturn</span></a>.</p>
-</div>
 </div>
 <hr>
 <div class="refsect2">
@@ -443,46 +274,6 @@
                                   <em class="parameter"><code><a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a> dynamic</code></em>,
                                   <em class="parameter"><code>const <a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *encoding_name</code></em>,
                                   <em class="parameter"><code><a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#guint32"><span class="type">guint32</span></a> clock_rate</code></em>);</pre>
-<p>Set the rtp options of the payloader. These options will be set in the caps
-of the payloader. Subclasses must call this method before calling
-<a class="link" href="gst-plugins-base-libs-gstrtpbasepayload.html#gst-rtp-base-payload-push" title="gst_rtp_base_payload_push ()"><code class="function">gst_rtp_base_payload_push()</code></a> or <a class="link" href="gst-plugins-base-libs-gstrtpbasepayload.html#gst-rtp-base-payload-set-outcaps" title="gst_rtp_base_payload_set_outcaps ()"><code class="function">gst_rtp_base_payload_set_outcaps()</code></a>.</p>
-<div class="refsect3">
-<a name="gst-rtp-base-payload-set-options.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>payload</p></td>
-<td class="parameter_description"><p>a <a class="link" href="gst-plugins-base-libs-gstrtpbasepayload.html#GstRTPBasePayload"><span class="type">GstRTPBasePayload</span></a></p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-<tr>
-<td class="parameter_name"><p>media</p></td>
-<td class="parameter_description"><p>the media type (typically "audio" or "video")</p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-<tr>
-<td class="parameter_name"><p>dynamic</p></td>
-<td class="parameter_description"><p>if the payload type is dynamic</p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-<tr>
-<td class="parameter_name"><p>encoding_name</p></td>
-<td class="parameter_description"><p>the encoding name</p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-<tr>
-<td class="parameter_name"><p>clock_rate</p></td>
-<td class="parameter_description"><p>the clock rate of the media</p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-</tbody>
-</table></div>
-</div>
 </div>
 <hr>
 <div class="refsect2">
@@ -491,40 +282,6 @@
 gst_rtp_base_payload_set_outcaps (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstrtpbasepayload.html#GstRTPBasePayload"><span class="type">GstRTPBasePayload</span></a> *payload</code></em>,
                                   <em class="parameter"><code>const <a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *fieldname</code></em>,
                                   <em class="parameter"><code>...</code></em>);</pre>
-<p>Configure the output caps with the optional parameters.</p>
-<p>Variable arguments should be in the form field name, field type
-(as a GType), value(s).  The last variable argument should be NULL.</p>
-<div class="refsect3">
-<a name="gst-rtp-base-payload-set-outcaps.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>payload</p></td>
-<td class="parameter_description"><p>a <a class="link" href="gst-plugins-base-libs-gstrtpbasepayload.html#GstRTPBasePayload"><span class="type">GstRTPBasePayload</span></a></p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-<tr>
-<td class="parameter_name"><p>fieldname</p></td>
-<td class="parameter_description"><p>the first field name or <a href="/usr/share/gtk-doc/html/glibglib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a></p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-<tr>
-<td class="parameter_name"><p>...</p></td>
-<td class="parameter_description"><p>field values</p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-</tbody>
-</table></div>
-</div>
-<div class="refsect3">
-<a name="gst-rtp-base-payload-set-outcaps.returns"></a><h4>Returns</h4>
-<p> <a href="/usr/share/gtk-doc/html/glibglib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a> if the caps could be set.</p>
-</div>
 </div>
 </div>
 <div class="refsect1">
@@ -554,49 +311,6 @@
   gboolean      (*query)                (GstRTPBasePayload *payload, GstPad *pad, GstQuery * query);
 };
 </pre>
-<p>Base class for audio RTP payloader.</p>
-<div class="refsect3">
-<a name="GstRTPBasePayloadClass.members"></a><h4>Members</h4>
-<div class="informaltable"><table class="informaltable" width="100%" border="0">
-<colgroup>
-<col width="300px" class="struct_members_name">
-<col class="struct_members_description">
-<col width="200px" class="struct_members_annotations">
-</colgroup>
-<tbody>
-<tr>
-<td class="struct_member_name"><p><em class="structfield"><code><a name="GstRTPBasePayloadClass.get-caps"></a>get_caps</code></em> ()</p></td>
-<td class="struct_member_description"><p>get desired caps</p></td>
-<td class="struct_member_annotations"> </td>
-</tr>
-<tr>
-<td class="struct_member_name"><p><em class="structfield"><code><a name="GstRTPBasePayloadClass.set-caps"></a>set_caps</code></em> ()</p></td>
-<td class="struct_member_description"><p>configure the payloader</p></td>
-<td class="struct_member_annotations"> </td>
-</tr>
-<tr>
-<td class="struct_member_name"><p><em class="structfield"><code><a name="GstRTPBasePayloadClass.handle-buffer"></a>handle_buffer</code></em> ()</p></td>
-<td class="struct_member_description"><p>process data</p></td>
-<td class="struct_member_annotations"> </td>
-</tr>
-<tr>
-<td class="struct_member_name"><p><em class="structfield"><code><a name="GstRTPBasePayloadClass.sink-event"></a>sink_event</code></em> ()</p></td>
-<td class="struct_member_description"><p>custom event handling on the sinkpad</p></td>
-<td class="struct_member_annotations"> </td>
-</tr>
-<tr>
-<td class="struct_member_name"><p><em class="structfield"><code><a name="GstRTPBasePayloadClass.src-event"></a>src_event</code></em> ()</p></td>
-<td class="struct_member_description"><p>custom event handling on the srcpad</p></td>
-<td class="struct_member_annotations"> </td>
-</tr>
-<tr>
-<td class="struct_member_name"><p><em class="structfield"><code><a name="GstRTPBasePayloadClass.query"></a>query</code></em> ()</p></td>
-<td class="struct_member_description"><p>custom query handling</p></td>
-<td class="struct_member_annotations"> </td>
-</tr>
-</tbody>
-</table></div>
-</div>
 </div>
 </div>
 <div class="refsect1">
@@ -613,7 +327,7 @@
 <div class="refsect2">
 <a name="GstRTPBasePayload--min-ptime"></a><h3>The <code class="literal">“min-ptime”</code> property</h3>
 <pre class="programlisting">  “min-ptime”                <a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#gint64"><span class="type">gint64</span></a></pre>
-<p>Minimum duration of the packet data in ns (can't go above MTU)</p>
+<p>Minimum duration of the packet data in ns (can't go above MTU).</p>
 <p>Flags: Read / Write</p>
 <p>Allowed values: &gt;= 0</p>
 <p>Default value: 0</p>
@@ -631,21 +345,7 @@
 <div class="refsect2">
 <a name="GstRTPBasePayload--perfect-rtptime"></a><h3>The <code class="literal">“perfect-rtptime”</code> property</h3>
 <pre class="programlisting">  “perfect-rtptime”          <a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a></pre>
-<p>Try to use the offset fields to generate perfect RTP timestamps. When this
-option is disabled, RTP timestamps are generated from GST_BUFFER_PTS of
-each payloaded buffer. The PTSes of buffers may not necessarily increment
-with the amount of data in each input buffer, consider e.g. the case where
-the buffer arrives from a network which means that the PTS is unrelated to
-the amount of data. Because the RTP timestamps are generated from
-GST_BUFFER_PTS this can result in RTP timestamps that also don't increment
-with the amount of data in the payloaded packet. To circumvent this it is
-possible to set the perfect rtptime option enabled. When this option is
-enabled the payloader will increment the RTP timestamps based on
-GST_BUFFER_OFFSET which relates to the amount of data in each packet
-rather than the GST_BUFFER_PTS of each buffer and therefore the RTP
-timestamps will more closely correlate with the amount of data in each
-buffer. Currently GstRTPBasePayload is limited to handling perfect RTP
-timestamps for audio streams.</p>
+<p>Generate perfect RTP timestamps when possible.</p>
 <p>Flags: Read / Write</p>
 <p>Default value: TRUE</p>
 </div>
@@ -662,7 +362,7 @@
 <div class="refsect2">
 <a name="GstRTPBasePayload--ptime-multiple"></a><h3>The <code class="literal">“ptime-multiple”</code> property</h3>
 <pre class="programlisting">  “ptime-multiple”           <a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#gint64"><span class="type">gint64</span></a></pre>
-<p>Force buffers to be multiples of this duration in ns (0 disables)</p>
+<p>Force buffers to be multiples of this duration in ns (0 disables).</p>
 <p>Flags: Read / Write</p>
 <p>Allowed values: &gt;= 0</p>
 <p>Default value: 0</p>
@@ -697,59 +397,7 @@
 <div class="refsect2">
 <a name="GstRTPBasePayload--stats"></a><h3>The <code class="literal">“stats”</code> property</h3>
 <pre class="programlisting">  “stats”                    <a href="/usr/share/gtk-doc/html/gstreamer-1.0GstStructure.html#GstStructure-struct"><span class="type">GstStructure</span></a> *</pre>
-<p>Various payloader statistics retrieved atomically (and are therefore
-synchroized with each other), these can be used e.g. to generate an
-RTP-Info header. This property return a GstStructure named
-application/x-rtp-payload-stats containing the following fields relating to
-the last processed buffer and current state of the stream being payloaded:</p>
-<div class="variablelist"><table border="0" class="variablelist">
-<colgroup>
-<col align="left" valign="top">
-<col>
-</colgroup>
-<tbody>
-<tr>
-<td><p><span class="term">clock-rate</span></p></td>
-<td><p><a href="/usr/share/gtk-doc/html/gobjectgobject-Type-Information.html#G-TYPE-UINT:CAPS"><span class="type">G_TYPE_UINT</span></a>, clock-rate of the
-    stream</p></td>
-</tr>
-<tr>
-<td><p><span class="term">running-time</span></p></td>
-<td><p><a href="/usr/share/gtk-doc/html/gobjectgobject-Type-Information.html#G-TYPE-UINT64:CAPS"><span class="type">G_TYPE_UINT64</span></a>, running time
-    </p></td>
-</tr>
-<tr>
-<td><p><span class="term">seqnum</span></p></td>
-<td><p><a href="/usr/share/gtk-doc/html/gobjectgobject-Type-Information.html#G-TYPE-UINT:CAPS"><span class="type">G_TYPE_UINT</span></a>, sequence number, same as
-    <a class="link" href="gst-plugins-base-libs-gstrtpbasepayload.html#GstRTPBasePayload--seqnum" title="The “seqnum” property"><span class="type">“seqnum”</span></a></p></td>
-</tr>
-<tr>
-<td><p><span class="term">timestamp</span></p></td>
-<td><p><a href="/usr/share/gtk-doc/html/gobjectgobject-Type-Information.html#G-TYPE-UINT:CAPS"><span class="type">G_TYPE_UINT</span></a>, RTP timestamp, same as
-    <a class="link" href="gst-plugins-base-libs-gstrtpbasepayload.html#GstRTPBasePayload--timestamp" title="The “timestamp” property"><span class="type">“timestamp”</span></a></p></td>
-</tr>
-<tr>
-<td><p><span class="term">ssrc</span></p></td>
-<td><p><a href="/usr/share/gtk-doc/html/gobjectgobject-Type-Information.html#G-TYPE-UINT:CAPS"><span class="type">G_TYPE_UINT</span></a>, The SSRC in use
-    </p></td>
-</tr>
-<tr>
-<td><p><span class="term">pt</span></p></td>
-<td><p><a href="/usr/share/gtk-doc/html/gobjectgobject-Type-Information.html#G-TYPE-UINT:CAPS"><span class="type">G_TYPE_UINT</span></a>, The Payload type in use, same as
-    <a class="link" href="gst-plugins-base-libs-gstrtpbasepayload.html#GstRTPBasePayload--pt" title="The “pt” property"><span class="type">“pt”</span></a></p></td>
-</tr>
-<tr>
-<td><p><span class="term">seqnum-offset</span></p></td>
-<td><p><a href="/usr/share/gtk-doc/html/gobjectgobject-Type-Information.html#G-TYPE-UINT:CAPS"><span class="type">G_TYPE_UINT</span></a>, The current offset added to the
-    seqnum</p></td>
-</tr>
-<tr>
-<td><p><span class="term">timestamp-offset</span></p></td>
-<td><p><a href="/usr/share/gtk-doc/html/gobjectgobject-Type-Information.html#G-TYPE-UINT:CAPS"><span class="type">G_TYPE_UINT</span></a>, The current offset added to the
-    timestamp</p></td>
-</tr>
-</tbody>
-</table></div>
+<p>Various statistics.</p>
 <p>Flags: Read</p>
 </div>
 <hr>
diff --git a/docs/libs/html/gst-plugins-base-libs-gstrtpbuffer.html b/docs/libs/html/gst-plugins-base-libs-gstrtpbuffer.html
index e81fee8..35cd666 100644
--- a/docs/libs/html/gst-plugins-base-libs-gstrtpbuffer.html
+++ b/docs/libs/html/gst-plugins-base-libs-gstrtpbuffer.html
@@ -27,7 +27,7 @@
 <div class="refnamediv"><table width="100%"><tr>
 <td valign="top">
 <h2><span class="refentrytitle"><a name="gst-plugins-base-libs-gstrtpbuffer.top_of_page"></a>gstrtpbuffer</span></h2>
-<p>gstrtpbuffer — Helper methods for dealing with RTP buffers</p>
+<p>gstrtpbuffer</p>
 </td>
 <td class="gallery_image" valign="top" align="right"></td>
 </tr></table></div>
@@ -456,13 +456,6 @@
 </div>
 <div class="refsect1">
 <a name="gst-plugins-base-libs-gstrtpbuffer.description"></a><h2>Description</h2>
-<div class="refsect2">
-<a name="id-1.2.9.6.6.2"></a><p>
-The GstRTPBuffer helper functions makes it easy to parse and create regular 
-<a href="/usr/share/gtk-doc/html/gstreamer-1.0GstBuffer.html#GstBuffer-struct"><span class="type">GstBuffer</span></a> objects that contain RTP payloads. These buffers are typically of
-'application/x-rtp' <a href="/usr/share/gtk-doc/html/gstreamer-1.0GstCaps.html#GstCaps-struct"><span class="type">GstCaps</span></a>.
-</p>
-</div>
 </div>
 <div class="refsect1">
 <a name="gst-plugins-base-libs-gstrtpbuffer.functions_details"></a><h2>Functions</h2>
@@ -473,50 +466,6 @@
                               <em class="parameter"><code><a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#guint"><span class="type">guint</span></a> payload_len</code></em>,
                               <em class="parameter"><code><a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#guint8"><span class="type">guint8</span></a> pad_len</code></em>,
                               <em class="parameter"><code><a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#guint8"><span class="type">guint8</span></a> csrc_count</code></em>);</pre>
-<p>Allocate enough data in <em class="parameter"><code>buffer</code></em>
- to hold an RTP packet with <em class="parameter"><code>csrc_count</code></em>
- CSRCs,
-a payload length of <em class="parameter"><code>payload_len</code></em>
- and padding of <em class="parameter"><code>pad_len</code></em>
-.
-<em class="parameter"><code>buffer</code></em>
- must be writable and all previous memory in <em class="parameter"><code>buffer</code></em>
- will be freed.
-If <em class="parameter"><code>pad_len</code></em>
- is &gt;0, the padding bit will be set. All other RTP header fields
-will be set to 0/FALSE.</p>
-<div class="refsect3">
-<a name="gst-rtp-buffer-allocate-data.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>buffer</p></td>
-<td class="parameter_description"><p>a <a href="/usr/share/gtk-doc/html/gstreamer-1.0GstBuffer.html#GstBuffer-struct"><span class="type">GstBuffer</span></a></p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-<tr>
-<td class="parameter_name"><p>payload_len</p></td>
-<td class="parameter_description"><p>the length of the payload</p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-<tr>
-<td class="parameter_name"><p>pad_len</p></td>
-<td class="parameter_description"><p>the amount of padding</p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-<tr>
-<td class="parameter_name"><p>csrc_count</p></td>
-<td class="parameter_description"><p>the number of CSRC entries</p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-</tbody>
-</table></div>
-</div>
 </div>
 <hr>
 <div class="refsect2">
@@ -524,41 +473,6 @@
 <pre class="programlisting"><a href="/usr/share/gtk-doc/html/gstreamer-1.0GstBuffer.html#GstBuffer-struct"><span class="returnvalue">GstBuffer</span></a> *
 gst_rtp_buffer_new_take_data (<em class="parameter"><code><a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> data</code></em>,
                               <em class="parameter"><code><a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#gsize"><span class="type">gsize</span></a> len</code></em>);</pre>
-<p>Create a new buffer and set the data and size of the buffer to <em class="parameter"><code>data</code></em>
- and <em class="parameter"><code>len</code></em>
-
-respectively. <em class="parameter"><code>data</code></em>
- will be freed when the buffer is unreffed, so this
-function transfers ownership of <em class="parameter"><code>data</code></em>
- to the new buffer.</p>
-<div class="refsect3">
-<a name="gst-rtp-buffer-new-take-data.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>data</p></td>
-<td class="parameter_description"><p>  data for the new buffer. </p></td>
-<td class="parameter_annotations"><span class="annotation">[<acronym title="Parameter points to an array of items."><span class="acronym">array</span></acronym> length=len][<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>][<acronym title="Generics and defining elements of containers and arrays."><span class="acronym">element-type</span></acronym> guint8]</span></td>
-</tr>
-<tr>
-<td class="parameter_name"><p>len</p></td>
-<td class="parameter_description"><p>the length of data</p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-</tbody>
-</table></div>
-</div>
-<div class="refsect3">
-<a name="gst-rtp-buffer-new-take-data.returns"></a><h4>Returns</h4>
-<p> A newly allocated buffer with <em class="parameter"><code>data</code></em>
-and of size <em class="parameter"><code>len</code></em>
-.</p>
-</div>
 </div>
 <hr>
 <div class="refsect2">
@@ -566,41 +480,6 @@
 <pre class="programlisting"><a href="/usr/share/gtk-doc/html/gstreamer-1.0GstBuffer.html#GstBuffer-struct"><span class="returnvalue">GstBuffer</span></a> *
 gst_rtp_buffer_new_copy_data (<em class="parameter"><code><a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> data</code></em>,
                               <em class="parameter"><code><a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#gsize"><span class="type">gsize</span></a> len</code></em>);</pre>
-<p>Create a new buffer and set the data to a copy of <em class="parameter"><code>len</code></em>
-
-bytes of <em class="parameter"><code>data</code></em>
- and the size to <em class="parameter"><code>len</code></em>
-. The data will be freed when the buffer
-is freed.</p>
-<div class="refsect3">
-<a name="gst-rtp-buffer-new-copy-data.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>data</p></td>
-<td class="parameter_description"><p> data for the new
-buffer. </p></td>
-<td class="parameter_annotations"><span class="annotation">[<acronym title="Parameter points to an array of items."><span class="acronym">array</span></acronym> length=len][<acronym title="Generics and defining elements of containers and arrays."><span class="acronym">element-type</span></acronym> guint8]</span></td>
-</tr>
-<tr>
-<td class="parameter_name"><p>len</p></td>
-<td class="parameter_description"><p>the length of data</p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-</tbody>
-</table></div>
-</div>
-<div class="refsect3">
-<a name="gst-rtp-buffer-new-copy-data.returns"></a><h4>Returns</h4>
-<p> A newly allocated buffer with a copy of <em class="parameter"><code>data</code></em>
-and of size <em class="parameter"><code>len</code></em>
-.</p>
-</div>
 </div>
 <hr>
 <div class="refsect2">
@@ -609,44 +488,6 @@
 gst_rtp_buffer_new_allocate (<em class="parameter"><code><a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#guint"><span class="type">guint</span></a> payload_len</code></em>,
                              <em class="parameter"><code><a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#guint8"><span class="type">guint8</span></a> pad_len</code></em>,
                              <em class="parameter"><code><a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#guint8"><span class="type">guint8</span></a> csrc_count</code></em>);</pre>
-<p>Allocate a new <a href="/usr/share/gtk-doc/html/gstreamer-1.0GstBuffer.html#GstBuffer-struct"><span class="type">GstBuffer</span></a> with enough data to hold an RTP packet with
-<em class="parameter"><code>csrc_count</code></em>
- CSRCs, a payload length of <em class="parameter"><code>payload_len</code></em>
- and padding of <em class="parameter"><code>pad_len</code></em>
-.
-All other RTP header fields will be set to 0/FALSE.</p>
-<div class="refsect3">
-<a name="gst-rtp-buffer-new-allocate.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>payload_len</p></td>
-<td class="parameter_description"><p>the length of the payload</p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-<tr>
-<td class="parameter_name"><p>pad_len</p></td>
-<td class="parameter_description"><p>the amount of padding</p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-<tr>
-<td class="parameter_name"><p>csrc_count</p></td>
-<td class="parameter_description"><p>the number of CSRC entries</p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-</tbody>
-</table></div>
-</div>
-<div class="refsect3">
-<a name="gst-rtp-buffer-new-allocate.returns"></a><h4>Returns</h4>
-<p> A newly allocated buffer that can hold an RTP packet with given
-parameters.</p>
-</div>
 </div>
 <hr>
 <div class="refsect2">
@@ -655,45 +496,6 @@
 gst_rtp_buffer_new_allocate_len (<em class="parameter"><code><a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#guint"><span class="type">guint</span></a> packet_len</code></em>,
                                  <em class="parameter"><code><a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#guint8"><span class="type">guint8</span></a> pad_len</code></em>,
                                  <em class="parameter"><code><a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#guint8"><span class="type">guint8</span></a> csrc_count</code></em>);</pre>
-<p>Create a new <a href="/usr/share/gtk-doc/html/gstreamer-1.0GstBuffer.html#GstBuffer-struct"><span class="type">GstBuffer</span></a> that can hold an RTP packet that is exactly
-<em class="parameter"><code>packet_len</code></em>
- long. The length of the payload depends on <em class="parameter"><code>pad_len</code></em>
- and
-<em class="parameter"><code>csrc_count</code></em>
- and can be calculated with <a class="link" href="gst-plugins-base-libs-gstrtpbuffer.html#gst-rtp-buffer-calc-payload-len" title="gst_rtp_buffer_calc_payload_len ()"><code class="function">gst_rtp_buffer_calc_payload_len()</code></a>.
-All RTP header fields will be set to 0/FALSE.</p>
-<div class="refsect3">
-<a name="gst-rtp-buffer-new-allocate-len.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>packet_len</p></td>
-<td class="parameter_description"><p>the total length of the packet</p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-<tr>
-<td class="parameter_name"><p>pad_len</p></td>
-<td class="parameter_description"><p>the amount of padding</p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-<tr>
-<td class="parameter_name"><p>csrc_count</p></td>
-<td class="parameter_description"><p>the number of CSRC entries</p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-</tbody>
-</table></div>
-</div>
-<div class="refsect3">
-<a name="gst-rtp-buffer-new-allocate-len.returns"></a><h4>Returns</h4>
-<p> A newly allocated buffer that can hold an RTP packet of <em class="parameter"><code>packet_len</code></em>
-.</p>
-</div>
 </div>
 <hr>
 <div class="refsect2">
@@ -702,93 +504,18 @@
 gst_rtp_buffer_map (<em class="parameter"><code><a href="/usr/share/gtk-doc/html/gstreamer-1.0GstBuffer.html#GstBuffer-struct"><span class="type">GstBuffer</span></a> *buffer</code></em>,
                     <em class="parameter"><code><a href="/usr/share/gtk-doc/html/gstreamer-1.0GstMemory.html#GstMapFlags"><span class="type">GstMapFlags</span></a> flags</code></em>,
                     <em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstrtpbuffer.html#GstRTPBuffer" title="struct GstRTPBuffer"><span class="type">GstRTPBuffer</span></a> *rtp</code></em>);</pre>
-<p>Map the contents of <em class="parameter"><code>buffer</code></em>
- into <em class="parameter"><code>rtp</code></em>
-.</p>
-<div class="refsect3">
-<a name="gst-rtp-buffer-map.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>buffer</p></td>
-<td class="parameter_description"><p>a <a href="/usr/share/gtk-doc/html/gstreamer-1.0GstBuffer.html#GstBuffer-struct"><span class="type">GstBuffer</span></a></p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-<tr>
-<td class="parameter_name"><p>flags</p></td>
-<td class="parameter_description"><p><a href="/usr/share/gtk-doc/html/gstreamer-1.0GstMemory.html#GstMapFlags"><span class="type">GstMapFlags</span></a></p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-<tr>
-<td class="parameter_name"><p>rtp</p></td>
-<td class="parameter_description"><p> a <a class="link" href="gst-plugins-base-libs-gstrtpbuffer.html#GstRTPBuffer" title="struct GstRTPBuffer"><span class="type">GstRTPBuffer</span></a>. </p></td>
-<td class="parameter_annotations"><span class="annotation">[<acronym title="Parameter for returning results. Default is transfer full."><span class="acronym">out</span></acronym>]</span></td>
-</tr>
-</tbody>
-</table></div>
-</div>
-<div class="refsect3">
-<a name="gst-rtp-buffer-map.returns"></a><h4>Returns</h4>
-<p> <a href="/usr/share/gtk-doc/html/glibglib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a> if <em class="parameter"><code>buffer</code></em>
-could be mapped.</p>
-</div>
 </div>
 <hr>
 <div class="refsect2">
 <a name="gst-rtp-buffer-unmap"></a><h3>gst_rtp_buffer_unmap ()</h3>
 <pre class="programlisting"><span class="returnvalue">void</span>
 gst_rtp_buffer_unmap (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstrtpbuffer.html#GstRTPBuffer" title="struct GstRTPBuffer"><span class="type">GstRTPBuffer</span></a> *rtp</code></em>);</pre>
-<p>Unmap <em class="parameter"><code>rtp</code></em>
- previously mapped with <a class="link" href="gst-plugins-base-libs-gstrtpbuffer.html#gst-rtp-buffer-map" title="gst_rtp_buffer_map ()"><code class="function">gst_rtp_buffer_map()</code></a>.</p>
-<div class="refsect3">
-<a name="gst-rtp-buffer-unmap.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>rtp</p></td>
-<td class="parameter_description"><p>a <a class="link" href="gst-plugins-base-libs-gstrtpbuffer.html#GstRTPBuffer" title="struct GstRTPBuffer"><span class="type">GstRTPBuffer</span></a></p></td>
-<td class="parameter_annotations"> </td>
-</tr></tbody>
-</table></div>
-</div>
 </div>
 <hr>
 <div class="refsect2">
 <a name="gst-rtp-buffer-calc-header-len"></a><h3>gst_rtp_buffer_calc_header_len ()</h3>
 <pre class="programlisting"><a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#guint"><span class="returnvalue">guint</span></a>
 gst_rtp_buffer_calc_header_len (<em class="parameter"><code><a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#guint8"><span class="type">guint8</span></a> csrc_count</code></em>);</pre>
-<p>Calculate the header length of an RTP packet with <em class="parameter"><code>csrc_count</code></em>
- CSRC entries.
-An RTP packet can have at most 15 CSRC entries.</p>
-<div class="refsect3">
-<a name="gst-rtp-buffer-calc-header-len.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>csrc_count</p></td>
-<td class="parameter_description"><p>the number of CSRC entries</p></td>
-<td class="parameter_annotations"> </td>
-</tr></tbody>
-</table></div>
-</div>
-<div class="refsect3">
-<a name="gst-rtp-buffer-calc-header-len.returns"></a><h4>Returns</h4>
-<p> The length of an RTP header with <em class="parameter"><code>csrc_count</code></em>
-CSRC entries.</p>
-</div>
 </div>
 <hr>
 <div class="refsect2">
@@ -797,42 +524,6 @@
 gst_rtp_buffer_calc_packet_len (<em class="parameter"><code><a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#guint"><span class="type">guint</span></a> payload_len</code></em>,
                                 <em class="parameter"><code><a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#guint8"><span class="type">guint8</span></a> pad_len</code></em>,
                                 <em class="parameter"><code><a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#guint8"><span class="type">guint8</span></a> csrc_count</code></em>);</pre>
-<p>Calculate the total length of an RTP packet with a payload size of <em class="parameter"><code>payload_len</code></em>
-,
-a padding of <em class="parameter"><code>pad_len</code></em>
- and a <em class="parameter"><code>csrc_count</code></em>
- CSRC entries.</p>
-<div class="refsect3">
-<a name="gst-rtp-buffer-calc-packet-len.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>payload_len</p></td>
-<td class="parameter_description"><p>the length of the payload</p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-<tr>
-<td class="parameter_name"><p>pad_len</p></td>
-<td class="parameter_description"><p>the amount of padding</p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-<tr>
-<td class="parameter_name"><p>csrc_count</p></td>
-<td class="parameter_description"><p>the number of CSRC entries</p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-</tbody>
-</table></div>
-</div>
-<div class="refsect3">
-<a name="gst-rtp-buffer-calc-packet-len.returns"></a><h4>Returns</h4>
-<p> The total length of an RTP header with given parameters.</p>
-</div>
 </div>
 <hr>
 <div class="refsect2">
@@ -841,42 +532,6 @@
 gst_rtp_buffer_calc_payload_len (<em class="parameter"><code><a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#guint"><span class="type">guint</span></a> packet_len</code></em>,
                                  <em class="parameter"><code><a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#guint8"><span class="type">guint8</span></a> pad_len</code></em>,
                                  <em class="parameter"><code><a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#guint8"><span class="type">guint8</span></a> csrc_count</code></em>);</pre>
-<p>Calculate the length of the payload of an RTP packet with size <em class="parameter"><code>packet_len</code></em>
-,
-a padding of <em class="parameter"><code>pad_len</code></em>
- and a <em class="parameter"><code>csrc_count</code></em>
- CSRC entries.</p>
-<div class="refsect3">
-<a name="gst-rtp-buffer-calc-payload-len.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>packet_len</p></td>
-<td class="parameter_description"><p>the length of the total RTP packet</p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-<tr>
-<td class="parameter_name"><p>pad_len</p></td>
-<td class="parameter_description"><p>the amount of padding</p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-<tr>
-<td class="parameter_name"><p>csrc_count</p></td>
-<td class="parameter_description"><p>the number of CSRC entries</p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-</tbody>
-</table></div>
-</div>
-<div class="refsect3">
-<a name="gst-rtp-buffer-calc-payload-len.returns"></a><h4>Returns</h4>
-<p> The length of the payload of an RTP packet  with given parameters.</p>
-</div>
 </div>
 <hr>
 <div class="refsect2">
@@ -884,117 +539,24 @@
 <pre class="programlisting"><span class="returnvalue">void</span>
 gst_rtp_buffer_set_packet_len (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstrtpbuffer.html#GstRTPBuffer" title="struct GstRTPBuffer"><span class="type">GstRTPBuffer</span></a> *rtp</code></em>,
                                <em class="parameter"><code><a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#guint"><span class="type">guint</span></a> len</code></em>);</pre>
-<p>Set the total <em class="parameter"><code>rtp</code></em>
- size to <em class="parameter"><code>len</code></em>
-. The data in the buffer will be made
-larger if needed. Any padding will be removed from the packet.</p>
-<div class="refsect3">
-<a name="gst-rtp-buffer-set-packet-len.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>rtp</p></td>
-<td class="parameter_description"><p>the RTP packet</p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-<tr>
-<td class="parameter_name"><p>len</p></td>
-<td class="parameter_description"><p>the new packet length</p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-</tbody>
-</table></div>
-</div>
 </div>
 <hr>
 <div class="refsect2">
 <a name="gst-rtp-buffer-get-packet-len"></a><h3>gst_rtp_buffer_get_packet_len ()</h3>
 <pre class="programlisting"><a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#guint"><span class="returnvalue">guint</span></a>
 gst_rtp_buffer_get_packet_len (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstrtpbuffer.html#GstRTPBuffer" title="struct GstRTPBuffer"><span class="type">GstRTPBuffer</span></a> *rtp</code></em>);</pre>
-<p>Return the total length of the packet in <em class="parameter"><code>buffer</code></em>
-.</p>
-<div class="refsect3">
-<a name="gst-rtp-buffer-get-packet-len.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>rtp</p></td>
-<td class="parameter_description"><p>the RTP packet</p></td>
-<td class="parameter_annotations"> </td>
-</tr></tbody>
-</table></div>
-</div>
-<div class="refsect3">
-<a name="gst-rtp-buffer-get-packet-len.returns"></a><h4>Returns</h4>
-<p> The total length of the packet in <em class="parameter"><code>buffer</code></em>
-.</p>
-</div>
 </div>
 <hr>
 <div class="refsect2">
 <a name="gst-rtp-buffer-get-header-len"></a><h3>gst_rtp_buffer_get_header_len ()</h3>
 <pre class="programlisting"><a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#guint"><span class="returnvalue">guint</span></a>
 gst_rtp_buffer_get_header_len (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstrtpbuffer.html#GstRTPBuffer" title="struct GstRTPBuffer"><span class="type">GstRTPBuffer</span></a> *rtp</code></em>);</pre>
-<p>Return the total length of the header in <em class="parameter"><code>buffer</code></em>
-. This include the length of
-the fixed header, the CSRC list and the extension header.</p>
-<div class="refsect3">
-<a name="gst-rtp-buffer-get-header-len.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>rtp</p></td>
-<td class="parameter_description"><p>the RTP packet</p></td>
-<td class="parameter_annotations"> </td>
-</tr></tbody>
-</table></div>
-</div>
-<div class="refsect3">
-<a name="gst-rtp-buffer-get-header-len.returns"></a><h4>Returns</h4>
-<p> The total length of the header in <em class="parameter"><code>buffer</code></em>
-.</p>
-</div>
 </div>
 <hr>
 <div class="refsect2">
 <a name="gst-rtp-buffer-get-version"></a><h3>gst_rtp_buffer_get_version ()</h3>
 <pre class="programlisting"><a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#guint8"><span class="returnvalue">guint8</span></a>
 gst_rtp_buffer_get_version (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstrtpbuffer.html#GstRTPBuffer" title="struct GstRTPBuffer"><span class="type">GstRTPBuffer</span></a> *rtp</code></em>);</pre>
-<p>Get the version number of the RTP packet in <em class="parameter"><code>buffer</code></em>
-.</p>
-<div class="refsect3">
-<a name="gst-rtp-buffer-get-version.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>rtp</p></td>
-<td class="parameter_description"><p>the RTP packet</p></td>
-<td class="parameter_annotations"> </td>
-</tr></tbody>
-</table></div>
-</div>
-<div class="refsect3">
-<a name="gst-rtp-buffer-get-version.returns"></a><h4>Returns</h4>
-<p> The version of <em class="parameter"><code>buffer</code></em>
-.</p>
-</div>
 </div>
 <hr>
 <div class="refsect2">
@@ -1002,59 +564,12 @@
 <pre class="programlisting"><span class="returnvalue">void</span>
 gst_rtp_buffer_set_version (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstrtpbuffer.html#GstRTPBuffer" title="struct GstRTPBuffer"><span class="type">GstRTPBuffer</span></a> *rtp</code></em>,
                             <em class="parameter"><code><a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#guint8"><span class="type">guint8</span></a> version</code></em>);</pre>
-<p>Set the version of the RTP packet in <em class="parameter"><code>buffer</code></em>
- to <em class="parameter"><code>version</code></em>
-.</p>
-<div class="refsect3">
-<a name="gst-rtp-buffer-set-version.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>rtp</p></td>
-<td class="parameter_description"><p>the RTP packet</p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-<tr>
-<td class="parameter_name"><p>version</p></td>
-<td class="parameter_description"><p>the new version</p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-</tbody>
-</table></div>
-</div>
 </div>
 <hr>
 <div class="refsect2">
 <a name="gst-rtp-buffer-get-padding"></a><h3>gst_rtp_buffer_get_padding ()</h3>
 <pre class="programlisting"><a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
 gst_rtp_buffer_get_padding (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstrtpbuffer.html#GstRTPBuffer" title="struct GstRTPBuffer"><span class="type">GstRTPBuffer</span></a> *rtp</code></em>);</pre>
-<p>Check if the padding bit is set on the RTP packet in <em class="parameter"><code>buffer</code></em>
-.</p>
-<div class="refsect3">
-<a name="gst-rtp-buffer-get-padding.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>rtp</p></td>
-<td class="parameter_description"><p>the RTP packet</p></td>
-<td class="parameter_annotations"> </td>
-</tr></tbody>
-</table></div>
-</div>
-<div class="refsect3">
-<a name="gst-rtp-buffer-get-padding.returns"></a><h4>Returns</h4>
-<p> TRUE if <em class="parameter"><code>buffer</code></em>
-has the padding bit set.</p>
-</div>
 </div>
 <hr>
 <div class="refsect2">
@@ -1062,31 +577,6 @@
 <pre class="programlisting"><span class="returnvalue">void</span>
 gst_rtp_buffer_set_padding (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstrtpbuffer.html#GstRTPBuffer" title="struct GstRTPBuffer"><span class="type">GstRTPBuffer</span></a> *rtp</code></em>,
                             <em class="parameter"><code><a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a> padding</code></em>);</pre>
-<p>Set the padding bit on the RTP packet in <em class="parameter"><code>buffer</code></em>
- to <em class="parameter"><code>padding</code></em>
-.</p>
-<div class="refsect3">
-<a name="gst-rtp-buffer-set-padding.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>rtp</p></td>
-<td class="parameter_description"><p>the buffer</p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-<tr>
-<td class="parameter_name"><p>padding</p></td>
-<td class="parameter_description"><p>the new padding</p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-</tbody>
-</table></div>
-</div>
 </div>
 <hr>
 <div class="refsect2">
@@ -1094,62 +584,12 @@
 <pre class="programlisting"><span class="returnvalue">void</span>
 gst_rtp_buffer_pad_to (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstrtpbuffer.html#GstRTPBuffer" title="struct GstRTPBuffer"><span class="type">GstRTPBuffer</span></a> *rtp</code></em>,
                        <em class="parameter"><code><a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#guint"><span class="type">guint</span></a> len</code></em>);</pre>
-<p>Set the amount of padding in the RTP packet in <em class="parameter"><code>buffer</code></em>
- to
-<em class="parameter"><code>len</code></em>
-. If <em class="parameter"><code>len</code></em>
- is 0, the padding is removed.</p>
-<p>NOTE: This function does not work correctly.</p>
-<div class="refsect3">
-<a name="gst-rtp-buffer-pad-to.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>rtp</p></td>
-<td class="parameter_description"><p>the RTP packet</p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-<tr>
-<td class="parameter_name"><p>len</p></td>
-<td class="parameter_description"><p>the new amount of padding</p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-</tbody>
-</table></div>
-</div>
 </div>
 <hr>
 <div class="refsect2">
 <a name="gst-rtp-buffer-get-extension"></a><h3>gst_rtp_buffer_get_extension ()</h3>
 <pre class="programlisting"><a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
 gst_rtp_buffer_get_extension (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstrtpbuffer.html#GstRTPBuffer" title="struct GstRTPBuffer"><span class="type">GstRTPBuffer</span></a> *rtp</code></em>);</pre>
-<p>Check if the extension bit is set on the RTP packet in <em class="parameter"><code>buffer</code></em>
-.</p>
-<div class="refsect3">
-<a name="gst-rtp-buffer-get-extension.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>rtp</p></td>
-<td class="parameter_description"><p>the RTP packet</p></td>
-<td class="parameter_annotations"> </td>
-</tr></tbody>
-</table></div>
-</div>
-<div class="refsect3">
-<a name="gst-rtp-buffer-get-extension.returns"></a><h4>Returns</h4>
-<p> TRUE if <em class="parameter"><code>buffer</code></em>
-has the extension bit set.</p>
-</div>
 </div>
 <hr>
 <div class="refsect2">
@@ -1157,31 +597,6 @@
 <pre class="programlisting"><span class="returnvalue">void</span>
 gst_rtp_buffer_set_extension (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstrtpbuffer.html#GstRTPBuffer" title="struct GstRTPBuffer"><span class="type">GstRTPBuffer</span></a> *rtp</code></em>,
                               <em class="parameter"><code><a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a> extension</code></em>);</pre>
-<p>Set the extension bit on the RTP packet in <em class="parameter"><code>buffer</code></em>
- to <em class="parameter"><code>extension</code></em>
-.</p>
-<div class="refsect3">
-<a name="gst-rtp-buffer-set-extension.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>rtp</p></td>
-<td class="parameter_description"><p>the RTP packet</p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-<tr>
-<td class="parameter_name"><p>extension</p></td>
-<td class="parameter_description"><p>the new extension</p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-</tbody>
-</table></div>
-</div>
 </div>
 <hr>
 <div class="refsect2">
@@ -1191,58 +606,6 @@
                                    <em class="parameter"><code><a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#guint16"><span class="type">guint16</span></a> *bits</code></em>,
                                    <em class="parameter"><code><a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> *data</code></em>,
                                    <em class="parameter"><code><a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#guint"><span class="type">guint</span></a> *wordlen</code></em>);</pre>
-<p>Get the extension data. <em class="parameter"><code>bits</code></em>
- will contain the extension 16 bits of custom
-data. <em class="parameter"><code>data</code></em>
- will point to the data in the extension and <em class="parameter"><code>wordlen</code></em>
- will contain
-the length of <em class="parameter"><code>data</code></em>
- in 32 bits words.</p>
-<p>If <em class="parameter"><code>buffer</code></em>
- did not contain an extension, this function will return <a href="/usr/share/gtk-doc/html/glibglib-Standard-Macros.html#FALSE:CAPS"><code class="literal">FALSE</code></a>
-with <em class="parameter"><code>bits</code></em>
-, <em class="parameter"><code>data</code></em>
- and <em class="parameter"><code>wordlen</code></em>
- unchanged.</p>
-<p><span class="annotation">[<acronym title="Exposed in C code, not necessarily available in other languages."><span class="acronym">skip</span></acronym>]</span></p>
-<div class="refsect3">
-<a name="gst-rtp-buffer-get-extension-data.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>rtp</p></td>
-<td class="parameter_description"><p>the RTP packet</p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-<tr>
-<td class="parameter_name"><p>bits</p></td>
-<td class="parameter_description"><p> location for result bits. </p></td>
-<td class="parameter_annotations"><span class="annotation">[<acronym title="Parameter for returning results. Default is transfer full."><span class="acronym">out</span></acronym>]</span></td>
-</tr>
-<tr>
-<td class="parameter_name"><p>data</p></td>
-<td class="parameter_description"><p> location for data. </p></td>
-<td class="parameter_annotations"><span class="annotation">[<acronym title="Parameter for returning results. Default is transfer full."><span class="acronym">out</span></acronym>][<acronym title="Parameter points to an array of items."><span class="acronym">array</span></acronym>][<acronym title="Generics and defining elements of containers and arrays."><span class="acronym">element-type</span></acronym> guint8][<acronym title="Don't free data after the code is done."><span class="acronym">transfer none</span></acronym>]</span></td>
-</tr>
-<tr>
-<td class="parameter_name"><p>wordlen</p></td>
-<td class="parameter_description"><p> location for length of <em class="parameter"><code>data</code></em>
-in 32 bits words. </p></td>
-<td class="parameter_annotations"><span class="annotation">[<acronym title="Parameter for returning results. Default is transfer full."><span class="acronym">out</span></acronym>]</span></td>
-</tr>
-</tbody>
-</table></div>
-</div>
-<div class="refsect3">
-<a name="gst-rtp-buffer-get-extension-data.returns"></a><h4>Returns</h4>
-<p> TRUE if <em class="parameter"><code>buffer</code></em>
-had the extension bit set.</p>
-</div>
 </div>
 <hr>
 <div class="refsect2">
@@ -1250,74 +613,12 @@
 <pre class="programlisting"><a href="/usr/share/gtk-doc/html/glibglib-Byte-Arrays.html#GBytes"><span class="returnvalue">GBytes</span></a> *
 gst_rtp_buffer_get_extension_bytes (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstrtpbuffer.html#GstRTPBuffer" title="struct GstRTPBuffer"><span class="type">GstRTPBuffer</span></a> *rtp</code></em>,
                                     <em class="parameter"><code><a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#guint16"><span class="type">guint16</span></a> *bits</code></em>);</pre>
-<p>Similar to gst_rtp_buffer_get_extension_data, but more suitable for language
-bindings usage. <em class="parameter"><code>bits</code></em>
- will contain the extension 16 bits of custom data and
-the extension data (not including the extension header) is placed in a new
-<a href="/usr/share/gtk-doc/html/glibglib-Byte-Arrays.html#GBytes"><span class="type">GBytes</span></a> structure.</p>
-<p>If <em class="parameter"><code>rtp</code></em>
- did not contain an extension, this function will return <a href="/usr/share/gtk-doc/html/glibglib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a>, with
-<em class="parameter"><code>bits</code></em>
- unchanged. If there is an extension header but no extension data then
-an empty <a href="/usr/share/gtk-doc/html/glibglib-Byte-Arrays.html#GBytes"><span class="type">GBytes</span></a> will be returned.</p>
-<p><span class="annotation">[<acronym title="Rename the original symbol's name to SYMBOL."><span class="acronym">rename-to</span></acronym> gst_rtp_buffer_get_extension_data]</span></p>
-<div class="refsect3">
-<a name="gst-rtp-buffer-get-extension-bytes.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>rtp</p></td>
-<td class="parameter_description"><p>the RTP packet</p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-<tr>
-<td class="parameter_name"><p>bits</p></td>
-<td class="parameter_description"><p> location for header bits. </p></td>
-<td class="parameter_annotations"><span class="annotation">[<acronym title="Parameter for returning results. Default is transfer full."><span class="acronym">out</span></acronym>]</span></td>
-</tr>
-</tbody>
-</table></div>
-</div>
-<div class="refsect3">
-<a name="gst-rtp-buffer-get-extension-bytes.returns"></a><h4>Returns</h4>
-<p> A new <a href="/usr/share/gtk-doc/html/glibglib-Byte-Arrays.html#GBytes"><span class="type">GBytes</span></a> if an extension header was present
-and <a href="/usr/share/gtk-doc/html/glibglib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a> otherwise. </p>
-<p><span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>]</span></p>
-</div>
-<p class="since">Since: 1.2</p>
 </div>
 <hr>
 <div class="refsect2">
 <a name="gst-rtp-buffer-get-ssrc"></a><h3>gst_rtp_buffer_get_ssrc ()</h3>
 <pre class="programlisting"><a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#guint32"><span class="returnvalue">guint32</span></a>
 gst_rtp_buffer_get_ssrc (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstrtpbuffer.html#GstRTPBuffer" title="struct GstRTPBuffer"><span class="type">GstRTPBuffer</span></a> *rtp</code></em>);</pre>
-<p>Get the SSRC of the RTP packet in <em class="parameter"><code>buffer</code></em>
-.</p>
-<div class="refsect3">
-<a name="gst-rtp-buffer-get-ssrc.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>rtp</p></td>
-<td class="parameter_description"><p>the RTP packet</p></td>
-<td class="parameter_annotations"> </td>
-</tr></tbody>
-</table></div>
-</div>
-<div class="refsect3">
-<a name="gst-rtp-buffer-get-ssrc.returns"></a><h4>Returns</h4>
-<p> the SSRC of <em class="parameter"><code>buffer</code></em>
-in host order.</p>
-</div>
 </div>
 <hr>
 <div class="refsect2">
@@ -1325,59 +626,12 @@
 <pre class="programlisting"><span class="returnvalue">void</span>
 gst_rtp_buffer_set_ssrc (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstrtpbuffer.html#GstRTPBuffer" title="struct GstRTPBuffer"><span class="type">GstRTPBuffer</span></a> *rtp</code></em>,
                          <em class="parameter"><code><a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#guint32"><span class="type">guint32</span></a> ssrc</code></em>);</pre>
-<p>Set the SSRC on the RTP packet in <em class="parameter"><code>buffer</code></em>
- to <em class="parameter"><code>ssrc</code></em>
-.</p>
-<div class="refsect3">
-<a name="gst-rtp-buffer-set-ssrc.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>rtp</p></td>
-<td class="parameter_description"><p>the RTP packet</p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-<tr>
-<td class="parameter_name"><p>ssrc</p></td>
-<td class="parameter_description"><p>the new SSRC</p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-</tbody>
-</table></div>
-</div>
 </div>
 <hr>
 <div class="refsect2">
 <a name="gst-rtp-buffer-get-csrc-count"></a><h3>gst_rtp_buffer_get_csrc_count ()</h3>
 <pre class="programlisting"><a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#guint8"><span class="returnvalue">guint8</span></a>
 gst_rtp_buffer_get_csrc_count (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstrtpbuffer.html#GstRTPBuffer" title="struct GstRTPBuffer"><span class="type">GstRTPBuffer</span></a> *rtp</code></em>);</pre>
-<p>Get the CSRC count of the RTP packet in <em class="parameter"><code>buffer</code></em>
-.</p>
-<div class="refsect3">
-<a name="gst-rtp-buffer-get-csrc-count.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>rtp</p></td>
-<td class="parameter_description"><p>the RTP packet</p></td>
-<td class="parameter_annotations"> </td>
-</tr></tbody>
-</table></div>
-</div>
-<div class="refsect3">
-<a name="gst-rtp-buffer-get-csrc-count.returns"></a><h4>Returns</h4>
-<p> the CSRC count of <em class="parameter"><code>buffer</code></em>
-.</p>
-</div>
 </div>
 <hr>
 <div class="refsect2">
@@ -1385,36 +639,6 @@
 <pre class="programlisting"><a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#guint32"><span class="returnvalue">guint32</span></a>
 gst_rtp_buffer_get_csrc (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstrtpbuffer.html#GstRTPBuffer" title="struct GstRTPBuffer"><span class="type">GstRTPBuffer</span></a> *rtp</code></em>,
                          <em class="parameter"><code><a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#guint8"><span class="type">guint8</span></a> idx</code></em>);</pre>
-<p>Get the CSRC at index <em class="parameter"><code>idx</code></em>
- in <em class="parameter"><code>buffer</code></em>
-.</p>
-<div class="refsect3">
-<a name="gst-rtp-buffer-get-csrc.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>rtp</p></td>
-<td class="parameter_description"><p>the RTP packet</p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-<tr>
-<td class="parameter_name"><p>idx</p></td>
-<td class="parameter_description"><p>the index of the CSRC to get</p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-</tbody>
-</table></div>
-</div>
-<div class="refsect3">
-<a name="gst-rtp-buffer-get-csrc.returns"></a><h4>Returns</h4>
-<p> the CSRC at index <em class="parameter"><code>idx</code></em>
-in host order.</p>
-</div>
 </div>
 <hr>
 <div class="refsect2">
@@ -1423,66 +647,12 @@
 gst_rtp_buffer_set_csrc (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstrtpbuffer.html#GstRTPBuffer" title="struct GstRTPBuffer"><span class="type">GstRTPBuffer</span></a> *rtp</code></em>,
                          <em class="parameter"><code><a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#guint8"><span class="type">guint8</span></a> idx</code></em>,
                          <em class="parameter"><code><a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#guint32"><span class="type">guint32</span></a> csrc</code></em>);</pre>
-<p>Modify the CSRC at index <em class="parameter"><code>idx</code></em>
- in <em class="parameter"><code>buffer</code></em>
- to <em class="parameter"><code>csrc</code></em>
-.</p>
-<div class="refsect3">
-<a name="gst-rtp-buffer-set-csrc.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>rtp</p></td>
-<td class="parameter_description"><p>the RTP packet</p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-<tr>
-<td class="parameter_name"><p>idx</p></td>
-<td class="parameter_description"><p>the CSRC index to set</p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-<tr>
-<td class="parameter_name"><p>csrc</p></td>
-<td class="parameter_description"><p>the CSRC in host order to set at <em class="parameter"><code>idx</code></em>
-</p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-</tbody>
-</table></div>
-</div>
 </div>
 <hr>
 <div class="refsect2">
 <a name="gst-rtp-buffer-get-marker"></a><h3>gst_rtp_buffer_get_marker ()</h3>
 <pre class="programlisting"><a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
 gst_rtp_buffer_get_marker (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstrtpbuffer.html#GstRTPBuffer" title="struct GstRTPBuffer"><span class="type">GstRTPBuffer</span></a> *rtp</code></em>);</pre>
-<p>Check if the marker bit is set on the RTP packet in <em class="parameter"><code>buffer</code></em>
-.</p>
-<div class="refsect3">
-<a name="gst-rtp-buffer-get-marker.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>rtp</p></td>
-<td class="parameter_description"><p>the RTP packet</p></td>
-<td class="parameter_annotations"> </td>
-</tr></tbody>
-</table></div>
-</div>
-<div class="refsect3">
-<a name="gst-rtp-buffer-get-marker.returns"></a><h4>Returns</h4>
-<p> TRUE if <em class="parameter"><code>buffer</code></em>
-has the marker bit set.</p>
-</div>
 </div>
 <hr>
 <div class="refsect2">
@@ -1490,58 +660,12 @@
 <pre class="programlisting"><span class="returnvalue">void</span>
 gst_rtp_buffer_set_marker (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstrtpbuffer.html#GstRTPBuffer" title="struct GstRTPBuffer"><span class="type">GstRTPBuffer</span></a> *rtp</code></em>,
                            <em class="parameter"><code><a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a> marker</code></em>);</pre>
-<p>Set the marker bit on the RTP packet in <em class="parameter"><code>buffer</code></em>
- to <em class="parameter"><code>marker</code></em>
-.</p>
-<div class="refsect3">
-<a name="gst-rtp-buffer-set-marker.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>rtp</p></td>
-<td class="parameter_description"><p>the RTP packet</p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-<tr>
-<td class="parameter_name"><p>marker</p></td>
-<td class="parameter_description"><p>the new marker</p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-</tbody>
-</table></div>
-</div>
 </div>
 <hr>
 <div class="refsect2">
 <a name="gst-rtp-buffer-get-payload-type"></a><h3>gst_rtp_buffer_get_payload_type ()</h3>
 <pre class="programlisting"><a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#guint8"><span class="returnvalue">guint8</span></a>
 gst_rtp_buffer_get_payload_type (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstrtpbuffer.html#GstRTPBuffer" title="struct GstRTPBuffer"><span class="type">GstRTPBuffer</span></a> *rtp</code></em>);</pre>
-<p>Get the payload type of the RTP packet in <em class="parameter"><code>buffer</code></em>
-.</p>
-<div class="refsect3">
-<a name="gst-rtp-buffer-get-payload-type.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>rtp</p></td>
-<td class="parameter_description"><p>the RTP packet</p></td>
-<td class="parameter_annotations"> </td>
-</tr></tbody>
-</table></div>
-</div>
-<div class="refsect3">
-<a name="gst-rtp-buffer-get-payload-type.returns"></a><h4>Returns</h4>
-<p> The payload type.</p>
-</div>
 </div>
 <hr>
 <div class="refsect2">
@@ -1549,58 +673,12 @@
 <pre class="programlisting"><span class="returnvalue">void</span>
 gst_rtp_buffer_set_payload_type (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstrtpbuffer.html#GstRTPBuffer" title="struct GstRTPBuffer"><span class="type">GstRTPBuffer</span></a> *rtp</code></em>,
                                  <em class="parameter"><code><a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#guint8"><span class="type">guint8</span></a> payload_type</code></em>);</pre>
-<p>Set the payload type of the RTP packet in <em class="parameter"><code>buffer</code></em>
- to <em class="parameter"><code>payload_type</code></em>
-.</p>
-<div class="refsect3">
-<a name="gst-rtp-buffer-set-payload-type.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>rtp</p></td>
-<td class="parameter_description"><p>the RTP packet</p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-<tr>
-<td class="parameter_name"><p>payload_type</p></td>
-<td class="parameter_description"><p>the new type</p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-</tbody>
-</table></div>
-</div>
 </div>
 <hr>
 <div class="refsect2">
 <a name="gst-rtp-buffer-get-seq"></a><h3>gst_rtp_buffer_get_seq ()</h3>
 <pre class="programlisting"><a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#guint16"><span class="returnvalue">guint16</span></a>
 gst_rtp_buffer_get_seq (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstrtpbuffer.html#GstRTPBuffer" title="struct GstRTPBuffer"><span class="type">GstRTPBuffer</span></a> *rtp</code></em>);</pre>
-<p>Get the sequence number of the RTP packet in <em class="parameter"><code>buffer</code></em>
-.</p>
-<div class="refsect3">
-<a name="gst-rtp-buffer-get-seq.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>rtp</p></td>
-<td class="parameter_description"><p>the RTP packet</p></td>
-<td class="parameter_annotations"> </td>
-</tr></tbody>
-</table></div>
-</div>
-<div class="refsect3">
-<a name="gst-rtp-buffer-get-seq.returns"></a><h4>Returns</h4>
-<p> The sequence number in host order.</p>
-</div>
 </div>
 <hr>
 <div class="refsect2">
@@ -1608,58 +686,12 @@
 <pre class="programlisting"><span class="returnvalue">void</span>
 gst_rtp_buffer_set_seq (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstrtpbuffer.html#GstRTPBuffer" title="struct GstRTPBuffer"><span class="type">GstRTPBuffer</span></a> *rtp</code></em>,
                         <em class="parameter"><code><a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#guint16"><span class="type">guint16</span></a> seq</code></em>);</pre>
-<p>Set the sequence number of the RTP packet in <em class="parameter"><code>buffer</code></em>
- to <em class="parameter"><code>seq</code></em>
-.</p>
-<div class="refsect3">
-<a name="gst-rtp-buffer-set-seq.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>rtp</p></td>
-<td class="parameter_description"><p>the RTP packet</p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-<tr>
-<td class="parameter_name"><p>seq</p></td>
-<td class="parameter_description"><p>the new sequence number</p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-</tbody>
-</table></div>
-</div>
 </div>
 <hr>
 <div class="refsect2">
 <a name="gst-rtp-buffer-get-timestamp"></a><h3>gst_rtp_buffer_get_timestamp ()</h3>
 <pre class="programlisting"><a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#guint32"><span class="returnvalue">guint32</span></a>
 gst_rtp_buffer_get_timestamp (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstrtpbuffer.html#GstRTPBuffer" title="struct GstRTPBuffer"><span class="type">GstRTPBuffer</span></a> *rtp</code></em>);</pre>
-<p>Get the timestamp of the RTP packet in <em class="parameter"><code>buffer</code></em>
-.</p>
-<div class="refsect3">
-<a name="gst-rtp-buffer-get-timestamp.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>rtp</p></td>
-<td class="parameter_description"><p>the RTP packet</p></td>
-<td class="parameter_annotations"> </td>
-</tr></tbody>
-</table></div>
-</div>
-<div class="refsect3">
-<a name="gst-rtp-buffer-get-timestamp.returns"></a><h4>Returns</h4>
-<p> The timestamp in host order.</p>
-</div>
 </div>
 <hr>
 <div class="refsect2">
@@ -1667,61 +699,12 @@
 <pre class="programlisting"><span class="returnvalue">void</span>
 gst_rtp_buffer_set_timestamp (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstrtpbuffer.html#GstRTPBuffer" title="struct GstRTPBuffer"><span class="type">GstRTPBuffer</span></a> *rtp</code></em>,
                               <em class="parameter"><code><a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#guint32"><span class="type">guint32</span></a> timestamp</code></em>);</pre>
-<p>Set the timestamp of the RTP packet in <em class="parameter"><code>buffer</code></em>
- to <em class="parameter"><code>timestamp</code></em>
-.</p>
-<div class="refsect3">
-<a name="gst-rtp-buffer-set-timestamp.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>rtp</p></td>
-<td class="parameter_description"><p>the RTP packet</p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-<tr>
-<td class="parameter_name"><p>timestamp</p></td>
-<td class="parameter_description"><p>the new timestamp</p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-</tbody>
-</table></div>
-</div>
 </div>
 <hr>
 <div class="refsect2">
 <a name="gst-rtp-buffer-get-payload-buffer"></a><h3>gst_rtp_buffer_get_payload_buffer ()</h3>
 <pre class="programlisting"><a href="/usr/share/gtk-doc/html/gstreamer-1.0GstBuffer.html#GstBuffer-struct"><span class="returnvalue">GstBuffer</span></a> *
 gst_rtp_buffer_get_payload_buffer (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstrtpbuffer.html#GstRTPBuffer" title="struct GstRTPBuffer"><span class="type">GstRTPBuffer</span></a> *rtp</code></em>);</pre>
-<p>Create a buffer of the payload of the RTP packet in <em class="parameter"><code>buffer</code></em>
-. This function
-will internally create a subbuffer of <em class="parameter"><code>buffer</code></em>
- so that a memcpy can be
-avoided.</p>
-<div class="refsect3">
-<a name="gst-rtp-buffer-get-payload-buffer.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>rtp</p></td>
-<td class="parameter_description"><p>the RTP packet</p></td>
-<td class="parameter_annotations"> </td>
-</tr></tbody>
-</table></div>
-</div>
-<div class="refsect3">
-<a name="gst-rtp-buffer-get-payload-buffer.returns"></a><h4>Returns</h4>
-<p> A new buffer with the data of the payload.</p>
-</div>
 </div>
 <hr>
 <div class="refsect2">
@@ -1730,167 +713,30 @@
 gst_rtp_buffer_get_payload_subbuffer (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstrtpbuffer.html#GstRTPBuffer" title="struct GstRTPBuffer"><span class="type">GstRTPBuffer</span></a> *rtp</code></em>,
                                       <em class="parameter"><code><a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#guint"><span class="type">guint</span></a> offset</code></em>,
                                       <em class="parameter"><code><a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#guint"><span class="type">guint</span></a> len</code></em>);</pre>
-<p>Create a subbuffer of the payload of the RTP packet in <em class="parameter"><code>buffer</code></em>
-. <em class="parameter"><code>offset</code></em>
- bytes
-are skipped in the payload and the subbuffer will be of size <em class="parameter"><code>len</code></em>
-.
-If <em class="parameter"><code>len</code></em>
- is -1 the total payload starting from <em class="parameter"><code>offset</code></em>
- is subbuffered.</p>
-<div class="refsect3">
-<a name="gst-rtp-buffer-get-payload-subbuffer.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>rtp</p></td>
-<td class="parameter_description"><p>the RTP packet</p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-<tr>
-<td class="parameter_name"><p>offset</p></td>
-<td class="parameter_description"><p>the offset in the payload</p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-<tr>
-<td class="parameter_name"><p>len</p></td>
-<td class="parameter_description"><p>the length in the payload</p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-</tbody>
-</table></div>
-</div>
-<div class="refsect3">
-<a name="gst-rtp-buffer-get-payload-subbuffer.returns"></a><h4>Returns</h4>
-<p> A new buffer with the specified data of the payload.</p>
-</div>
 </div>
 <hr>
 <div class="refsect2">
 <a name="gst-rtp-buffer-get-payload-len"></a><h3>gst_rtp_buffer_get_payload_len ()</h3>
 <pre class="programlisting"><a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#guint"><span class="returnvalue">guint</span></a>
 gst_rtp_buffer_get_payload_len (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstrtpbuffer.html#GstRTPBuffer" title="struct GstRTPBuffer"><span class="type">GstRTPBuffer</span></a> *rtp</code></em>);</pre>
-<p>Get the length of the payload of the RTP packet in <em class="parameter"><code>buffer</code></em>
-.</p>
-<div class="refsect3">
-<a name="gst-rtp-buffer-get-payload-len.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>rtp</p></td>
-<td class="parameter_description"><p>the RTP packet</p></td>
-<td class="parameter_annotations"> </td>
-</tr></tbody>
-</table></div>
-</div>
-<div class="refsect3">
-<a name="gst-rtp-buffer-get-payload-len.returns"></a><h4>Returns</h4>
-<p> The length of the payload in <em class="parameter"><code>buffer</code></em>
-.</p>
-</div>
 </div>
 <hr>
 <div class="refsect2">
 <a name="gst-rtp-buffer-get-payload-bytes"></a><h3>gst_rtp_buffer_get_payload_bytes ()</h3>
 <pre class="programlisting"><a href="/usr/share/gtk-doc/html/glibglib-Byte-Arrays.html#GBytes"><span class="returnvalue">GBytes</span></a> *
 gst_rtp_buffer_get_payload_bytes (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstrtpbuffer.html#GstRTPBuffer" title="struct GstRTPBuffer"><span class="type">GstRTPBuffer</span></a> *rtp</code></em>);</pre>
-<p>Similar to gst_rtp_buffer_get_payload, but more suitable for language
-bindings usage. The return value is a pointer to a <a href="/usr/share/gtk-doc/html/glibglib-Byte-Arrays.html#GBytes"><span class="type">GBytes</span></a> structure
-containing the payload data in <em class="parameter"><code>rtp</code></em>
-.</p>
-<p><span class="annotation">[<acronym title="Rename the original symbol's name to SYMBOL."><span class="acronym">rename-to</span></acronym> gst_rtp_buffer_get_payload]</span></p>
-<div class="refsect3">
-<a name="gst-rtp-buffer-get-payload-bytes.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>rtp</p></td>
-<td class="parameter_description"><p>the RTP packet</p></td>
-<td class="parameter_annotations"> </td>
-</tr></tbody>
-</table></div>
-</div>
-<div class="refsect3">
-<a name="gst-rtp-buffer-get-payload-bytes.returns"></a><h4>Returns</h4>
-<p> A new <a href="/usr/share/gtk-doc/html/glibglib-Byte-Arrays.html#GBytes"><span class="type">GBytes</span></a> containing the payload data in <em class="parameter"><code>rtp</code></em>
-. </p>
-<p><span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>]</span></p>
-</div>
-<p class="since">Since: 1.2</p>
 </div>
 <hr>
 <div class="refsect2">
 <a name="gst-rtp-buffer-get-payload"></a><h3>gst_rtp_buffer_get_payload ()</h3>
 <pre class="programlisting"><a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#gpointer"><span class="returnvalue">gpointer</span></a>
 gst_rtp_buffer_get_payload (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstrtpbuffer.html#GstRTPBuffer" title="struct GstRTPBuffer"><span class="type">GstRTPBuffer</span></a> *rtp</code></em>);</pre>
-<p>Get a pointer to the payload data in <em class="parameter"><code>buffer</code></em>
-. This pointer is valid as long
-as a reference to <em class="parameter"><code>buffer</code></em>
- is held.</p>
-<p><span class="annotation">[<acronym title="Exposed in C code, not necessarily available in other languages."><span class="acronym">skip</span></acronym>]</span></p>
-<div class="refsect3">
-<a name="gst-rtp-buffer-get-payload.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>rtp</p></td>
-<td class="parameter_description"><p>the RTP packet</p></td>
-<td class="parameter_annotations"> </td>
-</tr></tbody>
-</table></div>
-</div>
-<div class="refsect3">
-<a name="gst-rtp-buffer-get-payload.returns"></a><h4>Returns</h4>
-<p> A pointer
-to the payload data in <em class="parameter"><code>buffer</code></em>
-. </p>
-<p><span class="annotation">[<acronym title="Parameter points to an array of items."><span class="acronym">array</span></acronym>][<acronym title="Generics and defining elements of containers and arrays."><span class="acronym">element-type</span></acronym> guint8][<acronym title="Don't free data after the code is done."><span class="acronym">transfer none</span></acronym>]</span></p>
-</div>
 </div>
 <hr>
 <div class="refsect2">
 <a name="gst-rtp-buffer-default-clock-rate"></a><h3>gst_rtp_buffer_default_clock_rate ()</h3>
 <pre class="programlisting"><a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#guint32"><span class="returnvalue">guint32</span></a>
 gst_rtp_buffer_default_clock_rate (<em class="parameter"><code><a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#guint8"><span class="type">guint8</span></a> payload_type</code></em>);</pre>
-<p>Get the default clock-rate for the static payload type <em class="parameter"><code>payload_type</code></em>
-.</p>
-<div class="refsect3">
-<a name="gst-rtp-buffer-default-clock-rate.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>payload_type</p></td>
-<td class="parameter_description"><p>the static payload type</p></td>
-<td class="parameter_annotations"> </td>
-</tr></tbody>
-</table></div>
-</div>
-<div class="refsect3">
-<a name="gst-rtp-buffer-default-clock-rate.returns"></a><h4>Returns</h4>
-<p> the default clock rate or -1 if the payload type is not static or
-the clock-rate is undefined.</p>
-</div>
 </div>
 <hr>
 <div class="refsect2">
@@ -1898,41 +744,6 @@
 <pre class="programlisting"><a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#gint"><span class="returnvalue">gint</span></a>
 gst_rtp_buffer_compare_seqnum (<em class="parameter"><code><a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#guint16"><span class="type">guint16</span></a> seqnum1</code></em>,
                                <em class="parameter"><code><a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#guint16"><span class="type">guint16</span></a> seqnum2</code></em>);</pre>
-<p>Compare two sequence numbers, taking care of wraparounds. This function
-returns the difference between <em class="parameter"><code>seqnum1</code></em>
- and <em class="parameter"><code>seqnum2</code></em>
-.</p>
-<div class="refsect3">
-<a name="gst-rtp-buffer-compare-seqnum.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>seqnum1</p></td>
-<td class="parameter_description"><p>a sequence number</p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-<tr>
-<td class="parameter_name"><p>seqnum2</p></td>
-<td class="parameter_description"><p>a sequence number</p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-</tbody>
-</table></div>
-</div>
-<div class="refsect3">
-<a name="gst-rtp-buffer-compare-seqnum.returns"></a><h4>Returns</h4>
-<p> a negative value if <em class="parameter"><code>seqnum1</code></em>
-is bigger than <em class="parameter"><code>seqnum2</code></em>
-, 0 if they
-are equal or a positive value if <em class="parameter"><code>seqnum1</code></em>
-is smaller than <em class="parameter"><code>segnum2</code></em>
-.</p>
-</div>
 </div>
 <hr>
 <div class="refsect2">
@@ -1940,40 +751,6 @@
 <pre class="programlisting"><a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#guint64"><span class="returnvalue">guint64</span></a>
 gst_rtp_buffer_ext_timestamp (<em class="parameter"><code><a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#guint64"><span class="type">guint64</span></a> *exttimestamp</code></em>,
                               <em class="parameter"><code><a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#guint32"><span class="type">guint32</span></a> timestamp</code></em>);</pre>
-<p>Update the <em class="parameter"><code>exttimestamp</code></em>
- field with <em class="parameter"><code>timestamp</code></em>
-. For the first call of the
-method, <em class="parameter"><code>exttimestamp</code></em>
- should point to a location with a value of -1.</p>
-<p>This function makes sure that the returned value is a constantly increasing
-value even in the case where there is a timestamp wraparound.</p>
-<div class="refsect3">
-<a name="gst-rtp-buffer-ext-timestamp.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>exttimestamp</p></td>
-<td class="parameter_description"><p>a previous extended timestamp</p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-<tr>
-<td class="parameter_name"><p>timestamp</p></td>
-<td class="parameter_description"><p>a new timestamp</p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-</tbody>
-</table></div>
-</div>
-<div class="refsect3">
-<a name="gst-rtp-buffer-ext-timestamp.returns"></a><h4>Returns</h4>
-<p> The extended timestamp of <em class="parameter"><code>timestamp</code></em>
-.</p>
-</div>
 </div>
 <hr>
 <div class="refsect2">
@@ -1982,43 +759,6 @@
 gst_rtp_buffer_set_extension_data (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstrtpbuffer.html#GstRTPBuffer" title="struct GstRTPBuffer"><span class="type">GstRTPBuffer</span></a> *rtp</code></em>,
                                    <em class="parameter"><code><a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#guint16"><span class="type">guint16</span></a> bits</code></em>,
                                    <em class="parameter"><code><a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#guint16"><span class="type">guint16</span></a> length</code></em>);</pre>
-<p>Set the extension bit of the rtp buffer and fill in the <em class="parameter"><code>bits</code></em>
- and <em class="parameter"><code>length</code></em>
- of the
-extension header. If the existing extension data is not large enough, it will
-be made larger.</p>
-<div class="refsect3">
-<a name="gst-rtp-buffer-set-extension-data.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>rtp</p></td>
-<td class="parameter_description"><p>the RTP packet</p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-<tr>
-<td class="parameter_name"><p>bits</p></td>
-<td class="parameter_description"><p>the bits specific for the extension</p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-<tr>
-<td class="parameter_name"><p>length</p></td>
-<td class="parameter_description"><p>the length that counts the number of 32-bit words in
-the extension, excluding the extension header ( therefore zero is a valid length)</p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-</tbody>
-</table></div>
-</div>
-<div class="refsect3">
-<a name="gst-rtp-buffer-set-extension-data.returns"></a><h4>Returns</h4>
-<p> True if done.</p>
-</div>
 </div>
 <hr>
 <div class="refsect2">
@@ -2030,50 +770,6 @@
                                 <em class="parameter"><code><a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#guint"><span class="type">guint</span></a> nth</code></em>,
                                 <em class="parameter"><code><a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> *data</code></em>,
                                 <em class="parameter"><code><a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#guint"><span class="type">guint</span></a> *size</code></em>);</pre>
-<p>Parses RFC 5285 style header extensions with a one byte header. It will
-return the nth extension with the requested id.</p>
-<div class="refsect3">
-<a name="gst-rtp-buffer-get-extension-onebyte-header.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>rtp</p></td>
-<td class="parameter_description"><p>the RTP packet</p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-<tr>
-<td class="parameter_name"><p>id</p></td>
-<td class="parameter_description"><p>The ID of the header extension to be read (between 1 and 14).</p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-<tr>
-<td class="parameter_name"><p>nth</p></td>
-<td class="parameter_description"><p>Read the nth extension packet with the requested ID</p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-<tr>
-<td class="parameter_name"><p>data</p></td>
-<td class="parameter_description"><p>  location for data. </p></td>
-<td class="parameter_annotations"><span class="annotation">[<acronym title="Parameter for returning results. Default is transfer full."><span class="acronym">out</span></acronym>][<acronym title="Parameter points to an array of items."><span class="acronym">array</span></acronym> length=size][<acronym title="Generics and defining elements of containers and arrays."><span class="acronym">element-type</span></acronym> guint8][<acronym title="Don't free data after the code is done."><span class="acronym">transfer none</span></acronym>]</span></td>
-</tr>
-<tr>
-<td class="parameter_name"><p>size</p></td>
-<td class="parameter_description"><p> the size of the data in bytes. </p></td>
-<td class="parameter_annotations"><span class="annotation">[<acronym title="Parameter for returning results. Default is transfer full."><span class="acronym">out</span></acronym>]</span></td>
-</tr>
-</tbody>
-</table></div>
-</div>
-<div class="refsect3">
-<a name="gst-rtp-buffer-get-extension-onebyte-header.returns"></a><h4>Returns</h4>
-<p> TRUE if <em class="parameter"><code>buffer</code></em>
-had the requested header extension</p>
-</div>
 </div>
 <hr>
 <div class="refsect2">
@@ -2086,55 +782,6 @@
                                 <em class="parameter"><code><a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#guint"><span class="type">guint</span></a> nth</code></em>,
                                 <em class="parameter"><code><a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> *data</code></em>,
                                 <em class="parameter"><code><a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#guint"><span class="type">guint</span></a> *size</code></em>);</pre>
-<p>Parses RFC 5285 style header extensions with a two bytes header. It will
-return the nth extension with the requested id.</p>
-<div class="refsect3">
-<a name="gst-rtp-buffer-get-extension-twobytes-header.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>rtp</p></td>
-<td class="parameter_description"><p>the RTP packet</p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-<tr>
-<td class="parameter_name"><p>appbits</p></td>
-<td class="parameter_description"><p> Application specific bits. </p></td>
-<td class="parameter_annotations"><span class="annotation">[<acronym title="Parameter for returning results. Default is transfer full."><span class="acronym">out</span></acronym>]</span></td>
-</tr>
-<tr>
-<td class="parameter_name"><p>id</p></td>
-<td class="parameter_description"><p>The ID of the header extension to be read (between 1 and 14).</p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-<tr>
-<td class="parameter_name"><p>nth</p></td>
-<td class="parameter_description"><p>Read the nth extension packet with the requested ID</p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-<tr>
-<td class="parameter_name"><p>data</p></td>
-<td class="parameter_description"><p>  location for data. </p></td>
-<td class="parameter_annotations"><span class="annotation">[<acronym title="Parameter for returning results. Default is transfer full."><span class="acronym">out</span></acronym>][<acronym title="Parameter points to an array of items."><span class="acronym">array</span></acronym> length=size][<acronym title="Generics and defining elements of containers and arrays."><span class="acronym">element-type</span></acronym> guint8][<acronym title="Don't free data after the code is done."><span class="acronym">transfer none</span></acronym>]</span></td>
-</tr>
-<tr>
-<td class="parameter_name"><p>size</p></td>
-<td class="parameter_description"><p> the size of the data in bytes. </p></td>
-<td class="parameter_annotations"><span class="annotation">[<acronym title="Parameter for returning results. Default is transfer full."><span class="acronym">out</span></acronym>]</span></td>
-</tr>
-</tbody>
-</table></div>
-</div>
-<div class="refsect3">
-<a name="gst-rtp-buffer-get-extension-twobytes-header.returns"></a><h4>Returns</h4>
-<p> TRUE if <em class="parameter"><code>buffer</code></em>
-had the requested header extension</p>
-</div>
 </div>
 <hr>
 <div class="refsect2">
@@ -2145,49 +792,6 @@
                                 <em class="parameter"><code><a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#guint8"><span class="type">guint8</span></a> id</code></em>,
                                 <em class="parameter"><code><a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> data</code></em>,
                                 <em class="parameter"><code><a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#guint"><span class="type">guint</span></a> size</code></em>);</pre>
-<p>Adds a RFC 5285 header extension with a one byte header to the end of the
-RTP header. If there is already a RFC 5285 header extension with a one byte
-header, the new extension will be appended.
-It will not work if there is already a header extension that does not follow
-the mecanism described in RFC 5285 or if there is a header extension with
-a two bytes header as described in RFC 5285. In that case, use
-<a class="link" href="gst-plugins-base-libs-gstrtpbuffer.html#gst-rtp-buffer-add-extension-twobytes-header" title="gst_rtp_buffer_add_extension_twobytes_header ()"><code class="function">gst_rtp_buffer_add_extension_twobytes_header()</code></a></p>
-<div class="refsect3">
-<a name="gst-rtp-buffer-add-extension-onebyte-header.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>rtp</p></td>
-<td class="parameter_description"><p>the RTP packet</p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-<tr>
-<td class="parameter_name"><p>id</p></td>
-<td class="parameter_description"><p>The ID of the header extension (between 1 and 14).</p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-<tr>
-<td class="parameter_name"><p>data</p></td>
-<td class="parameter_description"><p> location for data. </p></td>
-<td class="parameter_annotations"><span class="annotation">[<acronym title="Parameter points to an array of items."><span class="acronym">array</span></acronym> length=size][<acronym title="Generics and defining elements of containers and arrays."><span class="acronym">element-type</span></acronym> guint8]</span></td>
-</tr>
-<tr>
-<td class="parameter_name"><p>size</p></td>
-<td class="parameter_description"><p>the size of the data in bytes</p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-</tbody>
-</table></div>
-</div>
-<div class="refsect3">
-<a name="gst-rtp-buffer-add-extension-onebyte-header.returns"></a><h4>Returns</h4>
-<p> <a href="/usr/share/gtk-doc/html/glibglib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a> if header extension could be added</p>
-</div>
 </div>
 <hr>
 <div class="refsect2">
@@ -2199,54 +803,6 @@
                                 <em class="parameter"><code><a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#guint8"><span class="type">guint8</span></a> id</code></em>,
                                 <em class="parameter"><code><a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> data</code></em>,
                                 <em class="parameter"><code><a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#guint"><span class="type">guint</span></a> size</code></em>);</pre>
-<p>Adds a RFC 5285 header extension with a two bytes header to the end of the
-RTP header. If there is already a RFC 5285 header extension with a two bytes
-header, the new extension will be appended.
-It will not work if there is already a header extension that does not follow
-the mecanism described in RFC 5285 or if there is a header extension with
-a one byte header as described in RFC 5285. In that case, use
-<a class="link" href="gst-plugins-base-libs-gstrtpbuffer.html#gst-rtp-buffer-add-extension-onebyte-header" title="gst_rtp_buffer_add_extension_onebyte_header ()"><code class="function">gst_rtp_buffer_add_extension_onebyte_header()</code></a></p>
-<div class="refsect3">
-<a name="gst-rtp-buffer-add-extension-twobytes-header.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>rtp</p></td>
-<td class="parameter_description"><p>the RTP packet</p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-<tr>
-<td class="parameter_name"><p>appbits</p></td>
-<td class="parameter_description"><p>Application specific bits</p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-<tr>
-<td class="parameter_name"><p>id</p></td>
-<td class="parameter_description"><p>The ID of the header extension</p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-<tr>
-<td class="parameter_name"><p>data</p></td>
-<td class="parameter_description"><p> location for data. </p></td>
-<td class="parameter_annotations"><span class="annotation">[<acronym title="Parameter points to an array of items."><span class="acronym">array</span></acronym> length=size][<acronym title="Generics and defining elements of containers and arrays."><span class="acronym">element-type</span></acronym> guint8]</span></td>
-</tr>
-<tr>
-<td class="parameter_name"><p>size</p></td>
-<td class="parameter_description"><p>the size of the data in bytes</p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-</tbody>
-</table></div>
-</div>
-<div class="refsect3">
-<a name="gst-rtp-buffer-add-extension-twobytes-header.returns"></a><h4>Returns</h4>
-<p> <a href="/usr/share/gtk-doc/html/glibglib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a> if header extension could be added</p>
-</div>
 </div>
 </div>
 <div class="refsect1">
@@ -2255,7 +811,6 @@
 <a name="GST-RTP-VERSION:CAPS"></a><h3>GST_RTP_VERSION</h3>
 <pre class="programlisting">#define GST_RTP_VERSION 2
 </pre>
-<p>The supported RTP version 2.</p>
 </div>
 <hr>
 <div class="refsect2">
@@ -2268,45 +823,6 @@
   GstMapInfo   map[4];
 };
 </pre>
-<p>Data structure that points to an RTP packet.
-The size of the structure is made public to allow stack allocations.</p>
-<div class="refsect3">
-<a name="GstRTPBuffer.members"></a><h4>Members</h4>
-<div class="informaltable"><table class="informaltable" width="100%" border="0">
-<colgroup>
-<col width="300px" class="struct_members_name">
-<col class="struct_members_description">
-<col width="200px" class="struct_members_annotations">
-</colgroup>
-<tbody>
-<tr>
-<td class="struct_member_name"><p><a href="/usr/share/gtk-doc/html/gstreamer-1.0GstBuffer.html#GstBuffer-struct"><span class="type">GstBuffer</span></a> *<em class="structfield"><code><a name="GstRTPBuffer.buffer"></a>buffer</code></em>;</p></td>
-<td class="struct_member_description"><p>pointer to RTP buffer</p></td>
-<td class="struct_member_annotations"> </td>
-</tr>
-<tr>
-<td class="struct_member_name"><p><a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#guint"><span class="type">guint</span></a> <em class="structfield"><code><a name="GstRTPBuffer.state"></a>state</code></em>;</p></td>
-<td class="struct_member_description"><p>internal state</p></td>
-<td class="struct_member_annotations"> </td>
-</tr>
-<tr>
-<td class="struct_member_name"><p><a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> <em class="structfield"><code><a name="GstRTPBuffer.data"></a>data</code></em>[4];</p></td>
-<td class="struct_member_description"><p>array of data</p></td>
-<td class="struct_member_annotations"> </td>
-</tr>
-<tr>
-<td class="struct_member_name"><p><a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#gsize"><span class="type">gsize</span></a> <em class="structfield"><code><a name="GstRTPBuffer.size"></a>size</code></em>[4];</p></td>
-<td class="struct_member_description"><p>array of size</p></td>
-<td class="struct_member_annotations"> </td>
-</tr>
-<tr>
-<td class="struct_member_name"><p><a href="/usr/share/gtk-doc/html/gstreamer-1.0GstMemory.html#GstMapInfo"><span class="type">GstMapInfo</span></a> <em class="structfield"><code><a name="GstRTPBuffer.map"></a>map</code></em>[4];</p></td>
-<td class="struct_member_description"><p>array of <a href="/usr/share/gtk-doc/html/gstreamer-1.0GstMemory.html#GstMapInfo"><span class="type">GstMapInfo</span></a></p></td>
-<td class="struct_member_annotations"> </td>
-</tr>
-</tbody>
-</table></div>
-</div>
 </div>
 <hr>
 <div class="refsect2">
@@ -2314,10 +830,6 @@
 <pre class="programlisting">#define             GST_RTP_BUFFER_INIT</pre>
 </div>
 </div>
-<div class="refsect1">
-<a name="gst-plugins-base-libs-gstrtpbuffer.see-also"></a><h2>See Also</h2>
-<p><a class="link" href="gst-plugins-base-libs-gstrtpbasepayload.html#GstRTPBasePayload"><span class="type">GstRTPBasePayload</span></a>, <a class="link" href="gst-plugins-base-libs-gstrtpbasedepayload.html#GstRTPBaseDepayload"><span class="type">GstRTPBaseDepayload</span></a>, gstrtcpbuffer</p>
-</div>
 </div>
 <div class="footer">
 <hr>Generated by GTK-Doc V1.25</div>
diff --git a/docs/libs/html/gst-plugins-base-libs-gstrtphdrext.html b/docs/libs/html/gst-plugins-base-libs-gstrtphdrext.html
index 2fc58a5..3ee1bf5 100644
--- a/docs/libs/html/gst-plugins-base-libs-gstrtphdrext.html
+++ b/docs/libs/html/gst-plugins-base-libs-gstrtphdrext.html
@@ -27,7 +27,7 @@
 <div class="refnamediv"><table width="100%"><tr>
 <td valign="top">
 <h2><span class="refentrytitle"><a name="gst-plugins-base-libs-gstrtphdrext.top_of_page"></a>gstrtphdrext</span></h2>
-<p>gstrtphdrext — Helper methods for dealing with RTP header extensions</p>
+<p>gstrtphdrext</p>
 </td>
 <td class="gallery_image" valign="top" align="right"></td>
 </tr></table></div>
@@ -81,10 +81,6 @@
 </div>
 <div class="refsect1">
 <a name="gst-plugins-base-libs-gstrtphdrext.description"></a><h2>Description</h2>
-<div class="refsect2">
-<a name="id-1.2.9.9.5.2"></a><p>
-</p>
-</div>
 </div>
 <div class="refsect1">
 <a name="gst-plugins-base-libs-gstrtphdrext.functions_details"></a><h2>Functions</h2>
@@ -94,43 +90,6 @@
 gst_rtp_hdrext_get_ntp_56 (<em class="parameter"><code><a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> data</code></em>,
                            <em class="parameter"><code><a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#guint"><span class="type">guint</span></a> size</code></em>,
                            <em class="parameter"><code><a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#guint64"><span class="type">guint64</span></a> *ntptime</code></em>);</pre>
-<p>Reads the NTP time from the <em class="parameter"><code>size</code></em>
- NTP-56 extension bytes in <em class="parameter"><code>data</code></em>
- and store the
-result in <em class="parameter"><code>ntptime</code></em>
-.</p>
-<div class="refsect3">
-<a name="gst-rtp-hdrext-get-ntp-56.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>data</p></td>
-<td class="parameter_description"><p>the data to read from</p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-<tr>
-<td class="parameter_name"><p>size</p></td>
-<td class="parameter_description"><p>the size of <em class="parameter"><code>data</code></em>
-</p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-<tr>
-<td class="parameter_name"><p>ntptime</p></td>
-<td class="parameter_description"><p>the result NTP time</p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-</tbody>
-</table></div>
-</div>
-<div class="refsect3">
-<a name="gst-rtp-hdrext-get-ntp-56.returns"></a><h4>Returns</h4>
-<p> <a href="/usr/share/gtk-doc/html/glibglib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a> on success.</p>
-</div>
 </div>
 <hr>
 <div class="refsect2">
@@ -139,43 +98,6 @@
 gst_rtp_hdrext_get_ntp_64 (<em class="parameter"><code><a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> data</code></em>,
                            <em class="parameter"><code><a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#guint"><span class="type">guint</span></a> size</code></em>,
                            <em class="parameter"><code><a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#guint64"><span class="type">guint64</span></a> *ntptime</code></em>);</pre>
-<p>Reads the NTP time from the <em class="parameter"><code>size</code></em>
- NTP-64 extension bytes in <em class="parameter"><code>data</code></em>
- and store the
-result in <em class="parameter"><code>ntptime</code></em>
-.</p>
-<div class="refsect3">
-<a name="gst-rtp-hdrext-get-ntp-64.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>data</p></td>
-<td class="parameter_description"><p>the data to read from</p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-<tr>
-<td class="parameter_name"><p>size</p></td>
-<td class="parameter_description"><p>the size of <em class="parameter"><code>data</code></em>
-</p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-<tr>
-<td class="parameter_name"><p>ntptime</p></td>
-<td class="parameter_description"><p>the result NTP time</p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-</tbody>
-</table></div>
-</div>
-<div class="refsect3">
-<a name="gst-rtp-hdrext-get-ntp-64.returns"></a><h4>Returns</h4>
-<p> <a href="/usr/share/gtk-doc/html/glibglib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a> on success.</p>
-</div>
 </div>
 <hr>
 <div class="refsect2">
@@ -184,42 +106,6 @@
 gst_rtp_hdrext_set_ntp_56 (<em class="parameter"><code><a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> data</code></em>,
                            <em class="parameter"><code><a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#guint"><span class="type">guint</span></a> size</code></em>,
                            <em class="parameter"><code><a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#guint64"><span class="type">guint64</span></a> ntptime</code></em>);</pre>
-<p>Writes the NTP time in <em class="parameter"><code>ntptime</code></em>
- to the format required for the NTP-56 header
-extension. <em class="parameter"><code>data</code></em>
- must hold at least <span class="type">GST_RTP_HDREXT_NTP_56_SIZE</span> bytes.</p>
-<div class="refsect3">
-<a name="gst-rtp-hdrext-set-ntp-56.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>data</p></td>
-<td class="parameter_description"><p>the data to write to</p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-<tr>
-<td class="parameter_name"><p>size</p></td>
-<td class="parameter_description"><p>the size of <em class="parameter"><code>data</code></em>
-</p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-<tr>
-<td class="parameter_name"><p>ntptime</p></td>
-<td class="parameter_description"><p>the NTP time</p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-</tbody>
-</table></div>
-</div>
-<div class="refsect3">
-<a name="gst-rtp-hdrext-set-ntp-56.returns"></a><h4>Returns</h4>
-<p> <a href="/usr/share/gtk-doc/html/glibglib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a> on success.</p>
-</div>
 </div>
 <hr>
 <div class="refsect2">
@@ -228,51 +114,11 @@
 gst_rtp_hdrext_set_ntp_64 (<em class="parameter"><code><a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> data</code></em>,
                            <em class="parameter"><code><a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#guint"><span class="type">guint</span></a> size</code></em>,
                            <em class="parameter"><code><a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#guint64"><span class="type">guint64</span></a> ntptime</code></em>);</pre>
-<p>Writes the NTP time in <em class="parameter"><code>ntptime</code></em>
- to the format required for the NTP-64 header
-extension. <em class="parameter"><code>data</code></em>
- must hold at least <span class="type">GST_RTP_HDREXT_NTP_64_SIZE</span> bytes.</p>
-<div class="refsect3">
-<a name="gst-rtp-hdrext-set-ntp-64.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>data</p></td>
-<td class="parameter_description"><p>the data to write to</p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-<tr>
-<td class="parameter_name"><p>size</p></td>
-<td class="parameter_description"><p>the size of <em class="parameter"><code>data</code></em>
-</p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-<tr>
-<td class="parameter_name"><p>ntptime</p></td>
-<td class="parameter_description"><p>the NTP time</p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-</tbody>
-</table></div>
-</div>
-<div class="refsect3">
-<a name="gst-rtp-hdrext-set-ntp-64.returns"></a><h4>Returns</h4>
-<p> <a href="/usr/share/gtk-doc/html/glibglib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a> on success.</p>
-</div>
 </div>
 </div>
 <div class="refsect1">
 <a name="gst-plugins-base-libs-gstrtphdrext.other_details"></a><h2>Types and Values</h2>
 </div>
-<div class="refsect1">
-<a name="gst-plugins-base-libs-gstrtphdrext.see-also"></a><h2>See Also</h2>
-<p><a class="link" href="gst-plugins-base-libs-gstrtpbasepayload.html#GstRTPBasePayload"><span class="type">GstRTPBasePayload</span></a>, <a class="link" href="gst-plugins-base-libs-gstrtpbasedepayload.html#GstRTPBaseDepayload"><span class="type">GstRTPBaseDepayload</span></a>, gstrtpbuffer</p>
-</div>
 </div>
 <div class="footer">
 <hr>Generated by GTK-Doc V1.25</div>
diff --git a/docs/libs/html/gst-plugins-base-libs-gstrtppayloads.html b/docs/libs/html/gst-plugins-base-libs-gstrtppayloads.html
index 6401194..77ced9c 100644
--- a/docs/libs/html/gst-plugins-base-libs-gstrtppayloads.html
+++ b/docs/libs/html/gst-plugins-base-libs-gstrtppayloads.html
@@ -27,7 +27,7 @@
 <div class="refnamediv"><table width="100%"><tr>
 <td valign="top">
 <h2><span class="refentrytitle"><a name="gst-plugins-base-libs-gstrtppayloads.top_of_page"></a>gstrtppayloads</span></h2>
-<p>gstrtppayloads — Helper methods for dealing with RTP payloads</p>
+<p>gstrtppayloads</p>
 </td>
 <td class="gallery_image" valign="top" align="right"></td>
 </tr></table></div>
@@ -88,13 +88,6 @@
 </div>
 <div class="refsect1">
 <a name="gst-plugins-base-libs-gstrtppayloads.description"></a><h2>Description</h2>
-<div class="refsect2">
-<a name="id-1.2.9.8.6.2"></a><p>
-The GstRTPPayloads helper functions makes it easy to deal with static and dynamic
-payloads. Its main purpose is to retrieve properties such as the default clock-rate 
-and get session bandwidth information.
-</p>
-</div>
 </div>
 <div class="refsect1">
 <a name="gst-plugins-base-libs-gstrtppayloads.functions_details"></a><h2>Functions</h2>
@@ -102,23 +95,6 @@
 <a name="GST-RTP-PAYLOAD-IS-DYNAMIC:CAPS"></a><h3>GST_RTP_PAYLOAD_IS_DYNAMIC()</h3>
 <pre class="programlisting">#define GST_RTP_PAYLOAD_IS_DYNAMIC(pt) ((pt) &gt;= 96 &amp;&amp; (pt) &lt;= 127)
 </pre>
-<p>Check if <em class="parameter"><code>pt</code></em>
- is a dynamic payload type.</p>
-<div class="refsect3">
-<a name="GST-RTP-PAYLOAD-IS-DYNAMIC.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>pt</p></td>
-<td class="parameter_description"><p>a payload type</p></td>
-<td class="parameter_annotations"> </td>
-</tr></tbody>
-</table></div>
-</div>
 </div>
 <hr>
 <div class="refsect2">
@@ -126,86 +102,18 @@
 <pre class="programlisting">const <a class="link" href="gst-plugins-base-libs-gstrtppayloads.html#GstRTPPayloadInfo" title="struct GstRTPPayloadInfo"><span class="returnvalue">GstRTPPayloadInfo</span></a> *
 gst_rtp_payload_info_for_name (<em class="parameter"><code>const <a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *media</code></em>,
                                <em class="parameter"><code>const <a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *encoding_name</code></em>);</pre>
-<p>Get the <a class="link" href="gst-plugins-base-libs-gstrtppayloads.html#GstRTPPayloadInfo" title="struct GstRTPPayloadInfo"><span class="type">GstRTPPayloadInfo</span></a> for <em class="parameter"><code>media</code></em>
- and <em class="parameter"><code>encoding_name</code></em>
-. This function is
-mostly used to get the default clock-rate and bandwidth for dynamic payload
-types specified with <em class="parameter"><code>media</code></em>
- and <em class="parameter"><code>encoding</code></em>
- name.</p>
-<p>The search for <em class="parameter"><code>encoding_name</code></em>
- will be performed in a case insensitve way.</p>
-<div class="refsect3">
-<a name="gst-rtp-payload-info-for-name.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>media</p></td>
-<td class="parameter_description"><p>the media to find</p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-<tr>
-<td class="parameter_name"><p>encoding_name</p></td>
-<td class="parameter_description"><p>the encoding name to find</p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-</tbody>
-</table></div>
-</div>
-<div class="refsect3">
-<a name="gst-rtp-payload-info-for-name.returns"></a><h4>Returns</h4>
-<p> a <a class="link" href="gst-plugins-base-libs-gstrtppayloads.html#GstRTPPayloadInfo" title="struct GstRTPPayloadInfo"><span class="type">GstRTPPayloadInfo</span></a> or NULL when no info could be found.</p>
-</div>
 </div>
 <hr>
 <div class="refsect2">
 <a name="gst-rtp-payload-info-for-pt"></a><h3>gst_rtp_payload_info_for_pt ()</h3>
 <pre class="programlisting">const <a class="link" href="gst-plugins-base-libs-gstrtppayloads.html#GstRTPPayloadInfo" title="struct GstRTPPayloadInfo"><span class="returnvalue">GstRTPPayloadInfo</span></a> *
 gst_rtp_payload_info_for_pt (<em class="parameter"><code><a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#guint8"><span class="type">guint8</span></a> payload_type</code></em>);</pre>
-<p>Get the <a class="link" href="gst-plugins-base-libs-gstrtppayloads.html#GstRTPPayloadInfo" title="struct GstRTPPayloadInfo"><span class="type">GstRTPPayloadInfo</span></a> for <em class="parameter"><code>payload_type</code></em>
-. This function is
-mostly used to get the default clock-rate and bandwidth for static payload
-types specified with <em class="parameter"><code>payload_type</code></em>
-.</p>
-<div class="refsect3">
-<a name="gst-rtp-payload-info-for-pt.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>payload_type</p></td>
-<td class="parameter_description"><p>the payload_type to find</p></td>
-<td class="parameter_annotations"> </td>
-</tr></tbody>
-</table></div>
-</div>
-<div class="refsect3">
-<a name="gst-rtp-payload-info-for-pt.returns"></a><h4>Returns</h4>
-<p> a <a class="link" href="gst-plugins-base-libs-gstrtppayloads.html#GstRTPPayloadInfo" title="struct GstRTPPayloadInfo"><span class="type">GstRTPPayloadInfo</span></a> or NULL when no info could be found.</p>
-</div>
 </div>
 </div>
 <div class="refsect1">
 <a name="gst-plugins-base-libs-gstrtppayloads.other_details"></a><h2>Types and Values</h2>
 <div class="refsect2">
 <a name="GstRTPPayload"></a><h3>enum GstRTPPayload</h3>
-<p>Standard predefined fixed payload types.</p>
-<p>The official list is at:
-http://www.iana.org/assignments/rtp-parameters</p>
-<p>Audio:
-reserved: 19
-unassigned: 20-23,</p>
-<p>Video:
-unassigned: 24, 27, 29, 30, 35-71, 77-95
-Reserved for RTCP conflict avoidance: 72-76</p>
 <div class="refsect3">
 <a name="GstRTPPayload.members"></a><h4>Members</h4>
 <div class="informaltable"><table class="informaltable" width="100%" border="0">
@@ -217,185 +125,133 @@
 <tbody>
 <tr>
 <td class="enum_member_name"><p><a name="GST-RTP-PAYLOAD-PCMU:CAPS"></a>GST_RTP_PAYLOAD_PCMU</p></td>
-<td class="enum_member_description">
-<p>ITU-T G.711. mu-law audio (RFC 3551)</p>
-</td>
-<td class="enum_member_annotations"> </td>
+<td> </td>
+<td> </td>
 </tr>
 <tr>
 <td class="enum_member_name"><p><a name="GST-RTP-PAYLOAD-1016:CAPS"></a>GST_RTP_PAYLOAD_1016</p></td>
-<td class="enum_member_description">
-<p>RFC 3551 says reserved</p>
-</td>
-<td class="enum_member_annotations"> </td>
+<td> </td>
+<td> </td>
 </tr>
 <tr>
 <td class="enum_member_name"><p><a name="GST-RTP-PAYLOAD-G721:CAPS"></a>GST_RTP_PAYLOAD_G721</p></td>
-<td class="enum_member_description">
-<p>RFC 3551 says reserved</p>
-</td>
-<td class="enum_member_annotations"> </td>
+<td> </td>
+<td> </td>
 </tr>
 <tr>
 <td class="enum_member_name"><p><a name="GST-RTP-PAYLOAD-GSM:CAPS"></a>GST_RTP_PAYLOAD_GSM</p></td>
-<td class="enum_member_description">
-<p>GSM audio</p>
-</td>
-<td class="enum_member_annotations"> </td>
+<td> </td>
+<td> </td>
 </tr>
 <tr>
 <td class="enum_member_name"><p><a name="GST-RTP-PAYLOAD-G723:CAPS"></a>GST_RTP_PAYLOAD_G723</p></td>
-<td class="enum_member_description">
-<p>ITU G.723.1 audio</p>
-</td>
-<td class="enum_member_annotations"> </td>
+<td> </td>
+<td> </td>
 </tr>
 <tr>
 <td class="enum_member_name"><p><a name="GST-RTP-PAYLOAD-DVI4-8000:CAPS"></a>GST_RTP_PAYLOAD_DVI4_8000</p></td>
-<td class="enum_member_description">
-<p>IMA ADPCM wave type (RFC 3551)</p>
-</td>
-<td class="enum_member_annotations"> </td>
+<td> </td>
+<td> </td>
 </tr>
 <tr>
 <td class="enum_member_name"><p><a name="GST-RTP-PAYLOAD-DVI4-16000:CAPS"></a>GST_RTP_PAYLOAD_DVI4_16000</p></td>
-<td class="enum_member_description">
-<p>IMA ADPCM wave type (RFC 3551)</p>
-</td>
-<td class="enum_member_annotations"> </td>
+<td> </td>
+<td> </td>
 </tr>
 <tr>
 <td class="enum_member_name"><p><a name="GST-RTP-PAYLOAD-LPC:CAPS"></a>GST_RTP_PAYLOAD_LPC</p></td>
-<td class="enum_member_description">
-<p>experimental linear predictive encoding</p>
-</td>
-<td class="enum_member_annotations"> </td>
+<td> </td>
+<td> </td>
 </tr>
 <tr>
 <td class="enum_member_name"><p><a name="GST-RTP-PAYLOAD-PCMA:CAPS"></a>GST_RTP_PAYLOAD_PCMA</p></td>
-<td class="enum_member_description">
-<p>ITU-T G.711 A-law audio (RFC 3551)</p>
-</td>
-<td class="enum_member_annotations"> </td>
+<td> </td>
+<td> </td>
 </tr>
 <tr>
 <td class="enum_member_name"><p><a name="GST-RTP-PAYLOAD-G722:CAPS"></a>GST_RTP_PAYLOAD_G722</p></td>
-<td class="enum_member_description">
-<p>ITU-T G.722 (RFC 3551)</p>
-</td>
-<td class="enum_member_annotations"> </td>
+<td> </td>
+<td> </td>
 </tr>
 <tr>
 <td class="enum_member_name"><p><a name="GST-RTP-PAYLOAD-L16-STEREO:CAPS"></a>GST_RTP_PAYLOAD_L16_STEREO</p></td>
-<td class="enum_member_description">
-<p>stereo PCM</p>
-</td>
-<td class="enum_member_annotations"> </td>
+<td> </td>
+<td> </td>
 </tr>
 <tr>
 <td class="enum_member_name"><p><a name="GST-RTP-PAYLOAD-L16-MONO:CAPS"></a>GST_RTP_PAYLOAD_L16_MONO</p></td>
-<td class="enum_member_description">
-<p>mono PCM</p>
-</td>
-<td class="enum_member_annotations"> </td>
+<td> </td>
+<td> </td>
 </tr>
 <tr>
 <td class="enum_member_name"><p><a name="GST-RTP-PAYLOAD-QCELP:CAPS"></a>GST_RTP_PAYLOAD_QCELP</p></td>
-<td class="enum_member_description">
-<p>EIA &amp; TIA standard IS-733</p>
-</td>
-<td class="enum_member_annotations"> </td>
+<td> </td>
+<td> </td>
 </tr>
 <tr>
 <td class="enum_member_name"><p><a name="GST-RTP-PAYLOAD-CN:CAPS"></a>GST_RTP_PAYLOAD_CN</p></td>
-<td class="enum_member_description">
-<p>Comfort Noise (RFC 3389)</p>
-</td>
-<td class="enum_member_annotations"> </td>
+<td> </td>
+<td> </td>
 </tr>
 <tr>
 <td class="enum_member_name"><p><a name="GST-RTP-PAYLOAD-MPA:CAPS"></a>GST_RTP_PAYLOAD_MPA</p></td>
-<td class="enum_member_description">
-<p>Audio MPEG 1-3.</p>
-</td>
-<td class="enum_member_annotations"> </td>
+<td> </td>
+<td> </td>
 </tr>
 <tr>
 <td class="enum_member_name"><p><a name="GST-RTP-PAYLOAD-G728:CAPS"></a>GST_RTP_PAYLOAD_G728</p></td>
-<td class="enum_member_description">
-<p>ITU-T G.728 Speech coder (RFC 3551)</p>
-</td>
-<td class="enum_member_annotations"> </td>
+<td> </td>
+<td> </td>
 </tr>
 <tr>
 <td class="enum_member_name"><p><a name="GST-RTP-PAYLOAD-DVI4-11025:CAPS"></a>GST_RTP_PAYLOAD_DVI4_11025</p></td>
-<td class="enum_member_description">
-<p>IMA ADPCM wave type (RFC 3551)</p>
-</td>
-<td class="enum_member_annotations"> </td>
+<td> </td>
+<td> </td>
 </tr>
 <tr>
 <td class="enum_member_name"><p><a name="GST-RTP-PAYLOAD-DVI4-22050:CAPS"></a>GST_RTP_PAYLOAD_DVI4_22050</p></td>
-<td class="enum_member_description">
-<p>IMA ADPCM wave type (RFC 3551)</p>
-</td>
-<td class="enum_member_annotations"> </td>
+<td> </td>
+<td> </td>
 </tr>
 <tr>
 <td class="enum_member_name"><p><a name="GST-RTP-PAYLOAD-G729:CAPS"></a>GST_RTP_PAYLOAD_G729</p></td>
-<td class="enum_member_description">
-<p>ITU-T G.729 Speech coder (RFC 3551)</p>
-</td>
-<td class="enum_member_annotations"> </td>
+<td> </td>
+<td> </td>
 </tr>
 <tr>
 <td class="enum_member_name"><p><a name="GST-RTP-PAYLOAD-CELLB:CAPS"></a>GST_RTP_PAYLOAD_CELLB</p></td>
-<td class="enum_member_description">
-<p>See RFC 2029</p>
-</td>
-<td class="enum_member_annotations"> </td>
+<td> </td>
+<td> </td>
 </tr>
 <tr>
 <td class="enum_member_name"><p><a name="GST-RTP-PAYLOAD-JPEG:CAPS"></a>GST_RTP_PAYLOAD_JPEG</p></td>
-<td class="enum_member_description">
-<p>ISO Standards 10918-1 and 10918-2 (RFC 2435)</p>
-</td>
-<td class="enum_member_annotations"> </td>
+<td> </td>
+<td> </td>
 </tr>
 <tr>
 <td class="enum_member_name"><p><a name="GST-RTP-PAYLOAD-NV:CAPS"></a>GST_RTP_PAYLOAD_NV</p></td>
-<td class="enum_member_description">
-<p>nv encoding by Ron Frederick</p>
-</td>
-<td class="enum_member_annotations"> </td>
+<td> </td>
+<td> </td>
 </tr>
 <tr>
 <td class="enum_member_name"><p><a name="GST-RTP-PAYLOAD-H261:CAPS"></a>GST_RTP_PAYLOAD_H261</p></td>
-<td class="enum_member_description">
-<p>ITU-T Recommendation H.261 (RFC 2032)</p>
-</td>
-<td class="enum_member_annotations"> </td>
+<td> </td>
+<td> </td>
 </tr>
 <tr>
 <td class="enum_member_name"><p><a name="GST-RTP-PAYLOAD-MPV:CAPS"></a>GST_RTP_PAYLOAD_MPV</p></td>
-<td class="enum_member_description">
-<p>Video MPEG 1 &amp; 2 (RFC 2250)</p>
-</td>
-<td class="enum_member_annotations"> </td>
+<td> </td>
+<td> </td>
 </tr>
 <tr>
 <td class="enum_member_name"><p><a name="GST-RTP-PAYLOAD-MP2T:CAPS"></a>GST_RTP_PAYLOAD_MP2T</p></td>
-<td class="enum_member_description">
-<p>MPEG-2 transport stream (RFC 2250)</p>
-</td>
-<td class="enum_member_annotations"> </td>
+<td> </td>
+<td> </td>
 </tr>
 <tr>
 <td class="enum_member_name"><p><a name="GST-RTP-PAYLOAD-H263:CAPS"></a>GST_RTP_PAYLOAD_H263</p></td>
-<td class="enum_member_description">
-<p>Video H263 (RFC 2190)</p>
-</td>
-<td class="enum_member_annotations"> </td>
+<td> </td>
+<td> </td>
 </tr>
 </tbody>
 </table></div>
@@ -413,59 +269,9 @@
   guint        bitrate;
 };
 </pre>
-<p>Structure holding default payload type information.</p>
-<div class="refsect3">
-<a name="GstRTPPayloadInfo.members"></a><h4>Members</h4>
-<div class="informaltable"><table class="informaltable" width="100%" border="0">
-<colgroup>
-<col width="300px" class="struct_members_name">
-<col class="struct_members_description">
-<col width="200px" class="struct_members_annotations">
-</colgroup>
-<tbody>
-<tr>
-<td class="struct_member_name"><p><a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#guint8"><span class="type">guint8</span></a> <em class="structfield"><code><a name="GstRTPPayloadInfo.payload-type"></a>payload_type</code></em>;</p></td>
-<td class="struct_member_description"><p>payload type, -1 means dynamic</p></td>
-<td class="struct_member_annotations"> </td>
-</tr>
-<tr>
-<td class="struct_member_name"><p>const <a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *<em class="structfield"><code><a name="GstRTPPayloadInfo.media"></a>media</code></em>;</p></td>
-<td class="struct_member_description"><p>the media type(s), usually "audio", "video", "application", "text",
-"message".</p></td>
-<td class="struct_member_annotations"> </td>
-</tr>
-<tr>
-<td class="struct_member_name"><p>const <a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *<em class="structfield"><code><a name="GstRTPPayloadInfo.encoding-name"></a>encoding_name</code></em>;</p></td>
-<td class="struct_member_description"><p>the encoding name of <em class="parameter"><code>pt</code></em>
-</p></td>
-<td class="struct_member_annotations"> </td>
-</tr>
-<tr>
-<td class="struct_member_name"><p><a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#guint"><span class="type">guint</span></a> <em class="structfield"><code><a name="GstRTPPayloadInfo.clock-rate"></a>clock_rate</code></em>;</p></td>
-<td class="struct_member_description"><p>default clock rate, 0 = unknown/variable</p></td>
-<td class="struct_member_annotations"> </td>
-</tr>
-<tr>
-<td class="struct_member_name"><p>const <a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *<em class="structfield"><code><a name="GstRTPPayloadInfo.encoding-parameters"></a>encoding_parameters</code></em>;</p></td>
-<td class="struct_member_description"><p>encoding parameters. For audio this is the number of
-channels. NULL = not applicable.</p></td>
-<td class="struct_member_annotations"> </td>
-</tr>
-<tr>
-<td class="struct_member_name"><p><a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#guint"><span class="type">guint</span></a> <em class="structfield"><code><a name="GstRTPPayloadInfo.bitrate"></a>bitrate</code></em>;</p></td>
-<td class="struct_member_description"><p>the bitrate of the media. 0 = unknown/variable.</p></td>
-<td class="struct_member_annotations"> </td>
-</tr>
-</tbody>
-</table></div>
 </div>
 </div>
 </div>
-<div class="refsect1">
-<a name="gst-plugins-base-libs-gstrtppayloads.see-also"></a><h2>See Also</h2>
-<p>gstrtpbuffer</p>
-</div>
-</div>
 <div class="footer">
 <hr>Generated by GTK-Doc V1.25</div>
 </body>
diff --git a/docs/libs/html/gst-plugins-base-libs-gstrtspconnection.html b/docs/libs/html/gst-plugins-base-libs-gstrtspconnection.html
index 0b727db..da19511 100644
--- a/docs/libs/html/gst-plugins-base-libs-gstrtspconnection.html
+++ b/docs/libs/html/gst-plugins-base-libs-gstrtspconnection.html
@@ -27,7 +27,7 @@
 <div class="refnamediv"><table width="100%"><tr>
 <td valign="top">
 <h2><span class="refentrytitle"><a name="gst-plugins-base-libs-gstrtspconnection.top_of_page"></a>gstrtspconnection</span></h2>
-<p>gstrtspconnection — manage RTSP connections</p>
+<p>gstrtspconnection</p>
 </td>
 <td class="gallery_image" valign="top" align="right"></td>
 </tr></table></div>
@@ -446,8 +446,6 @@
 </div>
 <div class="refsect1">
 <a name="gst-plugins-base-libs-gstrtspconnection.description"></a><h2>Description</h2>
-<p>This object manages the RTSP connection to the server. It provides function
-to receive and send bytes and messages.</p>
 </div>
 <div class="refsect1">
 <a name="gst-plugins-base-libs-gstrtspconnection.functions_details"></a><h2>Functions</h2>
@@ -456,41 +454,6 @@
 <pre class="programlisting"><a class="link" href="gst-plugins-base-libs-gstrtspdefs.html#GstRTSPResult" title="enum GstRTSPResult"><span class="returnvalue">GstRTSPResult</span></a>
 gst_rtsp_connection_create (<em class="parameter"><code>const <a class="link" href="gst-plugins-base-libs-gstrtspurl.html#GstRTSPUrl" title="struct GstRTSPUrl"><span class="type">GstRTSPUrl</span></a> *url</code></em>,
                             <em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstrtspconnection.html#GstRTSPConnection" title="GstRTSPConnection"><span class="type">GstRTSPConnection</span></a> **conn</code></em>);</pre>
-<p>Create a newly allocated <a class="link" href="gst-plugins-base-libs-gstrtspconnection.html#GstRTSPConnection" title="GstRTSPConnection"><span class="type">GstRTSPConnection</span></a> from <em class="parameter"><code>url</code></em>
- and store it in <em class="parameter"><code>conn</code></em>
-.
-The connection will not yet attempt to connect to <em class="parameter"><code>url</code></em>
-, use
-<a class="link" href="gst-plugins-base-libs-gstrtspconnection.html#gst-rtsp-connection-connect" title="gst_rtsp_connection_connect ()"><code class="function">gst_rtsp_connection_connect()</code></a>.</p>
-<p>A copy of <em class="parameter"><code>url</code></em>
- will be made.</p>
-<div class="refsect3">
-<a name="gst-rtsp-connection-create.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>url</p></td>
-<td class="parameter_description"><p>a <a class="link" href="gst-plugins-base-libs-gstrtspurl.html#GstRTSPUrl" title="struct GstRTSPUrl"><span class="type">GstRTSPUrl</span></a></p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-<tr>
-<td class="parameter_name"><p>conn</p></td>
-<td class="parameter_description"><p> storage for a <a class="link" href="gst-plugins-base-libs-gstrtspconnection.html#GstRTSPConnection" title="GstRTSPConnection"><span class="type">GstRTSPConnection</span></a>. </p></td>
-<td class="parameter_annotations"><span class="annotation">[<acronym title="Parameter for returning results. Default is transfer full."><span class="acronym">out</span></acronym>][<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>]</span></td>
-</tr>
-</tbody>
-</table></div>
-</div>
-<div class="refsect3">
-<a name="gst-rtsp-connection-create.returns"></a><h4>Returns</h4>
-<p> <a class="link" href="gst-plugins-base-libs-gstrtspdefs.html#GST-RTSP-OK:CAPS"><span class="type">GST_RTSP_OK</span></a> when <em class="parameter"><code>conn</code></em>
-contains a valid connection.</p>
-</div>
 </div>
 <hr>
 <div class="refsect2">
@@ -502,55 +465,6 @@
                                 <em class="parameter"><code><a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#guint16"><span class="type">guint16</span></a> port</code></em>,
                                 <em class="parameter"><code>const <a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *initial_buffer</code></em>,
                                 <em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstrtspconnection.html#GstRTSPConnection" title="GstRTSPConnection"><span class="type">GstRTSPConnection</span></a> **conn</code></em>);</pre>
-<p>Create a new <a class="link" href="gst-plugins-base-libs-gstrtspconnection.html#GstRTSPConnection" title="GstRTSPConnection"><span class="type">GstRTSPConnection</span></a> for handling communication on the existing
-socket <em class="parameter"><code>socket</code></em>
-. The <em class="parameter"><code>initial_buffer</code></em>
- contains zero terminated data already
-read from <em class="parameter"><code>socket</code></em>
- which should be used before starting to read new data.</p>
-<div class="refsect3">
-<a name="gst-rtsp-connection-create-from-socket.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>socket</p></td>
-<td class="parameter_description"><p>a <a href="/usr/share/gtk-doc/html/gioGSocket.html#GSocket-struct"><span class="type">GSocket</span></a></p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-<tr>
-<td class="parameter_name"><p>ip</p></td>
-<td class="parameter_description"><p>the IP address of the other end</p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-<tr>
-<td class="parameter_name"><p>port</p></td>
-<td class="parameter_description"><p>the port used by the other end</p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-<tr>
-<td class="parameter_name"><p>initial_buffer</p></td>
-<td class="parameter_description"><p>data already read from <em class="parameter"><code>fd</code></em>
-</p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-<tr>
-<td class="parameter_name"><p>conn</p></td>
-<td class="parameter_description"><p> storage for a <a class="link" href="gst-plugins-base-libs-gstrtspconnection.html#GstRTSPConnection" title="GstRTSPConnection"><span class="type">GstRTSPConnection</span></a>. </p></td>
-<td class="parameter_annotations"><span class="annotation">[<acronym title="Parameter for returning results. Default is transfer full."><span class="acronym">out</span></acronym>][<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>]</span></td>
-</tr>
-</tbody>
-</table></div>
-</div>
-<div class="refsect3">
-<a name="gst-rtsp-connection-create-from-socket.returns"></a><h4>Returns</h4>
-<p> <a class="link" href="gst-plugins-base-libs-gstrtspdefs.html#GST-RTSP-OK:CAPS"><span class="type">GST_RTSP_OK</span></a> when <em class="parameter"><code>conn</code></em>
-contains a valid connection.</p>
-</div>
 </div>
 <hr>
 <div class="refsect2">
@@ -559,41 +473,6 @@
 gst_rtsp_connection_accept (<em class="parameter"><code><a href="/usr/share/gtk-doc/html/gioGSocket.html#GSocket-struct"><span class="type">GSocket</span></a> *socket</code></em>,
                             <em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstrtspconnection.html#GstRTSPConnection" title="GstRTSPConnection"><span class="type">GstRTSPConnection</span></a> **conn</code></em>,
                             <em class="parameter"><code><a href="/usr/share/gtk-doc/html/gioGCancellable.html#GCancellable-struct"><span class="type">GCancellable</span></a> *cancellable</code></em>);</pre>
-<p>Accept a new connection on <em class="parameter"><code>socket</code></em>
- and create a new <a class="link" href="gst-plugins-base-libs-gstrtspconnection.html#GstRTSPConnection" title="GstRTSPConnection"><span class="type">GstRTSPConnection</span></a> for
-handling communication on new socket.</p>
-<div class="refsect3">
-<a name="gst-rtsp-connection-accept.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>socket</p></td>
-<td class="parameter_description"><p>a socket</p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-<tr>
-<td class="parameter_name"><p>conn</p></td>
-<td class="parameter_description"><p> storage for a <a class="link" href="gst-plugins-base-libs-gstrtspconnection.html#GstRTSPConnection" title="GstRTSPConnection"><span class="type">GstRTSPConnection</span></a>. </p></td>
-<td class="parameter_annotations"><span class="annotation">[<acronym title="Parameter for returning results. Default is transfer full."><span class="acronym">out</span></acronym>][<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>]</span></td>
-</tr>
-<tr>
-<td class="parameter_name"><p>cancellable</p></td>
-<td class="parameter_description"><p>a <a href="/usr/share/gtk-doc/html/gioGCancellable.html#GCancellable-struct"><span class="type">GCancellable</span></a> to cancel the operation</p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-</tbody>
-</table></div>
-</div>
-<div class="refsect3">
-<a name="gst-rtsp-connection-accept.returns"></a><h4>Returns</h4>
-<p> <a class="link" href="gst-plugins-base-libs-gstrtspdefs.html#GST-RTSP-OK:CAPS"><span class="type">GST_RTSP_OK</span></a> when <em class="parameter"><code>conn</code></em>
-contains a valid connection.</p>
-</div>
 </div>
 <hr>
 <div class="refsect2">
@@ -601,40 +480,6 @@
 <pre class="programlisting"><a class="link" href="gst-plugins-base-libs-gstrtspdefs.html#GstRTSPResult" title="enum GstRTSPResult"><span class="returnvalue">GstRTSPResult</span></a>
 gst_rtsp_connection_connect (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstrtspconnection.html#GstRTSPConnection" title="GstRTSPConnection"><span class="type">GstRTSPConnection</span></a> *conn</code></em>,
                              <em class="parameter"><code><a href="/usr/share/gtk-doc/html/glibglib-Date-and-Time-Functions.html#GTimeVal"><span class="type">GTimeVal</span></a> *timeout</code></em>);</pre>
-<p>Attempt to connect to the url of <em class="parameter"><code>conn</code></em>
- made with
-<a class="link" href="gst-plugins-base-libs-gstrtspconnection.html#gst-rtsp-connection-create" title="gst_rtsp_connection_create ()"><code class="function">gst_rtsp_connection_create()</code></a>. If <em class="parameter"><code>timeout</code></em>
- is <a href="/usr/share/gtk-doc/html/glibglib-Standard-Macros.html#NULL:CAPS"><span class="type">NULL</span></a> this function can block
-forever. If <em class="parameter"><code>timeout</code></em>
- contains a valid timeout, this function will return
-<a class="link" href="gst-plugins-base-libs-gstrtspdefs.html#GST-RTSP-ETIMEOUT:CAPS"><span class="type">GST_RTSP_ETIMEOUT</span></a> after the timeout expired.</p>
-<p>This function can be cancelled with <a class="link" href="gst-plugins-base-libs-gstrtspconnection.html#gst-rtsp-connection-flush" title="gst_rtsp_connection_flush ()"><code class="function">gst_rtsp_connection_flush()</code></a>.</p>
-<div class="refsect3">
-<a name="gst-rtsp-connection-connect.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>conn</p></td>
-<td class="parameter_description"><p>a <a class="link" href="gst-plugins-base-libs-gstrtspconnection.html#GstRTSPConnection" title="GstRTSPConnection"><span class="type">GstRTSPConnection</span></a></p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-<tr>
-<td class="parameter_name"><p>timeout</p></td>
-<td class="parameter_description"><p>a <a href="/usr/share/gtk-doc/html/glibglib-Date-and-Time-Functions.html#GTimeVal"><span class="type">GTimeVal</span></a> timeout</p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-</tbody>
-</table></div>
-</div>
-<div class="refsect3">
-<a name="gst-rtsp-connection-connect.returns"></a><h4>Returns</h4>
-<p> <a class="link" href="gst-plugins-base-libs-gstrtspdefs.html#GST-RTSP-OK:CAPS"><span class="type">GST_RTSP_OK</span></a> when a connection could be made.</p>
-</div>
 </div>
 <hr>
 <div class="refsect2">
@@ -644,104 +489,18 @@
                                (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstrtspconnection.html#GstRTSPConnection" title="GstRTSPConnection"><span class="type">GstRTSPConnection</span></a> *conn</code></em>,
                                 <em class="parameter"><code><a href="/usr/share/gtk-doc/html/glibglib-Date-and-Time-Functions.html#GTimeVal"><span class="type">GTimeVal</span></a> *timeout</code></em>,
                                 <em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstrtspmessage.html#GstRTSPMessage" title="struct GstRTSPMessage"><span class="type">GstRTSPMessage</span></a> *response</code></em>);</pre>
-<p>Attempt to connect to the url of <em class="parameter"><code>conn</code></em>
- made with
-<a class="link" href="gst-plugins-base-libs-gstrtspconnection.html#gst-rtsp-connection-create" title="gst_rtsp_connection_create ()"><code class="function">gst_rtsp_connection_create()</code></a>. If <em class="parameter"><code>timeout</code></em>
- is <a href="/usr/share/gtk-doc/html/glibglib-Standard-Macros.html#NULL:CAPS"><span class="type">NULL</span></a> this function can block
-forever. If <em class="parameter"><code>timeout</code></em>
- contains a valid timeout, this function will return
-<a class="link" href="gst-plugins-base-libs-gstrtspdefs.html#GST-RTSP-ETIMEOUT:CAPS"><span class="type">GST_RTSP_ETIMEOUT</span></a> after the timeout expired.  If <em class="parameter"><code>conn</code></em>
- is set to tunneled,
-<em class="parameter"><code>response</code></em>
- will contain a response to the tunneling request messages.</p>
-<p>This function can be cancelled with <a class="link" href="gst-plugins-base-libs-gstrtspconnection.html#gst-rtsp-connection-flush" title="gst_rtsp_connection_flush ()"><code class="function">gst_rtsp_connection_flush()</code></a>.</p>
-<div class="refsect3">
-<a name="gst-rtsp-connection-connect-with-response.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>conn</p></td>
-<td class="parameter_description"><p>a <a class="link" href="gst-plugins-base-libs-gstrtspconnection.html#GstRTSPConnection" title="GstRTSPConnection"><span class="type">GstRTSPConnection</span></a></p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-<tr>
-<td class="parameter_name"><p>timeout</p></td>
-<td class="parameter_description"><p>a <a href="/usr/share/gtk-doc/html/glibglib-Date-and-Time-Functions.html#GTimeVal"><span class="type">GTimeVal</span></a> timeout</p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-<tr>
-<td class="parameter_name"><p>response</p></td>
-<td class="parameter_description"><p>a <a class="link" href="gst-plugins-base-libs-gstrtspmessage.html#GstRTSPMessage" title="struct GstRTSPMessage"><span class="type">GstRTSPMessage</span></a></p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-</tbody>
-</table></div>
-</div>
-<div class="refsect3">
-<a name="gst-rtsp-connection-connect-with-response.returns"></a><h4>Returns</h4>
-<p> <a class="link" href="gst-plugins-base-libs-gstrtspdefs.html#GST-RTSP-OK:CAPS"><span class="type">GST_RTSP_OK</span></a> when a connection could be made.</p>
-<p>Since 1.8</p>
-</div>
 </div>
 <hr>
 <div class="refsect2">
 <a name="gst-rtsp-connection-close"></a><h3>gst_rtsp_connection_close ()</h3>
 <pre class="programlisting"><a class="link" href="gst-plugins-base-libs-gstrtspdefs.html#GstRTSPResult" title="enum GstRTSPResult"><span class="returnvalue">GstRTSPResult</span></a>
 gst_rtsp_connection_close (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstrtspconnection.html#GstRTSPConnection" title="GstRTSPConnection"><span class="type">GstRTSPConnection</span></a> *conn</code></em>);</pre>
-<p>Close the connected <em class="parameter"><code>conn</code></em>
-. After this call, the connection is in the same
-state as when it was first created.</p>
-<div class="refsect3">
-<a name="gst-rtsp-connection-close.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>conn</p></td>
-<td class="parameter_description"><p>a <a class="link" href="gst-plugins-base-libs-gstrtspconnection.html#GstRTSPConnection" title="GstRTSPConnection"><span class="type">GstRTSPConnection</span></a></p></td>
-<td class="parameter_annotations"> </td>
-</tr></tbody>
-</table></div>
-</div>
-<div class="refsect3">
-<a name="gst-rtsp-connection-close.returns"></a><h4>Returns</h4>
-<p> <a class="link" href="gst-plugins-base-libs-gstrtspdefs.html#GST-RTSP-OK:CAPS"><span class="type">GST_RTSP_OK</span></a> on success.</p>
-</div>
 </div>
 <hr>
 <div class="refsect2">
 <a name="gst-rtsp-connection-free"></a><h3>gst_rtsp_connection_free ()</h3>
 <pre class="programlisting"><a class="link" href="gst-plugins-base-libs-gstrtspdefs.html#GstRTSPResult" title="enum GstRTSPResult"><span class="returnvalue">GstRTSPResult</span></a>
 gst_rtsp_connection_free (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstrtspconnection.html#GstRTSPConnection" title="GstRTSPConnection"><span class="type">GstRTSPConnection</span></a> *conn</code></em>);</pre>
-<p>Close and free <em class="parameter"><code>conn</code></em>
-.</p>
-<div class="refsect3">
-<a name="gst-rtsp-connection-free.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>conn</p></td>
-<td class="parameter_description"><p>a <a class="link" href="gst-plugins-base-libs-gstrtspconnection.html#GstRTSPConnection" title="GstRTSPConnection"><span class="type">GstRTSPConnection</span></a></p></td>
-<td class="parameter_annotations"> </td>
-</tr></tbody>
-</table></div>
-</div>
-<div class="refsect3">
-<a name="gst-rtsp-connection-free.returns"></a><h4>Returns</h4>
-<p> <a class="link" href="gst-plugins-base-libs-gstrtspdefs.html#GST-RTSP-OK:CAPS"><span class="type">GST_RTSP_OK</span></a> on success.</p>
-</div>
 </div>
 <hr>
 <div class="refsect2">
@@ -751,52 +510,6 @@
                           <em class="parameter"><code><a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#guint8"><span class="type">guint8</span></a> *data</code></em>,
                           <em class="parameter"><code><a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#guint"><span class="type">guint</span></a> size</code></em>,
                           <em class="parameter"><code><a href="/usr/share/gtk-doc/html/glibglib-Date-and-Time-Functions.html#GTimeVal"><span class="type">GTimeVal</span></a> *timeout</code></em>);</pre>
-<p>Attempt to read <em class="parameter"><code>size</code></em>
- bytes into <em class="parameter"><code>data</code></em>
- from the connected <em class="parameter"><code>conn</code></em>
-, blocking up to
-the specified <em class="parameter"><code>timeout</code></em>
-. <em class="parameter"><code>timeout</code></em>
- can be <a href="/usr/share/gtk-doc/html/glibglib-Standard-Macros.html#NULL:CAPS"><span class="type">NULL</span></a>, in which case this function
-might block forever.</p>
-<p>This function can be cancelled with <a class="link" href="gst-plugins-base-libs-gstrtspconnection.html#gst-rtsp-connection-flush" title="gst_rtsp_connection_flush ()"><code class="function">gst_rtsp_connection_flush()</code></a>.</p>
-<div class="refsect3">
-<a name="gst-rtsp-connection-read.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>conn</p></td>
-<td class="parameter_description"><p>a <a class="link" href="gst-plugins-base-libs-gstrtspconnection.html#GstRTSPConnection" title="GstRTSPConnection"><span class="type">GstRTSPConnection</span></a></p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-<tr>
-<td class="parameter_name"><p>data</p></td>
-<td class="parameter_description"><p>the data to read</p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-<tr>
-<td class="parameter_name"><p>size</p></td>
-<td class="parameter_description"><p>the size of <em class="parameter"><code>data</code></em>
-</p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-<tr>
-<td class="parameter_name"><p>timeout</p></td>
-<td class="parameter_description"><p>a timeout value or <a href="/usr/share/gtk-doc/html/glibglib-Standard-Macros.html#NULL:CAPS"><span class="type">NULL</span></a></p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-</tbody>
-</table></div>
-</div>
-<div class="refsect3">
-<a name="gst-rtsp-connection-read.returns"></a><h4>Returns</h4>
-<p> <a class="link" href="gst-plugins-base-libs-gstrtspdefs.html#GST-RTSP-OK:CAPS"><span class="type">GST_RTSP_OK</span></a> on success.</p>
-</div>
 </div>
 <hr>
 <div class="refsect2">
@@ -806,52 +519,6 @@
                            <em class="parameter"><code>const <a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#guint8"><span class="type">guint8</span></a> *data</code></em>,
                            <em class="parameter"><code><a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#guint"><span class="type">guint</span></a> size</code></em>,
                            <em class="parameter"><code><a href="/usr/share/gtk-doc/html/glibglib-Date-and-Time-Functions.html#GTimeVal"><span class="type">GTimeVal</span></a> *timeout</code></em>);</pre>
-<p>Attempt to write <em class="parameter"><code>size</code></em>
- bytes of <em class="parameter"><code>data</code></em>
- to the connected <em class="parameter"><code>conn</code></em>
-, blocking up to
-the specified <em class="parameter"><code>timeout</code></em>
-. <em class="parameter"><code>timeout</code></em>
- can be <a href="/usr/share/gtk-doc/html/glibglib-Standard-Macros.html#NULL:CAPS"><span class="type">NULL</span></a>, in which case this function
-might block forever.</p>
-<p>This function can be cancelled with <a class="link" href="gst-plugins-base-libs-gstrtspconnection.html#gst-rtsp-connection-flush" title="gst_rtsp_connection_flush ()"><code class="function">gst_rtsp_connection_flush()</code></a>.</p>
-<div class="refsect3">
-<a name="gst-rtsp-connection-write.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>conn</p></td>
-<td class="parameter_description"><p>a <a class="link" href="gst-plugins-base-libs-gstrtspconnection.html#GstRTSPConnection" title="GstRTSPConnection"><span class="type">GstRTSPConnection</span></a></p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-<tr>
-<td class="parameter_name"><p>data</p></td>
-<td class="parameter_description"><p>the data to write</p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-<tr>
-<td class="parameter_name"><p>size</p></td>
-<td class="parameter_description"><p>the size of <em class="parameter"><code>data</code></em>
-</p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-<tr>
-<td class="parameter_name"><p>timeout</p></td>
-<td class="parameter_description"><p>a timeout value or <a href="/usr/share/gtk-doc/html/glibglib-Standard-Macros.html#NULL:CAPS"><span class="type">NULL</span></a></p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-</tbody>
-</table></div>
-</div>
-<div class="refsect3">
-<a name="gst-rtsp-connection-write.returns"></a><h4>Returns</h4>
-<p> <a class="link" href="gst-plugins-base-libs-gstrtspdefs.html#GST-RTSP-OK:CAPS"><span class="type">GST_RTSP_OK</span></a> on success.</p>
-</div>
 </div>
 <hr>
 <div class="refsect2">
@@ -861,53 +528,6 @@
                           <em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstrtspdefs.html#GstRTSPEvent" title="enum GstRTSPEvent"><span class="type">GstRTSPEvent</span></a> events</code></em>,
                           <em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstrtspdefs.html#GstRTSPEvent" title="enum GstRTSPEvent"><span class="type">GstRTSPEvent</span></a> *revents</code></em>,
                           <em class="parameter"><code><a href="/usr/share/gtk-doc/html/glibglib-Date-and-Time-Functions.html#GTimeVal"><span class="type">GTimeVal</span></a> *timeout</code></em>);</pre>
-<p>Wait up to the specified <em class="parameter"><code>timeout</code></em>
- for the connection to become available for
-at least one of the operations specified in <em class="parameter"><code>events</code></em>
-. When the function returns
-with <a class="link" href="gst-plugins-base-libs-gstrtspdefs.html#GST-RTSP-OK:CAPS"><span class="type">GST_RTSP_OK</span></a>, <em class="parameter"><code>revents</code></em>
- will contain a bitmask of available operations on
-<em class="parameter"><code>conn</code></em>
-.</p>
-<p><em class="parameter"><code>timeout</code></em>
- can be <a href="/usr/share/gtk-doc/html/glibglib-Standard-Macros.html#NULL:CAPS"><span class="type">NULL</span></a>, in which case this function might block forever.</p>
-<p>This function can be cancelled with <a class="link" href="gst-plugins-base-libs-gstrtspconnection.html#gst-rtsp-connection-flush" title="gst_rtsp_connection_flush ()"><code class="function">gst_rtsp_connection_flush()</code></a>.</p>
-<div class="refsect3">
-<a name="gst-rtsp-connection-poll.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>conn</p></td>
-<td class="parameter_description"><p>a <a class="link" href="gst-plugins-base-libs-gstrtspconnection.html#GstRTSPConnection" title="GstRTSPConnection"><span class="type">GstRTSPConnection</span></a></p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-<tr>
-<td class="parameter_name"><p>events</p></td>
-<td class="parameter_description"><p>a bitmask of <a class="link" href="gst-plugins-base-libs-gstrtspdefs.html#GstRTSPEvent" title="enum GstRTSPEvent"><span class="type">GstRTSPEvent</span></a> flags to check</p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-<tr>
-<td class="parameter_name"><p>revents</p></td>
-<td class="parameter_description"><p>location for result flags</p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-<tr>
-<td class="parameter_name"><p>timeout</p></td>
-<td class="parameter_description"><p>a timeout</p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-</tbody>
-</table></div>
-</div>
-<div class="refsect3">
-<a name="gst-rtsp-connection-poll.returns"></a><h4>Returns</h4>
-<p> <a class="link" href="gst-plugins-base-libs-gstrtspdefs.html#GST-RTSP-OK:CAPS"><span class="type">GST_RTSP_OK</span></a> on success.</p>
-</div>
 </div>
 <hr>
 <div class="refsect2">
@@ -916,45 +536,6 @@
 gst_rtsp_connection_send (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstrtspconnection.html#GstRTSPConnection" title="GstRTSPConnection"><span class="type">GstRTSPConnection</span></a> *conn</code></em>,
                           <em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstrtspmessage.html#GstRTSPMessage" title="struct GstRTSPMessage"><span class="type">GstRTSPMessage</span></a> *message</code></em>,
                           <em class="parameter"><code><a href="/usr/share/gtk-doc/html/glibglib-Date-and-Time-Functions.html#GTimeVal"><span class="type">GTimeVal</span></a> *timeout</code></em>);</pre>
-<p>Attempt to send <em class="parameter"><code>message</code></em>
- to the connected <em class="parameter"><code>conn</code></em>
-, blocking up to
-the specified <em class="parameter"><code>timeout</code></em>
-. <em class="parameter"><code>timeout</code></em>
- can be <a href="/usr/share/gtk-doc/html/glibglib-Standard-Macros.html#NULL:CAPS"><span class="type">NULL</span></a>, in which case this function
-might block forever.</p>
-<p>This function can be cancelled with <a class="link" href="gst-plugins-base-libs-gstrtspconnection.html#gst-rtsp-connection-flush" title="gst_rtsp_connection_flush ()"><code class="function">gst_rtsp_connection_flush()</code></a>.</p>
-<div class="refsect3">
-<a name="gst-rtsp-connection-send.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>conn</p></td>
-<td class="parameter_description"><p>a <a class="link" href="gst-plugins-base-libs-gstrtspconnection.html#GstRTSPConnection" title="GstRTSPConnection"><span class="type">GstRTSPConnection</span></a></p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-<tr>
-<td class="parameter_name"><p>message</p></td>
-<td class="parameter_description"><p>the message to send</p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-<tr>
-<td class="parameter_name"><p>timeout</p></td>
-<td class="parameter_description"><p>a timeout value or <a href="/usr/share/gtk-doc/html/glibglib-Standard-Macros.html#NULL:CAPS"><span class="type">NULL</span></a></p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-</tbody>
-</table></div>
-</div>
-<div class="refsect3">
-<a name="gst-rtsp-connection-send.returns"></a><h4>Returns</h4>
-<p> <a class="link" href="gst-plugins-base-libs-gstrtspdefs.html#GST-RTSP-OK:CAPS"><span class="type">GST_RTSP_OK</span></a> on success.</p>
-</div>
 </div>
 <hr>
 <div class="refsect2">
@@ -963,45 +544,6 @@
 gst_rtsp_connection_receive (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstrtspconnection.html#GstRTSPConnection" title="GstRTSPConnection"><span class="type">GstRTSPConnection</span></a> *conn</code></em>,
                              <em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstrtspmessage.html#GstRTSPMessage" title="struct GstRTSPMessage"><span class="type">GstRTSPMessage</span></a> *message</code></em>,
                              <em class="parameter"><code><a href="/usr/share/gtk-doc/html/glibglib-Date-and-Time-Functions.html#GTimeVal"><span class="type">GTimeVal</span></a> *timeout</code></em>);</pre>
-<p>Attempt to read into <em class="parameter"><code>message</code></em>
- from the connected <em class="parameter"><code>conn</code></em>
-, blocking up to
-the specified <em class="parameter"><code>timeout</code></em>
-. <em class="parameter"><code>timeout</code></em>
- can be <a href="/usr/share/gtk-doc/html/glibglib-Standard-Macros.html#NULL:CAPS"><span class="type">NULL</span></a>, in which case this function
-might block forever.</p>
-<p>This function can be cancelled with <a class="link" href="gst-plugins-base-libs-gstrtspconnection.html#gst-rtsp-connection-flush" title="gst_rtsp_connection_flush ()"><code class="function">gst_rtsp_connection_flush()</code></a>.</p>
-<div class="refsect3">
-<a name="gst-rtsp-connection-receive.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>conn</p></td>
-<td class="parameter_description"><p>a <a class="link" href="gst-plugins-base-libs-gstrtspconnection.html#GstRTSPConnection" title="GstRTSPConnection"><span class="type">GstRTSPConnection</span></a></p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-<tr>
-<td class="parameter_name"><p>message</p></td>
-<td class="parameter_description"><p>the message to read</p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-<tr>
-<td class="parameter_name"><p>timeout</p></td>
-<td class="parameter_description"><p>a timeout value or <a href="/usr/share/gtk-doc/html/glibglib-Standard-Macros.html#NULL:CAPS"><span class="type">NULL</span></a></p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-</tbody>
-</table></div>
-</div>
-<div class="refsect3">
-<a name="gst-rtsp-connection-receive.returns"></a><h4>Returns</h4>
-<p> <a class="link" href="gst-plugins-base-libs-gstrtspdefs.html#GST-RTSP-OK:CAPS"><span class="type">GST_RTSP_OK</span></a> on success.</p>
-</div>
 </div>
 <hr>
 <div class="refsect2">
@@ -1009,62 +551,12 @@
 <pre class="programlisting"><a class="link" href="gst-plugins-base-libs-gstrtspdefs.html#GstRTSPResult" title="enum GstRTSPResult"><span class="returnvalue">GstRTSPResult</span></a>
 gst_rtsp_connection_next_timeout (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstrtspconnection.html#GstRTSPConnection" title="GstRTSPConnection"><span class="type">GstRTSPConnection</span></a> *conn</code></em>,
                                   <em class="parameter"><code><a href="/usr/share/gtk-doc/html/glibglib-Date-and-Time-Functions.html#GTimeVal"><span class="type">GTimeVal</span></a> *timeout</code></em>);</pre>
-<p>Calculate the next timeout for <em class="parameter"><code>conn</code></em>
-, storing the result in <em class="parameter"><code>timeout</code></em>
-.</p>
-<div class="refsect3">
-<a name="gst-rtsp-connection-next-timeout.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>conn</p></td>
-<td class="parameter_description"><p>a <a class="link" href="gst-plugins-base-libs-gstrtspconnection.html#GstRTSPConnection" title="GstRTSPConnection"><span class="type">GstRTSPConnection</span></a></p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-<tr>
-<td class="parameter_name"><p>timeout</p></td>
-<td class="parameter_description"><p>a timeout</p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-</tbody>
-</table></div>
-</div>
-<div class="refsect3">
-<a name="gst-rtsp-connection-next-timeout.returns"></a><h4>Returns</h4>
-<p> <a class="link" href="gst-plugins-base-libs-gstrtspdefs.html#GST-RTSP-OK:CAPS"><span class="type">GST_RTSP_OK</span></a>.</p>
-</div>
 </div>
 <hr>
 <div class="refsect2">
 <a name="gst-rtsp-connection-reset-timeout"></a><h3>gst_rtsp_connection_reset_timeout ()</h3>
 <pre class="programlisting"><a class="link" href="gst-plugins-base-libs-gstrtspdefs.html#GstRTSPResult" title="enum GstRTSPResult"><span class="returnvalue">GstRTSPResult</span></a>
 gst_rtsp_connection_reset_timeout (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstrtspconnection.html#GstRTSPConnection" title="GstRTSPConnection"><span class="type">GstRTSPConnection</span></a> *conn</code></em>);</pre>
-<p>Reset the timeout of <em class="parameter"><code>conn</code></em>
-.</p>
-<div class="refsect3">
-<a name="gst-rtsp-connection-reset-timeout.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>conn</p></td>
-<td class="parameter_description"><p>a <a class="link" href="gst-plugins-base-libs-gstrtspconnection.html#GstRTSPConnection" title="GstRTSPConnection"><span class="type">GstRTSPConnection</span></a></p></td>
-<td class="parameter_annotations"> </td>
-</tr></tbody>
-</table></div>
-</div>
-<div class="refsect3">
-<a name="gst-rtsp-connection-reset-timeout.returns"></a><h4>Returns</h4>
-<p> <a class="link" href="gst-plugins-base-libs-gstrtspdefs.html#GST-RTSP-OK:CAPS"><span class="type">GST_RTSP_OK</span></a>.</p>
-</div>
 </div>
 <hr>
 <div class="refsect2">
@@ -1072,37 +564,6 @@
 <pre class="programlisting"><a class="link" href="gst-plugins-base-libs-gstrtspdefs.html#GstRTSPResult" title="enum GstRTSPResult"><span class="returnvalue">GstRTSPResult</span></a>
 gst_rtsp_connection_flush (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstrtspconnection.html#GstRTSPConnection" title="GstRTSPConnection"><span class="type">GstRTSPConnection</span></a> *conn</code></em>,
                            <em class="parameter"><code><a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a> flush</code></em>);</pre>
-<p>Start or stop the flushing action on <em class="parameter"><code>conn</code></em>
-. When flushing, all current
-and future actions on <em class="parameter"><code>conn</code></em>
- will return <a class="link" href="gst-plugins-base-libs-gstrtspdefs.html#GST-RTSP-EINTR:CAPS"><span class="type">GST_RTSP_EINTR</span></a> until the connection
-is set to non-flushing mode again.</p>
-<div class="refsect3">
-<a name="gst-rtsp-connection-flush.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>conn</p></td>
-<td class="parameter_description"><p>a <a class="link" href="gst-plugins-base-libs-gstrtspconnection.html#GstRTSPConnection" title="GstRTSPConnection"><span class="type">GstRTSPConnection</span></a></p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-<tr>
-<td class="parameter_name"><p>flush</p></td>
-<td class="parameter_description"><p>start or stop the flush</p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-</tbody>
-</table></div>
-</div>
-<div class="refsect3">
-<a name="gst-rtsp-connection-flush.returns"></a><h4>Returns</h4>
-<p> <a class="link" href="gst-plugins-base-libs-gstrtspdefs.html#GST-RTSP-OK:CAPS"><span class="type">GST_RTSP_OK</span></a>.</p>
-</div>
 </div>
 <hr>
 <div class="refsect2">
@@ -1112,48 +573,6 @@
                               <em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstrtspdefs.html#GstRTSPAuthMethod" title="enum GstRTSPAuthMethod"><span class="type">GstRTSPAuthMethod</span></a> method</code></em>,
                               <em class="parameter"><code>const <a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *user</code></em>,
                               <em class="parameter"><code>const <a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *pass</code></em>);</pre>
-<p>Configure <em class="parameter"><code>conn</code></em>
- for authentication mode <em class="parameter"><code>method</code></em>
- with <em class="parameter"><code>user</code></em>
- and <em class="parameter"><code>pass</code></em>
- as the
-user and password respectively.</p>
-<div class="refsect3">
-<a name="gst-rtsp-connection-set-auth.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>conn</p></td>
-<td class="parameter_description"><p>a <a class="link" href="gst-plugins-base-libs-gstrtspconnection.html#GstRTSPConnection" title="GstRTSPConnection"><span class="type">GstRTSPConnection</span></a></p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-<tr>
-<td class="parameter_name"><p>method</p></td>
-<td class="parameter_description"><p>authentication method</p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-<tr>
-<td class="parameter_name"><p>user</p></td>
-<td class="parameter_description"><p>the user</p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-<tr>
-<td class="parameter_name"><p>pass</p></td>
-<td class="parameter_description"><p>the password</p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-</tbody>
-</table></div>
-</div>
-<div class="refsect3">
-<a name="gst-rtsp-connection-set-auth.returns"></a><h4>Returns</h4>
-<p> <a class="link" href="gst-plugins-base-libs-gstrtspdefs.html#GST-RTSP-OK:CAPS"><span class="type">GST_RTSP_OK</span></a>.</p>
-</div>
 </div>
 <hr>
 <div class="refsect2">
@@ -1162,62 +581,12 @@
 gst_rtsp_connection_set_auth_param (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstrtspconnection.html#GstRTSPConnection" title="GstRTSPConnection"><span class="type">GstRTSPConnection</span></a> *conn</code></em>,
                                     <em class="parameter"><code>const <a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *param</code></em>,
                                     <em class="parameter"><code>const <a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *value</code></em>);</pre>
-<p>Setup <em class="parameter"><code>conn</code></em>
- with authentication directives. This is not necesary for
-methods <a class="link" href="gst-plugins-base-libs-gstrtspdefs.html#GST-RTSP-AUTH-NONE:CAPS"><span class="type">GST_RTSP_AUTH_NONE</span></a> and <a class="link" href="gst-plugins-base-libs-gstrtspdefs.html#GST-RTSP-AUTH-BASIC:CAPS"><span class="type">GST_RTSP_AUTH_BASIC</span></a>. For
-<a class="link" href="gst-plugins-base-libs-gstrtspdefs.html#GST-RTSP-AUTH-DIGEST:CAPS"><span class="type">GST_RTSP_AUTH_DIGEST</span></a>, directives should be taken from the digest challenge
-in the WWW-Authenticate response header and can include realm, domain,
-nonce, opaque, stale, algorithm, qop as per RFC2617.</p>
-<div class="refsect3">
-<a name="gst-rtsp-connection-set-auth-param.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>conn</p></td>
-<td class="parameter_description"><p>a <a class="link" href="gst-plugins-base-libs-gstrtspconnection.html#GstRTSPConnection" title="GstRTSPConnection"><span class="type">GstRTSPConnection</span></a></p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-<tr>
-<td class="parameter_name"><p>param</p></td>
-<td class="parameter_description"><p>authentication directive</p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-<tr>
-<td class="parameter_name"><p>value</p></td>
-<td class="parameter_description"><p>value</p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-</tbody>
-</table></div>
-</div>
 </div>
 <hr>
 <div class="refsect2">
 <a name="gst-rtsp-connection-clear-auth-params"></a><h3>gst_rtsp_connection_clear_auth_params ()</h3>
 <pre class="programlisting"><span class="returnvalue">void</span>
 gst_rtsp_connection_clear_auth_params (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstrtspconnection.html#GstRTSPConnection" title="GstRTSPConnection"><span class="type">GstRTSPConnection</span></a> *conn</code></em>);</pre>
-<p>Clear the list of authentication directives stored in <em class="parameter"><code>conn</code></em>
-.</p>
-<div class="refsect3">
-<a name="gst-rtsp-connection-clear-auth-params.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>conn</p></td>
-<td class="parameter_description"><p>a <a class="link" href="gst-plugins-base-libs-gstrtspconnection.html#GstRTSPConnection" title="GstRTSPConnection"><span class="type">GstRTSPConnection</span></a></p></td>
-<td class="parameter_annotations"> </td>
-</tr></tbody>
-</table></div>
-</div>
 </div>
 <hr>
 <div class="refsect2">
@@ -1225,34 +594,6 @@
 <pre class="programlisting"><a class="link" href="gst-plugins-base-libs-gstrtspdefs.html#GstRTSPResult" title="enum GstRTSPResult"><span class="returnvalue">GstRTSPResult</span></a>
 gst_rtsp_connection_set_qos_dscp (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstrtspconnection.html#GstRTSPConnection" title="GstRTSPConnection"><span class="type">GstRTSPConnection</span></a> *conn</code></em>,
                                   <em class="parameter"><code><a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#guint"><span class="type">guint</span></a> qos_dscp</code></em>);</pre>
-<p>Configure <em class="parameter"><code>conn</code></em>
- to use the specified DSCP value.</p>
-<div class="refsect3">
-<a name="gst-rtsp-connection-set-qos-dscp.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>conn</p></td>
-<td class="parameter_description"><p>a <a class="link" href="gst-plugins-base-libs-gstrtspconnection.html#GstRTSPConnection" title="GstRTSPConnection"><span class="type">GstRTSPConnection</span></a></p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-<tr>
-<td class="parameter_name"><p>qos_dscp</p></td>
-<td class="parameter_description"><p>DSCP value</p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-</tbody>
-</table></div>
-</div>
-<div class="refsect3">
-<a name="gst-rtsp-connection-set-qos-dscp.returns"></a><h4>Returns</h4>
-<p> <a class="link" href="gst-plugins-base-libs-gstrtspdefs.html#GST-RTSP-OK:CAPS"><span class="type">GST_RTSP_OK</span></a> on success.</p>
-</div>
 </div>
 <hr>
 <div class="refsect2">
@@ -1260,85 +601,18 @@
 <pre class="programlisting"><span class="returnvalue">void</span>
 gst_rtsp_connection_set_ip (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstrtspconnection.html#GstRTSPConnection" title="GstRTSPConnection"><span class="type">GstRTSPConnection</span></a> *conn</code></em>,
                             <em class="parameter"><code>const <a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *ip</code></em>);</pre>
-<p>Set the IP address of the server.</p>
-<div class="refsect3">
-<a name="gst-rtsp-connection-set-ip.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>conn</p></td>
-<td class="parameter_description"><p>a <a class="link" href="gst-plugins-base-libs-gstrtspconnection.html#GstRTSPConnection" title="GstRTSPConnection"><span class="type">GstRTSPConnection</span></a></p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-<tr>
-<td class="parameter_name"><p>ip</p></td>
-<td class="parameter_description"><p>an ip address</p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-</tbody>
-</table></div>
-</div>
 </div>
 <hr>
 <div class="refsect2">
 <a name="gst-rtsp-connection-get-ip"></a><h3>gst_rtsp_connection_get_ip ()</h3>
 <pre class="programlisting">const <a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> *
 gst_rtsp_connection_get_ip (<em class="parameter"><code>const <a class="link" href="gst-plugins-base-libs-gstrtspconnection.html#GstRTSPConnection" title="GstRTSPConnection"><span class="type">GstRTSPConnection</span></a> *conn</code></em>);</pre>
-<p>Retrieve the IP address of the other end of <em class="parameter"><code>conn</code></em>
-.</p>
-<div class="refsect3">
-<a name="gst-rtsp-connection-get-ip.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>conn</p></td>
-<td class="parameter_description"><p>a <a class="link" href="gst-plugins-base-libs-gstrtspconnection.html#GstRTSPConnection" title="GstRTSPConnection"><span class="type">GstRTSPConnection</span></a></p></td>
-<td class="parameter_annotations"> </td>
-</tr></tbody>
-</table></div>
-</div>
-<div class="refsect3">
-<a name="gst-rtsp-connection-get-ip.returns"></a><h4>Returns</h4>
-<p> The IP address as a string. this value remains valid until the
-connection is closed.</p>
-</div>
 </div>
 <hr>
 <div class="refsect2">
 <a name="gst-rtsp-connection-get-url"></a><h3>gst_rtsp_connection_get_url ()</h3>
 <pre class="programlisting"><a class="link" href="gst-plugins-base-libs-gstrtspurl.html#GstRTSPUrl" title="struct GstRTSPUrl"><span class="returnvalue">GstRTSPUrl</span></a> *
 gst_rtsp_connection_get_url (<em class="parameter"><code>const <a class="link" href="gst-plugins-base-libs-gstrtspconnection.html#GstRTSPConnection" title="GstRTSPConnection"><span class="type">GstRTSPConnection</span></a> *conn</code></em>);</pre>
-<p>Retrieve the URL of the other end of <em class="parameter"><code>conn</code></em>
-.</p>
-<div class="refsect3">
-<a name="gst-rtsp-connection-get-url.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>conn</p></td>
-<td class="parameter_description"><p>a <a class="link" href="gst-plugins-base-libs-gstrtspconnection.html#GstRTSPConnection" title="GstRTSPConnection"><span class="type">GstRTSPConnection</span></a></p></td>
-<td class="parameter_annotations"> </td>
-</tr></tbody>
-</table></div>
-</div>
-<div class="refsect3">
-<a name="gst-rtsp-connection-get-url.returns"></a><h4>Returns</h4>
-<p> The URL. This value remains valid until the
-connection is freed.</p>
-</div>
 </div>
 <hr>
 <div class="refsect2">
@@ -1346,85 +620,18 @@
 <pre class="programlisting"><span class="returnvalue">void</span>
 gst_rtsp_connection_set_tunneled (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstrtspconnection.html#GstRTSPConnection" title="GstRTSPConnection"><span class="type">GstRTSPConnection</span></a> *conn</code></em>,
                                   <em class="parameter"><code><a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a> tunneled</code></em>);</pre>
-<p>Set the HTTP tunneling state of the connection. This must be configured before
-the <em class="parameter"><code>conn</code></em>
- is connected.</p>
-<div class="refsect3">
-<a name="gst-rtsp-connection-set-tunneled.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>conn</p></td>
-<td class="parameter_description"><p>a <a class="link" href="gst-plugins-base-libs-gstrtspconnection.html#GstRTSPConnection" title="GstRTSPConnection"><span class="type">GstRTSPConnection</span></a></p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-<tr>
-<td class="parameter_name"><p>tunneled</p></td>
-<td class="parameter_description"><p>the new state</p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-</tbody>
-</table></div>
-</div>
 </div>
 <hr>
 <div class="refsect2">
 <a name="gst-rtsp-connection-is-tunneled"></a><h3>gst_rtsp_connection_is_tunneled ()</h3>
 <pre class="programlisting"><a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
 gst_rtsp_connection_is_tunneled (<em class="parameter"><code>const <a class="link" href="gst-plugins-base-libs-gstrtspconnection.html#GstRTSPConnection" title="GstRTSPConnection"><span class="type">GstRTSPConnection</span></a> *conn</code></em>);</pre>
-<p>Get the tunneling state of the connection.</p>
-<div class="refsect3">
-<a name="gst-rtsp-connection-is-tunneled.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>conn</p></td>
-<td class="parameter_description"><p>a <a class="link" href="gst-plugins-base-libs-gstrtspconnection.html#GstRTSPConnection" title="GstRTSPConnection"><span class="type">GstRTSPConnection</span></a></p></td>
-<td class="parameter_annotations"> </td>
-</tr></tbody>
-</table></div>
-</div>
-<div class="refsect3">
-<a name="gst-rtsp-connection-is-tunneled.returns"></a><h4>Returns</h4>
-<p> if <em class="parameter"><code>conn</code></em>
-is using HTTP tunneling.</p>
-</div>
 </div>
 <hr>
 <div class="refsect2">
 <a name="gst-rtsp-connection-get-tunnelid"></a><h3>gst_rtsp_connection_get_tunnelid ()</h3>
 <pre class="programlisting">const <a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> *
 gst_rtsp_connection_get_tunnelid (<em class="parameter"><code>const <a class="link" href="gst-plugins-base-libs-gstrtspconnection.html#GstRTSPConnection" title="GstRTSPConnection"><span class="type">GstRTSPConnection</span></a> *conn</code></em>);</pre>
-<p>Get the tunnel session id the connection.</p>
-<div class="refsect3">
-<a name="gst-rtsp-connection-get-tunnelid.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>conn</p></td>
-<td class="parameter_description"><p>a <a class="link" href="gst-plugins-base-libs-gstrtspconnection.html#GstRTSPConnection" title="GstRTSPConnection"><span class="type">GstRTSPConnection</span></a></p></td>
-<td class="parameter_annotations"> </td>
-</tr></tbody>
-</table></div>
-</div>
-<div class="refsect3">
-<a name="gst-rtsp-connection-get-tunnelid.returns"></a><h4>Returns</h4>
-<p> returns a non-empty string if <em class="parameter"><code>conn</code></em>
-is being tunneled over HTTP.</p>
-</div>
 </div>
 <hr>
 <div class="refsect2">
@@ -1432,45 +639,6 @@
 <pre class="programlisting"><a class="link" href="gst-plugins-base-libs-gstrtspdefs.html#GstRTSPResult" title="enum GstRTSPResult"><span class="returnvalue">GstRTSPResult</span></a>
 gst_rtsp_connection_do_tunnel (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstrtspconnection.html#GstRTSPConnection" title="GstRTSPConnection"><span class="type">GstRTSPConnection</span></a> *conn</code></em>,
                                <em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstrtspconnection.html#GstRTSPConnection" title="GstRTSPConnection"><span class="type">GstRTSPConnection</span></a> *conn2</code></em>);</pre>
-<p>If <em class="parameter"><code>conn</code></em>
- received the first tunnel connection and <em class="parameter"><code>conn2</code></em>
- received
-the second tunnel connection, link the two connections together so that
-<em class="parameter"><code>conn</code></em>
- manages the tunneled connection.</p>
-<p>After this call, <em class="parameter"><code>conn2</code></em>
- cannot be used anymore and must be freed with
-<a class="link" href="gst-plugins-base-libs-gstrtspconnection.html#gst-rtsp-connection-free" title="gst_rtsp_connection_free ()"><code class="function">gst_rtsp_connection_free()</code></a>.</p>
-<p>If <em class="parameter"><code>conn2</code></em>
- is <a href="/usr/share/gtk-doc/html/glibglib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a> then only the base64 decoding context will be setup for
-<em class="parameter"><code>conn</code></em>
-.</p>
-<div class="refsect3">
-<a name="gst-rtsp-connection-do-tunnel.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>conn</p></td>
-<td class="parameter_description"><p>a <a class="link" href="gst-plugins-base-libs-gstrtspconnection.html#GstRTSPConnection" title="GstRTSPConnection"><span class="type">GstRTSPConnection</span></a></p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-<tr>
-<td class="parameter_name"><p>conn2</p></td>
-<td class="parameter_description"><p>a <a class="link" href="gst-plugins-base-libs-gstrtspconnection.html#GstRTSPConnection" title="GstRTSPConnection"><span class="type">GstRTSPConnection</span></a> or <a href="/usr/share/gtk-doc/html/glibglib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a></p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-</tbody>
-</table></div>
-</div>
-<div class="refsect3">
-<a name="gst-rtsp-connection-do-tunnel.returns"></a><h4>Returns</h4>
-<p> return GST_RTSP_OK on success.</p>
-</div>
 </div>
 <hr>
 <div class="refsect2">
@@ -1478,31 +646,6 @@
 <pre class="programlisting"><span class="returnvalue">void</span>
 gst_rtsp_connection_set_http_mode (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstrtspconnection.html#GstRTSPConnection" title="GstRTSPConnection"><span class="type">GstRTSPConnection</span></a> *conn</code></em>,
                                    <em class="parameter"><code><a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a> enable</code></em>);</pre>
-<p>By setting the HTTP mode to <a href="/usr/share/gtk-doc/html/glibglib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a> the message parsing will support HTTP
-messages in addition to the RTSP messages. It will also disable the
-automatic handling of setting up an HTTP tunnel.</p>
-<div class="refsect3">
-<a name="gst-rtsp-connection-set-http-mode.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>conn</p></td>
-<td class="parameter_description"><p>a <a class="link" href="gst-plugins-base-libs-gstrtspconnection.html#GstRTSPConnection" title="GstRTSPConnection"><span class="type">GstRTSPConnection</span></a></p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-<tr>
-<td class="parameter_name"><p>enable</p></td>
-<td class="parameter_description"><p><a href="/usr/share/gtk-doc/html/glibglib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a> to enable manual HTTP mode</p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-</tbody>
-</table></div>
-</div>
 </div>
 <hr>
 <div class="refsect2">
@@ -1511,94 +654,18 @@
 gst_rtsp_connection_set_proxy (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstrtspconnection.html#GstRTSPConnection" title="GstRTSPConnection"><span class="type">GstRTSPConnection</span></a> *conn</code></em>,
                                <em class="parameter"><code>const <a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *host</code></em>,
                                <em class="parameter"><code><a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#guint"><span class="type">guint</span></a> port</code></em>);</pre>
-<p>Set the proxy host and port.</p>
-<div class="refsect3">
-<a name="gst-rtsp-connection-set-proxy.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>conn</p></td>
-<td class="parameter_description"><p>a <a class="link" href="gst-plugins-base-libs-gstrtspconnection.html#GstRTSPConnection" title="GstRTSPConnection"><span class="type">GstRTSPConnection</span></a></p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-<tr>
-<td class="parameter_name"><p>host</p></td>
-<td class="parameter_description"><p>the proxy host</p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-<tr>
-<td class="parameter_name"><p>port</p></td>
-<td class="parameter_description"><p>the proxy port</p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-</tbody>
-</table></div>
-</div>
-<div class="refsect3">
-<a name="gst-rtsp-connection-set-proxy.returns"></a><h4>Returns</h4>
-<p> <a class="link" href="gst-plugins-base-libs-gstrtspdefs.html#GST-RTSP-OK:CAPS"><span class="type">GST_RTSP_OK</span></a>.</p>
-</div>
 </div>
 <hr>
 <div class="refsect2">
 <a name="gst-rtsp-connection-get-read-socket"></a><h3>gst_rtsp_connection_get_read_socket ()</h3>
 <pre class="programlisting"><a href="/usr/share/gtk-doc/html/gioGSocket.html#GSocket-struct"><span class="returnvalue">GSocket</span></a> *
 gst_rtsp_connection_get_read_socket (<em class="parameter"><code>const <a class="link" href="gst-plugins-base-libs-gstrtspconnection.html#GstRTSPConnection" title="GstRTSPConnection"><span class="type">GstRTSPConnection</span></a> *conn</code></em>);</pre>
-<p>Get the file descriptor for reading.</p>
-<div class="refsect3">
-<a name="gst-rtsp-connection-get-read-socket.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>conn</p></td>
-<td class="parameter_description"><p>a <a class="link" href="gst-plugins-base-libs-gstrtspconnection.html#GstRTSPConnection" title="GstRTSPConnection"><span class="type">GstRTSPConnection</span></a></p></td>
-<td class="parameter_annotations"> </td>
-</tr></tbody>
-</table></div>
-</div>
-<div class="refsect3">
-<a name="gst-rtsp-connection-get-read-socket.returns"></a><h4>Returns</h4>
-<p> the file descriptor used for reading or <a href="/usr/share/gtk-doc/html/glibglib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a> on
-error. The file descriptor remains valid until the connection is closed. </p>
-<p><span class="annotation">[<acronym title="Don't free data after the code is done."><span class="acronym">transfer none</span></acronym>]</span></p>
-</div>
 </div>
 <hr>
 <div class="refsect2">
 <a name="gst-rtsp-connection-get-write-socket"></a><h3>gst_rtsp_connection_get_write_socket ()</h3>
 <pre class="programlisting"><a href="/usr/share/gtk-doc/html/gioGSocket.html#GSocket-struct"><span class="returnvalue">GSocket</span></a> *
 gst_rtsp_connection_get_write_socket (<em class="parameter"><code>const <a class="link" href="gst-plugins-base-libs-gstrtspconnection.html#GstRTSPConnection" title="GstRTSPConnection"><span class="type">GstRTSPConnection</span></a> *conn</code></em>);</pre>
-<p>Get the file descriptor for writing.</p>
-<div class="refsect3">
-<a name="gst-rtsp-connection-get-write-socket.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>conn</p></td>
-<td class="parameter_description"><p>a <a class="link" href="gst-plugins-base-libs-gstrtspconnection.html#GstRTSPConnection" title="GstRTSPConnection"><span class="type">GstRTSPConnection</span></a></p></td>
-<td class="parameter_annotations"> </td>
-</tr></tbody>
-</table></div>
-</div>
-<div class="refsect3">
-<a name="gst-rtsp-connection-get-write-socket.returns"></a><h4>Returns</h4>
-<p> the file descriptor used for writing or NULL on
-error. The file descriptor remains valid until the connection is closed. </p>
-<p><span class="annotation">[<acronym title="Don't free data after the code is done."><span class="acronym">transfer none</span></acronym>]</span></p>
-</div>
 </div>
 <hr>
 <div class="refsect2">
@@ -1606,42 +673,6 @@
 <pre class="programlisting"><a href="/usr/share/gtk-doc/html/gioGTlsConnection.html#GTlsConnection-struct"><span class="returnvalue">GTlsConnection</span></a> *
 gst_rtsp_connection_get_tls (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstrtspconnection.html#GstRTSPConnection" title="GstRTSPConnection"><span class="type">GstRTSPConnection</span></a> *conn</code></em>,
                              <em class="parameter"><code><a href="/usr/share/gtk-doc/html/glibglib-Error-Reporting.html#GError"><span class="type">GError</span></a> **error</code></em>);</pre>
-<p>Get the TLS connection of <em class="parameter"><code>conn</code></em>
-.</p>
-<p>For client side this will return the <a href="/usr/share/gtk-doc/html/gioGTlsClientConnection.html#GTlsClientConnection-struct"><span class="type">GTlsClientConnection</span></a> when connected
-over TLS.</p>
-<p>For server side connections, this function will create a GTlsServerConnection
-when called the first time and will return that same connection on subsequent
-calls. The server is then responsible for configuring the TLS connection.</p>
-<div class="refsect3">
-<a name="gst-rtsp-connection-get-tls.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>conn</p></td>
-<td class="parameter_description"><p>a <a class="link" href="gst-plugins-base-libs-gstrtspconnection.html#GstRTSPConnection" title="GstRTSPConnection"><span class="type">GstRTSPConnection</span></a></p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-<tr>
-<td class="parameter_name"><p>error</p></td>
-<td class="parameter_description"><p><a href="/usr/share/gtk-doc/html/glibglib-Error-Reporting.html#GError"><span class="type">GError</span></a> for error reporting, or NULL to ignore.</p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-</tbody>
-</table></div>
-</div>
-<div class="refsect3">
-<a name="gst-rtsp-connection-get-tls.returns"></a><h4>Returns</h4>
-<p> the TLS connection for <em class="parameter"><code>conn</code></em>
-. </p>
-<p><span class="annotation">[<acronym title="Don't free data after the code is done."><span class="acronym">transfer none</span></acronym>]</span></p>
-</div>
-<p class="since">Since: 1.2</p>
 </div>
 <hr>
 <div class="refsect2">
@@ -1650,37 +681,6 @@
 gst_rtsp_connection_set_tls_validation_flags
                                (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstrtspconnection.html#GstRTSPConnection" title="GstRTSPConnection"><span class="type">GstRTSPConnection</span></a> *conn</code></em>,
                                 <em class="parameter"><code><a href="/usr/share/gtk-doc/html/giogio-TLS-Overview.html#GTlsCertificateFlags"><span class="type">GTlsCertificateFlags</span></a> flags</code></em>);</pre>
-<p>Sets the TLS validation flags to be used to verify the peer
-certificate when a TLS connection is established.</p>
-<div class="refsect3">
-<a name="gst-rtsp-connection-set-tls-validation-flags.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>conn</p></td>
-<td class="parameter_description"><p>a <a class="link" href="gst-plugins-base-libs-gstrtspconnection.html#GstRTSPConnection" title="GstRTSPConnection"><span class="type">GstRTSPConnection</span></a></p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-<tr>
-<td class="parameter_name"><p>flags</p></td>
-<td class="parameter_description"><p>the validation flags.</p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-</tbody>
-</table></div>
-</div>
-<div class="refsect3">
-<a name="gst-rtsp-connection-set-tls-validation-flags.returns"></a><h4>Returns</h4>
-<p> TRUE if the validation flags are set correctly, or FALSE if
-<em class="parameter"><code>conn</code></em>
-is NULL or is not a TLS connection.</p>
-</div>
-<p class="since">Since: 1.2.1</p>
 </div>
 <hr>
 <div class="refsect2">
@@ -1688,28 +688,6 @@
 <pre class="programlisting"><a href="/usr/share/gtk-doc/html/giogio-TLS-Overview.html#GTlsCertificateFlags"><span class="returnvalue">GTlsCertificateFlags</span></a>
 gst_rtsp_connection_get_tls_validation_flags
                                (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstrtspconnection.html#GstRTSPConnection" title="GstRTSPConnection"><span class="type">GstRTSPConnection</span></a> *conn</code></em>);</pre>
-<p>Gets the TLS validation flags used to verify the peer certificate
-when a TLS connection is established.</p>
-<div class="refsect3">
-<a name="gst-rtsp-connection-get-tls-validation-flags.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>conn</p></td>
-<td class="parameter_description"><p>a <a class="link" href="gst-plugins-base-libs-gstrtspconnection.html#GstRTSPConnection" title="GstRTSPConnection"><span class="type">GstRTSPConnection</span></a></p></td>
-<td class="parameter_annotations"> </td>
-</tr></tbody>
-</table></div>
-</div>
-<div class="refsect3">
-<a name="gst-rtsp-connection-get-tls-validation-flags.returns"></a><h4>Returns</h4>
-<p> the validationg flags.</p>
-</div>
-<p class="since">Since: 1.2.1</p>
 </div>
 <hr>
 <div class="refsect2">
@@ -1717,64 +695,12 @@
 <pre class="programlisting"><span class="returnvalue">void</span>
 gst_rtsp_connection_set_tls_database (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstrtspconnection.html#GstRTSPConnection" title="GstRTSPConnection"><span class="type">GstRTSPConnection</span></a> *conn</code></em>,
                                       <em class="parameter"><code><a href="/usr/share/gtk-doc/html/gioGTlsDatabase.html#GTlsDatabase-struct"><span class="type">GTlsDatabase</span></a> *database</code></em>);</pre>
-<p>Sets the anchor certificate authorities database. This certificate
-database will be used to verify the server's certificate in case it
-can't be verified with the default certificate database first.</p>
-<div class="refsect3">
-<a name="gst-rtsp-connection-set-tls-database.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>conn</p></td>
-<td class="parameter_description"><p>a <a class="link" href="gst-plugins-base-libs-gstrtspconnection.html#GstRTSPConnection" title="GstRTSPConnection"><span class="type">GstRTSPConnection</span></a></p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-<tr>
-<td class="parameter_name"><p>database</p></td>
-<td class="parameter_description"><p>a <a href="/usr/share/gtk-doc/html/gioGTlsDatabase.html#GTlsDatabase-struct"><span class="type">GTlsDatabase</span></a></p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-</tbody>
-</table></div>
-</div>
-<p class="since">Since: 1.4</p>
 </div>
 <hr>
 <div class="refsect2">
 <a name="gst-rtsp-connection-get-tls-database"></a><h3>gst_rtsp_connection_get_tls_database ()</h3>
 <pre class="programlisting"><a href="/usr/share/gtk-doc/html/gioGTlsDatabase.html#GTlsDatabase-struct"><span class="returnvalue">GTlsDatabase</span></a> *
 gst_rtsp_connection_get_tls_database (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstrtspconnection.html#GstRTSPConnection" title="GstRTSPConnection"><span class="type">GstRTSPConnection</span></a> *conn</code></em>);</pre>
-<p>Gets the anchor certificate authorities database that will be used
-after a server certificate can't be verified with the default
-certificate database.</p>
-<div class="refsect3">
-<a name="gst-rtsp-connection-get-tls-database.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>conn</p></td>
-<td class="parameter_description"><p>a <a class="link" href="gst-plugins-base-libs-gstrtspconnection.html#GstRTSPConnection" title="GstRTSPConnection"><span class="type">GstRTSPConnection</span></a></p></td>
-<td class="parameter_annotations"> </td>
-</tr></tbody>
-</table></div>
-</div>
-<div class="refsect3">
-<a name="gst-rtsp-connection-get-tls-database.returns"></a><h4>Returns</h4>
-<p> the anchor certificate authorities database, or NULL if no
-database has been previously set. Use <a href="/usr/share/gtk-doc/html/gobjectgobject-The-Base-Object-Type.html#g-object-unref"><code class="function">g_object_unref()</code></a> to release the
-certificate database. </p>
-<p><span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>]</span></p>
-</div>
-<p class="since">Since: 1.4</p>
 </div>
 <hr>
 <div class="refsect2">
@@ -1783,32 +709,6 @@
 gst_rtsp_connection_set_tls_interaction
                                (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstrtspconnection.html#GstRTSPConnection" title="GstRTSPConnection"><span class="type">GstRTSPConnection</span></a> *conn</code></em>,
                                 <em class="parameter"><code><a href="/usr/share/gtk-doc/html/gioGTlsInteraction.html#GTlsInteraction-struct"><span class="type">GTlsInteraction</span></a> *interaction</code></em>);</pre>
-<p>Sets a <a href="/usr/share/gtk-doc/html/gioGTlsInteraction.html#GTlsInteraction-struct"><span class="type">GTlsInteraction</span></a> object to be used when the connection or certificate
-database need to interact with the user. This will be used to prompt the
-user for passwords where necessary.</p>
-<div class="refsect3">
-<a name="gst-rtsp-connection-set-tls-interaction.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>conn</p></td>
-<td class="parameter_description"><p>a <a class="link" href="gst-plugins-base-libs-gstrtspconnection.html#GstRTSPConnection" title="GstRTSPConnection"><span class="type">GstRTSPConnection</span></a></p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-<tr>
-<td class="parameter_name"><p>interaction</p></td>
-<td class="parameter_description"><p>a <a href="/usr/share/gtk-doc/html/gioGTlsInteraction.html#GTlsInteraction-struct"><span class="type">GTlsInteraction</span></a></p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-</tbody>
-</table></div>
-</div>
-<p class="since">Since: 1.6</p>
 </div>
 <hr>
 <div class="refsect2">
@@ -1816,31 +716,6 @@
 <pre class="programlisting"><a href="/usr/share/gtk-doc/html/gioGTlsInteraction.html#GTlsInteraction-struct"><span class="returnvalue">GTlsInteraction</span></a> *
 gst_rtsp_connection_get_tls_interaction
                                (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstrtspconnection.html#GstRTSPConnection" title="GstRTSPConnection"><span class="type">GstRTSPConnection</span></a> *conn</code></em>);</pre>
-<p>Gets a <a href="/usr/share/gtk-doc/html/gioGTlsInteraction.html#GTlsInteraction-struct"><span class="type">GTlsInteraction</span></a> object to be used when the connection or certificate
-database need to interact with the user. This will be used to prompt the
-user for passwords where necessary.</p>
-<div class="refsect3">
-<a name="gst-rtsp-connection-get-tls-interaction.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>conn</p></td>
-<td class="parameter_description"><p>a <a class="link" href="gst-plugins-base-libs-gstrtspconnection.html#GstRTSPConnection" title="GstRTSPConnection"><span class="type">GstRTSPConnection</span></a></p></td>
-<td class="parameter_annotations"> </td>
-</tr></tbody>
-</table></div>
-</div>
-<div class="refsect3">
-<a name="gst-rtsp-connection-get-tls-interaction.returns"></a><h4>Returns</h4>
-<p> a reference on the <a href="/usr/share/gtk-doc/html/gioGTlsInteraction.html#GTlsInteraction-struct"><span class="type">GTlsInteraction</span></a>. Use
-<a href="/usr/share/gtk-doc/html/gobjectgobject-The-Base-Object-Type.html#g-object-unref"><code class="function">g_object_unref()</code></a> to release. </p>
-<p><span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>]</span></p>
-</div>
-<p class="since">Since: 1.6</p>
 </div>
 <hr>
 <div class="refsect2">
@@ -1850,79 +725,12 @@
                     <em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstrtspconnection.html#GstRTSPWatchFuncs" title="GstRTSPWatchFuncs"><span class="type">GstRTSPWatchFuncs</span></a> *funcs</code></em>,
                     <em class="parameter"><code><a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> user_data</code></em>,
                     <em class="parameter"><code><a href="/usr/share/gtk-doc/html/glibglib-Datasets.html#GDestroyNotify"><span class="type">GDestroyNotify</span></a> notify</code></em>);</pre>
-<p>Create a watch object for <em class="parameter"><code>conn</code></em>
-. The functions provided in <em class="parameter"><code>funcs</code></em>
- will be
-called with <em class="parameter"><code>user_data</code></em>
- when activity happened on the watch.</p>
-<p>The new watch is usually created so that it can be attached to a
-maincontext with <a class="link" href="gst-plugins-base-libs-gstrtspconnection.html#gst-rtsp-watch-attach" title="gst_rtsp_watch_attach ()"><code class="function">gst_rtsp_watch_attach()</code></a>.</p>
-<p><em class="parameter"><code>conn</code></em>
- must exist for the entire lifetime of the watch.</p>
-<p><span class="annotation">[<acronym title="Exposed in C code, not necessarily available in other languages."><span class="acronym">skip</span></acronym>]</span></p>
-<div class="refsect3">
-<a name="gst-rtsp-watch-new.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>conn</p></td>
-<td class="parameter_description"><p>a <a class="link" href="gst-plugins-base-libs-gstrtspconnection.html#GstRTSPConnection" title="GstRTSPConnection"><span class="type">GstRTSPConnection</span></a></p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-<tr>
-<td class="parameter_name"><p>funcs</p></td>
-<td class="parameter_description"><p>watch functions</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 to pass to <em class="parameter"><code>funcs</code></em>
-</p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-<tr>
-<td class="parameter_name"><p>notify</p></td>
-<td class="parameter_description"><p>notify when <em class="parameter"><code>user_data</code></em>
-is not referenced anymore</p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-</tbody>
-</table></div>
-</div>
-<div class="refsect3">
-<a name="gst-rtsp-watch-new.returns"></a><h4>Returns</h4>
-<p> a <a class="link" href="gst-plugins-base-libs-gstrtspconnection.html#GstRTSPWatch" title="GstRTSPWatch"><span class="type">GstRTSPWatch</span></a> that can be used for asynchronous RTSP
-communication. Free with <a class="link" href="gst-plugins-base-libs-gstrtspconnection.html#gst-rtsp-watch-unref" title="gst_rtsp_watch_unref ()"><code class="function">gst_rtsp_watch_unref()</code></a> after usage.</p>
-</div>
 </div>
 <hr>
 <div class="refsect2">
 <a name="gst-rtsp-watch-unref"></a><h3>gst_rtsp_watch_unref ()</h3>
 <pre class="programlisting"><span class="returnvalue">void</span>
 gst_rtsp_watch_unref (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstrtspconnection.html#GstRTSPWatch" title="GstRTSPWatch"><span class="type">GstRTSPWatch</span></a> *watch</code></em>);</pre>
-<p>Decreases the reference count of <em class="parameter"><code>watch</code></em>
- by one. If the resulting reference
-count is zero the watch and associated memory will be destroyed.</p>
-<div class="refsect3">
-<a name="gst-rtsp-watch-unref.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>watch</p></td>
-<td class="parameter_description"><p>a <a class="link" href="gst-plugins-base-libs-gstrtspconnection.html#GstRTSPWatch" title="GstRTSPWatch"><span class="type">GstRTSPWatch</span></a></p></td>
-<td class="parameter_annotations"> </td>
-</tr></tbody>
-</table></div>
-</div>
 </div>
 <hr>
 <div class="refsect2">
@@ -1930,57 +738,12 @@
 <pre class="programlisting"><a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#guint"><span class="returnvalue">guint</span></a>
 gst_rtsp_watch_attach (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstrtspconnection.html#GstRTSPWatch" title="GstRTSPWatch"><span class="type">GstRTSPWatch</span></a> *watch</code></em>,
                        <em class="parameter"><code><a href="/usr/share/gtk-doc/html/glibglib-The-Main-Event-Loop.html#GMainContext"><span class="type">GMainContext</span></a> *context</code></em>);</pre>
-<p>Adds a <a class="link" href="gst-plugins-base-libs-gstrtspconnection.html#GstRTSPWatch" title="GstRTSPWatch"><span class="type">GstRTSPWatch</span></a> to a context so that it will be executed within that context.</p>
-<div class="refsect3">
-<a name="gst-rtsp-watch-attach.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>watch</p></td>
-<td class="parameter_description"><p>a <a class="link" href="gst-plugins-base-libs-gstrtspconnection.html#GstRTSPWatch" title="GstRTSPWatch"><span class="type">GstRTSPWatch</span></a></p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-<tr>
-<td class="parameter_name"><p>context</p></td>
-<td class="parameter_description"><p>a GMainContext (if NULL, the default context will be used)</p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-</tbody>
-</table></div>
-</div>
-<div class="refsect3">
-<a name="gst-rtsp-watch-attach.returns"></a><h4>Returns</h4>
-<p> the ID (greater than 0) for the watch within the GMainContext.</p>
-</div>
 </div>
 <hr>
 <div class="refsect2">
 <a name="gst-rtsp-watch-reset"></a><h3>gst_rtsp_watch_reset ()</h3>
 <pre class="programlisting"><span class="returnvalue">void</span>
 gst_rtsp_watch_reset (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstrtspconnection.html#GstRTSPWatch" title="GstRTSPWatch"><span class="type">GstRTSPWatch</span></a> *watch</code></em>);</pre>
-<p>Reset <em class="parameter"><code>watch</code></em>
-, this is usually called after <a class="link" href="gst-plugins-base-libs-gstrtspconnection.html#gst-rtsp-connection-do-tunnel" title="gst_rtsp_connection_do_tunnel ()"><code class="function">gst_rtsp_connection_do_tunnel()</code></a>
-when the file descriptors of the connection might have changed.</p>
-<div class="refsect3">
-<a name="gst-rtsp-watch-reset.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>watch</p></td>
-<td class="parameter_description"><p>a <a class="link" href="gst-plugins-base-libs-gstrtspconnection.html#GstRTSPWatch" title="GstRTSPWatch"><span class="type">GstRTSPWatch</span></a></p></td>
-<td class="parameter_annotations"> </td>
-</tr></tbody>
-</table></div>
-</div>
 </div>
 <hr>
 <div class="refsect2">
@@ -1989,50 +752,6 @@
 gst_rtsp_watch_send_message (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstrtspconnection.html#GstRTSPWatch" title="GstRTSPWatch"><span class="type">GstRTSPWatch</span></a> *watch</code></em>,
                              <em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstrtspmessage.html#GstRTSPMessage" title="struct GstRTSPMessage"><span class="type">GstRTSPMessage</span></a> *message</code></em>,
                              <em class="parameter"><code><a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#guint"><span class="type">guint</span></a> *id</code></em>);</pre>
-<p>Send a <em class="parameter"><code>message</code></em>
- using the connection of the <em class="parameter"><code>watch</code></em>
-. If it cannot be sent
-immediately, it will be queued for transmission in <em class="parameter"><code>watch</code></em>
-. The contents of
-<em class="parameter"><code>message</code></em>
- will then be serialized and transmitted when the connection of the
-<em class="parameter"><code>watch</code></em>
- becomes writable. In case the <em class="parameter"><code>message</code></em>
- is queued, the ID returned in
-<em class="parameter"><code>id</code></em>
- will be non-zero and used as the ID argument in the message_sent
-callback.</p>
-<div class="refsect3">
-<a name="gst-rtsp-watch-send-message.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>watch</p></td>
-<td class="parameter_description"><p>a <a class="link" href="gst-plugins-base-libs-gstrtspconnection.html#GstRTSPWatch" title="GstRTSPWatch"><span class="type">GstRTSPWatch</span></a></p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-<tr>
-<td class="parameter_name"><p>message</p></td>
-<td class="parameter_description"><p>a <a class="link" href="gst-plugins-base-libs-gstrtspmessage.html#GstRTSPMessage" title="struct GstRTSPMessage"><span class="type">GstRTSPMessage</span></a></p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-<tr>
-<td class="parameter_name"><p>id</p></td>
-<td class="parameter_description"><p> location for a message ID or <a href="/usr/share/gtk-doc/html/glibglib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a>. </p></td>
-<td class="parameter_annotations"><span class="annotation">[<acronym title="Parameter for returning results. Default is transfer full."><span class="acronym">out</span></acronym>][<acronym title="NULL is OK, both for passing and for returning."><span class="acronym">allow-none</span></acronym>]</span></td>
-</tr>
-</tbody>
-</table></div>
-</div>
-<div class="refsect3">
-<a name="gst-rtsp-watch-send-message.returns"></a><h4>Returns</h4>
-<p> <a class="link" href="gst-plugins-base-libs-gstrtspdefs.html#GST-RTSP-OK:CAPS"><span class="type">GST_RTSP_OK</span></a> on success.</p>
-</div>
 </div>
 <hr>
 <div class="refsect2">
@@ -2042,63 +761,6 @@
                            <em class="parameter"><code>const <a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#guint8"><span class="type">guint8</span></a> *data</code></em>,
                            <em class="parameter"><code><a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#guint"><span class="type">guint</span></a> size</code></em>,
                            <em class="parameter"><code><a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#guint"><span class="type">guint</span></a> *id</code></em>);</pre>
-<p>Write <em class="parameter"><code>data</code></em>
- using the connection of the <em class="parameter"><code>watch</code></em>
-. If it cannot be sent
-immediately, it will be queued for transmission in <em class="parameter"><code>watch</code></em>
-. The contents of
-<em class="parameter"><code>message</code></em>
- will then be serialized and transmitted when the connection of the
-<em class="parameter"><code>watch</code></em>
- becomes writable. In case the <em class="parameter"><code>message</code></em>
- is queued, the ID returned in
-<em class="parameter"><code>id</code></em>
- will be non-zero and used as the ID argument in the message_sent
-callback.</p>
-<p>This function will take ownership of <em class="parameter"><code>data</code></em>
- and <a href="/usr/share/gtk-doc/html/glibglib-Memory-Allocation.html#g-free"><code class="function">g_free()</code></a> it after use.</p>
-<p>If the amount of queued data exceeds the limits set with
-<a class="link" href="gst-plugins-base-libs-gstrtspconnection.html#gst-rtsp-watch-set-send-backlog" title="gst_rtsp_watch_set_send_backlog ()"><code class="function">gst_rtsp_watch_set_send_backlog()</code></a>, this function will return
-<a class="link" href="gst-plugins-base-libs-gstrtspdefs.html#GST-RTSP-ENOMEM:CAPS"><span class="type">GST_RTSP_ENOMEM</span></a>.</p>
-<div class="refsect3">
-<a name="gst-rtsp-watch-write-data.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>watch</p></td>
-<td class="parameter_description"><p>a <a class="link" href="gst-plugins-base-libs-gstrtspconnection.html#GstRTSPWatch" title="GstRTSPWatch"><span class="type">GstRTSPWatch</span></a></p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-<tr>
-<td class="parameter_name"><p>data</p></td>
-<td class="parameter_description"><p> the data to queue. </p></td>
-<td class="parameter_annotations"><span class="annotation">[<acronym title="Parameter points to an array of items."><span class="acronym">array</span></acronym> length=size][<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>]</span></td>
-</tr>
-<tr>
-<td class="parameter_name"><p>size</p></td>
-<td class="parameter_description"><p>the size of <em class="parameter"><code>data</code></em>
-</p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-<tr>
-<td class="parameter_name"><p>id</p></td>
-<td class="parameter_description"><p> location for a message ID or <a href="/usr/share/gtk-doc/html/glibglib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a>. </p></td>
-<td class="parameter_annotations"><span class="annotation">[<acronym title="Parameter for returning results. Default is transfer full."><span class="acronym">out</span></acronym>][<acronym title="NULL is OK, both for passing and for returning."><span class="acronym">allow-none</span></acronym>]</span></td>
-</tr>
-</tbody>
-</table></div>
-</div>
-<div class="refsect3">
-<a name="gst-rtsp-watch-write-data.returns"></a><h4>Returns</h4>
-<p> <a class="link" href="gst-plugins-base-libs-gstrtspdefs.html#GST-RTSP-OK:CAPS"><span class="type">GST_RTSP_OK</span></a> on success. <a class="link" href="gst-plugins-base-libs-gstrtspdefs.html#GST-RTSP-ENOMEM:CAPS"><span class="type">GST_RTSP_ENOMEM</span></a> when the backlog limits
-are reached. <a class="link" href="gst-plugins-base-libs-gstrtspdefs.html#GST-RTSP-EINTR:CAPS"><span class="type">GST_RTSP_EINTR</span></a> when <em class="parameter"><code>watch</code></em>
-was flushing.</p>
-</div>
 </div>
 <hr>
 <div class="refsect2">
@@ -2107,37 +769,6 @@
 gst_rtsp_watch_get_send_backlog (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstrtspconnection.html#GstRTSPWatch" title="GstRTSPWatch"><span class="type">GstRTSPWatch</span></a> *watch</code></em>,
                                  <em class="parameter"><code><a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#gsize"><span class="type">gsize</span></a> *bytes</code></em>,
                                  <em class="parameter"><code><a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#guint"><span class="type">guint</span></a> *messages</code></em>);</pre>
-<p>Get the maximum amount of bytes and messages that will be queued in <em class="parameter"><code>watch</code></em>
-.
-See <a class="link" href="gst-plugins-base-libs-gstrtspconnection.html#gst-rtsp-watch-set-send-backlog" title="gst_rtsp_watch_set_send_backlog ()"><code class="function">gst_rtsp_watch_set_send_backlog()</code></a>.</p>
-<div class="refsect3">
-<a name="gst-rtsp-watch-get-send-backlog.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>watch</p></td>
-<td class="parameter_description"><p>a <a class="link" href="gst-plugins-base-libs-gstrtspconnection.html#GstRTSPWatch" title="GstRTSPWatch"><span class="type">GstRTSPWatch</span></a></p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-<tr>
-<td class="parameter_name"><p>bytes</p></td>
-<td class="parameter_description"><p> maximum bytes. </p></td>
-<td class="parameter_annotations"><span class="annotation">[<acronym title="Parameter for returning results. Default is transfer full."><span class="acronym">out</span></acronym>][<acronym title="NULL is OK, both for passing and for returning."><span class="acronym">allow-none</span></acronym>]</span></td>
-</tr>
-<tr>
-<td class="parameter_name"><p>messages</p></td>
-<td class="parameter_description"><p> maximum messages. </p></td>
-<td class="parameter_annotations"><span class="annotation">[<acronym title="Parameter for returning results. Default is transfer full."><span class="acronym">out</span></acronym>][<acronym title="NULL is OK, both for passing and for returning."><span class="acronym">allow-none</span></acronym>]</span></td>
-</tr>
-</tbody>
-</table></div>
-</div>
-<p class="since">Since: 1.2</p>
 </div>
 <hr>
 <div class="refsect2">
@@ -2146,41 +777,6 @@
 gst_rtsp_watch_set_send_backlog (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstrtspconnection.html#GstRTSPWatch" title="GstRTSPWatch"><span class="type">GstRTSPWatch</span></a> *watch</code></em>,
                                  <em class="parameter"><code><a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#gsize"><span class="type">gsize</span></a> bytes</code></em>,
                                  <em class="parameter"><code><a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#guint"><span class="type">guint</span></a> messages</code></em>);</pre>
-<p>Set the maximum amount of bytes and messages that will be queued in <em class="parameter"><code>watch</code></em>
-.
-When the maximum amounts are exceeded, <a class="link" href="gst-plugins-base-libs-gstrtspconnection.html#gst-rtsp-watch-write-data" title="gst_rtsp_watch_write_data ()"><code class="function">gst_rtsp_watch_write_data()</code></a> and
-<a class="link" href="gst-plugins-base-libs-gstrtspconnection.html#gst-rtsp-watch-send-message" title="gst_rtsp_watch_send_message ()"><code class="function">gst_rtsp_watch_send_message()</code></a> will return <a class="link" href="gst-plugins-base-libs-gstrtspdefs.html#GST-RTSP-ENOMEM:CAPS"><span class="type">GST_RTSP_ENOMEM</span></a>.</p>
-<p>A value of 0 for <em class="parameter"><code>bytes</code></em>
- or <em class="parameter"><code>messages</code></em>
- means no limits.</p>
-<div class="refsect3">
-<a name="gst-rtsp-watch-set-send-backlog.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>watch</p></td>
-<td class="parameter_description"><p>a <a class="link" href="gst-plugins-base-libs-gstrtspconnection.html#GstRTSPWatch" title="GstRTSPWatch"><span class="type">GstRTSPWatch</span></a></p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-<tr>
-<td class="parameter_name"><p>bytes</p></td>
-<td class="parameter_description"><p>maximum bytes</p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-<tr>
-<td class="parameter_name"><p>messages</p></td>
-<td class="parameter_description"><p>maximum messages</p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-</tbody>
-</table></div>
-</div>
-<p class="since">Since: 1.2</p>
 </div>
 <hr>
 <div class="refsect2">
@@ -2188,33 +784,6 @@
 <pre class="programlisting"><span class="returnvalue">void</span>
 gst_rtsp_watch_set_flushing (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstrtspconnection.html#GstRTSPWatch" title="GstRTSPWatch"><span class="type">GstRTSPWatch</span></a> *watch</code></em>,
                              <em class="parameter"><code><a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a> flushing</code></em>);</pre>
-<p>When <em class="parameter"><code>flushing</code></em>
- is <a href="/usr/share/gtk-doc/html/glibglib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a>, abort a call to <a class="link" href="gst-plugins-base-libs-gstrtspconnection.html#gst-rtsp-watch-wait-backlog" title="gst_rtsp_watch_wait_backlog ()"><code class="function">gst_rtsp_watch_wait_backlog()</code></a>
-and make sure <a class="link" href="gst-plugins-base-libs-gstrtspconnection.html#gst-rtsp-watch-write-data" title="gst_rtsp_watch_write_data ()"><code class="function">gst_rtsp_watch_write_data()</code></a> returns immediately with
-<a class="link" href="gst-plugins-base-libs-gstrtspdefs.html#GST-RTSP-EINTR:CAPS"><span class="type">GST_RTSP_EINTR</span></a>. And empty the queue.</p>
-<div class="refsect3">
-<a name="gst-rtsp-watch-set-flushing.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>watch</p></td>
-<td class="parameter_description"><p>a <a class="link" href="gst-plugins-base-libs-gstrtspconnection.html#GstRTSPWatch" title="GstRTSPWatch"><span class="type">GstRTSPWatch</span></a></p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-<tr>
-<td class="parameter_name"><p>flushing</p></td>
-<td class="parameter_description"><p>new flushing state</p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-</tbody>
-</table></div>
-</div>
-<p class="since">Since: 1.4</p>
 </div>
 <hr>
 <div class="refsect2">
@@ -2222,50 +791,6 @@
 <pre class="programlisting"><a class="link" href="gst-plugins-base-libs-gstrtspdefs.html#GstRTSPResult" title="enum GstRTSPResult"><span class="returnvalue">GstRTSPResult</span></a>
 gst_rtsp_watch_wait_backlog (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstrtspconnection.html#GstRTSPWatch" title="GstRTSPWatch"><span class="type">GstRTSPWatch</span></a> *watch</code></em>,
                              <em class="parameter"><code><a href="/usr/share/gtk-doc/html/glibglib-Date-and-Time-Functions.html#GTimeVal"><span class="type">GTimeVal</span></a> *timeout</code></em>);</pre>
-<p>Wait until there is place in the backlog queue, <em class="parameter"><code>timeout</code></em>
- is reached
-or <em class="parameter"><code>watch</code></em>
- is set to flushing.</p>
-<p>If <em class="parameter"><code>timeout</code></em>
- is <a href="/usr/share/gtk-doc/html/glibglib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a> this function can block forever. If <em class="parameter"><code>timeout</code></em>
-
-contains a valid timeout, this function will return <a class="link" href="gst-plugins-base-libs-gstrtspdefs.html#GST-RTSP-ETIMEOUT:CAPS"><code class="literal">GST_RTSP_ETIMEOUT</code></a>
-after the timeout expired.</p>
-<p>The typically use of this function is when gst_rtsp_watch_write_data
-returns <a class="link" href="gst-plugins-base-libs-gstrtspdefs.html#GST-RTSP-ENOMEM:CAPS"><code class="literal">GST_RTSP_ENOMEM</code></a>. The caller then calls this function to wait for
-free space in the backlog queue and try again.</p>
-<div class="refsect3">
-<a name="gst-rtsp-watch-wait-backlog.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>watch</p></td>
-<td class="parameter_description"><p>a <a class="link" href="gst-plugins-base-libs-gstrtspconnection.html#GstRTSPWatch" title="GstRTSPWatch"><span class="type">GstRTSPWatch</span></a></p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-<tr>
-<td class="parameter_name"><p>timeout</p></td>
-<td class="parameter_description"><p>a <a href="/usr/share/gtk-doc/html/glibglib-Date-and-Time-Functions.html#GTimeVal"><span class="type">GTimeVal</span></a> timeout</p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-</tbody>
-</table></div>
-</div>
-<div class="refsect3">
-<a name="gst-rtsp-watch-wait-backlog.returns"></a><h4>Returns</h4>
-<p> <a class="link" href="gst-plugins-base-libs-gstrtspdefs.html#GST-RTSP-OK:CAPS"><code class="literal">GST_RTSP_OK</code></a> when if there is room in queue.
-<a class="link" href="gst-plugins-base-libs-gstrtspdefs.html#GST-RTSP-ETIMEOUT:CAPS"><code class="literal">GST_RTSP_ETIMEOUT</code></a> when <em class="parameter"><code>timeout</code></em>
-was reached.
-<a class="link" href="gst-plugins-base-libs-gstrtspdefs.html#GST-RTSP-EINTR:CAPS"><code class="literal">GST_RTSP_EINTR</code></a> when <em class="parameter"><code>watch</code></em>
-is flushing
-<a class="link" href="gst-plugins-base-libs-gstrtspdefs.html#GST-RTSP-EINVAL:CAPS"><code class="literal">GST_RTSP_EINVAL</code></a> when called with invalid parameters.</p>
-</div>
-<p class="since">Since: 1.4</p>
 </div>
 </div>
 <div class="refsect1">
@@ -2273,14 +798,11 @@
 <div class="refsect2">
 <a name="GstRTSPConnection"></a><h3>GstRTSPConnection</h3>
 <pre class="programlisting">typedef struct _GstRTSPConnection GstRTSPConnection;</pre>
-<p>Opaque RTSP connection object.</p>
 </div>
 <hr>
 <div class="refsect2">
 <a name="GstRTSPWatch"></a><h3>GstRTSPWatch</h3>
 <pre class="programlisting">typedef struct _GstRTSPWatch GstRTSPWatch;</pre>
-<p>Opaque RTSP watch object that can be used for asynchronous RTSP
-operations.</p>
 </div>
 <hr>
 <div class="refsect2">
@@ -2305,78 +827,9 @@
                                              gpointer user_data);
 } GstRTSPWatchFuncs;
 </pre>
-<p>Callback functions from a <a class="link" href="gst-plugins-base-libs-gstrtspconnection.html#GstRTSPWatch" title="GstRTSPWatch"><span class="type">GstRTSPWatch</span></a>.</p>
-<div class="refsect3">
-<a name="GstRTSPWatchFuncs.members"></a><h4>Members</h4>
-<div class="informaltable"><table class="informaltable" width="100%" border="0">
-<colgroup>
-<col width="300px" class="struct_members_name">
-<col class="struct_members_description">
-<col width="200px" class="struct_members_annotations">
-</colgroup>
-<tbody>
-<tr>
-<td class="struct_member_name"><p><em class="structfield"><code><a name="GstRTSPWatchFuncs.message-received"></a>message_received</code></em> ()</p></td>
-<td class="struct_member_description"><p>callback when a message was received</p></td>
-<td class="struct_member_annotations"> </td>
-</tr>
-<tr>
-<td class="struct_member_name"><p><em class="structfield"><code><a name="GstRTSPWatchFuncs.message-sent"></a>message_sent</code></em> ()</p></td>
-<td class="struct_member_description"><p>callback when a message was sent</p></td>
-<td class="struct_member_annotations"> </td>
-</tr>
-<tr>
-<td class="struct_member_name"><p><em class="structfield"><code><a name="GstRTSPWatchFuncs.closed"></a>closed</code></em> ()</p></td>
-<td class="struct_member_description"><p>callback when the connection is closed</p></td>
-<td class="struct_member_annotations"> </td>
-</tr>
-<tr>
-<td class="struct_member_name"><p><em class="structfield"><code><a name="GstRTSPWatchFuncs.error"></a>error</code></em> ()</p></td>
-<td class="struct_member_description"><p>callback when an error occured</p></td>
-<td class="struct_member_annotations"> </td>
-</tr>
-<tr>
-<td class="struct_member_name"><p><em class="structfield"><code><a name="GstRTSPWatchFuncs.tunnel-start"></a>tunnel_start</code></em> ()</p></td>
-<td class="struct_member_description"><p>a client started a tunneled connection. The tunnelid of the
-connection must be saved.</p></td>
-<td class="struct_member_annotations"> </td>
-</tr>
-<tr>
-<td class="struct_member_name"><p><em class="structfield"><code><a name="GstRTSPWatchFuncs.tunnel-complete"></a>tunnel_complete</code></em> ()</p></td>
-<td class="struct_member_description"><p>a client finished a tunneled connection. In this callback
-you usually pair the tunnelid of this connection with the saved one using
-<a class="link" href="gst-plugins-base-libs-gstrtspconnection.html#gst-rtsp-connection-do-tunnel" title="gst_rtsp_connection_do_tunnel ()"><code class="function">gst_rtsp_connection_do_tunnel()</code></a>.</p></td>
-<td class="struct_member_annotations"> </td>
-</tr>
-<tr>
-<td class="struct_member_name"><p><em class="structfield"><code><a name="GstRTSPWatchFuncs.error-full"></a>error_full</code></em> ()</p></td>
-<td class="struct_member_description"><p>callback when an error occured with more information than
-the <em class="parameter"><code>error</code></em>
-callback.</p></td>
-<td class="struct_member_annotations"> </td>
-</tr>
-<tr>
-<td class="struct_member_name"><p><em class="structfield"><code><a name="GstRTSPWatchFuncs.tunnel-lost"></a>tunnel_lost</code></em> ()</p></td>
-<td class="struct_member_description"><p>callback when the post connection of a tunnel is closed.</p></td>
-<td class="struct_member_annotations"> </td>
-</tr>
-<tr>
-<td class="struct_member_name"><p><em class="structfield"><code><a name="GstRTSPWatchFuncs.tunnel-http-response"></a>tunnel_http_response</code></em> ()</p></td>
-<td class="struct_member_description"><p>callback when an HTTP response to the GET request
-is about to be sent for a tunneled connection. The response can be
-modified in the callback. Since 1.4.</p></td>
-<td class="struct_member_annotations"> </td>
-</tr>
-</tbody>
-</table></div>
 </div>
 </div>
 </div>
-<div class="refsect1">
-<a name="gst-plugins-base-libs-gstrtspconnection.see-also"></a><h2>See Also</h2>
-<p>gstrtspurl</p>
-</div>
-</div>
 <div class="footer">
 <hr>Generated by GTK-Doc V1.25</div>
 </body>
diff --git a/docs/libs/html/gst-plugins-base-libs-gstrtspdefs.html b/docs/libs/html/gst-plugins-base-libs-gstrtspdefs.html
index 6abb911..bfc826e 100644
--- a/docs/libs/html/gst-plugins-base-libs-gstrtspdefs.html
+++ b/docs/libs/html/gst-plugins-base-libs-gstrtspdefs.html
@@ -27,7 +27,7 @@
 <div class="refnamediv"><table width="100%"><tr>
 <td valign="top">
 <h2><span class="refentrytitle"><a name="gst-plugins-base-libs-gstrtspdefs.top_of_page"></a>gstrtspdefs</span></h2>
-<p>gstrtspdefs — common RTSP defines</p>
+<p>gstrtspdefs</p>
 </td>
 <td class="gallery_image" valign="top" align="right"></td>
 </tr></table></div>
@@ -182,320 +182,72 @@
 </div>
 <div class="refsect1">
 <a name="gst-plugins-base-libs-gstrtspdefs.description"></a><h2>Description</h2>
-<p>Provides common defines for the RTSP library.</p>
 </div>
 <div class="refsect1">
 <a name="gst-plugins-base-libs-gstrtspdefs.functions_details"></a><h2>Functions</h2>
 <div class="refsect2">
 <a name="GST-RTSP-CHECK:CAPS"></a><h3>GST_RTSP_CHECK()</h3>
 <pre class="programlisting">#define             GST_RTSP_CHECK(stmt, label)</pre>
-<p>Macro that checks the return value of <em class="parameter"><code>stmt</code></em>
- and jumps to <em class="parameter"><code>label</code></em>
- when it does
-not equal <a class="link" href="gst-plugins-base-libs-gstrtspdefs.html#GST-RTSP-OK:CAPS"><span class="type">GST_RTSP_OK</span></a>.</p>
-<div class="refsect3">
-<a name="GST-RTSP-CHECK.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>stmt</p></td>
-<td class="parameter_description"><p>a statement</p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-<tr>
-<td class="parameter_name"><p>label</p></td>
-<td class="parameter_description"><p>a label</p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-</tbody>
-</table></div>
-</div>
 </div>
 <hr>
 <div class="refsect2">
 <a name="gst-rtsp-strresult"></a><h3>gst_rtsp_strresult ()</h3>
 <pre class="programlisting"><a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> *
 gst_rtsp_strresult (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstrtspdefs.html#GstRTSPResult" title="enum GstRTSPResult"><span class="type">GstRTSPResult</span></a> result</code></em>);</pre>
-<p>Convert <em class="parameter"><code>result</code></em>
- in a human readable string.</p>
-<div class="refsect3">
-<a name="gst-rtsp-strresult.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>result</p></td>
-<td class="parameter_description"><p>a <a class="link" href="gst-plugins-base-libs-gstrtspdefs.html#GstRTSPResult" title="enum GstRTSPResult"><span class="type">GstRTSPResult</span></a></p></td>
-<td class="parameter_annotations"> </td>
-</tr></tbody>
-</table></div>
-</div>
-<div class="refsect3">
-<a name="gst-rtsp-strresult.returns"></a><h4>Returns</h4>
-<p> a newly allocated string. <a href="/usr/share/gtk-doc/html/glibglib-Memory-Allocation.html#g-free"><code class="function">g_free()</code></a> after usage.</p>
-</div>
 </div>
 <hr>
 <div class="refsect2">
 <a name="gst-rtsp-method-as-text"></a><h3>gst_rtsp_method_as_text ()</h3>
 <pre class="programlisting">const <a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> *
 gst_rtsp_method_as_text (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstrtspdefs.html#GstRTSPMethod" title="enum GstRTSPMethod"><span class="type">GstRTSPMethod</span></a> method</code></em>);</pre>
-<p>Convert <em class="parameter"><code>method</code></em>
- to a string.</p>
-<div class="refsect3">
-<a name="gst-rtsp-method-as-text.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>method</p></td>
-<td class="parameter_description"><p>a <a class="link" href="gst-plugins-base-libs-gstrtspdefs.html#GstRTSPMethod" title="enum GstRTSPMethod"><span class="type">GstRTSPMethod</span></a></p></td>
-<td class="parameter_annotations"> </td>
-</tr></tbody>
-</table></div>
-</div>
-<div class="refsect3">
-<a name="gst-rtsp-method-as-text.returns"></a><h4>Returns</h4>
-<p> a string representation of <em class="parameter"><code>method</code></em>
-.</p>
-</div>
 </div>
 <hr>
 <div class="refsect2">
 <a name="gst-rtsp-version-as-text"></a><h3>gst_rtsp_version_as_text ()</h3>
 <pre class="programlisting">const <a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> *
 gst_rtsp_version_as_text (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstrtspdefs.html#GstRTSPVersion" title="enum GstRTSPVersion"><span class="type">GstRTSPVersion</span></a> version</code></em>);</pre>
-<p>Convert <em class="parameter"><code>version</code></em>
- to a string.</p>
-<div class="refsect3">
-<a name="gst-rtsp-version-as-text.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>version</p></td>
-<td class="parameter_description"><p>a <a class="link" href="gst-plugins-base-libs-gstrtspdefs.html#GstRTSPVersion" title="enum GstRTSPVersion"><span class="type">GstRTSPVersion</span></a></p></td>
-<td class="parameter_annotations"> </td>
-</tr></tbody>
-</table></div>
-</div>
-<div class="refsect3">
-<a name="gst-rtsp-version-as-text.returns"></a><h4>Returns</h4>
-<p> a string representation of <em class="parameter"><code>version</code></em>
-.</p>
-</div>
 </div>
 <hr>
 <div class="refsect2">
 <a name="gst-rtsp-header-as-text"></a><h3>gst_rtsp_header_as_text ()</h3>
 <pre class="programlisting">const <a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> *
 gst_rtsp_header_as_text (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstrtspdefs.html#GstRTSPHeaderField" title="enum GstRTSPHeaderField"><span class="type">GstRTSPHeaderField</span></a> field</code></em>);</pre>
-<p>Convert <em class="parameter"><code>field</code></em>
- to a string.</p>
-<div class="refsect3">
-<a name="gst-rtsp-header-as-text.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>field</p></td>
-<td class="parameter_description"><p>a <a class="link" href="gst-plugins-base-libs-gstrtspdefs.html#GstRTSPHeaderField" title="enum GstRTSPHeaderField"><span class="type">GstRTSPHeaderField</span></a></p></td>
-<td class="parameter_annotations"> </td>
-</tr></tbody>
-</table></div>
-</div>
-<div class="refsect3">
-<a name="gst-rtsp-header-as-text.returns"></a><h4>Returns</h4>
-<p> a string representation of <em class="parameter"><code>field</code></em>
-.</p>
-</div>
 </div>
 <hr>
 <div class="refsect2">
 <a name="gst-rtsp-header-allow-multiple"></a><h3>gst_rtsp_header_allow_multiple ()</h3>
 <pre class="programlisting"><a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
 gst_rtsp_header_allow_multiple (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstrtspdefs.html#GstRTSPHeaderField" title="enum GstRTSPHeaderField"><span class="type">GstRTSPHeaderField</span></a> field</code></em>);</pre>
-<p>Check whether <em class="parameter"><code>field</code></em>
- may appear multiple times in a message.</p>
-<div class="refsect3">
-<a name="gst-rtsp-header-allow-multiple.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>field</p></td>
-<td class="parameter_description"><p>a <a class="link" href="gst-plugins-base-libs-gstrtspdefs.html#GstRTSPHeaderField" title="enum GstRTSPHeaderField"><span class="type">GstRTSPHeaderField</span></a></p></td>
-<td class="parameter_annotations"> </td>
-</tr></tbody>
-</table></div>
-</div>
-<div class="refsect3">
-<a name="gst-rtsp-header-allow-multiple.returns"></a><h4>Returns</h4>
-<p> <a href="/usr/share/gtk-doc/html/glibglib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a> if multiple headers are allowed.</p>
-</div>
 </div>
 <hr>
 <div class="refsect2">
 <a name="gst-rtsp-status-as-text"></a><h3>gst_rtsp_status_as_text ()</h3>
 <pre class="programlisting">const <a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> *
 gst_rtsp_status_as_text (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstrtspdefs.html#GstRTSPStatusCode" title="enum GstRTSPStatusCode"><span class="type">GstRTSPStatusCode</span></a> code</code></em>);</pre>
-<p>Convert <em class="parameter"><code>code</code></em>
- to a string.</p>
-<div class="refsect3">
-<a name="gst-rtsp-status-as-text.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>code</p></td>
-<td class="parameter_description"><p>a <a class="link" href="gst-plugins-base-libs-gstrtspdefs.html#GstRTSPStatusCode" title="enum GstRTSPStatusCode"><span class="type">GstRTSPStatusCode</span></a></p></td>
-<td class="parameter_annotations"> </td>
-</tr></tbody>
-</table></div>
-</div>
-<div class="refsect3">
-<a name="gst-rtsp-status-as-text.returns"></a><h4>Returns</h4>
-<p> a string representation of <em class="parameter"><code>code</code></em>
-.</p>
-</div>
 </div>
 <hr>
 <div class="refsect2">
 <a name="gst-rtsp-options-as-text"></a><h3>gst_rtsp_options_as_text ()</h3>
 <pre class="programlisting"><a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> *
 gst_rtsp_options_as_text (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstrtspdefs.html#GstRTSPMethod" title="enum GstRTSPMethod"><span class="type">GstRTSPMethod</span></a> options</code></em>);</pre>
-<p>Convert <em class="parameter"><code>options</code></em>
- to a string.</p>
-<div class="refsect3">
-<a name="gst-rtsp-options-as-text.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>options</p></td>
-<td class="parameter_description"><p>one or more <a class="link" href="gst-plugins-base-libs-gstrtspdefs.html#GstRTSPMethod" title="enum GstRTSPMethod"><span class="type">GstRTSPMethod</span></a></p></td>
-<td class="parameter_annotations"> </td>
-</tr></tbody>
-</table></div>
-</div>
-<div class="refsect3">
-<a name="gst-rtsp-options-as-text.returns"></a><h4>Returns</h4>
-<p> a new string of <em class="parameter"><code>options</code></em>
-. <a href="/usr/share/gtk-doc/html/glibglib-Memory-Allocation.html#g-free"><code class="function">g_free()</code></a> after usage.</p>
-</div>
 </div>
 <hr>
 <div class="refsect2">
 <a name="gst-rtsp-options-from-text"></a><h3>gst_rtsp_options_from_text ()</h3>
 <pre class="programlisting"><a class="link" href="gst-plugins-base-libs-gstrtspdefs.html#GstRTSPMethod" title="enum GstRTSPMethod"><span class="returnvalue">GstRTSPMethod</span></a>
 gst_rtsp_options_from_text (<em class="parameter"><code>const <a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *options</code></em>);</pre>
-<p>Convert the comma separated list <em class="parameter"><code>options</code></em>
- to a <a class="link" href="gst-plugins-base-libs-gstrtspdefs.html#GstRTSPMethod" title="enum GstRTSPMethod"><span class="type">GstRTSPMethod</span></a> bitwise or
-of methods. This functions is the reverse of <a class="link" href="gst-plugins-base-libs-gstrtspdefs.html#gst-rtsp-options-as-text" title="gst_rtsp_options_as_text ()"><code class="function">gst_rtsp_options_as_text()</code></a>.</p>
-<div class="refsect3">
-<a name="gst-rtsp-options-from-text.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>options</p></td>
-<td class="parameter_description"><p>a comma separated list of options</p></td>
-<td class="parameter_annotations"> </td>
-</tr></tbody>
-</table></div>
-</div>
-<div class="refsect3">
-<a name="gst-rtsp-options-from-text.returns"></a><h4>Returns</h4>
-<p> a <a class="link" href="gst-plugins-base-libs-gstrtspdefs.html#GstRTSPMethod" title="enum GstRTSPMethod"><span class="type">GstRTSPMethod</span></a></p>
-</div>
-<p class="since">Since: 1.2</p>
 </div>
 <hr>
 <div class="refsect2">
 <a name="gst-rtsp-find-header-field"></a><h3>gst_rtsp_find_header_field ()</h3>
 <pre class="programlisting"><a class="link" href="gst-plugins-base-libs-gstrtspdefs.html#GstRTSPHeaderField" title="enum GstRTSPHeaderField"><span class="returnvalue">GstRTSPHeaderField</span></a>
 gst_rtsp_find_header_field (<em class="parameter"><code>const <a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *header</code></em>);</pre>
-<p>Convert <em class="parameter"><code>header</code></em>
- to a <a class="link" href="gst-plugins-base-libs-gstrtspdefs.html#GstRTSPHeaderField" title="enum GstRTSPHeaderField"><span class="type">GstRTSPHeaderField</span></a>.</p>
-<div class="refsect3">
-<a name="gst-rtsp-find-header-field.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>header</p></td>
-<td class="parameter_description"><p>a header string</p></td>
-<td class="parameter_annotations"> </td>
-</tr></tbody>
-</table></div>
-</div>
-<div class="refsect3">
-<a name="gst-rtsp-find-header-field.returns"></a><h4>Returns</h4>
-<p> a <a class="link" href="gst-plugins-base-libs-gstrtspdefs.html#GstRTSPHeaderField" title="enum GstRTSPHeaderField"><span class="type">GstRTSPHeaderField</span></a> for <em class="parameter"><code>header</code></em>
-or <a class="link" href="gst-plugins-base-libs-gstrtspdefs.html#GST-RTSP-HDR-INVALID:CAPS"><span class="type">GST_RTSP_HDR_INVALID</span></a> if the
-header field is unknown.</p>
-</div>
 </div>
 <hr>
 <div class="refsect2">
 <a name="gst-rtsp-find-method"></a><h3>gst_rtsp_find_method ()</h3>
 <pre class="programlisting"><a class="link" href="gst-plugins-base-libs-gstrtspdefs.html#GstRTSPMethod" title="enum GstRTSPMethod"><span class="returnvalue">GstRTSPMethod</span></a>
 gst_rtsp_find_method (<em class="parameter"><code>const <a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *method</code></em>);</pre>
-<p>Convert <em class="parameter"><code>method</code></em>
- to a <a class="link" href="gst-plugins-base-libs-gstrtspdefs.html#GstRTSPMethod" title="enum GstRTSPMethod"><span class="type">GstRTSPMethod</span></a>.</p>
-<div class="refsect3">
-<a name="gst-rtsp-find-method.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>method</p></td>
-<td class="parameter_description"><p>a method</p></td>
-<td class="parameter_annotations"> </td>
-</tr></tbody>
-</table></div>
-</div>
-<div class="refsect3">
-<a name="gst-rtsp-find-method.returns"></a><h4>Returns</h4>
-<p> a <a class="link" href="gst-plugins-base-libs-gstrtspdefs.html#GstRTSPMethod" title="enum GstRTSPMethod"><span class="type">GstRTSPMethod</span></a> for <em class="parameter"><code>method</code></em>
-or <a class="link" href="gst-plugins-base-libs-gstrtspdefs.html#GST-RTSP-INVALID:CAPS"><span class="type">GST_RTSP_INVALID</span></a> if the
-method is unknown.</p>
-</div>
 </div>
 </div>
 <div class="refsect1">
@@ -504,12 +256,10 @@
 <a name="GST-RTSP-AUTH-MAX:CAPS"></a><h3>GST_RTSP_AUTH_MAX</h3>
 <pre class="programlisting">#define GST_RTSP_AUTH_MAX GST_RTSP_AUTH_DIGEST
 </pre>
-<p>Strongest available authentication method</p>
 </div>
 <hr>
 <div class="refsect2">
 <a name="GstRTSPEvent"></a><h3>enum GstRTSPEvent</h3>
-<p>The possible events for the connection.</p>
 <div class="refsect3">
 <a name="GstRTSPEvent.members"></a><h4>Members</h4>
 <div class="informaltable"><table class="informaltable" width="100%" border="0">
@@ -521,17 +271,13 @@
 <tbody>
 <tr>
 <td class="enum_member_name"><p><a name="GST-RTSP-EV-READ:CAPS"></a>GST_RTSP_EV_READ</p></td>
-<td class="enum_member_description">
-<p>connection is readable</p>
-</td>
-<td class="enum_member_annotations"> </td>
+<td> </td>
+<td> </td>
 </tr>
 <tr>
 <td class="enum_member_name"><p><a name="GST-RTSP-EV-WRITE:CAPS"></a>GST_RTSP_EV_WRITE</p></td>
-<td class="enum_member_description">
-<p>connection is writable</p>
-</td>
-<td class="enum_member_annotations"> </td>
+<td> </td>
+<td> </td>
 </tr>
 </tbody>
 </table></div>
@@ -540,7 +286,6 @@
 <hr>
 <div class="refsect2">
 <a name="GstRTSPResult"></a><h3>enum GstRTSPResult</h3>
-<p>Result codes from the RTSP functions.</p>
 <div class="refsect3">
 <a name="GstRTSPResult.members"></a><h4>Members</h4>
 <div class="informaltable"><table class="informaltable" width="100%" border="0">
@@ -552,129 +297,93 @@
 <tbody>
 <tr>
 <td class="enum_member_name"><p><a name="GST-RTSP-OK:CAPS"></a>GST_RTSP_OK</p></td>
-<td class="enum_member_description">
-<p>no error</p>
-</td>
-<td class="enum_member_annotations"> </td>
+<td> </td>
+<td> </td>
 </tr>
 <tr>
 <td class="enum_member_name"><p><a name="GST-RTSP-ERROR:CAPS"></a>GST_RTSP_ERROR</p></td>
-<td class="enum_member_description">
-<p>some unspecified error occured</p>
-</td>
-<td class="enum_member_annotations"> </td>
+<td> </td>
+<td> </td>
 </tr>
 <tr>
 <td class="enum_member_name"><p><a name="GST-RTSP-EINVAL:CAPS"></a>GST_RTSP_EINVAL</p></td>
-<td class="enum_member_description">
-<p>invalid arguments were provided to a function</p>
-</td>
-<td class="enum_member_annotations"> </td>
+<td> </td>
+<td> </td>
 </tr>
 <tr>
 <td class="enum_member_name"><p><a name="GST-RTSP-EINTR:CAPS"></a>GST_RTSP_EINTR</p></td>
-<td class="enum_member_description">
-<p>an operation was canceled</p>
-</td>
-<td class="enum_member_annotations"> </td>
+<td> </td>
+<td> </td>
 </tr>
 <tr>
 <td class="enum_member_name"><p><a name="GST-RTSP-ENOMEM:CAPS"></a>GST_RTSP_ENOMEM</p></td>
-<td class="enum_member_description">
-<p>no memory was available for the operation</p>
-</td>
-<td class="enum_member_annotations"> </td>
+<td> </td>
+<td> </td>
 </tr>
 <tr>
 <td class="enum_member_name"><p><a name="GST-RTSP-ERESOLV:CAPS"></a>GST_RTSP_ERESOLV</p></td>
-<td class="enum_member_description">
-<p>a host resolve error occured</p>
-</td>
-<td class="enum_member_annotations"> </td>
+<td> </td>
+<td> </td>
 </tr>
 <tr>
 <td class="enum_member_name"><p><a name="GST-RTSP-ENOTIMPL:CAPS"></a>GST_RTSP_ENOTIMPL</p></td>
-<td class="enum_member_description">
-<p>function not implemented</p>
-</td>
-<td class="enum_member_annotations"> </td>
+<td> </td>
+<td> </td>
 </tr>
 <tr>
 <td class="enum_member_name"><p><a name="GST-RTSP-ESYS:CAPS"></a>GST_RTSP_ESYS</p></td>
-<td class="enum_member_description">
-<p>a system error occured, errno contains more details</p>
-</td>
-<td class="enum_member_annotations"> </td>
+<td> </td>
+<td> </td>
 </tr>
 <tr>
 <td class="enum_member_name"><p><a name="GST-RTSP-EPARSE:CAPS"></a>GST_RTSP_EPARSE</p></td>
-<td class="enum_member_description">
-<p>a persing error occured</p>
-</td>
-<td class="enum_member_annotations"> </td>
+<td> </td>
+<td> </td>
 </tr>
 <tr>
 <td class="enum_member_name"><p><a name="GST-RTSP-EWSASTART:CAPS"></a>GST_RTSP_EWSASTART</p></td>
-<td class="enum_member_description">
-<p>windows networking could not start</p>
-</td>
-<td class="enum_member_annotations"> </td>
+<td> </td>
+<td> </td>
 </tr>
 <tr>
 <td class="enum_member_name"><p><a name="GST-RTSP-EWSAVERSION:CAPS"></a>GST_RTSP_EWSAVERSION</p></td>
-<td class="enum_member_description">
-<p>windows networking stack has wrong version</p>
-</td>
-<td class="enum_member_annotations"> </td>
+<td> </td>
+<td> </td>
 </tr>
 <tr>
 <td class="enum_member_name"><p><a name="GST-RTSP-EEOF:CAPS"></a>GST_RTSP_EEOF</p></td>
-<td class="enum_member_description">
-<p>end-of-file was reached</p>
-</td>
-<td class="enum_member_annotations"> </td>
+<td> </td>
+<td> </td>
 </tr>
 <tr>
 <td class="enum_member_name"><p><a name="GST-RTSP-ENET:CAPS"></a>GST_RTSP_ENET</p></td>
-<td class="enum_member_description">
-<p>a network problem occured, h_errno contains more details</p>
-</td>
-<td class="enum_member_annotations"> </td>
+<td> </td>
+<td> </td>
 </tr>
 <tr>
 <td class="enum_member_name"><p><a name="GST-RTSP-ENOTIP:CAPS"></a>GST_RTSP_ENOTIP</p></td>
-<td class="enum_member_description">
-<p>the host is not an IP host</p>
-</td>
-<td class="enum_member_annotations"> </td>
+<td> </td>
+<td> </td>
 </tr>
 <tr>
 <td class="enum_member_name"><p><a name="GST-RTSP-ETIMEOUT:CAPS"></a>GST_RTSP_ETIMEOUT</p></td>
-<td class="enum_member_description">
-<p>a timeout occured</p>
-</td>
-<td class="enum_member_annotations"> </td>
+<td> </td>
+<td> </td>
 </tr>
 <tr>
 <td class="enum_member_name"><p><a name="GST-RTSP-ETGET:CAPS"></a>GST_RTSP_ETGET</p></td>
-<td class="enum_member_description">
-<p>the tunnel GET request has been performed</p>
-</td>
-<td class="enum_member_annotations"> </td>
+<td> </td>
+<td> </td>
 </tr>
 <tr>
 <td class="enum_member_name"><p><a name="GST-RTSP-ETPOST:CAPS"></a>GST_RTSP_ETPOST</p></td>
-<td class="enum_member_description">
-<p>the tunnel POST request has been performed</p>
-</td>
-<td class="enum_member_annotations"> </td>
+<td> </td>
+<td> </td>
 </tr>
 <tr>
 <td class="enum_member_name"><p><a name="GST-RTSP-ELAST:CAPS"></a>GST_RTSP_ELAST</p></td>
-<td class="enum_member_description">
-<p>last error</p>
-</td>
-<td class="enum_member_annotations"> </td>
+<td> </td>
+<td> </td>
 </tr>
 </tbody>
 </table></div>
@@ -683,7 +392,6 @@
 <hr>
 <div class="refsect2">
 <a name="GstRTSPFamily"></a><h3>enum GstRTSPFamily</h3>
-<p>The possible network families.</p>
 <div class="refsect3">
 <a name="GstRTSPFamily.members"></a><h4>Members</h4>
 <div class="informaltable"><table class="informaltable" width="100%" border="0">
@@ -695,24 +403,18 @@
 <tbody>
 <tr>
 <td class="enum_member_name"><p><a name="GST-RTSP-FAM-NONE:CAPS"></a>GST_RTSP_FAM_NONE</p></td>
-<td class="enum_member_description">
-<p>unknown network family</p>
-</td>
-<td class="enum_member_annotations"> </td>
+<td> </td>
+<td> </td>
 </tr>
 <tr>
 <td class="enum_member_name"><p><a name="GST-RTSP-FAM-INET:CAPS"></a>GST_RTSP_FAM_INET</p></td>
-<td class="enum_member_description">
-<p>internet</p>
-</td>
-<td class="enum_member_annotations"> </td>
+<td> </td>
+<td> </td>
 </tr>
 <tr>
 <td class="enum_member_name"><p><a name="GST-RTSP-FAM-INET6:CAPS"></a>GST_RTSP_FAM_INET6</p></td>
-<td class="enum_member_description">
-<p>internet V6</p>
-</td>
-<td class="enum_member_annotations"> </td>
+<td> </td>
+<td> </td>
 </tr>
 </tbody>
 </table></div>
@@ -721,7 +423,6 @@
 <hr>
 <div class="refsect2">
 <a name="GstRTSPState"></a><h3>enum GstRTSPState</h3>
-<p>The different RTSP states.</p>
 <div class="refsect3">
 <a name="GstRTSPState.members"></a><h4>Members</h4>
 <div class="informaltable"><table class="informaltable" width="100%" border="0">
@@ -733,45 +434,33 @@
 <tbody>
 <tr>
 <td class="enum_member_name"><p><a name="GST-RTSP-STATE-INVALID:CAPS"></a>GST_RTSP_STATE_INVALID</p></td>
-<td class="enum_member_description">
-<p>invalid state</p>
-</td>
-<td class="enum_member_annotations"> </td>
+<td> </td>
+<td> </td>
 </tr>
 <tr>
 <td class="enum_member_name"><p><a name="GST-RTSP-STATE-INIT:CAPS"></a>GST_RTSP_STATE_INIT</p></td>
-<td class="enum_member_description">
-<p>initializing</p>
-</td>
-<td class="enum_member_annotations"> </td>
+<td> </td>
+<td> </td>
 </tr>
 <tr>
 <td class="enum_member_name"><p><a name="GST-RTSP-STATE-READY:CAPS"></a>GST_RTSP_STATE_READY</p></td>
-<td class="enum_member_description">
-<p>ready for operation</p>
-</td>
-<td class="enum_member_annotations"> </td>
+<td> </td>
+<td> </td>
 </tr>
 <tr>
 <td class="enum_member_name"><p><a name="GST-RTSP-STATE-SEEKING:CAPS"></a>GST_RTSP_STATE_SEEKING</p></td>
-<td class="enum_member_description">
-<p>seeking in progress</p>
-</td>
-<td class="enum_member_annotations"> </td>
+<td> </td>
+<td> </td>
 </tr>
 <tr>
 <td class="enum_member_name"><p><a name="GST-RTSP-STATE-PLAYING:CAPS"></a>GST_RTSP_STATE_PLAYING</p></td>
-<td class="enum_member_description">
-<p>playing</p>
-</td>
-<td class="enum_member_annotations"> </td>
+<td> </td>
+<td> </td>
 </tr>
 <tr>
 <td class="enum_member_name"><p><a name="GST-RTSP-STATE-RECORDING:CAPS"></a>GST_RTSP_STATE_RECORDING</p></td>
-<td class="enum_member_description">
-<p>recording</p>
-</td>
-<td class="enum_member_annotations"> </td>
+<td> </td>
+<td> </td>
 </tr>
 </tbody>
 </table></div>
@@ -780,7 +469,6 @@
 <hr>
 <div class="refsect2">
 <a name="GstRTSPVersion"></a><h3>enum GstRTSPVersion</h3>
-<p>The supported RTSP versions.</p>
 <div class="refsect3">
 <a name="GstRTSPVersion.members"></a><h4>Members</h4>
 <div class="informaltable"><table class="informaltable" width="100%" border="0">
@@ -792,24 +480,18 @@
 <tbody>
 <tr>
 <td class="enum_member_name"><p><a name="GST-RTSP-VERSION-INVALID:CAPS"></a>GST_RTSP_VERSION_INVALID</p></td>
-<td class="enum_member_description">
-<p>unknown/invalid version</p>
-</td>
-<td class="enum_member_annotations"> </td>
+<td> </td>
+<td> </td>
 </tr>
 <tr>
 <td class="enum_member_name"><p><a name="GST-RTSP-VERSION-1-0:CAPS"></a>GST_RTSP_VERSION_1_0</p></td>
-<td class="enum_member_description">
-<p>version 1.0</p>
-</td>
-<td class="enum_member_annotations"> </td>
+<td> </td>
+<td> </td>
 </tr>
 <tr>
 <td class="enum_member_name"><p><a name="GST-RTSP-VERSION-1-1:CAPS"></a>GST_RTSP_VERSION_1_1</p></td>
-<td class="enum_member_description">
-<p>version 1.1.</p>
-</td>
-<td class="enum_member_annotations"> </td>
+<td> </td>
+<td> </td>
 </tr>
 </tbody>
 </table></div>
@@ -818,7 +500,6 @@
 <hr>
 <div class="refsect2">
 <a name="GstRTSPMethod"></a><h3>enum GstRTSPMethod</h3>
-<p>The different supported RTSP methods.</p>
 <div class="refsect3">
 <a name="GstRTSPMethod.members"></a><h4>Members</h4>
 <div class="informaltable"><table class="informaltable" width="100%" border="0">
@@ -830,101 +511,73 @@
 <tbody>
 <tr>
 <td class="enum_member_name"><p><a name="GST-RTSP-INVALID:CAPS"></a>GST_RTSP_INVALID</p></td>
-<td class="enum_member_description">
-<p>invalid method</p>
-</td>
-<td class="enum_member_annotations"> </td>
+<td> </td>
+<td> </td>
 </tr>
 <tr>
 <td class="enum_member_name"><p><a name="GST-RTSP-DESCRIBE:CAPS"></a>GST_RTSP_DESCRIBE</p></td>
-<td class="enum_member_description">
-<p>the DESCRIBE method</p>
-</td>
-<td class="enum_member_annotations"> </td>
+<td> </td>
+<td> </td>
 </tr>
 <tr>
 <td class="enum_member_name"><p><a name="GST-RTSP-ANNOUNCE:CAPS"></a>GST_RTSP_ANNOUNCE</p></td>
-<td class="enum_member_description">
-<p>the ANNOUNCE method</p>
-</td>
-<td class="enum_member_annotations"> </td>
+<td> </td>
+<td> </td>
 </tr>
 <tr>
 <td class="enum_member_name"><p><a name="GST-RTSP-GET-PARAMETER:CAPS"></a>GST_RTSP_GET_PARAMETER</p></td>
-<td class="enum_member_description">
-<p>the GET_PARAMETER method</p>
-</td>
-<td class="enum_member_annotations"> </td>
+<td> </td>
+<td> </td>
 </tr>
 <tr>
 <td class="enum_member_name"><p><a name="GST-RTSP-OPTIONS:CAPS"></a>GST_RTSP_OPTIONS</p></td>
-<td class="enum_member_description">
-<p>the OPTIONS method</p>
-</td>
-<td class="enum_member_annotations"> </td>
+<td> </td>
+<td> </td>
 </tr>
 <tr>
 <td class="enum_member_name"><p><a name="GST-RTSP-PAUSE:CAPS"></a>GST_RTSP_PAUSE</p></td>
-<td class="enum_member_description">
-<p>the PAUSE method</p>
-</td>
-<td class="enum_member_annotations"> </td>
+<td> </td>
+<td> </td>
 </tr>
 <tr>
 <td class="enum_member_name"><p><a name="GST-RTSP-PLAY:CAPS"></a>GST_RTSP_PLAY</p></td>
-<td class="enum_member_description">
-<p>the PLAY method</p>
-</td>
-<td class="enum_member_annotations"> </td>
+<td> </td>
+<td> </td>
 </tr>
 <tr>
 <td class="enum_member_name"><p><a name="GST-RTSP-RECORD:CAPS"></a>GST_RTSP_RECORD</p></td>
-<td class="enum_member_description">
-<p>the RECORD method</p>
-</td>
-<td class="enum_member_annotations"> </td>
+<td> </td>
+<td> </td>
 </tr>
 <tr>
 <td class="enum_member_name"><p><a name="GST-RTSP-REDIRECT:CAPS"></a>GST_RTSP_REDIRECT</p></td>
-<td class="enum_member_description">
-<p>the REDIRECT method</p>
-</td>
-<td class="enum_member_annotations"> </td>
+<td> </td>
+<td> </td>
 </tr>
 <tr>
 <td class="enum_member_name"><p><a name="GST-RTSP-SETUP:CAPS"></a>GST_RTSP_SETUP</p></td>
-<td class="enum_member_description">
-<p>the SETUP method</p>
-</td>
-<td class="enum_member_annotations"> </td>
+<td> </td>
+<td> </td>
 </tr>
 <tr>
 <td class="enum_member_name"><p><a name="GST-RTSP-SET-PARAMETER:CAPS"></a>GST_RTSP_SET_PARAMETER</p></td>
-<td class="enum_member_description">
-<p>the SET_PARAMETER method</p>
-</td>
-<td class="enum_member_annotations"> </td>
+<td> </td>
+<td> </td>
 </tr>
 <tr>
 <td class="enum_member_name"><p><a name="GST-RTSP-TEARDOWN:CAPS"></a>GST_RTSP_TEARDOWN</p></td>
-<td class="enum_member_description">
-<p>the TEARDOWN method</p>
-</td>
-<td class="enum_member_annotations"> </td>
+<td> </td>
+<td> </td>
 </tr>
 <tr>
 <td class="enum_member_name"><p><a name="GST-RTSP-GET:CAPS"></a>GST_RTSP_GET</p></td>
-<td class="enum_member_description">
-<p>the GET method (HTTP).</p>
-</td>
-<td class="enum_member_annotations"> </td>
+<td> </td>
+<td> </td>
 </tr>
 <tr>
 <td class="enum_member_name"><p><a name="GST-RTSP-POST:CAPS"></a>GST_RTSP_POST</p></td>
-<td class="enum_member_description">
-<p>the POST method (HTTP).</p>
-</td>
-<td class="enum_member_annotations"> </td>
+<td> </td>
+<td> </td>
 </tr>
 </tbody>
 </table></div>
@@ -933,7 +586,6 @@
 <hr>
 <div class="refsect2">
 <a name="GstRTSPAuthMethod"></a><h3>enum GstRTSPAuthMethod</h3>
-<p>Authentication methods, ordered by strength</p>
 <div class="refsect3">
 <a name="GstRTSPAuthMethod.members"></a><h4>Members</h4>
 <div class="informaltable"><table class="informaltable" width="100%" border="0">
@@ -945,24 +597,18 @@
 <tbody>
 <tr>
 <td class="enum_member_name"><p><a name="GST-RTSP-AUTH-NONE:CAPS"></a>GST_RTSP_AUTH_NONE</p></td>
-<td class="enum_member_description">
-<p>no authentication</p>
-</td>
-<td class="enum_member_annotations"> </td>
+<td> </td>
+<td> </td>
 </tr>
 <tr>
 <td class="enum_member_name"><p><a name="GST-RTSP-AUTH-BASIC:CAPS"></a>GST_RTSP_AUTH_BASIC</p></td>
-<td class="enum_member_description">
-<p>basic authentication</p>
-</td>
-<td class="enum_member_annotations"> </td>
+<td> </td>
+<td> </td>
 </tr>
 <tr>
 <td class="enum_member_name"><p><a name="GST-RTSP-AUTH-DIGEST:CAPS"></a>GST_RTSP_AUTH_DIGEST</p></td>
-<td class="enum_member_description">
-<p>digest authentication</p>
-</td>
-<td class="enum_member_annotations"> </td>
+<td> </td>
+<td> </td>
 </tr>
 </tbody>
 </table></div>
@@ -971,7 +617,6 @@
 <hr>
 <div class="refsect2">
 <a name="GstRTSPHeaderField"></a><h3>enum GstRTSPHeaderField</h3>
-<p>Enumeration of rtsp header fields</p>
 <div class="refsect3">
 <a name="GstRTSPHeaderField.members"></a><h4>Members</h4>
 <div class="informaltable"><table class="informaltable" width="100%" border="0">
@@ -1408,7 +1053,6 @@
 <hr>
 <div class="refsect2">
 <a name="GstRTSPStatusCode"></a><h3>enum GstRTSPStatusCode</h3>
-<p>Enumeration of rtsp status codes</p>
 <div class="refsect3">
 <a name="GstRTSPStatusCode.members"></a><h4>Members</h4>
 <div class="informaltable"><table class="informaltable" width="100%" border="0">
@@ -1653,10 +1297,6 @@
 </div>
 </div>
 </div>
-<div class="refsect1">
-<a name="gst-plugins-base-libs-gstrtspdefs.see-also"></a><h2>See Also</h2>
-<p>gstrtspurl, gstrtspconnection</p>
-</div>
 </div>
 <div class="footer">
 <hr>Generated by GTK-Doc V1.25</div>
diff --git a/docs/libs/html/gst-plugins-base-libs-gstrtspextension.html b/docs/libs/html/gst-plugins-base-libs-gstrtspextension.html
index 51b9361..67b3551 100644
--- a/docs/libs/html/gst-plugins-base-libs-gstrtspextension.html
+++ b/docs/libs/html/gst-plugins-base-libs-gstrtspextension.html
@@ -27,7 +27,7 @@
 <div class="refnamediv"><table width="100%"><tr>
 <td valign="top">
 <h2><span class="refentrytitle"><a name="gst-plugins-base-libs-gstrtspextension.top_of_page"></a>gstrtspextension</span></h2>
-<p>gstrtspextension — Interface for extending RTSP protocols</p>
+<p>gstrtspextension</p>
 </td>
 <td class="gallery_image" valign="top" align="right"></td>
 </tr></table></div>
@@ -57,12 +57,6 @@
 </div>
 <div class="refsect1">
 <a name="gst-plugins-base-libs-gstrtspextension.description"></a><h2>Description</h2>
-<div class="refsect2">
-<a name="id-1.2.10.5.5.2"></a><p>
- This interface is implemented e.g. by the Windows Media Streaming RTSP
- exentension (rtspwms) and the RealMedia RTSP extension (rtspreal).
-</p>
-</div>
 </div>
 <div class="refsect1">
 <a name="gst-plugins-base-libs-gstrtspextension.functions_details"></a><h2>Functions</h2>
diff --git a/docs/libs/html/gst-plugins-base-libs-gstrtspmessage.html b/docs/libs/html/gst-plugins-base-libs-gstrtspmessage.html
index 54624c6..3600d58 100644
--- a/docs/libs/html/gst-plugins-base-libs-gstrtspmessage.html
+++ b/docs/libs/html/gst-plugins-base-libs-gstrtspmessage.html
@@ -27,7 +27,7 @@
 <div class="refnamediv"><table width="100%"><tr>
 <td valign="top">
 <h2><span class="refentrytitle"><a name="gst-plugins-base-libs-gstrtspmessage.top_of_page"></a>gstrtspmessage</span></h2>
-<p>gstrtspmessage — RTSP messages</p>
+<p>gstrtspmessage</p>
 </td>
 <td class="gallery_image" valign="top" align="right"></td>
 </tr></table></div>
@@ -292,7 +292,6 @@
 </div>
 <div class="refsect1">
 <a name="gst-plugins-base-libs-gstrtspmessage.description"></a><h2>Description</h2>
-<p>Provides methods for creating and parsing request, response and data messages.</p>
 </div>
 <div class="refsect1">
 <a name="gst-plugins-base-libs-gstrtspmessage.functions_details"></a><h2>Functions</h2>
@@ -300,139 +299,30 @@
 <a name="gst-rtsp-message-new"></a><h3>gst_rtsp_message_new ()</h3>
 <pre class="programlisting"><a class="link" href="gst-plugins-base-libs-gstrtspdefs.html#GstRTSPResult" title="enum GstRTSPResult"><span class="returnvalue">GstRTSPResult</span></a>
 gst_rtsp_message_new (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstrtspmessage.html#GstRTSPMessage" title="struct GstRTSPMessage"><span class="type">GstRTSPMessage</span></a> **msg</code></em>);</pre>
-<p>Create a new initialized <a class="link" href="gst-plugins-base-libs-gstrtspmessage.html#GstRTSPMessage" title="struct GstRTSPMessage"><span class="type">GstRTSPMessage</span></a>. Free with <a class="link" href="gst-plugins-base-libs-gstrtspmessage.html#gst-rtsp-message-free" title="gst_rtsp_message_free ()"><code class="function">gst_rtsp_message_free()</code></a>.</p>
-<div class="refsect3">
-<a name="gst-rtsp-message-new.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>msg</p></td>
-<td class="parameter_description"><p> a location for the new <a class="link" href="gst-plugins-base-libs-gstrtspmessage.html#GstRTSPMessage" title="struct GstRTSPMessage"><span class="type">GstRTSPMessage</span></a>. </p></td>
-<td class="parameter_annotations"><span class="annotation">[<acronym title="Parameter for returning results. Default is transfer full."><span class="acronym">out</span></acronym>][<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>]</span></td>
-</tr></tbody>
-</table></div>
-</div>
-<div class="refsect3">
-<a name="gst-rtsp-message-new.returns"></a><h4>Returns</h4>
-<p> a <a class="link" href="gst-plugins-base-libs-gstrtspdefs.html#GstRTSPResult" title="enum GstRTSPResult"><span class="type">GstRTSPResult</span></a>.</p>
-</div>
 </div>
 <hr>
 <div class="refsect2">
 <a name="gst-rtsp-message-init"></a><h3>gst_rtsp_message_init ()</h3>
 <pre class="programlisting"><a class="link" href="gst-plugins-base-libs-gstrtspdefs.html#GstRTSPResult" title="enum GstRTSPResult"><span class="returnvalue">GstRTSPResult</span></a>
 gst_rtsp_message_init (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstrtspmessage.html#GstRTSPMessage" title="struct GstRTSPMessage"><span class="type">GstRTSPMessage</span></a> *msg</code></em>);</pre>
-<p>Initialize <em class="parameter"><code>msg</code></em>
-. This function is mostly used when <em class="parameter"><code>msg</code></em>
- is allocated on the
-stack. The reverse operation of this is <a class="link" href="gst-plugins-base-libs-gstrtspmessage.html#gst-rtsp-message-unset" title="gst_rtsp_message_unset ()"><code class="function">gst_rtsp_message_unset()</code></a>.</p>
-<div class="refsect3">
-<a name="gst-rtsp-message-init.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>msg</p></td>
-<td class="parameter_description"><p>a <a class="link" href="gst-plugins-base-libs-gstrtspmessage.html#GstRTSPMessage" title="struct GstRTSPMessage"><span class="type">GstRTSPMessage</span></a></p></td>
-<td class="parameter_annotations"> </td>
-</tr></tbody>
-</table></div>
-</div>
-<div class="refsect3">
-<a name="gst-rtsp-message-init.returns"></a><h4>Returns</h4>
-<p> a <a class="link" href="gst-plugins-base-libs-gstrtspdefs.html#GstRTSPResult" title="enum GstRTSPResult"><span class="type">GstRTSPResult</span></a>.</p>
-</div>
 </div>
 <hr>
 <div class="refsect2">
 <a name="gst-rtsp-message-unset"></a><h3>gst_rtsp_message_unset ()</h3>
 <pre class="programlisting"><a class="link" href="gst-plugins-base-libs-gstrtspdefs.html#GstRTSPResult" title="enum GstRTSPResult"><span class="returnvalue">GstRTSPResult</span></a>
 gst_rtsp_message_unset (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstrtspmessage.html#GstRTSPMessage" title="struct GstRTSPMessage"><span class="type">GstRTSPMessage</span></a> *msg</code></em>);</pre>
-<p>Unset the contents of <em class="parameter"><code>msg</code></em>
- so that it becomes an uninitialized
-<a class="link" href="gst-plugins-base-libs-gstrtspmessage.html#GstRTSPMessage" title="struct GstRTSPMessage"><span class="type">GstRTSPMessage</span></a> again. This function is mostly used in combination with 
-<a class="link" href="gst-plugins-base-libs-gstrtspmessage.html#gst-rtsp-message-init-request" title="gst_rtsp_message_init_request ()"><code class="function">gst_rtsp_message_init_request()</code></a>, <a class="link" href="gst-plugins-base-libs-gstrtspmessage.html#gst-rtsp-message-init-response" title="gst_rtsp_message_init_response ()"><code class="function">gst_rtsp_message_init_response()</code></a> and
-<a class="link" href="gst-plugins-base-libs-gstrtspmessage.html#gst-rtsp-message-init-data" title="gst_rtsp_message_init_data ()"><code class="function">gst_rtsp_message_init_data()</code></a> on stack allocated <a class="link" href="gst-plugins-base-libs-gstrtspmessage.html#GstRTSPMessage" title="struct GstRTSPMessage"><span class="type">GstRTSPMessage</span></a> structures.</p>
-<div class="refsect3">
-<a name="gst-rtsp-message-unset.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>msg</p></td>
-<td class="parameter_description"><p>a <a class="link" href="gst-plugins-base-libs-gstrtspmessage.html#GstRTSPMessage" title="struct GstRTSPMessage"><span class="type">GstRTSPMessage</span></a></p></td>
-<td class="parameter_annotations"> </td>
-</tr></tbody>
-</table></div>
-</div>
-<div class="refsect3">
-<a name="gst-rtsp-message-unset.returns"></a><h4>Returns</h4>
-<p> <a class="link" href="gst-plugins-base-libs-gstrtspdefs.html#GST-RTSP-OK:CAPS"><span class="type">GST_RTSP_OK</span></a>.</p>
-</div>
 </div>
 <hr>
 <div class="refsect2">
 <a name="gst-rtsp-message-free"></a><h3>gst_rtsp_message_free ()</h3>
 <pre class="programlisting"><a class="link" href="gst-plugins-base-libs-gstrtspdefs.html#GstRTSPResult" title="enum GstRTSPResult"><span class="returnvalue">GstRTSPResult</span></a>
 gst_rtsp_message_free (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstrtspmessage.html#GstRTSPMessage" title="struct GstRTSPMessage"><span class="type">GstRTSPMessage</span></a> *msg</code></em>);</pre>
-<p>Free the memory used by <em class="parameter"><code>msg</code></em>
-.</p>
-<div class="refsect3">
-<a name="gst-rtsp-message-free.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>msg</p></td>
-<td class="parameter_description"><p>a <a class="link" href="gst-plugins-base-libs-gstrtspmessage.html#GstRTSPMessage" title="struct GstRTSPMessage"><span class="type">GstRTSPMessage</span></a></p></td>
-<td class="parameter_annotations"> </td>
-</tr></tbody>
-</table></div>
-</div>
-<div class="refsect3">
-<a name="gst-rtsp-message-free.returns"></a><h4>Returns</h4>
-<p> a <a class="link" href="gst-plugins-base-libs-gstrtspdefs.html#GstRTSPResult" title="enum GstRTSPResult"><span class="type">GstRTSPResult</span></a>.</p>
-</div>
 </div>
 <hr>
 <div class="refsect2">
 <a name="gst-rtsp-message-get-type"></a><h3>gst_rtsp_message_get_type ()</h3>
 <pre class="programlisting"><a class="link" href="gst-plugins-base-libs-gstrtspmessage.html#GstRTSPMsgType" title="enum GstRTSPMsgType"><span class="returnvalue">GstRTSPMsgType</span></a>
 gst_rtsp_message_get_type (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstrtspmessage.html#GstRTSPMessage" title="struct GstRTSPMessage"><span class="type">GstRTSPMessage</span></a> *msg</code></em>);</pre>
-<p>Get the message type of <em class="parameter"><code>msg</code></em>
-.</p>
-<div class="refsect3">
-<a name="gst-rtsp-message-get-type.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>msg</p></td>
-<td class="parameter_description"><p>a <a class="link" href="gst-plugins-base-libs-gstrtspmessage.html#GstRTSPMessage" title="struct GstRTSPMessage"><span class="type">GstRTSPMessage</span></a></p></td>
-<td class="parameter_annotations"> </td>
-</tr></tbody>
-</table></div>
-</div>
-<div class="refsect3">
-<a name="gst-rtsp-message-get-type.returns"></a><h4>Returns</h4>
-<p> the message type.</p>
-</div>
 </div>
 <hr>
 <div class="refsect2">
@@ -441,42 +331,6 @@
 gst_rtsp_message_new_request (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstrtspmessage.html#GstRTSPMessage" title="struct GstRTSPMessage"><span class="type">GstRTSPMessage</span></a> **msg</code></em>,
                               <em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstrtspdefs.html#GstRTSPMethod" title="enum GstRTSPMethod"><span class="type">GstRTSPMethod</span></a> method</code></em>,
                               <em class="parameter"><code>const <a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *uri</code></em>);</pre>
-<p>Create a new <a class="link" href="gst-plugins-base-libs-gstrtspmessage.html#GstRTSPMessage" title="struct GstRTSPMessage"><span class="type">GstRTSPMessage</span></a> with <em class="parameter"><code>method</code></em>
- and <em class="parameter"><code>uri</code></em>
- and store the result
-request message in <em class="parameter"><code>msg</code></em>
-. Free with <a class="link" href="gst-plugins-base-libs-gstrtspmessage.html#gst-rtsp-message-free" title="gst_rtsp_message_free ()"><code class="function">gst_rtsp_message_free()</code></a>.</p>
-<div class="refsect3">
-<a name="gst-rtsp-message-new-request.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>msg</p></td>
-<td class="parameter_description"><p> a location for the new <a class="link" href="gst-plugins-base-libs-gstrtspmessage.html#GstRTSPMessage" title="struct GstRTSPMessage"><span class="type">GstRTSPMessage</span></a>. </p></td>
-<td class="parameter_annotations"><span class="annotation">[<acronym title="Parameter for returning results. Default is transfer full."><span class="acronym">out</span></acronym>][<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>]</span></td>
-</tr>
-<tr>
-<td class="parameter_name"><p>method</p></td>
-<td class="parameter_description"><p>the request method to use</p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-<tr>
-<td class="parameter_name"><p>uri</p></td>
-<td class="parameter_description"><p> the uri of the request. </p></td>
-<td class="parameter_annotations"><span class="annotation">[<acronym title="Don't free data after the code is done."><span class="acronym">transfer none</span></acronym>]</span></td>
-</tr>
-</tbody>
-</table></div>
-</div>
-<div class="refsect3">
-<a name="gst-rtsp-message-new-request.returns"></a><h4>Returns</h4>
-<p> a <a class="link" href="gst-plugins-base-libs-gstrtspdefs.html#GstRTSPResult" title="enum GstRTSPResult"><span class="type">GstRTSPResult</span></a>.</p>
-</div>
 </div>
 <hr>
 <div class="refsect2">
@@ -485,43 +339,6 @@
 gst_rtsp_message_init_request (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstrtspmessage.html#GstRTSPMessage" title="struct GstRTSPMessage"><span class="type">GstRTSPMessage</span></a> *msg</code></em>,
                                <em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstrtspdefs.html#GstRTSPMethod" title="enum GstRTSPMethod"><span class="type">GstRTSPMethod</span></a> method</code></em>,
                                <em class="parameter"><code>const <a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *uri</code></em>);</pre>
-<p>Initialize <em class="parameter"><code>msg</code></em>
- as a request message with <em class="parameter"><code>method</code></em>
- and <em class="parameter"><code>uri</code></em>
-. To clear <em class="parameter"><code>msg</code></em>
-
-again, use <a class="link" href="gst-plugins-base-libs-gstrtspmessage.html#gst-rtsp-message-unset" title="gst_rtsp_message_unset ()"><code class="function">gst_rtsp_message_unset()</code></a>.</p>
-<div class="refsect3">
-<a name="gst-rtsp-message-init-request.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>msg</p></td>
-<td class="parameter_description"><p>a <a class="link" href="gst-plugins-base-libs-gstrtspmessage.html#GstRTSPMessage" title="struct GstRTSPMessage"><span class="type">GstRTSPMessage</span></a></p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-<tr>
-<td class="parameter_name"><p>method</p></td>
-<td class="parameter_description"><p>the request method to use</p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-<tr>
-<td class="parameter_name"><p>uri</p></td>
-<td class="parameter_description"><p> the uri of the request. </p></td>
-<td class="parameter_annotations"><span class="annotation">[<acronym title="Don't free data after the code is done."><span class="acronym">transfer none</span></acronym>]</span></td>
-</tr>
-</tbody>
-</table></div>
-</div>
-<div class="refsect3">
-<a name="gst-rtsp-message-init-request.returns"></a><h4>Returns</h4>
-<p> a <a class="link" href="gst-plugins-base-libs-gstrtspdefs.html#GstRTSPResult" title="enum GstRTSPResult"><span class="type">GstRTSPResult</span></a>.</p>
-</div>
 </div>
 <hr>
 <div class="refsect2">
@@ -531,52 +348,6 @@
                                 <em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstrtspdefs.html#GstRTSPMethod" title="enum GstRTSPMethod"><span class="type">GstRTSPMethod</span></a> *method</code></em>,
                                 <em class="parameter"><code>const <a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#gchar"><span class="type">gchar</span></a> **uri</code></em>,
                                 <em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstrtspdefs.html#GstRTSPVersion" title="enum GstRTSPVersion"><span class="type">GstRTSPVersion</span></a> *version</code></em>);</pre>
-<p>Parse the request message <em class="parameter"><code>msg</code></em>
- and store the values <em class="parameter"><code>method</code></em>
-, <em class="parameter"><code>uri</code></em>
- and
-<em class="parameter"><code>version</code></em>
-. The result locations can be <a href="/usr/share/gtk-doc/html/glibglib-Standard-Macros.html#NULL:CAPS"><span class="type">NULL</span></a> if one is not interested in its
-value.</p>
-<p><em class="parameter"><code>uri</code></em>
- remains valid for as long as <em class="parameter"><code>msg</code></em>
- is valid and unchanged.</p>
-<div class="refsect3">
-<a name="gst-rtsp-message-parse-request.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>msg</p></td>
-<td class="parameter_description"><p>a <a class="link" href="gst-plugins-base-libs-gstrtspmessage.html#GstRTSPMessage" title="struct GstRTSPMessage"><span class="type">GstRTSPMessage</span></a></p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-<tr>
-<td class="parameter_name"><p>method</p></td>
-<td class="parameter_description"><p> location to hold the method. </p></td>
-<td class="parameter_annotations"><span class="annotation">[<acronym title="Parameter for returning results. Default is transfer full."><span class="acronym">out</span></acronym>][<acronym title="NULL is OK, both for passing and for returning."><span class="acronym">allow-none</span></acronym>]</span></td>
-</tr>
-<tr>
-<td class="parameter_name"><p>uri</p></td>
-<td class="parameter_description"><p> location to hold the uri. </p></td>
-<td class="parameter_annotations"><span class="annotation">[<acronym title="Parameter for returning results. Default is transfer full."><span class="acronym">out</span></acronym>][<acronym title="NULL is OK, both for passing and for returning."><span class="acronym">allow-none</span></acronym>]</span></td>
-</tr>
-<tr>
-<td class="parameter_name"><p>version</p></td>
-<td class="parameter_description"><p> location to hold the version. </p></td>
-<td class="parameter_annotations"><span class="annotation">[<acronym title="Parameter for returning results. Default is transfer full."><span class="acronym">out</span></acronym>][<acronym title="NULL is OK, both for passing and for returning."><span class="acronym">allow-none</span></acronym>]</span></td>
-</tr>
-</tbody>
-</table></div>
-</div>
-<div class="refsect3">
-<a name="gst-rtsp-message-parse-request.returns"></a><h4>Returns</h4>
-<p> a <a class="link" href="gst-plugins-base-libs-gstrtspdefs.html#GstRTSPResult" title="enum GstRTSPResult"><span class="type">GstRTSPResult</span></a>.</p>
-</div>
 </div>
 <hr>
 <div class="refsect2">
@@ -586,53 +357,6 @@
                                <em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstrtspdefs.html#GstRTSPStatusCode" title="enum GstRTSPStatusCode"><span class="type">GstRTSPStatusCode</span></a> code</code></em>,
                                <em class="parameter"><code>const <a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *reason</code></em>,
                                <em class="parameter"><code>const <a class="link" href="gst-plugins-base-libs-gstrtspmessage.html#GstRTSPMessage" title="struct GstRTSPMessage"><span class="type">GstRTSPMessage</span></a> *request</code></em>);</pre>
-<p>Create a new response <a class="link" href="gst-plugins-base-libs-gstrtspmessage.html#GstRTSPMessage" title="struct GstRTSPMessage"><span class="type">GstRTSPMessage</span></a> with <em class="parameter"><code>code</code></em>
- and <em class="parameter"><code>reason</code></em>
- and store the
-result message in <em class="parameter"><code>msg</code></em>
-. Free with <a class="link" href="gst-plugins-base-libs-gstrtspmessage.html#gst-rtsp-message-free" title="gst_rtsp_message_free ()"><code class="function">gst_rtsp_message_free()</code></a>.</p>
-<p>When <em class="parameter"><code>reason</code></em>
- is <a href="/usr/share/gtk-doc/html/glibglib-Standard-Macros.html#NULL:CAPS"><span class="type">NULL</span></a>, the default reason for <em class="parameter"><code>code</code></em>
- will be used.</p>
-<p>When <em class="parameter"><code>request</code></em>
- is not <a href="/usr/share/gtk-doc/html/glibglib-Standard-Macros.html#NULL:CAPS"><span class="type">NULL</span></a>, the relevant headers will be copied to the new
-response message.</p>
-<div class="refsect3">
-<a name="gst-rtsp-message-new-response.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>msg</p></td>
-<td class="parameter_description"><p> a location for the new <a class="link" href="gst-plugins-base-libs-gstrtspmessage.html#GstRTSPMessage" title="struct GstRTSPMessage"><span class="type">GstRTSPMessage</span></a>. </p></td>
-<td class="parameter_annotations"><span class="annotation">[<acronym title="Parameter for returning results. Default is transfer full."><span class="acronym">out</span></acronym>][<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>]</span></td>
-</tr>
-<tr>
-<td class="parameter_name"><p>code</p></td>
-<td class="parameter_description"><p>the status code</p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-<tr>
-<td class="parameter_name"><p>reason</p></td>
-<td class="parameter_description"><p> the status reason or <a href="/usr/share/gtk-doc/html/glibglib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a>. </p></td>
-<td class="parameter_annotations"><span class="annotation">[<acronym title="Don't free data after the code is done."><span class="acronym">transfer none</span></acronym>][<acronym title="NULL is OK, both for passing and for returning."><span class="acronym">allow-none</span></acronym>]</span></td>
-</tr>
-<tr>
-<td class="parameter_name"><p>request</p></td>
-<td class="parameter_description"><p> the request that triggered the response or <a href="/usr/share/gtk-doc/html/glibglib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a>. </p></td>
-<td class="parameter_annotations"><span class="annotation">[<acronym title="Don't free data after the code is done."><span class="acronym">transfer none</span></acronym>][<acronym title="NULL is OK, both for passing and for returning."><span class="acronym">allow-none</span></acronym>]</span></td>
-</tr>
-</tbody>
-</table></div>
-</div>
-<div class="refsect3">
-<a name="gst-rtsp-message-new-response.returns"></a><h4>Returns</h4>
-<p> a <a class="link" href="gst-plugins-base-libs-gstrtspdefs.html#GstRTSPResult" title="enum GstRTSPResult"><span class="type">GstRTSPResult</span></a>.</p>
-</div>
 </div>
 <hr>
 <div class="refsect2">
@@ -642,52 +366,6 @@
                                 <em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstrtspdefs.html#GstRTSPStatusCode" title="enum GstRTSPStatusCode"><span class="type">GstRTSPStatusCode</span></a> code</code></em>,
                                 <em class="parameter"><code>const <a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *reason</code></em>,
                                 <em class="parameter"><code>const <a class="link" href="gst-plugins-base-libs-gstrtspmessage.html#GstRTSPMessage" title="struct GstRTSPMessage"><span class="type">GstRTSPMessage</span></a> *request</code></em>);</pre>
-<p>Initialize <em class="parameter"><code>msg</code></em>
- with <em class="parameter"><code>code</code></em>
- and <em class="parameter"><code>reason</code></em>
-.</p>
-<p>When <em class="parameter"><code>reason</code></em>
- is <a href="/usr/share/gtk-doc/html/glibglib-Standard-Macros.html#NULL:CAPS"><span class="type">NULL</span></a>, the default reason for <em class="parameter"><code>code</code></em>
- will be used.</p>
-<p>When <em class="parameter"><code>request</code></em>
- is not <a href="/usr/share/gtk-doc/html/glibglib-Standard-Macros.html#NULL:CAPS"><span class="type">NULL</span></a>, the relevant headers will be copied to the new
-response message.</p>
-<div class="refsect3">
-<a name="gst-rtsp-message-init-response.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>msg</p></td>
-<td class="parameter_description"><p>a <a class="link" href="gst-plugins-base-libs-gstrtspmessage.html#GstRTSPMessage" title="struct GstRTSPMessage"><span class="type">GstRTSPMessage</span></a></p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-<tr>
-<td class="parameter_name"><p>code</p></td>
-<td class="parameter_description"><p>the status code</p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-<tr>
-<td class="parameter_name"><p>reason</p></td>
-<td class="parameter_description"><p> the status reason or <a href="/usr/share/gtk-doc/html/glibglib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a>. </p></td>
-<td class="parameter_annotations"><span class="annotation">[<acronym title="Don't free data after the code is done."><span class="acronym">transfer none</span></acronym>][<acronym title="NULL is OK, both for passing and for returning."><span class="acronym">allow-none</span></acronym>]</span></td>
-</tr>
-<tr>
-<td class="parameter_name"><p>request</p></td>
-<td class="parameter_description"><p> the request that triggered the response or <a href="/usr/share/gtk-doc/html/glibglib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a>. </p></td>
-<td class="parameter_annotations"><span class="annotation">[<acronym title="Don't free data after the code is done."><span class="acronym">transfer none</span></acronym>][<acronym title="NULL is OK, both for passing and for returning."><span class="acronym">allow-none</span></acronym>]</span></td>
-</tr>
-</tbody>
-</table></div>
-</div>
-<div class="refsect3">
-<a name="gst-rtsp-message-init-response.returns"></a><h4>Returns</h4>
-<p> a <a class="link" href="gst-plugins-base-libs-gstrtspdefs.html#GstRTSPResult" title="enum GstRTSPResult"><span class="type">GstRTSPResult</span></a>.</p>
-</div>
 </div>
 <hr>
 <div class="refsect2">
@@ -697,52 +375,6 @@
                                  <em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstrtspdefs.html#GstRTSPStatusCode" title="enum GstRTSPStatusCode"><span class="type">GstRTSPStatusCode</span></a> *code</code></em>,
                                  <em class="parameter"><code>const <a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#gchar"><span class="type">gchar</span></a> **reason</code></em>,
                                  <em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstrtspdefs.html#GstRTSPVersion" title="enum GstRTSPVersion"><span class="type">GstRTSPVersion</span></a> *version</code></em>);</pre>
-<p>Parse the response message <em class="parameter"><code>msg</code></em>
- and store the values <em class="parameter"><code>code</code></em>
-, <em class="parameter"><code>reason</code></em>
- and
-<em class="parameter"><code>version</code></em>
-. The result locations can be <a href="/usr/share/gtk-doc/html/glibglib-Standard-Macros.html#NULL:CAPS"><span class="type">NULL</span></a> if one is not interested in its
-value.</p>
-<p><em class="parameter"><code>reason</code></em>
- remains valid for as long as <em class="parameter"><code>msg</code></em>
- is valid and unchanged.</p>
-<div class="refsect3">
-<a name="gst-rtsp-message-parse-response.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>msg</p></td>
-<td class="parameter_description"><p>a <a class="link" href="gst-plugins-base-libs-gstrtspmessage.html#GstRTSPMessage" title="struct GstRTSPMessage"><span class="type">GstRTSPMessage</span></a></p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-<tr>
-<td class="parameter_name"><p>code</p></td>
-<td class="parameter_description"><p> location to hold the status code. </p></td>
-<td class="parameter_annotations"><span class="annotation">[<acronym title="Parameter for returning results. Default is transfer full."><span class="acronym">out</span></acronym>][<acronym title="NULL is OK, both for passing and for returning."><span class="acronym">allow-none</span></acronym>]</span></td>
-</tr>
-<tr>
-<td class="parameter_name"><p>reason</p></td>
-<td class="parameter_description"><p> location to hold the status reason. </p></td>
-<td class="parameter_annotations"><span class="annotation">[<acronym title="Parameter for returning results. Default is transfer full."><span class="acronym">out</span></acronym>][<acronym title="NULL is OK, both for passing and for returning."><span class="acronym">allow-none</span></acronym>]</span></td>
-</tr>
-<tr>
-<td class="parameter_name"><p>version</p></td>
-<td class="parameter_description"><p> location to hold the version. </p></td>
-<td class="parameter_annotations"><span class="annotation">[<acronym title="Parameter for returning results. Default is transfer full."><span class="acronym">out</span></acronym>][<acronym title="NULL is OK, both for passing and for returning."><span class="acronym">allow-none</span></acronym>]</span></td>
-</tr>
-</tbody>
-</table></div>
-</div>
-<div class="refsect3">
-<a name="gst-rtsp-message-parse-response.returns"></a><h4>Returns</h4>
-<p> a <a class="link" href="gst-plugins-base-libs-gstrtspdefs.html#GstRTSPResult" title="enum GstRTSPResult"><span class="type">GstRTSPResult</span></a>.</p>
-</div>
 </div>
 <hr>
 <div class="refsect2">
@@ -750,36 +382,6 @@
 <pre class="programlisting"><a class="link" href="gst-plugins-base-libs-gstrtspdefs.html#GstRTSPResult" title="enum GstRTSPResult"><span class="returnvalue">GstRTSPResult</span></a>
 gst_rtsp_message_new_data (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstrtspmessage.html#GstRTSPMessage" title="struct GstRTSPMessage"><span class="type">GstRTSPMessage</span></a> **msg</code></em>,
                            <em class="parameter"><code><a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#guint8"><span class="type">guint8</span></a> channel</code></em>);</pre>
-<p>Create a new data <a class="link" href="gst-plugins-base-libs-gstrtspmessage.html#GstRTSPMessage" title="struct GstRTSPMessage"><span class="type">GstRTSPMessage</span></a> with <em class="parameter"><code>channel</code></em>
- and store the
-result message in <em class="parameter"><code>msg</code></em>
-. Free with <a class="link" href="gst-plugins-base-libs-gstrtspmessage.html#gst-rtsp-message-free" title="gst_rtsp_message_free ()"><code class="function">gst_rtsp_message_free()</code></a>.</p>
-<div class="refsect3">
-<a name="gst-rtsp-message-new-data.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>msg</p></td>
-<td class="parameter_description"><p> a location for the new <a class="link" href="gst-plugins-base-libs-gstrtspmessage.html#GstRTSPMessage" title="struct GstRTSPMessage"><span class="type">GstRTSPMessage</span></a>. </p></td>
-<td class="parameter_annotations"><span class="annotation">[<acronym title="Parameter for returning results. Default is transfer full."><span class="acronym">out</span></acronym>][<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>]</span></td>
-</tr>
-<tr>
-<td class="parameter_name"><p>channel</p></td>
-<td class="parameter_description"><p>the channel</p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-</tbody>
-</table></div>
-</div>
-<div class="refsect3">
-<a name="gst-rtsp-message-new-data.returns"></a><h4>Returns</h4>
-<p> a <a class="link" href="gst-plugins-base-libs-gstrtspdefs.html#GstRTSPResult" title="enum GstRTSPResult"><span class="type">GstRTSPResult</span></a>.</p>
-</div>
 </div>
 <hr>
 <div class="refsect2">
@@ -787,34 +389,6 @@
 <pre class="programlisting"><a class="link" href="gst-plugins-base-libs-gstrtspdefs.html#GstRTSPResult" title="enum GstRTSPResult"><span class="returnvalue">GstRTSPResult</span></a>
 gst_rtsp_message_init_data (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstrtspmessage.html#GstRTSPMessage" title="struct GstRTSPMessage"><span class="type">GstRTSPMessage</span></a> *msg</code></em>,
                             <em class="parameter"><code><a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#guint8"><span class="type">guint8</span></a> channel</code></em>);</pre>
-<p>Initialize a new data <a class="link" href="gst-plugins-base-libs-gstrtspmessage.html#GstRTSPMessage" title="struct GstRTSPMessage"><span class="type">GstRTSPMessage</span></a> for <em class="parameter"><code>channel</code></em>
-.</p>
-<div class="refsect3">
-<a name="gst-rtsp-message-init-data.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>msg</p></td>
-<td class="parameter_description"><p>a <a class="link" href="gst-plugins-base-libs-gstrtspmessage.html#GstRTSPMessage" title="struct GstRTSPMessage"><span class="type">GstRTSPMessage</span></a></p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-<tr>
-<td class="parameter_name"><p>channel</p></td>
-<td class="parameter_description"><p>a channel</p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-</tbody>
-</table></div>
-</div>
-<div class="refsect3">
-<a name="gst-rtsp-message-init-data.returns"></a><h4>Returns</h4>
-<p> a <a class="link" href="gst-plugins-base-libs-gstrtspdefs.html#GstRTSPResult" title="enum GstRTSPResult"><span class="type">GstRTSPResult</span></a>.</p>
-</div>
 </div>
 <hr>
 <div class="refsect2">
@@ -822,35 +396,6 @@
 <pre class="programlisting"><a class="link" href="gst-plugins-base-libs-gstrtspdefs.html#GstRTSPResult" title="enum GstRTSPResult"><span class="returnvalue">GstRTSPResult</span></a>
 gst_rtsp_message_parse_data (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstrtspmessage.html#GstRTSPMessage" title="struct GstRTSPMessage"><span class="type">GstRTSPMessage</span></a> *msg</code></em>,
                              <em class="parameter"><code><a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#guint8"><span class="type">guint8</span></a> *channel</code></em>);</pre>
-<p>Parse the data message <em class="parameter"><code>msg</code></em>
- and store the channel in <em class="parameter"><code>channel</code></em>
-.</p>
-<div class="refsect3">
-<a name="gst-rtsp-message-parse-data.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>msg</p></td>
-<td class="parameter_description"><p>a <a class="link" href="gst-plugins-base-libs-gstrtspmessage.html#GstRTSPMessage" title="struct GstRTSPMessage"><span class="type">GstRTSPMessage</span></a></p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-<tr>
-<td class="parameter_name"><p>channel</p></td>
-<td class="parameter_description"><p> location to hold the channel. </p></td>
-<td class="parameter_annotations"><span class="annotation">[<acronym title="Parameter for returning results. Default is transfer full."><span class="acronym">out</span></acronym>]</span></td>
-</tr>
-</tbody>
-</table></div>
-</div>
-<div class="refsect3">
-<a name="gst-rtsp-message-parse-data.returns"></a><h4>Returns</h4>
-<p> a <a class="link" href="gst-plugins-base-libs-gstrtspdefs.html#GstRTSPResult" title="enum GstRTSPResult"><span class="type">GstRTSPResult</span></a>.</p>
-</div>
 </div>
 <hr>
 <div class="refsect2">
@@ -859,43 +404,6 @@
 gst_rtsp_message_add_header (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstrtspmessage.html#GstRTSPMessage" title="struct GstRTSPMessage"><span class="type">GstRTSPMessage</span></a> *msg</code></em>,
                              <em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstrtspdefs.html#GstRTSPHeaderField" title="enum GstRTSPHeaderField"><span class="type">GstRTSPHeaderField</span></a> field</code></em>,
                              <em class="parameter"><code>const <a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *value</code></em>);</pre>
-<p>Add a header with key <em class="parameter"><code>field</code></em>
- and <em class="parameter"><code>value</code></em>
- to <em class="parameter"><code>msg</code></em>
-. This function takes a copy
-of <em class="parameter"><code>value</code></em>
-.</p>
-<div class="refsect3">
-<a name="gst-rtsp-message-add-header.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>msg</p></td>
-<td class="parameter_description"><p>a <a class="link" href="gst-plugins-base-libs-gstrtspmessage.html#GstRTSPMessage" title="struct GstRTSPMessage"><span class="type">GstRTSPMessage</span></a></p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-<tr>
-<td class="parameter_name"><p>field</p></td>
-<td class="parameter_description"><p>a <a class="link" href="gst-plugins-base-libs-gstrtspdefs.html#GstRTSPHeaderField" title="enum GstRTSPHeaderField"><span class="type">GstRTSPHeaderField</span></a></p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-<tr>
-<td class="parameter_name"><p>value</p></td>
-<td class="parameter_description"><p> the value of the header. </p></td>
-<td class="parameter_annotations"><span class="annotation">[<acronym title="Don't free data after the code is done."><span class="acronym">transfer none</span></acronym>]</span></td>
-</tr>
-</tbody>
-</table></div>
-</div>
-<div class="refsect3">
-<a name="gst-rtsp-message-add-header.returns"></a><h4>Returns</h4>
-<p> a <a class="link" href="gst-plugins-base-libs-gstrtspdefs.html#GstRTSPResult" title="enum GstRTSPResult"><span class="type">GstRTSPResult</span></a>.</p>
-</div>
 </div>
 <hr>
 <div class="refsect2">
@@ -904,43 +412,6 @@
 gst_rtsp_message_take_header (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstrtspmessage.html#GstRTSPMessage" title="struct GstRTSPMessage"><span class="type">GstRTSPMessage</span></a> *msg</code></em>,
                               <em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstrtspdefs.html#GstRTSPHeaderField" title="enum GstRTSPHeaderField"><span class="type">GstRTSPHeaderField</span></a> field</code></em>,
                               <em class="parameter"><code><a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *value</code></em>);</pre>
-<p>Add a header with key <em class="parameter"><code>field</code></em>
- and <em class="parameter"><code>value</code></em>
- to <em class="parameter"><code>msg</code></em>
-. This function takes
-ownership of <em class="parameter"><code>value</code></em>
-.</p>
-<div class="refsect3">
-<a name="gst-rtsp-message-take-header.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>msg</p></td>
-<td class="parameter_description"><p>a <a class="link" href="gst-plugins-base-libs-gstrtspmessage.html#GstRTSPMessage" title="struct GstRTSPMessage"><span class="type">GstRTSPMessage</span></a></p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-<tr>
-<td class="parameter_name"><p>field</p></td>
-<td class="parameter_description"><p>a <a class="link" href="gst-plugins-base-libs-gstrtspdefs.html#GstRTSPHeaderField" title="enum GstRTSPHeaderField"><span class="type">GstRTSPHeaderField</span></a></p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-<tr>
-<td class="parameter_name"><p>value</p></td>
-<td class="parameter_description"><p> the value of the header. </p></td>
-<td class="parameter_annotations"><span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>]</span></td>
-</tr>
-</tbody>
-</table></div>
-</div>
-<div class="refsect3">
-<a name="gst-rtsp-message-take-header.returns"></a><h4>Returns</h4>
-<p> a <a class="link" href="gst-plugins-base-libs-gstrtspdefs.html#GstRTSPResult" title="enum GstRTSPResult"><span class="type">GstRTSPResult</span></a>.</p>
-</div>
 </div>
 <hr>
 <div class="refsect2">
@@ -949,43 +420,6 @@
 gst_rtsp_message_remove_header (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstrtspmessage.html#GstRTSPMessage" title="struct GstRTSPMessage"><span class="type">GstRTSPMessage</span></a> *msg</code></em>,
                                 <em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstrtspdefs.html#GstRTSPHeaderField" title="enum GstRTSPHeaderField"><span class="type">GstRTSPHeaderField</span></a> field</code></em>,
                                 <em class="parameter"><code><a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#gint"><span class="type">gint</span></a> indx</code></em>);</pre>
-<p>Remove the <em class="parameter"><code>indx</code></em>
- header with key <em class="parameter"><code>field</code></em>
- from <em class="parameter"><code>msg</code></em>
-. If <em class="parameter"><code>indx</code></em>
- equals -1, all
-headers will be removed.</p>
-<div class="refsect3">
-<a name="gst-rtsp-message-remove-header.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>msg</p></td>
-<td class="parameter_description"><p>a <a class="link" href="gst-plugins-base-libs-gstrtspmessage.html#GstRTSPMessage" title="struct GstRTSPMessage"><span class="type">GstRTSPMessage</span></a></p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-<tr>
-<td class="parameter_name"><p>field</p></td>
-<td class="parameter_description"><p>a <a class="link" href="gst-plugins-base-libs-gstrtspdefs.html#GstRTSPHeaderField" title="enum GstRTSPHeaderField"><span class="type">GstRTSPHeaderField</span></a></p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-<tr>
-<td class="parameter_name"><p>indx</p></td>
-<td class="parameter_description"><p>the index of the header</p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-</tbody>
-</table></div>
-</div>
-<div class="refsect3">
-<a name="gst-rtsp-message-remove-header.returns"></a><h4>Returns</h4>
-<p> a <a class="link" href="gst-plugins-base-libs-gstrtspdefs.html#GstRTSPResult" title="enum GstRTSPResult"><span class="type">GstRTSPResult</span></a>.</p>
-</div>
 </div>
 <hr>
 <div class="refsect2">
@@ -995,51 +429,6 @@
                              <em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstrtspdefs.html#GstRTSPHeaderField" title="enum GstRTSPHeaderField"><span class="type">GstRTSPHeaderField</span></a> field</code></em>,
                              <em class="parameter"><code><a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#gchar"><span class="type">gchar</span></a> **value</code></em>,
                              <em class="parameter"><code><a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#gint"><span class="type">gint</span></a> indx</code></em>);</pre>
-<p>Get the <em class="parameter"><code>indx</code></em>
- header value with key <em class="parameter"><code>field</code></em>
- from <em class="parameter"><code>msg</code></em>
-. The result in <em class="parameter"><code>value</code></em>
-
-stays valid as long as it remains present in <em class="parameter"><code>msg</code></em>
-.</p>
-<div class="refsect3">
-<a name="gst-rtsp-message-get-header.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>msg</p></td>
-<td class="parameter_description"><p>a <a class="link" href="gst-plugins-base-libs-gstrtspmessage.html#GstRTSPMessage" title="struct GstRTSPMessage"><span class="type">GstRTSPMessage</span></a></p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-<tr>
-<td class="parameter_name"><p>field</p></td>
-<td class="parameter_description"><p>a <a class="link" href="gst-plugins-base-libs-gstrtspdefs.html#GstRTSPHeaderField" title="enum GstRTSPHeaderField"><span class="type">GstRTSPHeaderField</span></a></p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-<tr>
-<td class="parameter_name"><p>value</p></td>
-<td class="parameter_description"><p> pointer to hold the result. </p></td>
-<td class="parameter_annotations"><span class="annotation">[<acronym title="Parameter for returning results. Default is transfer full."><span class="acronym">out</span></acronym>][<acronym title="Don't free data after the code is done."><span class="acronym">transfer none</span></acronym>]</span></td>
-</tr>
-<tr>
-<td class="parameter_name"><p>indx</p></td>
-<td class="parameter_description"><p>the index of the header</p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-</tbody>
-</table></div>
-</div>
-<div class="refsect3">
-<a name="gst-rtsp-message-get-header.returns"></a><h4>Returns</h4>
-<p> <a class="link" href="gst-plugins-base-libs-gstrtspdefs.html#GST-RTSP-OK:CAPS"><span class="type">GST_RTSP_OK</span></a> when <em class="parameter"><code>field</code></em>
-was found, <a class="link" href="gst-plugins-base-libs-gstrtspdefs.html#GST-RTSP-ENOTIMPL:CAPS"><span class="type">GST_RTSP_ENOTIMPL</span></a> if the key
-was not found.</p>
-</div>
 </div>
 <hr>
 <div class="refsect2">
@@ -1048,44 +437,6 @@
 gst_rtsp_message_add_header_by_name (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstrtspmessage.html#GstRTSPMessage" title="struct GstRTSPMessage"><span class="type">GstRTSPMessage</span></a> *msg</code></em>,
                                      <em class="parameter"><code>const <a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *header</code></em>,
                                      <em class="parameter"><code>const <a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *value</code></em>);</pre>
-<p>Add a header with key <em class="parameter"><code>header</code></em>
- and <em class="parameter"><code>value</code></em>
- to <em class="parameter"><code>msg</code></em>
-. This function takes a copy
-of <em class="parameter"><code>value</code></em>
-.</p>
-<div class="refsect3">
-<a name="gst-rtsp-message-add-header-by-name.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>msg</p></td>
-<td class="parameter_description"><p>a <a class="link" href="gst-plugins-base-libs-gstrtspmessage.html#GstRTSPMessage" title="struct GstRTSPMessage"><span class="type">GstRTSPMessage</span></a></p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-<tr>
-<td class="parameter_name"><p>header</p></td>
-<td class="parameter_description"><p> header string. </p></td>
-<td class="parameter_annotations"><span class="annotation">[<acronym title="Don't free data after the code is done."><span class="acronym">transfer none</span></acronym>]</span></td>
-</tr>
-<tr>
-<td class="parameter_name"><p>value</p></td>
-<td class="parameter_description"><p> the value of the header. </p></td>
-<td class="parameter_annotations"><span class="annotation">[<acronym title="Don't free data after the code is done."><span class="acronym">transfer none</span></acronym>]</span></td>
-</tr>
-</tbody>
-</table></div>
-</div>
-<div class="refsect3">
-<a name="gst-rtsp-message-add-header-by-name.returns"></a><h4>Returns</h4>
-<p> a <a class="link" href="gst-plugins-base-libs-gstrtspdefs.html#GstRTSPResult" title="enum GstRTSPResult"><span class="type">GstRTSPResult</span></a>.</p>
-</div>
-<p class="since">Since: 1.6</p>
 </div>
 <hr>
 <div class="refsect2">
@@ -1094,45 +445,6 @@
 gst_rtsp_message_take_header_by_name (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstrtspmessage.html#GstRTSPMessage" title="struct GstRTSPMessage"><span class="type">GstRTSPMessage</span></a> *msg</code></em>,
                                       <em class="parameter"><code>const <a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *header</code></em>,
                                       <em class="parameter"><code><a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *value</code></em>);</pre>
-<p>Add a header with key <em class="parameter"><code>header</code></em>
- and <em class="parameter"><code>value</code></em>
- to <em class="parameter"><code>msg</code></em>
-. This function takes
-ownership of <em class="parameter"><code>value</code></em>
-, but not of <em class="parameter"><code>header</code></em>
-.</p>
-<div class="refsect3">
-<a name="gst-rtsp-message-take-header-by-name.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>msg</p></td>
-<td class="parameter_description"><p>a <a class="link" href="gst-plugins-base-libs-gstrtspmessage.html#GstRTSPMessage" title="struct GstRTSPMessage"><span class="type">GstRTSPMessage</span></a></p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-<tr>
-<td class="parameter_name"><p>header</p></td>
-<td class="parameter_description"><p> a header string. </p></td>
-<td class="parameter_annotations"><span class="annotation">[<acronym title="Don't free data after the code is done."><span class="acronym">transfer none</span></acronym>]</span></td>
-</tr>
-<tr>
-<td class="parameter_name"><p>value</p></td>
-<td class="parameter_description"><p> the value of the header. </p></td>
-<td class="parameter_annotations"><span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>]</span></td>
-</tr>
-</tbody>
-</table></div>
-</div>
-<div class="refsect3">
-<a name="gst-rtsp-message-take-header-by-name.returns"></a><h4>Returns</h4>
-<p> a <a class="link" href="gst-plugins-base-libs-gstrtspdefs.html#GstRTSPResult" title="enum GstRTSPResult"><span class="type">GstRTSPResult</span></a>.</p>
-</div>
-<p class="since">Since: 1.6</p>
 </div>
 <hr>
 <div class="refsect2">
@@ -1142,44 +454,6 @@
                                (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstrtspmessage.html#GstRTSPMessage" title="struct GstRTSPMessage"><span class="type">GstRTSPMessage</span></a> *msg</code></em>,
                                 <em class="parameter"><code>const <a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *header</code></em>,
                                 <em class="parameter"><code><a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#gint"><span class="type">gint</span></a> index</code></em>);</pre>
-<p>Remove the <em class="parameter"><code>index</code></em>
- header with key <em class="parameter"><code>header</code></em>
- from <em class="parameter"><code>msg</code></em>
-. If <em class="parameter"><code>index</code></em>
- equals -1,
-all matching headers will be removed.</p>
-<div class="refsect3">
-<a name="gst-rtsp-message-remove-header-by-name.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>msg</p></td>
-<td class="parameter_description"><p>a <a class="link" href="gst-plugins-base-libs-gstrtspmessage.html#GstRTSPMessage" title="struct GstRTSPMessage"><span class="type">GstRTSPMessage</span></a></p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-<tr>
-<td class="parameter_name"><p>header</p></td>
-<td class="parameter_description"><p>the header string</p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-<tr>
-<td class="parameter_name"><p>index</p></td>
-<td class="parameter_description"><p>the index of the header</p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-</tbody>
-</table></div>
-</div>
-<div class="refsect3">
-<a name="gst-rtsp-message-remove-header-by-name.returns"></a><h4>Returns</h4>
-<p> a <a class="link" href="gst-plugins-base-libs-gstrtspdefs.html#GstRTSPResult" title="enum GstRTSPResult"><span class="type">GstRTSPResult</span></a></p>
-</div>
-<p class="since">Since: 1.6</p>
 </div>
 <hr>
 <div class="refsect2">
@@ -1189,52 +463,6 @@
                                      <em class="parameter"><code>const <a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *header</code></em>,
                                      <em class="parameter"><code><a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#gchar"><span class="type">gchar</span></a> **value</code></em>,
                                      <em class="parameter"><code><a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#gint"><span class="type">gint</span></a> index</code></em>);</pre>
-<p>Get the <em class="parameter"><code>index</code></em>
- header value with key <em class="parameter"><code>header</code></em>
- from <em class="parameter"><code>msg</code></em>
-. The result in <em class="parameter"><code>value</code></em>
-
-stays valid as long as it remains present in <em class="parameter"><code>msg</code></em>
-.</p>
-<div class="refsect3">
-<a name="gst-rtsp-message-get-header-by-name.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>msg</p></td>
-<td class="parameter_description"><p>a <a class="link" href="gst-plugins-base-libs-gstrtspmessage.html#GstRTSPMessage" title="struct GstRTSPMessage"><span class="type">GstRTSPMessage</span></a></p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-<tr>
-<td class="parameter_name"><p>header</p></td>
-<td class="parameter_description"><p>a <a class="link" href="gst-plugins-base-libs-gstrtspdefs.html#GstRTSPHeaderField" title="enum GstRTSPHeaderField"><span class="type">GstRTSPHeaderField</span></a></p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-<tr>
-<td class="parameter_name"><p>value</p></td>
-<td class="parameter_description"><p> pointer to hold the result. </p></td>
-<td class="parameter_annotations"><span class="annotation">[<acronym title="Parameter for returning results. Default is transfer full."><span class="acronym">out</span></acronym>][<acronym title="Don't free data after the code is done."><span class="acronym">transfer none</span></acronym>]</span></td>
-</tr>
-<tr>
-<td class="parameter_name"><p>index</p></td>
-<td class="parameter_description"><p>the index of the header</p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-</tbody>
-</table></div>
-</div>
-<div class="refsect3">
-<a name="gst-rtsp-message-get-header-by-name.returns"></a><h4>Returns</h4>
-<p> <a class="link" href="gst-plugins-base-libs-gstrtspdefs.html#GST-RTSP-OK:CAPS"><span class="type">GST_RTSP_OK</span></a> when <em class="parameter"><code>field</code></em>
-was found, <a class="link" href="gst-plugins-base-libs-gstrtspdefs.html#GST-RTSP-ENOTIMPL:CAPS"><span class="type">GST_RTSP_ENOTIMPL</span></a> if the key
-was not found.</p>
-</div>
-<p class="since">Since: 1.6</p>
 </div>
 <hr>
 <div class="refsect2">
@@ -1242,36 +470,6 @@
 <pre class="programlisting"><a class="link" href="gst-plugins-base-libs-gstrtspdefs.html#GstRTSPResult" title="enum GstRTSPResult"><span class="returnvalue">GstRTSPResult</span></a>
 gst_rtsp_message_append_headers (<em class="parameter"><code>const <a class="link" href="gst-plugins-base-libs-gstrtspmessage.html#GstRTSPMessage" title="struct GstRTSPMessage"><span class="type">GstRTSPMessage</span></a> *msg</code></em>,
                                  <em class="parameter"><code><a href="/usr/share/gtk-doc/html/glibglib-Strings.html#GString"><span class="type">GString</span></a> *str</code></em>);</pre>
-<p>Append the currently configured headers in <em class="parameter"><code>msg</code></em>
- to the <a href="/usr/share/gtk-doc/html/glibglib-Strings.html#GString"><span class="type">GString</span></a> <em class="parameter"><code>str</code></em>
- suitable
-for transmission.</p>
-<div class="refsect3">
-<a name="gst-rtsp-message-append-headers.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>msg</p></td>
-<td class="parameter_description"><p>a <a class="link" href="gst-plugins-base-libs-gstrtspmessage.html#GstRTSPMessage" title="struct GstRTSPMessage"><span class="type">GstRTSPMessage</span></a></p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-<tr>
-<td class="parameter_name"><p>str</p></td>
-<td class="parameter_description"><p> a string. </p></td>
-<td class="parameter_annotations"><span class="annotation">[<acronym title="Don't free data after the code is done."><span class="acronym">transfer none</span></acronym>]</span></td>
-</tr>
-</tbody>
-</table></div>
-</div>
-<div class="refsect3">
-<a name="gst-rtsp-message-append-headers.returns"></a><h4>Returns</h4>
-<p> <a class="link" href="gst-plugins-base-libs-gstrtspdefs.html#GST-RTSP-OK:CAPS"><span class="type">GST_RTSP_OK</span></a>.</p>
-</div>
 </div>
 <hr>
 <div class="refsect2">
@@ -1280,41 +478,6 @@
 gst_rtsp_message_set_body (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstrtspmessage.html#GstRTSPMessage" title="struct GstRTSPMessage"><span class="type">GstRTSPMessage</span></a> *msg</code></em>,
                            <em class="parameter"><code>const <a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#guint8"><span class="type">guint8</span></a> *data</code></em>,
                            <em class="parameter"><code><a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#guint"><span class="type">guint</span></a> size</code></em>);</pre>
-<p>Set the body of <em class="parameter"><code>msg</code></em>
- to a copy of <em class="parameter"><code>data</code></em>
-.</p>
-<div class="refsect3">
-<a name="gst-rtsp-message-set-body.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>msg</p></td>
-<td class="parameter_description"><p>a <a class="link" href="gst-plugins-base-libs-gstrtspmessage.html#GstRTSPMessage" title="struct GstRTSPMessage"><span class="type">GstRTSPMessage</span></a></p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-<tr>
-<td class="parameter_name"><p>data</p></td>
-<td class="parameter_description"><p> the data. </p></td>
-<td class="parameter_annotations"><span class="annotation">[<acronym title="Parameter points to an array of items."><span class="acronym">array</span></acronym> length=size][<acronym title="Don't free data after the code is done."><span class="acronym">transfer none</span></acronym>]</span></td>
-</tr>
-<tr>
-<td class="parameter_name"><p>size</p></td>
-<td class="parameter_description"><p>the size of <em class="parameter"><code>data</code></em>
-</p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-</tbody>
-</table></div>
-</div>
-<div class="refsect3">
-<a name="gst-rtsp-message-set-body.returns"></a><h4>Returns</h4>
-<p> <a class="link" href="gst-plugins-base-libs-gstrtspdefs.html#GST-RTSP-OK:CAPS"><span class="type">GST_RTSP_OK</span></a>.</p>
-</div>
 </div>
 <hr>
 <div class="refsect2">
@@ -1323,44 +486,6 @@
 gst_rtsp_message_take_body (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstrtspmessage.html#GstRTSPMessage" title="struct GstRTSPMessage"><span class="type">GstRTSPMessage</span></a> *msg</code></em>,
                             <em class="parameter"><code><a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#guint8"><span class="type">guint8</span></a> *data</code></em>,
                             <em class="parameter"><code><a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#guint"><span class="type">guint</span></a> size</code></em>);</pre>
-<p>Set the body of <em class="parameter"><code>msg</code></em>
- to <em class="parameter"><code>data</code></em>
- and <em class="parameter"><code>size</code></em>
-. This method takes ownership of
-<em class="parameter"><code>data</code></em>
-.</p>
-<div class="refsect3">
-<a name="gst-rtsp-message-take-body.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>msg</p></td>
-<td class="parameter_description"><p>a <a class="link" href="gst-plugins-base-libs-gstrtspmessage.html#GstRTSPMessage" title="struct GstRTSPMessage"><span class="type">GstRTSPMessage</span></a></p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-<tr>
-<td class="parameter_name"><p>data</p></td>
-<td class="parameter_description"><p> the data. </p></td>
-<td class="parameter_annotations"><span class="annotation">[<acronym title="Parameter points to an array of items."><span class="acronym">array</span></acronym> length=size][<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>]</span></td>
-</tr>
-<tr>
-<td class="parameter_name"><p>size</p></td>
-<td class="parameter_description"><p>the size of <em class="parameter"><code>data</code></em>
-</p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-</tbody>
-</table></div>
-</div>
-<div class="refsect3">
-<a name="gst-rtsp-message-take-body.returns"></a><h4>Returns</h4>
-<p> <a class="link" href="gst-plugins-base-libs-gstrtspdefs.html#GST-RTSP-OK:CAPS"><span class="type">GST_RTSP_OK</span></a>.</p>
-</div>
 </div>
 <hr>
 <div class="refsect2">
@@ -1369,43 +494,6 @@
 gst_rtsp_message_get_body (<em class="parameter"><code>const <a class="link" href="gst-plugins-base-libs-gstrtspmessage.html#GstRTSPMessage" title="struct GstRTSPMessage"><span class="type">GstRTSPMessage</span></a> *msg</code></em>,
                            <em class="parameter"><code><a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#guint8"><span class="type">guint8</span></a> **data</code></em>,
                            <em class="parameter"><code><a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#guint"><span class="type">guint</span></a> *size</code></em>);</pre>
-<p>Get the body of <em class="parameter"><code>msg</code></em>
-. <em class="parameter"><code>data</code></em>
- remains valid for as long as <em class="parameter"><code>msg</code></em>
- is valid and
-unchanged.</p>
-<div class="refsect3">
-<a name="gst-rtsp-message-get-body.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>msg</p></td>
-<td class="parameter_description"><p>a <a class="link" href="gst-plugins-base-libs-gstrtspmessage.html#GstRTSPMessage" title="struct GstRTSPMessage"><span class="type">GstRTSPMessage</span></a></p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-<tr>
-<td class="parameter_name"><p>data</p></td>
-<td class="parameter_description"><p> location for the data. </p></td>
-<td class="parameter_annotations"><span class="annotation">[<acronym title="Parameter for returning results. Default is transfer full."><span class="acronym">out</span></acronym>][<acronym title="Don't free data after the code is done."><span class="acronym">transfer none</span></acronym>][<acronym title="Parameter points to an array of items."><span class="acronym">array</span></acronym> length=size]</span></td>
-</tr>
-<tr>
-<td class="parameter_name"><p>size</p></td>
-<td class="parameter_description"><p> location for the size of <em class="parameter"><code>data</code></em>
-. </p></td>
-<td class="parameter_annotations"><span class="annotation">[<acronym title="Parameter for returning results. Default is transfer full."><span class="acronym">out</span></acronym>]</span></td>
-</tr>
-</tbody>
-</table></div>
-</div>
-<div class="refsect3">
-<a name="gst-rtsp-message-get-body.returns"></a><h4>Returns</h4>
-<p> <a class="link" href="gst-plugins-base-libs-gstrtspdefs.html#GST-RTSP-OK:CAPS"><span class="type">GST_RTSP_OK</span></a>.</p>
-</div>
 </div>
 <hr>
 <div class="refsect2">
@@ -1414,78 +502,18 @@
 gst_rtsp_message_steal_body (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstrtspmessage.html#GstRTSPMessage" title="struct GstRTSPMessage"><span class="type">GstRTSPMessage</span></a> *msg</code></em>,
                              <em class="parameter"><code><a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#guint8"><span class="type">guint8</span></a> **data</code></em>,
                              <em class="parameter"><code><a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#guint"><span class="type">guint</span></a> *size</code></em>);</pre>
-<p>Take the body of <em class="parameter"><code>msg</code></em>
- and store it in <em class="parameter"><code>data</code></em>
- and <em class="parameter"><code>size</code></em>
-. After this method,
-the body and size of <em class="parameter"><code>msg</code></em>
- will be set to <a href="/usr/share/gtk-doc/html/glibglib-Standard-Macros.html#NULL:CAPS"><span class="type">NULL</span></a> and 0 respectively.</p>
-<div class="refsect3">
-<a name="gst-rtsp-message-steal-body.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>msg</p></td>
-<td class="parameter_description"><p>a <a class="link" href="gst-plugins-base-libs-gstrtspmessage.html#GstRTSPMessage" title="struct GstRTSPMessage"><span class="type">GstRTSPMessage</span></a></p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-<tr>
-<td class="parameter_name"><p>data</p></td>
-<td class="parameter_description"><p> location for the data. </p></td>
-<td class="parameter_annotations"><span class="annotation">[<acronym title="Parameter for returning results. Default is transfer full."><span class="acronym">out</span></acronym>][<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>][<acronym title="Parameter points to an array of items."><span class="acronym">array</span></acronym> length=size]</span></td>
-</tr>
-<tr>
-<td class="parameter_name"><p>size</p></td>
-<td class="parameter_description"><p> location for the size of <em class="parameter"><code>data</code></em>
-. </p></td>
-<td class="parameter_annotations"><span class="annotation">[<acronym title="Parameter for returning results. Default is transfer full."><span class="acronym">out</span></acronym>]</span></td>
-</tr>
-</tbody>
-</table></div>
-</div>
-<div class="refsect3">
-<a name="gst-rtsp-message-steal-body.returns"></a><h4>Returns</h4>
-<p> <a class="link" href="gst-plugins-base-libs-gstrtspdefs.html#GST-RTSP-OK:CAPS"><span class="type">GST_RTSP_OK</span></a>.</p>
-</div>
 </div>
 <hr>
 <div class="refsect2">
 <a name="gst-rtsp-message-dump"></a><h3>gst_rtsp_message_dump ()</h3>
 <pre class="programlisting"><a class="link" href="gst-plugins-base-libs-gstrtspdefs.html#GstRTSPResult" title="enum GstRTSPResult"><span class="returnvalue">GstRTSPResult</span></a>
 gst_rtsp_message_dump (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstrtspmessage.html#GstRTSPMessage" title="struct GstRTSPMessage"><span class="type">GstRTSPMessage</span></a> *msg</code></em>);</pre>
-<p>Dump the contents of <em class="parameter"><code>msg</code></em>
- to stdout.</p>
-<div class="refsect3">
-<a name="gst-rtsp-message-dump.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>msg</p></td>
-<td class="parameter_description"><p>a <a class="link" href="gst-plugins-base-libs-gstrtspmessage.html#GstRTSPMessage" title="struct GstRTSPMessage"><span class="type">GstRTSPMessage</span></a></p></td>
-<td class="parameter_annotations"> </td>
-</tr></tbody>
-</table></div>
-</div>
-<div class="refsect3">
-<a name="gst-rtsp-message-dump.returns"></a><h4>Returns</h4>
-<p> <a class="link" href="gst-plugins-base-libs-gstrtspdefs.html#GST-RTSP-OK:CAPS"><span class="type">GST_RTSP_OK</span></a>.</p>
-</div>
 </div>
 </div>
 <div class="refsect1">
 <a name="gst-plugins-base-libs-gstrtspmessage.other_details"></a><h2>Types and Values</h2>
 <div class="refsect2">
 <a name="GstRTSPMsgType"></a><h3>enum GstRTSPMsgType</h3>
-<p>The type of a message.</p>
 <div class="refsect3">
 <a name="GstRTSPMsgType.members"></a><h4>Members</h4>
 <div class="informaltable"><table class="informaltable" width="100%" border="0">
@@ -1497,45 +525,33 @@
 <tbody>
 <tr>
 <td class="enum_member_name"><p><a name="GST-RTSP-MESSAGE-INVALID:CAPS"></a>GST_RTSP_MESSAGE_INVALID</p></td>
-<td class="enum_member_description">
-<p>invalid message type</p>
-</td>
-<td class="enum_member_annotations"> </td>
+<td> </td>
+<td> </td>
 </tr>
 <tr>
 <td class="enum_member_name"><p><a name="GST-RTSP-MESSAGE-REQUEST:CAPS"></a>GST_RTSP_MESSAGE_REQUEST</p></td>
-<td class="enum_member_description">
-<p>RTSP request message</p>
-</td>
-<td class="enum_member_annotations"> </td>
+<td> </td>
+<td> </td>
 </tr>
 <tr>
 <td class="enum_member_name"><p><a name="GST-RTSP-MESSAGE-RESPONSE:CAPS"></a>GST_RTSP_MESSAGE_RESPONSE</p></td>
-<td class="enum_member_description">
-<p>RTSP response message</p>
-</td>
-<td class="enum_member_annotations"> </td>
+<td> </td>
+<td> </td>
 </tr>
 <tr>
 <td class="enum_member_name"><p><a name="GST-RTSP-MESSAGE-HTTP-REQUEST:CAPS"></a>GST_RTSP_MESSAGE_HTTP_REQUEST</p></td>
-<td class="enum_member_description">
-<p>HTTP request message.</p>
-</td>
-<td class="enum_member_annotations"> </td>
+<td> </td>
+<td> </td>
 </tr>
 <tr>
 <td class="enum_member_name"><p><a name="GST-RTSP-MESSAGE-HTTP-RESPONSE:CAPS"></a>GST_RTSP_MESSAGE_HTTP_RESPONSE</p></td>
-<td class="enum_member_description">
-<p>HTTP response message.</p>
-</td>
-<td class="enum_member_annotations"> </td>
+<td> </td>
+<td> </td>
 </tr>
 <tr>
 <td class="enum_member_name"><p><a name="GST-RTSP-MESSAGE-DATA:CAPS"></a>GST_RTSP_MESSAGE_DATA</p></td>
-<td class="enum_member_description">
-<p>data message</p>
-</td>
-<td class="enum_member_annotations"> </td>
+<td> </td>
+<td> </td>
 </tr>
 </tbody>
 </table></div>
@@ -1564,31 +580,9 @@
   } type_data;
 };
 </pre>
-<p>An RTSP message containing request, response or data messages. Depending on
-the <em class="parameter"><code>type</code></em>
-, the appropriate structure may be accessed.</p>
-<div class="refsect3">
-<a name="GstRTSPMessage.members"></a><h4>Members</h4>
-<div class="informaltable"><table class="informaltable" width="100%" border="0">
-<colgroup>
-<col width="300px" class="struct_members_name">
-<col class="struct_members_description">
-<col width="200px" class="struct_members_annotations">
-</colgroup>
-<tbody><tr>
-<td class="struct_member_name"><p><a class="link" href="gst-plugins-base-libs-gstrtspmessage.html#GstRTSPMsgType" title="enum GstRTSPMsgType"><span class="type">GstRTSPMsgType</span></a> <em class="structfield"><code><a name="GstRTSPMessage.type"></a>type</code></em>;</p></td>
-<td class="struct_member_description"><p>the message type</p></td>
-<td class="struct_member_annotations"> </td>
-</tr></tbody>
-</table></div>
 </div>
 </div>
 </div>
-<div class="refsect1">
-<a name="gst-plugins-base-libs-gstrtspmessage.see-also"></a><h2>See Also</h2>
-<p>gstrtspconnection</p>
-</div>
-</div>
 <div class="footer">
 <hr>Generated by GTK-Doc V1.25</div>
 </body>
diff --git a/docs/libs/html/gst-plugins-base-libs-gstrtsprange.html b/docs/libs/html/gst-plugins-base-libs-gstrtsprange.html
index 2c53ab6..4cee034 100644
--- a/docs/libs/html/gst-plugins-base-libs-gstrtsprange.html
+++ b/docs/libs/html/gst-plugins-base-libs-gstrtsprange.html
@@ -27,7 +27,7 @@
 <div class="refnamediv"><table width="100%"><tr>
 <td valign="top">
 <h2><span class="refentrytitle"><a name="gst-plugins-base-libs-gstrtsprange.top_of_page"></a>gstrtsprange</span></h2>
-<p>gstrtsprange — dealing with time ranges</p>
+<p>gstrtsprange</p>
 </td>
 <td class="gallery_image" valign="top" align="right"></td>
 </tr></table></div>
@@ -120,7 +120,6 @@
 </div>
 <div class="refsect1">
 <a name="gst-plugins-base-libs-gstrtsprange.description"></a><h2>Description</h2>
-<p>Provides helper functions to deal with time ranges.</p>
 </div>
 <div class="refsect1">
 <a name="gst-plugins-base-libs-gstrtsprange.functions_details"></a><h2>Functions</h2>
@@ -129,34 +128,6 @@
 <pre class="programlisting"><a class="link" href="gst-plugins-base-libs-gstrtspdefs.html#GstRTSPResult" title="enum GstRTSPResult"><span class="returnvalue">GstRTSPResult</span></a>
 gst_rtsp_range_parse (<em class="parameter"><code>const <a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *rangestr</code></em>,
                       <em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstrtsprange.html#GstRTSPTimeRange" title="struct GstRTSPTimeRange"><span class="type">GstRTSPTimeRange</span></a> **range</code></em>);</pre>
-<p>Parse <em class="parameter"><code>rangestr</code></em>
- to a <a class="link" href="gst-plugins-base-libs-gstrtsprange.html#GstRTSPTimeRange" title="struct GstRTSPTimeRange"><span class="type">GstRTSPTimeRange</span></a>.</p>
-<div class="refsect3">
-<a name="gst-rtsp-range-parse.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>rangestr</p></td>
-<td class="parameter_description"><p>a range string to parse</p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-<tr>
-<td class="parameter_name"><p>range</p></td>
-<td class="parameter_description"><p>location to hold the <a class="link" href="gst-plugins-base-libs-gstrtsprange.html#GstRTSPTimeRange" title="struct GstRTSPTimeRange"><span class="type">GstRTSPTimeRange</span></a> result</p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-</tbody>
-</table></div>
-</div>
-<div class="refsect3">
-<a name="gst-rtsp-range-parse.returns"></a><h4>Returns</h4>
-<p> <a class="link" href="gst-plugins-base-libs-gstrtspdefs.html#GST-RTSP-OK:CAPS"><span class="type">GST_RTSP_OK</span></a> on success.</p>
-</div>
 </div>
 <hr>
 <div class="refsect2">
@@ -165,76 +136,12 @@
 gst_rtsp_range_get_times (<em class="parameter"><code>const <a class="link" href="gst-plugins-base-libs-gstrtsprange.html#GstRTSPTimeRange" title="struct GstRTSPTimeRange"><span class="type">GstRTSPTimeRange</span></a> *range</code></em>,
                           <em class="parameter"><code><a href="/usr/share/gtk-doc/html/gstreamer-1.0GstClock.html#GstClockTime"><span class="type">GstClockTime</span></a> *min</code></em>,
                           <em class="parameter"><code><a href="/usr/share/gtk-doc/html/gstreamer-1.0GstClock.html#GstClockTime"><span class="type">GstClockTime</span></a> *max</code></em>);</pre>
-<p>Retrieve the minimum and maximum values from <em class="parameter"><code>range</code></em>
- converted to
-<a href="/usr/share/gtk-doc/html/gstreamer-1.0GstClock.html#GstClockTime"><span class="type">GstClockTime</span></a> in <em class="parameter"><code>min</code></em>
- and <em class="parameter"><code>max</code></em>
-.</p>
-<p>A value of <a href="/usr/share/gtk-doc/html/gstreamer-1.0GstClock.html#GST-CLOCK-TIME-NONE:CAPS"><code class="literal">GST_CLOCK_TIME_NONE</code></a> will be used to signal <a class="link" href="gst-plugins-base-libs-gstrtsprange.html#GST-RTSP-TIME-NOW:CAPS"><span class="type">GST_RTSP_TIME_NOW</span></a>
-and <a class="link" href="gst-plugins-base-libs-gstrtsprange.html#GST-RTSP-TIME-END:CAPS"><span class="type">GST_RTSP_TIME_END</span></a> for <em class="parameter"><code>min</code></em>
- and <em class="parameter"><code>max</code></em>
- respectively.</p>
-<p>UTC times will be converted to nanoseconds since 1900.</p>
-<div class="refsect3">
-<a name="gst-rtsp-range-get-times.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>range</p></td>
-<td class="parameter_description"><p>a <a class="link" href="gst-plugins-base-libs-gstrtsprange.html#GstRTSPTimeRange" title="struct GstRTSPTimeRange"><span class="type">GstRTSPTimeRange</span></a></p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-<tr>
-<td class="parameter_name"><p>min</p></td>
-<td class="parameter_description"><p>result minimum <a href="/usr/share/gtk-doc/html/gstreamer-1.0GstClock.html#GstClockTime"><span class="type">GstClockTime</span></a></p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-<tr>
-<td class="parameter_name"><p>max</p></td>
-<td class="parameter_description"><p>result maximum <a href="/usr/share/gtk-doc/html/gstreamer-1.0GstClock.html#GstClockTime"><span class="type">GstClockTime</span></a></p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-</tbody>
-</table></div>
-</div>
-<div class="refsect3">
-<a name="gst-rtsp-range-get-times.returns"></a><h4>Returns</h4>
-<p> <a href="/usr/share/gtk-doc/html/glibglib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a> on success.</p>
-</div>
-<p class="since">Since: 1.2</p>
 </div>
 <hr>
 <div class="refsect2">
 <a name="gst-rtsp-range-to-string"></a><h3>gst_rtsp_range_to_string ()</h3>
 <pre class="programlisting"><a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> *
 gst_rtsp_range_to_string (<em class="parameter"><code>const <a class="link" href="gst-plugins-base-libs-gstrtsprange.html#GstRTSPTimeRange" title="struct GstRTSPTimeRange"><span class="type">GstRTSPTimeRange</span></a> *range</code></em>);</pre>
-<p>Convert <em class="parameter"><code>range</code></em>
- into a string representation.</p>
-<div class="refsect3">
-<a name="gst-rtsp-range-to-string.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>range</p></td>
-<td class="parameter_description"><p>a <a class="link" href="gst-plugins-base-libs-gstrtsprange.html#GstRTSPTimeRange" title="struct GstRTSPTimeRange"><span class="type">GstRTSPTimeRange</span></a></p></td>
-<td class="parameter_annotations"> </td>
-</tr></tbody>
-</table></div>
-</div>
-<div class="refsect3">
-<a name="gst-rtsp-range-to-string.returns"></a><h4>Returns</h4>
-<p> The string representation of <em class="parameter"><code>range</code></em>
-. <a href="/usr/share/gtk-doc/html/glibglib-Memory-Allocation.html#g-free"><code class="function">g_free()</code></a> after usage.</p>
-</div>
 </div>
 <hr>
 <div class="refsect2">
@@ -242,65 +149,18 @@
 <pre class="programlisting"><a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
 gst_rtsp_range_convert_units (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstrtsprange.html#GstRTSPTimeRange" title="struct GstRTSPTimeRange"><span class="type">GstRTSPTimeRange</span></a> *range</code></em>,
                               <em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstrtsprange.html#GstRTSPRangeUnit" title="enum GstRTSPRangeUnit"><span class="type">GstRTSPRangeUnit</span></a> unit</code></em>);</pre>
-<p>Converts the range in-place between different types of units.
-Ranges containing the special value <a class="link" href="gst-plugins-base-libs-gstrtsprange.html#GST-RTSP-TIME-NOW:CAPS"><span class="type">GST_RTSP_TIME_NOW</span></a> can not be
-converted as these are only valid for <a class="link" href="gst-plugins-base-libs-gstrtsprange.html#GST-RTSP-RANGE-NPT:CAPS"><span class="type">GST_RTSP_RANGE_NPT</span></a>.</p>
-<div class="refsect3">
-<a name="gst-rtsp-range-convert-units.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>range</p></td>
-<td class="parameter_description"><p>a <a class="link" href="gst-plugins-base-libs-gstrtsprange.html#GstRTSPTimeRange" title="struct GstRTSPTimeRange"><span class="type">GstRTSPTimeRange</span></a></p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-<tr>
-<td class="parameter_name"><p>unit</p></td>
-<td class="parameter_description"><p>the unit to convert the range into</p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-</tbody>
-</table></div>
-</div>
-<div class="refsect3">
-<a name="gst-rtsp-range-convert-units.returns"></a><h4>Returns</h4>
-<p> <a href="/usr/share/gtk-doc/html/glibglib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a> if the range could be converted</p>
-</div>
 </div>
 <hr>
 <div class="refsect2">
 <a name="gst-rtsp-range-free"></a><h3>gst_rtsp_range_free ()</h3>
 <pre class="programlisting"><span class="returnvalue">void</span>
 gst_rtsp_range_free (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstrtsprange.html#GstRTSPTimeRange" title="struct GstRTSPTimeRange"><span class="type">GstRTSPTimeRange</span></a> *range</code></em>);</pre>
-<p>Free the memory allocated by <em class="parameter"><code>range</code></em>
-.</p>
-<div class="refsect3">
-<a name="gst-rtsp-range-free.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>range</p></td>
-<td class="parameter_description"><p>a <a class="link" href="gst-plugins-base-libs-gstrtsprange.html#GstRTSPTimeRange" title="struct GstRTSPTimeRange"><span class="type">GstRTSPTimeRange</span></a></p></td>
-<td class="parameter_annotations"> </td>
-</tr></tbody>
-</table></div>
-</div>
 </div>
 </div>
 <div class="refsect1">
 <a name="gst-plugins-base-libs-gstrtsprange.other_details"></a><h2>Types and Values</h2>
 <div class="refsect2">
 <a name="GstRTSPRangeUnit"></a><h3>enum GstRTSPRangeUnit</h3>
-<p>Different possible time range units.</p>
 <div class="refsect3">
 <a name="GstRTSPRangeUnit.members"></a><h4>Members</h4>
 <div class="informaltable"><table class="informaltable" width="100%" border="0">
@@ -312,38 +172,28 @@
 <tbody>
 <tr>
 <td class="enum_member_name"><p><a name="GST-RTSP-RANGE-SMPTE:CAPS"></a>GST_RTSP_RANGE_SMPTE</p></td>
-<td class="enum_member_description">
-<p>SMPTE timecode</p>
-</td>
-<td class="enum_member_annotations"> </td>
+<td> </td>
+<td> </td>
 </tr>
 <tr>
 <td class="enum_member_name"><p><a name="GST-RTSP-RANGE-SMPTE-30-DROP:CAPS"></a>GST_RTSP_RANGE_SMPTE_30_DROP</p></td>
-<td class="enum_member_description">
-<p>29.97 frames per second</p>
-</td>
-<td class="enum_member_annotations"> </td>
+<td> </td>
+<td> </td>
 </tr>
 <tr>
 <td class="enum_member_name"><p><a name="GST-RTSP-RANGE-SMPTE-25:CAPS"></a>GST_RTSP_RANGE_SMPTE_25</p></td>
-<td class="enum_member_description">
-<p>25 frames per second</p>
-</td>
-<td class="enum_member_annotations"> </td>
+<td> </td>
+<td> </td>
 </tr>
 <tr>
 <td class="enum_member_name"><p><a name="GST-RTSP-RANGE-NPT:CAPS"></a>GST_RTSP_RANGE_NPT</p></td>
-<td class="enum_member_description">
-<p>Normal play time</p>
-</td>
-<td class="enum_member_annotations"> </td>
+<td> </td>
+<td> </td>
 </tr>
 <tr>
 <td class="enum_member_name"><p><a name="GST-RTSP-RANGE-CLOCK:CAPS"></a>GST_RTSP_RANGE_CLOCK</p></td>
-<td class="enum_member_description">
-<p>Absolute time expressed as ISO 8601 timestamps</p>
-</td>
-<td class="enum_member_annotations"> </td>
+<td> </td>
+<td> </td>
 </tr>
 </tbody>
 </table></div>
@@ -361,44 +211,6 @@
   GstRTSPTime2 max2;
 };
 </pre>
-<p>A time range.</p>
-<div class="refsect3">
-<a name="GstRTSPTimeRange.members"></a><h4>Members</h4>
-<div class="informaltable"><table class="informaltable" width="100%" border="0">
-<colgroup>
-<col width="300px" class="struct_members_name">
-<col class="struct_members_description">
-<col width="200px" class="struct_members_annotations">
-</colgroup>
-<tbody>
-<tr>
-<td class="struct_member_name"><p><a class="link" href="gst-plugins-base-libs-gstrtsprange.html#GstRTSPRangeUnit" title="enum GstRTSPRangeUnit"><span class="type">GstRTSPRangeUnit</span></a> <em class="structfield"><code><a name="GstRTSPTimeRange.unit"></a>unit</code></em>;</p></td>
-<td class="struct_member_description"><p>the time units used</p></td>
-<td class="struct_member_annotations"> </td>
-</tr>
-<tr>
-<td class="struct_member_name"><p><a class="link" href="gst-plugins-base-libs-gstrtsprange.html#GstRTSPTime" title="struct GstRTSPTime"><span class="type">GstRTSPTime</span></a> <em class="structfield"><code><a name="GstRTSPTimeRange.min"></a>min</code></em>;</p></td>
-<td class="struct_member_description"><p>the minimum interval</p></td>
-<td class="struct_member_annotations"> </td>
-</tr>
-<tr>
-<td class="struct_member_name"><p><a class="link" href="gst-plugins-base-libs-gstrtsprange.html#GstRTSPTime" title="struct GstRTSPTime"><span class="type">GstRTSPTime</span></a> <em class="structfield"><code><a name="GstRTSPTimeRange.max"></a>max</code></em>;</p></td>
-<td class="struct_member_description"><p>the maximum interval</p></td>
-<td class="struct_member_annotations"> </td>
-</tr>
-<tr>
-<td class="struct_member_name"><p><a class="link" href="gst-plugins-base-libs-gstrtsprange.html#GstRTSPTime2" title="struct GstRTSPTime2"><span class="type">GstRTSPTime2</span></a> <em class="structfield"><code><a name="GstRTSPTimeRange.min2"></a>min2</code></em>;</p></td>
-<td class="struct_member_description"><p>extra fields in the minimum interval (Since: 1.2)</p></td>
-<td class="struct_member_annotations"> </td>
-</tr>
-<tr>
-<td class="struct_member_name"><p><a class="link" href="gst-plugins-base-libs-gstrtsprange.html#GstRTSPTime2" title="struct GstRTSPTime2"><span class="type">GstRTSPTime2</span></a> <em class="structfield"><code><a name="GstRTSPTimeRange.max2"></a>max2</code></em>;</p></td>
-<td class="struct_member_description"><p>extra fields in the maximum interval (Since: 1.2)</p></td>
-<td class="struct_member_annotations"> </td>
-</tr>
-</tbody>
-</table></div>
-</div>
 </div>
 <hr>
 <div class="refsect2">
@@ -408,31 +220,6 @@
   gdouble         seconds;
 };
 </pre>
-<p>A time indication.</p>
-<div class="refsect3">
-<a name="GstRTSPTime.members"></a><h4>Members</h4>
-<div class="informaltable"><table class="informaltable" width="100%" border="0">
-<colgroup>
-<col width="300px" class="struct_members_name">
-<col class="struct_members_description">
-<col width="200px" class="struct_members_annotations">
-</colgroup>
-<tbody>
-<tr>
-<td class="struct_member_name"><p><a class="link" href="gst-plugins-base-libs-gstrtsprange.html#GstRTSPTimeType" title="enum GstRTSPTimeType"><span class="type">GstRTSPTimeType</span></a> <em class="structfield"><code><a name="GstRTSPTime.type"></a>type</code></em>;</p></td>
-<td class="struct_member_description"><p>the time of the time</p></td>
-<td class="struct_member_annotations"> </td>
-</tr>
-<tr>
-<td class="struct_member_name"><p><a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#gdouble"><span class="type">gdouble</span></a> <em class="structfield"><code><a name="GstRTSPTime.seconds"></a>seconds</code></em>;</p></td>
-<td class="struct_member_description"><p>seconds when <em class="parameter"><code>type</code></em>
-is GST_RTSP_TIME_SECONDS,
-GST_RTSP_TIME_UTC and GST_RTSP_TIME_FRAMES</p></td>
-<td class="struct_member_annotations"> </td>
-</tr>
-</tbody>
-</table></div>
-</div>
 </div>
 <hr>
 <div class="refsect2">
@@ -444,46 +231,10 @@
   guint           day;
 };
 </pre>
-<p>Extra fields for a time indication.</p>
-<div class="refsect3">
-<a name="GstRTSPTime2.members"></a><h4>Members</h4>
-<div class="informaltable"><table class="informaltable" width="100%" border="0">
-<colgroup>
-<col width="300px" class="struct_members_name">
-<col class="struct_members_description">
-<col width="200px" class="struct_members_annotations">
-</colgroup>
-<tbody>
-<tr>
-<td class="struct_member_name"><p><a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#gdouble"><span class="type">gdouble</span></a> <em class="structfield"><code><a name="GstRTSPTime2.frames"></a>frames</code></em>;</p></td>
-<td class="struct_member_description"><p>frames and subframes when type in GstRTSPTime is
-GST_RTSP_TIME_FRAMES</p></td>
-<td class="struct_member_annotations"> </td>
-</tr>
-<tr>
-<td class="struct_member_name"><p><a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#guint"><span class="type">guint</span></a> <em class="structfield"><code><a name="GstRTSPTime2.year"></a>year</code></em>;</p></td>
-<td class="struct_member_description"><p>year when type is GST_RTSP_TIME_UTC</p></td>
-<td class="struct_member_annotations"> </td>
-</tr>
-<tr>
-<td class="struct_member_name"><p><a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#guint"><span class="type">guint</span></a> <em class="structfield"><code><a name="GstRTSPTime2.month"></a>month</code></em>;</p></td>
-<td class="struct_member_description"><p>month when type is GST_RTSP_TIME_UTC</p></td>
-<td class="struct_member_annotations"> </td>
-</tr>
-<tr>
-<td class="struct_member_name"><p><a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#guint"><span class="type">guint</span></a> <em class="structfield"><code><a name="GstRTSPTime2.day"></a>day</code></em>;</p></td>
-<td class="struct_member_description"><p>day when type is GST_RTSP_TIME_UTC</p></td>
-<td class="struct_member_annotations"> </td>
-</tr>
-</tbody>
-</table></div>
-</div>
-<p class="since">Since: 1.2</p>
 </div>
 <hr>
 <div class="refsect2">
 <a name="GstRTSPTimeType"></a><h3>enum GstRTSPTimeType</h3>
-<p>Possible time types.</p>
 <div class="refsect3">
 <a name="GstRTSPTimeType.members"></a><h4>Members</h4>
 <div class="informaltable"><table class="informaltable" width="100%" border="0">
@@ -495,38 +246,28 @@
 <tbody>
 <tr>
 <td class="enum_member_name"><p><a name="GST-RTSP-TIME-SECONDS:CAPS"></a>GST_RTSP_TIME_SECONDS</p></td>
-<td class="enum_member_description">
-<p>seconds</p>
-</td>
-<td class="enum_member_annotations"> </td>
+<td> </td>
+<td> </td>
 </tr>
 <tr>
 <td class="enum_member_name"><p><a name="GST-RTSP-TIME-NOW:CAPS"></a>GST_RTSP_TIME_NOW</p></td>
-<td class="enum_member_description">
-<p>now</p>
-</td>
-<td class="enum_member_annotations"> </td>
+<td> </td>
+<td> </td>
 </tr>
 <tr>
 <td class="enum_member_name"><p><a name="GST-RTSP-TIME-END:CAPS"></a>GST_RTSP_TIME_END</p></td>
-<td class="enum_member_description">
-<p>end</p>
-</td>
-<td class="enum_member_annotations"> </td>
+<td> </td>
+<td> </td>
 </tr>
 <tr>
 <td class="enum_member_name"><p><a name="GST-RTSP-TIME-FRAMES:CAPS"></a>GST_RTSP_TIME_FRAMES</p></td>
-<td class="enum_member_description">
-<p>frames and subframes</p>
-</td>
-<td class="enum_member_annotations"> </td>
+<td> </td>
+<td> </td>
 </tr>
 <tr>
 <td class="enum_member_name"><p><a name="GST-RTSP-TIME-UTC:CAPS"></a>GST_RTSP_TIME_UTC</p></td>
-<td class="enum_member_description">
-<p>UTC time</p>
-</td>
-<td class="enum_member_annotations"> </td>
+<td> </td>
+<td> </td>
 </tr>
 </tbody>
 </table></div>
diff --git a/docs/libs/html/gst-plugins-base-libs-gstrtsptransport.html b/docs/libs/html/gst-plugins-base-libs-gstrtsptransport.html
index ce51adb..c01d999 100644
--- a/docs/libs/html/gst-plugins-base-libs-gstrtsptransport.html
+++ b/docs/libs/html/gst-plugins-base-libs-gstrtsptransport.html
@@ -27,7 +27,7 @@
 <div class="refnamediv"><table width="100%"><tr>
 <td valign="top">
 <h2><span class="refentrytitle"><a name="gst-plugins-base-libs-gstrtsptransport.top_of_page"></a>gstrtsptransport</span></h2>
-<p>gstrtsptransport — dealing with RTSP transports</p>
+<p>gstrtsptransport</p>
 </td>
 <td class="gallery_image" valign="top" align="right"></td>
 </tr></table></div>
@@ -136,7 +136,6 @@
 </div>
 <div class="refsect1">
 <a name="gst-plugins-base-libs-gstrtsptransport.description"></a><h2>Description</h2>
-<p>Provides helper functions to deal with RTSP transport strings.</p>
 </div>
 <div class="refsect1">
 <a name="gst-plugins-base-libs-gstrtsptransport.functions_details"></a><h2>Functions</h2>
@@ -144,54 +143,12 @@
 <a name="gst-rtsp-transport-new"></a><h3>gst_rtsp_transport_new ()</h3>
 <pre class="programlisting"><a class="link" href="gst-plugins-base-libs-gstrtspdefs.html#GstRTSPResult" title="enum GstRTSPResult"><span class="returnvalue">GstRTSPResult</span></a>
 gst_rtsp_transport_new (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstrtsptransport.html#GstRTSPTransport" title="struct GstRTSPTransport"><span class="type">GstRTSPTransport</span></a> **transport</code></em>);</pre>
-<p>Allocate a new initialized <a class="link" href="gst-plugins-base-libs-gstrtsptransport.html#GstRTSPTransport" title="struct GstRTSPTransport"><span class="type">GstRTSPTransport</span></a>. Use <a class="link" href="gst-plugins-base-libs-gstrtsptransport.html#gst-rtsp-transport-free" title="gst_rtsp_transport_free ()"><code class="function">gst_rtsp_transport_free()</code></a>
-after usage.</p>
-<div class="refsect3">
-<a name="gst-rtsp-transport-new.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>transport</p></td>
-<td class="parameter_description"><p>location to hold the new <a class="link" href="gst-plugins-base-libs-gstrtsptransport.html#GstRTSPTransport" title="struct GstRTSPTransport"><span class="type">GstRTSPTransport</span></a></p></td>
-<td class="parameter_annotations"> </td>
-</tr></tbody>
-</table></div>
-</div>
-<div class="refsect3">
-<a name="gst-rtsp-transport-new.returns"></a><h4>Returns</h4>
-<p> a <a class="link" href="gst-plugins-base-libs-gstrtspdefs.html#GstRTSPResult" title="enum GstRTSPResult"><span class="type">GstRTSPResult</span></a>. </p>
-</div>
 </div>
 <hr>
 <div class="refsect2">
 <a name="gst-rtsp-transport-init"></a><h3>gst_rtsp_transport_init ()</h3>
 <pre class="programlisting"><a class="link" href="gst-plugins-base-libs-gstrtspdefs.html#GstRTSPResult" title="enum GstRTSPResult"><span class="returnvalue">GstRTSPResult</span></a>
 gst_rtsp_transport_init (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstrtsptransport.html#GstRTSPTransport" title="struct GstRTSPTransport"><span class="type">GstRTSPTransport</span></a> *transport</code></em>);</pre>
-<p>Initialize <em class="parameter"><code>transport</code></em>
- so that it can be used.</p>
-<div class="refsect3">
-<a name="gst-rtsp-transport-init.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>transport</p></td>
-<td class="parameter_description"><p>a <a class="link" href="gst-plugins-base-libs-gstrtsptransport.html#GstRTSPTransport" title="struct GstRTSPTransport"><span class="type">GstRTSPTransport</span></a></p></td>
-<td class="parameter_annotations"> </td>
-</tr></tbody>
-</table></div>
-</div>
-<div class="refsect3">
-<a name="gst-rtsp-transport-init.returns"></a><h4>Returns</h4>
-<p> <a class="link" href="gst-plugins-base-libs-gstrtspdefs.html#GST-RTSP-OK:CAPS"><span class="type">GST_RTSP_OK</span></a>. </p>
-</div>
 </div>
 <hr>
 <div class="refsect2">
@@ -199,64 +156,12 @@
 <pre class="programlisting"><a class="link" href="gst-plugins-base-libs-gstrtspdefs.html#GstRTSPResult" title="enum GstRTSPResult"><span class="returnvalue">GstRTSPResult</span></a>
 gst_rtsp_transport_parse (<em class="parameter"><code>const <a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *str</code></em>,
                           <em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstrtsptransport.html#GstRTSPTransport" title="struct GstRTSPTransport"><span class="type">GstRTSPTransport</span></a> *transport</code></em>);</pre>
-<p>Parse the RTSP transport string <em class="parameter"><code>str</code></em>
- into <em class="parameter"><code>transport</code></em>
-.</p>
-<div class="refsect3">
-<a name="gst-rtsp-transport-parse.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>str</p></td>
-<td class="parameter_description"><p>a transport string</p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-<tr>
-<td class="parameter_name"><p>transport</p></td>
-<td class="parameter_description"><p>a <a class="link" href="gst-plugins-base-libs-gstrtsptransport.html#GstRTSPTransport" title="struct GstRTSPTransport"><span class="type">GstRTSPTransport</span></a></p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-</tbody>
-</table></div>
-</div>
-<div class="refsect3">
-<a name="gst-rtsp-transport-parse.returns"></a><h4>Returns</h4>
-<p> a <a class="link" href="gst-plugins-base-libs-gstrtspdefs.html#GstRTSPResult" title="enum GstRTSPResult"><span class="type">GstRTSPResult</span></a>.</p>
-</div>
 </div>
 <hr>
 <div class="refsect2">
 <a name="gst-rtsp-transport-as-text"></a><h3>gst_rtsp_transport_as_text ()</h3>
 <pre class="programlisting"><a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> *
 gst_rtsp_transport_as_text (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstrtsptransport.html#GstRTSPTransport" title="struct GstRTSPTransport"><span class="type">GstRTSPTransport</span></a> *transport</code></em>);</pre>
-<p>Convert <em class="parameter"><code>transport</code></em>
- into a string that can be used to signal the transport in
-an RTSP SETUP response.</p>
-<div class="refsect3">
-<a name="gst-rtsp-transport-as-text.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>transport</p></td>
-<td class="parameter_description"><p>a <a class="link" href="gst-plugins-base-libs-gstrtsptransport.html#GstRTSPTransport" title="struct GstRTSPTransport"><span class="type">GstRTSPTransport</span></a></p></td>
-<td class="parameter_annotations"> </td>
-</tr></tbody>
-</table></div>
-</div>
-<div class="refsect3">
-<a name="gst-rtsp-transport-as-text.returns"></a><h4>Returns</h4>
-<p> a string describing the RTSP transport or <a href="/usr/share/gtk-doc/html/glibglib-Standard-Macros.html#NULL:CAPS"><span class="type">NULL</span></a> when the transport
-is invalid.</p>
-</div>
 </div>
 <hr>
 <div class="refsect2">
@@ -264,41 +169,6 @@
 <pre class="programlisting"><a class="link" href="gst-plugins-base-libs-gstrtspdefs.html#GstRTSPResult" title="enum GstRTSPResult"><span class="returnvalue">GstRTSPResult</span></a>
 gst_rtsp_transport_get_mime (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstrtsptransport.html#GstRTSPTransMode" title="enum GstRTSPTransMode"><span class="type">GstRTSPTransMode</span></a> trans</code></em>,
                              <em class="parameter"><code>const <a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#gchar"><span class="type">gchar</span></a> **mime</code></em>);</pre>
-<div class="warning">
-<p><code class="literal">gst_rtsp_transport_get_mime</code> is deprecated and should not be used in newly-written code.</p>
-<p>This functions only deals with the GstRTSPTransMode and only
-   returns the mime type for <a class="link" href="gst-plugins-base-libs-gstrtsptransport.html#GST-RTSP-PROFILE-AVP:CAPS"><span class="type">GST_RTSP_PROFILE_AVP</span></a>. Use
-   <code class="function">gst_rtsp_transport_get_media_type()</code> instead.</p>
-</div>
-<p>Get the mime type of the transport mode <em class="parameter"><code>trans</code></em>
-. This mime type is typically
-used to generate <a href="/usr/share/gtk-doc/html/gstreamer-1.0GstCaps.html#GstCaps-struct"><span class="type">GstCaps</span></a> events.</p>
-<div class="refsect3">
-<a name="gst-rtsp-transport-get-mime.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>trans</p></td>
-<td class="parameter_description"><p>a <a class="link" href="gst-plugins-base-libs-gstrtsptransport.html#GstRTSPTransMode" title="enum GstRTSPTransMode"><span class="type">GstRTSPTransMode</span></a></p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-<tr>
-<td class="parameter_name"><p>mime</p></td>
-<td class="parameter_description"><p>location to hold the result</p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-</tbody>
-</table></div>
-</div>
-<div class="refsect3">
-<a name="gst-rtsp-transport-get-mime.returns"></a><h4>Returns</h4>
-<p> <a class="link" href="gst-plugins-base-libs-gstrtspdefs.html#GST-RTSP-OK:CAPS"><span class="type">GST_RTSP_OK</span></a>.</p>
-</div>
 </div>
 <hr>
 <div class="refsect2">
@@ -307,80 +177,18 @@
 gst_rtsp_transport_get_manager (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstrtsptransport.html#GstRTSPTransMode" title="enum GstRTSPTransMode"><span class="type">GstRTSPTransMode</span></a> trans</code></em>,
                                 <em class="parameter"><code>const <a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#gchar"><span class="type">gchar</span></a> **manager</code></em>,
                                 <em class="parameter"><code><a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#guint"><span class="type">guint</span></a> option</code></em>);</pre>
-<p>Get the <a href="/usr/share/gtk-doc/html/gstreamer-1.0GstElement.html#GstElement-struct"><span class="type">GstElement</span></a> that can handle the buffers transported over <em class="parameter"><code>trans</code></em>
-.</p>
-<p>It is possible that there are several managers available, use <em class="parameter"><code>option</code></em>
- to
-selected one.</p>
-<p><em class="parameter"><code>manager</code></em>
- will contain an element name or <a href="/usr/share/gtk-doc/html/glibglib-Standard-Macros.html#NULL:CAPS"><span class="type">NULL</span></a> when no manager is
-needed/available for <em class="parameter"><code>trans</code></em>
-.</p>
-<div class="refsect3">
-<a name="gst-rtsp-transport-get-manager.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>trans</p></td>
-<td class="parameter_description"><p>a <a class="link" href="gst-plugins-base-libs-gstrtsptransport.html#GstRTSPTransMode" title="enum GstRTSPTransMode"><span class="type">GstRTSPTransMode</span></a></p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-<tr>
-<td class="parameter_name"><p>manager</p></td>
-<td class="parameter_description"><p>location to hold the result</p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-<tr>
-<td class="parameter_name"><p>option</p></td>
-<td class="parameter_description"><p>option index.</p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-</tbody>
-</table></div>
-</div>
-<div class="refsect3">
-<a name="gst-rtsp-transport-get-manager.returns"></a><h4>Returns</h4>
-<p> <a class="link" href="gst-plugins-base-libs-gstrtspdefs.html#GST-RTSP-OK:CAPS"><span class="type">GST_RTSP_OK</span></a>. </p>
-</div>
 </div>
 <hr>
 <div class="refsect2">
 <a name="gst-rtsp-transport-free"></a><h3>gst_rtsp_transport_free ()</h3>
 <pre class="programlisting"><a class="link" href="gst-plugins-base-libs-gstrtspdefs.html#GstRTSPResult" title="enum GstRTSPResult"><span class="returnvalue">GstRTSPResult</span></a>
 gst_rtsp_transport_free (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstrtsptransport.html#GstRTSPTransport" title="struct GstRTSPTransport"><span class="type">GstRTSPTransport</span></a> *transport</code></em>);</pre>
-<p>Free the memory used by <em class="parameter"><code>transport</code></em>
-.</p>
-<div class="refsect3">
-<a name="gst-rtsp-transport-free.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>transport</p></td>
-<td class="parameter_description"><p>a <a class="link" href="gst-plugins-base-libs-gstrtsptransport.html#GstRTSPTransport" title="struct GstRTSPTransport"><span class="type">GstRTSPTransport</span></a></p></td>
-<td class="parameter_annotations"> </td>
-</tr></tbody>
-</table></div>
-</div>
-<div class="refsect3">
-<a name="gst-rtsp-transport-free.returns"></a><h4>Returns</h4>
-<p> <a class="link" href="gst-plugins-base-libs-gstrtspdefs.html#GST-RTSP-OK:CAPS"><span class="type">GST_RTSP_OK</span></a>.</p>
-</div>
 </div>
 </div>
 <div class="refsect1">
 <a name="gst-plugins-base-libs-gstrtsptransport.other_details"></a><h2>Types and Values</h2>
 <div class="refsect2">
 <a name="GstRTSPTransMode"></a><h3>enum GstRTSPTransMode</h3>
-<p>The transfer mode to use.</p>
 <div class="refsect3">
 <a name="GstRTSPTransMode.members"></a><h4>Members</h4>
 <div class="informaltable"><table class="informaltable" width="100%" border="0">
@@ -392,24 +200,18 @@
 <tbody>
 <tr>
 <td class="enum_member_name"><p><a name="GST-RTSP-TRANS-UNKNOWN:CAPS"></a>GST_RTSP_TRANS_UNKNOWN</p></td>
-<td class="enum_member_description">
-<p>invalid tansport mode</p>
-</td>
-<td class="enum_member_annotations"> </td>
+<td> </td>
+<td> </td>
 </tr>
 <tr>
 <td class="enum_member_name"><p><a name="GST-RTSP-TRANS-RTP:CAPS"></a>GST_RTSP_TRANS_RTP</p></td>
-<td class="enum_member_description">
-<p>transfer RTP data</p>
-</td>
-<td class="enum_member_annotations"> </td>
+<td> </td>
+<td> </td>
 </tr>
 <tr>
 <td class="enum_member_name"><p><a name="GST-RTSP-TRANS-RDT:CAPS"></a>GST_RTSP_TRANS_RDT</p></td>
-<td class="enum_member_description">
-<p>transfer RDT (RealMedia) data</p>
-</td>
-<td class="enum_member_annotations"> </td>
+<td> </td>
+<td> </td>
 </tr>
 </tbody>
 </table></div>
@@ -418,7 +220,6 @@
 <hr>
 <div class="refsect2">
 <a name="GstRTSPProfile"></a><h3>enum GstRTSPProfile</h3>
-<p>The transfer profile to use.</p>
 <div class="refsect3">
 <a name="GstRTSPProfile.members"></a><h4>Members</h4>
 <div class="informaltable"><table class="informaltable" width="100%" border="0">
@@ -430,38 +231,28 @@
 <tbody>
 <tr>
 <td class="enum_member_name"><p><a name="GST-RTSP-PROFILE-UNKNOWN:CAPS"></a>GST_RTSP_PROFILE_UNKNOWN</p></td>
-<td class="enum_member_description">
-<p>invalid profile</p>
-</td>
-<td class="enum_member_annotations"> </td>
+<td> </td>
+<td> </td>
 </tr>
 <tr>
 <td class="enum_member_name"><p><a name="GST-RTSP-PROFILE-AVP:CAPS"></a>GST_RTSP_PROFILE_AVP</p></td>
-<td class="enum_member_description">
-<p>the Audio/Visual profile (RFC 3551)</p>
-</td>
-<td class="enum_member_annotations"> </td>
+<td> </td>
+<td> </td>
 </tr>
 <tr>
 <td class="enum_member_name"><p><a name="GST-RTSP-PROFILE-SAVP:CAPS"></a>GST_RTSP_PROFILE_SAVP</p></td>
-<td class="enum_member_description">
-<p>the secure Audio/Visual profile (RFC 3711)</p>
-</td>
-<td class="enum_member_annotations"> </td>
+<td> </td>
+<td> </td>
 </tr>
 <tr>
 <td class="enum_member_name"><p><a name="GST-RTSP-PROFILE-AVPF:CAPS"></a>GST_RTSP_PROFILE_AVPF</p></td>
-<td class="enum_member_description">
-<p>the Audio/Visual profile with feedback (RFC 4585)</p>
-</td>
-<td class="enum_member_annotations"> </td>
+<td> </td>
+<td> </td>
 </tr>
 <tr>
 <td class="enum_member_name"><p><a name="GST-RTSP-PROFILE-SAVPF:CAPS"></a>GST_RTSP_PROFILE_SAVPF</p></td>
-<td class="enum_member_description">
-<p>the secure Audio/Visual profile with feedback (RFC 5124)</p>
-</td>
-<td class="enum_member_annotations"> </td>
+<td> </td>
+<td> </td>
 </tr>
 </tbody>
 </table></div>
@@ -475,34 +266,10 @@
   gint max;
 };
 </pre>
-<p>A type to specify a range.</p>
-<div class="refsect3">
-<a name="GstRTSPRange.members"></a><h4>Members</h4>
-<div class="informaltable"><table class="informaltable" width="100%" border="0">
-<colgroup>
-<col width="300px" class="struct_members_name">
-<col class="struct_members_description">
-<col width="200px" class="struct_members_annotations">
-</colgroup>
-<tbody>
-<tr>
-<td class="struct_member_name"><p><a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#gint"><span class="type">gint</span></a> <em class="structfield"><code><a name="GstRTSPRange.min"></a>min</code></em>;</p></td>
-<td class="struct_member_description"><p>minimum value of the range</p></td>
-<td class="struct_member_annotations"> </td>
-</tr>
-<tr>
-<td class="struct_member_name"><p><a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#gint"><span class="type">gint</span></a> <em class="structfield"><code><a name="GstRTSPRange.max"></a>max</code></em>;</p></td>
-<td class="struct_member_description"><p>maximum value of the range</p></td>
-<td class="struct_member_annotations"> </td>
-</tr>
-</tbody>
-</table></div>
-</div>
 </div>
 <hr>
 <div class="refsect2">
 <a name="GstRTSPLowerTrans"></a><h3>enum GstRTSPLowerTrans</h3>
-<p>The different transport methods.</p>
 <div class="refsect3">
 <a name="GstRTSPLowerTrans.members"></a><h4>Members</h4>
 <div class="informaltable"><table class="informaltable" width="100%" border="0">
@@ -514,45 +281,33 @@
 <tbody>
 <tr>
 <td class="enum_member_name"><p><a name="GST-RTSP-LOWER-TRANS-UNKNOWN:CAPS"></a>GST_RTSP_LOWER_TRANS_UNKNOWN</p></td>
-<td class="enum_member_description">
-<p>invalid transport flag</p>
-</td>
-<td class="enum_member_annotations"> </td>
+<td> </td>
+<td> </td>
 </tr>
 <tr>
 <td class="enum_member_name"><p><a name="GST-RTSP-LOWER-TRANS-UDP:CAPS"></a>GST_RTSP_LOWER_TRANS_UDP</p></td>
-<td class="enum_member_description">
-<p>stream data over UDP</p>
-</td>
-<td class="enum_member_annotations"> </td>
+<td> </td>
+<td> </td>
 </tr>
 <tr>
 <td class="enum_member_name"><p><a name="GST-RTSP-LOWER-TRANS-UDP-MCAST:CAPS"></a>GST_RTSP_LOWER_TRANS_UDP_MCAST</p></td>
-<td class="enum_member_description">
-<p>stream data over UDP multicast</p>
-</td>
-<td class="enum_member_annotations"> </td>
+<td> </td>
+<td> </td>
 </tr>
 <tr>
 <td class="enum_member_name"><p><a name="GST-RTSP-LOWER-TRANS-TCP:CAPS"></a>GST_RTSP_LOWER_TRANS_TCP</p></td>
-<td class="enum_member_description">
-<p>stream data over TCP</p>
-</td>
-<td class="enum_member_annotations"> </td>
+<td> </td>
+<td> </td>
 </tr>
 <tr>
 <td class="enum_member_name"><p><a name="GST-RTSP-LOWER-TRANS-HTTP:CAPS"></a>GST_RTSP_LOWER_TRANS_HTTP</p></td>
-<td class="enum_member_description">
-<p>stream data tunneled over HTTP.</p>
-</td>
-<td class="enum_member_annotations"> </td>
+<td> </td>
+<td> </td>
 </tr>
 <tr>
 <td class="enum_member_name"><p><a name="GST-RTSP-LOWER-TRANS-TLS:CAPS"></a>GST_RTSP_LOWER_TRANS_TLS</p></td>
-<td class="enum_member_description">
-<p>encrypt TCP and HTTP with TLS</p>
-</td>
-<td class="enum_member_annotations"> </td>
+<td> </td>
+<td> </td>
 </tr>
 </tbody>
 </table></div>
@@ -585,98 +340,6 @@
   guint          ssrc;
 };
 </pre>
-<p>A structure holding the RTSP transport values.</p>
-<div class="refsect3">
-<a name="GstRTSPTransport.members"></a><h4>Members</h4>
-<div class="informaltable"><table class="informaltable" width="100%" border="0">
-<colgroup>
-<col width="300px" class="struct_members_name">
-<col class="struct_members_description">
-<col width="200px" class="struct_members_annotations">
-</colgroup>
-<tbody>
-<tr>
-<td class="struct_member_name"><p><a class="link" href="gst-plugins-base-libs-gstrtsptransport.html#GstRTSPTransMode" title="enum GstRTSPTransMode"><span class="type">GstRTSPTransMode</span></a> <em class="structfield"><code><a name="GstRTSPTransport.trans"></a>trans</code></em>;</p></td>
-<td class="struct_member_description"><p>the transport mode</p></td>
-<td class="struct_member_annotations"> </td>
-</tr>
-<tr>
-<td class="struct_member_name"><p><a class="link" href="gst-plugins-base-libs-gstrtsptransport.html#GstRTSPProfile" title="enum GstRTSPProfile"><span class="type">GstRTSPProfile</span></a> <em class="structfield"><code><a name="GstRTSPTransport.profile"></a>profile</code></em>;</p></td>
-<td class="struct_member_description"><p>the tansport profile</p></td>
-<td class="struct_member_annotations"> </td>
-</tr>
-<tr>
-<td class="struct_member_name"><p><a class="link" href="gst-plugins-base-libs-gstrtsptransport.html#GstRTSPLowerTrans" title="enum GstRTSPLowerTrans"><span class="type">GstRTSPLowerTrans</span></a> <em class="structfield"><code><a name="GstRTSPTransport.lower-transport"></a>lower_transport</code></em>;</p></td>
-<td class="struct_member_description"><p>the lower transport</p></td>
-<td class="struct_member_annotations"> </td>
-</tr>
-<tr>
-<td class="struct_member_name"><p><a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *<em class="structfield"><code><a name="GstRTSPTransport.destination"></a>destination</code></em>;</p></td>
-<td class="struct_member_description"><p>the destination ip/hostname</p></td>
-<td class="struct_member_annotations"> </td>
-</tr>
-<tr>
-<td class="struct_member_name"><p><a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *<em class="structfield"><code><a name="GstRTSPTransport.source"></a>source</code></em>;</p></td>
-<td class="struct_member_description"><p>the source ip/hostname</p></td>
-<td class="struct_member_annotations"> </td>
-</tr>
-<tr>
-<td class="struct_member_name"><p><a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#guint"><span class="type">guint</span></a> <em class="structfield"><code><a name="GstRTSPTransport.layers"></a>layers</code></em>;</p></td>
-<td class="struct_member_description"><p>the number of layers</p></td>
-<td class="struct_member_annotations"> </td>
-</tr>
-<tr>
-<td class="struct_member_name"><p><a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a> <em class="structfield"><code><a name="GstRTSPTransport.mode-play"></a>mode_play</code></em>;</p></td>
-<td class="struct_member_description"><p>if play mode was selected</p></td>
-<td class="struct_member_annotations"> </td>
-</tr>
-<tr>
-<td class="struct_member_name"><p><a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a> <em class="structfield"><code><a name="GstRTSPTransport.mode-record"></a>mode_record</code></em>;</p></td>
-<td class="struct_member_description"><p>if record mode was selected</p></td>
-<td class="struct_member_annotations"> </td>
-</tr>
-<tr>
-<td class="struct_member_name"><p><a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a> <em class="structfield"><code><a name="GstRTSPTransport.append"></a>append</code></em>;</p></td>
-<td class="struct_member_description"><p>is append mode was selected</p></td>
-<td class="struct_member_annotations"> </td>
-</tr>
-<tr>
-<td class="struct_member_name"><p><a class="link" href="gst-plugins-base-libs-gstrtsptransport.html#GstRTSPRange" title="struct GstRTSPRange"><span class="type">GstRTSPRange</span></a> <em class="structfield"><code><a name="GstRTSPTransport.interleaved"></a>interleaved</code></em>;</p></td>
-<td class="struct_member_description"><p>the interleave range</p></td>
-<td class="struct_member_annotations"> </td>
-</tr>
-<tr>
-<td class="struct_member_name"><p><a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#guint"><span class="type">guint</span></a> <em class="structfield"><code><a name="GstRTSPTransport.ttl"></a>ttl</code></em>;</p></td>
-<td class="struct_member_description"><p>the time to live for multicast UDP</p></td>
-<td class="struct_member_annotations"> </td>
-</tr>
-<tr>
-<td class="struct_member_name"><p><a class="link" href="gst-plugins-base-libs-gstrtsptransport.html#GstRTSPRange" title="struct GstRTSPRange"><span class="type">GstRTSPRange</span></a> <em class="structfield"><code><a name="GstRTSPTransport.port"></a>port</code></em>;</p></td>
-<td class="struct_member_description"><p>the port pair for multicast sessions</p></td>
-<td class="struct_member_annotations"> </td>
-</tr>
-<tr>
-<td class="struct_member_name"><p><a class="link" href="gst-plugins-base-libs-gstrtsptransport.html#GstRTSPRange" title="struct GstRTSPRange"><span class="type">GstRTSPRange</span></a> <em class="structfield"><code><a name="GstRTSPTransport.client-port"></a>client_port</code></em>;</p></td>
-<td class="struct_member_description"><p>the client port pair for receiving data. For TCP
-based transports, applications can use this field to store the
-sender and receiver ports of the client.</p></td>
-<td class="struct_member_annotations"> </td>
-</tr>
-<tr>
-<td class="struct_member_name"><p><a class="link" href="gst-plugins-base-libs-gstrtsptransport.html#GstRTSPRange" title="struct GstRTSPRange"><span class="type">GstRTSPRange</span></a> <em class="structfield"><code><a name="GstRTSPTransport.server-port"></a>server_port</code></em>;</p></td>
-<td class="struct_member_description"><p>the server port pair for receiving data. For TCP
-based transports, applications can use this field to store the
-sender and receiver ports of the server.</p></td>
-<td class="struct_member_annotations"> </td>
-</tr>
-<tr>
-<td class="struct_member_name"><p><a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#guint"><span class="type">guint</span></a> <em class="structfield"><code><a name="GstRTSPTransport.ssrc"></a>ssrc</code></em>;</p></td>
-<td class="struct_member_description"><p>the ssrc that the sender/receiver will use</p></td>
-<td class="struct_member_annotations"> </td>
-</tr>
-</tbody>
-</table></div>
-</div>
 </div>
 </div>
 </div>
diff --git a/docs/libs/html/gst-plugins-base-libs-gstrtspurl.html b/docs/libs/html/gst-plugins-base-libs-gstrtspurl.html
index a70d5f0..f97b8c9 100644
--- a/docs/libs/html/gst-plugins-base-libs-gstrtspurl.html
+++ b/docs/libs/html/gst-plugins-base-libs-gstrtspurl.html
@@ -27,7 +27,7 @@
 <div class="refnamediv"><table width="100%"><tr>
 <td valign="top">
 <h2><span class="refentrytitle"><a name="gst-plugins-base-libs-gstrtspurl.top_of_page"></a>gstrtspurl</span></h2>
-<p>gstrtspurl — handling RTSP urls</p>
+<p>gstrtspurl</p>
 </td>
 <td class="gallery_image" valign="top" align="right"></td>
 </tr></table></div>
@@ -124,7 +124,6 @@
 </div>
 <div class="refsect1">
 <a name="gst-plugins-base-libs-gstrtspurl.description"></a><h2>Description</h2>
-<p>Provides helper functions to handle RTSP urls.</p>
 </div>
 <div class="refsect1">
 <a name="gst-plugins-base-libs-gstrtspurl.functions_details"></a><h2>Functions</h2>
@@ -133,113 +132,24 @@
 <pre class="programlisting"><a class="link" href="gst-plugins-base-libs-gstrtspdefs.html#GstRTSPResult" title="enum GstRTSPResult"><span class="returnvalue">GstRTSPResult</span></a>
 gst_rtsp_url_parse (<em class="parameter"><code>const <a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *urlstr</code></em>,
                     <em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstrtspurl.html#GstRTSPUrl" title="struct GstRTSPUrl"><span class="type">GstRTSPUrl</span></a> **url</code></em>);</pre>
-<p>Parse the RTSP <em class="parameter"><code>urlstr</code></em>
- into a newly allocated <a class="link" href="gst-plugins-base-libs-gstrtspurl.html#GstRTSPUrl" title="struct GstRTSPUrl"><span class="type">GstRTSPUrl</span></a>. Free after usage
-with <a class="link" href="gst-plugins-base-libs-gstrtspurl.html#gst-rtsp-url-free" title="gst_rtsp_url_free ()"><code class="function">gst_rtsp_url_free()</code></a>.</p>
-<div class="refsect3">
-<a name="gst-rtsp-url-parse.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>urlstr</p></td>
-<td class="parameter_description"><p>the url string to parse</p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-<tr>
-<td class="parameter_name"><p>url</p></td>
-<td class="parameter_description"><p> location to hold the result. </p></td>
-<td class="parameter_annotations"><span class="annotation">[<acronym title="Parameter for returning results. Default is transfer full."><span class="acronym">out</span></acronym>]</span></td>
-</tr>
-</tbody>
-</table></div>
-</div>
-<div class="refsect3">
-<a name="gst-rtsp-url-parse.returns"></a><h4>Returns</h4>
-<p> a <a class="link" href="gst-plugins-base-libs-gstrtspdefs.html#GstRTSPResult" title="enum GstRTSPResult"><span class="type">GstRTSPResult</span></a>.</p>
-</div>
 </div>
 <hr>
 <div class="refsect2">
 <a name="gst-rtsp-url-copy"></a><h3>gst_rtsp_url_copy ()</h3>
 <pre class="programlisting"><a class="link" href="gst-plugins-base-libs-gstrtspurl.html#GstRTSPUrl" title="struct GstRTSPUrl"><span class="returnvalue">GstRTSPUrl</span></a> *
 gst_rtsp_url_copy (<em class="parameter"><code>const <a class="link" href="gst-plugins-base-libs-gstrtspurl.html#GstRTSPUrl" title="struct GstRTSPUrl"><span class="type">GstRTSPUrl</span></a> *url</code></em>);</pre>
-<p>Make a copy of <em class="parameter"><code>url</code></em>
-.</p>
-<div class="refsect3">
-<a name="gst-rtsp-url-copy.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>url</p></td>
-<td class="parameter_description"><p>a <a class="link" href="gst-plugins-base-libs-gstrtspurl.html#GstRTSPUrl" title="struct GstRTSPUrl"><span class="type">GstRTSPUrl</span></a></p></td>
-<td class="parameter_annotations"> </td>
-</tr></tbody>
-</table></div>
-</div>
-<div class="refsect3">
-<a name="gst-rtsp-url-copy.returns"></a><h4>Returns</h4>
-<p> a copy of <em class="parameter"><code>url</code></em>
-. Free with <a class="link" href="gst-plugins-base-libs-gstrtspurl.html#gst-rtsp-url-free" title="gst_rtsp_url_free ()"><code class="function">gst_rtsp_url_free()</code></a> after usage.</p>
-</div>
 </div>
 <hr>
 <div class="refsect2">
 <a name="gst-rtsp-url-free"></a><h3>gst_rtsp_url_free ()</h3>
 <pre class="programlisting"><span class="returnvalue">void</span>
 gst_rtsp_url_free (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstrtspurl.html#GstRTSPUrl" title="struct GstRTSPUrl"><span class="type">GstRTSPUrl</span></a> *url</code></em>);</pre>
-<p>Free the memory used by <em class="parameter"><code>url</code></em>
-.</p>
-<div class="refsect3">
-<a name="gst-rtsp-url-free.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>url</p></td>
-<td class="parameter_description"><p>a <a class="link" href="gst-plugins-base-libs-gstrtspurl.html#GstRTSPUrl" title="struct GstRTSPUrl"><span class="type">GstRTSPUrl</span></a></p></td>
-<td class="parameter_annotations"> </td>
-</tr></tbody>
-</table></div>
-</div>
 </div>
 <hr>
 <div class="refsect2">
 <a name="gst-rtsp-url-get-request-uri"></a><h3>gst_rtsp_url_get_request_uri ()</h3>
 <pre class="programlisting"><a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> *
 gst_rtsp_url_get_request_uri (<em class="parameter"><code>const <a class="link" href="gst-plugins-base-libs-gstrtspurl.html#GstRTSPUrl" title="struct GstRTSPUrl"><span class="type">GstRTSPUrl</span></a> *url</code></em>);</pre>
-<p>Get a newly allocated string describing the request URI for <em class="parameter"><code>url</code></em>
-.</p>
-<div class="refsect3">
-<a name="gst-rtsp-url-get-request-uri.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>url</p></td>
-<td class="parameter_description"><p>a <a class="link" href="gst-plugins-base-libs-gstrtspurl.html#GstRTSPUrl" title="struct GstRTSPUrl"><span class="type">GstRTSPUrl</span></a></p></td>
-<td class="parameter_annotations"> </td>
-</tr></tbody>
-</table></div>
-</div>
-<div class="refsect3">
-<a name="gst-rtsp-url-get-request-uri.returns"></a><h4>Returns</h4>
-<p> a string with the request URI. <a href="/usr/share/gtk-doc/html/glibglib-Memory-Allocation.html#g-free"><code class="function">g_free()</code></a> after usage.</p>
-</div>
 </div>
 <hr>
 <div class="refsect2">
@@ -247,35 +157,6 @@
 <pre class="programlisting"><a class="link" href="gst-plugins-base-libs-gstrtspdefs.html#GstRTSPResult" title="enum GstRTSPResult"><span class="returnvalue">GstRTSPResult</span></a>
 gst_rtsp_url_set_port (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstrtspurl.html#GstRTSPUrl" title="struct GstRTSPUrl"><span class="type">GstRTSPUrl</span></a> *url</code></em>,
                        <em class="parameter"><code><a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#guint16"><span class="type">guint16</span></a> port</code></em>);</pre>
-<p>Set the port number in <em class="parameter"><code>url</code></em>
- to <em class="parameter"><code>port</code></em>
-.</p>
-<div class="refsect3">
-<a name="gst-rtsp-url-set-port.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>url</p></td>
-<td class="parameter_description"><p>a <a class="link" href="gst-plugins-base-libs-gstrtspurl.html#GstRTSPUrl" title="struct GstRTSPUrl"><span class="type">GstRTSPUrl</span></a></p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-<tr>
-<td class="parameter_name"><p>port</p></td>
-<td class="parameter_description"><p>the port</p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-</tbody>
-</table></div>
-</div>
-<div class="refsect3">
-<a name="gst-rtsp-url-set-port.returns"></a><h4>Returns</h4>
-<p> <a class="link" href="gst-plugins-base-libs-gstrtspdefs.html#GST-RTSP-OK:CAPS"><span class="type">GST_RTSP_OK</span></a>.</p>
-</div>
 </div>
 <hr>
 <div class="refsect2">
@@ -283,71 +164,12 @@
 <pre class="programlisting"><a class="link" href="gst-plugins-base-libs-gstrtspdefs.html#GstRTSPResult" title="enum GstRTSPResult"><span class="returnvalue">GstRTSPResult</span></a>
 gst_rtsp_url_get_port (<em class="parameter"><code>const <a class="link" href="gst-plugins-base-libs-gstrtspurl.html#GstRTSPUrl" title="struct GstRTSPUrl"><span class="type">GstRTSPUrl</span></a> *url</code></em>,
                        <em class="parameter"><code><a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#guint16"><span class="type">guint16</span></a> *port</code></em>);</pre>
-<p>Get the port number of <em class="parameter"><code>url</code></em>
-.</p>
-<div class="refsect3">
-<a name="gst-rtsp-url-get-port.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>url</p></td>
-<td class="parameter_description"><p>a <a class="link" href="gst-plugins-base-libs-gstrtspurl.html#GstRTSPUrl" title="struct GstRTSPUrl"><span class="type">GstRTSPUrl</span></a></p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-<tr>
-<td class="parameter_name"><p>port</p></td>
-<td class="parameter_description"><p>location to hold the port</p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-</tbody>
-</table></div>
-</div>
-<div class="refsect3">
-<a name="gst-rtsp-url-get-port.returns"></a><h4>Returns</h4>
-<p> <a class="link" href="gst-plugins-base-libs-gstrtspdefs.html#GST-RTSP-OK:CAPS"><span class="type">GST_RTSP_OK</span></a>.</p>
-</div>
 </div>
 <hr>
 <div class="refsect2">
 <a name="gst-rtsp-url-decode-path-components"></a><h3>gst_rtsp_url_decode_path_components ()</h3>
 <pre class="programlisting"><a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> **
 gst_rtsp_url_decode_path_components (<em class="parameter"><code>const <a class="link" href="gst-plugins-base-libs-gstrtspurl.html#GstRTSPUrl" title="struct GstRTSPUrl"><span class="type">GstRTSPUrl</span></a> *url</code></em>);</pre>
-<p>Splits the path of <em class="parameter"><code>url</code></em>
- on '/' boundaries, decoding the resulting components,</p>
-<p>The decoding performed by this routine is "URI decoding", as defined in RFC
-3986, commonly known as percent-decoding. For example, a string "foo%2fbar"
-will decode to "foo/bar" -- the %2f being replaced by the corresponding byte
-with hex value 0x2f. Note that there is no guarantee that the resulting byte
-sequence is valid in any given encoding. As a special case, %00 is not
-unescaped to NUL, as that would prematurely terminate the string.</p>
-<p>Also note that since paths usually start with a slash, the first component
-will usually be the empty string.</p>
-<div class="refsect3">
-<a name="gst-rtsp-url-decode-path-components.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>url</p></td>
-<td class="parameter_description"><p>a <a class="link" href="gst-plugins-base-libs-gstrtspurl.html#GstRTSPUrl" title="struct GstRTSPUrl"><span class="type">GstRTSPUrl</span></a></p></td>
-<td class="parameter_annotations"> </td>
-</tr></tbody>
-</table></div>
-</div>
-<div class="refsect3">
-<a name="gst-rtsp-url-decode-path-components.returns"></a><h4>Returns</h4>
-<p> <a href="/usr/share/gtk-doc/html/glibglib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a>-terminated array of URL components. Free with
-<a href="/usr/share/gtk-doc/html/glibglib-String-Utility-Functions.html#g-strfreev"><code class="function">g_strfreev()</code></a> when no longer needed. </p>
-<p><span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>]</span></p>
-</div>
 </div>
 </div>
 <div class="refsect1">
@@ -356,7 +178,6 @@
 <a name="GST-RTSP-DEFAULT-PORT:CAPS"></a><h3>GST_RTSP_DEFAULT_PORT</h3>
 <pre class="programlisting">#define GST_RTSP_DEFAULT_PORT       554
 </pre>
-<p>The default RTSP port to connect to.</p>
 </div>
 <hr>
 <div class="refsect2">
@@ -372,59 +193,6 @@
   gchar             *query;
 };
 </pre>
-<p>This structure contains the result of a parsed RTSP URL</p>
-<div class="refsect3">
-<a name="GstRTSPUrl.members"></a><h4>Members</h4>
-<div class="informaltable"><table class="informaltable" width="100%" border="0">
-<colgroup>
-<col width="300px" class="struct_members_name">
-<col class="struct_members_description">
-<col width="200px" class="struct_members_annotations">
-</colgroup>
-<tbody>
-<tr>
-<td class="struct_member_name"><p><a class="link" href="gst-plugins-base-libs-gstrtsptransport.html#GstRTSPLowerTrans" title="enum GstRTSPLowerTrans"><span class="type">GstRTSPLowerTrans</span></a> <em class="structfield"><code><a name="GstRTSPUrl.transports"></a>transports</code></em>;</p></td>
-<td class="struct_member_description"><p>the transports allowed</p></td>
-<td class="struct_member_annotations"> </td>
-</tr>
-<tr>
-<td class="struct_member_name"><p><a class="link" href="gst-plugins-base-libs-gstrtspdefs.html#GstRTSPFamily" title="enum GstRTSPFamily"><span class="type">GstRTSPFamily</span></a> <em class="structfield"><code><a name="GstRTSPUrl.family"></a>family</code></em>;</p></td>
-<td class="struct_member_description"><p>the family</p></td>
-<td class="struct_member_annotations"> </td>
-</tr>
-<tr>
-<td class="struct_member_name"><p><a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *<em class="structfield"><code><a name="GstRTSPUrl.user"></a>user</code></em>;</p></td>
-<td class="struct_member_description"><p>the user</p></td>
-<td class="struct_member_annotations"> </td>
-</tr>
-<tr>
-<td class="struct_member_name"><p><a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *<em class="structfield"><code><a name="GstRTSPUrl.passwd"></a>passwd</code></em>;</p></td>
-<td class="struct_member_description"><p>the password</p></td>
-<td class="struct_member_annotations"> </td>
-</tr>
-<tr>
-<td class="struct_member_name"><p><a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *<em class="structfield"><code><a name="GstRTSPUrl.host"></a>host</code></em>;</p></td>
-<td class="struct_member_description"><p>the host</p></td>
-<td class="struct_member_annotations"> </td>
-</tr>
-<tr>
-<td class="struct_member_name"><p><a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#guint16"><span class="type">guint16</span></a> <em class="structfield"><code><a name="GstRTSPUrl.port"></a>port</code></em>;</p></td>
-<td class="struct_member_description"><p>the port</p></td>
-<td class="struct_member_annotations"> </td>
-</tr>
-<tr>
-<td class="struct_member_name"><p><a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *<em class="structfield"><code><a name="GstRTSPUrl.abspath"></a>abspath</code></em>;</p></td>
-<td class="struct_member_description"><p>the absolute path</p></td>
-<td class="struct_member_annotations"> </td>
-</tr>
-<tr>
-<td class="struct_member_name"><p><a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *<em class="structfield"><code><a name="GstRTSPUrl.query"></a>query</code></em>;</p></td>
-<td class="struct_member_description"><p>additional query parameters</p></td>
-<td class="struct_member_annotations"> </td>
-</tr>
-</tbody>
-</table></div>
-</div>
 </div>
 </div>
 </div>
diff --git a/docs/libs/html/gst-plugins-base-libs-gstsdpmessage.html b/docs/libs/html/gst-plugins-base-libs-gstsdpmessage.html
index 3c4d310..35eec2e 100644
--- a/docs/libs/html/gst-plugins-base-libs-gstsdpmessage.html
+++ b/docs/libs/html/gst-plugins-base-libs-gstsdpmessage.html
@@ -27,7 +27,7 @@
 <div class="refnamediv"><table width="100%"><tr>
 <td valign="top">
 <h2><span class="refentrytitle"><a name="gst-plugins-base-libs-gstsdpmessage.top_of_page"></a>gstsdpmessage</span></h2>
-<p>gstsdpmessage — Helper methods for dealing with SDP messages</p>
+<p>gstsdpmessage</p>
 </td>
 <td class="gallery_image" valign="top" align="right"></td>
 </tr></table></div>
@@ -1090,12 +1090,6 @@
 </div>
 <div class="refsect1">
 <a name="gst-plugins-base-libs-gstsdpmessage.description"></a><h2>Description</h2>
-<div class="refsect2">
-<a name="id-1.2.11.3.6.2"></a><p>
-The GstSDPMessage helper functions makes it easy to parse and create SDP
-messages.
-</p>
-</div>
 </div>
 <div class="refsect1">
 <a name="gst-plugins-base-libs-gstsdpmessage.functions_details"></a><h2>Functions</h2>
@@ -1108,84 +1102,12 @@
                         <em class="parameter"><code>const <a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *address</code></em>,
                         <em class="parameter"><code><a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#guint"><span class="type">guint</span></a> ttl</code></em>,
                         <em class="parameter"><code><a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#guint"><span class="type">guint</span></a> addr_number</code></em>);</pre>
-<p>Set the connection with the given parameters.</p>
-<div class="refsect3">
-<a name="gst-sdp-connection-set.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>conn</p></td>
-<td class="parameter_description"><p>a <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPConnection" title="GstSDPConnection"><span class="type">GstSDPConnection</span></a></p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-<tr>
-<td class="parameter_name"><p>nettype</p></td>
-<td class="parameter_description"><p>the type of network. "IN" is defined to have the meaning
-"Internet".</p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-<tr>
-<td class="parameter_name"><p>addrtype</p></td>
-<td class="parameter_description"><p>the type of address.</p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-<tr>
-<td class="parameter_name"><p>address</p></td>
-<td class="parameter_description"><p>the address</p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-<tr>
-<td class="parameter_name"><p>ttl</p></td>
-<td class="parameter_description"><p>the time to live of the address</p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-<tr>
-<td class="parameter_name"><p>addr_number</p></td>
-<td class="parameter_description"><p>the number of layers</p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-</tbody>
-</table></div>
-</div>
-<div class="refsect3">
-<a name="gst-sdp-connection-set.returns"></a><h4>Returns</h4>
-<p> <em class="parameter"><code>GST_SDP_OK</code></em>
-.</p>
-</div>
-<p class="since">Since: 1.2</p>
 </div>
 <hr>
 <div class="refsect2">
 <a name="gst-sdp-connection-clear"></a><h3>gst_sdp_connection_clear ()</h3>
 <pre class="programlisting"><a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPResult" title="enum GstSDPResult"><span class="returnvalue">GstSDPResult</span></a>
 gst_sdp_connection_clear (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPConnection" title="GstSDPConnection"><span class="type">GstSDPConnection</span></a> *conn</code></em>);</pre>
-<p>Clear the connection.</p>
-<div class="refsect3">
-<a name="gst-sdp-connection-clear.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>conn</p></td>
-<td class="parameter_description"><p>a <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPConnection" title="GstSDPConnection"><span class="type">GstSDPConnection</span></a></p></td>
-<td class="parameter_annotations"> </td>
-</tr></tbody>
-</table></div>
-</div>
-<div class="refsect3">
-<a name="gst-sdp-connection-clear.returns"></a><h4>Returns</h4>
-<p> <em class="parameter"><code>GST_SDP_OK</code></em>
-.</p>
-</div>
-<p class="since">Since: 1.2</p>
 </div>
 <hr>
 <div class="refsect2">
@@ -1194,68 +1116,12 @@
 gst_sdp_bandwidth_set (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPBandwidth" title="GstSDPBandwidth"><span class="type">GstSDPBandwidth</span></a> *bw</code></em>,
                        <em class="parameter"><code>const <a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *bwtype</code></em>,
                        <em class="parameter"><code><a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#guint"><span class="type">guint</span></a> bandwidth</code></em>);</pre>
-<p>Set bandwidth information in <em class="parameter"><code>bw</code></em>
-.</p>
-<div class="refsect3">
-<a name="gst-sdp-bandwidth-set.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>bw</p></td>
-<td class="parameter_description"><p>a <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPBandwidth" title="GstSDPBandwidth"><span class="type">GstSDPBandwidth</span></a></p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-<tr>
-<td class="parameter_name"><p>bwtype</p></td>
-<td class="parameter_description"><p>the bandwidth modifier type</p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-<tr>
-<td class="parameter_name"><p>bandwidth</p></td>
-<td class="parameter_description"><p>the bandwidth in kilobits per second</p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-</tbody>
-</table></div>
-</div>
-<div class="refsect3">
-<a name="gst-sdp-bandwidth-set.returns"></a><h4>Returns</h4>
-<p> a <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPResult" title="enum GstSDPResult"><span class="type">GstSDPResult</span></a>.</p>
-</div>
-<p class="since">Since: 1.2</p>
 </div>
 <hr>
 <div class="refsect2">
 <a name="gst-sdp-bandwidth-clear"></a><h3>gst_sdp_bandwidth_clear ()</h3>
 <pre class="programlisting"><a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPResult" title="enum GstSDPResult"><span class="returnvalue">GstSDPResult</span></a>
 gst_sdp_bandwidth_clear (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPBandwidth" title="GstSDPBandwidth"><span class="type">GstSDPBandwidth</span></a> *bw</code></em>);</pre>
-<p>Reset the bandwidth information in <em class="parameter"><code>bw</code></em>
-.</p>
-<div class="refsect3">
-<a name="gst-sdp-bandwidth-clear.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>bw</p></td>
-<td class="parameter_description"><p>a <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPBandwidth" title="GstSDPBandwidth"><span class="type">GstSDPBandwidth</span></a></p></td>
-<td class="parameter_annotations"> </td>
-</tr></tbody>
-</table></div>
-</div>
-<div class="refsect3">
-<a name="gst-sdp-bandwidth-clear.returns"></a><h4>Returns</h4>
-<p> a <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPResult" title="enum GstSDPResult"><span class="type">GstSDPResult</span></a>.</p>
-</div>
-<p class="since">Since: 1.2</p>
 </div>
 <hr>
 <div class="refsect2">
@@ -1265,76 +1131,12 @@
                   <em class="parameter"><code>const <a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *start</code></em>,
                   <em class="parameter"><code>const <a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *stop</code></em>,
                   <em class="parameter"><code>const <a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#gchar"><span class="type">gchar</span></a> **repeat</code></em>);</pre>
-<p>Set time information <em class="parameter"><code>start</code></em>
-, <em class="parameter"><code>stop</code></em>
- and <em class="parameter"><code>repeat</code></em>
- in <em class="parameter"><code>t</code></em>
-.</p>
-<div class="refsect3">
-<a name="gst-sdp-time-set.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>t</p></td>
-<td class="parameter_description"><p>a <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPTime" title="GstSDPTime"><span class="type">GstSDPTime</span></a></p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-<tr>
-<td class="parameter_name"><p>start</p></td>
-<td class="parameter_description"><p>the start time</p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-<tr>
-<td class="parameter_name"><p>stop</p></td>
-<td class="parameter_description"><p>the stop time</p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-<tr>
-<td class="parameter_name"><p>repeat</p></td>
-<td class="parameter_description"><p> the repeat times. </p></td>
-<td class="parameter_annotations"><span class="annotation">[<acronym title="Parameter points to an array of items."><span class="acronym">array</span></acronym> zero-terminated=1]</span></td>
-</tr>
-</tbody>
-</table></div>
-</div>
-<div class="refsect3">
-<a name="gst-sdp-time-set.returns"></a><h4>Returns</h4>
-<p> a <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPResult" title="enum GstSDPResult"><span class="type">GstSDPResult</span></a>.</p>
-</div>
-<p class="since">Since: 1.2</p>
 </div>
 <hr>
 <div class="refsect2">
 <a name="gst-sdp-time-clear"></a><h3>gst_sdp_time_clear ()</h3>
 <pre class="programlisting"><a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPResult" title="enum GstSDPResult"><span class="returnvalue">GstSDPResult</span></a>
 gst_sdp_time_clear (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPTime" title="GstSDPTime"><span class="type">GstSDPTime</span></a> *t</code></em>);</pre>
-<p>Reset the time information in <em class="parameter"><code>t</code></em>
-.</p>
-<div class="refsect3">
-<a name="gst-sdp-time-clear.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>t</p></td>
-<td class="parameter_description"><p>a <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPTime" title="GstSDPTime"><span class="type">GstSDPTime</span></a></p></td>
-<td class="parameter_annotations"> </td>
-</tr></tbody>
-</table></div>
-</div>
-<div class="refsect3">
-<a name="gst-sdp-time-clear.returns"></a><h4>Returns</h4>
-<p> a <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPResult" title="enum GstSDPResult"><span class="type">GstSDPResult</span></a>.</p>
-</div>
-<p class="since">Since: 1.2</p>
 </div>
 <hr>
 <div class="refsect2">
@@ -1343,68 +1145,12 @@
 gst_sdp_zone_set (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPZone" title="GstSDPZone"><span class="type">GstSDPZone</span></a> *zone</code></em>,
                   <em class="parameter"><code>const <a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *adj_time</code></em>,
                   <em class="parameter"><code>const <a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *typed_time</code></em>);</pre>
-<p>Set zone information in <em class="parameter"><code>zone</code></em>
-.</p>
-<div class="refsect3">
-<a name="gst-sdp-zone-set.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>zone</p></td>
-<td class="parameter_description"><p>a <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPZone" title="GstSDPZone"><span class="type">GstSDPZone</span></a></p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-<tr>
-<td class="parameter_name"><p>adj_time</p></td>
-<td class="parameter_description"><p>the NTP time that a time zone adjustment happens</p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-<tr>
-<td class="parameter_name"><p>typed_time</p></td>
-<td class="parameter_description"><p>the offset from the time when the session was first scheduled</p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-</tbody>
-</table></div>
-</div>
-<div class="refsect3">
-<a name="gst-sdp-zone-set.returns"></a><h4>Returns</h4>
-<p> a <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPResult" title="enum GstSDPResult"><span class="type">GstSDPResult</span></a>.</p>
-</div>
-<p class="since">Since: 1.2</p>
 </div>
 <hr>
 <div class="refsect2">
 <a name="gst-sdp-zone-clear"></a><h3>gst_sdp_zone_clear ()</h3>
 <pre class="programlisting"><a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPResult" title="enum GstSDPResult"><span class="returnvalue">GstSDPResult</span></a>
 gst_sdp_zone_clear (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPZone" title="GstSDPZone"><span class="type">GstSDPZone</span></a> *zone</code></em>);</pre>
-<p>Reset the zone information in <em class="parameter"><code>zone</code></em>
-.</p>
-<div class="refsect3">
-<a name="gst-sdp-zone-clear.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>zone</p></td>
-<td class="parameter_description"><p>a <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPZone" title="GstSDPZone"><span class="type">GstSDPZone</span></a></p></td>
-<td class="parameter_annotations"> </td>
-</tr></tbody>
-</table></div>
-</div>
-<div class="refsect3">
-<a name="gst-sdp-zone-clear.returns"></a><h4>Returns</h4>
-<p> a <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPResult" title="enum GstSDPResult"><span class="type">GstSDPResult</span></a>.</p>
-</div>
-<p class="since">Since: 1.2</p>
 </div>
 <hr>
 <div class="refsect2">
@@ -1413,97 +1159,18 @@
 gst_sdp_attribute_set (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPAttribute" title="GstSDPAttribute"><span class="type">GstSDPAttribute</span></a> *attr</code></em>,
                        <em class="parameter"><code>const <a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *key</code></em>,
                        <em class="parameter"><code>const <a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *value</code></em>);</pre>
-<p>Set the attribute with <em class="parameter"><code>key</code></em>
- and <em class="parameter"><code>value</code></em>
-.</p>
-<div class="refsect3">
-<a name="gst-sdp-attribute-set.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>attr</p></td>
-<td class="parameter_description"><p>a <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPAttribute" title="GstSDPAttribute"><span class="type">GstSDPAttribute</span></a></p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-<tr>
-<td class="parameter_name"><p>key</p></td>
-<td class="parameter_description"><p>the key</p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-<tr>
-<td class="parameter_name"><p>value</p></td>
-<td class="parameter_description"><p>the value</p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-</tbody>
-</table></div>
-</div>
-<div class="refsect3">
-<a name="gst-sdp-attribute-set.returns"></a><h4>Returns</h4>
-<p> <em class="parameter"><code>GST_SDP_OK</code></em>
-.</p>
-</div>
-<p class="since">Since: 1.2</p>
 </div>
 <hr>
 <div class="refsect2">
 <a name="gst-sdp-attribute-clear"></a><h3>gst_sdp_attribute_clear ()</h3>
 <pre class="programlisting"><a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPResult" title="enum GstSDPResult"><span class="returnvalue">GstSDPResult</span></a>
 gst_sdp_attribute_clear (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPAttribute" title="GstSDPAttribute"><span class="type">GstSDPAttribute</span></a> *attr</code></em>);</pre>
-<p>Clear the attribute.</p>
-<div class="refsect3">
-<a name="gst-sdp-attribute-clear.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>attr</p></td>
-<td class="parameter_description"><p>a <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPAttribute" title="GstSDPAttribute"><span class="type">GstSDPAttribute</span></a></p></td>
-<td class="parameter_annotations"> </td>
-</tr></tbody>
-</table></div>
-</div>
-<div class="refsect3">
-<a name="gst-sdp-attribute-clear.returns"></a><h4>Returns</h4>
-<p> <em class="parameter"><code>GST_SDP_OK</code></em>
-.</p>
-</div>
-<p class="since">Since: 1.2</p>
 </div>
 <hr>
 <div class="refsect2">
 <a name="gst-sdp-message-new"></a><h3>gst_sdp_message_new ()</h3>
 <pre class="programlisting"><a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPResult" title="enum GstSDPResult"><span class="returnvalue">GstSDPResult</span></a>
 gst_sdp_message_new (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPMessage" title="GstSDPMessage"><span class="type">GstSDPMessage</span></a> **msg</code></em>);</pre>
-<p>Allocate a new GstSDPMessage and store the result in <em class="parameter"><code>msg</code></em>
-.</p>
-<div class="refsect3">
-<a name="gst-sdp-message-new.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>msg</p></td>
-<td class="parameter_description"><p> pointer to new <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPMessage" title="GstSDPMessage"><span class="type">GstSDPMessage</span></a>. </p></td>
-<td class="parameter_annotations"><span class="annotation">[<acronym title="Parameter for returning results. Default is transfer full."><span class="acronym">out</span></acronym>][<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>]</span></td>
-</tr></tbody>
-</table></div>
-</div>
-<div class="refsect3">
-<a name="gst-sdp-message-new.returns"></a><h4>Returns</h4>
-<p> a <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPResult" title="enum GstSDPResult"><span class="type">GstSDPResult</span></a>.</p>
-</div>
 </div>
 <hr>
 <div class="refsect2">
@@ -1511,131 +1178,24 @@
 <pre class="programlisting"><a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPResult" title="enum GstSDPResult"><span class="returnvalue">GstSDPResult</span></a>
 gst_sdp_message_copy (<em class="parameter"><code>const <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPMessage" title="GstSDPMessage"><span class="type">GstSDPMessage</span></a> *msg</code></em>,
                       <em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPMessage" title="GstSDPMessage"><span class="type">GstSDPMessage</span></a> **copy</code></em>);</pre>
-<p>Allocate a new copy of <em class="parameter"><code>msg</code></em>
- and store the result in <em class="parameter"><code>copy</code></em>
-. The value in
-<em class="parameter"><code>copy</code></em>
- should be release with gst_sdp_message_free function.</p>
-<div class="refsect3">
-<a name="gst-sdp-message-copy.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>msg</p></td>
-<td class="parameter_description"><p>a <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPMessage" title="GstSDPMessage"><span class="type">GstSDPMessage</span></a></p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-<tr>
-<td class="parameter_name"><p>copy</p></td>
-<td class="parameter_description"><p> pointer to new <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPMessage" title="GstSDPMessage"><span class="type">GstSDPMessage</span></a>. </p></td>
-<td class="parameter_annotations"><span class="annotation">[<acronym title="Parameter for returning results. Default is transfer full."><span class="acronym">out</span></acronym>][<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>]</span></td>
-</tr>
-</tbody>
-</table></div>
-</div>
-<div class="refsect3">
-<a name="gst-sdp-message-copy.returns"></a><h4>Returns</h4>
-<p> a <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPResult" title="enum GstSDPResult"><span class="type">GstSDPResult</span></a></p>
-</div>
-<p class="since">Since: 1.2</p>
 </div>
 <hr>
 <div class="refsect2">
 <a name="gst-sdp-message-init"></a><h3>gst_sdp_message_init ()</h3>
 <pre class="programlisting"><a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPResult" title="enum GstSDPResult"><span class="returnvalue">GstSDPResult</span></a>
 gst_sdp_message_init (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPMessage" title="GstSDPMessage"><span class="type">GstSDPMessage</span></a> *msg</code></em>);</pre>
-<p>Initialize <em class="parameter"><code>msg</code></em>
- so that its contents are as if it was freshly allocated
-with <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#gst-sdp-message-new" title="gst_sdp_message_new ()"><code class="function">gst_sdp_message_new()</code></a>. This function is mostly used to initialize a message
-allocated on the stack. <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#gst-sdp-message-uninit" title="gst_sdp_message_uninit ()"><code class="function">gst_sdp_message_uninit()</code></a> undoes this operation.</p>
-<p>When this function is invoked on newly allocated data (with malloc or on the
-stack), its contents should be set to 0 before calling this function.</p>
-<div class="refsect3">
-<a name="gst-sdp-message-init.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>msg</p></td>
-<td class="parameter_description"><p>a <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPMessage" title="GstSDPMessage"><span class="type">GstSDPMessage</span></a></p></td>
-<td class="parameter_annotations"> </td>
-</tr></tbody>
-</table></div>
-</div>
-<div class="refsect3">
-<a name="gst-sdp-message-init.returns"></a><h4>Returns</h4>
-<p> a <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPResult" title="enum GstSDPResult"><span class="type">GstSDPResult</span></a>.</p>
-</div>
 </div>
 <hr>
 <div class="refsect2">
 <a name="gst-sdp-message-uninit"></a><h3>gst_sdp_message_uninit ()</h3>
 <pre class="programlisting"><a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPResult" title="enum GstSDPResult"><span class="returnvalue">GstSDPResult</span></a>
 gst_sdp_message_uninit (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPMessage" title="GstSDPMessage"><span class="type">GstSDPMessage</span></a> *msg</code></em>);</pre>
-<p>Free all resources allocated in <em class="parameter"><code>msg</code></em>
-. <em class="parameter"><code>msg</code></em>
- should not be used anymore after
-this function. This function should be used when <em class="parameter"><code>msg</code></em>
- was allocated on the
-stack and initialized with <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#gst-sdp-message-init" title="gst_sdp_message_init ()"><code class="function">gst_sdp_message_init()</code></a>.</p>
-<div class="refsect3">
-<a name="gst-sdp-message-uninit.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>msg</p></td>
-<td class="parameter_description"><p>a <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPMessage" title="GstSDPMessage"><span class="type">GstSDPMessage</span></a></p></td>
-<td class="parameter_annotations"> </td>
-</tr></tbody>
-</table></div>
-</div>
-<div class="refsect3">
-<a name="gst-sdp-message-uninit.returns"></a><h4>Returns</h4>
-<p> a <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPResult" title="enum GstSDPResult"><span class="type">GstSDPResult</span></a>.</p>
-</div>
 </div>
 <hr>
 <div class="refsect2">
 <a name="gst-sdp-message-free"></a><h3>gst_sdp_message_free ()</h3>
 <pre class="programlisting"><a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPResult" title="enum GstSDPResult"><span class="returnvalue">GstSDPResult</span></a>
 gst_sdp_message_free (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPMessage" title="GstSDPMessage"><span class="type">GstSDPMessage</span></a> *msg</code></em>);</pre>
-<p>Free all resources allocated by <em class="parameter"><code>msg</code></em>
-. <em class="parameter"><code>msg</code></em>
- should not be used anymore after
-this function. This function should be used when <em class="parameter"><code>msg</code></em>
- was dynamically
-allocated with <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#gst-sdp-message-new" title="gst_sdp_message_new ()"><code class="function">gst_sdp_message_new()</code></a>.</p>
-<div class="refsect3">
-<a name="gst-sdp-message-free.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>msg</p></td>
-<td class="parameter_description"><p>a <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPMessage" title="GstSDPMessage"><span class="type">GstSDPMessage</span></a></p></td>
-<td class="parameter_annotations"> </td>
-</tr></tbody>
-</table></div>
-</div>
-<div class="refsect3">
-<a name="gst-sdp-message-free.returns"></a><h4>Returns</h4>
-<p> a <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPResult" title="enum GstSDPResult"><span class="type">GstSDPResult</span></a>.</p>
-</div>
 </div>
 <hr>
 <div class="refsect2">
@@ -1644,69 +1204,12 @@
 gst_sdp_message_parse_buffer (<em class="parameter"><code>const <a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#guint8"><span class="type">guint8</span></a> *data</code></em>,
                               <em class="parameter"><code><a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#guint"><span class="type">guint</span></a> size</code></em>,
                               <em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPMessage" title="GstSDPMessage"><span class="type">GstSDPMessage</span></a> *msg</code></em>);</pre>
-<p>Parse the contents of <em class="parameter"><code>size</code></em>
- bytes pointed to by <em class="parameter"><code>data</code></em>
- and store the result in
-<em class="parameter"><code>msg</code></em>
-.</p>
-<div class="refsect3">
-<a name="gst-sdp-message-parse-buffer.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>data</p></td>
-<td class="parameter_description"><p> the start of the buffer. </p></td>
-<td class="parameter_annotations"><span class="annotation">[<acronym title="Parameter points to an array of items."><span class="acronym">array</span></acronym> length=size]</span></td>
-</tr>
-<tr>
-<td class="parameter_name"><p>size</p></td>
-<td class="parameter_description"><p>the size of the buffer</p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-<tr>
-<td class="parameter_name"><p>msg</p></td>
-<td class="parameter_description"><p>the result <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPMessage" title="GstSDPMessage"><span class="type">GstSDPMessage</span></a></p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-</tbody>
-</table></div>
-</div>
-<div class="refsect3">
-<a name="gst-sdp-message-parse-buffer.returns"></a><h4>Returns</h4>
-<p> <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GST-SDP-OK:CAPS"><span class="type">GST_SDP_OK</span></a> on success.</p>
-</div>
 </div>
 <hr>
 <div class="refsect2">
 <a name="gst-sdp-message-as-text"></a><h3>gst_sdp_message_as_text ()</h3>
 <pre class="programlisting"><a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> *
 gst_sdp_message_as_text (<em class="parameter"><code>const <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPMessage" title="GstSDPMessage"><span class="type">GstSDPMessage</span></a> *msg</code></em>);</pre>
-<p>Convert the contents of <em class="parameter"><code>msg</code></em>
- to a text string.</p>
-<div class="refsect3">
-<a name="gst-sdp-message-as-text.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>msg</p></td>
-<td class="parameter_description"><p>a <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPMessage" title="GstSDPMessage"><span class="type">GstSDPMessage</span></a></p></td>
-<td class="parameter_annotations"> </td>
-</tr></tbody>
-</table></div>
-</div>
-<div class="refsect3">
-<a name="gst-sdp-message-as-text.returns"></a><h4>Returns</h4>
-<p> A dynamically allocated string representing the SDP description.</p>
-</div>
 </div>
 <hr>
 <div class="refsect2">
@@ -1714,39 +1217,6 @@
 <pre class="programlisting"><a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPResult" title="enum GstSDPResult"><span class="returnvalue">GstSDPResult</span></a>
 gst_sdp_message_parse_uri (<em class="parameter"><code>const <a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *uri</code></em>,
                            <em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPMessage" title="GstSDPMessage"><span class="type">GstSDPMessage</span></a> *msg</code></em>);</pre>
-<p>Parse the null-terminated <em class="parameter"><code>uri</code></em>
- and store the result in <em class="parameter"><code>msg</code></em>
-.</p>
-<p>The uri should be of the form:</p>
-<p> scheme://[address:ttl=ttl]/sessionname]</p>
-<p> where value is url encoded. This looslely resembles
- http://tools.ietf.org/html/draft-fujikawa-sdp-url-01</p>
-<div class="refsect3">
-<a name="gst-sdp-message-parse-uri.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>uri</p></td>
-<td class="parameter_description"><p>the start of the uri</p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-<tr>
-<td class="parameter_name"><p>msg</p></td>
-<td class="parameter_description"><p>the result <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPMessage" title="GstSDPMessage"><span class="type">GstSDPMessage</span></a></p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-</tbody>
-</table></div>
-</div>
-<div class="refsect3">
-<a name="gst-sdp-message-parse-uri.returns"></a><h4>Returns</h4>
-<p> <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GST-SDP-OK:CAPS"><span class="type">GST_SDP_OK</span></a> on success.</p>
-</div>
 </div>
 <hr>
 <div class="refsect2">
@@ -1754,38 +1224,6 @@
 <pre class="programlisting"><a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> *
 gst_sdp_message_as_uri (<em class="parameter"><code>const <a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *scheme</code></em>,
                         <em class="parameter"><code>const <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPMessage" title="GstSDPMessage"><span class="type">GstSDPMessage</span></a> *msg</code></em>);</pre>
-<p>Creates a uri from <em class="parameter"><code>msg</code></em>
- with the given <em class="parameter"><code>scheme</code></em>
-. The uri has the format:</p>
-<p> @scheme:///[<span class="type">type</span>=value *[&amp;type=value]]</p>
-<p> Where each value is url encoded.</p>
-<div class="refsect3">
-<a name="gst-sdp-message-as-uri.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>scheme</p></td>
-<td class="parameter_description"><p>the uri scheme</p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-<tr>
-<td class="parameter_name"><p>msg</p></td>
-<td class="parameter_description"><p>the <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPMessage" title="GstSDPMessage"><span class="type">GstSDPMessage</span></a></p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-</tbody>
-</table></div>
-</div>
-<div class="refsect3">
-<a name="gst-sdp-message-as-uri.returns"></a><h4>Returns</h4>
-<p> a uri for <em class="parameter"><code>msg</code></em>
-.</p>
-</div>
 </div>
 <hr>
 <div class="refsect2">
@@ -1794,67 +1232,12 @@
 gst_sdp_address_is_multicast (<em class="parameter"><code>const <a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *nettype</code></em>,
                               <em class="parameter"><code>const <a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *addrtype</code></em>,
                               <em class="parameter"><code>const <a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *addr</code></em>);</pre>
-<p>Check if the given <em class="parameter"><code>addr</code></em>
- is a multicast address.</p>
-<div class="refsect3">
-<a name="gst-sdp-address-is-multicast.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>nettype</p></td>
-<td class="parameter_description"><p>a network type</p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-<tr>
-<td class="parameter_name"><p>addrtype</p></td>
-<td class="parameter_description"><p>an address type</p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-<tr>
-<td class="parameter_name"><p>addr</p></td>
-<td class="parameter_description"><p>an address</p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-</tbody>
-</table></div>
-</div>
-<div class="refsect3">
-<a name="gst-sdp-address-is-multicast.returns"></a><h4>Returns</h4>
-<p> TRUE when <em class="parameter"><code>addr</code></em>
-is multicast.</p>
-</div>
 </div>
 <hr>
 <div class="refsect2">
 <a name="gst-sdp-message-get-version"></a><h3>gst_sdp_message_get_version ()</h3>
 <pre class="programlisting">const <a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> *
 gst_sdp_message_get_version (<em class="parameter"><code>const <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPMessage" title="GstSDPMessage"><span class="type">GstSDPMessage</span></a> *msg</code></em>);</pre>
-<p>Get the version in <em class="parameter"><code>msg</code></em>
-.</p>
-<div class="refsect3">
-<a name="gst-sdp-message-get-version.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>msg</p></td>
-<td class="parameter_description"><p>a <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPMessage" title="GstSDPMessage"><span class="type">GstSDPMessage</span></a></p></td>
-<td class="parameter_annotations"> </td>
-</tr></tbody>
-</table></div>
-</div>
-<div class="refsect3">
-<a name="gst-sdp-message-get-version.returns"></a><h4>Returns</h4>
-<p> a <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPResult" title="enum GstSDPResult"><span class="type">GstSDPResult</span></a>.</p>
-</div>
 </div>
 <hr>
 <div class="refsect2">
@@ -1862,62 +1245,12 @@
 <pre class="programlisting"><a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPResult" title="enum GstSDPResult"><span class="returnvalue">GstSDPResult</span></a>
 gst_sdp_message_set_version (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPMessage" title="GstSDPMessage"><span class="type">GstSDPMessage</span></a> *msg</code></em>,
                              <em class="parameter"><code>const <a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *version</code></em>);</pre>
-<p>Set the version in <em class="parameter"><code>msg</code></em>
-.</p>
-<div class="refsect3">
-<a name="gst-sdp-message-set-version.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>msg</p></td>
-<td class="parameter_description"><p>a <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPMessage" title="GstSDPMessage"><span class="type">GstSDPMessage</span></a></p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-<tr>
-<td class="parameter_name"><p>version</p></td>
-<td class="parameter_description"><p>the version</p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-</tbody>
-</table></div>
-</div>
-<div class="refsect3">
-<a name="gst-sdp-message-set-version.returns"></a><h4>Returns</h4>
-<p> a <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPResult" title="enum GstSDPResult"><span class="type">GstSDPResult</span></a>.</p>
-</div>
 </div>
 <hr>
 <div class="refsect2">
 <a name="gst-sdp-message-get-origin"></a><h3>gst_sdp_message_get_origin ()</h3>
 <pre class="programlisting">const <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPOrigin" title="GstSDPOrigin"><span class="returnvalue">GstSDPOrigin</span></a> *
 gst_sdp_message_get_origin (<em class="parameter"><code>const <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPMessage" title="GstSDPMessage"><span class="type">GstSDPMessage</span></a> *msg</code></em>);</pre>
-<p>Get the origin of <em class="parameter"><code>msg</code></em>
-.</p>
-<div class="refsect3">
-<a name="gst-sdp-message-get-origin.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>msg</p></td>
-<td class="parameter_description"><p>a <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPMessage" title="GstSDPMessage"><span class="type">GstSDPMessage</span></a></p></td>
-<td class="parameter_annotations"> </td>
-</tr></tbody>
-</table></div>
-</div>
-<div class="refsect3">
-<a name="gst-sdp-message-get-origin.returns"></a><h4>Returns</h4>
-<p> a <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPOrigin" title="GstSDPOrigin"><span class="type">GstSDPOrigin</span></a>. The result remains valid as long as <em class="parameter"><code>msg</code></em>
-is valid.</p>
-</div>
 </div>
 <hr>
 <div class="refsect2">
@@ -1930,86 +1263,12 @@
                             <em class="parameter"><code>const <a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *nettype</code></em>,
                             <em class="parameter"><code>const <a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *addrtype</code></em>,
                             <em class="parameter"><code>const <a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *addr</code></em>);</pre>
-<p>Configure the SDP origin in <em class="parameter"><code>msg</code></em>
- with the given parameters.</p>
-<div class="refsect3">
-<a name="gst-sdp-message-set-origin.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>msg</p></td>
-<td class="parameter_description"><p>a <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPMessage" title="GstSDPMessage"><span class="type">GstSDPMessage</span></a></p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-<tr>
-<td class="parameter_name"><p>username</p></td>
-<td class="parameter_description"><p>the user name</p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-<tr>
-<td class="parameter_name"><p>sess_id</p></td>
-<td class="parameter_description"><p>a session id</p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-<tr>
-<td class="parameter_name"><p>sess_version</p></td>
-<td class="parameter_description"><p>a session version</p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-<tr>
-<td class="parameter_name"><p>nettype</p></td>
-<td class="parameter_description"><p>a network type</p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-<tr>
-<td class="parameter_name"><p>addrtype</p></td>
-<td class="parameter_description"><p>an address type</p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-<tr>
-<td class="parameter_name"><p>addr</p></td>
-<td class="parameter_description"><p>an address</p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-</tbody>
-</table></div>
-</div>
-<div class="refsect3">
-<a name="gst-sdp-message-set-origin.returns"></a><h4>Returns</h4>
-<p> <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GST-SDP-OK:CAPS"><span class="type">GST_SDP_OK</span></a>.</p>
-</div>
 </div>
 <hr>
 <div class="refsect2">
 <a name="gst-sdp-message-get-session-name"></a><h3>gst_sdp_message_get_session_name ()</h3>
 <pre class="programlisting">const <a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> *
 gst_sdp_message_get_session_name (<em class="parameter"><code>const <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPMessage" title="GstSDPMessage"><span class="type">GstSDPMessage</span></a> *msg</code></em>);</pre>
-<p>Get the session name in <em class="parameter"><code>msg</code></em>
-.</p>
-<div class="refsect3">
-<a name="gst-sdp-message-get-session-name.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>msg</p></td>
-<td class="parameter_description"><p>a <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPMessage" title="GstSDPMessage"><span class="type">GstSDPMessage</span></a></p></td>
-<td class="parameter_annotations"> </td>
-</tr></tbody>
-</table></div>
-</div>
-<div class="refsect3">
-<a name="gst-sdp-message-get-session-name.returns"></a><h4>Returns</h4>
-<p> a <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPResult" title="enum GstSDPResult"><span class="type">GstSDPResult</span></a>.</p>
-</div>
 </div>
 <hr>
 <div class="refsect2">
@@ -2017,61 +1276,12 @@
 <pre class="programlisting"><a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPResult" title="enum GstSDPResult"><span class="returnvalue">GstSDPResult</span></a>
 gst_sdp_message_set_session_name (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPMessage" title="GstSDPMessage"><span class="type">GstSDPMessage</span></a> *msg</code></em>,
                                   <em class="parameter"><code>const <a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *session_name</code></em>);</pre>
-<p>Set the session name in <em class="parameter"><code>msg</code></em>
-.</p>
-<div class="refsect3">
-<a name="gst-sdp-message-set-session-name.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>msg</p></td>
-<td class="parameter_description"><p>a <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPMessage" title="GstSDPMessage"><span class="type">GstSDPMessage</span></a></p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-<tr>
-<td class="parameter_name"><p>session_name</p></td>
-<td class="parameter_description"><p>the session name</p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-</tbody>
-</table></div>
-</div>
-<div class="refsect3">
-<a name="gst-sdp-message-set-session-name.returns"></a><h4>Returns</h4>
-<p> a <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPResult" title="enum GstSDPResult"><span class="type">GstSDPResult</span></a>.</p>
-</div>
 </div>
 <hr>
 <div class="refsect2">
 <a name="gst-sdp-message-get-information"></a><h3>gst_sdp_message_get_information ()</h3>
 <pre class="programlisting">const <a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> *
 gst_sdp_message_get_information (<em class="parameter"><code>const <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPMessage" title="GstSDPMessage"><span class="type">GstSDPMessage</span></a> *msg</code></em>);</pre>
-<p>Get the information in <em class="parameter"><code>msg</code></em>
-.</p>
-<div class="refsect3">
-<a name="gst-sdp-message-get-information.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>msg</p></td>
-<td class="parameter_description"><p>a <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPMessage" title="GstSDPMessage"><span class="type">GstSDPMessage</span></a></p></td>
-<td class="parameter_annotations"> </td>
-</tr></tbody>
-</table></div>
-</div>
-<div class="refsect3">
-<a name="gst-sdp-message-get-information.returns"></a><h4>Returns</h4>
-<p> a <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPResult" title="enum GstSDPResult"><span class="type">GstSDPResult</span></a>.</p>
-</div>
 </div>
 <hr>
 <div class="refsect2">
@@ -2079,61 +1289,12 @@
 <pre class="programlisting"><a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPResult" title="enum GstSDPResult"><span class="returnvalue">GstSDPResult</span></a>
 gst_sdp_message_set_information (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPMessage" title="GstSDPMessage"><span class="type">GstSDPMessage</span></a> *msg</code></em>,
                                  <em class="parameter"><code>const <a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *information</code></em>);</pre>
-<p>Set the information in <em class="parameter"><code>msg</code></em>
-.</p>
-<div class="refsect3">
-<a name="gst-sdp-message-set-information.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>msg</p></td>
-<td class="parameter_description"><p>a <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPMessage" title="GstSDPMessage"><span class="type">GstSDPMessage</span></a></p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-<tr>
-<td class="parameter_name"><p>information</p></td>
-<td class="parameter_description"><p>the information</p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-</tbody>
-</table></div>
-</div>
-<div class="refsect3">
-<a name="gst-sdp-message-set-information.returns"></a><h4>Returns</h4>
-<p> a <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPResult" title="enum GstSDPResult"><span class="type">GstSDPResult</span></a>.</p>
-</div>
 </div>
 <hr>
 <div class="refsect2">
 <a name="gst-sdp-message-get-uri"></a><h3>gst_sdp_message_get_uri ()</h3>
 <pre class="programlisting">const <a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> *
 gst_sdp_message_get_uri (<em class="parameter"><code>const <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPMessage" title="GstSDPMessage"><span class="type">GstSDPMessage</span></a> *msg</code></em>);</pre>
-<p>Get the URI in <em class="parameter"><code>msg</code></em>
-.</p>
-<div class="refsect3">
-<a name="gst-sdp-message-get-uri.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>msg</p></td>
-<td class="parameter_description"><p>a <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPMessage" title="GstSDPMessage"><span class="type">GstSDPMessage</span></a></p></td>
-<td class="parameter_annotations"> </td>
-</tr></tbody>
-</table></div>
-</div>
-<div class="refsect3">
-<a name="gst-sdp-message-get-uri.returns"></a><h4>Returns</h4>
-<p> a <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPResult" title="enum GstSDPResult"><span class="type">GstSDPResult</span></a>.</p>
-</div>
 </div>
 <hr>
 <div class="refsect2">
@@ -2141,62 +1302,12 @@
 <pre class="programlisting"><a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPResult" title="enum GstSDPResult"><span class="returnvalue">GstSDPResult</span></a>
 gst_sdp_message_set_uri (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPMessage" title="GstSDPMessage"><span class="type">GstSDPMessage</span></a> *msg</code></em>,
                          <em class="parameter"><code>const <a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *uri</code></em>);</pre>
-<p>Set the URI in <em class="parameter"><code>msg</code></em>
-.</p>
-<div class="refsect3">
-<a name="gst-sdp-message-set-uri.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>msg</p></td>
-<td class="parameter_description"><p>a <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPMessage" title="GstSDPMessage"><span class="type">GstSDPMessage</span></a></p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-<tr>
-<td class="parameter_name"><p>uri</p></td>
-<td class="parameter_description"><p>the URI</p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-</tbody>
-</table></div>
-</div>
-<div class="refsect3">
-<a name="gst-sdp-message-set-uri.returns"></a><h4>Returns</h4>
-<p> a <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPResult" title="enum GstSDPResult"><span class="type">GstSDPResult</span></a>.</p>
-</div>
 </div>
 <hr>
 <div class="refsect2">
 <a name="gst-sdp-message-emails-len"></a><h3>gst_sdp_message_emails_len ()</h3>
 <pre class="programlisting"><a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#guint"><span class="returnvalue">guint</span></a>
 gst_sdp_message_emails_len (<em class="parameter"><code>const <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPMessage" title="GstSDPMessage"><span class="type">GstSDPMessage</span></a> *msg</code></em>);</pre>
-<p>Get the number of emails in <em class="parameter"><code>msg</code></em>
-.</p>
-<div class="refsect3">
-<a name="gst-sdp-message-emails-len.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>msg</p></td>
-<td class="parameter_description"><p>a <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPMessage" title="GstSDPMessage"><span class="type">GstSDPMessage</span></a></p></td>
-<td class="parameter_annotations"> </td>
-</tr></tbody>
-</table></div>
-</div>
-<div class="refsect3">
-<a name="gst-sdp-message-emails-len.returns"></a><h4>Returns</h4>
-<p> the number of emails in <em class="parameter"><code>msg</code></em>
-.</p>
-</div>
 </div>
 <hr>
 <div class="refsect2">
@@ -2204,36 +1315,6 @@
 <pre class="programlisting">const <a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> *
 gst_sdp_message_get_email (<em class="parameter"><code>const <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPMessage" title="GstSDPMessage"><span class="type">GstSDPMessage</span></a> *msg</code></em>,
                            <em class="parameter"><code><a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#guint"><span class="type">guint</span></a> idx</code></em>);</pre>
-<p>Get the email with number <em class="parameter"><code>idx</code></em>
- from <em class="parameter"><code>msg</code></em>
-.</p>
-<div class="refsect3">
-<a name="gst-sdp-message-get-email.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>msg</p></td>
-<td class="parameter_description"><p>a <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPMessage" title="GstSDPMessage"><span class="type">GstSDPMessage</span></a></p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-<tr>
-<td class="parameter_name"><p>idx</p></td>
-<td class="parameter_description"><p>an email index</p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-</tbody>
-</table></div>
-</div>
-<div class="refsect3">
-<a name="gst-sdp-message-get-email.returns"></a><h4>Returns</h4>
-<p> the email at position <em class="parameter"><code>idx</code></em>
-.</p>
-</div>
 </div>
 <hr>
 <div class="refsect2">
@@ -2242,44 +1323,6 @@
 gst_sdp_message_insert_email (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPMessage" title="GstSDPMessage"><span class="type">GstSDPMessage</span></a> *msg</code></em>,
                               <em class="parameter"><code><a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#gint"><span class="type">gint</span></a> idx</code></em>,
                               <em class="parameter"><code>const <a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *email</code></em>);</pre>
-<p>Insert <em class="parameter"><code>email</code></em>
- into the array of emails in <em class="parameter"><code>msg</code></em>
- at index <em class="parameter"><code>idx</code></em>
-.
-When -1 is given as <em class="parameter"><code>idx</code></em>
-, the email is inserted at the end.</p>
-<div class="refsect3">
-<a name="gst-sdp-message-insert-email.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>msg</p></td>
-<td class="parameter_description"><p>a <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPMessage" title="GstSDPMessage"><span class="type">GstSDPMessage</span></a></p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-<tr>
-<td class="parameter_name"><p>idx</p></td>
-<td class="parameter_description"><p>an index</p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-<tr>
-<td class="parameter_name"><p>email</p></td>
-<td class="parameter_description"><p>an email</p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-</tbody>
-</table></div>
-</div>
-<div class="refsect3">
-<a name="gst-sdp-message-insert-email.returns"></a><h4>Returns</h4>
-<p> a <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPResult" title="enum GstSDPResult"><span class="type">GstSDPResult</span></a>.</p>
-</div>
-<p class="since">Since: 1.2</p>
 </div>
 <hr>
 <div class="refsect2">
@@ -2288,42 +1331,6 @@
 gst_sdp_message_replace_email (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPMessage" title="GstSDPMessage"><span class="type">GstSDPMessage</span></a> *msg</code></em>,
                                <em class="parameter"><code><a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#guint"><span class="type">guint</span></a> idx</code></em>,
                                <em class="parameter"><code>const <a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *email</code></em>);</pre>
-<p>Replace the email in <em class="parameter"><code>msg</code></em>
- at index <em class="parameter"><code>idx</code></em>
- with <em class="parameter"><code>email</code></em>
-.</p>
-<div class="refsect3">
-<a name="gst-sdp-message-replace-email.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>msg</p></td>
-<td class="parameter_description"><p>a <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPMessage" title="GstSDPMessage"><span class="type">GstSDPMessage</span></a></p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-<tr>
-<td class="parameter_name"><p>idx</p></td>
-<td class="parameter_description"><p>an email index</p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-<tr>
-<td class="parameter_name"><p>email</p></td>
-<td class="parameter_description"><p>an email</p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-</tbody>
-</table></div>
-</div>
-<div class="refsect3">
-<a name="gst-sdp-message-replace-email.returns"></a><h4>Returns</h4>
-<p> a <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPResult" title="enum GstSDPResult"><span class="type">GstSDPResult</span></a>.</p>
-</div>
-<p class="since">Since: 1.2</p>
 </div>
 <hr>
 <div class="refsect2">
@@ -2331,36 +1338,6 @@
 <pre class="programlisting"><a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPResult" title="enum GstSDPResult"><span class="returnvalue">GstSDPResult</span></a>
 gst_sdp_message_remove_email (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPMessage" title="GstSDPMessage"><span class="type">GstSDPMessage</span></a> *msg</code></em>,
                               <em class="parameter"><code><a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#guint"><span class="type">guint</span></a> idx</code></em>);</pre>
-<p>Remove the email in <em class="parameter"><code>msg</code></em>
- at index <em class="parameter"><code>idx</code></em>
-.</p>
-<div class="refsect3">
-<a name="gst-sdp-message-remove-email.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>msg</p></td>
-<td class="parameter_description"><p>a <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPMessage" title="GstSDPMessage"><span class="type">GstSDPMessage</span></a></p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-<tr>
-<td class="parameter_name"><p>idx</p></td>
-<td class="parameter_description"><p>an email index</p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-</tbody>
-</table></div>
-</div>
-<div class="refsect3">
-<a name="gst-sdp-message-remove-email.returns"></a><h4>Returns</h4>
-<p> a <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPResult" title="enum GstSDPResult"><span class="type">GstSDPResult</span></a>.</p>
-</div>
-<p class="since">Since: 1.2</p>
 </div>
 <hr>
 <div class="refsect2">
@@ -2368,63 +1345,12 @@
 <pre class="programlisting"><a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPResult" title="enum GstSDPResult"><span class="returnvalue">GstSDPResult</span></a>
 gst_sdp_message_add_email (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPMessage" title="GstSDPMessage"><span class="type">GstSDPMessage</span></a> *msg</code></em>,
                            <em class="parameter"><code>const <a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *email</code></em>);</pre>
-<p>Add <em class="parameter"><code>email</code></em>
- to the list of emails in <em class="parameter"><code>msg</code></em>
-.</p>
-<div class="refsect3">
-<a name="gst-sdp-message-add-email.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>msg</p></td>
-<td class="parameter_description"><p>a <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPMessage" title="GstSDPMessage"><span class="type">GstSDPMessage</span></a></p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-<tr>
-<td class="parameter_name"><p>email</p></td>
-<td class="parameter_description"><p>an email</p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-</tbody>
-</table></div>
-</div>
-<div class="refsect3">
-<a name="gst-sdp-message-add-email.returns"></a><h4>Returns</h4>
-<p> a <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPResult" title="enum GstSDPResult"><span class="type">GstSDPResult</span></a>.</p>
-</div>
 </div>
 <hr>
 <div class="refsect2">
 <a name="gst-sdp-message-phones-len"></a><h3>gst_sdp_message_phones_len ()</h3>
 <pre class="programlisting"><a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#guint"><span class="returnvalue">guint</span></a>
 gst_sdp_message_phones_len (<em class="parameter"><code>const <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPMessage" title="GstSDPMessage"><span class="type">GstSDPMessage</span></a> *msg</code></em>);</pre>
-<p>Get the number of phones in <em class="parameter"><code>msg</code></em>
-.</p>
-<div class="refsect3">
-<a name="gst-sdp-message-phones-len.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>msg</p></td>
-<td class="parameter_description"><p>a <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPMessage" title="GstSDPMessage"><span class="type">GstSDPMessage</span></a></p></td>
-<td class="parameter_annotations"> </td>
-</tr></tbody>
-</table></div>
-</div>
-<div class="refsect3">
-<a name="gst-sdp-message-phones-len.returns"></a><h4>Returns</h4>
-<p> the number of phones in <em class="parameter"><code>msg</code></em>
-.</p>
-</div>
 </div>
 <hr>
 <div class="refsect2">
@@ -2432,36 +1358,6 @@
 <pre class="programlisting">const <a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> *
 gst_sdp_message_get_phone (<em class="parameter"><code>const <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPMessage" title="GstSDPMessage"><span class="type">GstSDPMessage</span></a> *msg</code></em>,
                            <em class="parameter"><code><a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#guint"><span class="type">guint</span></a> idx</code></em>);</pre>
-<p>Get the phone with number <em class="parameter"><code>idx</code></em>
- from <em class="parameter"><code>msg</code></em>
-.</p>
-<div class="refsect3">
-<a name="gst-sdp-message-get-phone.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>msg</p></td>
-<td class="parameter_description"><p>a <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPMessage" title="GstSDPMessage"><span class="type">GstSDPMessage</span></a></p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-<tr>
-<td class="parameter_name"><p>idx</p></td>
-<td class="parameter_description"><p>a phone index</p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-</tbody>
-</table></div>
-</div>
-<div class="refsect3">
-<a name="gst-sdp-message-get-phone.returns"></a><h4>Returns</h4>
-<p> the phone at position <em class="parameter"><code>idx</code></em>
-.</p>
-</div>
 </div>
 <hr>
 <div class="refsect2">
@@ -2470,44 +1366,6 @@
 gst_sdp_message_insert_phone (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPMessage" title="GstSDPMessage"><span class="type">GstSDPMessage</span></a> *msg</code></em>,
                               <em class="parameter"><code><a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#gint"><span class="type">gint</span></a> idx</code></em>,
                               <em class="parameter"><code>const <a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *phone</code></em>);</pre>
-<p>Insert <em class="parameter"><code>phone</code></em>
- into the array of phone numbers in <em class="parameter"><code>msg</code></em>
- at index <em class="parameter"><code>idx</code></em>
-.
-When -1 is given as <em class="parameter"><code>idx</code></em>
-, the phone is inserted at the end.</p>
-<div class="refsect3">
-<a name="gst-sdp-message-insert-phone.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>msg</p></td>
-<td class="parameter_description"><p>a <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPMessage" title="GstSDPMessage"><span class="type">GstSDPMessage</span></a></p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-<tr>
-<td class="parameter_name"><p>idx</p></td>
-<td class="parameter_description"><p>a phone index</p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-<tr>
-<td class="parameter_name"><p>phone</p></td>
-<td class="parameter_description"><p>a phone</p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-</tbody>
-</table></div>
-</div>
-<div class="refsect3">
-<a name="gst-sdp-message-insert-phone.returns"></a><h4>Returns</h4>
-<p> a <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPResult" title="enum GstSDPResult"><span class="type">GstSDPResult</span></a>.</p>
-</div>
-<p class="since">Since: 1.2</p>
 </div>
 <hr>
 <div class="refsect2">
@@ -2516,42 +1374,6 @@
 gst_sdp_message_replace_phone (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPMessage" title="GstSDPMessage"><span class="type">GstSDPMessage</span></a> *msg</code></em>,
                                <em class="parameter"><code><a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#guint"><span class="type">guint</span></a> idx</code></em>,
                                <em class="parameter"><code>const <a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *phone</code></em>);</pre>
-<p>Replace the phone number in <em class="parameter"><code>msg</code></em>
- at index <em class="parameter"><code>idx</code></em>
- with <em class="parameter"><code>phone</code></em>
-.</p>
-<div class="refsect3">
-<a name="gst-sdp-message-replace-phone.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>msg</p></td>
-<td class="parameter_description"><p>a <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPMessage" title="GstSDPMessage"><span class="type">GstSDPMessage</span></a></p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-<tr>
-<td class="parameter_name"><p>idx</p></td>
-<td class="parameter_description"><p>a phone index</p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-<tr>
-<td class="parameter_name"><p>phone</p></td>
-<td class="parameter_description"><p>a phone</p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-</tbody>
-</table></div>
-</div>
-<div class="refsect3">
-<a name="gst-sdp-message-replace-phone.returns"></a><h4>Returns</h4>
-<p> a <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPResult" title="enum GstSDPResult"><span class="type">GstSDPResult</span></a>.</p>
-</div>
-<p class="since">Since: 1.2</p>
 </div>
 <hr>
 <div class="refsect2">
@@ -2559,36 +1381,6 @@
 <pre class="programlisting"><a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPResult" title="enum GstSDPResult"><span class="returnvalue">GstSDPResult</span></a>
 gst_sdp_message_remove_phone (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPMessage" title="GstSDPMessage"><span class="type">GstSDPMessage</span></a> *msg</code></em>,
                               <em class="parameter"><code><a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#guint"><span class="type">guint</span></a> idx</code></em>);</pre>
-<p>Remove the phone number in <em class="parameter"><code>msg</code></em>
- at index <em class="parameter"><code>idx</code></em>
-.</p>
-<div class="refsect3">
-<a name="gst-sdp-message-remove-phone.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>msg</p></td>
-<td class="parameter_description"><p>a <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPMessage" title="GstSDPMessage"><span class="type">GstSDPMessage</span></a></p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-<tr>
-<td class="parameter_name"><p>idx</p></td>
-<td class="parameter_description"><p>a phone index</p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-</tbody>
-</table></div>
-</div>
-<div class="refsect3">
-<a name="gst-sdp-message-remove-phone.returns"></a><h4>Returns</h4>
-<p> a <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPResult" title="enum GstSDPResult"><span class="type">GstSDPResult</span></a>.</p>
-</div>
-<p class="since">Since: 1.2</p>
 </div>
 <hr>
 <div class="refsect2">
@@ -2596,63 +1388,12 @@
 <pre class="programlisting"><a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPResult" title="enum GstSDPResult"><span class="returnvalue">GstSDPResult</span></a>
 gst_sdp_message_add_phone (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPMessage" title="GstSDPMessage"><span class="type">GstSDPMessage</span></a> *msg</code></em>,
                            <em class="parameter"><code>const <a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *phone</code></em>);</pre>
-<p>Add <em class="parameter"><code>phone</code></em>
- to the list of phones in <em class="parameter"><code>msg</code></em>
-.</p>
-<div class="refsect3">
-<a name="gst-sdp-message-add-phone.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>msg</p></td>
-<td class="parameter_description"><p>a <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPMessage" title="GstSDPMessage"><span class="type">GstSDPMessage</span></a></p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-<tr>
-<td class="parameter_name"><p>phone</p></td>
-<td class="parameter_description"><p>a phone</p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-</tbody>
-</table></div>
-</div>
-<div class="refsect3">
-<a name="gst-sdp-message-add-phone.returns"></a><h4>Returns</h4>
-<p> a <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPResult" title="enum GstSDPResult"><span class="type">GstSDPResult</span></a>.</p>
-</div>
 </div>
 <hr>
 <div class="refsect2">
 <a name="gst-sdp-message-get-connection"></a><h3>gst_sdp_message_get_connection ()</h3>
 <pre class="programlisting">const <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPConnection" title="GstSDPConnection"><span class="returnvalue">GstSDPConnection</span></a> *
 gst_sdp_message_get_connection (<em class="parameter"><code>const <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPMessage" title="GstSDPMessage"><span class="type">GstSDPMessage</span></a> *msg</code></em>);</pre>
-<p>Get the connection of <em class="parameter"><code>msg</code></em>
-.</p>
-<div class="refsect3">
-<a name="gst-sdp-message-get-connection.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>msg</p></td>
-<td class="parameter_description"><p>a <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPMessage" title="GstSDPMessage"><span class="type">GstSDPMessage</span></a></p></td>
-<td class="parameter_annotations"> </td>
-</tr></tbody>
-</table></div>
-</div>
-<div class="refsect3">
-<a name="gst-sdp-message-get-connection.returns"></a><h4>Returns</h4>
-<p> a <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPConnection" title="GstSDPConnection"><span class="type">GstSDPConnection</span></a>. The result remains valid as long as <em class="parameter"><code>msg</code></em>
-is valid.</p>
-</div>
 </div>
 <hr>
 <div class="refsect2">
@@ -2664,83 +1405,12 @@
                                 <em class="parameter"><code>const <a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *address</code></em>,
                                 <em class="parameter"><code><a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#guint"><span class="type">guint</span></a> ttl</code></em>,
                                 <em class="parameter"><code><a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#guint"><span class="type">guint</span></a> addr_number</code></em>);</pre>
-<p>Configure the SDP connection in <em class="parameter"><code>msg</code></em>
- with the given parameters.</p>
-<div class="refsect3">
-<a name="gst-sdp-message-set-connection.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>msg</p></td>
-<td class="parameter_description"><p>a <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPMessage" title="GstSDPMessage"><span class="type">GstSDPMessage</span></a></p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-<tr>
-<td class="parameter_name"><p>nettype</p></td>
-<td class="parameter_description"><p>the type of network. "IN" is defined to have the meaning
-"Internet".</p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-<tr>
-<td class="parameter_name"><p>addrtype</p></td>
-<td class="parameter_description"><p>the type of address.</p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-<tr>
-<td class="parameter_name"><p>address</p></td>
-<td class="parameter_description"><p>the address</p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-<tr>
-<td class="parameter_name"><p>ttl</p></td>
-<td class="parameter_description"><p>the time to live of the address</p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-<tr>
-<td class="parameter_name"><p>addr_number</p></td>
-<td class="parameter_description"><p>the number of layers</p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-</tbody>
-</table></div>
-</div>
-<div class="refsect3">
-<a name="gst-sdp-message-set-connection.returns"></a><h4>Returns</h4>
-<p> a <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPResult" title="enum GstSDPResult"><span class="type">GstSDPResult</span></a>.</p>
-</div>
 </div>
 <hr>
 <div class="refsect2">
 <a name="gst-sdp-message-bandwidths-len"></a><h3>gst_sdp_message_bandwidths_len ()</h3>
 <pre class="programlisting"><a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#guint"><span class="returnvalue">guint</span></a>
 gst_sdp_message_bandwidths_len (<em class="parameter"><code>const <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPMessage" title="GstSDPMessage"><span class="type">GstSDPMessage</span></a> *msg</code></em>);</pre>
-<p>Get the number of bandwidth information in <em class="parameter"><code>msg</code></em>
-.</p>
-<div class="refsect3">
-<a name="gst-sdp-message-bandwidths-len.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>msg</p></td>
-<td class="parameter_description"><p>a <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPMessage" title="GstSDPMessage"><span class="type">GstSDPMessage</span></a></p></td>
-<td class="parameter_annotations"> </td>
-</tr></tbody>
-</table></div>
-</div>
-<div class="refsect3">
-<a name="gst-sdp-message-bandwidths-len.returns"></a><h4>Returns</h4>
-<p> the number of bandwidth information in <em class="parameter"><code>msg</code></em>
-.</p>
-</div>
 </div>
 <hr>
 <div class="refsect2">
@@ -2748,35 +1418,6 @@
 <pre class="programlisting">const <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPBandwidth" title="GstSDPBandwidth"><span class="returnvalue">GstSDPBandwidth</span></a> *
 gst_sdp_message_get_bandwidth (<em class="parameter"><code>const <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPMessage" title="GstSDPMessage"><span class="type">GstSDPMessage</span></a> *msg</code></em>,
                                <em class="parameter"><code><a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#guint"><span class="type">guint</span></a> idx</code></em>);</pre>
-<p>Get the bandwidth at index <em class="parameter"><code>idx</code></em>
- from <em class="parameter"><code>msg</code></em>
-.</p>
-<div class="refsect3">
-<a name="gst-sdp-message-get-bandwidth.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>msg</p></td>
-<td class="parameter_description"><p>a <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPMessage" title="GstSDPMessage"><span class="type">GstSDPMessage</span></a></p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-<tr>
-<td class="parameter_name"><p>idx</p></td>
-<td class="parameter_description"><p>the bandwidth index</p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-</tbody>
-</table></div>
-</div>
-<div class="refsect3">
-<a name="gst-sdp-message-get-bandwidth.returns"></a><h4>Returns</h4>
-<p> a <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPBandwidth" title="GstSDPBandwidth"><span class="type">GstSDPBandwidth</span></a>.</p>
-</div>
 </div>
 <hr>
 <div class="refsect2">
@@ -2785,44 +1426,6 @@
 gst_sdp_message_insert_bandwidth (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPMessage" title="GstSDPMessage"><span class="type">GstSDPMessage</span></a> *msg</code></em>,
                                   <em class="parameter"><code><a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#gint"><span class="type">gint</span></a> idx</code></em>,
                                   <em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPBandwidth" title="GstSDPBandwidth"><span class="type">GstSDPBandwidth</span></a> *bw</code></em>);</pre>
-<p>Insert bandwidth parameters into the array of bandwidths in <em class="parameter"><code>msg</code></em>
-
-at index <em class="parameter"><code>idx</code></em>
-.
-When -1 is given as <em class="parameter"><code>idx</code></em>
-, the bandwidth is inserted at the end.</p>
-<div class="refsect3">
-<a name="gst-sdp-message-insert-bandwidth.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>msg</p></td>
-<td class="parameter_description"><p>a <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPMessage" title="GstSDPMessage"><span class="type">GstSDPMessage</span></a></p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-<tr>
-<td class="parameter_name"><p>idx</p></td>
-<td class="parameter_description"><p>an index</p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-<tr>
-<td class="parameter_name"><p>bw</p></td>
-<td class="parameter_description"><p>the bandwidth</p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-</tbody>
-</table></div>
-</div>
-<div class="refsect3">
-<a name="gst-sdp-message-insert-bandwidth.returns"></a><h4>Returns</h4>
-<p> a <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPResult" title="enum GstSDPResult"><span class="type">GstSDPResult</span></a>.</p>
-</div>
-<p class="since">Since: 1.2</p>
 </div>
 <hr>
 <div class="refsect2">
@@ -2831,42 +1434,6 @@
 gst_sdp_message_replace_bandwidth (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPMessage" title="GstSDPMessage"><span class="type">GstSDPMessage</span></a> *msg</code></em>,
                                    <em class="parameter"><code><a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#guint"><span class="type">guint</span></a> idx</code></em>,
                                    <em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPBandwidth" title="GstSDPBandwidth"><span class="type">GstSDPBandwidth</span></a> *bw</code></em>);</pre>
-<p>Replace the bandwidth information in <em class="parameter"><code>msg</code></em>
- at index <em class="parameter"><code>idx</code></em>
- with <em class="parameter"><code>bw</code></em>
-.</p>
-<div class="refsect3">
-<a name="gst-sdp-message-replace-bandwidth.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>msg</p></td>
-<td class="parameter_description"><p>a <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPMessage" title="GstSDPMessage"><span class="type">GstSDPMessage</span></a></p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-<tr>
-<td class="parameter_name"><p>idx</p></td>
-<td class="parameter_description"><p>the bandwidth index</p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-<tr>
-<td class="parameter_name"><p>bw</p></td>
-<td class="parameter_description"><p>the bandwidth</p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-</tbody>
-</table></div>
-</div>
-<div class="refsect3">
-<a name="gst-sdp-message-replace-bandwidth.returns"></a><h4>Returns</h4>
-<p> a <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPResult" title="enum GstSDPResult"><span class="type">GstSDPResult</span></a>.</p>
-</div>
-<p class="since">Since: 1.2</p>
 </div>
 <hr>
 <div class="refsect2">
@@ -2874,36 +1441,6 @@
 <pre class="programlisting"><a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPResult" title="enum GstSDPResult"><span class="returnvalue">GstSDPResult</span></a>
 gst_sdp_message_remove_bandwidth (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPMessage" title="GstSDPMessage"><span class="type">GstSDPMessage</span></a> *msg</code></em>,
                                   <em class="parameter"><code><a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#guint"><span class="type">guint</span></a> idx</code></em>);</pre>
-<p>Remove the bandwidth information in <em class="parameter"><code>msg</code></em>
- at index <em class="parameter"><code>idx</code></em>
-.</p>
-<div class="refsect3">
-<a name="gst-sdp-message-remove-bandwidth.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>msg</p></td>
-<td class="parameter_description"><p>a <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPMessage" title="GstSDPMessage"><span class="type">GstSDPMessage</span></a></p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-<tr>
-<td class="parameter_name"><p>idx</p></td>
-<td class="parameter_description"><p>the bandwidth index</p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-</tbody>
-</table></div>
-</div>
-<div class="refsect3">
-<a name="gst-sdp-message-remove-bandwidth.returns"></a><h4>Returns</h4>
-<p> a <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPResult" title="enum GstSDPResult"><span class="type">GstSDPResult</span></a>.</p>
-</div>
-<p class="since">Since: 1.2</p>
 </div>
 <hr>
 <div class="refsect2">
@@ -2912,67 +1449,12 @@
 gst_sdp_message_add_bandwidth (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPMessage" title="GstSDPMessage"><span class="type">GstSDPMessage</span></a> *msg</code></em>,
                                <em class="parameter"><code>const <a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *bwtype</code></em>,
                                <em class="parameter"><code><a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#guint"><span class="type">guint</span></a> bandwidth</code></em>);</pre>
-<p>Add the specified bandwidth information to <em class="parameter"><code>msg</code></em>
-.</p>
-<div class="refsect3">
-<a name="gst-sdp-message-add-bandwidth.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>msg</p></td>
-<td class="parameter_description"><p>a <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPMessage" title="GstSDPMessage"><span class="type">GstSDPMessage</span></a></p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-<tr>
-<td class="parameter_name"><p>bwtype</p></td>
-<td class="parameter_description"><p>the bandwidth modifier type</p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-<tr>
-<td class="parameter_name"><p>bandwidth</p></td>
-<td class="parameter_description"><p>the bandwidth in kilobits per second</p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-</tbody>
-</table></div>
-</div>
-<div class="refsect3">
-<a name="gst-sdp-message-add-bandwidth.returns"></a><h4>Returns</h4>
-<p> a <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPResult" title="enum GstSDPResult"><span class="type">GstSDPResult</span></a>.</p>
-</div>
 </div>
 <hr>
 <div class="refsect2">
 <a name="gst-sdp-message-times-len"></a><h3>gst_sdp_message_times_len ()</h3>
 <pre class="programlisting"><a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#guint"><span class="returnvalue">guint</span></a>
 gst_sdp_message_times_len (<em class="parameter"><code>const <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPMessage" title="GstSDPMessage"><span class="type">GstSDPMessage</span></a> *msg</code></em>);</pre>
-<p>Get the number of time information entries in <em class="parameter"><code>msg</code></em>
-.</p>
-<div class="refsect3">
-<a name="gst-sdp-message-times-len.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>msg</p></td>
-<td class="parameter_description"><p>a <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPMessage" title="GstSDPMessage"><span class="type">GstSDPMessage</span></a></p></td>
-<td class="parameter_annotations"> </td>
-</tr></tbody>
-</table></div>
-</div>
-<div class="refsect3">
-<a name="gst-sdp-message-times-len.returns"></a><h4>Returns</h4>
-<p> the number of time information entries in <em class="parameter"><code>msg</code></em>
-.</p>
-</div>
 </div>
 <hr>
 <div class="refsect2">
@@ -2980,35 +1462,6 @@
 <pre class="programlisting">const <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPTime" title="GstSDPTime"><span class="returnvalue">GstSDPTime</span></a> *
 gst_sdp_message_get_time (<em class="parameter"><code>const <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPMessage" title="GstSDPMessage"><span class="type">GstSDPMessage</span></a> *msg</code></em>,
                           <em class="parameter"><code><a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#guint"><span class="type">guint</span></a> idx</code></em>);</pre>
-<p>Get time information with index <em class="parameter"><code>idx</code></em>
- from <em class="parameter"><code>msg</code></em>
-.</p>
-<div class="refsect3">
-<a name="gst-sdp-message-get-time.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>msg</p></td>
-<td class="parameter_description"><p>a <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPMessage" title="GstSDPMessage"><span class="type">GstSDPMessage</span></a></p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-<tr>
-<td class="parameter_name"><p>idx</p></td>
-<td class="parameter_description"><p>the time index</p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-</tbody>
-</table></div>
-</div>
-<div class="refsect3">
-<a name="gst-sdp-message-get-time.returns"></a><h4>Returns</h4>
-<p> a <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPTime" title="GstSDPTime"><span class="type">GstSDPTime</span></a>.</p>
-</div>
 </div>
 <hr>
 <div class="refsect2">
@@ -3017,44 +1470,6 @@
 gst_sdp_message_insert_time (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPMessage" title="GstSDPMessage"><span class="type">GstSDPMessage</span></a> *msg</code></em>,
                              <em class="parameter"><code><a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#gint"><span class="type">gint</span></a> idx</code></em>,
                              <em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPTime" title="GstSDPTime"><span class="type">GstSDPTime</span></a> *t</code></em>);</pre>
-<p>Insert time parameters into the array of times in <em class="parameter"><code>msg</code></em>
-
-at index <em class="parameter"><code>idx</code></em>
-.
-When -1 is given as <em class="parameter"><code>idx</code></em>
-, the times are inserted at the end.</p>
-<div class="refsect3">
-<a name="gst-sdp-message-insert-time.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>msg</p></td>
-<td class="parameter_description"><p>a <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPMessage" title="GstSDPMessage"><span class="type">GstSDPMessage</span></a></p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-<tr>
-<td class="parameter_name"><p>idx</p></td>
-<td class="parameter_description"><p>an index</p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-<tr>
-<td class="parameter_name"><p>t</p></td>
-<td class="parameter_description"><p>a <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPTime" title="GstSDPTime"><span class="type">GstSDPTime</span></a></p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-</tbody>
-</table></div>
-</div>
-<div class="refsect3">
-<a name="gst-sdp-message-insert-time.returns"></a><h4>Returns</h4>
-<p> a <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPResult" title="enum GstSDPResult"><span class="type">GstSDPResult</span></a>.</p>
-</div>
-<p class="since">Since: 1.2</p>
 </div>
 <hr>
 <div class="refsect2">
@@ -3063,42 +1478,6 @@
 gst_sdp_message_replace_time (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPMessage" title="GstSDPMessage"><span class="type">GstSDPMessage</span></a> *msg</code></em>,
                               <em class="parameter"><code><a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#guint"><span class="type">guint</span></a> idx</code></em>,
                               <em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPTime" title="GstSDPTime"><span class="type">GstSDPTime</span></a> *t</code></em>);</pre>
-<p>Replace the time information in <em class="parameter"><code>msg</code></em>
- at index <em class="parameter"><code>idx</code></em>
- with <em class="parameter"><code>t</code></em>
-.</p>
-<div class="refsect3">
-<a name="gst-sdp-message-replace-time.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>msg</p></td>
-<td class="parameter_description"><p>a <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPMessage" title="GstSDPMessage"><span class="type">GstSDPMessage</span></a></p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-<tr>
-<td class="parameter_name"><p>idx</p></td>
-<td class="parameter_description"><p>the index</p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-<tr>
-<td class="parameter_name"><p>t</p></td>
-<td class="parameter_description"><p>a <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPTime" title="GstSDPTime"><span class="type">GstSDPTime</span></a></p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-</tbody>
-</table></div>
-</div>
-<div class="refsect3">
-<a name="gst-sdp-message-replace-time.returns"></a><h4>Returns</h4>
-<p> a <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPResult" title="enum GstSDPResult"><span class="type">GstSDPResult</span></a>.</p>
-</div>
-<p class="since">Since: 1.2</p>
 </div>
 <hr>
 <div class="refsect2">
@@ -3106,36 +1485,6 @@
 <pre class="programlisting"><a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPResult" title="enum GstSDPResult"><span class="returnvalue">GstSDPResult</span></a>
 gst_sdp_message_remove_time (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPMessage" title="GstSDPMessage"><span class="type">GstSDPMessage</span></a> *msg</code></em>,
                              <em class="parameter"><code><a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#guint"><span class="type">guint</span></a> idx</code></em>);</pre>
-<p>Remove the time information in <em class="parameter"><code>msg</code></em>
- at index <em class="parameter"><code>idx</code></em>
-.</p>
-<div class="refsect3">
-<a name="gst-sdp-message-remove-time.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>msg</p></td>
-<td class="parameter_description"><p>a <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPMessage" title="GstSDPMessage"><span class="type">GstSDPMessage</span></a></p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-<tr>
-<td class="parameter_name"><p>idx</p></td>
-<td class="parameter_description"><p>the index</p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-</tbody>
-</table></div>
-</div>
-<div class="refsect3">
-<a name="gst-sdp-message-remove-time.returns"></a><h4>Returns</h4>
-<p> a <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPResult" title="enum GstSDPResult"><span class="type">GstSDPResult</span></a>.</p>
-</div>
-<p class="since">Since: 1.2</p>
 </div>
 <hr>
 <div class="refsect2">
@@ -3145,74 +1494,12 @@
                           <em class="parameter"><code>const <a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *start</code></em>,
                           <em class="parameter"><code>const <a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *stop</code></em>,
                           <em class="parameter"><code>const <a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#gchar"><span class="type">gchar</span></a> **repeat</code></em>);</pre>
-<p>Add time information <em class="parameter"><code>start</code></em>
- and <em class="parameter"><code>stop</code></em>
- to <em class="parameter"><code>msg</code></em>
-.</p>
-<div class="refsect3">
-<a name="gst-sdp-message-add-time.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>msg</p></td>
-<td class="parameter_description"><p>a <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPMessage" title="GstSDPMessage"><span class="type">GstSDPMessage</span></a></p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-<tr>
-<td class="parameter_name"><p>start</p></td>
-<td class="parameter_description"><p>the start time</p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-<tr>
-<td class="parameter_name"><p>stop</p></td>
-<td class="parameter_description"><p>the stop time</p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-<tr>
-<td class="parameter_name"><p>repeat</p></td>
-<td class="parameter_description"><p> the repeat times. </p></td>
-<td class="parameter_annotations"><span class="annotation">[<acronym title="Parameter points to an array of items."><span class="acronym">array</span></acronym> zero-terminated=1]</span></td>
-</tr>
-</tbody>
-</table></div>
-</div>
-<div class="refsect3">
-<a name="gst-sdp-message-add-time.returns"></a><h4>Returns</h4>
-<p> a <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPResult" title="enum GstSDPResult"><span class="type">GstSDPResult</span></a>.</p>
-</div>
 </div>
 <hr>
 <div class="refsect2">
 <a name="gst-sdp-message-zones-len"></a><h3>gst_sdp_message_zones_len ()</h3>
 <pre class="programlisting"><a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#guint"><span class="returnvalue">guint</span></a>
 gst_sdp_message_zones_len (<em class="parameter"><code>const <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPMessage" title="GstSDPMessage"><span class="type">GstSDPMessage</span></a> *msg</code></em>);</pre>
-<p>Get the number of time zone information entries in <em class="parameter"><code>msg</code></em>
-.</p>
-<div class="refsect3">
-<a name="gst-sdp-message-zones-len.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>msg</p></td>
-<td class="parameter_description"><p>a <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPMessage" title="GstSDPMessage"><span class="type">GstSDPMessage</span></a></p></td>
-<td class="parameter_annotations"> </td>
-</tr></tbody>
-</table></div>
-</div>
-<div class="refsect3">
-<a name="gst-sdp-message-zones-len.returns"></a><h4>Returns</h4>
-<p> the number of time zone information entries in <em class="parameter"><code>msg</code></em>
-.</p>
-</div>
 </div>
 <hr>
 <div class="refsect2">
@@ -3220,35 +1507,6 @@
 <pre class="programlisting">const <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPZone" title="GstSDPZone"><span class="returnvalue">GstSDPZone</span></a> *
 gst_sdp_message_get_zone (<em class="parameter"><code>const <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPMessage" title="GstSDPMessage"><span class="type">GstSDPMessage</span></a> *msg</code></em>,
                           <em class="parameter"><code><a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#guint"><span class="type">guint</span></a> idx</code></em>);</pre>
-<p>Get time zone information with index <em class="parameter"><code>idx</code></em>
- from <em class="parameter"><code>msg</code></em>
-.</p>
-<div class="refsect3">
-<a name="gst-sdp-message-get-zone.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>msg</p></td>
-<td class="parameter_description"><p>a <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPMessage" title="GstSDPMessage"><span class="type">GstSDPMessage</span></a></p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-<tr>
-<td class="parameter_name"><p>idx</p></td>
-<td class="parameter_description"><p>the zone index</p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-</tbody>
-</table></div>
-</div>
-<div class="refsect3">
-<a name="gst-sdp-message-get-zone.returns"></a><h4>Returns</h4>
-<p> a <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPZone" title="GstSDPZone"><span class="type">GstSDPZone</span></a>.</p>
-</div>
 </div>
 <hr>
 <div class="refsect2">
@@ -3257,41 +1515,6 @@
 gst_sdp_message_insert_zone (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPMessage" title="GstSDPMessage"><span class="type">GstSDPMessage</span></a> *msg</code></em>,
                              <em class="parameter"><code><a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#gint"><span class="type">gint</span></a> idx</code></em>,
                              <em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPZone" title="GstSDPZone"><span class="type">GstSDPZone</span></a> *zone</code></em>);</pre>
-<p>Insert zone parameters into the array of zones in <em class="parameter"><code>msg</code></em>
-
-at index <em class="parameter"><code>idx</code></em>
-.
-When -1 is given as <em class="parameter"><code>idx</code></em>
-, the zone is inserted at the end.</p>
-<div class="refsect3">
-<a name="gst-sdp-message-insert-zone.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>msg</p></td>
-<td class="parameter_description"><p>a <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPMessage" title="GstSDPMessage"><span class="type">GstSDPMessage</span></a></p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-<tr>
-<td class="parameter_name"><p>idx</p></td>
-<td class="parameter_description"><p>an index
-<em class="parameter"><code>zone</code></em>
-a <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPZone" title="GstSDPZone"><span class="type">GstSDPZone</span></a></p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-</tbody>
-</table></div>
-</div>
-<div class="refsect3">
-<a name="gst-sdp-message-insert-zone.returns"></a><h4>Returns</h4>
-<p> a <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPResult" title="enum GstSDPResult"><span class="type">GstSDPResult</span></a>.</p>
-</div>
-<p class="since">Since: 1.2</p>
 </div>
 <hr>
 <div class="refsect2">
@@ -3300,42 +1523,6 @@
 gst_sdp_message_replace_zone (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPMessage" title="GstSDPMessage"><span class="type">GstSDPMessage</span></a> *msg</code></em>,
                               <em class="parameter"><code><a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#guint"><span class="type">guint</span></a> idx</code></em>,
                               <em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPZone" title="GstSDPZone"><span class="type">GstSDPZone</span></a> *zone</code></em>);</pre>
-<p>Replace the zone information in <em class="parameter"><code>msg</code></em>
- at index <em class="parameter"><code>idx</code></em>
- with <em class="parameter"><code>zone</code></em>
-.</p>
-<div class="refsect3">
-<a name="gst-sdp-message-replace-zone.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>msg</p></td>
-<td class="parameter_description"><p>a <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPMessage" title="GstSDPMessage"><span class="type">GstSDPMessage</span></a></p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-<tr>
-<td class="parameter_name"><p>idx</p></td>
-<td class="parameter_description"><p>the index</p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-<tr>
-<td class="parameter_name"><p>zone</p></td>
-<td class="parameter_description"><p>a <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPZone" title="GstSDPZone"><span class="type">GstSDPZone</span></a></p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-</tbody>
-</table></div>
-</div>
-<div class="refsect3">
-<a name="gst-sdp-message-replace-zone.returns"></a><h4>Returns</h4>
-<p> a <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPResult" title="enum GstSDPResult"><span class="type">GstSDPResult</span></a>.</p>
-</div>
-<p class="since">Since: 1.2</p>
 </div>
 <hr>
 <div class="refsect2">
@@ -3343,36 +1530,6 @@
 <pre class="programlisting"><a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPResult" title="enum GstSDPResult"><span class="returnvalue">GstSDPResult</span></a>
 gst_sdp_message_remove_zone (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPMessage" title="GstSDPMessage"><span class="type">GstSDPMessage</span></a> *msg</code></em>,
                              <em class="parameter"><code><a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#guint"><span class="type">guint</span></a> idx</code></em>);</pre>
-<p>Remove the zone information in <em class="parameter"><code>msg</code></em>
- at index <em class="parameter"><code>idx</code></em>
-.</p>
-<div class="refsect3">
-<a name="gst-sdp-message-remove-zone.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>msg</p></td>
-<td class="parameter_description"><p>a <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPMessage" title="GstSDPMessage"><span class="type">GstSDPMessage</span></a></p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-<tr>
-<td class="parameter_name"><p>idx</p></td>
-<td class="parameter_description"><p>the index</p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-</tbody>
-</table></div>
-</div>
-<div class="refsect3">
-<a name="gst-sdp-message-remove-zone.returns"></a><h4>Returns</h4>
-<p> a <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPResult" title="enum GstSDPResult"><span class="type">GstSDPResult</span></a>.</p>
-</div>
-<p class="since">Since: 1.2</p>
 </div>
 <hr>
 <div class="refsect2">
@@ -3381,66 +1538,12 @@
 gst_sdp_message_add_zone (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPMessage" title="GstSDPMessage"><span class="type">GstSDPMessage</span></a> *msg</code></em>,
                           <em class="parameter"><code>const <a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *adj_time</code></em>,
                           <em class="parameter"><code>const <a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *typed_time</code></em>);</pre>
-<p>Add time zone information to <em class="parameter"><code>msg</code></em>
-.</p>
-<div class="refsect3">
-<a name="gst-sdp-message-add-zone.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>msg</p></td>
-<td class="parameter_description"><p>a <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPMessage" title="GstSDPMessage"><span class="type">GstSDPMessage</span></a></p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-<tr>
-<td class="parameter_name"><p>adj_time</p></td>
-<td class="parameter_description"><p>the NTP time that a time zone adjustment happens</p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-<tr>
-<td class="parameter_name"><p>typed_time</p></td>
-<td class="parameter_description"><p>the offset from the time when the session was first scheduled</p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-</tbody>
-</table></div>
-</div>
-<div class="refsect3">
-<a name="gst-sdp-message-add-zone.returns"></a><h4>Returns</h4>
-<p> a <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPResult" title="enum GstSDPResult"><span class="type">GstSDPResult</span></a>.</p>
-</div>
 </div>
 <hr>
 <div class="refsect2">
 <a name="gst-sdp-message-get-key"></a><h3>gst_sdp_message_get_key ()</h3>
 <pre class="programlisting">const <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPKey" title="GstSDPKey"><span class="returnvalue">GstSDPKey</span></a> *
 gst_sdp_message_get_key (<em class="parameter"><code>const <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPMessage" title="GstSDPMessage"><span class="type">GstSDPMessage</span></a> *msg</code></em>);</pre>
-<p>Get the encryption information from <em class="parameter"><code>msg</code></em>
-.</p>
-<div class="refsect3">
-<a name="gst-sdp-message-get-key.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>msg</p></td>
-<td class="parameter_description"><p>a <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPMessage" title="GstSDPMessage"><span class="type">GstSDPMessage</span></a></p></td>
-<td class="parameter_annotations"> </td>
-</tr></tbody>
-</table></div>
-</div>
-<div class="refsect3">
-<a name="gst-sdp-message-get-key.returns"></a><h4>Returns</h4>
-<p> a <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPKey" title="GstSDPKey"><span class="type">GstSDPKey</span></a>.</p>
-</div>
 </div>
 <hr>
 <div class="refsect2">
@@ -3449,67 +1552,12 @@
 gst_sdp_message_set_key (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPMessage" title="GstSDPMessage"><span class="type">GstSDPMessage</span></a> *msg</code></em>,
                          <em class="parameter"><code>const <a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *type</code></em>,
                          <em class="parameter"><code>const <a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *data</code></em>);</pre>
-<p>Adds the encryption information to <em class="parameter"><code>msg</code></em>
-.</p>
-<div class="refsect3">
-<a name="gst-sdp-message-set-key.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>msg</p></td>
-<td class="parameter_description"><p>a <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPMessage" title="GstSDPMessage"><span class="type">GstSDPMessage</span></a></p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-<tr>
-<td class="parameter_name"><p>type</p></td>
-<td class="parameter_description"><p>the encryption type</p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-<tr>
-<td class="parameter_name"><p>data</p></td>
-<td class="parameter_description"><p>the encryption data</p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-</tbody>
-</table></div>
-</div>
-<div class="refsect3">
-<a name="gst-sdp-message-set-key.returns"></a><h4>Returns</h4>
-<p> a <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPResult" title="enum GstSDPResult"><span class="type">GstSDPResult</span></a>.</p>
-</div>
 </div>
 <hr>
 <div class="refsect2">
 <a name="gst-sdp-message-attributes-len"></a><h3>gst_sdp_message_attributes_len ()</h3>
 <pre class="programlisting"><a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#guint"><span class="returnvalue">guint</span></a>
 gst_sdp_message_attributes_len (<em class="parameter"><code>const <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPMessage" title="GstSDPMessage"><span class="type">GstSDPMessage</span></a> *msg</code></em>);</pre>
-<p>Get the number of attributes in <em class="parameter"><code>msg</code></em>
-.</p>
-<div class="refsect3">
-<a name="gst-sdp-message-attributes-len.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>msg</p></td>
-<td class="parameter_description"><p>a <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPMessage" title="GstSDPMessage"><span class="type">GstSDPMessage</span></a></p></td>
-<td class="parameter_annotations"> </td>
-</tr></tbody>
-</table></div>
-</div>
-<div class="refsect3">
-<a name="gst-sdp-message-attributes-len.returns"></a><h4>Returns</h4>
-<p> the number of attributes in <em class="parameter"><code>msg</code></em>
-.</p>
-</div>
 </div>
 <hr>
 <div class="refsect2">
@@ -3517,36 +1565,6 @@
 <pre class="programlisting">const <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPAttribute" title="GstSDPAttribute"><span class="returnvalue">GstSDPAttribute</span></a> *
 gst_sdp_message_get_attribute (<em class="parameter"><code>const <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPMessage" title="GstSDPMessage"><span class="type">GstSDPMessage</span></a> *msg</code></em>,
                                <em class="parameter"><code><a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#guint"><span class="type">guint</span></a> idx</code></em>);</pre>
-<p>Get the attribute at position <em class="parameter"><code>idx</code></em>
- in <em class="parameter"><code>msg</code></em>
-.</p>
-<div class="refsect3">
-<a name="gst-sdp-message-get-attribute.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>msg</p></td>
-<td class="parameter_description"><p>a <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPMessage" title="GstSDPMessage"><span class="type">GstSDPMessage</span></a></p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-<tr>
-<td class="parameter_name"><p>idx</p></td>
-<td class="parameter_description"><p>the index</p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-</tbody>
-</table></div>
-</div>
-<div class="refsect3">
-<a name="gst-sdp-message-get-attribute.returns"></a><h4>Returns</h4>
-<p> the <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPAttribute" title="GstSDPAttribute"><span class="type">GstSDPAttribute</span></a> at position <em class="parameter"><code>idx</code></em>
-.</p>
-</div>
 </div>
 <hr>
 <div class="refsect2">
@@ -3554,36 +1572,6 @@
 <pre class="programlisting">const <a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> *
 gst_sdp_message_get_attribute_val (<em class="parameter"><code>const <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPMessage" title="GstSDPMessage"><span class="type">GstSDPMessage</span></a> *msg</code></em>,
                                    <em class="parameter"><code>const <a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *key</code></em>);</pre>
-<p>Get the first attribute with key <em class="parameter"><code>key</code></em>
- in <em class="parameter"><code>msg</code></em>
-.</p>
-<div class="refsect3">
-<a name="gst-sdp-message-get-attribute-val.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>msg</p></td>
-<td class="parameter_description"><p>a <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPMessage" title="GstSDPMessage"><span class="type">GstSDPMessage</span></a></p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-<tr>
-<td class="parameter_name"><p>key</p></td>
-<td class="parameter_description"><p>the key</p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-</tbody>
-</table></div>
-</div>
-<div class="refsect3">
-<a name="gst-sdp-message-get-attribute-val.returns"></a><h4>Returns</h4>
-<p> the attribute value of the first attribute with <em class="parameter"><code>key</code></em>
-.</p>
-</div>
 </div>
 <hr>
 <div class="refsect2">
@@ -3592,43 +1580,6 @@
 gst_sdp_message_get_attribute_val_n (<em class="parameter"><code>const <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPMessage" title="GstSDPMessage"><span class="type">GstSDPMessage</span></a> *msg</code></em>,
                                      <em class="parameter"><code>const <a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *key</code></em>,
                                      <em class="parameter"><code><a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#guint"><span class="type">guint</span></a> nth</code></em>);</pre>
-<p>Get the <em class="parameter"><code>nth</code></em>
- attribute with key <em class="parameter"><code>key</code></em>
- in <em class="parameter"><code>msg</code></em>
-.</p>
-<div class="refsect3">
-<a name="gst-sdp-message-get-attribute-val-n.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>msg</p></td>
-<td class="parameter_description"><p>a <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPMessage" title="GstSDPMessage"><span class="type">GstSDPMessage</span></a></p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-<tr>
-<td class="parameter_name"><p>key</p></td>
-<td class="parameter_description"><p>the key</p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-<tr>
-<td class="parameter_name"><p>nth</p></td>
-<td class="parameter_description"><p>the index</p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-</tbody>
-</table></div>
-</div>
-<div class="refsect3">
-<a name="gst-sdp-message-get-attribute-val-n.returns"></a><h4>Returns</h4>
-<p> the attribute value of the <em class="parameter"><code>nth</code></em>
-attribute with <em class="parameter"><code>key</code></em>
-.</p>
-</div>
 </div>
 <hr>
 <div class="refsect2">
@@ -3637,44 +1588,6 @@
 gst_sdp_message_insert_attribute (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPMessage" title="GstSDPMessage"><span class="type">GstSDPMessage</span></a> *msg</code></em>,
                                   <em class="parameter"><code><a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#gint"><span class="type">gint</span></a> idx</code></em>,
                                   <em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPAttribute" title="GstSDPAttribute"><span class="type">GstSDPAttribute</span></a> *attr</code></em>);</pre>
-<p>Insert attribute into the array of attributes in <em class="parameter"><code>msg</code></em>
-
-at index <em class="parameter"><code>idx</code></em>
-.
-When -1 is given as <em class="parameter"><code>idx</code></em>
-, the attribute is inserted at the end.</p>
-<div class="refsect3">
-<a name="gst-sdp-message-insert-attribute.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>msg</p></td>
-<td class="parameter_description"><p>a <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPMessage" title="GstSDPMessage"><span class="type">GstSDPMessage</span></a></p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-<tr>
-<td class="parameter_name"><p>idx</p></td>
-<td class="parameter_description"><p>an index</p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-<tr>
-<td class="parameter_name"><p>attr</p></td>
-<td class="parameter_description"><p>a <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPAttribute" title="GstSDPAttribute"><span class="type">GstSDPAttribute</span></a></p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-</tbody>
-</table></div>
-</div>
-<div class="refsect3">
-<a name="gst-sdp-message-insert-attribute.returns"></a><h4>Returns</h4>
-<p> a <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPResult" title="enum GstSDPResult"><span class="type">GstSDPResult</span></a>.</p>
-</div>
-<p class="since">Since: 1.2</p>
 </div>
 <hr>
 <div class="refsect2">
@@ -3683,42 +1596,6 @@
 gst_sdp_message_replace_attribute (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPMessage" title="GstSDPMessage"><span class="type">GstSDPMessage</span></a> *msg</code></em>,
                                    <em class="parameter"><code><a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#guint"><span class="type">guint</span></a> idx</code></em>,
                                    <em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPAttribute" title="GstSDPAttribute"><span class="type">GstSDPAttribute</span></a> *attr</code></em>);</pre>
-<p>Replace the attribute in <em class="parameter"><code>msg</code></em>
- at index <em class="parameter"><code>idx</code></em>
- with <em class="parameter"><code>attr</code></em>
-.</p>
-<div class="refsect3">
-<a name="gst-sdp-message-replace-attribute.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>msg</p></td>
-<td class="parameter_description"><p>a <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPMessage" title="GstSDPMessage"><span class="type">GstSDPMessage</span></a></p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-<tr>
-<td class="parameter_name"><p>idx</p></td>
-<td class="parameter_description"><p>the index</p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-<tr>
-<td class="parameter_name"><p>attr</p></td>
-<td class="parameter_description"><p>a <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPAttribute" title="GstSDPAttribute"><span class="type">GstSDPAttribute</span></a></p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-</tbody>
-</table></div>
-</div>
-<div class="refsect3">
-<a name="gst-sdp-message-replace-attribute.returns"></a><h4>Returns</h4>
-<p> a <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPResult" title="enum GstSDPResult"><span class="type">GstSDPResult</span></a>.</p>
-</div>
-<p class="since">Since: 1.2</p>
 </div>
 <hr>
 <div class="refsect2">
@@ -3726,36 +1603,6 @@
 <pre class="programlisting"><a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPResult" title="enum GstSDPResult"><span class="returnvalue">GstSDPResult</span></a>
 gst_sdp_message_remove_attribute (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPMessage" title="GstSDPMessage"><span class="type">GstSDPMessage</span></a> *msg</code></em>,
                                   <em class="parameter"><code><a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#guint"><span class="type">guint</span></a> idx</code></em>);</pre>
-<p>Remove the attribute in <em class="parameter"><code>msg</code></em>
- at index <em class="parameter"><code>idx</code></em>
-.</p>
-<div class="refsect3">
-<a name="gst-sdp-message-remove-attribute.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>msg</p></td>
-<td class="parameter_description"><p>a <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPMessage" title="GstSDPMessage"><span class="type">GstSDPMessage</span></a></p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-<tr>
-<td class="parameter_name"><p>idx</p></td>
-<td class="parameter_description"><p>the index</p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-</tbody>
-</table></div>
-</div>
-<div class="refsect3">
-<a name="gst-sdp-message-remove-attribute.returns"></a><h4>Returns</h4>
-<p> a <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPResult" title="enum GstSDPResult"><span class="type">GstSDPResult</span></a>.</p>
-</div>
-<p class="since">Since: 1.2</p>
 </div>
 <hr>
 <div class="refsect2">
@@ -3764,70 +1611,12 @@
 gst_sdp_message_add_attribute (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPMessage" title="GstSDPMessage"><span class="type">GstSDPMessage</span></a> *msg</code></em>,
                                <em class="parameter"><code>const <a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *key</code></em>,
                                <em class="parameter"><code>const <a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *value</code></em>);</pre>
-<p>Add the attribute with <em class="parameter"><code>key</code></em>
- and <em class="parameter"><code>value</code></em>
- to <em class="parameter"><code>msg</code></em>
-.</p>
-<div class="refsect3">
-<a name="gst-sdp-message-add-attribute.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>msg</p></td>
-<td class="parameter_description"><p>a <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPMessage" title="GstSDPMessage"><span class="type">GstSDPMessage</span></a></p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-<tr>
-<td class="parameter_name"><p>key</p></td>
-<td class="parameter_description"><p>the key</p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-<tr>
-<td class="parameter_name"><p>value</p></td>
-<td class="parameter_description"><p>the value</p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-</tbody>
-</table></div>
-</div>
-<div class="refsect3">
-<a name="gst-sdp-message-add-attribute.returns"></a><h4>Returns</h4>
-<p> <em class="parameter"><code>GST_SDP_OK</code></em>
-.</p>
-</div>
 </div>
 <hr>
 <div class="refsect2">
 <a name="gst-sdp-message-medias-len"></a><h3>gst_sdp_message_medias_len ()</h3>
 <pre class="programlisting"><a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#guint"><span class="returnvalue">guint</span></a>
 gst_sdp_message_medias_len (<em class="parameter"><code>const <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPMessage" title="GstSDPMessage"><span class="type">GstSDPMessage</span></a> *msg</code></em>);</pre>
-<p>Get the number of media descriptions in <em class="parameter"><code>msg</code></em>
-.</p>
-<div class="refsect3">
-<a name="gst-sdp-message-medias-len.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>msg</p></td>
-<td class="parameter_description"><p>a <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPMessage" title="GstSDPMessage"><span class="type">GstSDPMessage</span></a></p></td>
-<td class="parameter_annotations"> </td>
-</tr></tbody>
-</table></div>
-</div>
-<div class="refsect3">
-<a name="gst-sdp-message-medias-len.returns"></a><h4>Returns</h4>
-<p> the number of media descriptions in <em class="parameter"><code>msg</code></em>
-.</p>
-</div>
 </div>
 <hr>
 <div class="refsect2">
@@ -3835,35 +1624,6 @@
 <pre class="programlisting">const <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPMedia" title="GstSDPMedia"><span class="returnvalue">GstSDPMedia</span></a> *
 gst_sdp_message_get_media (<em class="parameter"><code>const <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPMessage" title="GstSDPMessage"><span class="type">GstSDPMessage</span></a> *msg</code></em>,
                            <em class="parameter"><code><a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#guint"><span class="type">guint</span></a> idx</code></em>);</pre>
-<p>Get the media description at index <em class="parameter"><code>idx</code></em>
- in <em class="parameter"><code>msg</code></em>
-.</p>
-<div class="refsect3">
-<a name="gst-sdp-message-get-media.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>msg</p></td>
-<td class="parameter_description"><p>a <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPMessage" title="GstSDPMessage"><span class="type">GstSDPMessage</span></a></p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-<tr>
-<td class="parameter_name"><p>idx</p></td>
-<td class="parameter_description"><p>the index</p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-</tbody>
-</table></div>
-</div>
-<div class="refsect3">
-<a name="gst-sdp-message-get-media.returns"></a><h4>Returns</h4>
-<p> a <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPMedia" title="GstSDPMedia"><span class="type">GstSDPMedia</span></a>.</p>
-</div>
 </div>
 <hr>
 <div class="refsect2">
@@ -3871,93 +1631,18 @@
 <pre class="programlisting"><a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPResult" title="enum GstSDPResult"><span class="returnvalue">GstSDPResult</span></a>
 gst_sdp_message_add_media (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPMessage" title="GstSDPMessage"><span class="type">GstSDPMessage</span></a> *msg</code></em>,
                            <em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPMedia" title="GstSDPMedia"><span class="type">GstSDPMedia</span></a> *media</code></em>);</pre>
-<p>Adds <em class="parameter"><code>media</code></em>
- to the array of medias in <em class="parameter"><code>msg</code></em>
-. This function takes ownership of
-the contents of <em class="parameter"><code>media</code></em>
- so that <em class="parameter"><code>media</code></em>
- will have to be reinitialized with
-<a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#gst-sdp-media-init" title="gst_sdp_media_init ()"><code class="function">gst_sdp_media_init()</code></a> before it can be used again.</p>
-<div class="refsect3">
-<a name="gst-sdp-message-add-media.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>msg</p></td>
-<td class="parameter_description"><p>a <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPMessage" title="GstSDPMessage"><span class="type">GstSDPMessage</span></a></p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-<tr>
-<td class="parameter_name"><p>media</p></td>
-<td class="parameter_description"><p>a <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPMedia" title="GstSDPMedia"><span class="type">GstSDPMedia</span></a> to add</p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-</tbody>
-</table></div>
-</div>
-<div class="refsect3">
-<a name="gst-sdp-message-add-media.returns"></a><h4>Returns</h4>
-<p> a <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPResult" title="enum GstSDPResult"><span class="type">GstSDPResult</span></a>.</p>
-</div>
 </div>
 <hr>
 <div class="refsect2">
 <a name="gst-sdp-message-dump"></a><h3>gst_sdp_message_dump ()</h3>
 <pre class="programlisting"><a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPResult" title="enum GstSDPResult"><span class="returnvalue">GstSDPResult</span></a>
 gst_sdp_message_dump (<em class="parameter"><code>const <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPMessage" title="GstSDPMessage"><span class="type">GstSDPMessage</span></a> *msg</code></em>);</pre>
-<p>Dump the parsed contents of <em class="parameter"><code>msg</code></em>
- to stdout.</p>
-<div class="refsect3">
-<a name="gst-sdp-message-dump.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>msg</p></td>
-<td class="parameter_description"><p>a <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPMessage" title="GstSDPMessage"><span class="type">GstSDPMessage</span></a></p></td>
-<td class="parameter_annotations"> </td>
-</tr></tbody>
-</table></div>
-</div>
-<div class="refsect3">
-<a name="gst-sdp-message-dump.returns"></a><h4>Returns</h4>
-<p> a <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPResult" title="enum GstSDPResult"><span class="type">GstSDPResult</span></a>.</p>
-</div>
 </div>
 <hr>
 <div class="refsect2">
 <a name="gst-sdp-media-new"></a><h3>gst_sdp_media_new ()</h3>
 <pre class="programlisting"><a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPResult" title="enum GstSDPResult"><span class="returnvalue">GstSDPResult</span></a>
 gst_sdp_media_new (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPMedia" title="GstSDPMedia"><span class="type">GstSDPMedia</span></a> **media</code></em>);</pre>
-<p>Allocate a new GstSDPMedia and store the result in <em class="parameter"><code>media</code></em>
-.</p>
-<div class="refsect3">
-<a name="gst-sdp-media-new.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>media</p></td>
-<td class="parameter_description"><p> pointer to new <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPMedia" title="GstSDPMedia"><span class="type">GstSDPMedia</span></a>. </p></td>
-<td class="parameter_annotations"><span class="annotation">[<acronym title="Parameter for returning results. Default is transfer full."><span class="acronym">out</span></acronym>][<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>]</span></td>
-</tr></tbody>
-</table></div>
-</div>
-<div class="refsect3">
-<a name="gst-sdp-media-new.returns"></a><h4>Returns</h4>
-<p> a <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPResult" title="enum GstSDPResult"><span class="type">GstSDPResult</span></a>.</p>
-</div>
 </div>
 <hr>
 <div class="refsect2">
@@ -3965,185 +1650,36 @@
 <pre class="programlisting"><a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPResult" title="enum GstSDPResult"><span class="returnvalue">GstSDPResult</span></a>
 gst_sdp_media_copy (<em class="parameter"><code>const <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPMedia" title="GstSDPMedia"><span class="type">GstSDPMedia</span></a> *media</code></em>,
                     <em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPMedia" title="GstSDPMedia"><span class="type">GstSDPMedia</span></a> **copy</code></em>);</pre>
-<p>Allocate a new copy of <em class="parameter"><code>media</code></em>
- and store the result in <em class="parameter"><code>copy</code></em>
-. The value in
-<em class="parameter"><code>copy</code></em>
- should be release with gst_sdp_media_free function.</p>
-<div class="refsect3">
-<a name="gst-sdp-media-copy.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>media</p></td>
-<td class="parameter_description"><p>a <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPMedia" title="GstSDPMedia"><span class="type">GstSDPMedia</span></a></p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-<tr>
-<td class="parameter_name"><p>copy</p></td>
-<td class="parameter_description"><p> pointer to new <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPMedia" title="GstSDPMedia"><span class="type">GstSDPMedia</span></a>. </p></td>
-<td class="parameter_annotations"><span class="annotation">[<acronym title="Parameter for returning results. Default is transfer full."><span class="acronym">out</span></acronym>][<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>]</span></td>
-</tr>
-</tbody>
-</table></div>
-</div>
-<div class="refsect3">
-<a name="gst-sdp-media-copy.returns"></a><h4>Returns</h4>
-<p> a <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPResult" title="enum GstSDPResult"><span class="type">GstSDPResult</span></a></p>
-</div>
-<p class="since">Since: 1.2</p>
 </div>
 <hr>
 <div class="refsect2">
 <a name="gst-sdp-media-init"></a><h3>gst_sdp_media_init ()</h3>
 <pre class="programlisting"><a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPResult" title="enum GstSDPResult"><span class="returnvalue">GstSDPResult</span></a>
 gst_sdp_media_init (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPMedia" title="GstSDPMedia"><span class="type">GstSDPMedia</span></a> *media</code></em>);</pre>
-<p>Initialize <em class="parameter"><code>media</code></em>
- so that its contents are as if it was freshly allocated
-with <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#gst-sdp-media-new" title="gst_sdp_media_new ()"><code class="function">gst_sdp_media_new()</code></a>. This function is mostly used to initialize a media
-allocated on the stack. <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#gst-sdp-media-uninit" title="gst_sdp_media_uninit ()"><code class="function">gst_sdp_media_uninit()</code></a> undoes this operation.</p>
-<p>When this function is invoked on newly allocated data (with malloc or on the
-stack), its contents should be set to 0 before calling this function.</p>
-<div class="refsect3">
-<a name="gst-sdp-media-init.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>media</p></td>
-<td class="parameter_description"><p>a <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPMedia" title="GstSDPMedia"><span class="type">GstSDPMedia</span></a></p></td>
-<td class="parameter_annotations"> </td>
-</tr></tbody>
-</table></div>
-</div>
-<div class="refsect3">
-<a name="gst-sdp-media-init.returns"></a><h4>Returns</h4>
-<p> a <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPResult" title="enum GstSDPResult"><span class="type">GstSDPResult</span></a>.</p>
-</div>
 </div>
 <hr>
 <div class="refsect2">
 <a name="gst-sdp-media-uninit"></a><h3>gst_sdp_media_uninit ()</h3>
 <pre class="programlisting"><a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPResult" title="enum GstSDPResult"><span class="returnvalue">GstSDPResult</span></a>
 gst_sdp_media_uninit (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPMedia" title="GstSDPMedia"><span class="type">GstSDPMedia</span></a> *media</code></em>);</pre>
-<p>Free all resources allocated in <em class="parameter"><code>media</code></em>
-. <em class="parameter"><code>media</code></em>
- should not be used anymore after
-this function. This function should be used when <em class="parameter"><code>media</code></em>
- was allocated on the
-stack and initialized with <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#gst-sdp-media-init" title="gst_sdp_media_init ()"><code class="function">gst_sdp_media_init()</code></a>.</p>
-<div class="refsect3">
-<a name="gst-sdp-media-uninit.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>media</p></td>
-<td class="parameter_description"><p>a <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPMedia" title="GstSDPMedia"><span class="type">GstSDPMedia</span></a></p></td>
-<td class="parameter_annotations"> </td>
-</tr></tbody>
-</table></div>
-</div>
-<div class="refsect3">
-<a name="gst-sdp-media-uninit.returns"></a><h4>Returns</h4>
-<p> a <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPResult" title="enum GstSDPResult"><span class="type">GstSDPResult</span></a>.</p>
-</div>
 </div>
 <hr>
 <div class="refsect2">
 <a name="gst-sdp-media-free"></a><h3>gst_sdp_media_free ()</h3>
 <pre class="programlisting"><a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPResult" title="enum GstSDPResult"><span class="returnvalue">GstSDPResult</span></a>
 gst_sdp_media_free (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPMedia" title="GstSDPMedia"><span class="type">GstSDPMedia</span></a> *media</code></em>);</pre>
-<p>Free all resources allocated by <em class="parameter"><code>media</code></em>
-. <em class="parameter"><code>media</code></em>
- should not be used anymore after
-this function. This function should be used when <em class="parameter"><code>media</code></em>
- was dynamically
-allocated with <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#gst-sdp-media-new" title="gst_sdp_media_new ()"><code class="function">gst_sdp_media_new()</code></a>.</p>
-<div class="refsect3">
-<a name="gst-sdp-media-free.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>media</p></td>
-<td class="parameter_description"><p>a <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPMedia" title="GstSDPMedia"><span class="type">GstSDPMedia</span></a></p></td>
-<td class="parameter_annotations"> </td>
-</tr></tbody>
-</table></div>
-</div>
-<div class="refsect3">
-<a name="gst-sdp-media-free.returns"></a><h4>Returns</h4>
-<p> a <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPResult" title="enum GstSDPResult"><span class="type">GstSDPResult</span></a>.</p>
-</div>
 </div>
 <hr>
 <div class="refsect2">
 <a name="gst-sdp-media-as-text"></a><h3>gst_sdp_media_as_text ()</h3>
 <pre class="programlisting"><a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> *
 gst_sdp_media_as_text (<em class="parameter"><code>const <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPMedia" title="GstSDPMedia"><span class="type">GstSDPMedia</span></a> *media</code></em>);</pre>
-<p>Convert the contents of <em class="parameter"><code>media</code></em>
- to a text string.</p>
-<div class="refsect3">
-<a name="gst-sdp-media-as-text.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>media</p></td>
-<td class="parameter_description"><p>a <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPMedia" title="GstSDPMedia"><span class="type">GstSDPMedia</span></a></p></td>
-<td class="parameter_annotations"> </td>
-</tr></tbody>
-</table></div>
-</div>
-<div class="refsect3">
-<a name="gst-sdp-media-as-text.returns"></a><h4>Returns</h4>
-<p> A dynamically allocated string representing the media.</p>
-</div>
 </div>
 <hr>
 <div class="refsect2">
 <a name="gst-sdp-media-get-media"></a><h3>gst_sdp_media_get_media ()</h3>
 <pre class="programlisting">const <a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> *
 gst_sdp_media_get_media (<em class="parameter"><code>const <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPMedia" title="GstSDPMedia"><span class="type">GstSDPMedia</span></a> *media</code></em>);</pre>
-<p>Get the media description of <em class="parameter"><code>media</code></em>
-.</p>
-<div class="refsect3">
-<a name="gst-sdp-media-get-media.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>media</p></td>
-<td class="parameter_description"><p>a <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPMedia" title="GstSDPMedia"><span class="type">GstSDPMedia</span></a></p></td>
-<td class="parameter_annotations"> </td>
-</tr></tbody>
-</table></div>
-</div>
-<div class="refsect3">
-<a name="gst-sdp-media-get-media.returns"></a><h4>Returns</h4>
-<p> the media description.</p>
-</div>
 </div>
 <hr>
 <div class="refsect2">
@@ -4151,91 +1687,18 @@
 <pre class="programlisting"><a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPResult" title="enum GstSDPResult"><span class="returnvalue">GstSDPResult</span></a>
 gst_sdp_media_set_media (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPMedia" title="GstSDPMedia"><span class="type">GstSDPMedia</span></a> *media</code></em>,
                          <em class="parameter"><code>const <a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *med</code></em>);</pre>
-<p>Set the media description of <em class="parameter"><code>media</code></em>
- to <em class="parameter"><code>med</code></em>
-.</p>
-<div class="refsect3">
-<a name="gst-sdp-media-set-media.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>media</p></td>
-<td class="parameter_description"><p>a <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPMedia" title="GstSDPMedia"><span class="type">GstSDPMedia</span></a></p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-<tr>
-<td class="parameter_name"><p>med</p></td>
-<td class="parameter_description"><p>the media description</p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-</tbody>
-</table></div>
-</div>
-<div class="refsect3">
-<a name="gst-sdp-media-set-media.returns"></a><h4>Returns</h4>
-<p> <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GST-SDP-OK:CAPS"><span class="type">GST_SDP_OK</span></a>.</p>
-</div>
 </div>
 <hr>
 <div class="refsect2">
 <a name="gst-sdp-media-get-port"></a><h3>gst_sdp_media_get_port ()</h3>
 <pre class="programlisting"><a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#guint"><span class="returnvalue">guint</span></a>
 gst_sdp_media_get_port (<em class="parameter"><code>const <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPMedia" title="GstSDPMedia"><span class="type">GstSDPMedia</span></a> *media</code></em>);</pre>
-<p>Get the port number for <em class="parameter"><code>media</code></em>
-.</p>
-<div class="refsect3">
-<a name="gst-sdp-media-get-port.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>media</p></td>
-<td class="parameter_description"><p>a <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPMedia" title="GstSDPMedia"><span class="type">GstSDPMedia</span></a></p></td>
-<td class="parameter_annotations"> </td>
-</tr></tbody>
-</table></div>
-</div>
-<div class="refsect3">
-<a name="gst-sdp-media-get-port.returns"></a><h4>Returns</h4>
-<p> the port number of <em class="parameter"><code>media</code></em>
-.</p>
-</div>
 </div>
 <hr>
 <div class="refsect2">
 <a name="gst-sdp-media-get-num-ports"></a><h3>gst_sdp_media_get_num_ports ()</h3>
 <pre class="programlisting"><a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#guint"><span class="returnvalue">guint</span></a>
 gst_sdp_media_get_num_ports (<em class="parameter"><code>const <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPMedia" title="GstSDPMedia"><span class="type">GstSDPMedia</span></a> *media</code></em>);</pre>
-<p>Get the number of ports for <em class="parameter"><code>media</code></em>
-.</p>
-<div class="refsect3">
-<a name="gst-sdp-media-get-num-ports.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>media</p></td>
-<td class="parameter_description"><p>a <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPMedia" title="GstSDPMedia"><span class="type">GstSDPMedia</span></a></p></td>
-<td class="parameter_annotations"> </td>
-</tr></tbody>
-</table></div>
-</div>
-<div class="refsect3">
-<a name="gst-sdp-media-get-num-ports.returns"></a><h4>Returns</h4>
-<p> the number of ports for <em class="parameter"><code>media</code></em>
-.</p>
-</div>
 </div>
 <hr>
 <div class="refsect2">
@@ -4244,67 +1707,12 @@
 gst_sdp_media_set_port_info (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPMedia" title="GstSDPMedia"><span class="type">GstSDPMedia</span></a> *media</code></em>,
                              <em class="parameter"><code><a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#guint"><span class="type">guint</span></a> port</code></em>,
                              <em class="parameter"><code><a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#guint"><span class="type">guint</span></a> num_ports</code></em>);</pre>
-<p>Set the port information in <em class="parameter"><code>media</code></em>
-.</p>
-<div class="refsect3">
-<a name="gst-sdp-media-set-port-info.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>media</p></td>
-<td class="parameter_description"><p>a <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPMedia" title="GstSDPMedia"><span class="type">GstSDPMedia</span></a></p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-<tr>
-<td class="parameter_name"><p>port</p></td>
-<td class="parameter_description"><p>the port number</p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-<tr>
-<td class="parameter_name"><p>num_ports</p></td>
-<td class="parameter_description"><p>the number of ports</p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-</tbody>
-</table></div>
-</div>
-<div class="refsect3">
-<a name="gst-sdp-media-set-port-info.returns"></a><h4>Returns</h4>
-<p> <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GST-SDP-OK:CAPS"><span class="type">GST_SDP_OK</span></a>.</p>
-</div>
 </div>
 <hr>
 <div class="refsect2">
 <a name="gst-sdp-media-get-proto"></a><h3>gst_sdp_media_get_proto ()</h3>
 <pre class="programlisting">const <a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> *
 gst_sdp_media_get_proto (<em class="parameter"><code>const <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPMedia" title="GstSDPMedia"><span class="type">GstSDPMedia</span></a> *media</code></em>);</pre>
-<p>Get the transport protocol of <em class="parameter"><code>media</code></em>
-</p>
-<div class="refsect3">
-<a name="gst-sdp-media-get-proto.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>media</p></td>
-<td class="parameter_description"><p>a <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPMedia" title="GstSDPMedia"><span class="type">GstSDPMedia</span></a></p></td>
-<td class="parameter_annotations"> </td>
-</tr></tbody>
-</table></div>
-</div>
-<div class="refsect3">
-<a name="gst-sdp-media-get-proto.returns"></a><h4>Returns</h4>
-<p> the transport protocol of <em class="parameter"><code>media</code></em>
-.</p>
-</div>
 </div>
 <hr>
 <div class="refsect2">
@@ -4312,63 +1720,12 @@
 <pre class="programlisting"><a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPResult" title="enum GstSDPResult"><span class="returnvalue">GstSDPResult</span></a>
 gst_sdp_media_set_proto (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPMedia" title="GstSDPMedia"><span class="type">GstSDPMedia</span></a> *media</code></em>,
                          <em class="parameter"><code>const <a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *proto</code></em>);</pre>
-<p>Set the media transport protocol of <em class="parameter"><code>media</code></em>
- to <em class="parameter"><code>proto</code></em>
-.</p>
-<div class="refsect3">
-<a name="gst-sdp-media-set-proto.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>media</p></td>
-<td class="parameter_description"><p>a <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPMedia" title="GstSDPMedia"><span class="type">GstSDPMedia</span></a></p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-<tr>
-<td class="parameter_name"><p>proto</p></td>
-<td class="parameter_description"><p>the media transport protocol</p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-</tbody>
-</table></div>
-</div>
-<div class="refsect3">
-<a name="gst-sdp-media-set-proto.returns"></a><h4>Returns</h4>
-<p> <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GST-SDP-OK:CAPS"><span class="type">GST_SDP_OK</span></a>.</p>
-</div>
 </div>
 <hr>
 <div class="refsect2">
 <a name="gst-sdp-media-formats-len"></a><h3>gst_sdp_media_formats_len ()</h3>
 <pre class="programlisting"><a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#guint"><span class="returnvalue">guint</span></a>
 gst_sdp_media_formats_len (<em class="parameter"><code>const <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPMedia" title="GstSDPMedia"><span class="type">GstSDPMedia</span></a> *media</code></em>);</pre>
-<p>Get the number of formats in <em class="parameter"><code>media</code></em>
-.</p>
-<div class="refsect3">
-<a name="gst-sdp-media-formats-len.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>media</p></td>
-<td class="parameter_description"><p>a <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPMedia" title="GstSDPMedia"><span class="type">GstSDPMedia</span></a></p></td>
-<td class="parameter_annotations"> </td>
-</tr></tbody>
-</table></div>
-</div>
-<div class="refsect3">
-<a name="gst-sdp-media-formats-len.returns"></a><h4>Returns</h4>
-<p> the number of formats in <em class="parameter"><code>media</code></em>
-.</p>
-</div>
 </div>
 <hr>
 <div class="refsect2">
@@ -4376,36 +1733,6 @@
 <pre class="programlisting">const <a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> *
 gst_sdp_media_get_format (<em class="parameter"><code>const <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPMedia" title="GstSDPMedia"><span class="type">GstSDPMedia</span></a> *media</code></em>,
                           <em class="parameter"><code><a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#guint"><span class="type">guint</span></a> idx</code></em>);</pre>
-<p>Get the format information at position <em class="parameter"><code>idx</code></em>
- in <em class="parameter"><code>media</code></em>
-.</p>
-<div class="refsect3">
-<a name="gst-sdp-media-get-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>media</p></td>
-<td class="parameter_description"><p>a <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPMedia" title="GstSDPMedia"><span class="type">GstSDPMedia</span></a></p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-<tr>
-<td class="parameter_name"><p>idx</p></td>
-<td class="parameter_description"><p>an index</p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-</tbody>
-</table></div>
-</div>
-<div class="refsect3">
-<a name="gst-sdp-media-get-format.returns"></a><h4>Returns</h4>
-<p> the format at position <em class="parameter"><code>idx</code></em>
-.</p>
-</div>
 </div>
 <hr>
 <div class="refsect2">
@@ -4414,43 +1741,6 @@
 gst_sdp_media_insert_format (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPMedia" title="GstSDPMedia"><span class="type">GstSDPMedia</span></a> *media</code></em>,
                              <em class="parameter"><code><a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#gint"><span class="type">gint</span></a> idx</code></em>,
                              <em class="parameter"><code>const <a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *format</code></em>);</pre>
-<p>Insert the format information to <em class="parameter"><code>media</code></em>
- at <em class="parameter"><code>idx</code></em>
-. When <em class="parameter"><code>idx</code></em>
- is -1,
-the format is appended.</p>
-<div class="refsect3">
-<a name="gst-sdp-media-insert-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>media</p></td>
-<td class="parameter_description"><p>a <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPMedia" title="GstSDPMedia"><span class="type">GstSDPMedia</span></a></p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-<tr>
-<td class="parameter_name"><p>idx</p></td>
-<td class="parameter_description"><p>an index</p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-<tr>
-<td class="parameter_name"><p>format</p></td>
-<td class="parameter_description"><p>the format</p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-</tbody>
-</table></div>
-</div>
-<div class="refsect3">
-<a name="gst-sdp-media-insert-format.returns"></a><h4>Returns</h4>
-<p> <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GST-SDP-OK:CAPS"><span class="type">GST_SDP_OK</span></a>.</p>
-</div>
-<p class="since">Since: 1.2</p>
 </div>
 <hr>
 <div class="refsect2">
@@ -4459,42 +1749,6 @@
 gst_sdp_media_replace_format (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPMedia" title="GstSDPMedia"><span class="type">GstSDPMedia</span></a> *media</code></em>,
                               <em class="parameter"><code><a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#guint"><span class="type">guint</span></a> idx</code></em>,
                               <em class="parameter"><code>const <a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *format</code></em>);</pre>
-<p>Replace the format information in <em class="parameter"><code>media</code></em>
- at <em class="parameter"><code>idx</code></em>
- with <em class="parameter"><code>format</code></em>
-.</p>
-<div class="refsect3">
-<a name="gst-sdp-media-replace-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>media</p></td>
-<td class="parameter_description"><p>a <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPMedia" title="GstSDPMedia"><span class="type">GstSDPMedia</span></a></p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-<tr>
-<td class="parameter_name"><p>idx</p></td>
-<td class="parameter_description"><p>an index</p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-<tr>
-<td class="parameter_name"><p>format</p></td>
-<td class="parameter_description"><p>the format</p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-</tbody>
-</table></div>
-</div>
-<div class="refsect3">
-<a name="gst-sdp-media-replace-format.returns"></a><h4>Returns</h4>
-<p> <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GST-SDP-OK:CAPS"><span class="type">GST_SDP_OK</span></a>.</p>
-</div>
-<p class="since">Since: 1.2</p>
 </div>
 <hr>
 <div class="refsect2">
@@ -4502,36 +1756,6 @@
 <pre class="programlisting"><a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPResult" title="enum GstSDPResult"><span class="returnvalue">GstSDPResult</span></a>
 gst_sdp_media_remove_format (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPMedia" title="GstSDPMedia"><span class="type">GstSDPMedia</span></a> *media</code></em>,
                              <em class="parameter"><code><a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#guint"><span class="type">guint</span></a> idx</code></em>);</pre>
-<p>Remove the format information in <em class="parameter"><code>media</code></em>
- at <em class="parameter"><code>idx</code></em>
-.</p>
-<div class="refsect3">
-<a name="gst-sdp-media-remove-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>media</p></td>
-<td class="parameter_description"><p>a <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPMedia" title="GstSDPMedia"><span class="type">GstSDPMedia</span></a></p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-<tr>
-<td class="parameter_name"><p>idx</p></td>
-<td class="parameter_description"><p>an index</p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-</tbody>
-</table></div>
-</div>
-<div class="refsect3">
-<a name="gst-sdp-media-remove-format.returns"></a><h4>Returns</h4>
-<p> <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GST-SDP-OK:CAPS"><span class="type">GST_SDP_OK</span></a>.</p>
-</div>
-<p class="since">Since: 1.2</p>
 </div>
 <hr>
 <div class="refsect2">
@@ -4539,62 +1763,12 @@
 <pre class="programlisting"><a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPResult" title="enum GstSDPResult"><span class="returnvalue">GstSDPResult</span></a>
 gst_sdp_media_add_format (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPMedia" title="GstSDPMedia"><span class="type">GstSDPMedia</span></a> *media</code></em>,
                           <em class="parameter"><code>const <a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *format</code></em>);</pre>
-<p>Add the format information to <em class="parameter"><code>media</code></em>
-.</p>
-<div class="refsect3">
-<a name="gst-sdp-media-add-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>media</p></td>
-<td class="parameter_description"><p>a <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPMedia" title="GstSDPMedia"><span class="type">GstSDPMedia</span></a></p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-<tr>
-<td class="parameter_name"><p>format</p></td>
-<td class="parameter_description"><p>the format</p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-</tbody>
-</table></div>
-</div>
-<div class="refsect3">
-<a name="gst-sdp-media-add-format.returns"></a><h4>Returns</h4>
-<p> <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GST-SDP-OK:CAPS"><span class="type">GST_SDP_OK</span></a>.</p>
-</div>
 </div>
 <hr>
 <div class="refsect2">
 <a name="gst-sdp-media-get-information"></a><h3>gst_sdp_media_get_information ()</h3>
 <pre class="programlisting">const <a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> *
 gst_sdp_media_get_information (<em class="parameter"><code>const <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPMedia" title="GstSDPMedia"><span class="type">GstSDPMedia</span></a> *media</code></em>);</pre>
-<p>Get the information of <em class="parameter"><code>media</code></em>
-</p>
-<div class="refsect3">
-<a name="gst-sdp-media-get-information.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>media</p></td>
-<td class="parameter_description"><p>a <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPMedia" title="GstSDPMedia"><span class="type">GstSDPMedia</span></a></p></td>
-<td class="parameter_annotations"> </td>
-</tr></tbody>
-</table></div>
-</div>
-<div class="refsect3">
-<a name="gst-sdp-media-get-information.returns"></a><h4>Returns</h4>
-<p> the information of <em class="parameter"><code>media</code></em>
-.</p>
-</div>
 </div>
 <hr>
 <div class="refsect2">
@@ -4602,63 +1776,12 @@
 <pre class="programlisting"><a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPResult" title="enum GstSDPResult"><span class="returnvalue">GstSDPResult</span></a>
 gst_sdp_media_set_information (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPMedia" title="GstSDPMedia"><span class="type">GstSDPMedia</span></a> *media</code></em>,
                                <em class="parameter"><code>const <a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *information</code></em>);</pre>
-<p>Set the media information of <em class="parameter"><code>media</code></em>
- to <em class="parameter"><code>information</code></em>
-.</p>
-<div class="refsect3">
-<a name="gst-sdp-media-set-information.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>media</p></td>
-<td class="parameter_description"><p>a <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPMedia" title="GstSDPMedia"><span class="type">GstSDPMedia</span></a></p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-<tr>
-<td class="parameter_name"><p>information</p></td>
-<td class="parameter_description"><p>the media information</p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-</tbody>
-</table></div>
-</div>
-<div class="refsect3">
-<a name="gst-sdp-media-set-information.returns"></a><h4>Returns</h4>
-<p> <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GST-SDP-OK:CAPS"><span class="type">GST_SDP_OK</span></a>.</p>
-</div>
 </div>
 <hr>
 <div class="refsect2">
 <a name="gst-sdp-media-connections-len"></a><h3>gst_sdp_media_connections_len ()</h3>
 <pre class="programlisting"><a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#guint"><span class="returnvalue">guint</span></a>
 gst_sdp_media_connections_len (<em class="parameter"><code>const <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPMedia" title="GstSDPMedia"><span class="type">GstSDPMedia</span></a> *media</code></em>);</pre>
-<p>Get the number of connection fields in <em class="parameter"><code>media</code></em>
-.</p>
-<div class="refsect3">
-<a name="gst-sdp-media-connections-len.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>media</p></td>
-<td class="parameter_description"><p>a <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPMedia" title="GstSDPMedia"><span class="type">GstSDPMedia</span></a></p></td>
-<td class="parameter_annotations"> </td>
-</tr></tbody>
-</table></div>
-</div>
-<div class="refsect3">
-<a name="gst-sdp-media-connections-len.returns"></a><h4>Returns</h4>
-<p> the number of connections in <em class="parameter"><code>media</code></em>
-.</p>
-</div>
 </div>
 <hr>
 <div class="refsect2">
@@ -4666,36 +1789,6 @@
 <pre class="programlisting">const <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPConnection" title="GstSDPConnection"><span class="returnvalue">GstSDPConnection</span></a> *
 gst_sdp_media_get_connection (<em class="parameter"><code>const <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPMedia" title="GstSDPMedia"><span class="type">GstSDPMedia</span></a> *media</code></em>,
                               <em class="parameter"><code><a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#guint"><span class="type">guint</span></a> idx</code></em>);</pre>
-<p>Get the connection at position <em class="parameter"><code>idx</code></em>
- in <em class="parameter"><code>media</code></em>
-.</p>
-<div class="refsect3">
-<a name="gst-sdp-media-get-connection.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>media</p></td>
-<td class="parameter_description"><p>a <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPMedia" title="GstSDPMedia"><span class="type">GstSDPMedia</span></a></p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-<tr>
-<td class="parameter_name"><p>idx</p></td>
-<td class="parameter_description"><p>an index</p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-</tbody>
-</table></div>
-</div>
-<div class="refsect3">
-<a name="gst-sdp-media-get-connection.returns"></a><h4>Returns</h4>
-<p> the <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPConnection" title="GstSDPConnection"><span class="type">GstSDPConnection</span></a> at position <em class="parameter"><code>idx</code></em>
-.</p>
-</div>
 </div>
 <hr>
 <div class="refsect2">
@@ -4704,43 +1797,6 @@
 gst_sdp_media_insert_connection (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPMedia" title="GstSDPMedia"><span class="type">GstSDPMedia</span></a> *media</code></em>,
                                  <em class="parameter"><code><a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#gint"><span class="type">gint</span></a> idx</code></em>,
                                  <em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPConnection" title="GstSDPConnection"><span class="type">GstSDPConnection</span></a> *conn</code></em>);</pre>
-<p>Insert the connection information to <em class="parameter"><code>media</code></em>
- at <em class="parameter"><code>idx</code></em>
-. When <em class="parameter"><code>idx</code></em>
- is -1,
-the connection is appended.</p>
-<div class="refsect3">
-<a name="gst-sdp-media-insert-connection.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>media</p></td>
-<td class="parameter_description"><p>a <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPMedia" title="GstSDPMedia"><span class="type">GstSDPMedia</span></a></p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-<tr>
-<td class="parameter_name"><p>idx</p></td>
-<td class="parameter_description"><p>an index</p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-<tr>
-<td class="parameter_name"><p>conn</p></td>
-<td class="parameter_description"><p>a <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPConnection" title="GstSDPConnection"><span class="type">GstSDPConnection</span></a></p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-</tbody>
-</table></div>
-</div>
-<div class="refsect3">
-<a name="gst-sdp-media-insert-connection.returns"></a><h4>Returns</h4>
-<p> <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GST-SDP-OK:CAPS"><span class="type">GST_SDP_OK</span></a>.</p>
-</div>
-<p class="since">Since: 1.2</p>
 </div>
 <hr>
 <div class="refsect2">
@@ -4749,42 +1805,6 @@
 gst_sdp_media_replace_connection (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPMedia" title="GstSDPMedia"><span class="type">GstSDPMedia</span></a> *media</code></em>,
                                   <em class="parameter"><code><a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#guint"><span class="type">guint</span></a> idx</code></em>,
                                   <em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPConnection" title="GstSDPConnection"><span class="type">GstSDPConnection</span></a> *conn</code></em>);</pre>
-<p>Replace the connection information in <em class="parameter"><code>media</code></em>
- at <em class="parameter"><code>idx</code></em>
- with <em class="parameter"><code>conn</code></em>
-.</p>
-<div class="refsect3">
-<a name="gst-sdp-media-replace-connection.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>media</p></td>
-<td class="parameter_description"><p>a <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPMedia" title="GstSDPMedia"><span class="type">GstSDPMedia</span></a></p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-<tr>
-<td class="parameter_name"><p>idx</p></td>
-<td class="parameter_description"><p>an index</p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-<tr>
-<td class="parameter_name"><p>conn</p></td>
-<td class="parameter_description"><p>a <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPConnection" title="GstSDPConnection"><span class="type">GstSDPConnection</span></a></p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-</tbody>
-</table></div>
-</div>
-<div class="refsect3">
-<a name="gst-sdp-media-replace-connection.returns"></a><h4>Returns</h4>
-<p> <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GST-SDP-OK:CAPS"><span class="type">GST_SDP_OK</span></a>.</p>
-</div>
-<p class="since">Since: 1.2</p>
 </div>
 <hr>
 <div class="refsect2">
@@ -4792,36 +1812,6 @@
 <pre class="programlisting"><a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPResult" title="enum GstSDPResult"><span class="returnvalue">GstSDPResult</span></a>
 gst_sdp_media_remove_connection (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPMedia" title="GstSDPMedia"><span class="type">GstSDPMedia</span></a> *media</code></em>,
                                  <em class="parameter"><code><a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#guint"><span class="type">guint</span></a> idx</code></em>);</pre>
-<p>Remove the connection information in <em class="parameter"><code>media</code></em>
- at <em class="parameter"><code>idx</code></em>
-.</p>
-<div class="refsect3">
-<a name="gst-sdp-media-remove-connection.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>media</p></td>
-<td class="parameter_description"><p>a <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPMedia" title="GstSDPMedia"><span class="type">GstSDPMedia</span></a></p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-<tr>
-<td class="parameter_name"><p>idx</p></td>
-<td class="parameter_description"><p>an index</p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-</tbody>
-</table></div>
-</div>
-<div class="refsect3">
-<a name="gst-sdp-media-remove-connection.returns"></a><h4>Returns</h4>
-<p> <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GST-SDP-OK:CAPS"><span class="type">GST_SDP_OK</span></a>.</p>
-</div>
-<p class="since">Since: 1.2</p>
 </div>
 <hr>
 <div class="refsect2">
@@ -4833,83 +1823,12 @@
                               <em class="parameter"><code>const <a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *address</code></em>,
                               <em class="parameter"><code><a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#guint"><span class="type">guint</span></a> ttl</code></em>,
                               <em class="parameter"><code><a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#guint"><span class="type">guint</span></a> addr_number</code></em>);</pre>
-<p>Add the given connection parameters to <em class="parameter"><code>media</code></em>
-.</p>
-<div class="refsect3">
-<a name="gst-sdp-media-add-connection.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>media</p></td>
-<td class="parameter_description"><p>a <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPMedia" title="GstSDPMedia"><span class="type">GstSDPMedia</span></a></p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-<tr>
-<td class="parameter_name"><p>nettype</p></td>
-<td class="parameter_description"><p>the type of network. "IN" is defined to have the meaning
-"Internet".</p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-<tr>
-<td class="parameter_name"><p>addrtype</p></td>
-<td class="parameter_description"><p>the type of address.</p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-<tr>
-<td class="parameter_name"><p>address</p></td>
-<td class="parameter_description"><p>the address</p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-<tr>
-<td class="parameter_name"><p>ttl</p></td>
-<td class="parameter_description"><p>the time to live of the address</p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-<tr>
-<td class="parameter_name"><p>addr_number</p></td>
-<td class="parameter_description"><p>the number of layers</p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-</tbody>
-</table></div>
-</div>
-<div class="refsect3">
-<a name="gst-sdp-media-add-connection.returns"></a><h4>Returns</h4>
-<p> a <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPResult" title="enum GstSDPResult"><span class="type">GstSDPResult</span></a>.</p>
-</div>
 </div>
 <hr>
 <div class="refsect2">
 <a name="gst-sdp-media-bandwidths-len"></a><h3>gst_sdp_media_bandwidths_len ()</h3>
 <pre class="programlisting"><a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#guint"><span class="returnvalue">guint</span></a>
 gst_sdp_media_bandwidths_len (<em class="parameter"><code>const <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPMedia" title="GstSDPMedia"><span class="type">GstSDPMedia</span></a> *media</code></em>);</pre>
-<p>Get the number of bandwidth fields in <em class="parameter"><code>media</code></em>
-.</p>
-<div class="refsect3">
-<a name="gst-sdp-media-bandwidths-len.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>media</p></td>
-<td class="parameter_description"><p>a <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPMedia" title="GstSDPMedia"><span class="type">GstSDPMedia</span></a></p></td>
-<td class="parameter_annotations"> </td>
-</tr></tbody>
-</table></div>
-</div>
-<div class="refsect3">
-<a name="gst-sdp-media-bandwidths-len.returns"></a><h4>Returns</h4>
-<p> the number of bandwidths in <em class="parameter"><code>media</code></em>
-.</p>
-</div>
 </div>
 <hr>
 <div class="refsect2">
@@ -4917,36 +1836,6 @@
 <pre class="programlisting">const <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPBandwidth" title="GstSDPBandwidth"><span class="returnvalue">GstSDPBandwidth</span></a> *
 gst_sdp_media_get_bandwidth (<em class="parameter"><code>const <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPMedia" title="GstSDPMedia"><span class="type">GstSDPMedia</span></a> *media</code></em>,
                              <em class="parameter"><code><a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#guint"><span class="type">guint</span></a> idx</code></em>);</pre>
-<p>Get the bandwidth at position <em class="parameter"><code>idx</code></em>
- in <em class="parameter"><code>media</code></em>
-.</p>
-<div class="refsect3">
-<a name="gst-sdp-media-get-bandwidth.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>media</p></td>
-<td class="parameter_description"><p>a <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPMedia" title="GstSDPMedia"><span class="type">GstSDPMedia</span></a></p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-<tr>
-<td class="parameter_name"><p>idx</p></td>
-<td class="parameter_description"><p>an index</p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-</tbody>
-</table></div>
-</div>
-<div class="refsect3">
-<a name="gst-sdp-media-get-bandwidth.returns"></a><h4>Returns</h4>
-<p> the <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPBandwidth" title="GstSDPBandwidth"><span class="type">GstSDPBandwidth</span></a> at position <em class="parameter"><code>idx</code></em>
-.</p>
-</div>
 </div>
 <hr>
 <div class="refsect2">
@@ -4955,43 +1844,6 @@
 gst_sdp_media_insert_bandwidth (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPMedia" title="GstSDPMedia"><span class="type">GstSDPMedia</span></a> *media</code></em>,
                                 <em class="parameter"><code><a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#gint"><span class="type">gint</span></a> idx</code></em>,
                                 <em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPBandwidth" title="GstSDPBandwidth"><span class="type">GstSDPBandwidth</span></a> *bw</code></em>);</pre>
-<p>Insert the bandwidth information to <em class="parameter"><code>media</code></em>
- at <em class="parameter"><code>idx</code></em>
-. When <em class="parameter"><code>idx</code></em>
- is -1,
-the bandwidth is appended.</p>
-<div class="refsect3">
-<a name="gst-sdp-media-insert-bandwidth.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>media</p></td>
-<td class="parameter_description"><p>a <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPMedia" title="GstSDPMedia"><span class="type">GstSDPMedia</span></a></p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-<tr>
-<td class="parameter_name"><p>idx</p></td>
-<td class="parameter_description"><p>an index</p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-<tr>
-<td class="parameter_name"><p>bw</p></td>
-<td class="parameter_description"><p>a <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPBandwidth" title="GstSDPBandwidth"><span class="type">GstSDPBandwidth</span></a></p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-</tbody>
-</table></div>
-</div>
-<div class="refsect3">
-<a name="gst-sdp-media-insert-bandwidth.returns"></a><h4>Returns</h4>
-<p> <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GST-SDP-OK:CAPS"><span class="type">GST_SDP_OK</span></a>.</p>
-</div>
-<p class="since">Since: 1.2</p>
 </div>
 <hr>
 <div class="refsect2">
@@ -5000,42 +1852,6 @@
 gst_sdp_media_replace_bandwidth (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPMedia" title="GstSDPMedia"><span class="type">GstSDPMedia</span></a> *media</code></em>,
                                  <em class="parameter"><code><a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#guint"><span class="type">guint</span></a> idx</code></em>,
                                  <em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPBandwidth" title="GstSDPBandwidth"><span class="type">GstSDPBandwidth</span></a> *bw</code></em>);</pre>
-<p>Replace the bandwidth information in <em class="parameter"><code>media</code></em>
- at <em class="parameter"><code>idx</code></em>
- with <em class="parameter"><code>bw</code></em>
-.</p>
-<div class="refsect3">
-<a name="gst-sdp-media-replace-bandwidth.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>media</p></td>
-<td class="parameter_description"><p>a <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPMedia" title="GstSDPMedia"><span class="type">GstSDPMedia</span></a></p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-<tr>
-<td class="parameter_name"><p>idx</p></td>
-<td class="parameter_description"><p>an index</p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-<tr>
-<td class="parameter_name"><p>bw</p></td>
-<td class="parameter_description"><p>a <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPBandwidth" title="GstSDPBandwidth"><span class="type">GstSDPBandwidth</span></a></p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-</tbody>
-</table></div>
-</div>
-<div class="refsect3">
-<a name="gst-sdp-media-replace-bandwidth.returns"></a><h4>Returns</h4>
-<p> <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GST-SDP-OK:CAPS"><span class="type">GST_SDP_OK</span></a>.</p>
-</div>
-<p class="since">Since: 1.2</p>
 </div>
 <hr>
 <div class="refsect2">
@@ -5043,36 +1859,6 @@
 <pre class="programlisting"><a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPResult" title="enum GstSDPResult"><span class="returnvalue">GstSDPResult</span></a>
 gst_sdp_media_remove_bandwidth (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPMedia" title="GstSDPMedia"><span class="type">GstSDPMedia</span></a> *media</code></em>,
                                 <em class="parameter"><code><a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#guint"><span class="type">guint</span></a> idx</code></em>);</pre>
-<p>Remove the bandwidth information in <em class="parameter"><code>media</code></em>
- at <em class="parameter"><code>idx</code></em>
-.</p>
-<div class="refsect3">
-<a name="gst-sdp-media-remove-bandwidth.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>media</p></td>
-<td class="parameter_description"><p>a <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPMedia" title="GstSDPMedia"><span class="type">GstSDPMedia</span></a></p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-<tr>
-<td class="parameter_name"><p>idx</p></td>
-<td class="parameter_description"><p>an index</p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-</tbody>
-</table></div>
-</div>
-<div class="refsect3">
-<a name="gst-sdp-media-remove-bandwidth.returns"></a><h4>Returns</h4>
-<p> <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GST-SDP-OK:CAPS"><span class="type">GST_SDP_OK</span></a>.</p>
-</div>
-<p class="since">Since: 1.2</p>
 </div>
 <hr>
 <div class="refsect2">
@@ -5081,68 +1867,12 @@
 gst_sdp_media_add_bandwidth (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPMedia" title="GstSDPMedia"><span class="type">GstSDPMedia</span></a> *media</code></em>,
                              <em class="parameter"><code>const <a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *bwtype</code></em>,
                              <em class="parameter"><code><a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#guint"><span class="type">guint</span></a> bandwidth</code></em>);</pre>
-<p>Add the bandwidth information with <em class="parameter"><code>bwtype</code></em>
- and <em class="parameter"><code>bandwidth</code></em>
- to <em class="parameter"><code>media</code></em>
-.</p>
-<div class="refsect3">
-<a name="gst-sdp-media-add-bandwidth.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>media</p></td>
-<td class="parameter_description"><p>a <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPMedia" title="GstSDPMedia"><span class="type">GstSDPMedia</span></a></p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-<tr>
-<td class="parameter_name"><p>bwtype</p></td>
-<td class="parameter_description"><p>the bandwidth modifier type</p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-<tr>
-<td class="parameter_name"><p>bandwidth</p></td>
-<td class="parameter_description"><p>the bandwidth in kilobits per second</p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-</tbody>
-</table></div>
-</div>
-<div class="refsect3">
-<a name="gst-sdp-media-add-bandwidth.returns"></a><h4>Returns</h4>
-<p> <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GST-SDP-OK:CAPS"><span class="type">GST_SDP_OK</span></a>.</p>
-</div>
 </div>
 <hr>
 <div class="refsect2">
 <a name="gst-sdp-media-get-key"></a><h3>gst_sdp_media_get_key ()</h3>
 <pre class="programlisting">const <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPKey" title="GstSDPKey"><span class="returnvalue">GstSDPKey</span></a> *
 gst_sdp_media_get_key (<em class="parameter"><code>const <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPMedia" title="GstSDPMedia"><span class="type">GstSDPMedia</span></a> *media</code></em>);</pre>
-<p>Get the encryption information from <em class="parameter"><code>media</code></em>
-.</p>
-<div class="refsect3">
-<a name="gst-sdp-media-get-key.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>media</p></td>
-<td class="parameter_description"><p>a <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPMedia" title="GstSDPMedia"><span class="type">GstSDPMedia</span></a></p></td>
-<td class="parameter_annotations"> </td>
-</tr></tbody>
-</table></div>
-</div>
-<div class="refsect3">
-<a name="gst-sdp-media-get-key.returns"></a><h4>Returns</h4>
-<p> a <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPKey" title="GstSDPKey"><span class="type">GstSDPKey</span></a>.</p>
-</div>
 </div>
 <hr>
 <div class="refsect2">
@@ -5151,67 +1881,12 @@
 gst_sdp_media_set_key (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPMedia" title="GstSDPMedia"><span class="type">GstSDPMedia</span></a> *media</code></em>,
                        <em class="parameter"><code>const <a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *type</code></em>,
                        <em class="parameter"><code>const <a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *data</code></em>);</pre>
-<p>Adds the encryption information to <em class="parameter"><code>media</code></em>
-.</p>
-<div class="refsect3">
-<a name="gst-sdp-media-set-key.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>media</p></td>
-<td class="parameter_description"><p>a <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPMedia" title="GstSDPMedia"><span class="type">GstSDPMedia</span></a></p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-<tr>
-<td class="parameter_name"><p>type</p></td>
-<td class="parameter_description"><p>the encryption type</p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-<tr>
-<td class="parameter_name"><p>data</p></td>
-<td class="parameter_description"><p>the encryption data</p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-</tbody>
-</table></div>
-</div>
-<div class="refsect3">
-<a name="gst-sdp-media-set-key.returns"></a><h4>Returns</h4>
-<p> a <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPResult" title="enum GstSDPResult"><span class="type">GstSDPResult</span></a>.</p>
-</div>
 </div>
 <hr>
 <div class="refsect2">
 <a name="gst-sdp-media-attributes-len"></a><h3>gst_sdp_media_attributes_len ()</h3>
 <pre class="programlisting"><a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#guint"><span class="returnvalue">guint</span></a>
 gst_sdp_media_attributes_len (<em class="parameter"><code>const <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPMedia" title="GstSDPMedia"><span class="type">GstSDPMedia</span></a> *media</code></em>);</pre>
-<p>Get the number of attribute fields in <em class="parameter"><code>media</code></em>
-.</p>
-<div class="refsect3">
-<a name="gst-sdp-media-attributes-len.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>media</p></td>
-<td class="parameter_description"><p>a <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPMedia" title="GstSDPMedia"><span class="type">GstSDPMedia</span></a></p></td>
-<td class="parameter_annotations"> </td>
-</tr></tbody>
-</table></div>
-</div>
-<div class="refsect3">
-<a name="gst-sdp-media-attributes-len.returns"></a><h4>Returns</h4>
-<p> the number of attributes in <em class="parameter"><code>media</code></em>
-.</p>
-</div>
 </div>
 <hr>
 <div class="refsect2">
@@ -5219,36 +1894,6 @@
 <pre class="programlisting">const <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPAttribute" title="GstSDPAttribute"><span class="returnvalue">GstSDPAttribute</span></a> *
 gst_sdp_media_get_attribute (<em class="parameter"><code>const <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPMedia" title="GstSDPMedia"><span class="type">GstSDPMedia</span></a> *media</code></em>,
                              <em class="parameter"><code><a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#guint"><span class="type">guint</span></a> idx</code></em>);</pre>
-<p>Get the attribute at position <em class="parameter"><code>idx</code></em>
- in <em class="parameter"><code>media</code></em>
-.</p>
-<div class="refsect3">
-<a name="gst-sdp-media-get-attribute.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>media</p></td>
-<td class="parameter_description"><p>a <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPMedia" title="GstSDPMedia"><span class="type">GstSDPMedia</span></a></p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-<tr>
-<td class="parameter_name"><p>idx</p></td>
-<td class="parameter_description"><p>an index</p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-</tbody>
-</table></div>
-</div>
-<div class="refsect3">
-<a name="gst-sdp-media-get-attribute.returns"></a><h4>Returns</h4>
-<p> the <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPAttribute" title="GstSDPAttribute"><span class="type">GstSDPAttribute</span></a> at position <em class="parameter"><code>idx</code></em>
-.</p>
-</div>
 </div>
 <hr>
 <div class="refsect2">
@@ -5256,36 +1901,6 @@
 <pre class="programlisting">const <a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> *
 gst_sdp_media_get_attribute_val (<em class="parameter"><code>const <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPMedia" title="GstSDPMedia"><span class="type">GstSDPMedia</span></a> *media</code></em>,
                                  <em class="parameter"><code>const <a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *key</code></em>);</pre>
-<p>Get the first attribute value for <em class="parameter"><code>key</code></em>
- in <em class="parameter"><code>media</code></em>
-.</p>
-<div class="refsect3">
-<a name="gst-sdp-media-get-attribute-val.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>media</p></td>
-<td class="parameter_description"><p>a <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPMedia" title="GstSDPMedia"><span class="type">GstSDPMedia</span></a></p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-<tr>
-<td class="parameter_name"><p>key</p></td>
-<td class="parameter_description"><p>a key</p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-</tbody>
-</table></div>
-</div>
-<div class="refsect3">
-<a name="gst-sdp-media-get-attribute-val.returns"></a><h4>Returns</h4>
-<p> the first attribute value for <em class="parameter"><code>key</code></em>
-.</p>
-</div>
 </div>
 <hr>
 <div class="refsect2">
@@ -5294,42 +1909,6 @@
 gst_sdp_media_get_attribute_val_n (<em class="parameter"><code>const <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPMedia" title="GstSDPMedia"><span class="type">GstSDPMedia</span></a> *media</code></em>,
                                    <em class="parameter"><code>const <a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *key</code></em>,
                                    <em class="parameter"><code><a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#guint"><span class="type">guint</span></a> nth</code></em>);</pre>
-<p>Get the <em class="parameter"><code>nth</code></em>
- attribute value for <em class="parameter"><code>key</code></em>
- in <em class="parameter"><code>media</code></em>
-.</p>
-<div class="refsect3">
-<a name="gst-sdp-media-get-attribute-val-n.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>media</p></td>
-<td class="parameter_description"><p>a <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPMedia" title="GstSDPMedia"><span class="type">GstSDPMedia</span></a></p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-<tr>
-<td class="parameter_name"><p>key</p></td>
-<td class="parameter_description"><p>a key</p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-<tr>
-<td class="parameter_name"><p>nth</p></td>
-<td class="parameter_description"><p>an index</p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-</tbody>
-</table></div>
-</div>
-<div class="refsect3">
-<a name="gst-sdp-media-get-attribute-val-n.returns"></a><h4>Returns</h4>
-<p> the <em class="parameter"><code>nth</code></em>
-attribute value.</p>
-</div>
 </div>
 <hr>
 <div class="refsect2">
@@ -5338,43 +1917,6 @@
 gst_sdp_media_insert_attribute (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPMedia" title="GstSDPMedia"><span class="type">GstSDPMedia</span></a> *media</code></em>,
                                 <em class="parameter"><code><a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#gint"><span class="type">gint</span></a> idx</code></em>,
                                 <em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPAttribute" title="GstSDPAttribute"><span class="type">GstSDPAttribute</span></a> *attr</code></em>);</pre>
-<p>Insert the attribute to <em class="parameter"><code>media</code></em>
- at <em class="parameter"><code>idx</code></em>
-. When <em class="parameter"><code>idx</code></em>
- is -1,
-the attribute is appended.</p>
-<div class="refsect3">
-<a name="gst-sdp-media-insert-attribute.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>media</p></td>
-<td class="parameter_description"><p>a <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPMedia" title="GstSDPMedia"><span class="type">GstSDPMedia</span></a></p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-<tr>
-<td class="parameter_name"><p>idx</p></td>
-<td class="parameter_description"><p>an index</p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-<tr>
-<td class="parameter_name"><p>attr</p></td>
-<td class="parameter_description"><p>a <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPAttribute" title="GstSDPAttribute"><span class="type">GstSDPAttribute</span></a></p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-</tbody>
-</table></div>
-</div>
-<div class="refsect3">
-<a name="gst-sdp-media-insert-attribute.returns"></a><h4>Returns</h4>
-<p> <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GST-SDP-OK:CAPS"><span class="type">GST_SDP_OK</span></a>.</p>
-</div>
-<p class="since">Since: 1.2</p>
 </div>
 <hr>
 <div class="refsect2">
@@ -5383,42 +1925,6 @@
 gst_sdp_media_replace_attribute (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPMedia" title="GstSDPMedia"><span class="type">GstSDPMedia</span></a> *media</code></em>,
                                  <em class="parameter"><code><a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#guint"><span class="type">guint</span></a> idx</code></em>,
                                  <em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPAttribute" title="GstSDPAttribute"><span class="type">GstSDPAttribute</span></a> *attr</code></em>);</pre>
-<p>Replace the attribute in <em class="parameter"><code>media</code></em>
- at <em class="parameter"><code>idx</code></em>
- with <em class="parameter"><code>attr</code></em>
-.</p>
-<div class="refsect3">
-<a name="gst-sdp-media-replace-attribute.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>media</p></td>
-<td class="parameter_description"><p>a <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPMedia" title="GstSDPMedia"><span class="type">GstSDPMedia</span></a></p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-<tr>
-<td class="parameter_name"><p>idx</p></td>
-<td class="parameter_description"><p>an index</p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-<tr>
-<td class="parameter_name"><p>attr</p></td>
-<td class="parameter_description"><p>a <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPAttribute" title="GstSDPAttribute"><span class="type">GstSDPAttribute</span></a></p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-</tbody>
-</table></div>
-</div>
-<div class="refsect3">
-<a name="gst-sdp-media-replace-attribute.returns"></a><h4>Returns</h4>
-<p> <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GST-SDP-OK:CAPS"><span class="type">GST_SDP_OK</span></a>.</p>
-</div>
-<p class="since">Since: 1.2</p>
 </div>
 <hr>
 <div class="refsect2">
@@ -5426,36 +1932,6 @@
 <pre class="programlisting"><a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPResult" title="enum GstSDPResult"><span class="returnvalue">GstSDPResult</span></a>
 gst_sdp_media_remove_attribute (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPMedia" title="GstSDPMedia"><span class="type">GstSDPMedia</span></a> *media</code></em>,
                                 <em class="parameter"><code><a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#guint"><span class="type">guint</span></a> idx</code></em>);</pre>
-<p>Remove the attribute in <em class="parameter"><code>media</code></em>
- at <em class="parameter"><code>idx</code></em>
-.</p>
-<div class="refsect3">
-<a name="gst-sdp-media-remove-attribute.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>media</p></td>
-<td class="parameter_description"><p>a <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPMedia" title="GstSDPMedia"><span class="type">GstSDPMedia</span></a></p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-<tr>
-<td class="parameter_name"><p>idx</p></td>
-<td class="parameter_description"><p>an index</p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-</tbody>
-</table></div>
-</div>
-<div class="refsect3">
-<a name="gst-sdp-media-remove-attribute.returns"></a><h4>Returns</h4>
-<p> <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GST-SDP-OK:CAPS"><span class="type">GST_SDP_OK</span></a>.</p>
-</div>
-<p class="since">Since: 1.2</p>
 </div>
 <hr>
 <div class="refsect2">
@@ -5464,41 +1940,6 @@
 gst_sdp_media_add_attribute (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPMedia" title="GstSDPMedia"><span class="type">GstSDPMedia</span></a> *media</code></em>,
                              <em class="parameter"><code>const <a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *key</code></em>,
                              <em class="parameter"><code>const <a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *value</code></em>);</pre>
-<p>Add the attribute with <em class="parameter"><code>key</code></em>
- and <em class="parameter"><code>value</code></em>
- to <em class="parameter"><code>media</code></em>
-.</p>
-<div class="refsect3">
-<a name="gst-sdp-media-add-attribute.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>media</p></td>
-<td class="parameter_description"><p>a <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPMedia" title="GstSDPMedia"><span class="type">GstSDPMedia</span></a></p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-<tr>
-<td class="parameter_name"><p>key</p></td>
-<td class="parameter_description"><p>a key</p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-<tr>
-<td class="parameter_name"><p>value</p></td>
-<td class="parameter_description"><p>a value</p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-</tbody>
-</table></div>
-</div>
-<div class="refsect3">
-<a name="gst-sdp-media-add-attribute.returns"></a><h4>Returns</h4>
-<p> <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GST-SDP-OK:CAPS"><span class="type">GST_SDP_OK</span></a>.</p>
-</div>
 </div>
 <hr>
 <div class="refsect2">
@@ -5506,37 +1947,6 @@
 <pre class="programlisting"><a href="/usr/share/gtk-doc/html/gstreamer-1.0GstCaps.html#GstCaps-struct"><span class="returnvalue">GstCaps</span></a> *
 gst_sdp_media_get_caps_from_media (<em class="parameter"><code>const <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPMedia" title="GstSDPMedia"><span class="type">GstSDPMedia</span></a> *media</code></em>,
                                    <em class="parameter"><code><a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#gint"><span class="type">gint</span></a> pt</code></em>);</pre>
-<p>Mapping of caps from SDP fields:</p>
-<p>a=rtpmap:(payload) (encoding_name)/(clock_rate)[/(encoding_params)]</p>
-<p>a=framesize:(payload) (width)-(height)</p>
-<p>a=fmtp:(payload) (param)[=(value)];...</p>
-<div class="refsect3">
-<a name="gst-sdp-media-get-caps-from-media.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>media</p></td>
-<td class="parameter_description"><p>a <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPMedia" title="GstSDPMedia"><span class="type">GstSDPMedia</span></a></p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-<tr>
-<td class="parameter_name"><p>pt</p></td>
-<td class="parameter_description"><p>a payload type</p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-</tbody>
-</table></div>
-</div>
-<div class="refsect3">
-<a name="gst-sdp-media-get-caps-from-media.returns"></a><h4>Returns</h4>
-<p> a <a href="/usr/share/gtk-doc/html/gstreamer-1.0GstCaps.html#GstCaps-struct"><span class="type">GstCaps</span></a>, or <a href="/usr/share/gtk-doc/html/glibglib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a> if an error happened</p>
-</div>
-<p class="since">Since: 1.8</p>
 </div>
 <hr>
 <div class="refsect2">
@@ -5544,37 +1954,6 @@
 <pre class="programlisting"><a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPResult" title="enum GstSDPResult"><span class="returnvalue">GstSDPResult</span></a>
 gst_sdp_media_set_media_from_caps (<em class="parameter"><code>const <a href="/usr/share/gtk-doc/html/gstreamer-1.0GstCaps.html#GstCaps-struct"><span class="type">GstCaps</span></a> *caps</code></em>,
                                    <em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPMedia" title="GstSDPMedia"><span class="type">GstSDPMedia</span></a> *media</code></em>);</pre>
-<p>Mapping of caps to SDP fields:</p>
-<p>a=rtpmap:(payload) (encoding_name) or (clock_rate)[or (encoding_params)]</p>
-<p>a=framesize:(payload) (width)-(height)</p>
-<p>a=fmtp:(payload) (param)[=(value)];...</p>
-<div class="refsect3">
-<a name="gst-sdp-media-set-media-from-caps.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>caps</p></td>
-<td class="parameter_description"><p>a <a href="/usr/share/gtk-doc/html/gstreamer-1.0GstCaps.html#GstCaps-struct"><span class="type">GstCaps</span></a></p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-<tr>
-<td class="parameter_name"><p>media</p></td>
-<td class="parameter_description"><p>a <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPMedia" title="GstSDPMedia"><span class="type">GstSDPMedia</span></a></p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-</tbody>
-</table></div>
-</div>
-<div class="refsect3">
-<a name="gst-sdp-media-set-media-from-caps.returns"></a><h4>Returns</h4>
-<p> a <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPResult" title="enum GstSDPResult"><span class="type">GstSDPResult</span></a>.</p>
-</div>
-<p class="since">Since: 1.8</p>
 </div>
 <hr>
 <div class="refsect2">
@@ -5582,35 +1961,6 @@
 <pre class="programlisting"><a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> *
 gst_sdp_make_keymgmt (<em class="parameter"><code>const <a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *uri</code></em>,
                       <em class="parameter"><code>const <a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *base64</code></em>);</pre>
-<p>Makes key management data</p>
-<div class="refsect3">
-<a name="gst-sdp-make-keymgmt.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>uri</p></td>
-<td class="parameter_description"><p>a <a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#gchar"><span class="type">gchar</span></a> URI</p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-<tr>
-<td class="parameter_name"><p>base64</p></td>
-<td class="parameter_description"><p>a <a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#gchar"><span class="type">gchar</span></a> base64-encoded key data</p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-</tbody>
-</table></div>
-</div>
-<div class="refsect3">
-<a name="gst-sdp-make-keymgmt.returns"></a><h4>Returns</h4>
-<p> a <a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#gchar"><span class="type">gchar</span></a> key-mgmt data,. </p>
-<p><span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>]</span></p>
-</div>
-<p class="since">Since: 1.8</p>
 </div>
 <hr>
 <div class="refsect2">
@@ -5618,34 +1968,6 @@
 <pre class="programlisting"><a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPResult" title="enum GstSDPResult"><span class="returnvalue">GstSDPResult</span></a>
 gst_sdp_message_attributes_to_caps (<em class="parameter"><code>const <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPMessage" title="GstSDPMessage"><span class="type">GstSDPMessage</span></a> *msg</code></em>,
                                     <em class="parameter"><code><a href="/usr/share/gtk-doc/html/gstreamer-1.0GstCaps.html#GstCaps-struct"><span class="type">GstCaps</span></a> *caps</code></em>);</pre>
-<p>Mapping of attributes of <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPMessage" title="GstSDPMessage"><span class="type">GstSDPMessage</span></a> to <a href="/usr/share/gtk-doc/html/gstreamer-1.0GstCaps.html#GstCaps-struct"><span class="type">GstCaps</span></a></p>
-<div class="refsect3">
-<a name="gst-sdp-message-attributes-to-caps.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>msg</p></td>
-<td class="parameter_description"><p>a <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPMessage" title="GstSDPMessage"><span class="type">GstSDPMessage</span></a></p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-<tr>
-<td class="parameter_name"><p>caps</p></td>
-<td class="parameter_description"><p>a <a href="/usr/share/gtk-doc/html/gstreamer-1.0GstCaps.html#GstCaps-struct"><span class="type">GstCaps</span></a></p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-</tbody>
-</table></div>
-</div>
-<div class="refsect3">
-<a name="gst-sdp-message-attributes-to-caps.returns"></a><h4>Returns</h4>
-<p> a <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPResult" title="enum GstSDPResult"><span class="type">GstSDPResult</span></a>.</p>
-</div>
-<p class="since">Since: 1.8</p>
 </div>
 <hr>
 <div class="refsect2">
@@ -5653,41 +1975,12 @@
 <pre class="programlisting"><a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPResult" title="enum GstSDPResult"><span class="returnvalue">GstSDPResult</span></a>
 gst_sdp_media_attributes_to_caps (<em class="parameter"><code>const <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPMedia" title="GstSDPMedia"><span class="type">GstSDPMedia</span></a> *media</code></em>,
                                   <em class="parameter"><code><a href="/usr/share/gtk-doc/html/gstreamer-1.0GstCaps.html#GstCaps-struct"><span class="type">GstCaps</span></a> *caps</code></em>);</pre>
-<p>Mapping of attributes of <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPMedia" title="GstSDPMedia"><span class="type">GstSDPMedia</span></a> to <a href="/usr/share/gtk-doc/html/gstreamer-1.0GstCaps.html#GstCaps-struct"><span class="type">GstCaps</span></a></p>
-<div class="refsect3">
-<a name="gst-sdp-media-attributes-to-caps.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>media</p></td>
-<td class="parameter_description"><p>a <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPMedia" title="GstSDPMedia"><span class="type">GstSDPMedia</span></a></p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-<tr>
-<td class="parameter_name"><p>caps</p></td>
-<td class="parameter_description"><p>a <a href="/usr/share/gtk-doc/html/gstreamer-1.0GstCaps.html#GstCaps-struct"><span class="type">GstCaps</span></a></p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-</tbody>
-</table></div>
-</div>
-<div class="refsect3">
-<a name="gst-sdp-media-attributes-to-caps.returns"></a><h4>Returns</h4>
-<p> a <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPResult" title="enum GstSDPResult"><span class="type">GstSDPResult</span></a>.</p>
-</div>
-<p class="since">Since: 1.8</p>
 </div>
 </div>
 <div class="refsect1">
 <a name="gst-plugins-base-libs-gstsdpmessage.other_details"></a><h2>Types and Values</h2>
 <div class="refsect2">
 <a name="GstSDPResult"></a><h3>enum GstSDPResult</h3>
-<p>Return values for the SDP functions.</p>
 <div class="refsect3">
 <a name="GstSDPResult.members"></a><h4>Members</h4>
 <div class="informaltable"><table class="informaltable" width="100%" border="0">
@@ -5699,17 +1992,13 @@
 <tbody>
 <tr>
 <td class="enum_member_name"><p><a name="GST-SDP-OK:CAPS"></a>GST_SDP_OK</p></td>
-<td class="enum_member_description">
-<p>A successful return value</p>
-</td>
-<td class="enum_member_annotations"> </td>
+<td> </td>
+<td> </td>
 </tr>
 <tr>
 <td class="enum_member_name"><p><a name="GST-SDP-EINVAL:CAPS"></a>GST_SDP_EINVAL</p></td>
-<td class="enum_member_description">
-<p>a function was given invalid parameters</p>
-</td>
-<td class="enum_member_annotations"> </td>
+<td> </td>
+<td> </td>
 </tr>
 </tbody>
 </table></div>
@@ -5727,62 +2016,6 @@
   gchar *addr;
 } GstSDPOrigin;
 </pre>
-<p>The contents of the SDP "o=" field which gives the originator of the session
-(their username and the address of the user's host) plus a session id and
-session version number.</p>
-<div class="refsect3">
-<a name="GstSDPOrigin.members"></a><h4>Members</h4>
-<div class="informaltable"><table class="informaltable" width="100%" border="0">
-<colgroup>
-<col width="300px" class="struct_members_name">
-<col class="struct_members_description">
-<col width="200px" class="struct_members_annotations">
-</colgroup>
-<tbody>
-<tr>
-<td class="struct_member_name"><p><a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *<em class="structfield"><code><a name="GstSDPOrigin.username"></a>username</code></em>;</p></td>
-<td class="struct_member_description"><p>the user's login on the originating host, or it is "-"
-if the originating host does not support the concept of user ids.</p></td>
-<td class="struct_member_annotations"> </td>
-</tr>
-<tr>
-<td class="struct_member_name"><p><a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *<em class="structfield"><code><a name="GstSDPOrigin.sess-id"></a>sess_id</code></em>;</p></td>
-<td class="struct_member_description"><p>is a numeric string such that the tuple of <em class="parameter"><code>username</code></em>
-, <em class="parameter"><code>sess_id</code></em>
-,
-<em class="parameter"><code>nettype</code></em>
-, <em class="parameter"><code>addrtype</code></em>
-and <em class="parameter"><code>addr</code></em>
-form a globally unique identifier for the
-session.</p></td>
-<td class="struct_member_annotations"> </td>
-</tr>
-<tr>
-<td class="struct_member_name"><p><a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *<em class="structfield"><code><a name="GstSDPOrigin.sess-version"></a>sess_version</code></em>;</p></td>
-<td class="struct_member_description"><p>a version number for this announcement</p></td>
-<td class="struct_member_annotations"> </td>
-</tr>
-<tr>
-<td class="struct_member_name"><p><a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *<em class="structfield"><code><a name="GstSDPOrigin.nettype"></a>nettype</code></em>;</p></td>
-<td class="struct_member_description"><p>the type of network. "IN" is defined to have the meaning
-"Internet".</p></td>
-<td class="struct_member_annotations"> </td>
-</tr>
-<tr>
-<td class="struct_member_name"><p><a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *<em class="structfield"><code><a name="GstSDPOrigin.addrtype"></a>addrtype</code></em>;</p></td>
-<td class="struct_member_description"><p>the type of <em class="parameter"><code>addr</code></em>
-.</p></td>
-<td class="struct_member_annotations"> </td>
-</tr>
-<tr>
-<td class="struct_member_name"><p><a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *<em class="structfield"><code><a name="GstSDPOrigin.addr"></a>addr</code></em>;</p></td>
-<td class="struct_member_description"><p>the globally unique address of the machine from which the session was
-created.</p></td>
-<td class="struct_member_annotations"> </td>
-</tr>
-</tbody>
-</table></div>
-</div>
 </div>
 <hr>
 <div class="refsect2">
@@ -5795,88 +2028,42 @@
   guint  addr_number;
 } GstSDPConnection;
 </pre>
-<p>The contents of the SDP "c=" field which contains connection data.</p>
-<div class="refsect3">
-<a name="GstSDPConnection.members"></a><h4>Members</h4>
-<div class="informaltable"><table class="informaltable" width="100%" border="0">
-<colgroup>
-<col width="300px" class="struct_members_name">
-<col class="struct_members_description">
-<col width="200px" class="struct_members_annotations">
-</colgroup>
-<tbody>
-<tr>
-<td class="struct_member_name"><p><a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *<em class="structfield"><code><a name="GstSDPConnection.nettype"></a>nettype</code></em>;</p></td>
-<td class="struct_member_description"><p>the type of network. "IN" is defined to have the meaning
-"Internet".</p></td>
-<td class="struct_member_annotations"> </td>
-</tr>
-<tr>
-<td class="struct_member_name"><p><a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *<em class="structfield"><code><a name="GstSDPConnection.addrtype"></a>addrtype</code></em>;</p></td>
-<td class="struct_member_description"><p>the type of <em class="parameter"><code>address</code></em>
-.</p></td>
-<td class="struct_member_annotations"> </td>
-</tr>
-<tr>
-<td class="struct_member_name"><p><a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *<em class="structfield"><code><a name="GstSDPConnection.address"></a>address</code></em>;</p></td>
-<td class="struct_member_description"><p>the address</p></td>
-<td class="struct_member_annotations"> </td>
-</tr>
-<tr>
-<td class="struct_member_name"><p><a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#guint"><span class="type">guint</span></a> <em class="structfield"><code><a name="GstSDPConnection.ttl"></a>ttl</code></em>;</p></td>
-<td class="struct_member_description"><p>the time to live of the address</p></td>
-<td class="struct_member_annotations"> </td>
-</tr>
-<tr>
-<td class="struct_member_name"><p><a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#guint"><span class="type">guint</span></a> <em class="structfield"><code><a name="GstSDPConnection.addr-number"></a>addr_number</code></em>;</p></td>
-<td class="struct_member_description"><p>the number of layers</p></td>
-<td class="struct_member_annotations"> </td>
-</tr>
-</tbody>
-</table></div>
-</div>
 </div>
 <hr>
 <div class="refsect2">
 <a name="GST-SDP-BWTYPE-CT:CAPS"></a><h3>GST_SDP_BWTYPE_CT</h3>
 <pre class="programlisting">#define GST_SDP_BWTYPE_CT               "CT"
 </pre>
-<p>The Conference Total bandwidth modifier.</p>
 </div>
 <hr>
 <div class="refsect2">
 <a name="GST-SDP-BWTYPE-AS:CAPS"></a><h3>GST_SDP_BWTYPE_AS</h3>
 <pre class="programlisting">#define GST_SDP_BWTYPE_AS               "AS"
 </pre>
-<p>The Application-Specific Maximum bandwidth modifier.</p>
 </div>
 <hr>
 <div class="refsect2">
 <a name="GST-SDP-BWTYPE-EXT-PREFIX:CAPS"></a><h3>GST_SDP_BWTYPE_EXT_PREFIX</h3>
 <pre class="programlisting">#define GST_SDP_BWTYPE_EXT_PREFIX       "X-"
 </pre>
-<p>The extension prefix bandwidth modifier.</p>
 </div>
 <hr>
 <div class="refsect2">
 <a name="GST-SDP-BWTYPE-RR:CAPS"></a><h3>GST_SDP_BWTYPE_RR</h3>
 <pre class="programlisting">#define GST_SDP_BWTYPE_RR               "RR"
 </pre>
-<p>RTCP bandwidth allocated to data receivers (RFC 3556).</p>
 </div>
 <hr>
 <div class="refsect2">
 <a name="GST-SDP-BWTYPE-RS:CAPS"></a><h3>GST_SDP_BWTYPE_RS</h3>
 <pre class="programlisting">#define GST_SDP_BWTYPE_RS               "RS"
 </pre>
-<p>RTCP bandwidth allocated to active data senders (RFC 3556).</p>
 </div>
 <hr>
 <div class="refsect2">
 <a name="GST-SDP-BWTYPE-TIAS:CAPS"></a><h3>GST_SDP_BWTYPE_TIAS</h3>
 <pre class="programlisting">#define GST_SDP_BWTYPE_TIAS             "TIAS"
 </pre>
-<p>Transport Independent Application Specific Maximum bandwidth (RFC 3890).</p>
 </div>
 <hr>
 <div class="refsect2">
@@ -5886,30 +2073,6 @@
   guint  bandwidth;
 } GstSDPBandwidth;
 </pre>
-<p>The contents of the SDP "b=" field which specifies the proposed bandwidth to
-be used by the session or media.</p>
-<div class="refsect3">
-<a name="GstSDPBandwidth.members"></a><h4>Members</h4>
-<div class="informaltable"><table class="informaltable" width="100%" border="0">
-<colgroup>
-<col width="300px" class="struct_members_name">
-<col class="struct_members_description">
-<col width="200px" class="struct_members_annotations">
-</colgroup>
-<tbody>
-<tr>
-<td class="struct_member_name"><p><a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *<em class="structfield"><code><a name="GstSDPBandwidth.bwtype"></a>bwtype</code></em>;</p></td>
-<td class="struct_member_description"><p>the bandwidth modifier type</p></td>
-<td class="struct_member_annotations"> </td>
-</tr>
-<tr>
-<td class="struct_member_name"><p><a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#guint"><span class="type">guint</span></a> <em class="structfield"><code><a name="GstSDPBandwidth.bandwidth"></a>bandwidth</code></em>;</p></td>
-<td class="struct_member_description"><p>the bandwidth in kilobits per second</p></td>
-<td class="struct_member_annotations"> </td>
-</tr>
-</tbody>
-</table></div>
-</div>
 </div>
 <hr>
 <div class="refsect2">
@@ -5920,37 +2083,6 @@
   GArray *repeat;
 } GstSDPTime;
 </pre>
-<p>The contents of the SDP "t=" field which specify the start and stop times for
-a conference session.</p>
-<div class="refsect3">
-<a name="GstSDPTime.members"></a><h4>Members</h4>
-<div class="informaltable"><table class="informaltable" width="100%" border="0">
-<colgroup>
-<col width="300px" class="struct_members_name">
-<col class="struct_members_description">
-<col width="200px" class="struct_members_annotations">
-</colgroup>
-<tbody>
-<tr>
-<td class="struct_member_name"><p><a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *<em class="structfield"><code><a name="GstSDPTime.start"></a>start</code></em>;</p></td>
-<td class="struct_member_description"><p>start time for the conference. The value is the decimal
-representation of Network Time Protocol (NTP) time values in seconds</p></td>
-<td class="struct_member_annotations"> </td>
-</tr>
-<tr>
-<td class="struct_member_name"><p><a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *<em class="structfield"><code><a name="GstSDPTime.stop"></a>stop</code></em>;</p></td>
-<td class="struct_member_description"><p>stop time for the conference. The value is the decimal
-representation of Network Time Protocol (NTP) time values in seconds</p></td>
-<td class="struct_member_annotations"> </td>
-</tr>
-<tr>
-<td class="struct_member_name"><p><a href="/usr/share/gtk-doc/html/glibglib-Arrays.html#GArray"><span class="type">GArray</span></a> *<em class="structfield"><code><a name="GstSDPTime.repeat"></a>repeat</code></em>;</p></td>
-<td class="struct_member_description"><p>repeat times for a session</p></td>
-<td class="struct_member_annotations"> </td>
-</tr>
-</tbody>
-</table></div>
-</div>
 </div>
 <hr>
 <div class="refsect2">
@@ -5960,31 +2092,6 @@
   gchar *typed_time;
 } GstSDPZone;
 </pre>
-<p>The contents of the SDP "z=" field which allows the sender to
-specify a list of time zone adjustments and offsets from the base
-time.</p>
-<div class="refsect3">
-<a name="GstSDPZone.members"></a><h4>Members</h4>
-<div class="informaltable"><table class="informaltable" width="100%" border="0">
-<colgroup>
-<col width="300px" class="struct_members_name">
-<col class="struct_members_description">
-<col width="200px" class="struct_members_annotations">
-</colgroup>
-<tbody>
-<tr>
-<td class="struct_member_name"><p><a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *<em class="structfield"><code><a name="GstSDPZone.time"></a>time</code></em>;</p></td>
-<td class="struct_member_description"><p>the NTP time that a time zone adjustment happens</p></td>
-<td class="struct_member_annotations"> </td>
-</tr>
-<tr>
-<td class="struct_member_name"><p><a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *<em class="structfield"><code><a name="GstSDPZone.typed-time"></a>typed_time</code></em>;</p></td>
-<td class="struct_member_description"><p>the offset from the time when the session was first scheduled</p></td>
-<td class="struct_member_annotations"> </td>
-</tr>
-</tbody>
-</table></div>
-</div>
 </div>
 <hr>
 <div class="refsect2">
@@ -5994,30 +2101,6 @@
   gchar *data;
 } GstSDPKey;
 </pre>
-<p>The contents of the SDP "k=" field which is used to convey encryption
-keys.</p>
-<div class="refsect3">
-<a name="GstSDPKey.members"></a><h4>Members</h4>
-<div class="informaltable"><table class="informaltable" width="100%" border="0">
-<colgroup>
-<col width="300px" class="struct_members_name">
-<col class="struct_members_description">
-<col width="200px" class="struct_members_annotations">
-</colgroup>
-<tbody>
-<tr>
-<td class="struct_member_name"><p><a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *<em class="structfield"><code><a name="GstSDPKey.type"></a>type</code></em>;</p></td>
-<td class="struct_member_description"><p>the encryption type</p></td>
-<td class="struct_member_annotations"> </td>
-</tr>
-<tr>
-<td class="struct_member_name"><p><a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *<em class="structfield"><code><a name="GstSDPKey.data"></a>data</code></em>;</p></td>
-<td class="struct_member_description"><p>the encryption data</p></td>
-<td class="struct_member_annotations"> </td>
-</tr>
-</tbody>
-</table></div>
-</div>
 </div>
 <hr>
 <div class="refsect2">
@@ -6027,29 +2110,6 @@
   gchar *value;
 } GstSDPAttribute;
 </pre>
-<p>The contents of the SDP "a=" field which contains a key/value pair.</p>
-<div class="refsect3">
-<a name="GstSDPAttribute.members"></a><h4>Members</h4>
-<div class="informaltable"><table class="informaltable" width="100%" border="0">
-<colgroup>
-<col width="300px" class="struct_members_name">
-<col class="struct_members_description">
-<col width="200px" class="struct_members_annotations">
-</colgroup>
-<tbody>
-<tr>
-<td class="struct_member_name"><p><a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *<em class="structfield"><code><a name="GstSDPAttribute.key"></a>key</code></em>;</p></td>
-<td class="struct_member_description"><p>the attribute key</p></td>
-<td class="struct_member_annotations"> </td>
-</tr>
-<tr>
-<td class="struct_member_name"><p><a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *<em class="structfield"><code><a name="GstSDPAttribute.value"></a>value</code></em>;</p></td>
-<td class="struct_member_description"><p>the attribute value or NULL when it was a property attribute</p></td>
-<td class="struct_member_annotations"> </td>
-</tr>
-</tbody>
-</table></div>
-</div>
 </div>
 <hr>
 <div class="refsect2">
@@ -6067,69 +2127,6 @@
   GArray           *attributes;
 } GstSDPMedia;
 </pre>
-<p>The contents of the SDP "m=" field with all related fields.</p>
-<div class="refsect3">
-<a name="GstSDPMedia.members"></a><h4>Members</h4>
-<div class="informaltable"><table class="informaltable" width="100%" border="0">
-<colgroup>
-<col width="300px" class="struct_members_name">
-<col class="struct_members_description">
-<col width="200px" class="struct_members_annotations">
-</colgroup>
-<tbody>
-<tr>
-<td class="struct_member_name"><p><a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *<em class="structfield"><code><a name="GstSDPMedia.media"></a>media</code></em>;</p></td>
-<td class="struct_member_description"><p>the media type</p></td>
-<td class="struct_member_annotations"> </td>
-</tr>
-<tr>
-<td class="struct_member_name"><p><a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#guint"><span class="type">guint</span></a> <em class="structfield"><code><a name="GstSDPMedia.port"></a>port</code></em>;</p></td>
-<td class="struct_member_description"><p>the transport port to which the media stream will be sent</p></td>
-<td class="struct_member_annotations"> </td>
-</tr>
-<tr>
-<td class="struct_member_name"><p><a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#guint"><span class="type">guint</span></a> <em class="structfield"><code><a name="GstSDPMedia.num-ports"></a>num_ports</code></em>;</p></td>
-<td class="struct_member_description"><p>the number of ports or -1 if only one port was specified</p></td>
-<td class="struct_member_annotations"> </td>
-</tr>
-<tr>
-<td class="struct_member_name"><p><a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *<em class="structfield"><code><a name="GstSDPMedia.proto"></a>proto</code></em>;</p></td>
-<td class="struct_member_description"><p>the transport protocol</p></td>
-<td class="struct_member_annotations"> </td>
-</tr>
-<tr>
-<td class="struct_member_name"><p><a href="/usr/share/gtk-doc/html/glibglib-Arrays.html#GArray"><span class="type">GArray</span></a> *<em class="structfield"><code><a name="GstSDPMedia.fmts"></a>fmts</code></em>;</p></td>
-<td class="struct_member_description"><p>an array of <a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#gchar"><span class="type">gchar</span></a> formats</p></td>
-<td class="struct_member_annotations"> </td>
-</tr>
-<tr>
-<td class="struct_member_name"><p><a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *<em class="structfield"><code><a name="GstSDPMedia.information"></a>information</code></em>;</p></td>
-<td class="struct_member_description"><p>the media title</p></td>
-<td class="struct_member_annotations"> </td>
-</tr>
-<tr>
-<td class="struct_member_name"><p><a href="/usr/share/gtk-doc/html/glibglib-Arrays.html#GArray"><span class="type">GArray</span></a> *<em class="structfield"><code><a name="GstSDPMedia.connections"></a>connections</code></em>;</p></td>
-<td class="struct_member_description"><p>array of <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPConnection" title="GstSDPConnection"><span class="type">GstSDPConnection</span></a> with media connection information</p></td>
-<td class="struct_member_annotations"> </td>
-</tr>
-<tr>
-<td class="struct_member_name"><p><a href="/usr/share/gtk-doc/html/glibglib-Arrays.html#GArray"><span class="type">GArray</span></a> *<em class="structfield"><code><a name="GstSDPMedia.bandwidths"></a>bandwidths</code></em>;</p></td>
-<td class="struct_member_description"><p>array of <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPBandwidth" title="GstSDPBandwidth"><span class="type">GstSDPBandwidth</span></a> with media bandwidth information</p></td>
-<td class="struct_member_annotations"> </td>
-</tr>
-<tr>
-<td class="struct_member_name"><p><a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPKey" title="GstSDPKey"><span class="type">GstSDPKey</span></a> <em class="structfield"><code><a name="GstSDPMedia.key"></a>key</code></em>;</p></td>
-<td class="struct_member_description"><p>the encryption key</p></td>
-<td class="struct_member_annotations"> </td>
-</tr>
-<tr>
-<td class="struct_member_name"><p><a href="/usr/share/gtk-doc/html/glibglib-Arrays.html#GArray"><span class="type">GArray</span></a> *<em class="structfield"><code><a name="GstSDPMedia.attributes"></a>attributes</code></em>;</p></td>
-<td class="struct_member_description"><p>array of <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPAttribute" title="GstSDPAttribute"><span class="type">GstSDPAttribute</span></a> with the additional media attributes</p></td>
-<td class="struct_member_annotations"> </td>
-</tr>
-</tbody>
-</table></div>
-</div>
 </div>
 <hr>
 <div class="refsect2">
@@ -6151,89 +2148,6 @@
   GArray           *medias;
 } GstSDPMessage;
 </pre>
-<p>The contents of the SDP message.</p>
-<div class="refsect3">
-<a name="GstSDPMessage.members"></a><h4>Members</h4>
-<div class="informaltable"><table class="informaltable" width="100%" border="0">
-<colgroup>
-<col width="300px" class="struct_members_name">
-<col class="struct_members_description">
-<col width="200px" class="struct_members_annotations">
-</colgroup>
-<tbody>
-<tr>
-<td class="struct_member_name"><p><a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *<em class="structfield"><code><a name="GstSDPMessage.version"></a>version</code></em>;</p></td>
-<td class="struct_member_description"><p>the protocol version</p></td>
-<td class="struct_member_annotations"> </td>
-</tr>
-<tr>
-<td class="struct_member_name"><p><a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPOrigin" title="GstSDPOrigin"><span class="type">GstSDPOrigin</span></a> <em class="structfield"><code><a name="GstSDPMessage.origin"></a>origin</code></em>;</p></td>
-<td class="struct_member_description"><p>owner/creator and session identifier</p></td>
-<td class="struct_member_annotations"> </td>
-</tr>
-<tr>
-<td class="struct_member_name"><p><a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *<em class="structfield"><code><a name="GstSDPMessage.session-name"></a>session_name</code></em>;</p></td>
-<td class="struct_member_description"><p>session name</p></td>
-<td class="struct_member_annotations"> </td>
-</tr>
-<tr>
-<td class="struct_member_name"><p><a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *<em class="structfield"><code><a name="GstSDPMessage.information"></a>information</code></em>;</p></td>
-<td class="struct_member_description"><p>session information</p></td>
-<td class="struct_member_annotations"> </td>
-</tr>
-<tr>
-<td class="struct_member_name"><p><a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *<em class="structfield"><code><a name="GstSDPMessage.uri"></a>uri</code></em>;</p></td>
-<td class="struct_member_description"><p>URI of description</p></td>
-<td class="struct_member_annotations"> </td>
-</tr>
-<tr>
-<td class="struct_member_name"><p><a href="/usr/share/gtk-doc/html/glibglib-Arrays.html#GArray"><span class="type">GArray</span></a> *<em class="structfield"><code><a name="GstSDPMessage.emails"></a>emails</code></em>;</p></td>
-<td class="struct_member_description"><p>array of <a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#gchar"><span class="type">gchar</span></a> with email addresses</p></td>
-<td class="struct_member_annotations"> </td>
-</tr>
-<tr>
-<td class="struct_member_name"><p><a href="/usr/share/gtk-doc/html/glibglib-Arrays.html#GArray"><span class="type">GArray</span></a> *<em class="structfield"><code><a name="GstSDPMessage.phones"></a>phones</code></em>;</p></td>
-<td class="struct_member_description"><p>array of <a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#gchar"><span class="type">gchar</span></a> with phone numbers</p></td>
-<td class="struct_member_annotations"> </td>
-</tr>
-<tr>
-<td class="struct_member_name"><p><a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPConnection" title="GstSDPConnection"><span class="type">GstSDPConnection</span></a> <em class="structfield"><code><a name="GstSDPMessage.connection"></a>connection</code></em>;</p></td>
-<td class="struct_member_description"><p>connection information for the session</p></td>
-<td class="struct_member_annotations"> </td>
-</tr>
-<tr>
-<td class="struct_member_name"><p><a href="/usr/share/gtk-doc/html/glibglib-Arrays.html#GArray"><span class="type">GArray</span></a> *<em class="structfield"><code><a name="GstSDPMessage.bandwidths"></a>bandwidths</code></em>;</p></td>
-<td class="struct_member_description"><p>array of <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPBandwidth" title="GstSDPBandwidth"><span class="type">GstSDPBandwidth</span></a> with bandwidth information</p></td>
-<td class="struct_member_annotations"> </td>
-</tr>
-<tr>
-<td class="struct_member_name"><p><a href="/usr/share/gtk-doc/html/glibglib-Arrays.html#GArray"><span class="type">GArray</span></a> *<em class="structfield"><code><a name="GstSDPMessage.times"></a>times</code></em>;</p></td>
-<td class="struct_member_description"><p>array of <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPTime" title="GstSDPTime"><span class="type">GstSDPTime</span></a> with time descriptions</p></td>
-<td class="struct_member_annotations"> </td>
-</tr>
-<tr>
-<td class="struct_member_name"><p><a href="/usr/share/gtk-doc/html/glibglib-Arrays.html#GArray"><span class="type">GArray</span></a> *<em class="structfield"><code><a name="GstSDPMessage.zones"></a>zones</code></em>;</p></td>
-<td class="struct_member_description"><p>array of <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPZone" title="GstSDPZone"><span class="type">GstSDPZone</span></a> with time zone adjustments</p></td>
-<td class="struct_member_annotations"> </td>
-</tr>
-<tr>
-<td class="struct_member_name"><p><a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPKey" title="GstSDPKey"><span class="type">GstSDPKey</span></a> <em class="structfield"><code><a name="GstSDPMessage.key"></a>key</code></em>;</p></td>
-<td class="struct_member_description"><p>encryption key</p></td>
-<td class="struct_member_annotations"> </td>
-</tr>
-<tr>
-<td class="struct_member_name"><p><a href="/usr/share/gtk-doc/html/glibglib-Arrays.html#GArray"><span class="type">GArray</span></a> *<em class="structfield"><code><a name="GstSDPMessage.attributes"></a>attributes</code></em>;</p></td>
-<td class="struct_member_description"><p>array of <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPAttribute" title="GstSDPAttribute"><span class="type">GstSDPAttribute</span></a> with session attributes</p></td>
-<td class="struct_member_annotations"> </td>
-</tr>
-<tr>
-<td class="struct_member_name"><p><a href="/usr/share/gtk-doc/html/glibglib-Arrays.html#GArray"><span class="type">GArray</span></a> *<em class="structfield"><code><a name="GstSDPMessage.medias"></a>medias</code></em>;</p></td>
-<td class="struct_member_description"><p>array of <a class="link" href="gst-plugins-base-libs-gstsdpmessage.html#GstSDPMedia" title="GstSDPMedia"><span class="type">GstSDPMedia</span></a> with media descriptions</p></td>
-<td class="struct_member_annotations"> </td>
-</tr>
-</tbody>
-</table></div>
-</div>
 </div>
 </div>
 </div>
diff --git a/docs/libs/html/gst-plugins-base-libs-gststreamvolume.html b/docs/libs/html/gst-plugins-base-libs-gststreamvolume.html
index 9f6af5d..7b41f32 100644
--- a/docs/libs/html/gst-plugins-base-libs-gststreamvolume.html
+++ b/docs/libs/html/gst-plugins-base-libs-gststreamvolume.html
@@ -30,7 +30,7 @@
 <div class="refnamediv"><table width="100%"><tr>
 <td valign="top">
 <h2><span class="refentrytitle"><a name="gst-plugins-base-libs-gststreamvolume.top_of_page"></a>gststreamvolume</span></h2>
-<p>gststreamvolume — Interface for elements that provide a stream volume</p>
+<p>gststreamvolume</p>
 </td>
 <td class="gallery_image" valign="top" align="right"></td>
 </tr></table></div>
@@ -145,28 +145,6 @@
 </div>
 <div class="refsect1">
 <a name="gst-plugins-base-libs-gststreamvolume.description"></a><h2>Description</h2>
-<div class="refsect2">
-<a name="id-1.2.6.19.10.2"></a><p>
-This interface is implemented by elements that provide a stream volume. Examples for
-such elements are <span class="type">volume</span> and <span class="type">playbin</span>.
-</p>
-<p>
-Applications can use this interface to get or set the current stream volume. For this
-the "volume" <a href="/usr/share/gtk-doc/html/gobjectgobject-The-Base-Object-Type.html#GObject-struct"><span class="type">GObject</span></a> property can be used or the helper functions <a class="link" href="gst-plugins-base-libs-gststreamvolume.html#gst-stream-volume-set-volume" title="gst_stream_volume_set_volume ()"><code class="function">gst_stream_volume_set_volume()</code></a>
-and <a class="link" href="gst-plugins-base-libs-gststreamvolume.html#gst-stream-volume-get-volume" title="gst_stream_volume_get_volume ()"><code class="function">gst_stream_volume_get_volume()</code></a>. This volume is always a linear factor, i.e. 0.0 is muted
-1.0 is 100%. For showing the volume in a GUI it might make sense to convert it to
-a different format by using <a class="link" href="gst-plugins-base-libs-gststreamvolume.html#gst-stream-volume-convert-volume" title="gst_stream_volume_convert_volume ()"><code class="function">gst_stream_volume_convert_volume()</code></a>. Volume sliders should usually
-use a cubic volume.
-
-Separate from the volume the stream can also be muted by the "mute" <a href="/usr/share/gtk-doc/html/gobjectgobject-The-Base-Object-Type.html#GObject-struct"><span class="type">GObject</span></a> property or
-<a class="link" href="gst-plugins-base-libs-gststreamvolume.html#gst-stream-volume-set-mute" title="gst_stream_volume_set_mute ()"><code class="function">gst_stream_volume_set_mute()</code></a> and <a class="link" href="gst-plugins-base-libs-gststreamvolume.html#gst-stream-volume-get-mute" title="gst_stream_volume_get_mute ()"><code class="function">gst_stream_volume_get_mute()</code></a>.
-</p>
-<p>
-Elements that provide some kind of stream volume should implement the "volume" and
-"mute" <a href="/usr/share/gtk-doc/html/gobjectgobject-The-Base-Object-Type.html#GObject-struct"><span class="type">GObject</span></a> properties and handle setting and getting of them properly.
-The volume property is defined to be a linear volume factor.
-</p>
-</div>
 </div>
 <div class="refsect1">
 <a name="gst-plugins-base-libs-gststreamvolume.functions_details"></a><h2>Functions</h2>
@@ -175,32 +153,6 @@
 <pre class="programlisting"><a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#gdouble"><span class="returnvalue">gdouble</span></a>
 gst_stream_volume_get_volume (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gststreamvolume.html#GstStreamVolume"><span class="type">GstStreamVolume</span></a> *volume</code></em>,
                               <em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gststreamvolume.html#GstStreamVolumeFormat" title="enum GstStreamVolumeFormat"><span class="type">GstStreamVolumeFormat</span></a> format</code></em>);</pre>
-<div class="refsect3">
-<a name="gst-stream-volume-get-volume.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>volume</p></td>
-<td class="parameter_description"><p><a class="link" href="gst-plugins-base-libs-gststreamvolume.html#GstStreamVolume"><span class="type">GstStreamVolume</span></a> that should be used</p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-<tr>
-<td class="parameter_name"><p>format</p></td>
-<td class="parameter_description"><p><a class="link" href="gst-plugins-base-libs-gststreamvolume.html#GstStreamVolumeFormat" title="enum GstStreamVolumeFormat"><span class="type">GstStreamVolumeFormat</span></a> which should be returned</p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-</tbody>
-</table></div>
-</div>
-<div class="refsect3">
-<a name="gst-stream-volume-get-volume.returns"></a><h4>Returns</h4>
-<p> The current stream volume as linear factor</p>
-</div>
 </div>
 <hr>
 <div class="refsect2">
@@ -209,59 +161,12 @@
 gst_stream_volume_set_volume (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gststreamvolume.html#GstStreamVolume"><span class="type">GstStreamVolume</span></a> *volume</code></em>,
                               <em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gststreamvolume.html#GstStreamVolumeFormat" title="enum GstStreamVolumeFormat"><span class="type">GstStreamVolumeFormat</span></a> format</code></em>,
                               <em class="parameter"><code><a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#gdouble"><span class="type">gdouble</span></a> val</code></em>);</pre>
-<div class="refsect3">
-<a name="gst-stream-volume-set-volume.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>volume</p></td>
-<td class="parameter_description"><p><a class="link" href="gst-plugins-base-libs-gststreamvolume.html#GstStreamVolume"><span class="type">GstStreamVolume</span></a> that should be used</p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-<tr>
-<td class="parameter_name"><p>format</p></td>
-<td class="parameter_description"><p><a class="link" href="gst-plugins-base-libs-gststreamvolume.html#GstStreamVolumeFormat" title="enum GstStreamVolumeFormat"><span class="type">GstStreamVolumeFormat</span></a> of <em class="parameter"><code>val</code></em>
-</p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-<tr>
-<td class="parameter_name"><p>val</p></td>
-<td class="parameter_description"><p>Linear volume factor that should be set</p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-</tbody>
-</table></div>
-</div>
 </div>
 <hr>
 <div class="refsect2">
 <a name="gst-stream-volume-get-mute"></a><h3>gst_stream_volume_get_mute ()</h3>
 <pre class="programlisting"><a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
 gst_stream_volume_get_mute (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gststreamvolume.html#GstStreamVolume"><span class="type">GstStreamVolume</span></a> *volume</code></em>);</pre>
-<div class="refsect3">
-<a name="gst-stream-volume-get-mute.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>volume</p></td>
-<td class="parameter_description"><p><a class="link" href="gst-plugins-base-libs-gststreamvolume.html#GstStreamVolume"><span class="type">GstStreamVolume</span></a> that should be used</p></td>
-<td class="parameter_annotations"> </td>
-</tr></tbody>
-</table></div>
-</div>
-<div class="refsect3">
-<a name="gst-stream-volume-get-mute.returns"></a><h4>Returns</h4>
-<p> Returns <a href="/usr/share/gtk-doc/html/glibglib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a> if the stream is muted</p>
-</div>
 </div>
 <hr>
 <div class="refsect2">
@@ -269,28 +174,6 @@
 <pre class="programlisting"><span class="returnvalue">void</span>
 gst_stream_volume_set_mute (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gststreamvolume.html#GstStreamVolume"><span class="type">GstStreamVolume</span></a> *volume</code></em>,
                             <em class="parameter"><code><a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a> mute</code></em>);</pre>
-<div class="refsect3">
-<a name="gst-stream-volume-set-mute.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>volume</p></td>
-<td class="parameter_description"><p><a class="link" href="gst-plugins-base-libs-gststreamvolume.html#GstStreamVolume"><span class="type">GstStreamVolume</span></a> that should be used</p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-<tr>
-<td class="parameter_name"><p>mute</p></td>
-<td class="parameter_description"><p>Mute state that should be set</p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-</tbody>
-</table></div>
-</div>
 </div>
 <hr>
 <div class="refsect2">
@@ -299,38 +182,6 @@
 gst_stream_volume_convert_volume (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gststreamvolume.html#GstStreamVolumeFormat" title="enum GstStreamVolumeFormat"><span class="type">GstStreamVolumeFormat</span></a> from</code></em>,
                                   <em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gststreamvolume.html#GstStreamVolumeFormat" title="enum GstStreamVolumeFormat"><span class="type">GstStreamVolumeFormat</span></a> to</code></em>,
                                   <em class="parameter"><code><a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#gdouble"><span class="type">gdouble</span></a> val</code></em>);</pre>
-<div class="refsect3">
-<a name="gst-stream-volume-convert-volume.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>from</p></td>
-<td class="parameter_description"><p><a class="link" href="gst-plugins-base-libs-gststreamvolume.html#GstStreamVolumeFormat" title="enum GstStreamVolumeFormat"><span class="type">GstStreamVolumeFormat</span></a> to convert from</p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-<tr>
-<td class="parameter_name"><p>to</p></td>
-<td class="parameter_description"><p><a class="link" href="gst-plugins-base-libs-gststreamvolume.html#GstStreamVolumeFormat" title="enum GstStreamVolumeFormat"><span class="type">GstStreamVolumeFormat</span></a> to convert to</p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-<tr>
-<td class="parameter_name"><p>val</p></td>
-<td class="parameter_description"><p>Volume in <em class="parameter"><code>from</code></em>
-format that should be converted</p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-</tbody>
-</table></div>
-</div>
-<div class="refsect3">
-<a name="gst-stream-volume-convert-volume.returns"></a><h4>Returns</h4>
-<p> the converted volume</p>
-</div>
 </div>
 </div>
 <div class="refsect1">
@@ -342,10 +193,6 @@
 <hr>
 <div class="refsect2">
 <a name="GstStreamVolumeFormat"></a><h3>enum GstStreamVolumeFormat</h3>
-<p>Different representations of a stream volume. <a class="link" href="gst-plugins-base-libs-gststreamvolume.html#gst-stream-volume-convert-volume" title="gst_stream_volume_convert_volume ()"><code class="function">gst_stream_volume_convert_volume()</code></a>
-allows to convert between the different representations.</p>
-<p>Formulas to convert from a linear to a cubic or dB volume are
-cbrt(val) and 20 * log10 (val).</p>
 <div class="refsect3">
 <a name="GstStreamVolumeFormat.members"></a><h4>Members</h4>
 <div class="informaltable"><table class="informaltable" width="100%" border="0">
@@ -357,24 +204,18 @@
 <tbody>
 <tr>
 <td class="enum_member_name"><p><a name="GST-STREAM-VOLUME-FORMAT-LINEAR:CAPS"></a>GST_STREAM_VOLUME_FORMAT_LINEAR</p></td>
-<td class="enum_member_description">
-<p>Linear scale factor, 1.0 = 100%</p>
-</td>
-<td class="enum_member_annotations"> </td>
+<td> </td>
+<td> </td>
 </tr>
 <tr>
 <td class="enum_member_name"><p><a name="GST-STREAM-VOLUME-FORMAT-CUBIC:CAPS"></a>GST_STREAM_VOLUME_FORMAT_CUBIC</p></td>
-<td class="enum_member_description">
-<p>Cubic volume scale</p>
-</td>
-<td class="enum_member_annotations"> </td>
+<td> </td>
+<td> </td>
 </tr>
 <tr>
 <td class="enum_member_name"><p><a name="GST-STREAM-VOLUME-FORMAT-DB:CAPS"></a>GST_STREAM_VOLUME_FORMAT_DB</p></td>
-<td class="enum_member_description">
-<p>Logarithmic volume scale (dB, amplitude not power)</p>
-</td>
-<td class="enum_member_annotations"> </td>
+<td> </td>
+<td> </td>
 </tr>
 </tbody>
 </table></div>
diff --git a/docs/libs/html/gst-plugins-base-libs-gsttag.html b/docs/libs/html/gst-plugins-base-libs-gsttag.html
index 1504c7d..5985be1 100644
--- a/docs/libs/html/gst-plugins-base-libs-gsttag.html
+++ b/docs/libs/html/gst-plugins-base-libs-gsttag.html
@@ -27,7 +27,7 @@
 <div class="refnamediv"><table width="100%"><tr>
 <td valign="top">
 <h2><span class="refentrytitle"><a name="gst-plugins-base-libs-gsttag.top_of_page"></a>gsttag</span></h2>
-<p>gsttag — additional tag definitions for plugins and applications</p>
+<p>gsttag</p>
 </td>
 <td class="gallery_image" valign="top" align="right"></td>
 </tr></table></div>
@@ -232,13 +232,6 @@
 </div>
 <div class="refsect1">
 <a name="gst-plugins-base-libs-gsttag.description"></a><h2>Description</h2>
-<div class="refsect2">
-<a name="id-1.2.13.3.6.2"></a><p>
-Contains additional standardized GStreamer tag definitions for plugins
-and applications, and functions to register them with the GStreamer
-tag system.
-</p>
-</div>
 </div>
 <div class="refsect1">
 <a name="gst-plugins-base-libs-gsttag.functions_details"></a><h2>Functions</h2>
@@ -246,9 +239,6 @@
 <a name="gst-tag-register-musicbrainz-tags"></a><h3>gst_tag_register_musicbrainz_tags ()</h3>
 <pre class="programlisting"><span class="returnvalue">void</span>
 gst_tag_register_musicbrainz_tags (<em class="parameter"><code><span class="type">void</span></code></em>);</pre>
-<p>Registers additional musicbrainz-specific tags with the GStreamer tag
-system. Plugins and applications that use these tags should call this
-function before using them. Can be called multiple times.</p>
 </div>
 <hr>
 <div class="refsect2">
@@ -257,47 +247,6 @@
 gst_tag_freeform_string_to_utf8 (<em class="parameter"><code>const <a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *data</code></em>,
                                  <em class="parameter"><code><a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#gint"><span class="type">gint</span></a> size</code></em>,
                                  <em class="parameter"><code>const <a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#gchar"><span class="type">gchar</span></a> **env_vars</code></em>);</pre>
-<p>Convenience function to read a string with unknown character encoding. If
-the string is already in UTF-8 encoding, it will be returned right away.
-If not it tries to detect byte-order-mark for UTF-16/32 cases and use that.
-Otherwise, the environment will be searched for a number of environment
-variables (whose names are specified in the NULL-terminated string array
-<em class="parameter"><code>env_vars</code></em>
-) containing a list of character encodings to try/use. If none
-are specified, the current locale will be tried. If that also doesn't work,
-WINDOWS-1252/ISO-8859-1 is assumed (which will almost always succeed).</p>
-<div class="refsect3">
-<a name="gst-tag-freeform-string-to-utf8.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>data</p></td>
-<td class="parameter_description"><p>string data</p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-<tr>
-<td class="parameter_name"><p>size</p></td>
-<td class="parameter_description"><p>length of string data, or -1 if the string is NUL-terminated</p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-<tr>
-<td class="parameter_name"><p>env_vars</p></td>
-<td class="parameter_description"><p>a NULL-terminated string array of environment variable names,
-or NULL</p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-</tbody>
-</table></div>
-</div>
-<div class="refsect3">
-<a name="gst-tag-freeform-string-to-utf8.returns"></a><h4>Returns</h4>
-<p> a newly-allocated string in UTF-8 encoding, or NULL</p>
-</div>
 </div>
 <hr>
 <div class="refsect2">
@@ -308,58 +257,6 @@
                                 <em class="parameter"><code><a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#gchar"><span class="type">gchar</span></a> **lang</code></em>,
                                 <em class="parameter"><code><a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#gchar"><span class="type">gchar</span></a> **value</code></em>,
                                 <em class="parameter"><code><a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a> fail_if_no_key</code></em>);</pre>
-<p>Convenience function to parse a GST_TAG_EXTENDED_COMMENT string and
-separate it into its components.</p>
-<p>If successful, <em class="parameter"><code>key</code></em>
-, <em class="parameter"><code>lang</code></em>
- and/or <em class="parameter"><code>value</code></em>
- will be set to newly allocated
-strings that you need to free with <a href="/usr/share/gtk-doc/html/glibglib-Memory-Allocation.html#g-free"><code class="function">g_free()</code></a> when done. <em class="parameter"><code>key</code></em>
- and <em class="parameter"><code>lang</code></em>
-
-may also be set to NULL by this function if there is no key or no language
-code in the extended comment string.</p>
-<div class="refsect3">
-<a name="gst-tag-parse-extended-comment.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>ext_comment</p></td>
-<td class="parameter_description"><p>an extended comment string, see <a href="/usr/share/gtk-doc/html/gstreamer-1.0GstTagList.html#GST-TAG-EXTENDED-COMMENT:CAPS"><span class="type">GST_TAG_EXTENDED_COMMENT</span></a></p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-<tr>
-<td class="parameter_name"><p>key</p></td>
-<td class="parameter_description"><p>return location for the comment description key, or NULL</p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-<tr>
-<td class="parameter_name"><p>lang</p></td>
-<td class="parameter_description"><p>return location for the comment ISO-639 language code, or NULL</p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-<tr>
-<td class="parameter_name"><p>value</p></td>
-<td class="parameter_description"><p>return location for the actual comment string, or NULL</p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-<tr>
-<td class="parameter_name"><p>fail_if_no_key</p></td>
-<td class="parameter_description"><p>whether to fail if strings are not in key=value form</p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-</tbody>
-</table></div>
-</div>
-<div class="refsect3">
-<a name="gst-tag-parse-extended-comment.returns"></a><h4>Returns</h4>
-<p> TRUE if the string could be parsed, otherwise FALSE</p>
-</div>
 </div>
 <hr>
 <div class="refsect2">
@@ -368,59 +265,6 @@
 gst_tag_image_data_to_image_sample (<em class="parameter"><code>const <a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#guint8"><span class="type">guint8</span></a> *image_data</code></em>,
                                     <em class="parameter"><code><a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#guint"><span class="type">guint</span></a> image_data_len</code></em>,
                                     <em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gsttag.html#GstTagImageType" title="enum GstTagImageType"><span class="type">GstTagImageType</span></a> image_type</code></em>);</pre>
-<p>Helper function for tag-reading plugins to create a <a href="/usr/share/gtk-doc/html/gstreamer-1.0GstSample.html#GstSample-struct"><span class="type">GstSample</span></a> suitable to
-add to a <a href="/usr/share/gtk-doc/html/gstreamer-1.0GstTagList.html#GstTagList-struct"><span class="type">GstTagList</span></a> as an image tag (such as <a href="/usr/share/gtk-doc/html/gstreamer-1.0GstTagList.html#GST-TAG-IMAGE:CAPS"><span class="type">GST_TAG_IMAGE</span></a> or
-<a href="/usr/share/gtk-doc/html/gstreamer-1.0GstTagList.html#GST-TAG-PREVIEW-IMAGE:CAPS"><span class="type">GST_TAG_PREVIEW_IMAGE</span></a>) from the encoded image data and an (optional) image
-type.</p>
-<p>Background: cover art and other images in tags are usually stored as a
-blob of binary image data, often accompanied by a MIME type or some other
-content type string (e.g. 'png', 'jpeg', 'jpg'). Sometimes there is also an
-'image type' to indicate what kind of image this is (e.g. front cover,
-back cover, artist, etc.). The image data may also be an URI to the image
-rather than the image itself.</p>
-<p>In GStreamer, image tags are <a href="/usr/share/gtk-doc/html/gstreamer-1.0GstSample.html#GstSample-struct"><span class="type">GstSample</span></a>s containing the raw image
-data, with the sample caps describing the content type of the image
-(e.g. image/jpeg, image/png, text/uri-list). The sample info may contain
-an additional 'image-type' field of <span class="type">GST_TYPE_TAG_IMAGE_TYPE</span> to describe
-the type of image (front cover, back cover etc.). <a href="/usr/share/gtk-doc/html/gstreamer-1.0GstTagList.html#GST-TAG-PREVIEW-IMAGE:CAPS"><span class="type">GST_TAG_PREVIEW_IMAGE</span></a>
-tags should not carry an image type, their type is already indicated via
-the special tag name.</p>
-<p>This function will do various checks and typefind the encoded image
-data (we can't trust the declared mime type).</p>
-<div class="refsect3">
-<a name="gst-tag-image-data-to-image-sample.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>image_data</p></td>
-<td class="parameter_description"><p>the (encoded) image</p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-<tr>
-<td class="parameter_name"><p>image_data_len</p></td>
-<td class="parameter_description"><p>the length of the encoded image data at <em class="parameter"><code>image_data</code></em>
-</p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-<tr>
-<td class="parameter_name"><p>image_type</p></td>
-<td class="parameter_description"><p>type of the image, or <a class="link" href="gst-plugins-base-libs-gsttag.html#GST-TAG-IMAGE-TYPE-UNDEFINED:CAPS"><span class="type">GST_TAG_IMAGE_TYPE_UNDEFINED</span></a>. Pass
-<a class="link" href="gst-plugins-base-libs-gsttag.html#GST-TAG-IMAGE-TYPE-NONE:CAPS"><span class="type">GST_TAG_IMAGE_TYPE_NONE</span></a> if no image type should be set at all (e.g.
-for preview images)</p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-</tbody>
-</table></div>
-</div>
-<div class="refsect3">
-<a name="gst-tag-image-data-to-image-sample.returns"></a><h4>Returns</h4>
-<p> a newly-allocated image sample for use in tag lists, or NULL</p>
-</div>
 </div>
 </div>
 <div class="refsect1">
@@ -429,321 +273,208 @@
 <a name="GST-TAG-MUSICBRAINZ-TRACKID:CAPS"></a><h3>GST_TAG_MUSICBRAINZ_TRACKID</h3>
 <pre class="programlisting">#define GST_TAG_MUSICBRAINZ_TRACKID "musicbrainz-trackid"
 </pre>
-<p>MusicBrainz track ID</p>
 </div>
 <hr>
 <div class="refsect2">
 <a name="GST-TAG-MUSICBRAINZ-ARTISTID:CAPS"></a><h3>GST_TAG_MUSICBRAINZ_ARTISTID</h3>
 <pre class="programlisting">#define GST_TAG_MUSICBRAINZ_ARTISTID "musicbrainz-artistid"
 </pre>
-<p>MusicBrainz artist ID</p>
 </div>
 <hr>
 <div class="refsect2">
 <a name="GST-TAG-MUSICBRAINZ-ALBUMID:CAPS"></a><h3>GST_TAG_MUSICBRAINZ_ALBUMID</h3>
 <pre class="programlisting">#define GST_TAG_MUSICBRAINZ_ALBUMID "musicbrainz-albumid"
 </pre>
-<p>MusicBrainz album ID</p>
 </div>
 <hr>
 <div class="refsect2">
 <a name="GST-TAG-MUSICBRAINZ-ALBUMARTISTID:CAPS"></a><h3>GST_TAG_MUSICBRAINZ_ALBUMARTISTID</h3>
 <pre class="programlisting">#define GST_TAG_MUSICBRAINZ_ALBUMARTISTID "musicbrainz-albumartistid"
 </pre>
-<p>MusicBrainz album artist ID</p>
 </div>
 <hr>
 <div class="refsect2">
 <a name="GST-TAG-MUSICBRAINZ-TRMID:CAPS"></a><h3>GST_TAG_MUSICBRAINZ_TRMID</h3>
 <pre class="programlisting">#define GST_TAG_MUSICBRAINZ_TRMID "musicbrainz-trmid"
 </pre>
-<p>MusicBrainz track TRM ID</p>
 </div>
 <hr>
 <div class="refsect2">
 <a name="GST-TAG-CDDA-CDDB-DISCID:CAPS"></a><h3>GST_TAG_CDDA_CDDB_DISCID</h3>
 <pre class="programlisting">#define GST_TAG_CDDA_CDDB_DISCID              "discid"
 </pre>
-<p>CDDB disc id in its short form (e.g. 'aa063d0f')</p>
 </div>
 <hr>
 <div class="refsect2">
 <a name="GST-TAG-CDDA-CDDB-DISCID-FULL:CAPS"></a><h3>GST_TAG_CDDA_CDDB_DISCID_FULL</h3>
 <pre class="programlisting">#define GST_TAG_CDDA_CDDB_DISCID_FULL         "discid-full"
 </pre>
-<p>CDDB disc id including all details</p>
 </div>
 <hr>
 <div class="refsect2">
 <a name="GST-TAG-CDDA-MUSICBRAINZ-DISCID:CAPS"></a><h3>GST_TAG_CDDA_MUSICBRAINZ_DISCID</h3>
 <pre class="programlisting">#define GST_TAG_CDDA_MUSICBRAINZ_DISCID       "musicbrainz-discid"
 </pre>
-<p>Musicbrainz disc id (e.g. 'ahg7JUcfR3vCYBphSDIogOOWrr0-')</p>
 </div>
 <hr>
 <div class="refsect2">
 <a name="GST-TAG-CDDA-MUSICBRAINZ-DISCID-FULL:CAPS"></a><h3>GST_TAG_CDDA_MUSICBRAINZ_DISCID_FULL</h3>
 <pre class="programlisting">#define GST_TAG_CDDA_MUSICBRAINZ_DISCID_FULL  "musicbrainz-discid-full"
 </pre>
-<p>Musicbrainz disc id details</p>
 </div>
 <hr>
 <div class="refsect2">
 <a name="GST-TAG-CMML-CLIP:CAPS"></a><h3>GST_TAG_CMML_CLIP</h3>
 <pre class="programlisting">#define GST_TAG_CMML_CLIP "cmml-clip"
 </pre>
-<p>Annodex CMML clip element tag</p>
 </div>
 <hr>
 <div class="refsect2">
 <a name="GST-TAG-CMML-HEAD:CAPS"></a><h3>GST_TAG_CMML_HEAD</h3>
 <pre class="programlisting">#define GST_TAG_CMML_HEAD "cmml-head"
 </pre>
-<p>Annodex CMML head element tag</p>
 </div>
 <hr>
 <div class="refsect2">
 <a name="GST-TAG-CMML-STREAM:CAPS"></a><h3>GST_TAG_CMML_STREAM</h3>
 <pre class="programlisting">#define GST_TAG_CMML_STREAM "cmml-stream"
 </pre>
-<p>Annodex CMML stream element tag</p>
 </div>
 <hr>
 <div class="refsect2">
 <a name="GST-TAG-CAPTURING-SHUTTER-SPEED:CAPS"></a><h3>GST_TAG_CAPTURING_SHUTTER_SPEED</h3>
 <pre class="programlisting">#define GST_TAG_CAPTURING_SHUTTER_SPEED        "capturing-shutter-speed"
 </pre>
-<p>Shutter speed used when capturing an image, in seconds. (fraction)</p>
 </div>
 <hr>
 <div class="refsect2">
 <a name="GST-TAG-CAPTURING-FOCAL-RATIO:CAPS"></a><h3>GST_TAG_CAPTURING_FOCAL_RATIO</h3>
 <pre class="programlisting">#define GST_TAG_CAPTURING_FOCAL_RATIO          "capturing-focal-ratio"
 </pre>
-<p>Focal ratio (f-number) used when capturing an image. (double)</p>
-<p>The value stored is the denominator of the focal ratio (f-number).
-For example, if this tag value is 2, the focal ratio is f/2.</p>
 </div>
 <hr>
 <div class="refsect2">
 <a name="GST-TAG-CAPTURING-FOCAL-LENGTH:CAPS"></a><h3>GST_TAG_CAPTURING_FOCAL_LENGTH</h3>
 <pre class="programlisting">#define GST_TAG_CAPTURING_FOCAL_LENGTH         "capturing-focal-length"
 </pre>
-<p>Focal length used when capturing an image, in mm. (double)</p>
 </div>
 <hr>
 <div class="refsect2">
 <a name="GST-TAG-CAPTURING-DIGITAL-ZOOM-RATIO:CAPS"></a><h3>GST_TAG_CAPTURING_DIGITAL_ZOOM_RATIO</h3>
 <pre class="programlisting">#define GST_TAG_CAPTURING_DIGITAL_ZOOM_RATIO   "capturing-digital-zoom-ratio"
 </pre>
-<p>Digital zoom ratio used when capturing an image. (double)</p>
 </div>
 <hr>
 <div class="refsect2">
 <a name="GST-TAG-CAPTURING-ISO-SPEED:CAPS"></a><h3>GST_TAG_CAPTURING_ISO_SPEED</h3>
 <pre class="programlisting">#define GST_TAG_CAPTURING_ISO_SPEED           "capturing-iso-speed"
 </pre>
-<p>ISO speed used when capturing an image. (integer)</p>
 </div>
 <hr>
 <div class="refsect2">
 <a name="GST-TAG-CAPTURING-EXPOSURE-PROGRAM:CAPS"></a><h3>GST_TAG_CAPTURING_EXPOSURE_PROGRAM</h3>
 <pre class="programlisting">#define GST_TAG_CAPTURING_EXPOSURE_PROGRAM     "capturing-exposure-program"
 </pre>
-<p>Type of exposure control used when capturing an image. (string)</p>
-<p>The allowed values are:
-  "undefined"
-  "manual"
-  "normal" - automatically controlled
-  "aperture-priority" - user selects aperture value
-  "shutter-priority" - user selects shutter speed
-  "creative" - biased towards depth of field
-  "action" - biased towards fast shutter speed
-  "portrait" - closeup, leaving background out of focus
-  "landscape" - landscape photos, background in focus</p>
 </div>
 <hr>
 <div class="refsect2">
 <a name="GST-TAG-CAPTURING-EXPOSURE-MODE:CAPS"></a><h3>GST_TAG_CAPTURING_EXPOSURE_MODE</h3>
 <pre class="programlisting">#define GST_TAG_CAPTURING_EXPOSURE_MODE       "capturing-exposure-mode"
 </pre>
-<p>Exposure mode used when capturing an image. (string)</p>
-<p>The allowed values are:
-  "auto-exposure"
-  "manual-exposure"
-  "auto-bracket"</p>
 </div>
 <hr>
 <div class="refsect2">
 <a name="GST-TAG-CAPTURING-SCENE-CAPTURE-TYPE:CAPS"></a><h3>GST_TAG_CAPTURING_SCENE_CAPTURE_TYPE</h3>
 <pre class="programlisting">#define GST_TAG_CAPTURING_SCENE_CAPTURE_TYPE  "capturing-scene-capture-type"
 </pre>
-<p>Scene mode used when capturing an image. (string)</p>
-<p>The allowed values are:
-  "standard"
-  "landscape"
-  "portrait"
-  "night-scene"</p>
 </div>
 <hr>
 <div class="refsect2">
 <a name="GST-TAG-CAPTURING-GAIN-ADJUSTMENT:CAPS"></a><h3>GST_TAG_CAPTURING_GAIN_ADJUSTMENT</h3>
 <pre class="programlisting">#define GST_TAG_CAPTURING_GAIN_ADJUSTMENT     "capturing-gain-adjustment"
 </pre>
-<p>Gain adjustment applied to an image. (string)</p>
-<p>The allowed values are:
-  "none"
-  "low-gain-up"
-  "high-gain-up"
-  "low-gain-down"
-  "high-gain-down"</p>
 </div>
 <hr>
 <div class="refsect2">
 <a name="GST-TAG-CAPTURING-WHITE-BALANCE:CAPS"></a><h3>GST_TAG_CAPTURING_WHITE_BALANCE</h3>
 <pre class="programlisting">#define GST_TAG_CAPTURING_WHITE_BALANCE       "capturing-white-balance"
 </pre>
-<p>White balance mode used when capturing an image. (string)</p>
-<p>The allowed values are:
-  "auto"
-  "manual"
-  "daylight"
-  "cloudy"
-  "tungsten"
-  "fluorescent"
-  "fluorescent h" (newer daylight-calibrated fluorescents)
-  "flash"</p>
 </div>
 <hr>
 <div class="refsect2">
 <a name="GST-TAG-CAPTURING-CONTRAST:CAPS"></a><h3>GST_TAG_CAPTURING_CONTRAST</h3>
 <pre class="programlisting">#define GST_TAG_CAPTURING_CONTRAST            "capturing-contrast"
 </pre>
-<p>Direction of contrast processing applied when capturing an image. (string)</p>
-<p>The allowed values are:
- "normal"
- "soft"
- "hard"</p>
 </div>
 <hr>
 <div class="refsect2">
 <a name="GST-TAG-CAPTURING-SATURATION:CAPS"></a><h3>GST_TAG_CAPTURING_SATURATION</h3>
 <pre class="programlisting">#define GST_TAG_CAPTURING_SATURATION          "capturing-saturation"
 </pre>
-<p>Direction of saturation processing applied when capturing an image. (string)</p>
-<p>The allowed values are:
- "normal"
- "low-saturation"
- "high-saturation"</p>
 </div>
 <hr>
 <div class="refsect2">
 <a name="GST-TAG-CAPTURING-SHARPNESS:CAPS"></a><h3>GST_TAG_CAPTURING_SHARPNESS</h3>
 <pre class="programlisting">#define GST_TAG_CAPTURING_SHARPNESS          "capturing-sharpness"
 </pre>
-<p>Direction of sharpness processing applied when capturing an image. (string)</p>
-<p>The allowed values are:
- "normal"
- "soft"
- "hard"</p>
 </div>
 <hr>
 <div class="refsect2">
 <a name="GST-TAG-CAPTURING-FLASH-FIRED:CAPS"></a><h3>GST_TAG_CAPTURING_FLASH_FIRED</h3>
 <pre class="programlisting">#define GST_TAG_CAPTURING_FLASH_FIRED         "capturing-flash-fired"
 </pre>
-<p>If flash was fired during the capture of an image. (boolean)</p>
-<p>Note that if this tag isn't present, it should not be assumed that
-the flash did not fire. It should be treated as unknown.</p>
 </div>
 <hr>
 <div class="refsect2">
 <a name="GST-TAG-CAPTURING-FLASH-MODE:CAPS"></a><h3>GST_TAG_CAPTURING_FLASH_MODE</h3>
 <pre class="programlisting">#define GST_TAG_CAPTURING_FLASH_MODE         "capturing-flash-mode"
 </pre>
-<p>The flash mode selected during the capture of an image. (string)</p>
-<p>The allowed values are:
- "auto"
- "always"
- "never"</p>
 </div>
 <hr>
 <div class="refsect2">
 <a name="GST-TAG-CAPTURING-METERING-MODE:CAPS"></a><h3>GST_TAG_CAPTURING_METERING_MODE</h3>
 <pre class="programlisting">#define GST_TAG_CAPTURING_METERING_MODE      "capturing-metering-mode"
 </pre>
-<p>Defines the way a camera determines the exposure. (string)</p>
-<p>The allowed values are:
-  "unknown"
-  "average"
-  "center-weighted-average"
-  "spot"
-  "multi-spot"
-  "pattern"
-  "partial"
-  "other"</p>
 </div>
 <hr>
 <div class="refsect2">
 <a name="GST-TAG-CAPTURING-SOURCE:CAPS"></a><h3>GST_TAG_CAPTURING_SOURCE</h3>
 <pre class="programlisting">#define GST_TAG_CAPTURING_SOURCE             "capturing-source"
 </pre>
-<p>Indicates the source of capture. The device/medium used to do the
-capture. (string)</p>
-<p>Allowed values are:
-  "dsc" (= digital still camera)
-  "transparent-scanner"
-  "reflex-scanner"
-  "other"</p>
 </div>
 <hr>
 <div class="refsect2">
 <a name="GST-TAG-CAPTURING-EXPOSURE-COMPENSATION:CAPS"></a><h3>GST_TAG_CAPTURING_EXPOSURE_COMPENSATION</h3>
 <pre class="programlisting">#define GST_TAG_CAPTURING_EXPOSURE_COMPENSATION "capturing-exposure-compensation"
 </pre>
-<p>Exposure compensation using when capturing an image in EV. (double)</p>
 </div>
 <hr>
 <div class="refsect2">
 <a name="GST-TAG-IMAGE-HORIZONTAL-PPI:CAPS"></a><h3>GST_TAG_IMAGE_HORIZONTAL_PPI</h3>
 <pre class="programlisting">#define GST_TAG_IMAGE_HORIZONTAL_PPI         "image-horizontal-ppi"
 </pre>
-<p>Media (image/video) intended horizontal pixel density in ppi. (double)</p>
 </div>
 <hr>
 <div class="refsect2">
 <a name="GST-TAG-IMAGE-VERTICAL-PPI:CAPS"></a><h3>GST_TAG_IMAGE_VERTICAL_PPI</h3>
 <pre class="programlisting">#define GST_TAG_IMAGE_VERTICAL_PPI           "image-vertical-ppi"
 </pre>
-<p>Media (image/video) intended vertical pixel density in ppi. (double)</p>
 </div>
 <hr>
 <div class="refsect2">
 <a name="GST-TAG-ID3V2-HEADER-SIZE:CAPS"></a><h3>GST_TAG_ID3V2_HEADER_SIZE</h3>
 <pre class="programlisting">#define GST_TAG_ID3V2_HEADER_SIZE            10
 </pre>
-<p>ID3V2 header size considered minimum input for some functions such as
-<a class="link" href="gst-plugins-base-libs-gsttagid3.html#gst-tag-list-from-id3v2-tag" title="gst_tag_list_from_id3v2_tag ()"><code class="function">gst_tag_list_from_id3v2_tag()</code></a> and <a class="link" href="gst-plugins-base-libs-gsttagid3.html#gst-tag-get-id3v2-tag-size" title="gst_tag_get_id3v2_tag_size ()"><code class="function">gst_tag_get_id3v2_tag_size()</code></a> for example.</p>
 </div>
 <hr>
 <div class="refsect2">
 <a name="GST-TAG-MUSICAL-KEY:CAPS"></a><h3>GST_TAG_MUSICAL_KEY</h3>
 <pre class="programlisting">#define GST_TAG_MUSICAL_KEY                   "musical-key"
 </pre>
-<p>Musical key in which the sound starts. It is represented as a string
-with a maximum length of three characters. The ground keys are
-represented with "A","B","C","D","E", "F" and "G" and halfkeys
-represented with "b" and "#". Minor is represented as "m" (e.g. "Dbm").
-Off key is represented with an "o" only.
-This notation might be extended in the future to support non-minor/major
-keys.</p>
-<p class="since">Since: 1.2</p>
 </div>
 <hr>
 <div class="refsect2">
 <a name="GstTagImageType"></a><h3>enum GstTagImageType</h3>
-<p>Type of image contained in an image tag (specified as "image-type" field in
-the info structure in the image's <a href="/usr/share/gtk-doc/html/gstreamer-1.0GstSample.html#GstSample-struct"><span class="type">GstSample</span></a>)</p>
 <div class="refsect3">
 <a name="GstTagImageType.members"></a><h4>Members</h4>
 <div class="informaltable"><table class="informaltable" width="100%" border="0">
@@ -755,155 +486,109 @@
 <tbody>
 <tr>
 <td class="enum_member_name"><p><a name="GST-TAG-IMAGE-TYPE-NONE:CAPS"></a>GST_TAG_IMAGE_TYPE_NONE</p></td>
-<td class="enum_member_description">
-<p>No image type. Can be used to
-     tell functions such as <a class="link" href="gst-plugins-base-libs-gsttag.html#gst-tag-image-data-to-image-sample" title="gst_tag_image_data_to_image_sample ()"><code class="function">gst_tag_image_data_to_image_sample()</code></a> that no
-     image type should be set.</p>
-</td>
-<td class="enum_member_annotations"> </td>
+<td> </td>
+<td> </td>
 </tr>
 <tr>
 <td class="enum_member_name"><p><a name="GST-TAG-IMAGE-TYPE-UNDEFINED:CAPS"></a>GST_TAG_IMAGE_TYPE_UNDEFINED</p></td>
-<td class="enum_member_description">
-<p>Undefined/other image type</p>
-</td>
-<td class="enum_member_annotations"> </td>
+<td> </td>
+<td> </td>
 </tr>
 <tr>
 <td class="enum_member_name"><p><a name="GST-TAG-IMAGE-TYPE-FRONT-COVER:CAPS"></a>GST_TAG_IMAGE_TYPE_FRONT_COVER</p></td>
-<td class="enum_member_description">
-<p>Cover (front)</p>
-</td>
-<td class="enum_member_annotations"> </td>
+<td> </td>
+<td> </td>
 </tr>
 <tr>
 <td class="enum_member_name"><p><a name="GST-TAG-IMAGE-TYPE-BACK-COVER:CAPS"></a>GST_TAG_IMAGE_TYPE_BACK_COVER</p></td>
-<td class="enum_member_description">
-<p>Cover (back)</p>
-</td>
-<td class="enum_member_annotations"> </td>
+<td> </td>
+<td> </td>
 </tr>
 <tr>
 <td class="enum_member_name"><p><a name="GST-TAG-IMAGE-TYPE-LEAFLET-PAGE:CAPS"></a>GST_TAG_IMAGE_TYPE_LEAFLET_PAGE</p></td>
-<td class="enum_member_description">
-<p>Leaflet page</p>
-</td>
-<td class="enum_member_annotations"> </td>
+<td> </td>
+<td> </td>
 </tr>
 <tr>
 <td class="enum_member_name"><p><a name="GST-TAG-IMAGE-TYPE-MEDIUM:CAPS"></a>GST_TAG_IMAGE_TYPE_MEDIUM</p></td>
-<td class="enum_member_description">
-<p>Medium (e.g. label side of CD)</p>
-</td>
-<td class="enum_member_annotations"> </td>
+<td> </td>
+<td> </td>
 </tr>
 <tr>
 <td class="enum_member_name"><p><a name="GST-TAG-IMAGE-TYPE-LEAD-ARTIST:CAPS"></a>GST_TAG_IMAGE_TYPE_LEAD_ARTIST</p></td>
-<td class="enum_member_description">
-<p>Lead artist/lead performer/soloist</p>
-</td>
-<td class="enum_member_annotations"> </td>
+<td> </td>
+<td> </td>
 </tr>
 <tr>
 <td class="enum_member_name"><p><a name="GST-TAG-IMAGE-TYPE-ARTIST:CAPS"></a>GST_TAG_IMAGE_TYPE_ARTIST</p></td>
-<td class="enum_member_description">
-<p>Artist/performer</p>
-</td>
-<td class="enum_member_annotations"> </td>
+<td> </td>
+<td> </td>
 </tr>
 <tr>
 <td class="enum_member_name"><p><a name="GST-TAG-IMAGE-TYPE-CONDUCTOR:CAPS"></a>GST_TAG_IMAGE_TYPE_CONDUCTOR</p></td>
-<td class="enum_member_description">
-<p>Conductor</p>
-</td>
-<td class="enum_member_annotations"> </td>
+<td> </td>
+<td> </td>
 </tr>
 <tr>
 <td class="enum_member_name"><p><a name="GST-TAG-IMAGE-TYPE-BAND-ORCHESTRA:CAPS"></a>GST_TAG_IMAGE_TYPE_BAND_ORCHESTRA</p></td>
-<td class="enum_member_description">
-<p>Band/orchestra</p>
-</td>
-<td class="enum_member_annotations"> </td>
+<td> </td>
+<td> </td>
 </tr>
 <tr>
 <td class="enum_member_name"><p><a name="GST-TAG-IMAGE-TYPE-COMPOSER:CAPS"></a>GST_TAG_IMAGE_TYPE_COMPOSER</p></td>
-<td class="enum_member_description">
-<p>Composer</p>
-</td>
-<td class="enum_member_annotations"> </td>
+<td> </td>
+<td> </td>
 </tr>
 <tr>
 <td class="enum_member_name"><p><a name="GST-TAG-IMAGE-TYPE-LYRICIST:CAPS"></a>GST_TAG_IMAGE_TYPE_LYRICIST</p></td>
-<td class="enum_member_description">
-<p>Lyricist/text writer</p>
-</td>
-<td class="enum_member_annotations"> </td>
+<td> </td>
+<td> </td>
 </tr>
 <tr>
 <td class="enum_member_name"><p><a name="GST-TAG-IMAGE-TYPE-RECORDING-LOCATION:CAPS"></a>GST_TAG_IMAGE_TYPE_RECORDING_LOCATION</p></td>
-<td class="enum_member_description">
-<p>Recording location</p>
-</td>
-<td class="enum_member_annotations"> </td>
+<td> </td>
+<td> </td>
 </tr>
 <tr>
 <td class="enum_member_name"><p><a name="GST-TAG-IMAGE-TYPE-DURING-RECORDING:CAPS"></a>GST_TAG_IMAGE_TYPE_DURING_RECORDING</p></td>
-<td class="enum_member_description">
-<p>During recording</p>
-</td>
-<td class="enum_member_annotations"> </td>
+<td> </td>
+<td> </td>
 </tr>
 <tr>
 <td class="enum_member_name"><p><a name="GST-TAG-IMAGE-TYPE-DURING-PERFORMANCE:CAPS"></a>GST_TAG_IMAGE_TYPE_DURING_PERFORMANCE</p></td>
-<td class="enum_member_description">
-<p>During performance</p>
-</td>
-<td class="enum_member_annotations"> </td>
+<td> </td>
+<td> </td>
 </tr>
 <tr>
 <td class="enum_member_name"><p><a name="GST-TAG-IMAGE-TYPE-VIDEO-CAPTURE:CAPS"></a>GST_TAG_IMAGE_TYPE_VIDEO_CAPTURE</p></td>
-<td class="enum_member_description">
-<p>Movie/video screen capture</p>
-</td>
-<td class="enum_member_annotations"> </td>
+<td> </td>
+<td> </td>
 </tr>
 <tr>
 <td class="enum_member_name"><p><a name="GST-TAG-IMAGE-TYPE-FISH:CAPS"></a>GST_TAG_IMAGE_TYPE_FISH</p></td>
-<td class="enum_member_description">
-<p>A fish as funny as the ID3v2 spec</p>
-</td>
-<td class="enum_member_annotations"> </td>
+<td> </td>
+<td> </td>
 </tr>
 <tr>
 <td class="enum_member_name"><p><a name="GST-TAG-IMAGE-TYPE-ILLUSTRATION:CAPS"></a>GST_TAG_IMAGE_TYPE_ILLUSTRATION</p></td>
-<td class="enum_member_description">
-<p>Illustration</p>
-</td>
-<td class="enum_member_annotations"> </td>
+<td> </td>
+<td> </td>
 </tr>
 <tr>
 <td class="enum_member_name"><p><a name="GST-TAG-IMAGE-TYPE-BAND-ARTIST-LOGO:CAPS"></a>GST_TAG_IMAGE_TYPE_BAND_ARTIST_LOGO</p></td>
-<td class="enum_member_description">
-<p>Band/artist logotype</p>
-</td>
-<td class="enum_member_annotations"> </td>
+<td> </td>
+<td> </td>
 </tr>
 <tr>
 <td class="enum_member_name"><p><a name="GST-TAG-IMAGE-TYPE-PUBLISHER-STUDIO-LOGO:CAPS"></a>GST_TAG_IMAGE_TYPE_PUBLISHER_STUDIO_LOGO</p></td>
-<td class="enum_member_description">
-<p>Publisher/studio logotype</p>
-</td>
-<td class="enum_member_annotations"> </td>
+<td> </td>
+<td> </td>
 </tr>
 </tbody>
 </table></div>
 </div>
 </div>
 </div>
-<div class="refsect1">
-<a name="gst-plugins-base-libs-gsttag.see-also"></a><h2>See Also</h2>
-<p><a href="/usr/share/gtk-doc/html/gstreamer-1.0GstTagList.html#GstTagList-struct"><span class="type">GstTagList</span></a></p>
-</div>
 </div>
 <div class="footer">
 <hr>Generated by GTK-Doc V1.25</div>
diff --git a/docs/libs/html/gst-plugins-base-libs-gsttagdemux.html b/docs/libs/html/gst-plugins-base-libs-gsttagdemux.html
index fb4f413..3af08f7 100644
--- a/docs/libs/html/gst-plugins-base-libs-gsttagdemux.html
+++ b/docs/libs/html/gst-plugins-base-libs-gsttagdemux.html
@@ -27,8 +27,7 @@
 <div class="refnamediv"><table width="100%"><tr>
 <td valign="top">
 <h2><span class="refentrytitle"><a name="gst-plugins-base-libs-gsttagdemux.top_of_page"></a>gsttagdemux</span></h2>
-<p>gsttagdemux — Base class for demuxing tags that are in chunks
-                    directly at the beginning or at the end of a file</p>
+<p>gsttagdemux</p>
 </td>
 <td class="gallery_image" valign="top" align="right"></td>
 </tr></table></div>
@@ -62,50 +61,6 @@
 </div>
 <div class="refsect1">
 <a name="gst-plugins-base-libs-gsttagdemux.description"></a><h2>Description</h2>
-<div class="refsect2">
-<a name="id-1.2.13.9.5.2"></a><h3>Deriving from GstTagDemux</h3>
-<p>
-Provides a base class for demuxing tags at the beginning or end of a
-stream and handles things like typefinding, querying, seeking, and
-different modes of operation (chain-based, pull_range-based, and providing
-downstream elements with random access if upstream supports that). The tag
-is stripped from the output, and all offsets are adjusted for the tag
-sizes, so that to the downstream element the stream will appear as if
-there was no tag at all. Also, once the tag has been parsed, GstTagDemux
-will try to determine the media type of the resulting stream and add a
-source pad with the appropriate caps in order to facilitate auto-plugging.
-</p>
-<p>
-Subclasses have to do four things:
-</p>
-<div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; ">
-<li class="listitem"><p>
- In their base init function, they must add a pad template for the sink
- pad to the element class, describing the media type they can parse in
- the caps of the pad template.
- </p></li>
-<li class="listitem"><p>
- In their class init function, they must override
- GST_TAG_DEMUX_CLASS(demux_klass)-&gt;identify_tag with their own identify
- function.
- </p></li>
-<li class="listitem"><p>
- In their class init function, they must override
- GST_TAG_DEMUX_CLASS(demux_klass)-&gt;parse_tag with their own parse
- function.
- </p></li>
-<li class="listitem"><p>
- In their class init function, they must also set
- GST_TAG_DEMUX_CLASS(demux_klass)-&gt;min_start_size and/or 
- GST_TAG_DEMUX_CLASS(demux_klass)-&gt;min_end_size to the minimum size required
- for the identify function to decide whether the stream has a supported tag
- or not. A class parsing ID3v1 tags, for example, would set min_end_size to
- 128 bytes.
- </p></li>
-</ul></div>
-<p>
-</p>
-</div>
 </div>
 <div class="refsect1">
 <a name="gst-plugins-base-libs-gsttagdemux.functions_details"></a><h2>Functions</h2>
@@ -119,22 +74,6 @@
   GstElement element;
 };
 </pre>
-<p>Opaque <a class="link" href="gst-plugins-base-libs-gsttagdemux.html#GstTagDemux" title="struct GstTagDemux"><span class="type">GstTagDemux</span></a> structure.</p>
-<div class="refsect3">
-<a name="GstTagDemux.members"></a><h4>Members</h4>
-<div class="informaltable"><table class="informaltable" width="100%" border="0">
-<colgroup>
-<col width="300px" class="struct_members_name">
-<col class="struct_members_description">
-<col width="200px" class="struct_members_annotations">
-</colgroup>
-<tbody><tr>
-<td class="struct_member_name"><p><a href="/usr/share/gtk-doc/html/gstreamer-1.0GstElement.html#GstElement-struct"><span class="type">GstElement</span></a> <em class="structfield"><code><a name="GstTagDemux.element"></a>element</code></em>;</p></td>
-<td class="struct_member_description"><p>parent element</p></td>
-<td class="struct_member_annotations"> </td>
-</tr></tbody>
-</table></div>
-</div>
 </div>
 <hr>
 <div class="refsect2">
@@ -171,64 +110,10 @@
                                            const GstTagList * end_tags);
 };
 </pre>
-<p>The <a class="link" href="gst-plugins-base-libs-gsttagdemux.html#GstTagDemuxClass" title="struct GstTagDemuxClass"><span class="type">GstTagDemuxClass</span></a> structure.  See documentation at beginning of section
-for details about what subclasses need to override and do.</p>
-<div class="refsect3">
-<a name="GstTagDemuxClass.members"></a><h4>Members</h4>
-<div class="informaltable"><table class="informaltable" width="100%" border="0">
-<colgroup>
-<col width="300px" class="struct_members_name">
-<col class="struct_members_description">
-<col width="200px" class="struct_members_annotations">
-</colgroup>
-<tbody>
-<tr>
-<td class="struct_member_name"><p><a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#guint"><span class="type">guint</span></a> <em class="structfield"><code><a name="GstTagDemuxClass.min-start-size"></a>min_start_size</code></em>;</p></td>
-<td class="struct_member_description"><p>minimum size required to identify a tag at the start and
-determine its total size. Set to 0 if not interested in start tags.
-Subclasses should set this in their class_init function.</p></td>
-<td class="struct_member_annotations"> </td>
-</tr>
-<tr>
-<td class="struct_member_name"><p><a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#guint"><span class="type">guint</span></a> <em class="structfield"><code><a name="GstTagDemuxClass.min-end-size"></a>min_end_size</code></em>;</p></td>
-<td class="struct_member_description"><p>minimum size required to identify a tag at the end and
-determine its total size. Set to 0 if not interested in end tags.
-Subclasses should set this in their class_init function.</p></td>
-<td class="struct_member_annotations"> </td>
-</tr>
-<tr>
-<td class="struct_member_name"><p><em class="structfield"><code><a name="GstTagDemuxClass.identify-tag"></a>identify_tag</code></em> ()</p></td>
-<td class="struct_member_description"><p>identify tag and determine the size required to parse the
-tag. Buffer may be larger than the specified minimum size.
-Subclassed MUST override this vfunc in their class_init function.</p></td>
-<td class="struct_member_annotations"> </td>
-</tr>
-<tr>
-<td class="struct_member_name"><p><em class="structfield"><code><a name="GstTagDemuxClass.parse-tag"></a>parse_tag</code></em> ()</p></td>
-<td class="struct_member_description"><p>parse the tag. Buffer will be exactly of the size determined by
-the identify_tag vfunc before. The parse_tag vfunc may change the size
-stored in *tag_size and return GST_TAG_DEMUX_RESULT_AGAIN to request a
-larger or smaller buffer. It is also permitted to adjust the tag_size to a
-smaller value and then return GST_TAG_DEMUX_RESULT_OK in one go.
-Subclassed MUST override the parse_tag vfunc in their class_init function.</p></td>
-<td class="struct_member_annotations"> </td>
-</tr>
-<tr>
-<td class="struct_member_name"><p><em class="structfield"><code><a name="GstTagDemuxClass.merge-tags"></a>merge_tags</code></em> ()</p></td>
-<td class="struct_member_description"><p>merge start and end tags. Subclasses may want to override this
-vfunc to allow prioritising of start or end tag according to user
-preference.  Note that both start_tags and end_tags may be NULL. By default
-start tags are prefered over end tags.</p></td>
-<td class="struct_member_annotations"> </td>
-</tr>
-</tbody>
-</table></div>
-</div>
 </div>
 <hr>
 <div class="refsect2">
 <a name="GstTagDemuxResult"></a><h3>enum GstTagDemuxResult</h3>
-<p>Result values from the parse_tag virtual function.</p>
 <div class="refsect3">
 <a name="GstTagDemuxResult.members"></a><h4>Members</h4>
 <div class="informaltable"><table class="informaltable" width="100%" border="0">
@@ -240,34 +125,24 @@
 <tbody>
 <tr>
 <td class="enum_member_name"><p><a name="GST-TAG-DEMUX-RESULT-BROKEN-TAG:CAPS"></a>GST_TAG_DEMUX_RESULT_BROKEN_TAG</p></td>
-<td class="enum_member_description">
-<p>cannot parse tag, just skip it</p>
-</td>
-<td class="enum_member_annotations"> </td>
+<td> </td>
+<td> </td>
 </tr>
 <tr>
 <td class="enum_member_name"><p><a name="GST-TAG-DEMUX-RESULT-AGAIN:CAPS"></a>GST_TAG_DEMUX_RESULT_AGAIN</p></td>
-<td class="enum_member_description">
-<p>call again with less or more data</p>
-</td>
-<td class="enum_member_annotations"> </td>
+<td> </td>
+<td> </td>
 </tr>
 <tr>
 <td class="enum_member_name"><p><a name="GST-TAG-DEMUX-RESULT-OK:CAPS"></a>GST_TAG_DEMUX_RESULT_OK</p></td>
-<td class="enum_member_description">
-<p>parsed tag successfully</p>
-</td>
-<td class="enum_member_annotations"> </td>
+<td> </td>
+<td> </td>
 </tr>
 </tbody>
 </table></div>
 </div>
 </div>
 </div>
-<div class="refsect1">
-<a name="gst-plugins-base-libs-gsttagdemux.see-also"></a><h2>See Also</h2>
-<p>GstApeDemux, GstID3Demux</p>
-</div>
 </div>
 <div class="footer">
 <hr>Generated by GTK-Doc V1.25</div>
diff --git a/docs/libs/html/gst-plugins-base-libs-gsttagexif.html b/docs/libs/html/gst-plugins-base-libs-gsttagexif.html
index dc4ee30..50bdf0f 100644
--- a/docs/libs/html/gst-plugins-base-libs-gsttagexif.html
+++ b/docs/libs/html/gst-plugins-base-libs-gsttagexif.html
@@ -27,8 +27,7 @@
 <div class="refnamediv"><table width="100%"><tr>
 <td valign="top">
 <h2><span class="refentrytitle"><a name="gst-plugins-base-libs-gsttagexif.top_of_page"></a>gsttagexif</span></h2>
-<p>gsttagexif — tag mappings and support functions for plugins
-                    dealing with exif tags</p>
+<p>gsttagexif</p>
 </td>
 <td class="gallery_image" valign="top" align="right"></td>
 </tr></table></div>
@@ -82,9 +81,6 @@
 </div>
 <div class="refsect1">
 <a name="gst-plugins-base-libs-gsttagexif.description"></a><h2>Description</h2>
-<p>Contains utility function to parse <a href="/usr/share/gtk-doc/html/gstreamer-1.0GstTagList.html#GstTagList-struct"><span class="type">GstTagList</span></a>s from exif
-buffers and to create exif buffers from <a href="/usr/share/gtk-doc/html/gstreamer-1.0GstTagList.html#GstTagList-struct"><span class="type">GstTagList</span></a>s</p>
-<p>Note that next IFD fields on the created exif buffers are set to 0.</p>
 </div>
 <div class="refsect1">
 <a name="gst-plugins-base-libs-gsttagexif.functions_details"></a><h2>Functions</h2>
@@ -94,39 +90,6 @@
 gst_tag_list_to_exif_buffer (<em class="parameter"><code>const <a href="/usr/share/gtk-doc/html/gstreamer-1.0GstTagList.html#GstTagList-struct"><span class="type">GstTagList</span></a> *taglist</code></em>,
                              <em class="parameter"><code><a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#gint"><span class="type">gint</span></a> byte_order</code></em>,
                              <em class="parameter"><code><a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#guint32"><span class="type">guint32</span></a> base_offset</code></em>);</pre>
-<p>Formats the tags in taglist on exif format. The resulting buffer contains
-the tags IFD and is followed by the data pointed by the tag entries.</p>
-<div class="refsect3">
-<a name="gst-tag-list-to-exif-buffer.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>taglist</p></td>
-<td class="parameter_description"><p>The taglist</p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-<tr>
-<td class="parameter_name"><p>byte_order</p></td>
-<td class="parameter_description"><p>byte order used in writing (G_LITTLE_ENDIAN or G_BIG_ENDIAN)</p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-<tr>
-<td class="parameter_name"><p>base_offset</p></td>
-<td class="parameter_description"><p>Offset from the tiff header first byte</p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-</tbody>
-</table></div>
-</div>
-<div class="refsect3">
-<a name="gst-tag-list-to-exif-buffer.returns"></a><h4>Returns</h4>
-<p> A GstBuffer containing the tag entries followed by the tag data</p>
-</div>
 </div>
 <hr>
 <div class="refsect2">
@@ -134,27 +97,6 @@
 <pre class="programlisting"><a href="/usr/share/gtk-doc/html/gstreamer-1.0GstBuffer.html#GstBuffer-struct"><span class="returnvalue">GstBuffer</span></a> *
 gst_tag_list_to_exif_buffer_with_tiff_header
                                (<em class="parameter"><code>const <a href="/usr/share/gtk-doc/html/gstreamer-1.0GstTagList.html#GstTagList-struct"><span class="type">GstTagList</span></a> *taglist</code></em>);</pre>
-<p>Formats the tags in taglist into exif structure, a tiff header
-is put in the beginning of the buffer.</p>
-<div class="refsect3">
-<a name="gst-tag-list-to-exif-buffer-with-tiff-header.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>taglist</p></td>
-<td class="parameter_description"><p>The taglist</p></td>
-<td class="parameter_annotations"> </td>
-</tr></tbody>
-</table></div>
-</div>
-<div class="refsect3">
-<a name="gst-tag-list-to-exif-buffer-with-tiff-header.returns"></a><h4>Returns</h4>
-<p> A GstBuffer containing the data</p>
-</div>
 </div>
 <hr>
 <div class="refsect2">
@@ -163,41 +105,6 @@
 gst_tag_list_from_exif_buffer (<em class="parameter"><code><a href="/usr/share/gtk-doc/html/gstreamer-1.0GstBuffer.html#GstBuffer-struct"><span class="type">GstBuffer</span></a> *buffer</code></em>,
                                <em class="parameter"><code><a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#gint"><span class="type">gint</span></a> byte_order</code></em>,
                                <em class="parameter"><code><a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#guint32"><span class="type">guint32</span></a> base_offset</code></em>);</pre>
-<p>Parses the IFD and IFD tags data contained in the buffer and puts it
-on a taglist. The base_offset is used to subtract from the offset in
-the tag entries and be able to get the offset relative to the buffer
-start</p>
-<div class="refsect3">
-<a name="gst-tag-list-from-exif-buffer.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>buffer</p></td>
-<td class="parameter_description"><p>The exif buffer</p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-<tr>
-<td class="parameter_name"><p>byte_order</p></td>
-<td class="parameter_description"><p>byte order of the data</p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-<tr>
-<td class="parameter_name"><p>base_offset</p></td>
-<td class="parameter_description"><p>Offset from the tiff header to this buffer</p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-</tbody>
-</table></div>
-</div>
-<div class="refsect3">
-<a name="gst-tag-list-from-exif-buffer.returns"></a><h4>Returns</h4>
-<p> The parsed taglist</p>
-</div>
 </div>
 <hr>
 <div class="refsect2">
@@ -205,35 +112,11 @@
 <pre class="programlisting"><a href="/usr/share/gtk-doc/html/gstreamer-1.0GstTagList.html#GstTagList-struct"><span class="returnvalue">GstTagList</span></a> *
 gst_tag_list_from_exif_buffer_with_tiff_header
                                (<em class="parameter"><code><a href="/usr/share/gtk-doc/html/gstreamer-1.0GstBuffer.html#GstBuffer-struct"><span class="type">GstBuffer</span></a> *buffer</code></em>);</pre>
-<p>Parses the exif tags starting with a tiff header structure.</p>
-<div class="refsect3">
-<a name="gst-tag-list-from-exif-buffer-with-tiff-header.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>buffer</p></td>
-<td class="parameter_description"><p>The exif buffer</p></td>
-<td class="parameter_annotations"> </td>
-</tr></tbody>
-</table></div>
-</div>
-<div class="refsect3">
-<a name="gst-tag-list-from-exif-buffer-with-tiff-header.returns"></a><h4>Returns</h4>
-<p> The taglist</p>
-</div>
 </div>
 </div>
 <div class="refsect1">
 <a name="gst-plugins-base-libs-gsttagexif.other_details"></a><h2>Types and Values</h2>
 </div>
-<div class="refsect1">
-<a name="gst-plugins-base-libs-gsttagexif.see-also"></a><h2>See Also</h2>
-<p><a href="/usr/share/gtk-doc/html/gstreamer-1.0GstTagList.html#GstTagList-struct"><span class="type">GstTagList</span></a></p>
-</div>
 </div>
 <div class="footer">
 <hr>Generated by GTK-Doc V1.25</div>
diff --git a/docs/libs/html/gst-plugins-base-libs-gsttagid3.html b/docs/libs/html/gst-plugins-base-libs-gsttagid3.html
index a005e90..eab5cee 100644
--- a/docs/libs/html/gst-plugins-base-libs-gsttagid3.html
+++ b/docs/libs/html/gst-plugins-base-libs-gsttagid3.html
@@ -27,8 +27,7 @@
 <div class="refnamediv"><table width="100%"><tr>
 <td valign="top">
 <h2><span class="refentrytitle"><a name="gst-plugins-base-libs-gsttagid3.top_of_page"></a>gsttagid3</span></h2>
-<p>gsttagid3 — tag mappings and support functions for plugins
-                    dealing with ID3v1 and ID3v2 tags</p>
+<p>gsttagid3</p>
 </td>
 <td class="gallery_image" valign="top" align="right"></td>
 </tr></table></div>
@@ -118,12 +117,6 @@
 </div>
 <div class="refsect1">
 <a name="gst-plugins-base-libs-gsttagid3.description"></a><h2>Description</h2>
-<div class="refsect2">
-<a name="id-1.2.13.5.5.2"></a><p>
-Contains various utility functions for plugins to parse or create
-ID3 tags and map ID3v2 identifiers to and from GStreamer identifiers.
-</p>
-</div>
 </div>
 <div class="refsect1">
 <a name="gst-plugins-base-libs-gsttagid3.functions_details"></a><h2>Functions</h2>
@@ -131,91 +124,24 @@
 <a name="gst-tag-id3-genre-count"></a><h3>gst_tag_id3_genre_count ()</h3>
 <pre class="programlisting"><a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#guint"><span class="returnvalue">guint</span></a>
 gst_tag_id3_genre_count (<em class="parameter"><code><span class="type">void</span></code></em>);</pre>
-<p>Gets the number of ID3v1 genres that can be identified. Winamp genres are 
-included.</p>
-<div class="refsect3">
-<a name="gst-tag-id3-genre-count.returns"></a><h4>Returns</h4>
-<p> the number of ID3v1 genres that can be identified</p>
-</div>
 </div>
 <hr>
 <div class="refsect2">
 <a name="gst-tag-id3-genre-get"></a><h3>gst_tag_id3_genre_get ()</h3>
 <pre class="programlisting">const <a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> *
 gst_tag_id3_genre_get (<em class="parameter"><code>const <a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#guint"><span class="type">guint</span></a> id</code></em>);</pre>
-<p>Gets the ID3v1 genre name for a given ID.</p>
-<div class="refsect3">
-<a name="gst-tag-id3-genre-get.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>id</p></td>
-<td class="parameter_description"><p>ID of genre to query</p></td>
-<td class="parameter_annotations"> </td>
-</tr></tbody>
-</table></div>
-</div>
-<div class="refsect3">
-<a name="gst-tag-id3-genre-get.returns"></a><h4>Returns</h4>
-<p> the genre or NULL if no genre is associated with that ID.</p>
-</div>
 </div>
 <hr>
 <div class="refsect2">
 <a name="gst-tag-list-new-from-id3v1"></a><h3>gst_tag_list_new_from_id3v1 ()</h3>
 <pre class="programlisting"><a href="/usr/share/gtk-doc/html/gstreamer-1.0GstTagList.html#GstTagList-struct"><span class="returnvalue">GstTagList</span></a> *
 gst_tag_list_new_from_id3v1 (<em class="parameter"><code>const <a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#guint8"><span class="type">guint8</span></a> *data</code></em>);</pre>
-<p>Parses the data containing an ID3v1 tag and returns a <a href="/usr/share/gtk-doc/html/gstreamer-1.0GstTagList.html#GstTagList-struct"><span class="type">GstTagList</span></a> from the
-parsed data.</p>
-<div class="refsect3">
-<a name="gst-tag-list-new-from-id3v1.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>data</p></td>
-<td class="parameter_description"><p>128 bytes of data containing the ID3v1 tag</p></td>
-<td class="parameter_annotations"> </td>
-</tr></tbody>
-</table></div>
-</div>
-<div class="refsect3">
-<a name="gst-tag-list-new-from-id3v1.returns"></a><h4>Returns</h4>
-<p> A new tag list or NULL if the data was not an ID3v1 tag.</p>
-</div>
 </div>
 <hr>
 <div class="refsect2">
 <a name="gst-tag-from-id3-tag"></a><h3>gst_tag_from_id3_tag ()</h3>
 <pre class="programlisting">const <a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> *
 gst_tag_from_id3_tag (<em class="parameter"><code>const <a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *id3_tag</code></em>);</pre>
-<p>Looks up the GStreamer tag for a ID3v2 tag.</p>
-<div class="refsect3">
-<a name="gst-tag-from-id3-tag.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>id3_tag</p></td>
-<td class="parameter_description"><p>ID3v2 tag to convert to GStreamer tag</p></td>
-<td class="parameter_annotations"> </td>
-</tr></tbody>
-</table></div>
-</div>
-<div class="refsect3">
-<a name="gst-tag-from-id3-tag.returns"></a><h4>Returns</h4>
-<p> The corresponding GStreamer tag or NULL if none exists.</p>
-</div>
 </div>
 <hr>
 <div class="refsect2">
@@ -223,60 +149,12 @@
 <pre class="programlisting">const <a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> *
 gst_tag_from_id3_user_tag (<em class="parameter"><code>const <a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *type</code></em>,
                            <em class="parameter"><code>const <a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *id3_user_tag</code></em>);</pre>
-<p>Looks up the GStreamer tag for an ID3v2 user tag (e.g. description in
-TXXX frame or owner in UFID frame).</p>
-<div class="refsect3">
-<a name="gst-tag-from-id3-user-tag.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>type</p></td>
-<td class="parameter_description"><p>the type of ID3v2 user tag (e.g. "TXXX" or "UDIF")</p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-<tr>
-<td class="parameter_name"><p>id3_user_tag</p></td>
-<td class="parameter_description"><p>ID3v2 user tag to convert to GStreamer tag</p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-</tbody>
-</table></div>
-</div>
-<div class="refsect3">
-<a name="gst-tag-from-id3-user-tag.returns"></a><h4>Returns</h4>
-<p> The corresponding GStreamer tag or NULL if none exists.</p>
-</div>
 </div>
 <hr>
 <div class="refsect2">
 <a name="gst-tag-to-id3-tag"></a><h3>gst_tag_to_id3_tag ()</h3>
 <pre class="programlisting">const <a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> *
 gst_tag_to_id3_tag (<em class="parameter"><code>const <a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *gst_tag</code></em>);</pre>
-<p>Looks up the ID3v2 tag for a GStreamer tag.</p>
-<div class="refsect3">
-<a name="gst-tag-to-id3-tag.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>gst_tag</p></td>
-<td class="parameter_description"><p>GStreamer tag to convert to vorbiscomment tag</p></td>
-<td class="parameter_annotations"> </td>
-</tr></tbody>
-</table></div>
-</div>
-<div class="refsect3">
-<a name="gst-tag-to-id3-tag.returns"></a><h4>Returns</h4>
-<p> The corresponding ID3v2 tag or NULL if none exists.</p>
-</div>
 </div>
 <hr>
 <div class="refsect2">
@@ -286,111 +164,23 @@
                             <em class="parameter"><code>const <a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#guint8"><span class="type">guint8</span></a> *image_data</code></em>,
                             <em class="parameter"><code><a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#guint"><span class="type">guint</span></a> image_data_len</code></em>,
                             <em class="parameter"><code><a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#guint"><span class="type">guint</span></a> id3_picture_type</code></em>);</pre>
-<p>Adds an image from an ID3 APIC frame (or similar, such as used in FLAC)
-to the given tag list. Also see <a class="link" href="gst-plugins-base-libs-gsttag.html#gst-tag-image-data-to-image-sample" title="gst_tag_image_data_to_image_sample ()"><code class="function">gst_tag_image_data_to_image_sample()</code></a> for
-more information on image tags in GStreamer.</p>
-<div class="refsect3">
-<a name="gst-tag-list-add-id3-image.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>tag_list</p></td>
-<td class="parameter_description"><p>a tag list</p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-<tr>
-<td class="parameter_name"><p>image_data</p></td>
-<td class="parameter_description"><p>the (encoded) image</p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-<tr>
-<td class="parameter_name"><p>image_data_len</p></td>
-<td class="parameter_description"><p>the length of the encoded image data at <em class="parameter"><code>image_data</code></em>
-</p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-<tr>
-<td class="parameter_name"><p>id3_picture_type</p></td>
-<td class="parameter_description"><p>picture type as per the ID3 (v2.4.0) specification for
-the APIC frame (0 = unknown/other)</p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-</tbody>
-</table></div>
-</div>
-<div class="refsect3">
-<a name="gst-tag-list-add-id3-image.returns"></a><h4>Returns</h4>
-<p> <a href="/usr/share/gtk-doc/html/glibglib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a> if the image was processed, otherwise <a href="/usr/share/gtk-doc/html/glibglib-Standard-Macros.html#FALSE:CAPS"><code class="literal">FALSE</code></a></p>
-</div>
 </div>
 <hr>
 <div class="refsect2">
 <a name="gst-tag-get-id3v2-tag-size"></a><h3>gst_tag_get_id3v2_tag_size ()</h3>
 <pre class="programlisting"><a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#guint"><span class="returnvalue">guint</span></a>
 gst_tag_get_id3v2_tag_size (<em class="parameter"><code><a href="/usr/share/gtk-doc/html/gstreamer-1.0GstBuffer.html#GstBuffer-struct"><span class="type">GstBuffer</span></a> *buffer</code></em>);</pre>
-<p>Determines size of an ID3v2 tag on buffer containing at least ID3v2 header,
-i.e. at least <a class="link" href="gst-plugins-base-libs-gsttag.html#GST-TAG-ID3V2-HEADER-SIZE:CAPS" title="GST_TAG_ID3V2_HEADER_SIZE"><span class="type">GST_TAG_ID3V2_HEADER_SIZE</span></a> (10) bytes;</p>
-<div class="refsect3">
-<a name="gst-tag-get-id3v2-tag-size.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>buffer</p></td>
-<td class="parameter_description"><p>buffer holding ID3v2 tag (or at least the start of one)</p></td>
-<td class="parameter_annotations"> </td>
-</tr></tbody>
-</table></div>
-</div>
-<div class="refsect3">
-<a name="gst-tag-get-id3v2-tag-size.returns"></a><h4>Returns</h4>
-<p> Size of tag, or 0 if header is invalid or too small.</p>
-</div>
 </div>
 <hr>
 <div class="refsect2">
 <a name="gst-tag-list-from-id3v2-tag"></a><h3>gst_tag_list_from_id3v2_tag ()</h3>
 <pre class="programlisting"><a href="/usr/share/gtk-doc/html/gstreamer-1.0GstTagList.html#GstTagList-struct"><span class="returnvalue">GstTagList</span></a> *
 gst_tag_list_from_id3v2_tag (<em class="parameter"><code><a href="/usr/share/gtk-doc/html/gstreamer-1.0GstBuffer.html#GstBuffer-struct"><span class="type">GstBuffer</span></a> *buffer</code></em>);</pre>
-<p>Creates a new tag list that contains the information parsed out of a
-ID3 tag.</p>
-<div class="refsect3">
-<a name="gst-tag-list-from-id3v2-tag.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>buffer</p></td>
-<td class="parameter_description"><p>buffer to convert</p></td>
-<td class="parameter_annotations"> </td>
-</tr></tbody>
-</table></div>
-</div>
-<div class="refsect3">
-<a name="gst-tag-list-from-id3v2-tag.returns"></a><h4>Returns</h4>
-<p> A new <a href="/usr/share/gtk-doc/html/gstreamer-1.0GstTagList.html#GstTagList-struct"><span class="type">GstTagList</span></a> with all tags that could be extracted from the
-given vorbiscomment buffer or NULL on error.</p>
-</div>
 </div>
 </div>
 <div class="refsect1">
 <a name="gst-plugins-base-libs-gsttagid3.other_details"></a><h2>Types and Values</h2>
 </div>
-<div class="refsect1">
-<a name="gst-plugins-base-libs-gsttagid3.see-also"></a><h2>See Also</h2>
-<p><a href="/usr/share/gtk-doc/html/gstreamer-1.0GstTagList.html#GstTagList-struct"><span class="type">GstTagList</span></a></p>
-</div>
 </div>
 <div class="footer">
 <hr>Generated by GTK-Doc V1.25</div>
diff --git a/docs/libs/html/gst-plugins-base-libs-gsttaglanguagecodes.html b/docs/libs/html/gst-plugins-base-libs-gsttaglanguagecodes.html
index 673ade7..61c78a6 100644
--- a/docs/libs/html/gst-plugins-base-libs-gsttaglanguagecodes.html
+++ b/docs/libs/html/gst-plugins-base-libs-gsttaglanguagecodes.html
@@ -27,7 +27,7 @@
 <div class="refnamediv"><table width="100%"><tr>
 <td valign="top">
 <h2><span class="refentrytitle"><a name="gst-plugins-base-libs-gsttaglanguagecodes.top_of_page"></a>gsttaglanguagecodes</span></h2>
-<p>gsttaglanguagecodes — mappings for ISO-639 language codes and names</p>
+<p>gsttaglanguagecodes</p>
 </td>
 <td class="gallery_image" valign="top" align="right"></td>
 </tr></table></div>
@@ -99,12 +99,6 @@
 </div>
 <div class="refsect1">
 <a name="gst-plugins-base-libs-gsttaglanguagecodes.description"></a><h2>Description</h2>
-<div class="refsect2">
-<a name="id-1.2.13.11.5.2"></a><p>
-Provides helper functions to convert between the various ISO-639 language
-codes, and to map language codes to language names.
-</p>
-</div>
 </div>
 <div class="refsect1">
 <a name="gst-plugins-base-libs-gsttaglanguagecodes.functions_details"></a><h2>Functions</h2>
@@ -112,213 +106,46 @@
 <a name="gst-tag-get-language-codes"></a><h3>gst_tag_get_language_codes ()</h3>
 <pre class="programlisting"><a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> **
 gst_tag_get_language_codes (<em class="parameter"><code><span class="type">void</span></code></em>);</pre>
-<p>Returns a list of known language codes (in form of two-letter ISO-639-1
-codes). This is useful for UIs to build a list of available languages for
-tagging purposes (e.g. to tag an audio track appropriately in a video or
-audio editor).</p>
-<div class="refsect3">
-<a name="gst-tag-get-language-codes.returns"></a><h4>Returns</h4>
-<p> NULL-terminated string array with two-letter
-language codes. Free with <a href="/usr/share/gtk-doc/html/glibglib-String-Utility-Functions.html#g-strfreev"><code class="function">g_strfreev()</code></a> when no longer needed. </p>
-<p><span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>]</span></p>
-</div>
 </div>
 <hr>
 <div class="refsect2">
 <a name="gst-tag-get-language-name"></a><h3>gst_tag_get_language_name ()</h3>
 <pre class="programlisting">const <a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> *
 gst_tag_get_language_name (<em class="parameter"><code>const <a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *language_code</code></em>);</pre>
-<p>Returns the name of the language given an ISO-639 language code as
-found in a GST_TAG_LANGUAGE_CODE tag. The name will be translated
-according to the current locale (if the library was built against the
-iso-codes package, otherwise the English name will be returned).</p>
-<p>Language codes are case-sensitive and expected to be lower case.</p>
-<div class="refsect3">
-<a name="gst-tag-get-language-name.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>language_code</p></td>
-<td class="parameter_description"><p>two or three-letter ISO-639 language code</p></td>
-<td class="parameter_annotations"> </td>
-</tr></tbody>
-</table></div>
-</div>
-<div class="refsect3">
-<a name="gst-tag-get-language-name.returns"></a><h4>Returns</h4>
-<p> language name in UTF-8 format, or NULL if <em class="parameter"><code>language_code</code></em>
-could
-not be mapped to a language name. The returned string must not be
-modified and does not need to freed; it will stay valid until the
-application is terminated.</p>
-</div>
 </div>
 <hr>
 <div class="refsect2">
 <a name="gst-tag-get-language-code"></a><h3>gst_tag_get_language_code()</h3>
 <pre class="programlisting">#define             gst_tag_get_language_code(lang_code)</pre>
-<p>Convenience macro wrapping <a class="link" href="gst-plugins-base-libs-gsttaglanguagecodes.html#gst-tag-get-language-code-iso-639-1" title="gst_tag_get_language_code_iso_639_1 ()"><code class="function">gst_tag_get_language_code_iso_639_1()</code></a>.</p>
-<div class="refsect3">
-<a name="gst-tag-get-language-code.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>lang_code</p></td>
-<td class="parameter_description"><p>ISO-639 language code (e.g. "deu" or "ger" or "de")</p></td>
-<td class="parameter_annotations"> </td>
-</tr></tbody>
-</table></div>
-</div>
 </div>
 <hr>
 <div class="refsect2">
 <a name="gst-tag-get-language-code-iso-639-1"></a><h3>gst_tag_get_language_code_iso_639_1 ()</h3>
 <pre class="programlisting">const <a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> *
 gst_tag_get_language_code_iso_639_1 (<em class="parameter"><code>const <a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *lang_code</code></em>);</pre>
-<p>Returns two-letter ISO-639-1 language code given a three-letter ISO-639-2
-language code or two-letter ISO-639-1 language code (both are accepted for
-convenience).</p>
-<p>Language codes are case-sensitive and expected to be lower case.</p>
-<div class="refsect3">
-<a name="gst-tag-get-language-code-iso-639-1.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>lang_code</p></td>
-<td class="parameter_description"><p>ISO-639 language code (e.g. "deu" or "ger" or "de")</p></td>
-<td class="parameter_annotations"> </td>
-</tr></tbody>
-</table></div>
-</div>
-<div class="refsect3">
-<a name="gst-tag-get-language-code-iso-639-1.returns"></a><h4>Returns</h4>
-<p> two-letter ISO-639-1 language code string that maps to <em class="parameter"><code>lang_code</code></em>
-,
-or NULL if no mapping is known. The returned string must not be
-modified or freed.</p>
-</div>
 </div>
 <hr>
 <div class="refsect2">
 <a name="gst-tag-get-language-code-iso-639-2B"></a><h3>gst_tag_get_language_code_iso_639_2B ()</h3>
 <pre class="programlisting">const <a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> *
 gst_tag_get_language_code_iso_639_2B (<em class="parameter"><code>const <a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *lang_code</code></em>);</pre>
-<p>Returns three-letter ISO-639-2 "bibliographic" language code given a
-two-letter ISO-639-1 language code or a three-letter ISO-639-2 language
-code (both are accepted for convenience).</p>
-<p>The "bibliographic" code is derived from the English name of the language
-(e.g. "ger" for German instead of "de" or "deu"). In most scenarios, the
-"terminological" codes are prefered.</p>
-<p>Language codes are case-sensitive and expected to be lower case.</p>
-<div class="refsect3">
-<a name="gst-tag-get-language-code-iso-639-2B.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>lang_code</p></td>
-<td class="parameter_description"><p>ISO-639 language code (e.g. "deu" or "ger" or "de")</p></td>
-<td class="parameter_annotations"> </td>
-</tr></tbody>
-</table></div>
-</div>
-<div class="refsect3">
-<a name="gst-tag-get-language-code-iso-639-2B.returns"></a><h4>Returns</h4>
-<p> three-letter ISO-639-2 language code string that maps to <em class="parameter"><code>lang_code</code></em>
-,
-or NULL if no mapping is known. The returned string must not be
-modified or freed.</p>
-</div>
 </div>
 <hr>
 <div class="refsect2">
 <a name="gst-tag-get-language-code-iso-639-2T"></a><h3>gst_tag_get_language_code_iso_639_2T ()</h3>
 <pre class="programlisting">const <a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> *
 gst_tag_get_language_code_iso_639_2T (<em class="parameter"><code>const <a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *lang_code</code></em>);</pre>
-<p>Returns three-letter ISO-639-2 "terminological" language code given a
-two-letter ISO-639-1 language code or a three-letter ISO-639-2 language
-code (both are accepted for convenience).</p>
-<p>The "terminological" code is derived from the local name of the language
-(e.g. "deu" for German instead of "ger"). In most scenarios, the
-"terminological" codes are prefered over the "bibliographic" ones.</p>
-<p>Language codes are case-sensitive and expected to be lower case.</p>
-<div class="refsect3">
-<a name="gst-tag-get-language-code-iso-639-2T.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>lang_code</p></td>
-<td class="parameter_description"><p>ISO-639 language code (e.g. "deu" or "ger" or "de")</p></td>
-<td class="parameter_annotations"> </td>
-</tr></tbody>
-</table></div>
-</div>
-<div class="refsect3">
-<a name="gst-tag-get-language-code-iso-639-2T.returns"></a><h4>Returns</h4>
-<p> three-letter ISO-639-2 language code string that maps to <em class="parameter"><code>lang_code</code></em>
-,
-or NULL if no mapping is known. The returned string must not be
-modified or freed.</p>
-</div>
 </div>
 <hr>
 <div class="refsect2">
 <a name="gst-tag-check-language-code"></a><h3>gst_tag_check_language_code ()</h3>
 <pre class="programlisting"><a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
 gst_tag_check_language_code (<em class="parameter"><code>const <a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *lang_code</code></em>);</pre>
-<p>Check if a given string contains a known ISO 639 language code.</p>
-<p>This is useful in situations where it's not clear whether a given
-string is a language code (which should be put into a <a href="/usr/share/gtk-doc/html/gstreamer-1.0GstTagList.html#GST-TAG-LANGUAGE-CODE:CAPS"><span class="type">GST_TAG_LANGUAGE_CODE</span></a>
-tag) or a free-form language name descriptor (which should be put into a
-<a href="/usr/share/gtk-doc/html/gstreamer-1.0GstTagList.html#GST-TAG-LANGUAGE-NAME:CAPS"><span class="type">GST_TAG_LANGUAGE_NAME</span></a> tag instead).</p>
-<div class="refsect3">
-<a name="gst-tag-check-language-code.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>lang_code</p></td>
-<td class="parameter_description"><p>ISO-639 language code (e.g. "deu" or "ger" or "de")</p></td>
-<td class="parameter_annotations"> </td>
-</tr></tbody>
-</table></div>
-</div>
-<div class="refsect3">
-<a name="gst-tag-check-language-code.returns"></a><h4>Returns</h4>
-<p> TRUE if the two- or three-letter language code in <em class="parameter"><code>lang_code</code></em>
-is a valid ISO-639 language code.</p>
-</div>
 </div>
 </div>
 <div class="refsect1">
 <a name="gst-plugins-base-libs-gsttaglanguagecodes.other_details"></a><h2>Types and Values</h2>
 </div>
-<div class="refsect1">
-<a name="gst-plugins-base-libs-gsttaglanguagecodes.see-also"></a><h2>See Also</h2>
-<p><a href="/usr/share/gtk-doc/html/gstreamer-1.0GstTagList.html#GstTagList-struct"><span class="type">GstTagList</span></a></p>
-</div>
 </div>
 <div class="footer">
 <hr>Generated by GTK-Doc V1.25</div>
diff --git a/docs/libs/html/gst-plugins-base-libs-gsttaglicenses.html b/docs/libs/html/gst-plugins-base-libs-gsttaglicenses.html
index f566410..a496823 100644
--- a/docs/libs/html/gst-plugins-base-libs-gsttaglicenses.html
+++ b/docs/libs/html/gst-plugins-base-libs-gsttaglicenses.html
@@ -27,7 +27,7 @@
 <div class="refnamediv"><table width="100%"><tr>
 <td valign="top">
 <h2><span class="refentrytitle"><a name="gst-plugins-base-libs-gsttaglicenses.top_of_page"></a>gsttaglicenses</span></h2>
-<p>gsttaglicenses — utility functions for Creative Commons licenses</p>
+<p>gsttaglicenses</p>
 </td>
 <td class="gallery_image" valign="top" align="right"></td>
 </tr></table></div>
@@ -113,10 +113,6 @@
 </div>
 <div class="refsect1">
 <a name="gst-plugins-base-libs-gsttaglicenses.description"></a><h2>Description</h2>
-<p>Provides information about Creative Commons media licenses, which are
-often expressed in media files as a license URI in tags. Also useful
-for applications creating media files, in case the user wants to license
-the content under a Creative Commons license.</p>
 </div>
 <div class="refsect1">
 <a name="gst-plugins-base-libs-gsttaglicenses.functions_details"></a><h2>Functions</h2>
@@ -124,198 +120,48 @@
 <a name="gst-tag-get-license-flags"></a><h3>gst_tag_get_license_flags ()</h3>
 <pre class="programlisting"><a class="link" href="gst-plugins-base-libs-gsttaglicenses.html#GstTagLicenseFlags" title="enum GstTagLicenseFlags"><span class="returnvalue">GstTagLicenseFlags</span></a>
 gst_tag_get_license_flags (<em class="parameter"><code>const <a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *license_ref</code></em>);</pre>
-<p>Get the flags of a license, which describe most of the features of
-a license in their most general form.</p>
-<div class="refsect3">
-<a name="gst-tag-get-license-flags.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>license_ref</p></td>
-<td class="parameter_description"><p>a license reference string in form of a URI,
-e.g. "http://creativecommons.org/licenses/by-nc-nd/2.0/"</p></td>
-<td class="parameter_annotations"> </td>
-</tr></tbody>
-</table></div>
-</div>
-<div class="refsect3">
-<a name="gst-tag-get-license-flags.returns"></a><h4>Returns</h4>
-<p> the flags of the license, or 0 if the license is unknown</p>
-</div>
 </div>
 <hr>
 <div class="refsect2">
 <a name="gst-tag-get-license-nick"></a><h3>gst_tag_get_license_nick ()</h3>
 <pre class="programlisting">const <a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> *
 gst_tag_get_license_nick (<em class="parameter"><code>const <a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *license_ref</code></em>);</pre>
-<p>Get the nick name of a license, which is a short (untranslated) string
-such as e.g. "CC BY-NC-ND 2.0 UK".</p>
-<div class="refsect3">
-<a name="gst-tag-get-license-nick.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>license_ref</p></td>
-<td class="parameter_description"><p>a license reference string in form of a URI,
-e.g. "http://creativecommons.org/licenses/by-nc-nd/2.0/"</p></td>
-<td class="parameter_annotations"> </td>
-</tr></tbody>
-</table></div>
-</div>
-<div class="refsect3">
-<a name="gst-tag-get-license-nick.returns"></a><h4>Returns</h4>
-<p> the nick name of the license, or NULL if the license is unknown</p>
-</div>
 </div>
 <hr>
 <div class="refsect2">
 <a name="gst-tag-get-license-title"></a><h3>gst_tag_get_license_title ()</h3>
 <pre class="programlisting">const <a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> *
 gst_tag_get_license_title (<em class="parameter"><code>const <a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *license_ref</code></em>);</pre>
-<p>Get the title of a license, which is a short translated description
-of the license's features (generally not very pretty though).</p>
-<div class="refsect3">
-<a name="gst-tag-get-license-title.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>license_ref</p></td>
-<td class="parameter_description"><p>a license reference string in form of a URI,
-e.g. "http://creativecommons.org/licenses/by-nc-nd/2.0/"</p></td>
-<td class="parameter_annotations"> </td>
-</tr></tbody>
-</table></div>
-</div>
-<div class="refsect3">
-<a name="gst-tag-get-license-title.returns"></a><h4>Returns</h4>
-<p> the title of the license, or NULL if the license is unknown or
-no title is available.</p>
-</div>
 </div>
 <hr>
 <div class="refsect2">
 <a name="gst-tag-get-license-description"></a><h3>gst_tag_get_license_description ()</h3>
 <pre class="programlisting">const <a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> *
 gst_tag_get_license_description (<em class="parameter"><code>const <a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *license_ref</code></em>);</pre>
-<p>Get the description of a license, which is a translated description
-of the license's main features.</p>
-<div class="refsect3">
-<a name="gst-tag-get-license-description.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>license_ref</p></td>
-<td class="parameter_description"><p>a license reference string in form of a URI,
-e.g. "http://creativecommons.org/licenses/by-nc-nd/2.0/"</p></td>
-<td class="parameter_annotations"> </td>
-</tr></tbody>
-</table></div>
-</div>
-<div class="refsect3">
-<a name="gst-tag-get-license-description.returns"></a><h4>Returns</h4>
-<p> the description of the license, or NULL if the license is unknown
-or a description is not available.</p>
-</div>
 </div>
 <hr>
 <div class="refsect2">
 <a name="gst-tag-get-license-jurisdiction"></a><h3>gst_tag_get_license_jurisdiction ()</h3>
 <pre class="programlisting">const <a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> *
 gst_tag_get_license_jurisdiction (<em class="parameter"><code>const <a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *license_ref</code></em>);</pre>
-<p>Get the jurisdiction code of a license. This is usually a two-letter
-ISO 3166-1 alpha-2 code, but there is also the special case of Scotland,
-for which no code exists and which is thus represented as "scotland".</p>
-<p>Known jurisdictions: ar, at, au, be, bg, br, ca, ch, cl, cn, co, de,
-dk, es, fi, fr, hr, hu, il, in, it, jp, kr, mk, mt, mx, my, nl, pe, pl,
-pt, scotland, se, si, tw, uk, us, za.</p>
-<div class="refsect3">
-<a name="gst-tag-get-license-jurisdiction.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>license_ref</p></td>
-<td class="parameter_description"><p>a license reference string in form of a URI,
-e.g. "http://creativecommons.org/licenses/by-nc-nd/2.0/"</p></td>
-<td class="parameter_annotations"> </td>
-</tr></tbody>
-</table></div>
-</div>
-<div class="refsect3">
-<a name="gst-tag-get-license-jurisdiction.returns"></a><h4>Returns</h4>
-<p> the jurisdiction code of the license, or NULL if the license is
-unknown or is not specific to a particular jurisdiction.</p>
-</div>
 </div>
 <hr>
 <div class="refsect2">
 <a name="gst-tag-get-license-version"></a><h3>gst_tag_get_license_version ()</h3>
 <pre class="programlisting">const <a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> *
 gst_tag_get_license_version (<em class="parameter"><code>const <a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *license_ref</code></em>);</pre>
-<p>Get the version of a license.</p>
-<div class="refsect3">
-<a name="gst-tag-get-license-version.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>license_ref</p></td>
-<td class="parameter_description"><p>a license reference string in form of a URI,
-e.g. "http://creativecommons.org/licenses/by-nc-nd/2.0/"</p></td>
-<td class="parameter_annotations"> </td>
-</tr></tbody>
-</table></div>
-</div>
-<div class="refsect3">
-<a name="gst-tag-get-license-version.returns"></a><h4>Returns</h4>
-<p> the version of the license, or NULL if the license is not known or
-has no version</p>
-</div>
 </div>
 <hr>
 <div class="refsect2">
 <a name="gst-tag-get-licenses"></a><h3>gst_tag_get_licenses ()</h3>
 <pre class="programlisting"><a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> **
 gst_tag_get_licenses (<em class="parameter"><code><span class="type">void</span></code></em>);</pre>
-<p>Returns a list of known license references (in form of URIs). This is
-useful for UIs to build a list of available licenses for tagging purposes
-(e.g. to tag an audio track appropriately in a video or audio editor, or
-an image in a camera application).</p>
-<div class="refsect3">
-<a name="gst-tag-get-licenses.returns"></a><h4>Returns</h4>
-<p> NULL-terminated array of license strings. Free
-with <a href="/usr/share/gtk-doc/html/glibglib-String-Utility-Functions.html#g-strfreev"><code class="function">g_strfreev()</code></a> when no longer needed. </p>
-<p><span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>]</span></p>
-</div>
 </div>
 </div>
 <div class="refsect1">
 <a name="gst-plugins-base-libs-gsttaglicenses.other_details"></a><h2>Types and Values</h2>
 <div class="refsect2">
 <a name="GstTagLicenseFlags"></a><h3>enum GstTagLicenseFlags</h3>
-<p>See http://creativecommons.org/ns for more information.</p>
 <div class="refsect3">
 <a name="GstTagLicenseFlags.members"></a><h4>Members</h4>
 <div class="informaltable"><table class="informaltable" width="100%" border="0">
@@ -327,129 +173,79 @@
 <tbody>
 <tr>
 <td class="enum_member_name"><p><a name="GST-TAG-LICENSE-PERMITS-REPRODUCTION:CAPS"></a>GST_TAG_LICENSE_PERMITS_REPRODUCTION</p></td>
-<td class="enum_member_description">
-<p>making multiple copies
-    is allowed</p>
-</td>
-<td class="enum_member_annotations"> </td>
+<td> </td>
+<td> </td>
 </tr>
 <tr>
 <td class="enum_member_name"><p><a name="GST-TAG-LICENSE-PERMITS-DISTRIBUTION:CAPS"></a>GST_TAG_LICENSE_PERMITS_DISTRIBUTION</p></td>
-<td class="enum_member_description">
-<p>distribution, public display
-    and public performance are allowed</p>
-</td>
-<td class="enum_member_annotations"> </td>
+<td> </td>
+<td> </td>
 </tr>
 <tr>
 <td class="enum_member_name"><p><a name="GST-TAG-LICENSE-PERMITS-DERIVATIVE-WORKS:CAPS"></a>GST_TAG_LICENSE_PERMITS_DERIVATIVE_WORKS</p></td>
-<td class="enum_member_description">
-<p>distribution of derivative
-    works is allowed</p>
-</td>
-<td class="enum_member_annotations"> </td>
+<td> </td>
+<td> </td>
 </tr>
 <tr>
 <td class="enum_member_name"><p><a name="GST-TAG-LICENSE-PERMITS-SHARING:CAPS"></a>GST_TAG_LICENSE_PERMITS_SHARING</p></td>
-<td class="enum_member_description">
-<p>commercial derivatives are allowed,
-    but only non-commercial distribution is allowed</p>
-</td>
-<td class="enum_member_annotations"> </td>
+<td> </td>
+<td> </td>
 </tr>
 <tr>
 <td class="enum_member_name"><p><a name="GST-TAG-LICENSE-REQUIRES-NOTICE:CAPS"></a>GST_TAG_LICENSE_REQUIRES_NOTICE</p></td>
-<td class="enum_member_description">
-<p>copyright and license notices
-    must be kept intact</p>
-</td>
-<td class="enum_member_annotations"> </td>
+<td> </td>
+<td> </td>
 </tr>
 <tr>
 <td class="enum_member_name"><p><a name="GST-TAG-LICENSE-REQUIRES-ATTRIBUTION:CAPS"></a>GST_TAG_LICENSE_REQUIRES_ATTRIBUTION</p></td>
-<td class="enum_member_description">
-<p>credit must be given to
-    copyright holder and/or author</p>
-</td>
-<td class="enum_member_annotations"> </td>
+<td> </td>
+<td> </td>
 </tr>
 <tr>
 <td class="enum_member_name"><p><a name="GST-TAG-LICENSE-REQUIRES-SHARE-ALIKE:CAPS"></a>GST_TAG_LICENSE_REQUIRES_SHARE_ALIKE</p></td>
-<td class="enum_member_description">
-<p>derivative works must be
-    licensed under the same terms or compatible terms as the original work</p>
-</td>
-<td class="enum_member_annotations"> </td>
+<td> </td>
+<td> </td>
 </tr>
 <tr>
 <td class="enum_member_name"><p><a name="GST-TAG-LICENSE-REQUIRES-SOURCE-CODE:CAPS"></a>GST_TAG_LICENSE_REQUIRES_SOURCE_CODE</p></td>
-<td class="enum_member_description">
-<p>source code (the preferred
-    form for making modifications) must be provided when exercising some
-    rights granted by the license</p>
-</td>
-<td class="enum_member_annotations"> </td>
+<td> </td>
+<td> </td>
 </tr>
 <tr>
 <td class="enum_member_name"><p><a name="GST-TAG-LICENSE-REQUIRES-COPYLEFT:CAPS"></a>GST_TAG_LICENSE_REQUIRES_COPYLEFT</p></td>
-<td class="enum_member_description">
-<p>derivative and combined works
-    must be licensed under specified terms, similar to those of the original
-    work</p>
-</td>
-<td class="enum_member_annotations"> </td>
+<td> </td>
+<td> </td>
 </tr>
 <tr>
 <td class="enum_member_name"><p><a name="GST-TAG-LICENSE-REQUIRES-LESSER-COPYLEFT:CAPS"></a>GST_TAG_LICENSE_REQUIRES_LESSER_COPYLEFT</p></td>
-<td class="enum_member_description">
-<p>derivative works must be
-    licensed under specified terms, with at least the same conditions as
-    the original work; combinations with the work may be licensed under
-    different terms</p>
-</td>
-<td class="enum_member_annotations"> </td>
+<td> </td>
+<td> </td>
 </tr>
 <tr>
 <td class="enum_member_name"><p><a name="GST-TAG-LICENSE-PROHIBITS-COMMERCIAL-USE:CAPS"></a>GST_TAG_LICENSE_PROHIBITS_COMMERCIAL_USE</p></td>
-<td class="enum_member_description">
-<p>exercising rights for
-    commercial purposes is prohibited</p>
-</td>
-<td class="enum_member_annotations"> </td>
+<td> </td>
+<td> </td>
 </tr>
 <tr>
 <td class="enum_member_name"><p><a name="GST-TAG-LICENSE-PROHIBITS-HIGH-INCOME-NATION-USE:CAPS"></a>GST_TAG_LICENSE_PROHIBITS_HIGH_INCOME_NATION_USE</p></td>
-<td class="enum_member_description">
-<p>use in a
-    non-developing country is prohibited</p>
-</td>
-<td class="enum_member_annotations"> </td>
+<td> </td>
+<td> </td>
 </tr>
 <tr>
 <td class="enum_member_name"><p><a name="GST-TAG-LICENSE-CREATIVE-COMMONS-LICENSE:CAPS"></a>GST_TAG_LICENSE_CREATIVE_COMMONS_LICENSE</p></td>
-<td class="enum_member_description">
-<p>this license was created
-    by the Creative Commons project</p>
-</td>
-<td class="enum_member_annotations"> </td>
+<td> </td>
+<td> </td>
 </tr>
 <tr>
 <td class="enum_member_name"><p><a name="GST-TAG-LICENSE-FREE-SOFTWARE-FOUNDATION-LICENSE:CAPS"></a>GST_TAG_LICENSE_FREE_SOFTWARE_FOUNDATION_LICENSE</p></td>
-<td class="enum_member_description">
-<p>this license was
-    created by the Free Software Foundation (FSF)</p>
-</td>
-<td class="enum_member_annotations"> </td>
+<td> </td>
+<td> </td>
 </tr>
 </tbody>
 </table></div>
 </div>
 </div>
 </div>
-<div class="refsect1">
-<a name="gst-plugins-base-libs-gsttaglicenses.see-also"></a><h2>See Also</h2>
-<p><a href="/usr/share/gtk-doc/html/gstreamer-1.0GstTagList.html#GstTagList-struct"><span class="type">GstTagList</span></a></p>
-</div>
 </div>
 <div class="footer">
 <hr>Generated by GTK-Doc V1.25</div>
diff --git a/docs/libs/html/gst-plugins-base-libs-gsttagmux.html b/docs/libs/html/gst-plugins-base-libs-gsttagmux.html
index 4bb1bd6..f20af55 100644
--- a/docs/libs/html/gst-plugins-base-libs-gsttagmux.html
+++ b/docs/libs/html/gst-plugins-base-libs-gsttagmux.html
@@ -27,8 +27,7 @@
 <div class="refnamediv"><table width="100%"><tr>
 <td valign="top">
 <h2><span class="refentrytitle"><a name="gst-plugins-base-libs-gsttagmux.top_of_page"></a>gsttagmux</span></h2>
-<p>gsttagmux — Base class for adding tags that are in one single chunk
-                    directly at the beginning or at the end of a file</p>
+<p>gsttagmux</p>
 </td>
 <td class="gallery_image" valign="top" align="right"></td>
 </tr></table></div>
@@ -58,31 +57,6 @@
 </div>
 <div class="refsect1">
 <a name="gst-plugins-base-libs-gsttagmux.description"></a><h2>Description</h2>
-<div class="refsect2">
-<a name="id-1.2.13.10.5.2"></a><h3>Deriving from GstTagMux</h3>
-<p>
-Provides a base class for adding tags at the beginning or end of a
-stream.
-</p>
-<p>
-Subclasses have to do the following things:
-</p>
-<div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; ">
-<li class="listitem"><p>
- In their base init function, they must add pad templates for the sink
- pad and the source pad to the element class, describing the media type
- they accept and output in the caps of the pad template.
- </p></li>
-<li class="listitem"><p>
- In their class init function, they must override the
- GST_TAG_MUX_CLASS(mux_klass)-&gt;render_start_tag and/or
- GST_TAG_MUX_CLASS(mux_klass)-&gt;render_end_tag vfuncs and set up a render
- function.
- </p></li>
-</ul></div>
-<p>
-</p>
-</div>
 </div>
 <div class="refsect1">
 <a name="gst-plugins-base-libs-gsttagmux.functions_details"></a><h2>Functions</h2>
@@ -96,22 +70,6 @@
   GstElement    element;
 };
 </pre>
-<p>Opaque <a class="link" href="gst-plugins-base-libs-gsttagmux.html#GstTagMux" title="struct GstTagMux"><span class="type">GstTagMux</span></a> structure.</p>
-<div class="refsect3">
-<a name="GstTagMux.members"></a><h4>Members</h4>
-<div class="informaltable"><table class="informaltable" width="100%" border="0">
-<colgroup>
-<col width="300px" class="struct_members_name">
-<col class="struct_members_description">
-<col width="200px" class="struct_members_annotations">
-</colgroup>
-<tbody><tr>
-<td class="struct_member_name"><p><a href="/usr/share/gtk-doc/html/gstreamer-1.0GstElement.html#GstElement-struct"><span class="type">GstElement</span></a> <em class="structfield"><code><a name="GstTagMux.element"></a>element</code></em>;</p></td>
-<td class="struct_member_description"><p>parent element</p></td>
-<td class="struct_member_annotations"> </td>
-</tr></tbody>
-</table></div>
-</div>
 </div>
 <hr>
 <div class="refsect2">
@@ -124,39 +82,9 @@
   GstBuffer  * (*render_end_tag)   (GstTagMux * mux, const GstTagList * tag_list);
 };
 </pre>
-<p>The <a class="link" href="gst-plugins-base-libs-gsttagmux.html#GstTagMuxClass" title="struct GstTagMuxClass"><span class="type">GstTagMuxClass</span></a> structure. Subclasses need to override at least one
-of the two render vfuncs.</p>
-<div class="refsect3">
-<a name="GstTagMuxClass.members"></a><h4>Members</h4>
-<div class="informaltable"><table class="informaltable" width="100%" border="0">
-<colgroup>
-<col width="300px" class="struct_members_name">
-<col class="struct_members_description">
-<col width="200px" class="struct_members_annotations">
-</colgroup>
-<tbody>
-<tr>
-<td class="struct_member_name"><p><em class="structfield"><code><a name="GstTagMuxClass.render-start-tag"></a>render_start_tag</code></em> ()</p></td>
-<td class="struct_member_description"><p>create a tag buffer to add to the beginning of the
-input stream given a tag list, or NULL</p></td>
-<td class="struct_member_annotations"> </td>
-</tr>
-<tr>
-<td class="struct_member_name"><p><em class="structfield"><code><a name="GstTagMuxClass.render-end-tag"></a>render_end_tag</code></em> ()</p></td>
-<td class="struct_member_description"><p>create a tag buffer to add to the end of the
-input stream given a tag list, or NULL</p></td>
-<td class="struct_member_annotations"> </td>
-</tr>
-</tbody>
-</table></div>
 </div>
 </div>
 </div>
-<div class="refsect1">
-<a name="gst-plugins-base-libs-gsttagmux.see-also"></a><h2>See Also</h2>
-<p>GstApeMux, GstId3Mux</p>
-</div>
-</div>
 <div class="footer">
 <hr>Generated by GTK-Doc V1.25</div>
 </body>
diff --git a/docs/libs/html/gst-plugins-base-libs-gsttagvorbis.html b/docs/libs/html/gst-plugins-base-libs-gsttagvorbis.html
index 557de0d..4d1ab60 100644
--- a/docs/libs/html/gst-plugins-base-libs-gsttagvorbis.html
+++ b/docs/libs/html/gst-plugins-base-libs-gsttagvorbis.html
@@ -27,8 +27,7 @@
 <div class="refnamediv"><table width="100%"><tr>
 <td valign="top">
 <h2><span class="refentrytitle"><a name="gst-plugins-base-libs-gsttagvorbis.top_of_page"></a>gsttagvorbis</span></h2>
-<p>gsttagvorbis — tag mappings and support functions for plugins
-                    dealing with vorbiscomments</p>
+<p>gsttagvorbis</p>
 </td>
 <td class="gallery_image" valign="top" align="right"></td>
 </tr></table></div>
@@ -104,12 +103,6 @@
 </div>
 <div class="refsect1">
 <a name="gst-plugins-base-libs-gsttagvorbis.description"></a><h2>Description</h2>
-<div class="refsect2">
-<a name="id-1.2.13.4.5.2"></a><p>
-Contains various utility functions for plugins to parse or create
-vorbiscomments and map them to and from <a href="/usr/share/gtk-doc/html/gstreamer-1.0GstTagList.html#GstTagList-struct"><span class="type">GstTagList</span></a>s.
-</p>
-</div>
 </div>
 <div class="refsect1">
 <a name="gst-plugins-base-libs-gsttagvorbis.functions_details"></a><h2>Functions</h2>
@@ -117,52 +110,12 @@
 <a name="gst-tag-from-vorbis-tag"></a><h3>gst_tag_from_vorbis_tag ()</h3>
 <pre class="programlisting">const <a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> *
 gst_tag_from_vorbis_tag (<em class="parameter"><code>const <a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *vorbis_tag</code></em>);</pre>
-<p>Looks up the GStreamer tag for a vorbiscomment tag.</p>
-<div class="refsect3">
-<a name="gst-tag-from-vorbis-tag.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>vorbis_tag</p></td>
-<td class="parameter_description"><p>vorbiscomment tag to convert to GStreamer tag</p></td>
-<td class="parameter_annotations"> </td>
-</tr></tbody>
-</table></div>
-</div>
-<div class="refsect3">
-<a name="gst-tag-from-vorbis-tag.returns"></a><h4>Returns</h4>
-<p> The corresponding GStreamer tag or NULL if none exists.</p>
-</div>
 </div>
 <hr>
 <div class="refsect2">
 <a name="gst-tag-to-vorbis-tag"></a><h3>gst_tag_to_vorbis_tag ()</h3>
 <pre class="programlisting">const <a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> *
 gst_tag_to_vorbis_tag (<em class="parameter"><code>const <a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *gst_tag</code></em>);</pre>
-<p>Looks up the vorbiscomment tag for a GStreamer tag.</p>
-<div class="refsect3">
-<a name="gst-tag-to-vorbis-tag.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>gst_tag</p></td>
-<td class="parameter_description"><p>GStreamer tag to convert to vorbiscomment tag</p></td>
-<td class="parameter_annotations"> </td>
-</tr></tbody>
-</table></div>
-</div>
-<div class="refsect3">
-<a name="gst-tag-to-vorbis-tag.returns"></a><h4>Returns</h4>
-<p> The corresponding vorbiscomment tag or NULL if none exists.</p>
-</div>
 </div>
 <hr>
 <div class="refsect2">
@@ -171,39 +124,6 @@
 gst_vorbis_tag_add (<em class="parameter"><code><a href="/usr/share/gtk-doc/html/gstreamer-1.0GstTagList.html#GstTagList-struct"><span class="type">GstTagList</span></a> *list</code></em>,
                     <em class="parameter"><code>const <a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *tag</code></em>,
                     <em class="parameter"><code>const <a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *value</code></em>);</pre>
-<p>Convenience function using <a class="link" href="gst-plugins-base-libs-gsttagvorbis.html#gst-tag-from-vorbis-tag" title="gst_tag_from_vorbis_tag ()"><code class="function">gst_tag_from_vorbis_tag()</code></a>, parsing
-a vorbis comment string into the right type and adding it to the
-given taglist <em class="parameter"><code>list</code></em>
-.</p>
-<p>Unknown vorbiscomment tags will be added to the tag list in form
-of a <a href="/usr/share/gtk-doc/html/gstreamer-1.0GstTagList.html#GST-TAG-EXTENDED-COMMENT:CAPS"><span class="type">GST_TAG_EXTENDED_COMMENT</span></a>.</p>
-<div class="refsect3">
-<a name="gst-vorbis-tag-add.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>list</p></td>
-<td class="parameter_description"><p>a <a href="/usr/share/gtk-doc/html/gstreamer-1.0GstTagList.html#GstTagList-struct"><span class="type">GstTagList</span></a></p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-<tr>
-<td class="parameter_name"><p>tag</p></td>
-<td class="parameter_description"><p>a vorbiscomment tag string (key in key=value), must be valid UTF-8</p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-<tr>
-<td class="parameter_name"><p>value</p></td>
-<td class="parameter_description"><p>a vorbiscomment value string (value in key=value), must be valid UTF-8</p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-</tbody>
-</table></div>
-</div>
 </div>
 <hr>
 <div class="refsect2">
@@ -211,37 +131,6 @@
 <pre class="programlisting"><a href="/usr/share/gtk-doc/html/glibglib-Doubly-Linked-Lists.html#GList"><span class="returnvalue">GList</span></a> *
 gst_tag_to_vorbis_comments (<em class="parameter"><code>const <a href="/usr/share/gtk-doc/html/gstreamer-1.0GstTagList.html#GstTagList-struct"><span class="type">GstTagList</span></a> *list</code></em>,
                             <em class="parameter"><code>const <a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *tag</code></em>);</pre>
-<p>Creates a new tag list that contains the information parsed out of a
-vorbiscomment packet.</p>
-<div class="refsect3">
-<a name="gst-tag-to-vorbis-comments.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>list</p></td>
-<td class="parameter_description"><p>a <a href="/usr/share/gtk-doc/html/gstreamer-1.0GstTagList.html#GstTagList-struct"><span class="type">GstTagList</span></a></p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-<tr>
-<td class="parameter_name"><p>tag</p></td>
-<td class="parameter_description"><p>a GStreamer tag identifier, such as <a href="/usr/share/gtk-doc/html/gstreamer-1.0GstTagList.html#GST-TAG-ARTIST:CAPS"><span class="type">GST_TAG_ARTIST</span></a></p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-</tbody>
-</table></div>
-</div>
-<div class="refsect3">
-<a name="gst-tag-to-vorbis-comments.returns"></a><h4>Returns</h4>
-<p> A <a href="/usr/share/gtk-doc/html/glibglib-Doubly-Linked-Lists.html#GList"><span class="type">GList</span></a> of newly-allocated
-key=value strings. Free with g_list_foreach (list, (GFunc) g_free, NULL)
-plus g_list_free (list). </p>
-<p><span class="annotation">[<acronym title="Generics and defining elements of containers and arrays."><span class="acronym">element-type</span></acronym> utf8][<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>]</span></p>
-</div>
 </div>
 <hr>
 <div class="refsect2">
@@ -252,52 +141,6 @@
                                  <em class="parameter"><code>const <a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#guint8"><span class="type">guint8</span></a> *id_data</code></em>,
                                  <em class="parameter"><code>const <a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#guint"><span class="type">guint</span></a> id_data_length</code></em>,
                                  <em class="parameter"><code><a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#gchar"><span class="type">gchar</span></a> **vendor_string</code></em>);</pre>
-<p>Creates a new tag list that contains the information parsed out of a
-vorbiscomment packet.</p>
-<div class="refsect3">
-<a name="gst-tag-list-from-vorbiscomment.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>data</p></td>
-<td class="parameter_description"><p>data to convert</p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-<tr>
-<td class="parameter_name"><p>size</p></td>
-<td class="parameter_description"><p>size of <em class="parameter"><code>data</code></em>
-</p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-<tr>
-<td class="parameter_name"><p>id_data</p></td>
-<td class="parameter_description"><p>identification data at start of stream</p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-<tr>
-<td class="parameter_name"><p>id_data_length</p></td>
-<td class="parameter_description"><p>length of identification data</p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-<tr>
-<td class="parameter_name"><p>vendor_string</p></td>
-<td class="parameter_description"><p>pointer to a string that should take the vendor string
-of this vorbis comment or NULL if you don't need it.</p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-</tbody>
-</table></div>
-</div>
-<div class="refsect3">
-<a name="gst-tag-list-from-vorbiscomment.returns"></a><h4>Returns</h4>
-<p> A new <a href="/usr/share/gtk-doc/html/gstreamer-1.0GstTagList.html#GstTagList-struct"><span class="type">GstTagList</span></a> with all tags that could be extracted from the
-given vorbiscomment buffer or NULL on error.</p>
-</div>
 </div>
 <hr>
 <div class="refsect2">
@@ -308,46 +151,6 @@
                                 <em class="parameter"><code>const <a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#guint8"><span class="type">guint8</span></a> *id_data</code></em>,
                                 <em class="parameter"><code>const <a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#guint"><span class="type">guint</span></a> id_data_length</code></em>,
                                 <em class="parameter"><code><a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#gchar"><span class="type">gchar</span></a> **vendor_string</code></em>);</pre>
-<p>Creates a new tag list that contains the information parsed out of a
-vorbiscomment packet.</p>
-<div class="refsect3">
-<a name="gst-tag-list-from-vorbiscomment-buffer.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>buffer</p></td>
-<td class="parameter_description"><p>buffer to convert</p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-<tr>
-<td class="parameter_name"><p>id_data</p></td>
-<td class="parameter_description"><p>identification data at start of stream</p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-<tr>
-<td class="parameter_name"><p>id_data_length</p></td>
-<td class="parameter_description"><p>length of identification data</p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-<tr>
-<td class="parameter_name"><p>vendor_string</p></td>
-<td class="parameter_description"><p>pointer to a string that should take the vendor string
-of this vorbis comment or NULL if you don't need it.</p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-</tbody>
-</table></div>
-</div>
-<div class="refsect3">
-<a name="gst-tag-list-from-vorbiscomment-buffer.returns"></a><h4>Returns</h4>
-<p> A new <a href="/usr/share/gtk-doc/html/gstreamer-1.0GstTagList.html#GstTagList-struct"><span class="type">GstTagList</span></a> with all tags that could be extracted from the
-given vorbiscomment buffer or NULL on error.</p>
-</div>
 </div>
 <hr>
 <div class="refsect2">
@@ -357,54 +160,11 @@
                                       <em class="parameter"><code>const <a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#guint8"><span class="type">guint8</span></a> *id_data</code></em>,
                                       <em class="parameter"><code>const <a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#guint"><span class="type">guint</span></a> id_data_length</code></em>,
                                       <em class="parameter"><code>const <a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *vendor_string</code></em>);</pre>
-<p>Creates a new vorbiscomment buffer from a tag list.</p>
-<div class="refsect3">
-<a name="gst-tag-list-to-vorbiscomment-buffer.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>list</p></td>
-<td class="parameter_description"><p>tag list to convert</p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-<tr>
-<td class="parameter_name"><p>id_data</p></td>
-<td class="parameter_description"><p>identification data at start of stream</p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-<tr>
-<td class="parameter_name"><p>id_data_length</p></td>
-<td class="parameter_description"><p>length of identification data, may be 0 if <em class="parameter"><code>id_data</code></em>
-is NULL</p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-<tr>
-<td class="parameter_name"><p>vendor_string</p></td>
-<td class="parameter_description"><p>string that describes the vendor string or NULL</p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-</tbody>
-</table></div>
-</div>
-<div class="refsect3">
-<a name="gst-tag-list-to-vorbiscomment-buffer.returns"></a><h4>Returns</h4>
-<p> A new <a href="/usr/share/gtk-doc/html/gstreamer-1.0GstBuffer.html#GstBuffer-struct"><span class="type">GstBuffer</span></a> containing a vorbiscomment buffer with all tags
-that could be converted from the given tag list.</p>
-</div>
 </div>
 </div>
 <div class="refsect1">
 <a name="gst-plugins-base-libs-gsttagvorbis.other_details"></a><h2>Types and Values</h2>
 </div>
-<div class="refsect1">
-<a name="gst-plugins-base-libs-gsttagvorbis.see-also"></a><h2>See Also</h2>
-<p><a href="/usr/share/gtk-doc/html/gstreamer-1.0GstTagList.html#GstTagList-struct"><span class="type">GstTagList</span></a></p>
-</div>
 </div>
 <div class="footer">
 <hr>Generated by GTK-Doc V1.25</div>
diff --git a/docs/libs/html/gst-plugins-base-libs-gsttagxmp.html b/docs/libs/html/gst-plugins-base-libs-gsttagxmp.html
index 88b343e..25ff8de 100644
--- a/docs/libs/html/gst-plugins-base-libs-gsttagxmp.html
+++ b/docs/libs/html/gst-plugins-base-libs-gsttagxmp.html
@@ -27,8 +27,7 @@
 <div class="refnamediv"><table width="100%"><tr>
 <td valign="top">
 <h2><span class="refentrytitle"><a name="gst-plugins-base-libs-gsttagxmp.top_of_page"></a>gsttagxmp</span></h2>
-<p>gsttagxmp — tag mappings and support functions for plugins
-                    dealing with xmp packets</p>
+<p>gsttagxmp</p>
 </td>
 <td class="gallery_image" valign="top" align="right"></td>
 </tr></table></div>
@@ -73,9 +72,6 @@
 </div>
 <div class="refsect1">
 <a name="gst-plugins-base-libs-gsttagxmp.description"></a><h2>Description</h2>
-<p>Contains various utility functions for plugins to parse or create
-xmp packets and map them to and from <a href="/usr/share/gtk-doc/html/gstreamer-1.0GstTagList.html#GstTagList-struct"><span class="type">GstTagList</span></a>s.</p>
-<p>Please note that the xmp parser is very lightweight and not strict at all.</p>
 </div>
 <div class="refsect1">
 <a name="gst-plugins-base-libs-gsttagxmp.functions_details"></a><h2>Functions</h2>
@@ -83,26 +79,6 @@
 <a name="gst-tag-list-from-xmp-buffer"></a><h3>gst_tag_list_from_xmp_buffer ()</h3>
 <pre class="programlisting"><a href="/usr/share/gtk-doc/html/gstreamer-1.0GstTagList.html#GstTagList-struct"><span class="returnvalue">GstTagList</span></a> *
 gst_tag_list_from_xmp_buffer (<em class="parameter"><code><a href="/usr/share/gtk-doc/html/gstreamer-1.0GstBuffer.html#GstBuffer-struct"><span class="type">GstBuffer</span></a> *buffer</code></em>);</pre>
-<p>Parse a xmp packet into a taglist.</p>
-<div class="refsect3">
-<a name="gst-tag-list-from-xmp-buffer.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>buffer</p></td>
-<td class="parameter_description"><p>buffer</p></td>
-<td class="parameter_annotations"> </td>
-</tr></tbody>
-</table></div>
-</div>
-<div class="refsect3">
-<a name="gst-tag-list-from-xmp-buffer.returns"></a><h4>Returns</h4>
-<p> new taglist or <a href="/usr/share/gtk-doc/html/glibglib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a>, free the list when done</p>
-</div>
 </div>
 <hr>
 <div class="refsect2">
@@ -111,62 +87,17 @@
 gst_tag_list_to_xmp_buffer (<em class="parameter"><code>const <a href="/usr/share/gtk-doc/html/gstreamer-1.0GstTagList.html#GstTagList-struct"><span class="type">GstTagList</span></a> *list</code></em>,
                             <em class="parameter"><code><a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a> read_only</code></em>,
                             <em class="parameter"><code>const <a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#gchar"><span class="type">gchar</span></a> **schemas</code></em>);</pre>
-<p>Formats a taglist as a xmp packet using only the selected
-schemas. An empty list (<a href="/usr/share/gtk-doc/html/glibglib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a>) means that all schemas should
-be used</p>
-<div class="refsect3">
-<a name="gst-tag-list-to-xmp-buffer.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>list</p></td>
-<td class="parameter_description"><p>tags</p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-<tr>
-<td class="parameter_name"><p>read_only</p></td>
-<td class="parameter_description"><p>does the container forbid inplace editing</p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-<tr>
-<td class="parameter_name"><p>schemas</p></td>
-<td class="parameter_description"><p><a href="/usr/share/gtk-doc/html/glibglib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a> terminated array of schemas to be used on serialization</p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-</tbody>
-</table></div>
-</div>
-<div class="refsect3">
-<a name="gst-tag-list-to-xmp-buffer.returns"></a><h4>Returns</h4>
-<p> new buffer or <a href="/usr/share/gtk-doc/html/glibglib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a>, unref the buffer when done</p>
-</div>
 </div>
 <hr>
 <div class="refsect2">
 <a name="gst-tag-xmp-list-schemas"></a><h3>gst_tag_xmp_list_schemas ()</h3>
 <pre class="programlisting">const <a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> **
 gst_tag_xmp_list_schemas (<em class="parameter"><code><span class="type">void</span></code></em>);</pre>
-<p>Gets the list of supported schemas in the xmp lib</p>
-<div class="refsect3">
-<a name="gst-tag-xmp-list-schemas.returns"></a><h4>Returns</h4>
-<p> a <a href="/usr/share/gtk-doc/html/glibglib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a> terminated array of strings with the
-schema names. </p>
-<p><span class="annotation">[<acronym title="Don't free data after the code is done."><span class="acronym">transfer none</span></acronym>]</span></p>
-</div>
 </div>
 </div>
 <div class="refsect1">
 <a name="gst-plugins-base-libs-gsttagxmp.other_details"></a><h2>Types and Values</h2>
 </div>
-<div class="refsect1">
-<a name="gst-plugins-base-libs-gsttagxmp.see-also"></a><h2>See Also</h2>
-<p><a href="/usr/share/gtk-doc/html/gstreamer-1.0GstTagList.html#GstTagList-struct"><span class="type">GstTagList</span></a></p>
-</div>
 </div>
 <div class="footer">
 <hr>Generated by GTK-Doc V1.25</div>
diff --git a/docs/libs/html/gst-plugins-base-libs-gsttagxmpwriter.html b/docs/libs/html/gst-plugins-base-libs-gsttagxmpwriter.html
index 87328cc..9c7aeb8 100644
--- a/docs/libs/html/gst-plugins-base-libs-gsttagxmpwriter.html
+++ b/docs/libs/html/gst-plugins-base-libs-gsttagxmpwriter.html
@@ -27,7 +27,7 @@
 <div class="refnamediv"><table width="100%"><tr>
 <td valign="top">
 <h2><span class="refentrytitle"><a name="gst-plugins-base-libs-gsttagxmpwriter.top_of_page"></a>gsttagxmpwriter</span></h2>
-<p>gsttagxmpwriter — Interface for elements that provide XMP serialization</p>
+<p>gsttagxmpwriter</p>
 </td>
 <td class="gallery_image" valign="top" align="right"></td>
 </tr></table></div>
@@ -92,17 +92,6 @@
 </div>
 <div class="refsect1">
 <a name="gst-plugins-base-libs-gsttagxmpwriter.description"></a><h2>Description</h2>
-<div class="refsect2">
-<a name="id-1.2.13.8.4.2"></a><p>
-This interface is implemented by elements that are able to do XMP serialization. Examples for
-such elements are <span class="type">jifmux</span> and <span class="type">qtmux</span>.
-</p>
-<p>
-Applications can use this interface to configure which XMP schemas should be used when serializing
-tags into XMP. Schemas are represented by their names, a full list of the supported schemas can be
-obtained from <a class="link" href="gst-plugins-base-libs-gsttagxmp.html#gst-tag-xmp-list-schemas" title="gst_tag_xmp_list_schemas ()"><code class="function">gst_tag_xmp_list_schemas()</code></a>. By default, all schemas are used.
-</p>
-</div>
 </div>
 <div class="refsect1">
 <a name="gst-plugins-base-libs-gsttagxmpwriter.functions_details"></a><h2>Functions</h2>
@@ -110,23 +99,6 @@
 <a name="gst-tag-xmp-writer-add-all-schemas"></a><h3>gst_tag_xmp_writer_add_all_schemas ()</h3>
 <pre class="programlisting"><span class="returnvalue">void</span>
 gst_tag_xmp_writer_add_all_schemas (<em class="parameter"><code><span class="type">GstTagXmpWriter</span> *config</code></em>);</pre>
-<p>Adds all available XMP schemas to the configuration. Meaning that
-all will be used.</p>
-<div class="refsect3">
-<a name="gst-tag-xmp-writer-add-all-schemas.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>config</p></td>
-<td class="parameter_description"><p>a <span class="type">GstTagXmpWriter</span></p></td>
-<td class="parameter_annotations"> </td>
-</tr></tbody>
-</table></div>
-</div>
 </div>
 <hr>
 <div class="refsect2">
@@ -134,30 +106,6 @@
 <pre class="programlisting"><span class="returnvalue">void</span>
 gst_tag_xmp_writer_add_schema (<em class="parameter"><code><span class="type">GstTagXmpWriter</span> *config</code></em>,
                                <em class="parameter"><code>const <a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *schema</code></em>);</pre>
-<p>Adds <em class="parameter"><code>schema</code></em>
- to the list schemas</p>
-<div class="refsect3">
-<a name="gst-tag-xmp-writer-add-schema.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>config</p></td>
-<td class="parameter_description"><p>a <span class="type">GstTagXmpWriter</span></p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-<tr>
-<td class="parameter_name"><p>schema</p></td>
-<td class="parameter_description"><p>the schema to be added</p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-</tbody>
-</table></div>
-</div>
 </div>
 <hr>
 <div class="refsect2">
@@ -165,34 +113,6 @@
 <pre class="programlisting"><a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
 gst_tag_xmp_writer_has_schema (<em class="parameter"><code><span class="type">GstTagXmpWriter</span> *config</code></em>,
                                <em class="parameter"><code>const <a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *schema</code></em>);</pre>
-<p>Checks if <em class="parameter"><code>schema</code></em>
- is going to be used</p>
-<div class="refsect3">
-<a name="gst-tag-xmp-writer-has-schema.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>config</p></td>
-<td class="parameter_description"><p>a <span class="type">GstTagXmpWriter</span></p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-<tr>
-<td class="parameter_name"><p>schema</p></td>
-<td class="parameter_description"><p>the schema to test</p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-</tbody>
-</table></div>
-</div>
-<div class="refsect3">
-<a name="gst-tag-xmp-writer-has-schema.returns"></a><h4>Returns</h4>
-<p> <a href="/usr/share/gtk-doc/html/glibglib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a> if it is going to be used</p>
-</div>
 </div>
 <hr>
 <div class="refsect2">
@@ -200,53 +120,12 @@
 <pre class="programlisting"><span class="returnvalue">void</span>
 gst_tag_xmp_writer_remove_schema (<em class="parameter"><code><span class="type">GstTagXmpWriter</span> *config</code></em>,
                                   <em class="parameter"><code>const <a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *schema</code></em>);</pre>
-<p>Removes a schema from the list of schemas to use. Nothing is done if
-the schema wasn't in the list</p>
-<div class="refsect3">
-<a name="gst-tag-xmp-writer-remove-schema.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>config</p></td>
-<td class="parameter_description"><p>a <span class="type">GstTagXmpWriter</span></p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-<tr>
-<td class="parameter_name"><p>schema</p></td>
-<td class="parameter_description"><p>the schema to remove</p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-</tbody>
-</table></div>
-</div>
 </div>
 <hr>
 <div class="refsect2">
 <a name="gst-tag-xmp-writer-remove-all-schemas"></a><h3>gst_tag_xmp_writer_remove_all_schemas ()</h3>
 <pre class="programlisting"><span class="returnvalue">void</span>
 gst_tag_xmp_writer_remove_all_schemas (<em class="parameter"><code><span class="type">GstTagXmpWriter</span> *config</code></em>);</pre>
-<p>Removes all schemas from the list of schemas to use. Meaning that no
-XMP will be generated.</p>
-<div class="refsect3">
-<a name="gst-tag-xmp-writer-remove-all-schemas.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>config</p></td>
-<td class="parameter_description"><p>a <span class="type">GstTagXmpWriter</span></p></td>
-<td class="parameter_annotations"> </td>
-</tr></tbody>
-</table></div>
-</div>
 </div>
 <hr>
 <div class="refsect2">
diff --git a/docs/libs/html/gst-plugins-base-libs-gstvideo.html b/docs/libs/html/gst-plugins-base-libs-gstvideo.html
index 034bf7f..1a075f4 100644
--- a/docs/libs/html/gst-plugins-base-libs-gstvideo.html
+++ b/docs/libs/html/gst-plugins-base-libs-gstvideo.html
@@ -27,7 +27,7 @@
 <div class="refnamediv"><table width="100%"><tr>
 <td valign="top">
 <h2><span class="refentrytitle"><a name="gst-plugins-base-libs-gstvideo.top_of_page"></a>gstvideo</span></h2>
-<p>gstvideo — Support library for video operations</p>
+<p>gstvideo</p>
 </td>
 <td class="gallery_image" valign="top" align="right"></td>
 </tr></table></div>
@@ -1245,12 +1245,6 @@
 </div>
 <div class="refsect1">
 <a name="gst-plugins-base-libs-gstvideo.description"></a><h2>Description</h2>
-<div class="refsect2">
-<a name="id-1.2.15.3.6.2"></a><p>
-This library contains some helper functions and includes the
-videosink and videofilter base classes.
-</p>
-</div>
 </div>
 <div class="refsect1">
 <a name="gst-plugins-base-libs-gstvideo.functions_details"></a><h2>Functions</h2>
@@ -1265,67 +1259,6 @@
                                    <em class="parameter"><code><a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#guint"><span class="type">guint</span></a> video_par_d</code></em>,
                                    <em class="parameter"><code><a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#guint"><span class="type">guint</span></a> display_par_n</code></em>,
                                    <em class="parameter"><code><a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#guint"><span class="type">guint</span></a> display_par_d</code></em>);</pre>
-<p>Given the Pixel Aspect Ratio and size of an input video frame, and the
-pixel aspect ratio of the intended display device, calculates the actual
-display ratio the video will be rendered with.</p>
-<div class="refsect3">
-<a name="gst-video-calculate-display-ratio.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>dar_n</p></td>
-<td class="parameter_description"><p> Numerator of the calculated display_ratio. </p></td>
-<td class="parameter_annotations"><span class="annotation">[<acronym title="Parameter for returning results. Default is transfer full."><span class="acronym">out</span></acronym>]</span></td>
-</tr>
-<tr>
-<td class="parameter_name"><p>dar_d</p></td>
-<td class="parameter_description"><p> Denominator of the calculated display_ratio. </p></td>
-<td class="parameter_annotations"><span class="annotation">[<acronym title="Parameter for returning results. Default is transfer full."><span class="acronym">out</span></acronym>]</span></td>
-</tr>
-<tr>
-<td class="parameter_name"><p>video_width</p></td>
-<td class="parameter_description"><p>Width of the video frame in pixels</p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-<tr>
-<td class="parameter_name"><p>video_height</p></td>
-<td class="parameter_description"><p>Height of the video frame in pixels</p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-<tr>
-<td class="parameter_name"><p>video_par_n</p></td>
-<td class="parameter_description"><p>Numerator of the pixel aspect ratio of the input video.</p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-<tr>
-<td class="parameter_name"><p>video_par_d</p></td>
-<td class="parameter_description"><p>Denominator of the pixel aspect ratio of the input video.</p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-<tr>
-<td class="parameter_name"><p>display_par_n</p></td>
-<td class="parameter_description"><p>Numerator of the pixel aspect ratio of the display device</p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-<tr>
-<td class="parameter_name"><p>display_par_d</p></td>
-<td class="parameter_description"><p>Denominator of the pixel aspect ratio of the display device</p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-</tbody>
-</table></div>
-</div>
-<div class="refsect3">
-<a name="gst-video-calculate-display-ratio.returns"></a><h4>Returns</h4>
-<p> A boolean indicating success and a calculated Display Ratio in the
-dar_n and dar_d parameters.
-The return value is FALSE in the case of integer overflow or other error.</p>
-</div>
 </div>
 <hr>
 <div class="refsect2">
@@ -1334,45 +1267,6 @@
 gst_video_guess_framerate (<em class="parameter"><code><a href="/usr/share/gtk-doc/html/gstreamer-1.0GstClock.html#GstClockTime"><span class="type">GstClockTime</span></a> duration</code></em>,
                            <em class="parameter"><code><a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#gint"><span class="type">gint</span></a> *dest_n</code></em>,
                            <em class="parameter"><code><a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#gint"><span class="type">gint</span></a> *dest_d</code></em>);</pre>
-<p>Given the nominal duration of one video frame,
-this function will check some standard framerates for
-a close match (within 0.1%) and return one if possible,</p>
-<p>It will calculate an arbitrary framerate if no close
-match was found, and return <a href="/usr/share/gtk-doc/html/glibglib-Standard-Macros.html#FALSE:CAPS"><code class="literal">FALSE</code></a>.</p>
-<p>It returns <a href="/usr/share/gtk-doc/html/glibglib-Standard-Macros.html#FALSE:CAPS"><code class="literal">FALSE</code></a> if a duration of 0 is passed.</p>
-<div class="refsect3">
-<a name="gst-video-guess-framerate.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>duration</p></td>
-<td class="parameter_description"><p>Nominal duration of one frame</p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-<tr>
-<td class="parameter_name"><p>dest_n</p></td>
-<td class="parameter_description"><p> Numerator of the calculated framerate. </p></td>
-<td class="parameter_annotations"><span class="annotation">[<acronym title="Parameter for returning results. Default is transfer full."><span class="acronym">out</span></acronym>][<acronym title="NULL is OK, both for passing and for returning."><span class="acronym">allow-none</span></acronym>]</span></td>
-</tr>
-<tr>
-<td class="parameter_name"><p>dest_d</p></td>
-<td class="parameter_description"><p> Denominator of the calculated framerate. </p></td>
-<td class="parameter_annotations"><span class="annotation">[<acronym title="Parameter for returning results. Default is transfer full."><span class="acronym">out</span></acronym>][<acronym title="NULL is OK, both for passing and for returning."><span class="acronym">allow-none</span></acronym>]</span></td>
-</tr>
-</tbody>
-</table></div>
-</div>
-<div class="refsect3">
-<a name="gst-video-guess-framerate.returns"></a><h4>Returns</h4>
-<p> <a href="/usr/share/gtk-doc/html/glibglib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a> if a close "standard" framerate was
-recognised, and <a href="/usr/share/gtk-doc/html/glibglib-Standard-Macros.html#FALSE:CAPS"><code class="literal">FALSE</code></a> otherwise.</p>
-</div>
-<p class="since">Since: 1.6</p>
 </div>
 <hr>
 <div class="refsect2">
@@ -1390,46 +1284,6 @@
                           <em class="parameter"><code>const <a href="/usr/share/gtk-doc/html/gstreamer-1.0GstCaps.html#GstCaps-struct"><span class="type">GstCaps</span></a> *to_caps</code></em>,
                           <em class="parameter"><code><a href="/usr/share/gtk-doc/html/gstreamer-1.0GstClock.html#GstClockTime"><span class="type">GstClockTime</span></a> timeout</code></em>,
                           <em class="parameter"><code><a href="/usr/share/gtk-doc/html/glibglib-Error-Reporting.html#GError"><span class="type">GError</span></a> **error</code></em>);</pre>
-<p>Converts a raw video buffer into the specified output caps.</p>
-<p>The output caps can be any raw video formats or any image formats (jpeg, png, ...).</p>
-<p>The width, height and pixel-aspect-ratio can also be specified in the output caps.</p>
-<div class="refsect3">
-<a name="gst-video-convert-sample.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>sample</p></td>
-<td class="parameter_description"><p>a <a href="/usr/share/gtk-doc/html/gstreamer-1.0GstSample.html#GstSample-struct"><span class="type">GstSample</span></a></p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-<tr>
-<td class="parameter_name"><p>to_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> to convert to</p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-<tr>
-<td class="parameter_name"><p>timeout</p></td>
-<td class="parameter_description"><p>the maximum amount of time allowed for the processing.</p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-<tr>
-<td class="parameter_name"><p>error</p></td>
-<td class="parameter_description"><p>pointer to a <a href="/usr/share/gtk-doc/html/glibglib-Error-Reporting.html#GError"><span class="type">GError</span></a>. Can be <a href="/usr/share/gtk-doc/html/glibglib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a>.</p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-</tbody>
-</table></div>
-</div>
-<div class="refsect3">
-<a name="gst-video-convert-sample.returns"></a><h4>Returns</h4>
-<p> The converted <a href="/usr/share/gtk-doc/html/gstreamer-1.0GstSample.html#GstSample-struct"><span class="type">GstSample</span></a>, or <a href="/usr/share/gtk-doc/html/glibglib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a> if an error happened (in which case <em class="parameter"><code>err</code></em>
-will point to the <a href="/usr/share/gtk-doc/html/glibglib-Error-Reporting.html#GError"><span class="type">GError</span></a>).</p>
-</div>
 </div>
 <hr>
 <div class="refsect2">
@@ -1441,118 +1295,18 @@
                                 <em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstvideo.html#GstVideoConvertSampleCallback" title="GstVideoConvertSampleCallback ()"><span class="type">GstVideoConvertSampleCallback</span></a> callback</code></em>,
                                 <em class="parameter"><code><a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> user_data</code></em>,
                                 <em class="parameter"><code><a href="/usr/share/gtk-doc/html/glibglib-Datasets.html#GDestroyNotify"><span class="type">GDestroyNotify</span></a> destroy_notify</code></em>);</pre>
-<p>Converts a raw video buffer into the specified output caps.</p>
-<p>The output caps can be any raw video formats or any image formats (jpeg, png, ...).</p>
-<p>The width, height and pixel-aspect-ratio can also be specified in the output caps.</p>
-<p><em class="parameter"><code>callback</code></em>
- will be called after conversion, when an error occured or if conversion didn't
-finish after <em class="parameter"><code>timeout</code></em>
-. <em class="parameter"><code>callback</code></em>
- will always be called from the thread default
-<a href="/usr/share/gtk-doc/html/glibglib-The-Main-Event-Loop.html#GMainContext"><code class="literal">GMainContext</code></a>, see <a href="/usr/share/gtk-doc/html/glibglib-The-Main-Event-Loop.html#g-main-context-get-thread-default"><code class="function">g_main_context_get_thread_default()</code></a>. If GLib before 2.22 is used,
-this will always be the global default main context.</p>
-<p><em class="parameter"><code>destroy_notify</code></em>
- will be called after the callback was called and <em class="parameter"><code>user_data</code></em>
- is not needed
-anymore.</p>
-<div class="refsect3">
-<a name="gst-video-convert-sample-async.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>sample</p></td>
-<td class="parameter_description"><p>a <a href="/usr/share/gtk-doc/html/gstreamer-1.0GstSample.html#GstSample-struct"><span class="type">GstSample</span></a></p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-<tr>
-<td class="parameter_name"><p>to_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> to convert to</p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-<tr>
-<td class="parameter_name"><p>timeout</p></td>
-<td class="parameter_description"><p>the maximum amount of time allowed for the processing.</p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-<tr>
-<td class="parameter_name"><p>callback</p></td>
-<td class="parameter_description"><p><a class="link" href="gst-plugins-base-libs-gstvideo.html#GstVideoConvertSampleCallback" title="GstVideoConvertSampleCallback ()"><code class="literal">GstVideoConvertSampleCallback</code></a> that will be called after conversion.</p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-<tr>
-<td class="parameter_name"><p>user_data</p></td>
-<td class="parameter_description"><p>extra data that will be passed to the <em class="parameter"><code>callback</code></em>
-</p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-<tr>
-<td class="parameter_name"><p>destroy_notify</p></td>
-<td class="parameter_description"><p><a href="/usr/share/gtk-doc/html/glibglib-Datasets.html#GDestroyNotify"><code class="literal">GDestroyNotify</code></a> to be called after <em class="parameter"><code>user_data</code></em>
-is not needed anymore</p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-</tbody>
-</table></div>
-</div>
 </div>
 <hr>
 <div class="refsect2">
 <a name="gst-video-alignment-reset"></a><h3>gst_video_alignment_reset ()</h3>
 <pre class="programlisting"><span class="returnvalue">void</span>
 gst_video_alignment_reset (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstvideo.html#GstVideoAlignment" title="struct GstVideoAlignment"><span class="type">GstVideoAlignment</span></a> *align</code></em>);</pre>
-<p>Set <em class="parameter"><code>align</code></em>
- to its default values with no padding and no alignment.</p>
-<div class="refsect3">
-<a name="gst-video-alignment-reset.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>align</p></td>
-<td class="parameter_description"><p>a <a class="link" href="gst-plugins-base-libs-gstvideo.html#GstVideoAlignment" title="struct GstVideoAlignment"><span class="type">GstVideoAlignment</span></a></p></td>
-<td class="parameter_annotations"> </td>
-</tr></tbody>
-</table></div>
-</div>
 </div>
 <hr>
 <div class="refsect2">
 <a name="gst-video-event-new-still-frame"></a><h3>gst_video_event_new_still_frame ()</h3>
 <pre class="programlisting"><a href="/usr/share/gtk-doc/html/gstreamer-1.0GstEvent.html#GstEvent-struct"><span class="returnvalue">GstEvent</span></a> *
 gst_video_event_new_still_frame (<em class="parameter"><code><a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a> in_still</code></em>);</pre>
-<p>Creates a new Still Frame event. If <em class="parameter"><code>in_still</code></em>
- is <a href="/usr/share/gtk-doc/html/glibglib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a>, then the event
-represents the start of a still frame sequence. If it is <a href="/usr/share/gtk-doc/html/glibglib-Standard-Macros.html#FALSE:CAPS"><code class="literal">FALSE</code></a>, then
-the event ends a still frame sequence.</p>
-<p>To parse an event created by <a class="link" href="gst-plugins-base-libs-gstvideo.html#gst-video-event-new-still-frame" title="gst_video_event_new_still_frame ()"><code class="function">gst_video_event_new_still_frame()</code></a> use
-<a class="link" href="gst-plugins-base-libs-gstvideo.html#gst-video-event-parse-still-frame" title="gst_video_event_parse_still_frame ()"><code class="function">gst_video_event_parse_still_frame()</code></a>.</p>
-<div class="refsect3">
-<a name="gst-video-event-new-still-frame.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>in_still</p></td>
-<td class="parameter_description"><p>boolean value for the still-frame state of the event.</p></td>
-<td class="parameter_annotations"> </td>
-</tr></tbody>
-</table></div>
-</div>
-<div class="refsect3">
-<a name="gst-video-event-new-still-frame.returns"></a><h4>Returns</h4>
-<p> The new GstEvent</p>
-</div>
 </div>
 <hr>
 <div class="refsect2">
@@ -1560,39 +1314,6 @@
 <pre class="programlisting"><a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
 gst_video_event_parse_still_frame (<em class="parameter"><code><a href="/usr/share/gtk-doc/html/gstreamer-1.0GstEvent.html#GstEvent-struct"><span class="type">GstEvent</span></a> *event</code></em>,
                                    <em class="parameter"><code><a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a> *in_still</code></em>);</pre>
-<p>Parse a <a href="/usr/share/gtk-doc/html/gstreamer-1.0GstEvent.html#GstEvent-struct"><span class="type">GstEvent</span></a>, identify if it is a Still Frame event, and
-return the still-frame state from the event if it is.
-If the event represents the start of a still frame, the in_still
-variable will be set to TRUE, otherwise FALSE. It is OK to pass NULL for the
-in_still variable order to just check whether the event is a valid still-frame
-event.</p>
-<p>Create a still frame event using <a class="link" href="gst-plugins-base-libs-gstvideo.html#gst-video-event-new-still-frame" title="gst_video_event_new_still_frame ()"><code class="function">gst_video_event_new_still_frame()</code></a></p>
-<div class="refsect3">
-<a name="gst-video-event-parse-still-frame.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>event</p></td>
-<td class="parameter_description"><p>A <a href="/usr/share/gtk-doc/html/gstreamer-1.0GstEvent.html#GstEvent-struct"><span class="type">GstEvent</span></a> to parse</p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-<tr>
-<td class="parameter_name"><p>in_still</p></td>
-<td class="parameter_description"><p>A boolean to receive the still-frame status from the event, or NULL</p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-</tbody>
-</table></div>
-</div>
-<div class="refsect3">
-<a name="gst-video-event-parse-still-frame.returns"></a><h4>Returns</h4>
-<p> <a href="/usr/share/gtk-doc/html/glibglib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a> if the event is a valid still-frame event. <a href="/usr/share/gtk-doc/html/glibglib-Standard-Macros.html#FALSE:CAPS"><code class="literal">FALSE</code></a> if not</p>
-</div>
 </div>
 <hr>
 <div class="refsect2">
@@ -1604,54 +1325,6 @@
                                 <em class="parameter"><code><a href="/usr/share/gtk-doc/html/gstreamer-1.0GstClock.html#GstClockTime"><span class="type">GstClockTime</span></a> running_time</code></em>,
                                 <em class="parameter"><code><a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a> all_headers</code></em>,
                                 <em class="parameter"><code><a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#guint"><span class="type">guint</span></a> count</code></em>);</pre>
-<p>Creates a new downstream force key unit event. A downstream force key unit
-event can be sent down the pipeline to request downstream elements to produce
-a key unit. A downstream force key unit event must also be sent when handling
-an upstream force key unit event to notify downstream that the latter has been
-handled.</p>
-<p>To parse an event created by <a class="link" href="gst-plugins-base-libs-gstvideo.html#gst-video-event-new-downstream-force-key-unit" title="gst_video_event_new_downstream_force_key_unit ()"><code class="function">gst_video_event_new_downstream_force_key_unit()</code></a> use
-<a class="link" href="gst-plugins-base-libs-gstvideo.html#gst-video-event-parse-downstream-force-key-unit" title="gst_video_event_parse_downstream_force_key_unit ()"><code class="function">gst_video_event_parse_downstream_force_key_unit()</code></a>.</p>
-<div class="refsect3">
-<a name="gst-video-event-new-downstream-force-key-unit.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>timestamp</p></td>
-<td class="parameter_description"><p>the timestamp of the buffer that starts a new key unit</p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-<tr>
-<td class="parameter_name"><p>stream_time</p></td>
-<td class="parameter_description"><p>the stream_time of the buffer that starts a new key unit</p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-<tr>
-<td class="parameter_name"><p>running_time</p></td>
-<td class="parameter_description"><p>the running_time of the buffer that starts a new key unit</p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-<tr>
-<td class="parameter_name"><p>all_headers</p></td>
-<td class="parameter_description"><p><a href="/usr/share/gtk-doc/html/glibglib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a> to produce headers when starting a new key unit</p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-<tr>
-<td class="parameter_name"><p>count</p></td>
-<td class="parameter_description"><p>integer that can be used to number key units</p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-</tbody>
-</table></div>
-</div>
-<div class="refsect3">
-<a name="gst-video-event-new-downstream-force-key-unit.returns"></a><h4>Returns</h4>
-<p> The new GstEvent</p>
-</div>
 </div>
 <hr>
 <div class="refsect2">
@@ -1664,57 +1337,6 @@
                                 <em class="parameter"><code><a href="/usr/share/gtk-doc/html/gstreamer-1.0GstClock.html#GstClockTime"><span class="type">GstClockTime</span></a> *running_time</code></em>,
                                 <em class="parameter"><code><a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a> *all_headers</code></em>,
                                 <em class="parameter"><code><a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#guint"><span class="type">guint</span></a> *count</code></em>);</pre>
-<p>Get timestamp, stream-time, running-time, all-headers and count in the force
-key unit event. See <a class="link" href="gst-plugins-base-libs-gstvideo.html#gst-video-event-new-downstream-force-key-unit" title="gst_video_event_new_downstream_force_key_unit ()"><code class="function">gst_video_event_new_downstream_force_key_unit()</code></a> for a
-full description of the downstream force key unit event.</p>
-<p><em class="parameter"><code>running_time</code></em>
- will be adjusted for any pad offsets of pads it was passing through.</p>
-<div class="refsect3">
-<a name="gst-video-event-parse-downstream-force-key-unit.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>event</p></td>
-<td class="parameter_description"><p>A <a href="/usr/share/gtk-doc/html/gstreamer-1.0GstEvent.html#GstEvent-struct"><span class="type">GstEvent</span></a> to parse</p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-<tr>
-<td class="parameter_name"><p>timestamp</p></td>
-<td class="parameter_description"><p> A pointer to the timestamp in the event. </p></td>
-<td class="parameter_annotations"><span class="annotation">[<acronym title="Parameter for returning results. Default is transfer full."><span class="acronym">out</span></acronym>]</span></td>
-</tr>
-<tr>
-<td class="parameter_name"><p>stream_time</p></td>
-<td class="parameter_description"><p> A pointer to the stream-time in the event. </p></td>
-<td class="parameter_annotations"><span class="annotation">[<acronym title="Parameter for returning results. Default is transfer full."><span class="acronym">out</span></acronym>]</span></td>
-</tr>
-<tr>
-<td class="parameter_name"><p>running_time</p></td>
-<td class="parameter_description"><p> A pointer to the running-time in the event. </p></td>
-<td class="parameter_annotations"><span class="annotation">[<acronym title="Parameter for returning results. Default is transfer full."><span class="acronym">out</span></acronym>]</span></td>
-</tr>
-<tr>
-<td class="parameter_name"><p>all_headers</p></td>
-<td class="parameter_description"><p> A pointer to the all_headers flag in the event. </p></td>
-<td class="parameter_annotations"><span class="annotation">[<acronym title="Parameter for returning results. Default is transfer full."><span class="acronym">out</span></acronym>]</span></td>
-</tr>
-<tr>
-<td class="parameter_name"><p>count</p></td>
-<td class="parameter_description"><p> A pointer to the count field of the event. </p></td>
-<td class="parameter_annotations"><span class="annotation">[<acronym title="Parameter for returning results. Default is transfer full."><span class="acronym">out</span></acronym>]</span></td>
-</tr>
-</tbody>
-</table></div>
-</div>
-<div class="refsect3">
-<a name="gst-video-event-parse-downstream-force-key-unit.returns"></a><h4>Returns</h4>
-<p> <a href="/usr/share/gtk-doc/html/glibglib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a> if the event is a valid downstream force key unit event.</p>
-</div>
 </div>
 <hr>
 <div class="refsect2">
@@ -1724,45 +1346,6 @@
                                (<em class="parameter"><code><a href="/usr/share/gtk-doc/html/gstreamer-1.0GstClock.html#GstClockTime"><span class="type">GstClockTime</span></a> running_time</code></em>,
                                 <em class="parameter"><code><a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a> all_headers</code></em>,
                                 <em class="parameter"><code><a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#guint"><span class="type">guint</span></a> count</code></em>);</pre>
-<p>Creates a new upstream force key unit event. An upstream force key unit event
-can be sent to request upstream elements to produce a key unit. </p>
-<p><em class="parameter"><code>running_time</code></em>
- can be set to request a new key unit at a specific
-running_time. If set to GST_CLOCK_TIME_NONE, upstream elements will produce a
-new key unit as soon as possible.</p>
-<p>To parse an event created by <a class="link" href="gst-plugins-base-libs-gstvideo.html#gst-video-event-new-downstream-force-key-unit" title="gst_video_event_new_downstream_force_key_unit ()"><code class="function">gst_video_event_new_downstream_force_key_unit()</code></a> use
-<a class="link" href="gst-plugins-base-libs-gstvideo.html#gst-video-event-parse-downstream-force-key-unit" title="gst_video_event_parse_downstream_force_key_unit ()"><code class="function">gst_video_event_parse_downstream_force_key_unit()</code></a>.</p>
-<div class="refsect3">
-<a name="gst-video-event-new-upstream-force-key-unit.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>running_time</p></td>
-<td class="parameter_description"><p>the running_time at which a new key unit should be produced</p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-<tr>
-<td class="parameter_name"><p>all_headers</p></td>
-<td class="parameter_description"><p><a href="/usr/share/gtk-doc/html/glibglib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a> to produce headers when starting a new key unit</p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-<tr>
-<td class="parameter_name"><p>count</p></td>
-<td class="parameter_description"><p>integer that can be used to number key units</p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-</tbody>
-</table></div>
-</div>
-<div class="refsect3">
-<a name="gst-video-event-new-upstream-force-key-unit.returns"></a><h4>Returns</h4>
-<p> The new GstEvent</p>
-</div>
 </div>
 <hr>
 <div class="refsect2">
@@ -1773,75 +1356,12 @@
                                 <em class="parameter"><code><a href="/usr/share/gtk-doc/html/gstreamer-1.0GstClock.html#GstClockTime"><span class="type">GstClockTime</span></a> *running_time</code></em>,
                                 <em class="parameter"><code><a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a> *all_headers</code></em>,
                                 <em class="parameter"><code><a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#guint"><span class="type">guint</span></a> *count</code></em>);</pre>
-<p>Get running-time, all-headers and count in the force key unit event. See
-<a class="link" href="gst-plugins-base-libs-gstvideo.html#gst-video-event-new-upstream-force-key-unit" title="gst_video_event_new_upstream_force_key_unit ()"><code class="function">gst_video_event_new_upstream_force_key_unit()</code></a> for a full description of the
-upstream force key unit event.</p>
-<p>Create an upstream force key unit event using  <a class="link" href="gst-plugins-base-libs-gstvideo.html#gst-video-event-new-upstream-force-key-unit" title="gst_video_event_new_upstream_force_key_unit ()"><code class="function">gst_video_event_new_upstream_force_key_unit()</code></a></p>
-<p><em class="parameter"><code>running_time</code></em>
- will be adjusted for any pad offsets of pads it was passing through.</p>
-<div class="refsect3">
-<a name="gst-video-event-parse-upstream-force-key-unit.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>event</p></td>
-<td class="parameter_description"><p>A <a href="/usr/share/gtk-doc/html/gstreamer-1.0GstEvent.html#GstEvent-struct"><span class="type">GstEvent</span></a> to parse</p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-<tr>
-<td class="parameter_name"><p>running_time</p></td>
-<td class="parameter_description"><p> A pointer to the running_time in the event. </p></td>
-<td class="parameter_annotations"><span class="annotation">[<acronym title="Parameter for returning results. Default is transfer full."><span class="acronym">out</span></acronym>]</span></td>
-</tr>
-<tr>
-<td class="parameter_name"><p>all_headers</p></td>
-<td class="parameter_description"><p> A pointer to the all_headers flag in the event. </p></td>
-<td class="parameter_annotations"><span class="annotation">[<acronym title="Parameter for returning results. Default is transfer full."><span class="acronym">out</span></acronym>]</span></td>
-</tr>
-<tr>
-<td class="parameter_name"><p>count</p></td>
-<td class="parameter_description"><p> A pointer to the count field in the event. </p></td>
-<td class="parameter_annotations"><span class="annotation">[<acronym title="Parameter for returning results. Default is transfer full."><span class="acronym">out</span></acronym>]</span></td>
-</tr>
-</tbody>
-</table></div>
-</div>
-<div class="refsect3">
-<a name="gst-video-event-parse-upstream-force-key-unit.returns"></a><h4>Returns</h4>
-<p> <a href="/usr/share/gtk-doc/html/glibglib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a> if the event is a valid upstream force-key-unit event. <a href="/usr/share/gtk-doc/html/glibglib-Standard-Macros.html#FALSE:CAPS"><code class="literal">FALSE</code></a> if not</p>
-</div>
 </div>
 <hr>
 <div class="refsect2">
 <a name="gst-video-event-is-force-key-unit"></a><h3>gst_video_event_is_force_key_unit ()</h3>
 <pre class="programlisting"><a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
 gst_video_event_is_force_key_unit (<em class="parameter"><code><a href="/usr/share/gtk-doc/html/gstreamer-1.0GstEvent.html#GstEvent-struct"><span class="type">GstEvent</span></a> *event</code></em>);</pre>
-<p>Checks if an event is a force key unit event. Returns true for both upstream
-and downstream force key unit events.</p>
-<div class="refsect3">
-<a name="gst-video-event-is-force-key-unit.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>event</p></td>
-<td class="parameter_description"><p>A <a href="/usr/share/gtk-doc/html/gstreamer-1.0GstEvent.html#GstEvent-struct"><span class="type">GstEvent</span></a> to check</p></td>
-<td class="parameter_annotations"> </td>
-</tr></tbody>
-</table></div>
-</div>
-<div class="refsect3">
-<a name="gst-video-event-is-force-key-unit.returns"></a><h4>Returns</h4>
-<p> <a href="/usr/share/gtk-doc/html/glibglib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a> if the event is a valid force key unit event</p>
-</div>
 </div>
 <hr>
 <div class="refsect2">
@@ -1855,76 +1375,6 @@
                          <em class="parameter"><code><a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#gint"><span class="type">gint</span></a> x</code></em>,
                          <em class="parameter"><code><a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#gint"><span class="type">gint</span></a> y</code></em>,
                          <em class="parameter"><code><a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#gint"><span class="type">gint</span></a> width</code></em>);</pre>
-<p>Unpacks <em class="parameter"><code>width</code></em>
- pixels from the given planes and strides containing data of
-format <em class="parameter"><code>info</code></em>
-. The pixels will be unpacked into <em class="parameter"><code>dest</code></em>
- with each component
-interleaved as per <em class="parameter"><code>info</code></em>
-'s unpack_format, which will usually be one of
-<a class="link" href="gst-plugins-base-libs-gstvideo.html#GST-VIDEO-FORMAT-ARGB:CAPS"><span class="type">GST_VIDEO_FORMAT_ARGB</span></a>, <a class="link" href="gst-plugins-base-libs-gstvideo.html#GST-VIDEO-FORMAT-AYUV:CAPS"><span class="type">GST_VIDEO_FORMAT_AYUV</span></a>, <a class="link" href="gst-plugins-base-libs-gstvideo.html#GST-VIDEO-FORMAT-ARGB64:CAPS"><span class="type">GST_VIDEO_FORMAT_ARGB64</span></a> or
-<a class="link" href="gst-plugins-base-libs-gstvideo.html#GST-VIDEO-FORMAT-AYUV64:CAPS"><span class="type">GST_VIDEO_FORMAT_AYUV64</span></a> depending on the format to unpack.
-<em class="parameter"><code>dest</code></em>
- should at least be big enough to hold <em class="parameter"><code>width</code></em>
- * bytes_per_pixel bytes
-where bytes_per_pixel relates to the unpack format and will usually be
-either 4 or 8 depending on the unpack format. bytes_per_pixel will be
-the same as the pixel stride for plane 0 for the above formats.</p>
-<p>For subsampled formats, the components will be duplicated in the destination
-array. Reconstruction of the missing components can be performed in a
-separate step after unpacking.</p>
-<div class="refsect3">
-<a name="GstVideoFormatUnpack.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>info</p></td>
-<td class="parameter_description"><p>a <a class="link" href="gst-plugins-base-libs-gstvideo.html#GstVideoFormatInfo" title="struct GstVideoFormatInfo"><span class="type">GstVideoFormatInfo</span></a></p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-<tr>
-<td class="parameter_name"><p>flags</p></td>
-<td class="parameter_description"><p>flags to control the unpacking</p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-<tr>
-<td class="parameter_name"><p>dest</p></td>
-<td class="parameter_description"><p>a destination array</p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-<tr>
-<td class="parameter_name"><p>data</p></td>
-<td class="parameter_description"><p>pointers to the data planes</p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-<tr>
-<td class="parameter_name"><p>stride</p></td>
-<td class="parameter_description"><p>strides of the planes</p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-<tr>
-<td class="parameter_name"><p>x</p></td>
-<td class="parameter_description"><p>the x position in the image to start from</p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-<tr>
-<td class="parameter_name"><p>y</p></td>
-<td class="parameter_description"><p>the y position in the image to start from</p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-<tr>
-<td class="parameter_name"><p>width</p></td>
-<td class="parameter_description"><p>the amount of pixels to unpack.</p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-</tbody>
-</table></div>
-</div>
 </div>
 <hr>
 <div class="refsect2">
@@ -1939,83 +1389,6 @@
                        <em class="parameter"><code><a class="link" href="gst-plugins-base-libs-GstVideoChroma.html#GstVideoChromaSite" title="enum GstVideoChromaSite"><span class="type">GstVideoChromaSite</span></a> chroma_site</code></em>,
                        <em class="parameter"><code><a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#gint"><span class="type">gint</span></a> y</code></em>,
                        <em class="parameter"><code><a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#gint"><span class="type">gint</span></a> width</code></em>);</pre>
-<p>Packs <em class="parameter"><code>width</code></em>
- pixels from <em class="parameter"><code>src</code></em>
- to the given planes and strides in the
-format <em class="parameter"><code>info</code></em>
-. The pixels from source have each component interleaved
-and will be packed into the planes in <em class="parameter"><code>data</code></em>
-.</p>
-<p>This function operates on pack_lines lines, meaning that <em class="parameter"><code>src</code></em>
- should
-contain at least pack_lines lines with a stride of <em class="parameter"><code>sstride</code></em>
- and <em class="parameter"><code>y</code></em>
-
-should be a multiple of pack_lines.</p>
-<p>Subsampled formats will use the horizontally and vertically cosited
-component from the source. Subsampling should be performed before
-packing.</p>
-<p>Because this function does not have a x coordinate, it is not possible to
-pack pixels starting from an unaligned position. For tiled images this
-means that packing should start from a tile coordinate. For subsampled
-formats this means that a complete pixel needs to be packed.</p>
-<div class="refsect3">
-<a name="GstVideoFormatPack.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>info</p></td>
-<td class="parameter_description"><p>a <a class="link" href="gst-plugins-base-libs-gstvideo.html#GstVideoFormatInfo" title="struct GstVideoFormatInfo"><span class="type">GstVideoFormatInfo</span></a></p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-<tr>
-<td class="parameter_name"><p>flags</p></td>
-<td class="parameter_description"><p>flags to control the packing</p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-<tr>
-<td class="parameter_name"><p>src</p></td>
-<td class="parameter_description"><p>a source array</p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-<tr>
-<td class="parameter_name"><p>sstride</p></td>
-<td class="parameter_description"><p>the source array stride</p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-<tr>
-<td class="parameter_name"><p>data</p></td>
-<td class="parameter_description"><p>pointers to the destination data planes</p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-<tr>
-<td class="parameter_name"><p>stride</p></td>
-<td class="parameter_description"><p>strides of the destination planes</p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-<tr>
-<td class="parameter_name"><p>chroma_site</p></td>
-<td class="parameter_description"><p>the chroma siting of the target when subsampled (not used)</p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-<tr>
-<td class="parameter_name"><p>y</p></td>
-<td class="parameter_description"><p>the y position in the image to pack to</p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-<tr>
-<td class="parameter_name"><p>width</p></td>
-<td class="parameter_description"><p>the amount of pixels to pack.</p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-</tbody>
-</table></div>
-</div>
 </div>
 <hr>
 <div class="refsect2">
@@ -2106,92 +1479,18 @@
 <a name="GST-VIDEO-FORMAT-INFO-PSTRIDE:CAPS"></a><h3>GST_VIDEO_FORMAT_INFO_PSTRIDE()</h3>
 <pre class="programlisting">#define GST_VIDEO_FORMAT_INFO_PSTRIDE(info,c)    ((info)-&gt;pixel_stride[c])
 </pre>
-<p>pixel stride for the given component. This is the amount of bytes to the
-pixel immediately to the right, so basically bytes from one pixel to the
-next. When bits &lt; 8, the stride is expressed in bits.</p>
-<p>Examples: for 24-bit RGB, the pixel stride would be 3 bytes, while it
-would be 4 bytes for RGBx or ARGB, and 8 bytes for ARGB64 or AYUV64.
-For planar formats such as I420 the pixel stride is usually 1. For
-YUY2 it would be 2 bytes.</p>
-<div class="refsect3">
-<a name="GST-VIDEO-FORMAT-INFO-PSTRIDE.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>info</p></td>
-<td class="parameter_description"><p>a <a class="link" href="gst-plugins-base-libs-gstvideo.html#GstVideoInfo" title="struct GstVideoInfo"><span class="type">GstVideoInfo</span></a></p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-<tr>
-<td class="parameter_name"><p>c</p></td>
-<td class="parameter_description"><p>the component index</p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-</tbody>
-</table></div>
-</div>
 </div>
 <hr>
 <div class="refsect2">
 <a name="GST-VIDEO-FORMAT-INFO-N-PLANES:CAPS"></a><h3>GST_VIDEO_FORMAT_INFO_N_PLANES()</h3>
 <pre class="programlisting">#define GST_VIDEO_FORMAT_INFO_N_PLANES(info)     ((info)-&gt;n_planes)
 </pre>
-<p>Number of planes. This is the number of planes the pixel layout is
-organized in in memory. The number of planes can be less than the
-number of components (e.g. Y,U,V,A or R, G, B, A) when multiple
-components are packed into one plane.</p>
-<p>Examples: RGB/RGBx/RGBA: 1 plane, 3/3/4 components;
-I420: 3 planes, 3 components; NV21/NV12: 2 planes, 3 components.</p>
-<div class="refsect3">
-<a name="GST-VIDEO-FORMAT-INFO-N-PLANES.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>info</p></td>
-<td class="parameter_description"><p>a <a class="link" href="gst-plugins-base-libs-gstvideo.html#GstVideoInfo" title="struct GstVideoInfo"><span class="type">GstVideoInfo</span></a></p></td>
-<td class="parameter_annotations"> </td>
-</tr></tbody>
-</table></div>
-</div>
 </div>
 <hr>
 <div class="refsect2">
 <a name="GST-VIDEO-FORMAT-INFO-PLANE:CAPS"></a><h3>GST_VIDEO_FORMAT_INFO_PLANE()</h3>
 <pre class="programlisting">#define GST_VIDEO_FORMAT_INFO_PLANE(info,c)      ((info)-&gt;plane[c])
 </pre>
-<p>Plane number where the given component can be found. A plane may
-contain data for multiple components.</p>
-<div class="refsect3">
-<a name="GST-VIDEO-FORMAT-INFO-PLANE.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>info</p></td>
-<td class="parameter_description"><p>a <a class="link" href="gst-plugins-base-libs-gstvideo.html#GstVideoInfo" title="struct GstVideoInfo"><span class="type">GstVideoInfo</span></a></p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-<tr>
-<td class="parameter_name"><p>c</p></td>
-<td class="parameter_description"><p>the component index</p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-</tbody>
-</table></div>
-</div>
 </div>
 <hr>
 <div class="refsect2">
@@ -2239,37 +1538,6 @@
 <a name="GST-VIDEO-FORMAT-INFO-STRIDE:CAPS"></a><h3>GST_VIDEO_FORMAT_INFO_STRIDE()</h3>
 <pre class="programlisting">#define GST_VIDEO_FORMAT_INFO_STRIDE(info,strides,comp) ((strides)[(info)-&gt;plane[comp]])
 </pre>
-<p>Row stride in bytes, that is number of bytes from the first pixel component
-of a row to the first pixel component in the next row. This might include
-some row padding (memory not actually used for anything, to make sure the
-beginning of the next row is aligned in a particular way).</p>
-<div class="refsect3">
-<a name="GST-VIDEO-FORMAT-INFO-STRIDE.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>info</p></td>
-<td class="parameter_description"><p>a <a class="link" href="gst-plugins-base-libs-gstvideo.html#GstVideoInfo" title="struct GstVideoInfo"><span class="type">GstVideoInfo</span></a></p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-<tr>
-<td class="parameter_name"><p>strides</p></td>
-<td class="parameter_description"><p>an array of strides</p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-<tr>
-<td class="parameter_name"><p>comp</p></td>
-<td class="parameter_description"><p>the component index</p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-</tbody>
-</table></div>
-</div>
 </div>
 <hr>
 <div class="refsect2">
@@ -2305,226 +1573,41 @@
                              <em class="parameter"><code><a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#guint"><span class="type">guint</span></a> green_mask</code></em>,
                              <em class="parameter"><code><a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#guint"><span class="type">guint</span></a> blue_mask</code></em>,
                              <em class="parameter"><code><a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#guint"><span class="type">guint</span></a> alpha_mask</code></em>);</pre>
-<p>Find the <a class="link" href="gst-plugins-base-libs-gstvideo.html#GstVideoFormat" title="enum GstVideoFormat"><span class="type">GstVideoFormat</span></a> for the given parameters.</p>
-<div class="refsect3">
-<a name="gst-video-format-from-masks.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>depth</p></td>
-<td class="parameter_description"><p>the amount of bits used for a pixel</p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-<tr>
-<td class="parameter_name"><p>bpp</p></td>
-<td class="parameter_description"><p>the amount of bits used to store a pixel. This value is bigger than
-<em class="parameter"><code>depth</code></em>
-</p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-<tr>
-<td class="parameter_name"><p>endianness</p></td>
-<td class="parameter_description"><p>the endianness of the masks, <a href="/usr/share/gtk-doc/html/glibglib-Byte-Order-Macros.html#G-LITTLE-ENDIAN:CAPS"><span class="type">G_LITTLE_ENDIAN</span></a> or <a href="/usr/share/gtk-doc/html/glibglib-Byte-Order-Macros.html#G-BIG-ENDIAN:CAPS"><span class="type">G_BIG_ENDIAN</span></a></p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-<tr>
-<td class="parameter_name"><p>red_mask</p></td>
-<td class="parameter_description"><p>the red mask</p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-<tr>
-<td class="parameter_name"><p>green_mask</p></td>
-<td class="parameter_description"><p>the green mask</p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-<tr>
-<td class="parameter_name"><p>blue_mask</p></td>
-<td class="parameter_description"><p>the blue mask</p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-<tr>
-<td class="parameter_name"><p>alpha_mask</p></td>
-<td class="parameter_description"><p>the alpha mask, or 0 if no alpha mask</p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-</tbody>
-</table></div>
-</div>
-<div class="refsect3">
-<a name="gst-video-format-from-masks.returns"></a><h4>Returns</h4>
-<p> a <a class="link" href="gst-plugins-base-libs-gstvideo.html#GstVideoFormat" title="enum GstVideoFormat"><span class="type">GstVideoFormat</span></a> or GST_VIDEO_FORMAT_UNKNOWN when the parameters to
-not specify a known format.</p>
-</div>
 </div>
 <hr>
 <div class="refsect2">
 <a name="gst-video-format-from-fourcc"></a><h3>gst_video_format_from_fourcc ()</h3>
 <pre class="programlisting"><a class="link" href="gst-plugins-base-libs-gstvideo.html#GstVideoFormat" title="enum GstVideoFormat"><span class="returnvalue">GstVideoFormat</span></a>
 gst_video_format_from_fourcc (<em class="parameter"><code><a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#guint32"><span class="type">guint32</span></a> fourcc</code></em>);</pre>
-<p>Converts a FOURCC value into the corresponding <a class="link" href="gst-plugins-base-libs-gstvideo.html#GstVideoFormat" title="enum GstVideoFormat"><span class="type">GstVideoFormat</span></a>.
-If the FOURCC cannot be represented by <a class="link" href="gst-plugins-base-libs-gstvideo.html#GstVideoFormat" title="enum GstVideoFormat"><span class="type">GstVideoFormat</span></a>,
-<a class="link" href="gst-plugins-base-libs-gstvideo.html#GST-VIDEO-FORMAT-UNKNOWN:CAPS"><span class="type">GST_VIDEO_FORMAT_UNKNOWN</span></a> is returned.</p>
-<div class="refsect3">
-<a name="gst-video-format-from-fourcc.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>fourcc</p></td>
-<td class="parameter_description"><p>a FOURCC value representing raw YUV video</p></td>
-<td class="parameter_annotations"> </td>
-</tr></tbody>
-</table></div>
-</div>
-<div class="refsect3">
-<a name="gst-video-format-from-fourcc.returns"></a><h4>Returns</h4>
-<p> the <a class="link" href="gst-plugins-base-libs-gstvideo.html#GstVideoFormat" title="enum GstVideoFormat"><span class="type">GstVideoFormat</span></a> describing the FOURCC value</p>
-</div>
 </div>
 <hr>
 <div class="refsect2">
 <a name="gst-video-format-to-fourcc"></a><h3>gst_video_format_to_fourcc ()</h3>
 <pre class="programlisting"><a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#guint32"><span class="returnvalue">guint32</span></a>
 gst_video_format_to_fourcc (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstvideo.html#GstVideoFormat" title="enum GstVideoFormat"><span class="type">GstVideoFormat</span></a> format</code></em>);</pre>
-<p>Converts a <a class="link" href="gst-plugins-base-libs-gstvideo.html#GstVideoFormat" title="enum GstVideoFormat"><span class="type">GstVideoFormat</span></a> value into the corresponding FOURCC.  Only
-a few YUV formats have corresponding FOURCC values.  If <em class="parameter"><code>format</code></em>
- has
-no corresponding FOURCC value, 0 is returned.</p>
-<div class="refsect3">
-<a name="gst-video-format-to-fourcc.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>format</p></td>
-<td class="parameter_description"><p>a <a class="link" href="gst-plugins-base-libs-gstvideo.html#GstVideoFormat" title="enum GstVideoFormat"><span class="type">GstVideoFormat</span></a> video format</p></td>
-<td class="parameter_annotations"> </td>
-</tr></tbody>
-</table></div>
-</div>
-<div class="refsect3">
-<a name="gst-video-format-to-fourcc.returns"></a><h4>Returns</h4>
-<p> the FOURCC corresponding to <em class="parameter"><code>format</code></em>
-</p>
-</div>
 </div>
 <hr>
 <div class="refsect2">
 <a name="gst-video-format-from-string"></a><h3>gst_video_format_from_string ()</h3>
 <pre class="programlisting"><a class="link" href="gst-plugins-base-libs-gstvideo.html#GstVideoFormat" title="enum GstVideoFormat"><span class="returnvalue">GstVideoFormat</span></a>
 gst_video_format_from_string (<em class="parameter"><code>const <a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *format</code></em>);</pre>
-<p>Convert the <em class="parameter"><code>format</code></em>
- string to its <a class="link" href="gst-plugins-base-libs-gstvideo.html#GstVideoFormat" title="enum GstVideoFormat"><span class="type">GstVideoFormat</span></a>.</p>
-<div class="refsect3">
-<a name="gst-video-format-from-string.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>format</p></td>
-<td class="parameter_description"><p>a format string</p></td>
-<td class="parameter_annotations"> </td>
-</tr></tbody>
-</table></div>
-</div>
-<div class="refsect3">
-<a name="gst-video-format-from-string.returns"></a><h4>Returns</h4>
-<p> the <a class="link" href="gst-plugins-base-libs-gstvideo.html#GstVideoFormat" title="enum GstVideoFormat"><span class="type">GstVideoFormat</span></a> for <em class="parameter"><code>format</code></em>
-or GST_VIDEO_FORMAT_UNKNOWN when the
-string is not a known format.</p>
-</div>
 </div>
 <hr>
 <div class="refsect2">
 <a name="gst-video-format-to-string"></a><h3>gst_video_format_to_string ()</h3>
 <pre class="programlisting">const <a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> *
 gst_video_format_to_string (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstvideo.html#GstVideoFormat" title="enum GstVideoFormat"><span class="type">GstVideoFormat</span></a> format</code></em>);</pre>
-<p>Returns a string containing a descriptive name for
-the <a class="link" href="gst-plugins-base-libs-gstvideo.html#GstVideoFormat" title="enum GstVideoFormat"><span class="type">GstVideoFormat</span></a> if there is one, or NULL otherwise.</p>
-<div class="refsect3">
-<a name="gst-video-format-to-string.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>format</p></td>
-<td class="parameter_description"><p>a <a class="link" href="gst-plugins-base-libs-gstvideo.html#GstVideoFormat" title="enum GstVideoFormat"><span class="type">GstVideoFormat</span></a> video format</p></td>
-<td class="parameter_annotations"> </td>
-</tr></tbody>
-</table></div>
-</div>
-<div class="refsect3">
-<a name="gst-video-format-to-string.returns"></a><h4>Returns</h4>
-<p> the name corresponding to <em class="parameter"><code>format</code></em>
-</p>
-</div>
 </div>
 <hr>
 <div class="refsect2">
 <a name="gst-video-format-get-info"></a><h3>gst_video_format_get_info ()</h3>
 <pre class="programlisting">const <a class="link" href="gst-plugins-base-libs-gstvideo.html#GstVideoFormatInfo" title="struct GstVideoFormatInfo"><span class="returnvalue">GstVideoFormatInfo</span></a> *
 gst_video_format_get_info (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstvideo.html#GstVideoFormat" title="enum GstVideoFormat"><span class="type">GstVideoFormat</span></a> format</code></em>);</pre>
-<p>Get the <a class="link" href="gst-plugins-base-libs-gstvideo.html#GstVideoFormatInfo" title="struct GstVideoFormatInfo"><span class="type">GstVideoFormatInfo</span></a> for <em class="parameter"><code>format</code></em>
-</p>
-<div class="refsect3">
-<a name="gst-video-format-get-info.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>format</p></td>
-<td class="parameter_description"><p>a <a class="link" href="gst-plugins-base-libs-gstvideo.html#GstVideoFormat" title="enum GstVideoFormat"><span class="type">GstVideoFormat</span></a></p></td>
-<td class="parameter_annotations"> </td>
-</tr></tbody>
-</table></div>
-</div>
-<div class="refsect3">
-<a name="gst-video-format-get-info.returns"></a><h4>Returns</h4>
-<p> The <a class="link" href="gst-plugins-base-libs-gstvideo.html#GstVideoFormatInfo" title="struct GstVideoFormatInfo"><span class="type">GstVideoFormatInfo</span></a> for <em class="parameter"><code>format</code></em>
-.</p>
-</div>
 </div>
 <hr>
 <div class="refsect2">
 <a name="GST-VIDEO-CAPS-MAKE:CAPS"></a><h3>GST_VIDEO_CAPS_MAKE()</h3>
 <pre class="programlisting">#define             GST_VIDEO_CAPS_MAKE(format)</pre>
-<p>Generic caps string for video, for use in pad templates.</p>
-<div class="refsect3">
-<a name="GST-VIDEO-CAPS-MAKE.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>format</p></td>
-<td class="parameter_description"><p>string format that describes the pixel layout, as string
-(e.g. "I420", "RGB", "YV12", "YUY2", "AYUV", etc.)</p></td>
-<td class="parameter_annotations"> </td>
-</tr></tbody>
-</table></div>
-</div>
 </div>
 <hr>
 <div class="refsect2">
@@ -2534,47 +1617,6 @@
                                <em class="parameter"><code>const <a class="link" href="gst-plugins-base-libs-gstvideo.html#GstVideoFormatInfo" title="struct GstVideoFormatInfo"><span class="type">GstVideoFormatInfo</span></a> *info</code></em>,
                                <em class="parameter"><code><a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#gint"><span class="type">gint</span></a> offset[GST_VIDEO_MAX_COMPONENTS]</code></em>,
                                <em class="parameter"><code><a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#gint"><span class="type">gint</span></a> scale[GST_VIDEO_MAX_COMPONENTS]</code></em>);</pre>
-<p>Compute the offset and scale values for each component of <em class="parameter"><code>info</code></em>
-. For each
-component, (c[i] - offset[i]) / scale[i] will scale the component c[i] to the
-range [0.0 .. 1.0].</p>
-<p>The reverse operation (c[i] * scale[i]) + offset[i] can be used to convert
-the component values in range [0.0 .. 1.0] back to their representation in
-<em class="parameter"><code>info</code></em>
- and <em class="parameter"><code>range</code></em>
-.</p>
-<div class="refsect3">
-<a name="gst-video-color-range-offsets.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>range</p></td>
-<td class="parameter_description"><p>a <a class="link" href="gst-plugins-base-libs-gstvideo.html#GstVideoColorRange" title="enum GstVideoColorRange"><span class="type">GstVideoColorRange</span></a></p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-<tr>
-<td class="parameter_name"><p>info</p></td>
-<td class="parameter_description"><p>a <a class="link" href="gst-plugins-base-libs-gstvideo.html#GstVideoFormatInfo" title="struct GstVideoFormatInfo"><span class="type">GstVideoFormatInfo</span></a></p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-<tr>
-<td class="parameter_name"><p>offset</p></td>
-<td class="parameter_description"><p> output offsets. </p></td>
-<td class="parameter_annotations"><span class="annotation">[<acronym title="Parameter for returning results. Default is transfer full."><span class="acronym">out</span></acronym>]</span></td>
-</tr>
-<tr>
-<td class="parameter_name"><p>scale</p></td>
-<td class="parameter_description"><p> output scale. </p></td>
-<td class="parameter_annotations"><span class="annotation">[<acronym title="Parameter for returning results. Default is transfer full."><span class="acronym">out</span></acronym>]</span></td>
-</tr>
-</tbody>
-</table></div>
-</div>
 </div>
 <hr>
 <div class="refsect2">
@@ -2583,93 +1625,6 @@
 gst_video_color_matrix_get_Kr_Kb (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstvideo.html#GstVideoColorMatrix" title="enum GstVideoColorMatrix"><span class="type">GstVideoColorMatrix</span></a> matrix</code></em>,
                                   <em class="parameter"><code><a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#gdouble"><span class="type">gdouble</span></a> *Kr</code></em>,
                                   <em class="parameter"><code><a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#gdouble"><span class="type">gdouble</span></a> *Kb</code></em>);</pre>
-<p>Get the coefficients used to convert between Y'PbPr and R'G'B' using <em class="parameter"><code>matrix</code></em>
-.</p>
-<p>When:</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</pre></td>
-        <td class="listing_code"><pre class="programlisting"><span class="number">0.0</span> <span class="gtkdoc opt">&lt;= [</span>Y<span class="string">',R'</span><span class="gtkdoc opt">,</span>G<span class="string">',B'</span><span class="gtkdoc opt">] &lt;=</span> <span class="number">1.0</span><span class="gtkdoc opt">)</span>
-<span class="gtkdoc opt">(-</span><span class="number">0.5</span> <span class="gtkdoc opt">&lt;= [</span>Pb<span class="gtkdoc opt">,</span>Pr<span class="gtkdoc opt">] &lt;=</span> <span class="number">0.5</span><span class="gtkdoc opt">)</span></pre></td>
-      </tr>
-    </tbody>
-  </table>
-</div>
-
-<p></p>
-<p>the general conversion is given by:</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</pre></td>
-        <td class="listing_code"><pre class="programlisting">Y<span class="string">' = Kr*R'</span> <span class="gtkdoc opt">+ (</span><span class="number">1</span><span class="gtkdoc opt">-</span>Kr<span class="gtkdoc opt">-</span>Kb<span class="gtkdoc opt">)*</span>G<span class="string">' + Kb*B'</span>
-Pb <span class="gtkdoc opt">= (</span>B<span class="string">'-Y'</span><span class="gtkdoc opt">)/(</span><span class="number">2</span><span class="gtkdoc opt">*(</span><span class="number">1</span><span class="gtkdoc opt">-</span>Kb<span class="gtkdoc opt">))</span>
-Pr <span class="gtkdoc opt">= (</span>R<span class="string">'-Y'</span><span class="gtkdoc opt">)/(</span><span class="number">2</span><span class="gtkdoc opt">*(</span><span class="number">1</span><span class="gtkdoc opt">-</span>Kr<span class="gtkdoc opt">))</span></pre></td>
-      </tr>
-    </tbody>
-  </table>
-</div>
-
-<p></p>
-<p>and the other way around:</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</pre></td>
-        <td class="listing_code"><pre class="programlisting">R<span class="string">' = Y'</span> <span class="gtkdoc opt">+</span> Cr<span class="gtkdoc opt">*</span><span class="number">2</span><span class="gtkdoc opt">*(</span><span class="number">1</span><span class="gtkdoc opt">-</span>Kr<span class="gtkdoc opt">)</span>
-G<span class="string">' = Y'</span> <span class="gtkdoc opt">-</span> Cb<span class="gtkdoc opt">*</span><span class="number">2</span><span class="gtkdoc opt">*(</span><span class="number">1</span><span class="gtkdoc opt">-</span>Kb<span class="gtkdoc opt">)*</span>Kb<span class="gtkdoc opt">/(</span><span class="number">1</span><span class="gtkdoc opt">-</span>Kr<span class="gtkdoc opt">-</span>Kb<span class="gtkdoc opt">) -</span> Cr<span class="gtkdoc opt">*</span><span class="number">2</span><span class="gtkdoc opt">*(</span><span class="number">1</span><span class="gtkdoc opt">-</span>Kr<span class="gtkdoc opt">)*</span>Kr<span class="gtkdoc opt">/(</span><span class="number">1</span><span class="gtkdoc opt">-</span>Kr<span class="gtkdoc opt">-</span>Kb<span class="gtkdoc opt">)</span>
-B<span class="string">' = Y'</span> <span class="gtkdoc opt">+</span> Cb<span class="gtkdoc opt">*</span><span class="number">2</span><span class="gtkdoc opt">*(</span><span class="number">1</span><span class="gtkdoc opt">-</span>Kb<span class="gtkdoc opt">)</span></pre></td>
-      </tr>
-    </tbody>
-  </table>
-</div>
-
-<p></p>
-<div class="refsect3">
-<a name="gst-video-color-matrix-get-Kr-Kb.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>matrix</p></td>
-<td class="parameter_description"><p>a <a class="link" href="gst-plugins-base-libs-gstvideo.html#GstVideoColorMatrix" title="enum GstVideoColorMatrix"><span class="type">GstVideoColorMatrix</span></a></p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-<tr>
-<td class="parameter_name"><p>Kr</p></td>
-<td class="parameter_description"><p>result red channel coefficient</p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-<tr>
-<td class="parameter_name"><p>Kb</p></td>
-<td class="parameter_description"><p>result blue channel coefficient</p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-</tbody>
-</table></div>
-</div>
-<div class="refsect3">
-<a name="gst-video-color-matrix-get-Kr-Kb.returns"></a><h4>Returns</h4>
-<p> TRUE if <em class="parameter"><code>matrix</code></em>
-was a YUV color format and <em class="parameter"><code>Kr</code></em>
-and <em class="parameter"><code>Kb</code></em>
-contain valid
-values.</p>
-</div>
-<p class="since">Since: 1.6</p>
 </div>
 <hr>
 <div class="refsect2">
@@ -2677,55 +1632,6 @@
 <pre class="programlisting"><a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#gdouble"><span class="returnvalue">gdouble</span></a>
 gst_video_color_transfer_decode (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstvideo.html#GstVideoTransferFunction" title="enum GstVideoTransferFunction"><span class="type">GstVideoTransferFunction</span></a> func</code></em>,
                                  <em class="parameter"><code><a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#gdouble"><span class="type">gdouble</span></a> val</code></em>);</pre>
-<p>Convert <em class="parameter"><code>val</code></em>
- to its gamma decoded value. This is the inverse operation of
-<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstvideo.html#gst-video-color-transfer-encode" title="gst_video_color_transfer_encode ()"><code class="function">gst_video_color_transfer_encode()</code></a></code></em>
-.</p>
-<p>For a non-linear value L' in the range [0..1], conversion to the linear
-L is in general performed with a power function like:</p>
-<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">L <span class="gtkdoc opt">=</span> L<span class="string">' ^ gamma</span></pre></td>
-      </tr>
-    </tbody>
-  </table>
-</div>
-
-<p></p>
-<p>Depending on <em class="parameter"><code>func</code></em>
-, different formulas might be applied. Some formulas
-encode a linear segment in the lower range.</p>
-<div class="refsect3">
-<a name="gst-video-color-transfer-decode.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>func</p></td>
-<td class="parameter_description"><p>a <a class="link" href="gst-plugins-base-libs-gstvideo.html#GstVideoTransferFunction" title="enum GstVideoTransferFunction"><span class="type">GstVideoTransferFunction</span></a></p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-<tr>
-<td class="parameter_name"><p>val</p></td>
-<td class="parameter_description"><p>a value</p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-</tbody>
-</table></div>
-</div>
-<div class="refsect3">
-<a name="gst-video-color-transfer-decode.returns"></a><h4>Returns</h4>
-<p> the gamme decoded value of <em class="parameter"><code>val</code></em>
-</p>
-</div>
-<p class="since">Since: 1.6</p>
 </div>
 <hr>
 <div class="refsect2">
@@ -2733,53 +1639,6 @@
 <pre class="programlisting"><a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#gdouble"><span class="returnvalue">gdouble</span></a>
 gst_video_color_transfer_encode (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstvideo.html#GstVideoTransferFunction" title="enum GstVideoTransferFunction"><span class="type">GstVideoTransferFunction</span></a> func</code></em>,
                                  <em class="parameter"><code><a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#gdouble"><span class="type">gdouble</span></a> val</code></em>);</pre>
-<p>Convert <em class="parameter"><code>val</code></em>
- to its gamma encoded value.</p>
-<p>For a linear value L in the range [0..1], conversion to the non-linear
-(gamma encoded) L' is in general performed with a power function like:</p>
-<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">L<span class="string">' = L ^ (1 / gamma)</span></pre></td>
-      </tr>
-    </tbody>
-  </table>
-</div>
-
-<p></p>
-<p>Depending on <em class="parameter"><code>func</code></em>
-, different formulas might be applied. Some formulas
-encode a linear segment in the lower range.</p>
-<div class="refsect3">
-<a name="gst-video-color-transfer-encode.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>func</p></td>
-<td class="parameter_description"><p>a <a class="link" href="gst-plugins-base-libs-gstvideo.html#GstVideoTransferFunction" title="enum GstVideoTransferFunction"><span class="type">GstVideoTransferFunction</span></a></p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-<tr>
-<td class="parameter_name"><p>val</p></td>
-<td class="parameter_description"><p>a value</p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-</tbody>
-</table></div>
-</div>
-<div class="refsect3">
-<a name="gst-video-color-transfer-encode.returns"></a><h4>Returns</h4>
-<p> the gamme encoded value of <em class="parameter"><code>val</code></em>
-</p>
-</div>
-<p class="since">Since: 1.6</p>
 </div>
 <hr>
 <div class="refsect2">
@@ -2787,39 +1646,6 @@
 <pre class="programlisting"><a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
 gst_video_colorimetry_matches (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstvideo.html#GstVideoColorimetry" title="GstVideoColorimetry"><span class="type">GstVideoColorimetry</span></a> *cinfo</code></em>,
                                <em class="parameter"><code>const <a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *color</code></em>);</pre>
-<p>Check if the colorimetry information in <em class="parameter"><code>info</code></em>
- matches that of the
-string <em class="parameter"><code>color</code></em>
-.</p>
-<div class="refsect3">
-<a name="gst-video-colorimetry-matches.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>cinfo</p></td>
-<td class="parameter_description"><p>a <a class="link" href="gst-plugins-base-libs-gstvideo.html#GstVideoInfo" title="struct GstVideoInfo"><span class="type">GstVideoInfo</span></a></p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-<tr>
-<td class="parameter_name"><p>color</p></td>
-<td class="parameter_description"><p>a colorimetry string</p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-</tbody>
-</table></div>
-</div>
-<div class="refsect3">
-<a name="gst-video-colorimetry-matches.returns"></a><h4>Returns</h4>
-<p> <a href="/usr/share/gtk-doc/html/glibglib-Standard-Macros.html#TRUE:CAPS"><span class="type">TRUE</span></a> if <em class="parameter"><code>color</code></em>
-conveys the same colorimetry info as the color
-information in <em class="parameter"><code>info</code></em>
-.</p>
-</div>
 </div>
 <hr>
 <div class="refsect2">
@@ -2827,36 +1653,6 @@
 <pre class="programlisting"><a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
 gst_video_colorimetry_is_equal (<em class="parameter"><code>const <a class="link" href="gst-plugins-base-libs-gstvideo.html#GstVideoColorimetry" title="GstVideoColorimetry"><span class="type">GstVideoColorimetry</span></a> *cinfo</code></em>,
                                 <em class="parameter"><code>const <a class="link" href="gst-plugins-base-libs-gstvideo.html#GstVideoColorimetry" title="GstVideoColorimetry"><span class="type">GstVideoColorimetry</span></a> *other</code></em>);</pre>
-<p>Compare the 2 colorimetry sets for equality</p>
-<div class="refsect3">
-<a name="gst-video-colorimetry-is-equal.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>cinfo</p></td>
-<td class="parameter_description"><p>a <a class="link" href="gst-plugins-base-libs-gstvideo.html#GstVideoColorimetry" title="GstVideoColorimetry"><span class="type">GstVideoColorimetry</span></a></p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-<tr>
-<td class="parameter_name"><p>other</p></td>
-<td class="parameter_description"><p>another <a class="link" href="gst-plugins-base-libs-gstvideo.html#GstVideoColorimetry" title="GstVideoColorimetry"><span class="type">GstVideoColorimetry</span></a></p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-</tbody>
-</table></div>
-</div>
-<div class="refsect3">
-<a name="gst-video-colorimetry-is-equal.returns"></a><h4>Returns</h4>
-<p> <a href="/usr/share/gtk-doc/html/glibglib-Standard-Macros.html#TRUE:CAPS"><span class="type">TRUE</span></a> if <em class="parameter"><code>cinfo</code></em>
-and <em class="parameter"><code>other</code></em>
-are equal.</p>
-</div>
-<p class="since">Since: 1.6</p>
 </div>
 <hr>
 <div class="refsect2">
@@ -2864,64 +1660,12 @@
 <pre class="programlisting"><a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
 gst_video_colorimetry_from_string (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstvideo.html#GstVideoColorimetry" title="GstVideoColorimetry"><span class="type">GstVideoColorimetry</span></a> *cinfo</code></em>,
                                    <em class="parameter"><code>const <a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *color</code></em>);</pre>
-<p>Parse the colorimetry string and update <em class="parameter"><code>cinfo</code></em>
- with the parsed
-values.</p>
-<div class="refsect3">
-<a name="gst-video-colorimetry-from-string.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>cinfo</p></td>
-<td class="parameter_description"><p>a <a class="link" href="gst-plugins-base-libs-gstvideo.html#GstVideoColorimetry" title="GstVideoColorimetry"><span class="type">GstVideoColorimetry</span></a></p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-<tr>
-<td class="parameter_name"><p>color</p></td>
-<td class="parameter_description"><p>a colorimetry string</p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-</tbody>
-</table></div>
-</div>
-<div class="refsect3">
-<a name="gst-video-colorimetry-from-string.returns"></a><h4>Returns</h4>
-<p> <a href="/usr/share/gtk-doc/html/glibglib-Standard-Macros.html#TRUE:CAPS"><span class="type">TRUE</span></a> if <em class="parameter"><code>color</code></em>
-points to valid colorimetry info.</p>
-</div>
 </div>
 <hr>
 <div class="refsect2">
 <a name="gst-video-colorimetry-to-string"></a><h3>gst_video_colorimetry_to_string ()</h3>
 <pre class="programlisting"><a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> *
 gst_video_colorimetry_to_string (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstvideo.html#GstVideoColorimetry" title="GstVideoColorimetry"><span class="type">GstVideoColorimetry</span></a> *cinfo</code></em>);</pre>
-<p>Make a string representation of <em class="parameter"><code>cinfo</code></em>
-.</p>
-<div class="refsect3">
-<a name="gst-video-colorimetry-to-string.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>cinfo</p></td>
-<td class="parameter_description"><p>a <a class="link" href="gst-plugins-base-libs-gstvideo.html#GstVideoColorimetry" title="GstVideoColorimetry"><span class="type">GstVideoColorimetry</span></a></p></td>
-<td class="parameter_annotations"> </td>
-</tr></tbody>
-</table></div>
-</div>
-<div class="refsect3">
-<a name="gst-video-colorimetry-to-string.returns"></a><h4>Returns</h4>
-<p> a string representation of <em class="parameter"><code>cinfo</code></em>
-.</p>
-</div>
 </div>
 <hr>
 <div class="refsect2">
@@ -3150,87 +1894,24 @@
 <a name="gst-video-info-init"></a><h3>gst_video_info_init ()</h3>
 <pre class="programlisting"><span class="returnvalue">void</span>
 gst_video_info_init (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstvideo.html#GstVideoInfo" title="struct GstVideoInfo"><span class="type">GstVideoInfo</span></a> *info</code></em>);</pre>
-<p>Initialize <em class="parameter"><code>info</code></em>
- with default values.</p>
-<div class="refsect3">
-<a name="gst-video-info-init.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>info</p></td>
-<td class="parameter_description"><p>a <a class="link" href="gst-plugins-base-libs-gstvideo.html#GstVideoInfo" title="struct GstVideoInfo"><span class="type">GstVideoInfo</span></a></p></td>
-<td class="parameter_annotations"> </td>
-</tr></tbody>
-</table></div>
-</div>
 </div>
 <hr>
 <div class="refsect2">
 <a name="gst-video-info-new"></a><h3>gst_video_info_new ()</h3>
 <pre class="programlisting"><a class="link" href="gst-plugins-base-libs-gstvideo.html#GstVideoInfo" title="struct GstVideoInfo"><span class="returnvalue">GstVideoInfo</span></a> *
 gst_video_info_new (<em class="parameter"><code><span class="type">void</span></code></em>);</pre>
-<p>Allocate a new <a class="link" href="gst-plugins-base-libs-gstvideo.html#GstVideoInfo" title="struct GstVideoInfo"><span class="type">GstVideoInfo</span></a> that is also initialized with
-<a class="link" href="gst-plugins-base-libs-gstvideo.html#gst-video-info-init" title="gst_video_info_init ()"><code class="function">gst_video_info_init()</code></a>.</p>
-<div class="refsect3">
-<a name="gst-video-info-new.returns"></a><h4>Returns</h4>
-<p> a new <a class="link" href="gst-plugins-base-libs-gstvideo.html#GstVideoInfo" title="struct GstVideoInfo"><span class="type">GstVideoInfo</span></a>. free with <a class="link" href="gst-plugins-base-libs-gstvideo.html#gst-video-info-free" title="gst_video_info_free ()"><code class="function">gst_video_info_free()</code></a>.</p>
-</div>
-<p class="since">Since: 1.6</p>
 </div>
 <hr>
 <div class="refsect2">
 <a name="gst-video-info-copy"></a><h3>gst_video_info_copy ()</h3>
 <pre class="programlisting"><a class="link" href="gst-plugins-base-libs-gstvideo.html#GstVideoInfo" title="struct GstVideoInfo"><span class="returnvalue">GstVideoInfo</span></a> *
 gst_video_info_copy (<em class="parameter"><code>const <a class="link" href="gst-plugins-base-libs-gstvideo.html#GstVideoInfo" title="struct GstVideoInfo"><span class="type">GstVideoInfo</span></a> *info</code></em>);</pre>
-<p>Copy a GstVideoInfo structure.</p>
-<div class="refsect3">
-<a name="gst-video-info-copy.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>info</p></td>
-<td class="parameter_description"><p>a <a class="link" href="gst-plugins-base-libs-gstvideo.html#GstVideoInfo" title="struct GstVideoInfo"><span class="type">GstVideoInfo</span></a></p></td>
-<td class="parameter_annotations"> </td>
-</tr></tbody>
-</table></div>
-</div>
-<div class="refsect3">
-<a name="gst-video-info-copy.returns"></a><h4>Returns</h4>
-<p> a new <a class="link" href="gst-plugins-base-libs-gstvideo.html#GstVideoInfo" title="struct GstVideoInfo"><span class="type">GstVideoInfo</span></a>. free with gst_video_info_free.</p>
-</div>
-<p class="since">Since: 1.6</p>
 </div>
 <hr>
 <div class="refsect2">
 <a name="gst-video-info-free"></a><h3>gst_video_info_free ()</h3>
 <pre class="programlisting"><span class="returnvalue">void</span>
 gst_video_info_free (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstvideo.html#GstVideoInfo" title="struct GstVideoInfo"><span class="type">GstVideoInfo</span></a> *info</code></em>);</pre>
-<p>Free a GstVideoInfo structure previously allocated with <a class="link" href="gst-plugins-base-libs-gstvideo.html#gst-video-info-new" title="gst_video_info_new ()"><code class="function">gst_video_info_new()</code></a>
-or <a class="link" href="gst-plugins-base-libs-gstvideo.html#gst-video-info-copy" title="gst_video_info_copy ()"><code class="function">gst_video_info_copy()</code></a>.</p>
-<div class="refsect3">
-<a name="gst-video-info-free.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>info</p></td>
-<td class="parameter_description"><p>a <a class="link" href="gst-plugins-base-libs-gstvideo.html#GstVideoInfo" title="struct GstVideoInfo"><span class="type">GstVideoInfo</span></a></p></td>
-<td class="parameter_annotations"> </td>
-</tr></tbody>
-</table></div>
-</div>
-<p class="since">Since: 1.6</p>
 </div>
 <hr>
 <div class="refsect2">
@@ -3240,46 +1921,6 @@
                            <em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstvideo.html#GstVideoFormat" title="enum GstVideoFormat"><span class="type">GstVideoFormat</span></a> format</code></em>,
                            <em class="parameter"><code><a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#guint"><span class="type">guint</span></a> width</code></em>,
                            <em class="parameter"><code><a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#guint"><span class="type">guint</span></a> height</code></em>);</pre>
-<p>Set the default info for a video frame of <em class="parameter"><code>format</code></em>
- and <em class="parameter"><code>width</code></em>
- and <em class="parameter"><code>height</code></em>
-.</p>
-<p>Note: This initializes <em class="parameter"><code>info</code></em>
- first, no values are preserved. This function
-does not set the offsets correctly for interlaced vertically
-subsampled formats.</p>
-<div class="refsect3">
-<a name="gst-video-info-set-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>info</p></td>
-<td class="parameter_description"><p>a <a class="link" href="gst-plugins-base-libs-gstvideo.html#GstVideoInfo" title="struct GstVideoInfo"><span class="type">GstVideoInfo</span></a></p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-<tr>
-<td class="parameter_name"><p>format</p></td>
-<td class="parameter_description"><p>the format</p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-<tr>
-<td class="parameter_name"><p>width</p></td>
-<td class="parameter_description"><p>a width</p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-<tr>
-<td class="parameter_name"><p>height</p></td>
-<td class="parameter_description"><p>a height</p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-</tbody>
-</table></div>
-</div>
 </div>
 <hr>
 <div class="refsect2">
@@ -3287,64 +1928,12 @@
 <pre class="programlisting"><a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
 gst_video_info_from_caps (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstvideo.html#GstVideoInfo" title="struct GstVideoInfo"><span class="type">GstVideoInfo</span></a> *info</code></em>,
                           <em class="parameter"><code>const <a href="/usr/share/gtk-doc/html/gstreamer-1.0GstCaps.html#GstCaps-struct"><span class="type">GstCaps</span></a> *caps</code></em>);</pre>
-<p>Parse <em class="parameter"><code>caps</code></em>
- and update <em class="parameter"><code>info</code></em>
-.</p>
-<div class="refsect3">
-<a name="gst-video-info-from-caps.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>info</p></td>
-<td class="parameter_description"><p>a <a class="link" href="gst-plugins-base-libs-gstvideo.html#GstVideoInfo" title="struct GstVideoInfo"><span class="type">GstVideoInfo</span></a></p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-<tr>
-<td class="parameter_name"><p>caps</p></td>
-<td class="parameter_description"><p>a <a href="/usr/share/gtk-doc/html/gstreamer-1.0GstCaps.html#GstCaps-struct"><span class="type">GstCaps</span></a></p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-</tbody>
-</table></div>
-</div>
-<div class="refsect3">
-<a name="gst-video-info-from-caps.returns"></a><h4>Returns</h4>
-<p> TRUE if <em class="parameter"><code>caps</code></em>
-could be parsed</p>
-</div>
 </div>
 <hr>
 <div class="refsect2">
 <a name="gst-video-info-to-caps"></a><h3>gst_video_info_to_caps ()</h3>
 <pre class="programlisting"><a href="/usr/share/gtk-doc/html/gstreamer-1.0GstCaps.html#GstCaps-struct"><span class="returnvalue">GstCaps</span></a> *
 gst_video_info_to_caps (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstvideo.html#GstVideoInfo" title="struct GstVideoInfo"><span class="type">GstVideoInfo</span></a> *info</code></em>);</pre>
-<p>Convert the values of <em class="parameter"><code>info</code></em>
- into a <a href="/usr/share/gtk-doc/html/gstreamer-1.0GstCaps.html#GstCaps-struct"><span class="type">GstCaps</span></a>.</p>
-<div class="refsect3">
-<a name="gst-video-info-to-caps.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>info</p></td>
-<td class="parameter_description"><p>a <a class="link" href="gst-plugins-base-libs-gstvideo.html#GstVideoInfo" title="struct GstVideoInfo"><span class="type">GstVideoInfo</span></a></p></td>
-<td class="parameter_annotations"> </td>
-</tr></tbody>
-</table></div>
-</div>
-<div class="refsect3">
-<a name="gst-video-info-to-caps.returns"></a><h4>Returns</h4>
-<p> a new <a href="/usr/share/gtk-doc/html/gstreamer-1.0GstCaps.html#GstCaps-struct"><span class="type">GstCaps</span></a> containing the info of <em class="parameter"><code>info</code></em>
-.</p>
-</div>
 </div>
 <hr>
 <div class="refsect2">
@@ -3355,53 +1944,6 @@
                         <em class="parameter"><code><a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#gint64"><span class="type">gint64</span></a> src_value</code></em>,
                         <em class="parameter"><code><a href="/usr/share/gtk-doc/html/gstreamer-1.0gstreamer-GstFormat.html#GstFormat"><span class="type">GstFormat</span></a> dest_format</code></em>,
                         <em class="parameter"><code><a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#gint64"><span class="type">gint64</span></a> *dest_value</code></em>);</pre>
-<p>Converts among various <a href="/usr/share/gtk-doc/html/gstreamer-1.0gstreamer-GstFormat.html#GstFormat"><span class="type">GstFormat</span></a> types.  This function handles
-GST_FORMAT_BYTES, GST_FORMAT_TIME, and GST_FORMAT_DEFAULT.  For
-raw video, GST_FORMAT_DEFAULT corresponds to video frames.  This
-function can be used to handle pad queries of the type GST_QUERY_CONVERT.</p>
-<div class="refsect3">
-<a name="gst-video-info-convert.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>info</p></td>
-<td class="parameter_description"><p>a <a class="link" href="gst-plugins-base-libs-gstvideo.html#GstVideoInfo" title="struct GstVideoInfo"><span class="type">GstVideoInfo</span></a></p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-<tr>
-<td class="parameter_name"><p>src_format</p></td>
-<td class="parameter_description"><p><a href="/usr/share/gtk-doc/html/gstreamer-1.0gstreamer-GstFormat.html#GstFormat"><span class="type">GstFormat</span></a> of the <em class="parameter"><code>src_value</code></em>
-</p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-<tr>
-<td class="parameter_name"><p>src_value</p></td>
-<td class="parameter_description"><p>value to convert</p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-<tr>
-<td class="parameter_name"><p>dest_format</p></td>
-<td class="parameter_description"><p><a href="/usr/share/gtk-doc/html/gstreamer-1.0gstreamer-GstFormat.html#GstFormat"><span class="type">GstFormat</span></a> of the <em class="parameter"><code>dest_value</code></em>
-</p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-<tr>
-<td class="parameter_name"><p>dest_value</p></td>
-<td class="parameter_description"><p>pointer to destination value</p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-</tbody>
-</table></div>
-</div>
-<div class="refsect3">
-<a name="gst-video-info-convert.returns"></a><h4>Returns</h4>
-<p> TRUE if the conversion was successful.</p>
-</div>
 </div>
 <hr>
 <div class="refsect2">
@@ -3409,35 +1951,6 @@
 <pre class="programlisting"><a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
 gst_video_info_is_equal (<em class="parameter"><code>const <a class="link" href="gst-plugins-base-libs-gstvideo.html#GstVideoInfo" title="struct GstVideoInfo"><span class="type">GstVideoInfo</span></a> *info</code></em>,
                          <em class="parameter"><code>const <a class="link" href="gst-plugins-base-libs-gstvideo.html#GstVideoInfo" title="struct GstVideoInfo"><span class="type">GstVideoInfo</span></a> *other</code></em>);</pre>
-<p>Compares two <a class="link" href="gst-plugins-base-libs-gstvideo.html#GstVideoInfo" title="struct GstVideoInfo"><span class="type">GstVideoInfo</span></a> and returns whether they are equal or not</p>
-<div class="refsect3">
-<a name="gst-video-info-is-equal.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>info</p></td>
-<td class="parameter_description"><p>a <a class="link" href="gst-plugins-base-libs-gstvideo.html#GstVideoInfo" title="struct GstVideoInfo"><span class="type">GstVideoInfo</span></a></p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-<tr>
-<td class="parameter_name"><p>other</p></td>
-<td class="parameter_description"><p>a <a class="link" href="gst-plugins-base-libs-gstvideo.html#GstVideoInfo" title="struct GstVideoInfo"><span class="type">GstVideoInfo</span></a></p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-</tbody>
-</table></div>
-</div>
-<div class="refsect3">
-<a name="gst-video-info-is-equal.returns"></a><h4>Returns</h4>
-<p> <a href="/usr/share/gtk-doc/html/glibglib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a> if <em class="parameter"><code>info</code></em>
-and <em class="parameter"><code>other</code></em>
-are equal, else <a href="/usr/share/gtk-doc/html/glibglib-Standard-Macros.html#FALSE:CAPS"><code class="literal">FALSE</code></a>.</p>
-</div>
 </div>
 <hr>
 <div class="refsect2">
@@ -3445,35 +1958,6 @@
 <pre class="programlisting"><span class="returnvalue">void</span>
 gst_video_info_align (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstvideo.html#GstVideoInfo" title="struct GstVideoInfo"><span class="type">GstVideoInfo</span></a> *info</code></em>,
                       <em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstvideo.html#GstVideoAlignment" title="struct GstVideoAlignment"><span class="type">GstVideoAlignment</span></a> *align</code></em>);</pre>
-<p>Adjust the offset and stride fields in <em class="parameter"><code>info</code></em>
- so that the padding and
-stride alignment in <em class="parameter"><code>align</code></em>
- is respected.</p>
-<p>Extra padding will be added to the right side when stride alignment padding
-is required and <em class="parameter"><code>align</code></em>
- will be updated with the new padding values.</p>
-<div class="refsect3">
-<a name="gst-video-info-align.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>info</p></td>
-<td class="parameter_description"><p>a <a class="link" href="gst-plugins-base-libs-gstvideo.html#GstVideoInfo" title="struct GstVideoInfo"><span class="type">GstVideoInfo</span></a></p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-<tr>
-<td class="parameter_name"><p>align</p></td>
-<td class="parameter_description"><p>alignment parameters</p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-</tbody>
-</table></div>
-</div>
 </div>
 <hr>
 <div class="refsect2">
@@ -3484,61 +1968,6 @@
                         <em class="parameter"><code><a href="/usr/share/gtk-doc/html/gstreamer-1.0GstBuffer.html#GstBuffer-struct"><span class="type">GstBuffer</span></a> *buffer</code></em>,
                         <em class="parameter"><code><a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#gint"><span class="type">gint</span></a> id</code></em>,
                         <em class="parameter"><code><a href="/usr/share/gtk-doc/html/gstreamer-1.0GstMemory.html#GstMapFlags"><span class="type">GstMapFlags</span></a> flags</code></em>);</pre>
-<p>Use <em class="parameter"><code>info</code></em>
- and <em class="parameter"><code>buffer</code></em>
- to fill in the values of <em class="parameter"><code>frame</code></em>
- with the video frame
-information of frame <em class="parameter"><code>id</code></em>
-.</p>
-<p>When <em class="parameter"><code>id</code></em>
- is -1, the default frame is mapped. When <em class="parameter"><code>id</code></em>
- != -1, this function
-will return <a href="/usr/share/gtk-doc/html/glibglib-Standard-Macros.html#FALSE:CAPS"><code class="literal">FALSE</code></a> when there is no GstVideoMeta with that id.</p>
-<p>All video planes of <em class="parameter"><code>buffer</code></em>
- will be mapped and the pointers will be set in
-<em class="parameter"><code>frame-&gt;data</code></em>
-.</p>
-<div class="refsect3">
-<a name="gst-video-frame-map-id.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>frame</p></td>
-<td class="parameter_description"><p>pointer to <a class="link" href="gst-plugins-base-libs-gstvideo.html#GstVideoFrame" title="struct GstVideoFrame"><span class="type">GstVideoFrame</span></a></p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-<tr>
-<td class="parameter_name"><p>info</p></td>
-<td class="parameter_description"><p>a <a class="link" href="gst-plugins-base-libs-gstvideo.html#GstVideoInfo" title="struct GstVideoInfo"><span class="type">GstVideoInfo</span></a></p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-<tr>
-<td class="parameter_name"><p>buffer</p></td>
-<td class="parameter_description"><p>the buffer to map</p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-<tr>
-<td class="parameter_name"><p>id</p></td>
-<td class="parameter_description"><p>the frame id to map</p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-<tr>
-<td class="parameter_name"><p>flags</p></td>
-<td class="parameter_description"><p><a href="/usr/share/gtk-doc/html/gstreamer-1.0GstMemory.html#GstMapFlags"><span class="type">GstMapFlags</span></a></p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-</tbody>
-</table></div>
-</div>
-<div class="refsect3">
-<a name="gst-video-frame-map-id.returns"></a><h4>Returns</h4>
-<p> <a href="/usr/share/gtk-doc/html/glibglib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a> on success.</p>
-</div>
 </div>
 <hr>
 <div class="refsect2">
@@ -3548,133 +1977,12 @@
                      <em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstvideo.html#GstVideoInfo" title="struct GstVideoInfo"><span class="type">GstVideoInfo</span></a> *info</code></em>,
                      <em class="parameter"><code><a href="/usr/share/gtk-doc/html/gstreamer-1.0GstBuffer.html#GstBuffer-struct"><span class="type">GstBuffer</span></a> *buffer</code></em>,
                      <em class="parameter"><code><a href="/usr/share/gtk-doc/html/gstreamer-1.0GstMemory.html#GstMapFlags"><span class="type">GstMapFlags</span></a> flags</code></em>);</pre>
-<p>Use <em class="parameter"><code>info</code></em>
- and <em class="parameter"><code>buffer</code></em>
- to fill in the values of <em class="parameter"><code>frame</code></em>
-. <em class="parameter"><code>frame</code></em>
- is usually
-allocated on the stack, and you will pass the address to the <a class="link" href="gst-plugins-base-libs-gstvideo.html#GstVideoFrame" title="struct GstVideoFrame"><span class="type">GstVideoFrame</span></a>
-structure allocated on the stack; <a class="link" href="gst-plugins-base-libs-gstvideo.html#gst-video-frame-map" title="gst_video_frame_map ()"><code class="function">gst_video_frame_map()</code></a> will then fill in
-the structures with the various video-specific information you need to access
-the pixels of the video buffer. You can then use accessor macros such as
-<a class="link" href="gst-plugins-base-libs-gstvideo.html#GST-VIDEO-FRAME-COMP-DATA:CAPS" title="GST_VIDEO_FRAME_COMP_DATA()"><code class="function">GST_VIDEO_FRAME_COMP_DATA()</code></a>, <a class="link" href="gst-plugins-base-libs-gstvideo.html#GST-VIDEO-FRAME-PLANE-DATA:CAPS" title="GST_VIDEO_FRAME_PLANE_DATA()"><code class="function">GST_VIDEO_FRAME_PLANE_DATA()</code></a>,
-<a class="link" href="gst-plugins-base-libs-gstvideo.html#GST-VIDEO-FRAME-COMP-STRIDE:CAPS" title="GST_VIDEO_FRAME_COMP_STRIDE()"><code class="function">GST_VIDEO_FRAME_COMP_STRIDE()</code></a>, <a class="link" href="gst-plugins-base-libs-gstvideo.html#GST-VIDEO-FRAME-PLANE-STRIDE:CAPS" title="GST_VIDEO_FRAME_PLANE_STRIDE()"><code class="function">GST_VIDEO_FRAME_PLANE_STRIDE()</code></a> etc.
-to get to the pixels.</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
-6
-7
-8
-9
-10
-11
-12
-13
-14
-15
-16
-17</pre></td>
-        <td class="listing_code"><pre class="programlisting">GstVideoFrame vframe<span class="gtkdoc opt">;</span>
-<span class="gtkdoc opt">...</span>
-<span class="gtkdoc slc">// set RGB pixels to black one at a time</span>
-<span class="keyword">if</span> <span class="gtkdoc opt">(</span><span class="function"><a href="gst-plugins-base-libs-gstvideo.html#gst-video-frame-map">gst_video_frame_map</a></span> <span class="gtkdoc opt">(&amp;</span>vframe<span class="gtkdoc opt">,</span> video_info<span class="gtkdoc opt">,</span> video_buffer<span class="gtkdoc opt">)) {</span>
-  guint8 <span class="gtkdoc opt">*</span>pixels <span class="gtkdoc opt">=</span> <span class="function"><a href="gst-plugins-base-libs-gstvideo.html#GST-VIDEO-FRAME-PLANE-DATA:CAPS">GST_VIDEO_FRAME_PLANE_DATA</a></span> <span class="gtkdoc opt">(</span>vframe<span class="gtkdoc opt">,</span> <span class="number">0</span><span class="gtkdoc opt">);</span>
-  guint stride <span class="gtkdoc opt">=</span> <span class="function"><a href="gst-plugins-base-libs-gstvideo.html#GST-VIDEO-FRAME-PLANE-STRIDE:CAPS">GST_VIDEO_FRAME_PLANE_STRIDE</a></span> <span class="gtkdoc opt">(</span>vframe<span class="gtkdoc opt">,</span> <span class="number">0</span><span class="gtkdoc opt">);</span>
-  guint pixel_stride <span class="gtkdoc opt">=</span> <span class="function">GST_VIDEO_FRAME_PLANE_PSTRIDE</span> <span class="gtkdoc opt">(</span>vframe<span class="gtkdoc opt">,</span> <span class="number">0</span><span class="gtkdoc opt">);</span>
-
-  <span class="keyword">for</span> <span class="gtkdoc opt">(</span>h <span class="gtkdoc opt">=</span> <span class="number">0</span><span class="gtkdoc opt">;</span> h <span class="gtkdoc opt">&lt;</span> height<span class="gtkdoc opt">; ++</span>h<span class="gtkdoc opt">) {</span>
-    <span class="keyword">for</span> <span class="gtkdoc opt">(</span>w <span class="gtkdoc opt">=</span> <span class="number">0</span><span class="gtkdoc opt">;</span> w <span class="gtkdoc opt">&lt;</span> width<span class="gtkdoc opt">; ++</span>w<span class="gtkdoc opt">) {</span>
-      guint8 <span class="gtkdoc opt">*</span>pixel <span class="gtkdoc opt">=</span> pixels <span class="gtkdoc opt">+</span> h <span class="gtkdoc opt">*</span> stride <span class="gtkdoc opt">+</span> w <span class="gtkdoc opt">*</span> pixel_stride<span class="gtkdoc opt">;</span>
-
-      <span class="function">memset</span> <span class="gtkdoc opt">(</span>pixel<span class="gtkdoc opt">,</span> <span class="number">0</span><span class="gtkdoc opt">,</span> pixel_stride<span class="gtkdoc opt">);</span>
-    <span class="gtkdoc opt">}</span>
-  <span class="gtkdoc opt">}</span>
-<span class="gtkdoc opt">}</span>
-<span class="gtkdoc opt">...</span></pre></td>
-      </tr>
-    </tbody>
-  </table>
-</div>
-
-<p></p>
-<p>All video planes of <em class="parameter"><code>buffer</code></em>
- will be mapped and the pointers will be set in
-<em class="parameter"><code>frame-&gt;data</code></em>
-.</p>
-<p>The purpose of this function is to make it easy for you to get to the video
-pixels in a generic way, without you having to worry too much about details
-such as whether the video data is allocated in one contiguous memory chunk
-or multiple memory chunks (e.g. one for each plane); or if custom strides
-and custom plane offsets are used or not (as signalled by GstVideoMeta on
-each buffer). This function will just fill the <a class="link" href="gst-plugins-base-libs-gstvideo.html#GstVideoFrame" title="struct GstVideoFrame"><span class="type">GstVideoFrame</span></a> structure
-with the right values and if you use the accessor macros everything will
-just work and you can access the data easily. It also maps the underlying
-memory chunks for you.</p>
-<div class="refsect3">
-<a name="gst-video-frame-map.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>frame</p></td>
-<td class="parameter_description"><p>pointer to <a class="link" href="gst-plugins-base-libs-gstvideo.html#GstVideoFrame" title="struct GstVideoFrame"><span class="type">GstVideoFrame</span></a></p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-<tr>
-<td class="parameter_name"><p>info</p></td>
-<td class="parameter_description"><p>a <a class="link" href="gst-plugins-base-libs-gstvideo.html#GstVideoInfo" title="struct GstVideoInfo"><span class="type">GstVideoInfo</span></a></p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-<tr>
-<td class="parameter_name"><p>buffer</p></td>
-<td class="parameter_description"><p>the buffer to map</p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-<tr>
-<td class="parameter_name"><p>flags</p></td>
-<td class="parameter_description"><p><a href="/usr/share/gtk-doc/html/gstreamer-1.0GstMemory.html#GstMapFlags"><span class="type">GstMapFlags</span></a></p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-</tbody>
-</table></div>
-</div>
-<div class="refsect3">
-<a name="gst-video-frame-map.returns"></a><h4>Returns</h4>
-<p> <a href="/usr/share/gtk-doc/html/glibglib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a> on success.</p>
-</div>
 </div>
 <hr>
 <div class="refsect2">
 <a name="gst-video-frame-unmap"></a><h3>gst_video_frame_unmap ()</h3>
 <pre class="programlisting"><span class="returnvalue">void</span>
 gst_video_frame_unmap (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstvideo.html#GstVideoFrame" title="struct GstVideoFrame"><span class="type">GstVideoFrame</span></a> *frame</code></em>);</pre>
-<p>Unmap the memory previously mapped with gst_video_frame_map.</p>
-<div class="refsect3">
-<a name="gst-video-frame-unmap.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>frame</p></td>
-<td class="parameter_description"><p>a <a class="link" href="gst-plugins-base-libs-gstvideo.html#GstVideoFrame" title="struct GstVideoFrame"><span class="type">GstVideoFrame</span></a></p></td>
-<td class="parameter_annotations"> </td>
-</tr></tbody>
-</table></div>
-</div>
 </div>
 <hr>
 <div class="refsect2">
@@ -3682,35 +1990,6 @@
 <pre class="programlisting"><a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
 gst_video_frame_copy (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstvideo.html#GstVideoFrame" title="struct GstVideoFrame"><span class="type">GstVideoFrame</span></a> *dest</code></em>,
                       <em class="parameter"><code>const <a class="link" href="gst-plugins-base-libs-gstvideo.html#GstVideoFrame" title="struct GstVideoFrame"><span class="type">GstVideoFrame</span></a> *src</code></em>);</pre>
-<p>Copy the contents from <em class="parameter"><code>src</code></em>
- to <em class="parameter"><code>dest</code></em>
-.</p>
-<div class="refsect3">
-<a name="gst-video-frame-copy.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>dest</p></td>
-<td class="parameter_description"><p>a <a class="link" href="gst-plugins-base-libs-gstvideo.html#GstVideoFrame" title="struct GstVideoFrame"><span class="type">GstVideoFrame</span></a></p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-<tr>
-<td class="parameter_name"><p>src</p></td>
-<td class="parameter_description"><p>a <a class="link" href="gst-plugins-base-libs-gstvideo.html#GstVideoFrame" title="struct GstVideoFrame"><span class="type">GstVideoFrame</span></a></p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-</tbody>
-</table></div>
-</div>
-<div class="refsect3">
-<a name="gst-video-frame-copy.returns"></a><h4>Returns</h4>
-<p> TRUE if the contents could be copied.</p>
-</div>
 </div>
 <hr>
 <div class="refsect2">
@@ -3719,41 +1998,6 @@
 gst_video_frame_copy_plane (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstvideo.html#GstVideoFrame" title="struct GstVideoFrame"><span class="type">GstVideoFrame</span></a> *dest</code></em>,
                             <em class="parameter"><code>const <a class="link" href="gst-plugins-base-libs-gstvideo.html#GstVideoFrame" title="struct GstVideoFrame"><span class="type">GstVideoFrame</span></a> *src</code></em>,
                             <em class="parameter"><code><a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#guint"><span class="type">guint</span></a> plane</code></em>);</pre>
-<p>Copy the plane with index <em class="parameter"><code>plane</code></em>
- from <em class="parameter"><code>src</code></em>
- to <em class="parameter"><code>dest</code></em>
-.</p>
-<div class="refsect3">
-<a name="gst-video-frame-copy-plane.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>dest</p></td>
-<td class="parameter_description"><p>a <a class="link" href="gst-plugins-base-libs-gstvideo.html#GstVideoFrame" title="struct GstVideoFrame"><span class="type">GstVideoFrame</span></a></p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-<tr>
-<td class="parameter_name"><p>src</p></td>
-<td class="parameter_description"><p>a <a class="link" href="gst-plugins-base-libs-gstvideo.html#GstVideoFrame" title="struct GstVideoFrame"><span class="type">GstVideoFrame</span></a></p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-<tr>
-<td class="parameter_name"><p>plane</p></td>
-<td class="parameter_description"><p>a plane</p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-</tbody>
-</table></div>
-</div>
-<div class="refsect3">
-<a name="gst-video-frame-copy-plane.returns"></a><h4>Returns</h4>
-<p> TRUE if the contents could be copied.</p>
-</div>
 </div>
 <hr>
 <div class="refsect2">
@@ -3908,207 +2152,40 @@
                           <em class="parameter"><code><a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#gint"><span class="type">gint</span></a> y</code></em>,
                           <em class="parameter"><code><a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#gint"><span class="type">gint</span></a> x_tiles</code></em>,
                           <em class="parameter"><code><a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#gint"><span class="type">gint</span></a> y_tiles</code></em>);</pre>
-<p>Get the tile index of the tile at coordinates <em class="parameter"><code>x</code></em>
- and <em class="parameter"><code>y</code></em>
- in the tiled
-image of <em class="parameter"><code>x_tiles</code></em>
- by <em class="parameter"><code>y_tiles</code></em>
-.</p>
-<p>Use this method when <em class="parameter"><code>mode</code></em>
- is of type <code class="literal">GST_VIDEO_TILE_MODE_INDEXED</code>.</p>
-<div class="refsect3">
-<a name="gst-video-tile-get-index.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>mode</p></td>
-<td class="parameter_description"><p>a <a class="link" href="gst-plugins-base-libs-gstvideo.html#GstVideoTileMode" title="enum GstVideoTileMode"><span class="type">GstVideoTileMode</span></a></p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-<tr>
-<td class="parameter_name"><p>x</p></td>
-<td class="parameter_description"><p>x coordinate</p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-<tr>
-<td class="parameter_name"><p>y</p></td>
-<td class="parameter_description"><p>y coordinate</p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-<tr>
-<td class="parameter_name"><p>x_tiles</p></td>
-<td class="parameter_description"><p>number of horizintal tiles</p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-<tr>
-<td class="parameter_name"><p>y_tiles</p></td>
-<td class="parameter_description"><p>number of vertical tiles</p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-</tbody>
-</table></div>
-</div>
-<div class="refsect3">
-<a name="gst-video-tile-get-index.returns"></a><h4>Returns</h4>
-<p> the index of the tile at <em class="parameter"><code>x</code></em>
-and <em class="parameter"><code>y</code></em>
-in the tiled image of
-<em class="parameter"><code>x_tiles</code></em>
-by <em class="parameter"><code>y_tiles</code></em>
-.</p>
-</div>
-<p class="since">Since: 1.4</p>
 </div>
 <hr>
 <div class="refsect2">
 <a name="GST-VIDEO-TILE-MAKE-MODE:CAPS"></a><h3>GST_VIDEO_TILE_MAKE_MODE()</h3>
 <pre class="programlisting">#define             GST_VIDEO_TILE_MAKE_MODE(num, type)</pre>
-<p>use this macro to create new tile modes.</p>
-<div class="refsect3">
-<a name="GST-VIDEO-TILE-MAKE-MODE.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>num</p></td>
-<td class="parameter_description"><p>the mode number to create</p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-<tr>
-<td class="parameter_name"><p>type</p></td>
-<td class="parameter_description"><p>the tile mode type</p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-</tbody>
-</table></div>
-</div>
 </div>
 <hr>
 <div class="refsect2">
 <a name="GST-VIDEO-TILE-MODE-TYPE:CAPS"></a><h3>GST_VIDEO_TILE_MODE_TYPE()</h3>
 <pre class="programlisting">#define GST_VIDEO_TILE_MODE_TYPE(mode)       ((mode) &amp; GST_VIDEO_TILE_TYPE_MASK)
 </pre>
-<p>Get the tile mode type of <em class="parameter"><code>mode</code></em>
-</p>
-<div class="refsect3">
-<a name="GST-VIDEO-TILE-MODE-TYPE.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>mode</p></td>
-<td class="parameter_description"><p>the tile mode</p></td>
-<td class="parameter_annotations"> </td>
-</tr></tbody>
-</table></div>
-</div>
 </div>
 <hr>
 <div class="refsect2">
 <a name="GST-VIDEO-TILE-MODE-IS-INDEXED:CAPS"></a><h3>GST_VIDEO_TILE_MODE_IS_INDEXED()</h3>
 <pre class="programlisting">#define GST_VIDEO_TILE_MODE_IS_INDEXED(mode) (GST_VIDEO_TILE_MODE_TYPE(mode) == GST_VIDEO_TILE_TYPE_INDEXED)
 </pre>
-<p>Check if <em class="parameter"><code>mode</code></em>
- is an indexed tile type</p>
-<div class="refsect3">
-<a name="GST-VIDEO-TILE-MODE-IS-INDEXED.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>mode</p></td>
-<td class="parameter_description"><p>a tile mode</p></td>
-<td class="parameter_annotations"> </td>
-</tr></tbody>
-</table></div>
-</div>
 </div>
 <hr>
 <div class="refsect2">
 <a name="GST-VIDEO-TILE-MAKE-STRIDE:CAPS"></a><h3>GST_VIDEO_TILE_MAKE_STRIDE()</h3>
 <pre class="programlisting">#define             GST_VIDEO_TILE_MAKE_STRIDE(x_tiles, y_tiles)</pre>
-<p>Encode the number of tile in X and Y into the stride.</p>
-<div class="refsect3">
-<a name="GST-VIDEO-TILE-MAKE-STRIDE.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>x_tiles</p></td>
-<td class="parameter_description"><p>number of tiles in X</p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-<tr>
-<td class="parameter_name"><p>y_tiles</p></td>
-<td class="parameter_description"><p>number of tiles in Y</p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-</tbody>
-</table></div>
-</div>
 </div>
 <hr>
 <div class="refsect2">
 <a name="GST-VIDEO-TILE-X-TILES:CAPS"></a><h3>GST_VIDEO_TILE_X_TILES()</h3>
 <pre class="programlisting">#define GST_VIDEO_TILE_X_TILES(stride) ((stride) &amp; GST_VIDEO_TILE_X_TILES_MASK)
 </pre>
-<p>Extract the number of tiles in X from the stride value.</p>
-<div class="refsect3">
-<a name="GST-VIDEO-TILE-X-TILES.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>stride</p></td>
-<td class="parameter_description"><p>plane stride</p></td>
-<td class="parameter_annotations"> </td>
-</tr></tbody>
-</table></div>
-</div>
 </div>
 <hr>
 <div class="refsect2">
 <a name="GST-VIDEO-TILE-Y-TILES:CAPS"></a><h3>GST_VIDEO_TILE_Y_TILES()</h3>
 <pre class="programlisting">#define GST_VIDEO_TILE_Y_TILES(stride) ((stride) &gt;&gt; GST_VIDEO_TILE_Y_TILES_SHIFT)
 </pre>
-<p>Extract the number of tiles in Y from the stride value.</p>
-<div class="refsect3">
-<a name="GST-VIDEO-TILE-Y-TILES.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>stride</p></td>
-<td class="parameter_description"><p>plane stride</p></td>
-<td class="parameter_annotations"> </td>
-</tr></tbody>
-</table></div>
-</div>
 </div>
 <hr>
 <div class="refsect2">
@@ -4119,50 +2196,6 @@
                  <em class="parameter"><code><a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#gint"><span class="type">gint</span></a> x</code></em>,
                  <em class="parameter"><code><a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#gint"><span class="type">gint</span></a> y</code></em>,
                  <em class="parameter"><code><a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#gfloat"><span class="type">gfloat</span></a> global_alpha</code></em>);</pre>
-<p>Lets you blend the <em class="parameter"><code>src</code></em>
- image into the <em class="parameter"><code>dest</code></em>
- image</p>
-<div class="refsect3">
-<a name="gst-video-blend.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>dest</p></td>
-<td class="parameter_description"><p>The <a class="link" href="gst-plugins-base-libs-gstvideo.html#GstVideoFrame" title="struct GstVideoFrame"><span class="type">GstVideoFrame</span></a> where to blend <em class="parameter"><code>src</code></em>
-in</p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-<tr>
-<td class="parameter_name"><p>src</p></td>
-<td class="parameter_description"><p>the <a class="link" href="gst-plugins-base-libs-gstvideo.html#GstVideoFrame" title="struct GstVideoFrame"><span class="type">GstVideoFrame</span></a> that we want to blend into</p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-<tr>
-<td class="parameter_name"><p>x</p></td>
-<td class="parameter_description"><p>The x offset in pixel where the <em class="parameter"><code>src</code></em>
-image should be blended</p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-<tr>
-<td class="parameter_name"><p>y</p></td>
-<td class="parameter_description"><p>the y offset in pixel where the <em class="parameter"><code>src</code></em>
-image should be blended</p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-<tr>
-<td class="parameter_name"><p>global_alpha</p></td>
-<td class="parameter_description"><p>the global_alpha each per-pixel alpha value is multiplied
-with</p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-</tbody>
-</table></div>
-</div>
 </div>
 <hr>
 <div class="refsect2">
@@ -4174,58 +2207,6 @@
                                    <em class="parameter"><code><a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#gint"><span class="type">gint</span></a> dest_width</code></em>,
                                    <em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstvideo.html#GstVideoInfo" title="struct GstVideoInfo"><span class="type">GstVideoInfo</span></a> *dest</code></em>,
                                    <em class="parameter"><code><a href="/usr/share/gtk-doc/html/gstreamer-1.0GstBuffer.html#GstBuffer-struct"><span class="type">GstBuffer</span></a> **dest_buffer</code></em>);</pre>
-<p>Scales a buffer containing RGBA (or AYUV) video. This is an internal
-helper function which is used to scale subtitle overlays, and may be
-deprecated in the near future. Use <a class="link" href="gst-plugins-base-libs-GstVideoScaler.html#GstVideoScaler" title="GstVideoScaler"><span class="type">GstVideoScaler</span></a> to scale video buffers
-instead.</p>
-<div class="refsect3">
-<a name="gst-video-blend-scale-linear-RGBA.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>src</p></td>
-<td class="parameter_description"><p>the <a class="link" href="gst-plugins-base-libs-gstvideo.html#GstVideoInfo" title="struct GstVideoInfo"><span class="type">GstVideoInfo</span></a> describing the video data in <em class="parameter"><code>src_buffer</code></em>
-</p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-<tr>
-<td class="parameter_name"><p>src_buffer</p></td>
-<td class="parameter_description"><p>the source buffer containing video pixels to scale</p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-<tr>
-<td class="parameter_name"><p>dest_height</p></td>
-<td class="parameter_description"><p>the height in pixels to scale the video data in <em class="parameter"><code>src_buffer</code></em>
-to</p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-<tr>
-<td class="parameter_name"><p>dest_width</p></td>
-<td class="parameter_description"><p>the width in pixels to scale the video data in <em class="parameter"><code>src_buffer</code></em>
-to</p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-<tr>
-<td class="parameter_name"><p>dest</p></td>
-<td class="parameter_description"><p> pointer to a <a class="link" href="gst-plugins-base-libs-gstvideo.html#GstVideoInfo" title="struct GstVideoInfo"><span class="type">GstVideoInfo</span></a> structure that will be filled in
-with the details for <em class="parameter"><code>dest_buffer</code></em>
-. </p></td>
-<td class="parameter_annotations"><span class="annotation">[<acronym title="Parameter for returning results. Default is transfer full."><span class="acronym">out</span></acronym>]</span></td>
-</tr>
-<tr>
-<td class="parameter_name"><p>dest_buffer</p></td>
-<td class="parameter_description"><p> a pointer to a <a href="/usr/share/gtk-doc/html/gstreamer-1.0GstBuffer.html#GstBuffer-struct"><span class="type">GstBuffer</span></a> variable, which will be
-set to a newly-allocated buffer containing the scaled pixels. </p></td>
-<td class="parameter_annotations"><span class="annotation">[<acronym title="Parameter for returning results. Default is transfer full."><span class="acronym">out</span></acronym>]</span></td>
-</tr>
-</tbody>
-</table></div>
-</div>
 </div>
 <hr>
 <div class="refsect2">
@@ -4234,97 +2215,18 @@
 gst_video_converter_new (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstvideo.html#GstVideoInfo" title="struct GstVideoInfo"><span class="type">GstVideoInfo</span></a> *in_info</code></em>,
                          <em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstvideo.html#GstVideoInfo" title="struct GstVideoInfo"><span class="type">GstVideoInfo</span></a> *out_info</code></em>,
                          <em class="parameter"><code><a href="/usr/share/gtk-doc/html/gstreamer-1.0GstStructure.html#GstStructure-struct"><span class="type">GstStructure</span></a> *config</code></em>);</pre>
-<p>Create a new converter object to convert between <em class="parameter"><code>in_info</code></em>
- and <em class="parameter"><code>out_info</code></em>
-
-with <em class="parameter"><code>config</code></em>
-.</p>
-<p><span class="annotation">[<acronym title="Exposed in C code, not necessarily available in other languages."><span class="acronym">skip</span></acronym>]</span></p>
-<div class="refsect3">
-<a name="gst-video-converter-new.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>in_info</p></td>
-<td class="parameter_description"><p>a <a class="link" href="gst-plugins-base-libs-gstvideo.html#GstVideoInfo" title="struct GstVideoInfo"><span class="type">GstVideoInfo</span></a></p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-<tr>
-<td class="parameter_name"><p>out_info</p></td>
-<td class="parameter_description"><p>a <a class="link" href="gst-plugins-base-libs-gstvideo.html#GstVideoInfo" title="struct GstVideoInfo"><span class="type">GstVideoInfo</span></a></p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-<tr>
-<td class="parameter_name"><p>config</p></td>
-<td class="parameter_description"><p> a <a href="/usr/share/gtk-doc/html/gstreamer-1.0GstStructure.html#GstStructure-struct"><span class="type">GstStructure</span></a> with configuration options. </p></td>
-<td class="parameter_annotations"><span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>]</span></td>
-</tr>
-</tbody>
-</table></div>
-</div>
-<div class="refsect3">
-<a name="gst-video-converter-new.returns"></a><h4>Returns</h4>
-<p> a <a class="link" href="gst-plugins-base-libs-gstvideo.html#GstVideoConverter" title="GstVideoConverter"><span class="type">GstVideoConverter</span></a> or <a href="/usr/share/gtk-doc/html/glibglib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a> if conversion is not possible.</p>
-</div>
-<p class="since">Since: 1.6</p>
 </div>
 <hr>
 <div class="refsect2">
 <a name="gst-video-converter-free"></a><h3>gst_video_converter_free ()</h3>
 <pre class="programlisting"><span class="returnvalue">void</span>
 gst_video_converter_free (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstvideo.html#GstVideoConverter" title="GstVideoConverter"><span class="type">GstVideoConverter</span></a> *convert</code></em>);</pre>
-<p>Free <em class="parameter"><code>convert</code></em>
-</p>
-<div class="refsect3">
-<a name="gst-video-converter-free.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>convert</p></td>
-<td class="parameter_description"><p>a <a class="link" href="gst-plugins-base-libs-gstvideo.html#GstVideoConverter" title="GstVideoConverter"><span class="type">GstVideoConverter</span></a></p></td>
-<td class="parameter_annotations"> </td>
-</tr></tbody>
-</table></div>
-</div>
-<p class="since">Since: 1.6</p>
 </div>
 <hr>
 <div class="refsect2">
 <a name="gst-video-converter-get-config"></a><h3>gst_video_converter_get_config ()</h3>
 <pre class="programlisting">const <a href="/usr/share/gtk-doc/html/gstreamer-1.0GstStructure.html#GstStructure-struct"><span class="returnvalue">GstStructure</span></a> *
 gst_video_converter_get_config (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstvideo.html#GstVideoConverter" title="GstVideoConverter"><span class="type">GstVideoConverter</span></a> *convert</code></em>);</pre>
-<p>Get the current configuration of <em class="parameter"><code>convert</code></em>
-.</p>
-<div class="refsect3">
-<a name="gst-video-converter-get-config.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>convert</p></td>
-<td class="parameter_description"><p>a <a class="link" href="gst-plugins-base-libs-gstvideo.html#GstVideoConverter" title="GstVideoConverter"><span class="type">GstVideoConverter</span></a></p></td>
-<td class="parameter_annotations"> </td>
-</tr></tbody>
-</table></div>
-</div>
-<div class="refsect3">
-<a name="gst-video-converter-get-config.returns"></a><h4>Returns</h4>
-<p> a <a href="/usr/share/gtk-doc/html/gstreamer-1.0GstStructure.html#GstStructure-struct"><span class="type">GstStructure</span></a> that remains valid for as long as <em class="parameter"><code>convert</code></em>
-is valid
-or until <a class="link" href="gst-plugins-base-libs-gstvideo.html#gst-video-converter-set-config" title="gst_video_converter_set_config ()"><code class="function">gst_video_converter_set_config()</code></a> is called.</p>
-</div>
 </div>
 <hr>
 <div class="refsect2">
@@ -4332,43 +2234,6 @@
 <pre class="programlisting"><a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
 gst_video_converter_set_config (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstvideo.html#GstVideoConverter" title="GstVideoConverter"><span class="type">GstVideoConverter</span></a> *convert</code></em>,
                                 <em class="parameter"><code><a href="/usr/share/gtk-doc/html/gstreamer-1.0GstStructure.html#GstStructure-struct"><span class="type">GstStructure</span></a> *config</code></em>);</pre>
-<p>Set <em class="parameter"><code>config</code></em>
- as extra configuraion for <em class="parameter"><code>convert</code></em>
-.</p>
-<p>If the parameters in <em class="parameter"><code>config</code></em>
- can not be set exactly, this function returns
-<a href="/usr/share/gtk-doc/html/glibglib-Standard-Macros.html#FALSE:CAPS"><code class="literal">FALSE</code></a> and will try to update as much state as possible. The new state can
-then be retrieved and refined with <a class="link" href="gst-plugins-base-libs-gstvideo.html#gst-video-converter-get-config" title="gst_video_converter_get_config ()"><code class="function">gst_video_converter_get_config()</code></a>.</p>
-<p>Look at the <span class="type">GST_VIDEO_CONVERTER_OPT_</span>* fields to check valid configuration
-option and values.</p>
-<div class="refsect3">
-<a name="gst-video-converter-set-config.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>convert</p></td>
-<td class="parameter_description"><p>a <a class="link" href="gst-plugins-base-libs-gstvideo.html#GstVideoConverter" title="GstVideoConverter"><span class="type">GstVideoConverter</span></a></p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-<tr>
-<td class="parameter_name"><p>config</p></td>
-<td class="parameter_description"><p> a <a href="/usr/share/gtk-doc/html/gstreamer-1.0GstStructure.html#GstStructure-struct"><span class="type">GstStructure</span></a>. </p></td>
-<td class="parameter_annotations"><span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>]</span></td>
-</tr>
-</tbody>
-</table></div>
-</div>
-<div class="refsect3">
-<a name="gst-video-converter-set-config.returns"></a><h4>Returns</h4>
-<p> <a href="/usr/share/gtk-doc/html/glibglib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a> when <em class="parameter"><code>config</code></em>
-could be set.</p>
-</div>
-<p class="since">Since: 1.6</p>
 </div>
 <hr>
 <div class="refsect2">
@@ -4377,51 +2242,12 @@
 gst_video_converter_frame (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstvideo.html#GstVideoConverter" title="GstVideoConverter"><span class="type">GstVideoConverter</span></a> *convert</code></em>,
                            <em class="parameter"><code>const <a class="link" href="gst-plugins-base-libs-gstvideo.html#GstVideoFrame" title="struct GstVideoFrame"><span class="type">GstVideoFrame</span></a> *src</code></em>,
                            <em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstvideo.html#GstVideoFrame" title="struct GstVideoFrame"><span class="type">GstVideoFrame</span></a> *dest</code></em>);</pre>
-<p>Convert the pixels of <em class="parameter"><code>src</code></em>
- into <em class="parameter"><code>dest</code></em>
- using <em class="parameter"><code>convert</code></em>
-.</p>
-<div class="refsect3">
-<a name="gst-video-converter-frame.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>convert</p></td>
-<td class="parameter_description"><p>a <a class="link" href="gst-plugins-base-libs-gstvideo.html#GstVideoConverter" title="GstVideoConverter"><span class="type">GstVideoConverter</span></a></p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-<tr>
-<td class="parameter_name"><p>dest</p></td>
-<td class="parameter_description"><p>a <a class="link" href="gst-plugins-base-libs-gstvideo.html#GstVideoFrame" title="struct GstVideoFrame"><span class="type">GstVideoFrame</span></a></p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-<tr>
-<td class="parameter_name"><p>src</p></td>
-<td class="parameter_description"><p>a <a class="link" href="gst-plugins-base-libs-gstvideo.html#GstVideoFrame" title="struct GstVideoFrame"><span class="type">GstVideoFrame</span></a></p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-</tbody>
-</table></div>
-</div>
-<p class="since">Since: 1.6</p>
 </div>
 <hr>
 <div class="refsect2">
 <a name="gst-video-multiview-get-mono-modes"></a><h3>gst_video_multiview_get_mono_modes ()</h3>
 <pre class="programlisting">const <a href="/usr/share/gtk-doc/html/gobjectgobject-Generic-values.html#GValue"><span class="returnvalue">GValue</span></a> *
 gst_video_multiview_get_mono_modes (<em class="parameter"><code><span class="type">void</span></code></em>);</pre>
-<div class="refsect3">
-<a name="gst-video-multiview-get-mono-modes.returns"></a><h4>Returns</h4>
-<p> A const <a href="/usr/share/gtk-doc/html/gobjectgobject-Generic-values.html#GValue"><span class="type">GValue</span></a> containing a list of mono video modes</p>
-<p>Utility function that returns a <a href="/usr/share/gtk-doc/html/gobjectgobject-Generic-values.html#GValue"><span class="type">GValue</span></a> with a GstList of mono video
-modes (mono/left/right) for use in caps negotiations.</p>
-</div>
-<p class="since">Since: 1.6</p>
 </div>
 <hr>
 <div class="refsect2">
@@ -4429,14 +2255,6 @@
 <pre class="programlisting">const <a href="/usr/share/gtk-doc/html/gobjectgobject-Generic-values.html#GValue"><span class="returnvalue">GValue</span></a> *
 gst_video_multiview_get_unpacked_modes
                                (<em class="parameter"><code><span class="type">void</span></code></em>);</pre>
-<div class="refsect3">
-<a name="gst-video-multiview-get-unpacked-modes.returns"></a><h4>Returns</h4>
-<p> A const <a href="/usr/share/gtk-doc/html/gobjectgobject-Generic-values.html#GValue"><span class="type">GValue</span></a> containing a list of 'unpacked' stereo video modes</p>
-<p>Utility function that returns a <a href="/usr/share/gtk-doc/html/gobjectgobject-Generic-values.html#GValue"><span class="type">GValue</span></a> with a GstList of unpacked
-stereo video modes (separated/frame-by-frame/frame-by-frame-multiview)
-for use in caps negotiations.</p>
-</div>
-<p class="since">Since: 1.6</p>
 </div>
 <hr>
 <div class="refsect2">
@@ -4444,14 +2262,6 @@
 <pre class="programlisting">const <a href="/usr/share/gtk-doc/html/gobjectgobject-Generic-values.html#GValue"><span class="returnvalue">GValue</span></a> *
 gst_video_multiview_get_doubled_height_modes
                                (<em class="parameter"><code><span class="type">void</span></code></em>);</pre>
-<div class="refsect3">
-<a name="gst-video-multiview-get-doubled-height-modes.returns"></a><h4>Returns</h4>
-<p> A const <a href="/usr/share/gtk-doc/html/gobjectgobject-Generic-values.html#GValue"><span class="type">GValue</span></a> containing a list of stereo video modes</p>
-<p>Utility function that returns a <a href="/usr/share/gtk-doc/html/gobjectgobject-Generic-values.html#GValue"><span class="type">GValue</span></a> with a GstList of packed stereo
-video modes with double the height of a single view for use in
-caps negotiations. Currently this is top-bottom and row-interleaved.</p>
-</div>
-<p class="since">Since: 1.6</p>
 </div>
 <hr>
 <div class="refsect2">
@@ -4459,15 +2269,6 @@
 <pre class="programlisting">const <a href="/usr/share/gtk-doc/html/gobjectgobject-Generic-values.html#GValue"><span class="returnvalue">GValue</span></a> *
 gst_video_multiview_get_doubled_size_modes
                                (<em class="parameter"><code><span class="type">void</span></code></em>);</pre>
-<div class="refsect3">
-<a name="gst-video-multiview-get-doubled-size-modes.returns"></a><h4>Returns</h4>
-<p> A const <a href="/usr/share/gtk-doc/html/gobjectgobject-Generic-values.html#GValue"><span class="type">GValue</span></a> containing a list of stereo video modes</p>
-<p>Utility function that returns a <a href="/usr/share/gtk-doc/html/gobjectgobject-Generic-values.html#GValue"><span class="type">GValue</span></a> with a GstList of packed
-stereo video modes that have double the width/height of a single
-view for use in caps negotiation. Currently this is just
-'checkerboard' layout.</p>
-</div>
-<p class="since">Since: 1.6</p>
 </div>
 <hr>
 <div class="refsect2">
@@ -4475,15 +2276,6 @@
 <pre class="programlisting">const <a href="/usr/share/gtk-doc/html/gobjectgobject-Generic-values.html#GValue"><span class="returnvalue">GValue</span></a> *
 gst_video_multiview_get_doubled_width_modes
                                (<em class="parameter"><code><span class="type">void</span></code></em>);</pre>
-<div class="refsect3">
-<a name="gst-video-multiview-get-doubled-width-modes.returns"></a><h4>Returns</h4>
-<p> A const <a href="/usr/share/gtk-doc/html/gobjectgobject-Generic-values.html#GValue"><span class="type">GValue</span></a> containing a list of stereo video modes</p>
-<p>Utility function that returns a <a href="/usr/share/gtk-doc/html/gobjectgobject-Generic-values.html#GValue"><span class="type">GValue</span></a> with a GstList of packed stereo
-video modes with double the width of a single view for use in
-caps negotiations. Currently this is side-by-side, side-by-side-quincunx
-and column-interleaved.</p>
-</div>
-<p class="since">Since: 1.6</p>
 </div>
 <hr>
 <div class="refsect2">
@@ -4491,29 +2283,6 @@
 <pre class="programlisting"><a class="link" href="gst-plugins-base-libs-gstvideo.html#GstVideoMultiviewMode" title="enum GstVideoMultiviewMode"><span class="returnvalue">GstVideoMultiviewMode</span></a>
 gst_video_multiview_mode_from_caps_string
                                (<em class="parameter"><code>const <a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *caps_mview_mode</code></em>);</pre>
-<div class="refsect3">
-<a name="gst-video-multiview-mode-from-caps-string.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>caps_mview_mode</p></td>
-<td class="parameter_description"><p>multiview-mode field string from caps</p></td>
-<td class="parameter_annotations"> </td>
-</tr></tbody>
-</table></div>
-</div>
-<div class="refsect3">
-<a name="gst-video-multiview-mode-from-caps-string.returns"></a><h4>Returns</h4>
-<p> The <a class="link" href="gst-plugins-base-libs-gstvideo.html#GstVideoMultiviewMode" title="enum GstVideoMultiviewMode"><span class="type">GstVideoMultiviewMode</span></a> value</p>
-<p>Given a string from a caps multiview-mode field,
-output the corresponding <a class="link" href="gst-plugins-base-libs-gstvideo.html#GstVideoMultiviewMode" title="enum GstVideoMultiviewMode"><span class="type">GstVideoMultiviewMode</span></a>
-or <a class="link" href="gst-plugins-base-libs-gstvideo.html#GST-VIDEO-MULTIVIEW-MODE-NONE:CAPS"><span class="type">GST_VIDEO_MULTIVIEW_MODE_NONE</span></a></p>
-</div>
-<p class="since">Since: 1.6</p>
 </div>
 <hr>
 <div class="refsect2">
@@ -4521,28 +2290,6 @@
 <pre class="programlisting">const <a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> *
 gst_video_multiview_mode_to_caps_string
                                (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstvideo.html#GstVideoMultiviewMode" title="enum GstVideoMultiviewMode"><span class="type">GstVideoMultiviewMode</span></a> mview_mode</code></em>);</pre>
-<div class="refsect3">
-<a name="gst-video-multiview-mode-to-caps-string.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>mview_mode</p></td>
-<td class="parameter_description"><p>A <a class="link" href="gst-plugins-base-libs-gstvideo.html#GstVideoMultiviewMode" title="enum GstVideoMultiviewMode"><span class="type">GstVideoMultiviewMode</span></a> value</p></td>
-<td class="parameter_annotations"> </td>
-</tr></tbody>
-</table></div>
-</div>
-<div class="refsect3">
-<a name="gst-video-multiview-mode-to-caps-string.returns"></a><h4>Returns</h4>
-<p> The caps string representation of the mode, or NULL if invalid.</p>
-<p>Given a <a class="link" href="gst-plugins-base-libs-gstvideo.html#GstVideoMultiviewMode" title="enum GstVideoMultiviewMode"><span class="type">GstVideoMultiviewMode</span></a> returns the multiview-mode caps string
-for insertion into a caps structure</p>
-</div>
-<p class="since">Since: 1.6</p>
 </div>
 <hr>
 <div class="refsect2">
@@ -4553,53 +2300,6 @@
                                        <em class="parameter"><code><a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#guint"><span class="type">guint</span></a> height</code></em>,
                                        <em class="parameter"><code><a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#guint"><span class="type">guint</span></a> par_n</code></em>,
                                        <em class="parameter"><code><a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#guint"><span class="type">guint</span></a> par_d</code></em>);</pre>
-<div class="refsect3">
-<a name="gst-video-multiview-guess-half-aspect.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>mv_mode</p></td>
-<td class="parameter_description"><p>A <a class="link" href="gst-plugins-base-libs-gstvideo.html#GstVideoMultiviewMode" title="enum GstVideoMultiviewMode"><span class="type">GstVideoMultiviewMode</span></a></p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-<tr>
-<td class="parameter_name"><p>width</p></td>
-<td class="parameter_description"><p>Video frame width in pixels</p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-<tr>
-<td class="parameter_name"><p>height</p></td>
-<td class="parameter_description"><p>Video frame height in pixels</p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-<tr>
-<td class="parameter_name"><p>par_n</p></td>
-<td class="parameter_description"><p>Numerator of the video pixel-aspect-ratio</p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-<tr>
-<td class="parameter_name"><p>par_d</p></td>
-<td class="parameter_description"><p>Denominator of the video pixel-aspect-ratio</p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-</tbody>
-</table></div>
-</div>
-<div class="refsect3">
-<a name="gst-video-multiview-guess-half-aspect.returns"></a><h4>Returns</h4>
-<p> A boolean indicating whether the
-<span class="type">GST_VIDEO_MULTIVIEW_FLAG_HALF_ASPECT</span> flag should be set.</p>
-<p>Utility function that heuristically guess whether a
-frame-packed stereoscopic video contains half width/height
-encoded views, or full-frame views by looking at the
-overall display aspect ratio.</p>
-</div>
-<p class="since">Since: 1.6</p>
 </div>
 <hr>
 <div class="refsect2">
@@ -4609,37 +2309,6 @@
                                (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstvideo.html#GstVideoInfo" title="struct GstVideoInfo"><span class="type">GstVideoInfo</span></a> *info</code></em>,
                                 <em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstvideo.html#GstVideoMultiviewMode" title="enum GstVideoMultiviewMode"><span class="type">GstVideoMultiviewMode</span></a> out_mview_mode</code></em>,
                                 <em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstvideo.html#GstVideoMultiviewFlags" title="enum GstVideoMultiviewFlags"><span class="type">GstVideoMultiviewFlags</span></a> out_mview_flags</code></em>);</pre>
-<p>Utility function that transforms the width/height/PAR
-and multiview mode and flags of a <a class="link" href="gst-plugins-base-libs-gstvideo.html#GstVideoInfo" title="struct GstVideoInfo"><span class="type">GstVideoInfo</span></a> into
-the requested mode.</p>
-<div class="refsect3">
-<a name="gst-video-multiview-video-info-change-mode.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>info</p></td>
-<td class="parameter_description"><p>A <a class="link" href="gst-plugins-base-libs-gstvideo.html#GstVideoInfo" title="struct GstVideoInfo"><span class="type">GstVideoInfo</span></a> structure to operate on</p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-<tr>
-<td class="parameter_name"><p>out_mview_mode</p></td>
-<td class="parameter_description"><p>A <a class="link" href="gst-plugins-base-libs-gstvideo.html#GstVideoMultiviewMode" title="enum GstVideoMultiviewMode"><span class="type">GstVideoMultiviewMode</span></a> value</p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-<tr>
-<td class="parameter_name"><p>out_mview_flags</p></td>
-<td class="parameter_description"><p>A set of <a class="link" href="gst-plugins-base-libs-gstvideo.html#GstVideoMultiviewFlags" title="enum GstVideoMultiviewFlags"><span class="type">GstVideoMultiviewFlags</span></a></p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-</tbody>
-</table></div>
-</div>
-<p class="since">Since: 1.6</p>
 </div>
 </div>
 <div class="refsect1">
@@ -4654,83 +2323,34 @@
   guint stride_align[GST_VIDEO_MAX_PLANES];
 };
 </pre>
-<p>Extra alignment paramters for the memory of video buffers. This
-structure is usually used to configure the bufferpool if it supports the
-<a class="link" href="gst-plugins-base-libs-GstVideoPool.html#GST-BUFFER-POOL-OPTION-VIDEO-ALIGNMENT:CAPS" title="GST_BUFFER_POOL_OPTION_VIDEO_ALIGNMENT"><span class="type">GST_BUFFER_POOL_OPTION_VIDEO_ALIGNMENT</span></a>.</p>
-<div class="refsect3">
-<a name="GstVideoAlignment.members"></a><h4>Members</h4>
-<div class="informaltable"><table class="informaltable" width="100%" border="0">
-<colgroup>
-<col width="300px" class="struct_members_name">
-<col class="struct_members_description">
-<col width="200px" class="struct_members_annotations">
-</colgroup>
-<tbody>
-<tr>
-<td class="struct_member_name"><p><a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#guint"><span class="type">guint</span></a> <em class="structfield"><code><a name="GstVideoAlignment.padding-top"></a>padding_top</code></em>;</p></td>
-<td class="struct_member_description"><p>extra pixels on the top</p></td>
-<td class="struct_member_annotations"> </td>
-</tr>
-<tr>
-<td class="struct_member_name"><p><a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#guint"><span class="type">guint</span></a> <em class="structfield"><code><a name="GstVideoAlignment.padding-bottom"></a>padding_bottom</code></em>;</p></td>
-<td class="struct_member_description"><p>extra pixels on the bottom</p></td>
-<td class="struct_member_annotations"> </td>
-</tr>
-<tr>
-<td class="struct_member_name"><p><a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#guint"><span class="type">guint</span></a> <em class="structfield"><code><a name="GstVideoAlignment.padding-left"></a>padding_left</code></em>;</p></td>
-<td class="struct_member_description"><p>extra pixels on the left side</p></td>
-<td class="struct_member_annotations"> </td>
-</tr>
-<tr>
-<td class="struct_member_name"><p><a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#guint"><span class="type">guint</span></a> <em class="structfield"><code><a name="GstVideoAlignment.padding-right"></a>padding_right</code></em>;</p></td>
-<td class="struct_member_description"><p>extra pixels on the right side</p></td>
-<td class="struct_member_annotations"> </td>
-</tr>
-<tr>
-<td class="struct_member_name"><p><a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#guint"><span class="type">guint</span></a> <em class="structfield"><code><a name="GstVideoAlignment.stride-align"></a>stride_align</code></em>[GST_VIDEO_MAX_PLANES];</p></td>
-<td class="struct_member_description"><p>array with extra alignment requirements for the strides</p></td>
-<td class="struct_member_annotations"> </td>
-</tr>
-</tbody>
-</table></div>
-</div>
 </div>
 <hr>
 <div class="refsect2">
 <a name="GST-META-TAG-VIDEO-STR:CAPS"></a><h3>GST_META_TAG_VIDEO_STR</h3>
 <pre class="programlisting">#define GST_META_TAG_VIDEO_STR "video"
 </pre>
-<p>This metadata is relevant for video streams.</p>
-<p class="since">Since: 1.2</p>
 </div>
 <hr>
 <div class="refsect2">
 <a name="GST-META-TAG-VIDEO-ORIENTATION-STR:CAPS"></a><h3>GST_META_TAG_VIDEO_ORIENTATION_STR</h3>
 <pre class="programlisting">#define GST_META_TAG_VIDEO_ORIENTATION_STR "orientation"
 </pre>
-<p>This metadata stays relevant as long as video orientation is unchanged.</p>
-<p class="since">Since: 1.2</p>
 </div>
 <hr>
 <div class="refsect2">
 <a name="GST-META-TAG-VIDEO-SIZE-STR:CAPS"></a><h3>GST_META_TAG_VIDEO_SIZE_STR</h3>
 <pre class="programlisting">#define GST_META_TAG_VIDEO_SIZE_STR "size"
 </pre>
-<p>This metadata stays relevant as long as video size is unchanged.</p>
-<p class="since">Since: 1.2</p>
 </div>
 <hr>
 <div class="refsect2">
 <a name="GST-META-TAG-VIDEO-COLORSPACE-STR:CAPS"></a><h3>GST_META_TAG_VIDEO_COLORSPACE_STR</h3>
 <pre class="programlisting">#define GST_META_TAG_VIDEO_COLORSPACE_STR "colorspace"
 </pre>
-<p>This metadata stays relevant as long as video colorspace is unchanged.</p>
-<p class="since">Since: 1.2</p>
 </div>
 <hr>
 <div class="refsect2">
 <a name="GstVideoFormat"></a><h3>enum GstVideoFormat</h3>
-<p>Enum value describing the most common video formats.</p>
 <div class="refsect3">
 <a name="GstVideoFormat.members"></a><h4>Members</h4>
 <div class="informaltable"><table class="informaltable" width="100%" border="0">
@@ -4742,433 +2362,323 @@
 <tbody>
 <tr>
 <td class="enum_member_name"><p><a name="GST-VIDEO-FORMAT-UNKNOWN:CAPS"></a>GST_VIDEO_FORMAT_UNKNOWN</p></td>
-<td class="enum_member_description">
-<p>Unknown or unset video format id</p>
-</td>
-<td class="enum_member_annotations"> </td>
+<td> </td>
+<td> </td>
 </tr>
 <tr>
 <td class="enum_member_name"><p><a name="GST-VIDEO-FORMAT-ENCODED:CAPS"></a>GST_VIDEO_FORMAT_ENCODED</p></td>
-<td class="enum_member_description">
-<p>Encoded video format. Only ever use that in caps for
-                           special video formats in combination with non-system
-                           memory GstCapsFeatures where it does not make sense
-                           to specify a real video format.</p>
-</td>
-<td class="enum_member_annotations"> </td>
+<td> </td>
+<td> </td>
 </tr>
 <tr>
 <td class="enum_member_name"><p><a name="GST-VIDEO-FORMAT-I420:CAPS"></a>GST_VIDEO_FORMAT_I420</p></td>
-<td class="enum_member_description">
-<p>planar 4:2:0 YUV</p>
-</td>
-<td class="enum_member_annotations"> </td>
+<td> </td>
+<td> </td>
 </tr>
 <tr>
 <td class="enum_member_name"><p><a name="GST-VIDEO-FORMAT-YV12:CAPS"></a>GST_VIDEO_FORMAT_YV12</p></td>
-<td class="enum_member_description">
-<p>planar 4:2:0 YVU (like I420 but UV planes swapped)</p>
-</td>
-<td class="enum_member_annotations"> </td>
+<td> </td>
+<td> </td>
 </tr>
 <tr>
 <td class="enum_member_name"><p><a name="GST-VIDEO-FORMAT-YUY2:CAPS"></a>GST_VIDEO_FORMAT_YUY2</p></td>
-<td class="enum_member_description">
-<p>packed 4:2:2 YUV (Y0-U0-Y1-V0 Y2-U2-Y3-V2 Y4 ...)</p>
-</td>
-<td class="enum_member_annotations"> </td>
+<td> </td>
+<td> </td>
 </tr>
 <tr>
 <td class="enum_member_name"><p><a name="GST-VIDEO-FORMAT-UYVY:CAPS"></a>GST_VIDEO_FORMAT_UYVY</p></td>
-<td class="enum_member_description">
-<p>packed 4:2:2 YUV (U0-Y0-V0-Y1 U2-Y2-V2-Y3 U4 ...)</p>
-</td>
-<td class="enum_member_annotations"> </td>
+<td> </td>
+<td> </td>
 </tr>
 <tr>
 <td class="enum_member_name"><p><a name="GST-VIDEO-FORMAT-AYUV:CAPS"></a>GST_VIDEO_FORMAT_AYUV</p></td>
-<td class="enum_member_description">
-<p>packed 4:4:4 YUV with alpha channel (A0-Y0-U0-V0 ...)</p>
-</td>
-<td class="enum_member_annotations"> </td>
+<td> </td>
+<td> </td>
 </tr>
 <tr>
 <td class="enum_member_name"><p><a name="GST-VIDEO-FORMAT-RGBx"></a>GST_VIDEO_FORMAT_RGBx</p></td>
-<td class="enum_member_description">
-<p>sparse rgb packed into 32 bit, space last</p>
-</td>
-<td class="enum_member_annotations"> </td>
+<td> </td>
+<td> </td>
 </tr>
 <tr>
 <td class="enum_member_name"><p><a name="GST-VIDEO-FORMAT-BGRx"></a>GST_VIDEO_FORMAT_BGRx</p></td>
-<td class="enum_member_description">
-<p>sparse reverse rgb packed into 32 bit, space last</p>
-</td>
-<td class="enum_member_annotations"> </td>
+<td> </td>
+<td> </td>
 </tr>
 <tr>
 <td class="enum_member_name"><p><a name="GST-VIDEO-FORMAT-xRGB"></a>GST_VIDEO_FORMAT_xRGB</p></td>
-<td class="enum_member_description">
-<p>sparse rgb packed into 32 bit, space first</p>
-</td>
-<td class="enum_member_annotations"> </td>
+<td> </td>
+<td> </td>
 </tr>
 <tr>
 <td class="enum_member_name"><p><a name="GST-VIDEO-FORMAT-xBGR"></a>GST_VIDEO_FORMAT_xBGR</p></td>
-<td class="enum_member_description">
-<p>sparse reverse rgb packed into 32 bit, space first</p>
-</td>
-<td class="enum_member_annotations"> </td>
+<td> </td>
+<td> </td>
 </tr>
 <tr>
 <td class="enum_member_name"><p><a name="GST-VIDEO-FORMAT-RGBA:CAPS"></a>GST_VIDEO_FORMAT_RGBA</p></td>
-<td class="enum_member_description">
-<p>rgb with alpha channel last</p>
-</td>
-<td class="enum_member_annotations"> </td>
+<td> </td>
+<td> </td>
 </tr>
 <tr>
 <td class="enum_member_name"><p><a name="GST-VIDEO-FORMAT-BGRA:CAPS"></a>GST_VIDEO_FORMAT_BGRA</p></td>
-<td class="enum_member_description">
-<p>reverse rgb with alpha channel last</p>
-</td>
-<td class="enum_member_annotations"> </td>
+<td> </td>
+<td> </td>
 </tr>
 <tr>
 <td class="enum_member_name"><p><a name="GST-VIDEO-FORMAT-ARGB:CAPS"></a>GST_VIDEO_FORMAT_ARGB</p></td>
-<td class="enum_member_description">
-<p>rgb with alpha channel first</p>
-</td>
-<td class="enum_member_annotations"> </td>
+<td> </td>
+<td> </td>
 </tr>
 <tr>
 <td class="enum_member_name"><p><a name="GST-VIDEO-FORMAT-ABGR:CAPS"></a>GST_VIDEO_FORMAT_ABGR</p></td>
-<td class="enum_member_description">
-<p>reverse rgb with alpha channel first</p>
-</td>
-<td class="enum_member_annotations"> </td>
+<td> </td>
+<td> </td>
 </tr>
 <tr>
 <td class="enum_member_name"><p><a name="GST-VIDEO-FORMAT-RGB:CAPS"></a>GST_VIDEO_FORMAT_RGB</p></td>
-<td class="enum_member_description">
-<p>rgb</p>
-</td>
-<td class="enum_member_annotations"> </td>
+<td> </td>
+<td> </td>
 </tr>
 <tr>
 <td class="enum_member_name"><p><a name="GST-VIDEO-FORMAT-BGR:CAPS"></a>GST_VIDEO_FORMAT_BGR</p></td>
-<td class="enum_member_description">
-<p>reverse rgb</p>
-</td>
-<td class="enum_member_annotations"> </td>
+<td> </td>
+<td> </td>
 </tr>
 <tr>
 <td class="enum_member_name"><p><a name="GST-VIDEO-FORMAT-Y41B:CAPS"></a>GST_VIDEO_FORMAT_Y41B</p></td>
-<td class="enum_member_description">
-<p>planar 4:1:1 YUV</p>
-</td>
-<td class="enum_member_annotations"> </td>
+<td> </td>
+<td> </td>
 </tr>
 <tr>
 <td class="enum_member_name"><p><a name="GST-VIDEO-FORMAT-Y42B:CAPS"></a>GST_VIDEO_FORMAT_Y42B</p></td>
-<td class="enum_member_description">
-<p>planar 4:2:2 YUV</p>
-</td>
-<td class="enum_member_annotations"> </td>
+<td> </td>
+<td> </td>
 </tr>
 <tr>
 <td class="enum_member_name"><p><a name="GST-VIDEO-FORMAT-YVYU:CAPS"></a>GST_VIDEO_FORMAT_YVYU</p></td>
-<td class="enum_member_description">
-<p>packed 4:2:2 YUV (Y0-V0-Y1-U0 Y2-V2-Y3-U2 Y4 ...)</p>
-</td>
-<td class="enum_member_annotations"> </td>
+<td> </td>
+<td> </td>
 </tr>
 <tr>
 <td class="enum_member_name"><p><a name="GST-VIDEO-FORMAT-Y444:CAPS"></a>GST_VIDEO_FORMAT_Y444</p></td>
-<td class="enum_member_description">
-<p>planar 4:4:4 YUV</p>
-</td>
-<td class="enum_member_annotations"> </td>
+<td> </td>
+<td> </td>
 </tr>
 <tr>
 <td class="enum_member_name"><p><a name="GST-VIDEO-FORMAT-v210"></a>GST_VIDEO_FORMAT_v210</p></td>
-<td class="enum_member_description">
-<p>packed 4:2:2 10-bit YUV, complex format</p>
-</td>
-<td class="enum_member_annotations"> </td>
+<td> </td>
+<td> </td>
 </tr>
 <tr>
 <td class="enum_member_name"><p><a name="GST-VIDEO-FORMAT-v216"></a>GST_VIDEO_FORMAT_v216</p></td>
-<td class="enum_member_description">
-<p>packed 4:2:2 16-bit YUV, Y0-U0-Y1-V1 order</p>
-</td>
-<td class="enum_member_annotations"> </td>
+<td> </td>
+<td> </td>
 </tr>
 <tr>
 <td class="enum_member_name"><p><a name="GST-VIDEO-FORMAT-NV12:CAPS"></a>GST_VIDEO_FORMAT_NV12</p></td>
-<td class="enum_member_description">
-<p>planar 4:2:0 YUV with interleaved UV plane</p>
-</td>
-<td class="enum_member_annotations"> </td>
+<td> </td>
+<td> </td>
 </tr>
 <tr>
 <td class="enum_member_name"><p><a name="GST-VIDEO-FORMAT-NV21:CAPS"></a>GST_VIDEO_FORMAT_NV21</p></td>
-<td class="enum_member_description">
-<p>planar 4:2:0 YUV with interleaved VU plane</p>
-</td>
-<td class="enum_member_annotations"> </td>
+<td> </td>
+<td> </td>
 </tr>
 <tr>
 <td class="enum_member_name"><p><a name="GST-VIDEO-FORMAT-GRAY8:CAPS"></a>GST_VIDEO_FORMAT_GRAY8</p></td>
-<td class="enum_member_description">
-<p>8-bit grayscale</p>
-</td>
-<td class="enum_member_annotations"> </td>
+<td> </td>
+<td> </td>
 </tr>
 <tr>
 <td class="enum_member_name"><p><a name="GST-VIDEO-FORMAT-GRAY16-BE:CAPS"></a>GST_VIDEO_FORMAT_GRAY16_BE</p></td>
-<td class="enum_member_description">
-<p>16-bit grayscale, most significant byte first</p>
-</td>
-<td class="enum_member_annotations"> </td>
+<td> </td>
+<td> </td>
 </tr>
 <tr>
 <td class="enum_member_name"><p><a name="GST-VIDEO-FORMAT-GRAY16-LE:CAPS"></a>GST_VIDEO_FORMAT_GRAY16_LE</p></td>
-<td class="enum_member_description">
-<p>16-bit grayscale, least significant byte first</p>
-</td>
-<td class="enum_member_annotations"> </td>
+<td> </td>
+<td> </td>
 </tr>
 <tr>
 <td class="enum_member_name"><p><a name="GST-VIDEO-FORMAT-v308"></a>GST_VIDEO_FORMAT_v308</p></td>
-<td class="enum_member_description">
-<p>packed 4:4:4 YUV</p>
-</td>
-<td class="enum_member_annotations"> </td>
+<td> </td>
+<td> </td>
 </tr>
 <tr>
 <td class="enum_member_name"><p><a name="GST-VIDEO-FORMAT-RGB16:CAPS"></a>GST_VIDEO_FORMAT_RGB16</p></td>
-<td class="enum_member_description">
-<p>rgb 5-6-5 bits per component</p>
-</td>
-<td class="enum_member_annotations"> </td>
+<td> </td>
+<td> </td>
 </tr>
 <tr>
 <td class="enum_member_name"><p><a name="GST-VIDEO-FORMAT-BGR16:CAPS"></a>GST_VIDEO_FORMAT_BGR16</p></td>
-<td class="enum_member_description">
-<p>reverse rgb 5-6-5 bits per component</p>
-</td>
-<td class="enum_member_annotations"> </td>
+<td> </td>
+<td> </td>
 </tr>
 <tr>
 <td class="enum_member_name"><p><a name="GST-VIDEO-FORMAT-RGB15:CAPS"></a>GST_VIDEO_FORMAT_RGB15</p></td>
-<td class="enum_member_description">
-<p>rgb 5-5-5 bits per component</p>
-</td>
-<td class="enum_member_annotations"> </td>
+<td> </td>
+<td> </td>
 </tr>
 <tr>
 <td class="enum_member_name"><p><a name="GST-VIDEO-FORMAT-BGR15:CAPS"></a>GST_VIDEO_FORMAT_BGR15</p></td>
-<td class="enum_member_description">
-<p>reverse rgb 5-5-5 bits per component</p>
-</td>
-<td class="enum_member_annotations"> </td>
+<td> </td>
+<td> </td>
 </tr>
 <tr>
 <td class="enum_member_name"><p><a name="GST-VIDEO-FORMAT-UYVP:CAPS"></a>GST_VIDEO_FORMAT_UYVP</p></td>
-<td class="enum_member_description">
-<p>packed 10-bit 4:2:2 YUV (U0-Y0-V0-Y1 U2-Y2-V2-Y3 U4 ...)</p>
-</td>
-<td class="enum_member_annotations"> </td>
+<td> </td>
+<td> </td>
 </tr>
 <tr>
 <td class="enum_member_name"><p><a name="GST-VIDEO-FORMAT-A420:CAPS"></a>GST_VIDEO_FORMAT_A420</p></td>
-<td class="enum_member_description">
-<p>planar 4:4:2:0 AYUV</p>
-</td>
-<td class="enum_member_annotations"> </td>
+<td> </td>
+<td> </td>
 </tr>
 <tr>
 <td class="enum_member_name"><p><a name="GST-VIDEO-FORMAT-RGB8P:CAPS"></a>GST_VIDEO_FORMAT_RGB8P</p></td>
-<td class="enum_member_description">
-<p>8-bit paletted RGB</p>
-</td>
-<td class="enum_member_annotations"> </td>
+<td> </td>
+<td> </td>
 </tr>
 <tr>
 <td class="enum_member_name"><p><a name="GST-VIDEO-FORMAT-YUV9:CAPS"></a>GST_VIDEO_FORMAT_YUV9</p></td>
-<td class="enum_member_description">
-<p>planar 4:1:0 YUV</p>
-</td>
-<td class="enum_member_annotations"> </td>
+<td> </td>
+<td> </td>
 </tr>
 <tr>
 <td class="enum_member_name"><p><a name="GST-VIDEO-FORMAT-YVU9:CAPS"></a>GST_VIDEO_FORMAT_YVU9</p></td>
-<td class="enum_member_description">
-<p>planar 4:1:0 YUV (like YUV9 but UV planes swapped)</p>
-</td>
-<td class="enum_member_annotations"> </td>
+<td> </td>
+<td> </td>
 </tr>
 <tr>
 <td class="enum_member_name"><p><a name="GST-VIDEO-FORMAT-IYU1:CAPS"></a>GST_VIDEO_FORMAT_IYU1</p></td>
-<td class="enum_member_description">
-<p>packed 4:1:1 YUV (Cb-Y0-Y1-Cr-Y2-Y3 ...)</p>
-</td>
-<td class="enum_member_annotations"> </td>
+<td> </td>
+<td> </td>
 </tr>
 <tr>
 <td class="enum_member_name"><p><a name="GST-VIDEO-FORMAT-ARGB64:CAPS"></a>GST_VIDEO_FORMAT_ARGB64</p></td>
-<td class="enum_member_description">
-<p>rgb with alpha channel first, 16 bits per channel</p>
-</td>
-<td class="enum_member_annotations"> </td>
+<td> </td>
+<td> </td>
 </tr>
 <tr>
 <td class="enum_member_name"><p><a name="GST-VIDEO-FORMAT-AYUV64:CAPS"></a>GST_VIDEO_FORMAT_AYUV64</p></td>
-<td class="enum_member_description">
-<p>packed 4:4:4 YUV with alpha channel, 16 bits per channel (A0-Y0-U0-V0 ...)</p>
-</td>
-<td class="enum_member_annotations"> </td>
+<td> </td>
+<td> </td>
 </tr>
 <tr>
 <td class="enum_member_name"><p><a name="GST-VIDEO-FORMAT-r210"></a>GST_VIDEO_FORMAT_r210</p></td>
-<td class="enum_member_description">
-<p>packed 4:4:4 RGB, 10 bits per channel</p>
-</td>
-<td class="enum_member_annotations"> </td>
+<td> </td>
+<td> </td>
 </tr>
 <tr>
 <td class="enum_member_name"><p><a name="GST-VIDEO-FORMAT-I420-10BE:CAPS"></a>GST_VIDEO_FORMAT_I420_10BE</p></td>
-<td class="enum_member_description">
-<p>planar 4:2:0 YUV, 10 bits per channel</p>
-</td>
-<td class="enum_member_annotations"> </td>
+<td> </td>
+<td> </td>
 </tr>
 <tr>
 <td class="enum_member_name"><p><a name="GST-VIDEO-FORMAT-I420-10LE:CAPS"></a>GST_VIDEO_FORMAT_I420_10LE</p></td>
-<td class="enum_member_description">
-<p>planar 4:2:0 YUV, 10 bits per channel</p>
-</td>
-<td class="enum_member_annotations"> </td>
+<td> </td>
+<td> </td>
 </tr>
 <tr>
 <td class="enum_member_name"><p><a name="GST-VIDEO-FORMAT-I422-10BE:CAPS"></a>GST_VIDEO_FORMAT_I422_10BE</p></td>
-<td class="enum_member_description">
-<p>planar 4:2:2 YUV, 10 bits per channel</p>
-</td>
-<td class="enum_member_annotations"> </td>
+<td> </td>
+<td> </td>
 </tr>
 <tr>
 <td class="enum_member_name"><p><a name="GST-VIDEO-FORMAT-I422-10LE:CAPS"></a>GST_VIDEO_FORMAT_I422_10LE</p></td>
-<td class="enum_member_description">
-<p>planar 4:2:2 YUV, 10 bits per channel</p>
-</td>
-<td class="enum_member_annotations"> </td>
+<td> </td>
+<td> </td>
 </tr>
 <tr>
 <td class="enum_member_name"><p><a name="GST-VIDEO-FORMAT-Y444-10BE:CAPS"></a>GST_VIDEO_FORMAT_Y444_10BE</p></td>
-<td class="enum_member_description">
-<p>planar 4:4:4 YUV, 10 bits per channel</p>
-</td>
-<td class="enum_member_annotations"> </td>
+<td> </td>
+<td> </td>
 </tr>
 <tr>
 <td class="enum_member_name"><p><a name="GST-VIDEO-FORMAT-Y444-10LE:CAPS"></a>GST_VIDEO_FORMAT_Y444_10LE</p></td>
-<td class="enum_member_description">
-<p>planar 4:4:4 YUV, 10 bits per channel</p>
-</td>
-<td class="enum_member_annotations"> </td>
+<td> </td>
+<td> </td>
 </tr>
 <tr>
 <td class="enum_member_name"><p><a name="GST-VIDEO-FORMAT-GBR:CAPS"></a>GST_VIDEO_FORMAT_GBR</p></td>
-<td class="enum_member_description">
-<p>planar 4:4:4 RGB, 8 bits per channel</p>
-</td>
-<td class="enum_member_annotations"> </td>
+<td> </td>
+<td> </td>
 </tr>
 <tr>
 <td class="enum_member_name"><p><a name="GST-VIDEO-FORMAT-GBR-10BE:CAPS"></a>GST_VIDEO_FORMAT_GBR_10BE</p></td>
-<td class="enum_member_description">
-<p>planar 4:4:4 RGB, 10 bits per channel</p>
-</td>
-<td class="enum_member_annotations"> </td>
+<td> </td>
+<td> </td>
 </tr>
 <tr>
 <td class="enum_member_name"><p><a name="GST-VIDEO-FORMAT-GBR-10LE:CAPS"></a>GST_VIDEO_FORMAT_GBR_10LE</p></td>
-<td class="enum_member_description">
-<p>planar 4:4:4 RGB, 10 bits per channel</p>
-</td>
-<td class="enum_member_annotations"> </td>
+<td> </td>
+<td> </td>
 </tr>
 <tr>
 <td class="enum_member_name"><p><a name="GST-VIDEO-FORMAT-NV16:CAPS"></a>GST_VIDEO_FORMAT_NV16</p></td>
-<td class="enum_member_description">
-<p>planar 4:2:2 YUV with interleaved UV plane</p>
-</td>
-<td class="enum_member_annotations"> </td>
+<td> </td>
+<td> </td>
 </tr>
 <tr>
 <td class="enum_member_name"><p><a name="GST-VIDEO-FORMAT-NV24:CAPS"></a>GST_VIDEO_FORMAT_NV24</p></td>
-<td class="enum_member_description">
-<p>planar 4:4:4 YUV with interleaved UV plane</p>
-</td>
-<td class="enum_member_annotations"> </td>
+<td> </td>
+<td> </td>
 </tr>
 <tr>
 <td class="enum_member_name"><p><a name="GST-VIDEO-FORMAT-NV12-64Z32:CAPS"></a>GST_VIDEO_FORMAT_NV12_64Z32</p></td>
-<td class="enum_member_description">
-<p>NV12 with 64x32 tiling in zigzag pattern</p>
-</td>
-<td class="enum_member_annotations"> </td>
+<td> </td>
+<td> </td>
 </tr>
 <tr>
 <td class="enum_member_name"><p><a name="GST-VIDEO-FORMAT-A420-10BE:CAPS"></a>GST_VIDEO_FORMAT_A420_10BE</p></td>
-<td class="enum_member_description">
-<p>planar 4:4:2:0 YUV, 10 bits per channel</p>
-</td>
-<td class="enum_member_annotations"> </td>
+<td> </td>
+<td> </td>
 </tr>
 <tr>
 <td class="enum_member_name"><p><a name="GST-VIDEO-FORMAT-A420-10LE:CAPS"></a>GST_VIDEO_FORMAT_A420_10LE</p></td>
-<td class="enum_member_description">
-<p>planar 4:4:2:0 YUV, 10 bits per channel</p>
-</td>
-<td class="enum_member_annotations"> </td>
+<td> </td>
+<td> </td>
 </tr>
 <tr>
 <td class="enum_member_name"><p><a name="GST-VIDEO-FORMAT-A422-10BE:CAPS"></a>GST_VIDEO_FORMAT_A422_10BE</p></td>
-<td class="enum_member_description">
-<p>planar 4:4:2:2 YUV, 10 bits per channel</p>
-</td>
-<td class="enum_member_annotations"> </td>
+<td> </td>
+<td> </td>
 </tr>
 <tr>
 <td class="enum_member_name"><p><a name="GST-VIDEO-FORMAT-A422-10LE:CAPS"></a>GST_VIDEO_FORMAT_A422_10LE</p></td>
-<td class="enum_member_description">
-<p>planar 4:4:2:2 YUV, 10 bits per channel</p>
-</td>
-<td class="enum_member_annotations"> </td>
+<td> </td>
+<td> </td>
 </tr>
 <tr>
 <td class="enum_member_name"><p><a name="GST-VIDEO-FORMAT-A444-10BE:CAPS"></a>GST_VIDEO_FORMAT_A444_10BE</p></td>
-<td class="enum_member_description">
-<p>planar 4:4:4:4 YUV, 10 bits per channel</p>
-</td>
-<td class="enum_member_annotations"> </td>
+<td> </td>
+<td> </td>
 </tr>
 <tr>
 <td class="enum_member_name"><p><a name="GST-VIDEO-FORMAT-A444-10LE:CAPS"></a>GST_VIDEO_FORMAT_A444_10LE</p></td>
-<td class="enum_member_description">
-<p>planar 4:4:4:4 YUV, 10 bits per channel</p>
-</td>
-<td class="enum_member_annotations"> </td>
+<td> </td>
+<td> </td>
 </tr>
 <tr>
 <td class="enum_member_name"><p><a name="GST-VIDEO-FORMAT-NV61:CAPS"></a>GST_VIDEO_FORMAT_NV61</p></td>
-<td class="enum_member_description">
-<p>planar 4:2:2 YUV with interleaved VU plane (Since 1.6)</p>
-</td>
-<td class="enum_member_annotations"> </td>
+<td> </td>
+<td> </td>
+</tr>
+<tr>
+<td class="enum_member_name"><p><a name="GST-VIDEO-FORMAT-P010-10BE:CAPS"></a>GST_VIDEO_FORMAT_P010_10BE</p></td>
+<td> </td>
+<td> </td>
+</tr>
+<tr>
+<td class="enum_member_name"><p><a name="GST-VIDEO-FORMAT-P010-10LE:CAPS"></a>GST_VIDEO_FORMAT_P010_10LE</p></td>
+<td> </td>
+<td> </td>
+</tr>
+<tr>
+<td class="enum_member_name"><p><a name="GST-VIDEO-FORMAT-IYU2:CAPS"></a>GST_VIDEO_FORMAT_IYU2</p></td>
+<td> </td>
+<td> </td>
 </tr>
 </tbody>
 </table></div>
@@ -5215,141 +2725,10 @@
   guint tile_hs;
 };
 </pre>
-<p>Information for a video format.</p>
-<div class="refsect3">
-<a name="GstVideoFormatInfo.members"></a><h4>Members</h4>
-<div class="informaltable"><table class="informaltable" width="100%" border="0">
-<colgroup>
-<col width="300px" class="struct_members_name">
-<col class="struct_members_description">
-<col width="200px" class="struct_members_annotations">
-</colgroup>
-<tbody>
-<tr>
-<td class="struct_member_name"><p><a class="link" href="gst-plugins-base-libs-gstvideo.html#GstVideoFormat" title="enum GstVideoFormat"><span class="type">GstVideoFormat</span></a> <em class="structfield"><code><a name="GstVideoFormatInfo.format"></a>format</code></em>;</p></td>
-<td class="struct_member_description"><p><a class="link" href="gst-plugins-base-libs-gstvideo.html#GstVideoFormat" title="enum GstVideoFormat"><span class="type">GstVideoFormat</span></a></p></td>
-<td class="struct_member_annotations"> </td>
-</tr>
-<tr>
-<td class="struct_member_name"><p>const <a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *<em class="structfield"><code><a name="GstVideoFormatInfo.name"></a>name</code></em>;</p></td>
-<td class="struct_member_description"><p>string representation of the format</p></td>
-<td class="struct_member_annotations"> </td>
-</tr>
-<tr>
-<td class="struct_member_name"><p>const <a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *<em class="structfield"><code><a name="GstVideoFormatInfo.description"></a>description</code></em>;</p></td>
-<td class="struct_member_description"><p>use readable description of the format</p></td>
-<td class="struct_member_annotations"> </td>
-</tr>
-<tr>
-<td class="struct_member_name"><p><a class="link" href="gst-plugins-base-libs-gstvideo.html#GstVideoFormatFlags" title="enum GstVideoFormatFlags"><span class="type">GstVideoFormatFlags</span></a> <em class="structfield"><code><a name="GstVideoFormatInfo.flags"></a>flags</code></em>;</p></td>
-<td class="struct_member_description"><p><a class="link" href="gst-plugins-base-libs-gstvideo.html#GstVideoFormatFlags" title="enum GstVideoFormatFlags"><span class="type">GstVideoFormatFlags</span></a></p></td>
-<td class="struct_member_annotations"> </td>
-</tr>
-<tr>
-<td class="struct_member_name"><p><a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#guint"><span class="type">guint</span></a> <em class="structfield"><code><a name="GstVideoFormatInfo.bits"></a>bits</code></em>;</p></td>
-<td class="struct_member_description"><p>The number of bits used to pack data items. This can be less than 8
-when multiple pixels are stored in a byte. for values &gt; 8 multiple bytes
-should be read according to the endianness flag before applying the shift
-and mask.</p></td>
-<td class="struct_member_annotations"> </td>
-</tr>
-<tr>
-<td class="struct_member_name"><p><a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#guint"><span class="type">guint</span></a> <em class="structfield"><code><a name="GstVideoFormatInfo.n-components"></a>n_components</code></em>;</p></td>
-<td class="struct_member_description"><p>the number of components in the video format.</p></td>
-<td class="struct_member_annotations"> </td>
-</tr>
-<tr>
-<td class="struct_member_name"><p><a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#guint"><span class="type">guint</span></a> <em class="structfield"><code><a name="GstVideoFormatInfo.shift"></a>shift</code></em>[GST_VIDEO_MAX_COMPONENTS];</p></td>
-<td class="struct_member_description"><p>the number of bits to shift away to get the component data</p></td>
-<td class="struct_member_annotations"> </td>
-</tr>
-<tr>
-<td class="struct_member_name"><p><a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#guint"><span class="type">guint</span></a> <em class="structfield"><code><a name="GstVideoFormatInfo.depth"></a>depth</code></em>[GST_VIDEO_MAX_COMPONENTS];</p></td>
-<td class="struct_member_description"><p>the depth in bits for each component</p></td>
-<td class="struct_member_annotations"> </td>
-</tr>
-<tr>
-<td class="struct_member_name"><p><a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#gint"><span class="type">gint</span></a> <em class="structfield"><code><a name="GstVideoFormatInfo.pixel-stride"></a>pixel_stride</code></em>[GST_VIDEO_MAX_COMPONENTS];</p></td>
-<td class="struct_member_description"><p>the pixel stride of each component. This is the amount of
-bytes to the pixel immediately to the right. When bits &lt; 8, the stride is
-expressed in bits. For 24-bit RGB, this would be 3 bytes, for example,
-while it would be 4 bytes for RGBx or ARGB.</p></td>
-<td class="struct_member_annotations"> </td>
-</tr>
-<tr>
-<td class="struct_member_name"><p><a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#guint"><span class="type">guint</span></a> <em class="structfield"><code><a name="GstVideoFormatInfo.n-planes"></a>n_planes</code></em>;</p></td>
-<td class="struct_member_description"><p>the number of planes for this format. The number of planes can be
-less than the amount of components when multiple components are packed into
-one plane.</p></td>
-<td class="struct_member_annotations"> </td>
-</tr>
-<tr>
-<td class="struct_member_name"><p><a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#guint"><span class="type">guint</span></a> <em class="structfield"><code><a name="GstVideoFormatInfo.plane"></a>plane</code></em>[GST_VIDEO_MAX_COMPONENTS];</p></td>
-<td class="struct_member_description"><p>the plane number where a component can be found</p></td>
-<td class="struct_member_annotations"> </td>
-</tr>
-<tr>
-<td class="struct_member_name"><p><a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#guint"><span class="type">guint</span></a> <em class="structfield"><code><a name="GstVideoFormatInfo.poffset"></a>poffset</code></em>[GST_VIDEO_MAX_COMPONENTS];</p></td>
-<td class="struct_member_description"><p>the offset in the plane where the first pixel of the components
-can be found.</p></td>
-<td class="struct_member_annotations"> </td>
-</tr>
-<tr>
-<td class="struct_member_name"><p><a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#guint"><span class="type">guint</span></a> <em class="structfield"><code><a name="GstVideoFormatInfo.w-sub"></a>w_sub</code></em>[GST_VIDEO_MAX_COMPONENTS];</p></td>
-<td class="struct_member_description"><p>subsampling factor of the width for the component. Use
-GST_VIDEO_SUB_SCALE to scale a width.</p></td>
-<td class="struct_member_annotations"> </td>
-</tr>
-<tr>
-<td class="struct_member_name"><p><a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#guint"><span class="type">guint</span></a> <em class="structfield"><code><a name="GstVideoFormatInfo.h-sub"></a>h_sub</code></em>[GST_VIDEO_MAX_COMPONENTS];</p></td>
-<td class="struct_member_description"><p>subsampling factor of the height for the component. Use
-GST_VIDEO_SUB_SCALE to scale a height.</p></td>
-<td class="struct_member_annotations"> </td>
-</tr>
-<tr>
-<td class="struct_member_name"><p><a class="link" href="gst-plugins-base-libs-gstvideo.html#GstVideoFormat" title="enum GstVideoFormat"><span class="type">GstVideoFormat</span></a> <em class="structfield"><code><a name="GstVideoFormatInfo.unpack-format"></a>unpack_format</code></em>;</p></td>
-<td class="struct_member_description"><p>the format of the unpacked pixels. This format must have the
-<a class="link" href="gst-plugins-base-libs-gstvideo.html#GST-VIDEO-FORMAT-FLAG-UNPACK:CAPS"><span class="type">GST_VIDEO_FORMAT_FLAG_UNPACK</span></a> flag set.</p></td>
-<td class="struct_member_annotations"> </td>
-</tr>
-<tr>
-<td class="struct_member_name"><p><a class="link" href="gst-plugins-base-libs-gstvideo.html#GstVideoFormatUnpack" title="GstVideoFormatUnpack ()"><span class="type">GstVideoFormatUnpack</span></a> <em class="structfield"><code><a name="GstVideoFormatInfo.unpack-func"></a>unpack_func</code></em>;</p></td>
-<td class="struct_member_description"><p>an unpack function for this format</p></td>
-<td class="struct_member_annotations"> </td>
-</tr>
-<tr>
-<td class="struct_member_name"><p><a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#gint"><span class="type">gint</span></a> <em class="structfield"><code><a name="GstVideoFormatInfo.pack-lines"></a>pack_lines</code></em>;</p></td>
-<td class="struct_member_description"><p>the amount of lines that will be packed</p></td>
-<td class="struct_member_annotations"> </td>
-</tr>
-<tr>
-<td class="struct_member_name"><p><a class="link" href="gst-plugins-base-libs-gstvideo.html#GstVideoFormatPack" title="GstVideoFormatPack ()"><span class="type">GstVideoFormatPack</span></a> <em class="structfield"><code><a name="GstVideoFormatInfo.pack-func"></a>pack_func</code></em>;</p></td>
-<td class="struct_member_description"><p>an pack function for this format</p></td>
-<td class="struct_member_annotations"> </td>
-</tr>
-<tr>
-<td class="struct_member_name"><p><a class="link" href="gst-plugins-base-libs-gstvideo.html#GstVideoTileMode" title="enum GstVideoTileMode"><span class="type">GstVideoTileMode</span></a> <em class="structfield"><code><a name="GstVideoFormatInfo.tile-mode"></a>tile_mode</code></em>;</p></td>
-<td class="struct_member_description"><p>The tiling mode</p></td>
-<td class="struct_member_annotations"> </td>
-</tr>
-<tr>
-<td class="struct_member_name"><p><a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#guint"><span class="type">guint</span></a> <em class="structfield"><code><a name="GstVideoFormatInfo.tile-ws"></a>tile_ws</code></em>;</p></td>
-<td class="struct_member_description"><p>The width of a tile, in bytes, represented as a shift</p></td>
-<td class="struct_member_annotations"> </td>
-</tr>
-<tr>
-<td class="struct_member_name"><p><a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#guint"><span class="type">guint</span></a> <em class="structfield"><code><a name="GstVideoFormatInfo.tile-hs"></a>tile_hs</code></em>;</p></td>
-<td class="struct_member_description"><p>The height of a tile, in bytes, represented as a shift</p></td>
-<td class="struct_member_annotations"> </td>
-</tr>
-</tbody>
-</table></div>
-</div>
 </div>
 <hr>
 <div class="refsect2">
 <a name="GstVideoFormatFlags"></a><h3>enum GstVideoFormatFlags</h3>
-<p>The different video flags that a format info can have.</p>
 <div class="refsect3">
 <a name="GstVideoFormatFlags.members"></a><h4>Members</h4>
 <div class="informaltable"><table class="informaltable" width="100%" border="0">
@@ -5361,75 +2740,48 @@
 <tbody>
 <tr>
 <td class="enum_member_name"><p><a name="GST-VIDEO-FORMAT-FLAG-YUV:CAPS"></a>GST_VIDEO_FORMAT_FLAG_YUV</p></td>
-<td class="enum_member_description">
-<p>The video format is YUV, components are numbered
-  0=Y, 1=U, 2=V.</p>
-</td>
-<td class="enum_member_annotations"> </td>
+<td> </td>
+<td> </td>
 </tr>
 <tr>
 <td class="enum_member_name"><p><a name="GST-VIDEO-FORMAT-FLAG-RGB:CAPS"></a>GST_VIDEO_FORMAT_FLAG_RGB</p></td>
-<td class="enum_member_description">
-<p>The video format is RGB, components are numbered
-  0=R, 1=G, 2=B.</p>
-</td>
-<td class="enum_member_annotations"> </td>
+<td> </td>
+<td> </td>
 </tr>
 <tr>
 <td class="enum_member_name"><p><a name="GST-VIDEO-FORMAT-FLAG-GRAY:CAPS"></a>GST_VIDEO_FORMAT_FLAG_GRAY</p></td>
-<td class="enum_member_description">
-<p>The video is gray, there is one gray component
-  with index 0.</p>
-</td>
-<td class="enum_member_annotations"> </td>
+<td> </td>
+<td> </td>
 </tr>
 <tr>
 <td class="enum_member_name"><p><a name="GST-VIDEO-FORMAT-FLAG-ALPHA:CAPS"></a>GST_VIDEO_FORMAT_FLAG_ALPHA</p></td>
-<td class="enum_member_description">
-<p>The video format has an alpha components with
-  the number 3.</p>
-</td>
-<td class="enum_member_annotations"> </td>
+<td> </td>
+<td> </td>
 </tr>
 <tr>
 <td class="enum_member_name"><p><a name="GST-VIDEO-FORMAT-FLAG-LE:CAPS"></a>GST_VIDEO_FORMAT_FLAG_LE</p></td>
-<td class="enum_member_description">
-<p>The video format has data stored in little
-  endianness.</p>
-</td>
-<td class="enum_member_annotations"> </td>
+<td> </td>
+<td> </td>
 </tr>
 <tr>
 <td class="enum_member_name"><p><a name="GST-VIDEO-FORMAT-FLAG-PALETTE:CAPS"></a>GST_VIDEO_FORMAT_FLAG_PALETTE</p></td>
-<td class="enum_member_description">
-<p>The video format has a palette. The palette
-  is stored in the second plane and indexes are stored in the first plane.</p>
-</td>
-<td class="enum_member_annotations"> </td>
+<td> </td>
+<td> </td>
 </tr>
 <tr>
 <td class="enum_member_name"><p><a name="GST-VIDEO-FORMAT-FLAG-COMPLEX:CAPS"></a>GST_VIDEO_FORMAT_FLAG_COMPLEX</p></td>
-<td class="enum_member_description">
-<p>The video format has a complex layout that
-  can't be described with the usual information in the <a class="link" href="gst-plugins-base-libs-gstvideo.html#GstVideoFormatInfo" title="struct GstVideoFormatInfo"><span class="type">GstVideoFormatInfo</span></a>.</p>
-</td>
-<td class="enum_member_annotations"> </td>
+<td> </td>
+<td> </td>
 </tr>
 <tr>
 <td class="enum_member_name"><p><a name="GST-VIDEO-FORMAT-FLAG-UNPACK:CAPS"></a>GST_VIDEO_FORMAT_FLAG_UNPACK</p></td>
-<td class="enum_member_description">
-<p>This format can be used in a
-  <a class="link" href="gst-plugins-base-libs-gstvideo.html#GstVideoFormatUnpack" title="GstVideoFormatUnpack ()"><span class="type">GstVideoFormatUnpack</span></a> and <a class="link" href="gst-plugins-base-libs-gstvideo.html#GstVideoFormatPack" title="GstVideoFormatPack ()"><span class="type">GstVideoFormatPack</span></a> function.</p>
-</td>
-<td class="enum_member_annotations"> </td>
+<td> </td>
+<td> </td>
 </tr>
 <tr>
 <td class="enum_member_name"><p><a name="GST-VIDEO-FORMAT-FLAG-TILED:CAPS"></a>GST_VIDEO_FORMAT_FLAG_TILED</p></td>
-<td class="enum_member_description">
-<p>The format is tiled, there is tiling information
-  in the last plane.</p>
-</td>
-<td class="enum_member_annotations"> </td>
+<td> </td>
+<td> </td>
 </tr>
 </tbody>
 </table></div>
@@ -5438,7 +2790,6 @@
 <hr>
 <div class="refsect2">
 <a name="GstVideoPackFlags"></a><h3>enum GstVideoPackFlags</h3>
-<p>The different flags that can be used when packing and unpacking.</p>
 <div class="refsect3">
 <a name="GstVideoPackFlags.members"></a><h4>Members</h4>
 <div class="informaltable"><table class="informaltable" width="100%" border="0">
@@ -5450,30 +2801,18 @@
 <tbody>
 <tr>
 <td class="enum_member_name"><p><a name="GST-VIDEO-PACK-FLAG-NONE:CAPS"></a>GST_VIDEO_PACK_FLAG_NONE</p></td>
-<td class="enum_member_description">
-<p>No flag</p>
-</td>
-<td class="enum_member_annotations"> </td>
+<td> </td>
+<td> </td>
 </tr>
 <tr>
 <td class="enum_member_name"><p><a name="GST-VIDEO-PACK-FLAG-TRUNCATE-RANGE:CAPS"></a>GST_VIDEO_PACK_FLAG_TRUNCATE_RANGE</p></td>
-<td class="enum_member_description">
-<p>When the source has a smaller depth
-  than the target format, set the least significant bits of the target
-  to 0. This is likely sightly faster but less accurate. When this flag
-  is not specified, the most significant bits of the source are duplicated
-  in the least significant bits of the destination.</p>
-</td>
-<td class="enum_member_annotations"> </td>
+<td> </td>
+<td> </td>
 </tr>
 <tr>
 <td class="enum_member_name"><p><a name="GST-VIDEO-PACK-FLAG-INTERLACED:CAPS"></a>GST_VIDEO_PACK_FLAG_INTERLACED</p></td>
-<td class="enum_member_description">
-<p>The source is interlaced. The unpacked
-  format will be interlaced as well with each line containing
-  information from alternating fields. (Since 1.2)</p>
-</td>
-<td class="enum_member_annotations"> </td>
+<td> </td>
+<td> </td>
 </tr>
 </tbody>
 </table></div>
@@ -5499,8 +2838,6 @@
 <hr>
 <div class="refsect2">
 <a name="GstVideoColorRange"></a><h3>enum GstVideoColorRange</h3>
-<p>Possible color range values. These constants are defined for 8 bit color
-values and can be scaled for other bit depths.</p>
 <div class="refsect3">
 <a name="GstVideoColorRange.members"></a><h4>Members</h4>
 <div class="informaltable"><table class="informaltable" width="100%" border="0">
@@ -5512,25 +2849,18 @@
 <tbody>
 <tr>
 <td class="enum_member_name"><p><a name="GST-VIDEO-COLOR-RANGE-UNKNOWN:CAPS"></a>GST_VIDEO_COLOR_RANGE_UNKNOWN</p></td>
-<td class="enum_member_description">
-<p>unknown range</p>
-</td>
-<td class="enum_member_annotations"> </td>
+<td> </td>
+<td> </td>
 </tr>
 <tr>
 <td class="enum_member_name"><p><a name="GST-VIDEO-COLOR-RANGE-0-255:CAPS"></a>GST_VIDEO_COLOR_RANGE_0_255</p></td>
-<td class="enum_member_description">
-<p>[0..255] for 8 bit components</p>
-</td>
-<td class="enum_member_annotations"> </td>
+<td> </td>
+<td> </td>
 </tr>
 <tr>
 <td class="enum_member_name"><p><a name="GST-VIDEO-COLOR-RANGE-16-235:CAPS"></a>GST_VIDEO_COLOR_RANGE_16_235</p></td>
-<td class="enum_member_description">
-<p>[16..235] for 8 bit components. Chroma has
-                [16..240] range.</p>
-</td>
-<td class="enum_member_annotations"> </td>
+<td> </td>
+<td> </td>
 </tr>
 </tbody>
 </table></div>
@@ -5539,8 +2869,6 @@
 <hr>
 <div class="refsect2">
 <a name="GstVideoColorMatrix"></a><h3>enum GstVideoColorMatrix</h3>
-<p>The color matrix is used to convert between Y'PbPr and
-non-linear RGB (R'G'B')</p>
 <div class="refsect3">
 <a name="GstVideoColorMatrix.members"></a><h4>Members</h4>
 <div class="informaltable"><table class="informaltable" width="100%" border="0">
@@ -5552,52 +2880,38 @@
 <tbody>
 <tr>
 <td class="enum_member_name"><p><a name="GST-VIDEO-COLOR-MATRIX-UNKNOWN:CAPS"></a>GST_VIDEO_COLOR_MATRIX_UNKNOWN</p></td>
-<td class="enum_member_description">
-<p>unknown matrix</p>
-</td>
-<td class="enum_member_annotations"> </td>
+<td> </td>
+<td> </td>
 </tr>
 <tr>
 <td class="enum_member_name"><p><a name="GST-VIDEO-COLOR-MATRIX-RGB:CAPS"></a>GST_VIDEO_COLOR_MATRIX_RGB</p></td>
-<td class="enum_member_description">
-<p>identity matrix</p>
-</td>
-<td class="enum_member_annotations"> </td>
+<td> </td>
+<td> </td>
 </tr>
 <tr>
 <td class="enum_member_name"><p><a name="GST-VIDEO-COLOR-MATRIX-FCC:CAPS"></a>GST_VIDEO_COLOR_MATRIX_FCC</p></td>
-<td class="enum_member_description">
-<p>FCC color matrix</p>
-</td>
-<td class="enum_member_annotations"> </td>
+<td> </td>
+<td> </td>
 </tr>
 <tr>
 <td class="enum_member_name"><p><a name="GST-VIDEO-COLOR-MATRIX-BT709:CAPS"></a>GST_VIDEO_COLOR_MATRIX_BT709</p></td>
-<td class="enum_member_description">
-<p>ITU-R BT.709 color matrix</p>
-</td>
-<td class="enum_member_annotations"> </td>
+<td> </td>
+<td> </td>
 </tr>
 <tr>
 <td class="enum_member_name"><p><a name="GST-VIDEO-COLOR-MATRIX-BT601:CAPS"></a>GST_VIDEO_COLOR_MATRIX_BT601</p></td>
-<td class="enum_member_description">
-<p>ITU-R BT.601 color matrix</p>
-</td>
-<td class="enum_member_annotations"> </td>
+<td> </td>
+<td> </td>
 </tr>
 <tr>
 <td class="enum_member_name"><p><a name="GST-VIDEO-COLOR-MATRIX-SMPTE240M:CAPS"></a>GST_VIDEO_COLOR_MATRIX_SMPTE240M</p></td>
-<td class="enum_member_description">
-<p>SMPTE 240M color matrix</p>
-</td>
-<td class="enum_member_annotations"> </td>
+<td> </td>
+<td> </td>
 </tr>
 <tr>
 <td class="enum_member_name"><p><a name="GST-VIDEO-COLOR-MATRIX-BT2020:CAPS"></a>GST_VIDEO_COLOR_MATRIX_BT2020</p></td>
-<td class="enum_member_description">
-<p>ITU-R BT.2020 color matrix. Since: 1.6.</p>
-</td>
-<td class="enum_member_annotations"> </td>
+<td> </td>
+<td> </td>
 </tr>
 </tbody>
 </table></div>
@@ -5606,8 +2920,6 @@
 <hr>
 <div class="refsect2">
 <a name="GstVideoColorPrimaries"></a><h3>enum GstVideoColorPrimaries</h3>
-<p>The color primaries define the how to transform linear RGB values to and from
-the CIE XYZ colorspace.</p>
 <div class="refsect3">
 <a name="GstVideoColorPrimaries.members"></a><h4>Members</h4>
 <div class="informaltable"><table class="informaltable" width="100%" border="0">
@@ -5619,66 +2931,48 @@
 <tbody>
 <tr>
 <td class="enum_member_name"><p><a name="GST-VIDEO-COLOR-PRIMARIES-UNKNOWN:CAPS"></a>GST_VIDEO_COLOR_PRIMARIES_UNKNOWN</p></td>
-<td class="enum_member_description">
-<p>unknown color primaries</p>
-</td>
-<td class="enum_member_annotations"> </td>
+<td> </td>
+<td> </td>
 </tr>
 <tr>
 <td class="enum_member_name"><p><a name="GST-VIDEO-COLOR-PRIMARIES-BT709:CAPS"></a>GST_VIDEO_COLOR_PRIMARIES_BT709</p></td>
-<td class="enum_member_description">
-<p>BT709 primaries</p>
-</td>
-<td class="enum_member_annotations"> </td>
+<td> </td>
+<td> </td>
 </tr>
 <tr>
 <td class="enum_member_name"><p><a name="GST-VIDEO-COLOR-PRIMARIES-BT470M:CAPS"></a>GST_VIDEO_COLOR_PRIMARIES_BT470M</p></td>
-<td class="enum_member_description">
-<p>BT470M primaries</p>
-</td>
-<td class="enum_member_annotations"> </td>
+<td> </td>
+<td> </td>
 </tr>
 <tr>
 <td class="enum_member_name"><p><a name="GST-VIDEO-COLOR-PRIMARIES-BT470BG:CAPS"></a>GST_VIDEO_COLOR_PRIMARIES_BT470BG</p></td>
-<td class="enum_member_description">
-<p>BT470BG primaries</p>
-</td>
-<td class="enum_member_annotations"> </td>
+<td> </td>
+<td> </td>
 </tr>
 <tr>
 <td class="enum_member_name"><p><a name="GST-VIDEO-COLOR-PRIMARIES-SMPTE170M:CAPS"></a>GST_VIDEO_COLOR_PRIMARIES_SMPTE170M</p></td>
-<td class="enum_member_description">
-<p>SMPTE170M primaries</p>
-</td>
-<td class="enum_member_annotations"> </td>
+<td> </td>
+<td> </td>
 </tr>
 <tr>
 <td class="enum_member_name"><p><a name="GST-VIDEO-COLOR-PRIMARIES-SMPTE240M:CAPS"></a>GST_VIDEO_COLOR_PRIMARIES_SMPTE240M</p></td>
-<td class="enum_member_description">
-<p>SMPTE240M primaries</p>
-</td>
-<td class="enum_member_annotations"> </td>
+<td> </td>
+<td> </td>
 </tr>
 <tr>
 <td class="enum_member_name"><p><a name="GST-VIDEO-COLOR-PRIMARIES-FILM:CAPS"></a>GST_VIDEO_COLOR_PRIMARIES_FILM</p></td>
-<td class="enum_member_description">
-<p>Generic film</p>
-</td>
-<td class="enum_member_annotations"> </td>
+<td> </td>
+<td> </td>
 </tr>
 <tr>
 <td class="enum_member_name"><p><a name="GST-VIDEO-COLOR-PRIMARIES-BT2020:CAPS"></a>GST_VIDEO_COLOR_PRIMARIES_BT2020</p></td>
-<td class="enum_member_description">
-<p>BT2020 primaries. Since: 1.6.</p>
-</td>
-<td class="enum_member_annotations"> </td>
+<td> </td>
+<td> </td>
 </tr>
 <tr>
 <td class="enum_member_name"><p><a name="GST-VIDEO-COLOR-PRIMARIES-ADOBERGB:CAPS"></a>GST_VIDEO_COLOR_PRIMARIES_ADOBERGB</p></td>
-<td class="enum_member_description">
-<p>Adobe RGB primaries. Since: 1.8</p>
-</td>
-<td class="enum_member_annotations"> </td>
+<td> </td>
+<td> </td>
 </tr>
 </tbody>
 </table></div>
@@ -5687,8 +2981,6 @@
 <hr>
 <div class="refsect2">
 <a name="GstVideoTransferFunction"></a><h3>enum GstVideoTransferFunction</h3>
-<p>The video transfer function defines the formula for converting between
-non-linear RGB (R'G'B') and linear RGB</p>
 <div class="refsect3">
 <a name="GstVideoTransferFunction.members"></a><h4>Members</h4>
 <div class="informaltable"><table class="informaltable" width="100%" border="0">
@@ -5700,101 +2992,68 @@
 <tbody>
 <tr>
 <td class="enum_member_name"><p><a name="GST-VIDEO-TRANSFER-UNKNOWN:CAPS"></a>GST_VIDEO_TRANSFER_UNKNOWN</p></td>
-<td class="enum_member_description">
-<p>unknown transfer function</p>
-</td>
-<td class="enum_member_annotations"> </td>
+<td> </td>
+<td> </td>
 </tr>
 <tr>
 <td class="enum_member_name"><p><a name="GST-VIDEO-TRANSFER-GAMMA10:CAPS"></a>GST_VIDEO_TRANSFER_GAMMA10</p></td>
-<td class="enum_member_description">
-<p>linear RGB, gamma 1.0 curve</p>
-</td>
-<td class="enum_member_annotations"> </td>
+<td> </td>
+<td> </td>
 </tr>
 <tr>
 <td class="enum_member_name"><p><a name="GST-VIDEO-TRANSFER-GAMMA18:CAPS"></a>GST_VIDEO_TRANSFER_GAMMA18</p></td>
-<td class="enum_member_description">
-<p>Gamma 1.8 curve</p>
-</td>
-<td class="enum_member_annotations"> </td>
+<td> </td>
+<td> </td>
 </tr>
 <tr>
 <td class="enum_member_name"><p><a name="GST-VIDEO-TRANSFER-GAMMA20:CAPS"></a>GST_VIDEO_TRANSFER_GAMMA20</p></td>
-<td class="enum_member_description">
-<p>Gamma 2.0 curve</p>
-</td>
-<td class="enum_member_annotations"> </td>
+<td> </td>
+<td> </td>
 </tr>
 <tr>
 <td class="enum_member_name"><p><a name="GST-VIDEO-TRANSFER-GAMMA22:CAPS"></a>GST_VIDEO_TRANSFER_GAMMA22</p></td>
-<td class="enum_member_description">
-<p>Gamma 2.2 curve</p>
-</td>
-<td class="enum_member_annotations"> </td>
+<td> </td>
+<td> </td>
 </tr>
 <tr>
 <td class="enum_member_name"><p><a name="GST-VIDEO-TRANSFER-BT709:CAPS"></a>GST_VIDEO_TRANSFER_BT709</p></td>
-<td class="enum_member_description">
-<p>Gamma 2.2 curve with a linear segment in the lower
-                          range</p>
-</td>
-<td class="enum_member_annotations"> </td>
+<td> </td>
+<td> </td>
 </tr>
 <tr>
 <td class="enum_member_name"><p><a name="GST-VIDEO-TRANSFER-SMPTE240M:CAPS"></a>GST_VIDEO_TRANSFER_SMPTE240M</p></td>
-<td class="enum_member_description">
-<p>Gamma 2.2 curve with a linear segment in the
-                              lower range</p>
-</td>
-<td class="enum_member_annotations"> </td>
+<td> </td>
+<td> </td>
 </tr>
 <tr>
 <td class="enum_member_name"><p><a name="GST-VIDEO-TRANSFER-SRGB:CAPS"></a>GST_VIDEO_TRANSFER_SRGB</p></td>
-<td class="enum_member_description">
-<p>Gamma 2.4 curve with a linear segment in the lower
-                         range</p>
-</td>
-<td class="enum_member_annotations"> </td>
+<td> </td>
+<td> </td>
 </tr>
 <tr>
 <td class="enum_member_name"><p><a name="GST-VIDEO-TRANSFER-GAMMA28:CAPS"></a>GST_VIDEO_TRANSFER_GAMMA28</p></td>
-<td class="enum_member_description">
-<p>Gamma 2.8 curve</p>
-</td>
-<td class="enum_member_annotations"> </td>
+<td> </td>
+<td> </td>
 </tr>
 <tr>
 <td class="enum_member_name"><p><a name="GST-VIDEO-TRANSFER-LOG100:CAPS"></a>GST_VIDEO_TRANSFER_LOG100</p></td>
-<td class="enum_member_description">
-<p>Logarithmic transfer characteristic
-                            100:1 range</p>
-</td>
-<td class="enum_member_annotations"> </td>
+<td> </td>
+<td> </td>
 </tr>
 <tr>
 <td class="enum_member_name"><p><a name="GST-VIDEO-TRANSFER-LOG316:CAPS"></a>GST_VIDEO_TRANSFER_LOG316</p></td>
-<td class="enum_member_description">
-<p>Logarithmic transfer characteristic
-                            316.22777:1 range</p>
-</td>
-<td class="enum_member_annotations"> </td>
+<td> </td>
+<td> </td>
 </tr>
 <tr>
 <td class="enum_member_name"><p><a name="GST-VIDEO-TRANSFER-BT2020-12:CAPS"></a>GST_VIDEO_TRANSFER_BT2020_12</p></td>
-<td class="enum_member_description">
-<p>Gamma 2.2 curve with a linear segment in the lower
-                               range. Used for BT.2020 with 12 bits per
-                               component. Since: 1.6.</p>
-</td>
-<td class="enum_member_annotations"> </td>
+<td> </td>
+<td> </td>
 </tr>
 <tr>
 <td class="enum_member_name"><p><a name="GST-VIDEO-TRANSFER-ADOBERGB:CAPS"></a>GST_VIDEO_TRANSFER_ADOBERGB</p></td>
-<td class="enum_member_description">
-<p>Gamma 2.19921875. Since: 1.8</p>
-</td>
-<td class="enum_member_annotations"> </td>
+<td> </td>
+<td> </td>
 </tr>
 </tbody>
 </table></div>
@@ -5810,41 +3069,6 @@
   GstVideoColorPrimaries    primaries;
 } GstVideoColorimetry;
 </pre>
-<p>Structure describing the color info.</p>
-<div class="refsect3">
-<a name="GstVideoColorimetry.members"></a><h4>Members</h4>
-<div class="informaltable"><table class="informaltable" width="100%" border="0">
-<colgroup>
-<col width="300px" class="struct_members_name">
-<col class="struct_members_description">
-<col width="200px" class="struct_members_annotations">
-</colgroup>
-<tbody>
-<tr>
-<td class="struct_member_name"><p><a class="link" href="gst-plugins-base-libs-gstvideo.html#GstVideoColorRange" title="enum GstVideoColorRange"><span class="type">GstVideoColorRange</span></a> <em class="structfield"><code><a name="GstVideoColorimetry.range"></a>range</code></em>;</p></td>
-<td class="struct_member_description"><p>the color range. This is the valid range for the samples.
-It is used to convert the samples to Y'PbPr values.</p></td>
-<td class="struct_member_annotations"> </td>
-</tr>
-<tr>
-<td class="struct_member_name"><p><a class="link" href="gst-plugins-base-libs-gstvideo.html#GstVideoColorMatrix" title="enum GstVideoColorMatrix"><span class="type">GstVideoColorMatrix</span></a> <em class="structfield"><code><a name="GstVideoColorimetry.matrix"></a>matrix</code></em>;</p></td>
-<td class="struct_member_description"><p>the color matrix. Used to convert between Y'PbPr and
-non-linear RGB (R'G'B')</p></td>
-<td class="struct_member_annotations"> </td>
-</tr>
-<tr>
-<td class="struct_member_name"><p><a class="link" href="gst-plugins-base-libs-gstvideo.html#GstVideoTransferFunction" title="enum GstVideoTransferFunction"><span class="type">GstVideoTransferFunction</span></a> <em class="structfield"><code><a name="GstVideoColorimetry.transfer"></a>transfer</code></em>;</p></td>
-<td class="struct_member_description"><p>the transfer function. used to convert between R'G'B' and RGB</p></td>
-<td class="struct_member_annotations"> </td>
-</tr>
-<tr>
-<td class="struct_member_name"><p><a class="link" href="gst-plugins-base-libs-gstvideo.html#GstVideoColorPrimaries" title="enum GstVideoColorPrimaries"><span class="type">GstVideoColorPrimaries</span></a> <em class="structfield"><code><a name="GstVideoColorimetry.primaries"></a>primaries</code></em>;</p></td>
-<td class="struct_member_description"><p>color primaries. used to convert between R'G'B' and CIE XYZ</p></td>
-<td class="struct_member_annotations"> </td>
-</tr>
-</tbody>
-</table></div>
-</div>
 </div>
 <hr>
 <div class="refsect2">
@@ -5879,104 +3103,10 @@
     } abi;
 };
 </pre>
-<p>Information describing image properties. This information can be filled
-in from GstCaps with <a class="link" href="gst-plugins-base-libs-gstvideo.html#gst-video-info-from-caps" title="gst_video_info_from_caps ()"><code class="function">gst_video_info_from_caps()</code></a>. The information is also used
-to store the specific video info when mapping a video frame with
-<a class="link" href="gst-plugins-base-libs-gstvideo.html#gst-video-frame-map" title="gst_video_frame_map ()"><code class="function">gst_video_frame_map()</code></a>.</p>
-<p>Use the provided macros to access the info in this structure.</p>
-<div class="refsect3">
-<a name="GstVideoInfo.members"></a><h4>Members</h4>
-<div class="informaltable"><table class="informaltable" width="100%" border="0">
-<colgroup>
-<col width="300px" class="struct_members_name">
-<col class="struct_members_description">
-<col width="200px" class="struct_members_annotations">
-</colgroup>
-<tbody>
-<tr>
-<td class="struct_member_name"><p>const <a class="link" href="gst-plugins-base-libs-gstvideo.html#GstVideoFormatInfo" title="struct GstVideoFormatInfo"><span class="type">GstVideoFormatInfo</span></a> *<em class="structfield"><code><a name="GstVideoInfo.finfo"></a>finfo</code></em>;</p></td>
-<td class="struct_member_description"><p>the format info of the video</p></td>
-<td class="struct_member_annotations"> </td>
-</tr>
-<tr>
-<td class="struct_member_name"><p><a class="link" href="gst-plugins-base-libs-gstvideo.html#GstVideoInterlaceMode" title="enum GstVideoInterlaceMode"><span class="type">GstVideoInterlaceMode</span></a> <em class="structfield"><code><a name="GstVideoInfo.interlace-mode"></a>interlace_mode</code></em>;</p></td>
-<td class="struct_member_description"><p>the interlace mode</p></td>
-<td class="struct_member_annotations"> </td>
-</tr>
-<tr>
-<td class="struct_member_name"><p><a class="link" href="gst-plugins-base-libs-gstvideo.html#GstVideoFlags" title="enum GstVideoFlags"><span class="type">GstVideoFlags</span></a> <em class="structfield"><code><a name="GstVideoInfo.flags"></a>flags</code></em>;</p></td>
-<td class="struct_member_description"><p>additional video flags</p></td>
-<td class="struct_member_annotations"> </td>
-</tr>
-<tr>
-<td class="struct_member_name"><p><a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#gint"><span class="type">gint</span></a> <em class="structfield"><code><a name="GstVideoInfo.width"></a>width</code></em>;</p></td>
-<td class="struct_member_description"><p>the width of the video</p></td>
-<td class="struct_member_annotations"> </td>
-</tr>
-<tr>
-<td class="struct_member_name"><p><a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#gint"><span class="type">gint</span></a> <em class="structfield"><code><a name="GstVideoInfo.height"></a>height</code></em>;</p></td>
-<td class="struct_member_description"><p>the height of the video</p></td>
-<td class="struct_member_annotations"> </td>
-</tr>
-<tr>
-<td class="struct_member_name"><p><a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#gsize"><span class="type">gsize</span></a> <em class="structfield"><code><a name="GstVideoInfo.size"></a>size</code></em>;</p></td>
-<td class="struct_member_description"><p>the default size of one frame</p></td>
-<td class="struct_member_annotations"> </td>
-</tr>
-<tr>
-<td class="struct_member_name"><p><a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#gint"><span class="type">gint</span></a> <em class="structfield"><code><a name="GstVideoInfo.views"></a>views</code></em>;</p></td>
-<td class="struct_member_description"><p>the number of views for multiview video</p></td>
-<td class="struct_member_annotations"> </td>
-</tr>
-<tr>
-<td class="struct_member_name"><p><a class="link" href="gst-plugins-base-libs-GstVideoChroma.html#GstVideoChromaSite" title="enum GstVideoChromaSite"><span class="type">GstVideoChromaSite</span></a> <em class="structfield"><code><a name="GstVideoInfo.chroma-site"></a>chroma_site</code></em>;</p></td>
-<td class="struct_member_description"><p>a <a class="link" href="gst-plugins-base-libs-GstVideoChroma.html#GstVideoChromaSite" title="enum GstVideoChromaSite"><span class="type">GstVideoChromaSite</span></a>.</p></td>
-<td class="struct_member_annotations"> </td>
-</tr>
-<tr>
-<td class="struct_member_name"><p><a class="link" href="gst-plugins-base-libs-gstvideo.html#GstVideoColorimetry" title="GstVideoColorimetry"><span class="type">GstVideoColorimetry</span></a> <em class="structfield"><code><a name="GstVideoInfo.colorimetry"></a>colorimetry</code></em>;</p></td>
-<td class="struct_member_description"><p>the colorimetry info</p></td>
-<td class="struct_member_annotations"> </td>
-</tr>
-<tr>
-<td class="struct_member_name"><p><a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#gint"><span class="type">gint</span></a> <em class="structfield"><code><a name="GstVideoInfo.par-n"></a>par_n</code></em>;</p></td>
-<td class="struct_member_description"><p>the pixel-aspect-ratio numerator</p></td>
-<td class="struct_member_annotations"> </td>
-</tr>
-<tr>
-<td class="struct_member_name"><p><a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#gint"><span class="type">gint</span></a> <em class="structfield"><code><a name="GstVideoInfo.par-d"></a>par_d</code></em>;</p></td>
-<td class="struct_member_description"><p>the pixel-aspect-ratio demnominator</p></td>
-<td class="struct_member_annotations"> </td>
-</tr>
-<tr>
-<td class="struct_member_name"><p><a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#gint"><span class="type">gint</span></a> <em class="structfield"><code><a name="GstVideoInfo.fps-n"></a>fps_n</code></em>;</p></td>
-<td class="struct_member_description"><p>the framerate numerator</p></td>
-<td class="struct_member_annotations"> </td>
-</tr>
-<tr>
-<td class="struct_member_name"><p><a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#gint"><span class="type">gint</span></a> <em class="structfield"><code><a name="GstVideoInfo.fps-d"></a>fps_d</code></em>;</p></td>
-<td class="struct_member_description"><p>the framerate demnominator</p></td>
-<td class="struct_member_annotations"> </td>
-</tr>
-<tr>
-<td class="struct_member_name"><p><a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#gsize"><span class="type">gsize</span></a> <em class="structfield"><code><a name="GstVideoInfo.offset"></a>offset</code></em>[GST_VIDEO_MAX_PLANES];</p></td>
-<td class="struct_member_description"><p>offsets of the planes</p></td>
-<td class="struct_member_annotations"> </td>
-</tr>
-<tr>
-<td class="struct_member_name"><p><a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#gint"><span class="type">gint</span></a> <em class="structfield"><code><a name="GstVideoInfo.stride"></a>stride</code></em>[GST_VIDEO_MAX_PLANES];</p></td>
-<td class="struct_member_description"><p>strides of the planes</p></td>
-<td class="struct_member_annotations"> </td>
-</tr>
-</tbody>
-</table></div>
-</div>
 </div>
 <hr>
 <div class="refsect2">
 <a name="GstVideoInterlaceMode"></a><h3>enum GstVideoInterlaceMode</h3>
-<p>The possible values of the <a class="link" href="gst-plugins-base-libs-gstvideo.html#GstVideoInterlaceMode" title="enum GstVideoInterlaceMode"><span class="type">GstVideoInterlaceMode</span></a> describing the interlace
-mode of the stream.</p>
 <div class="refsect3">
 <a name="GstVideoInterlaceMode.members"></a><h4>Members</h4>
 <div class="informaltable"><table class="informaltable" width="100%" border="0">
@@ -5988,39 +3118,23 @@
 <tbody>
 <tr>
 <td class="enum_member_name"><p><a name="GST-VIDEO-INTERLACE-MODE-PROGRESSIVE:CAPS"></a>GST_VIDEO_INTERLACE_MODE_PROGRESSIVE</p></td>
-<td class="enum_member_description">
-<p>all frames are progressive</p>
-</td>
-<td class="enum_member_annotations"> </td>
+<td> </td>
+<td> </td>
 </tr>
 <tr>
 <td class="enum_member_name"><p><a name="GST-VIDEO-INTERLACE-MODE-INTERLEAVED:CAPS"></a>GST_VIDEO_INTERLACE_MODE_INTERLEAVED</p></td>
-<td class="enum_member_description">
-<p>2 fields are interleaved in one video
-    frame. Extra buffer flags describe the field order.</p>
-</td>
-<td class="enum_member_annotations"> </td>
+<td> </td>
+<td> </td>
 </tr>
 <tr>
 <td class="enum_member_name"><p><a name="GST-VIDEO-INTERLACE-MODE-MIXED:CAPS"></a>GST_VIDEO_INTERLACE_MODE_MIXED</p></td>
-<td class="enum_member_description">
-<p>frames contains both interlaced and
-    progressive video, the buffer flags describe the frame and fields.</p>
-</td>
-<td class="enum_member_annotations"> </td>
+<td> </td>
+<td> </td>
 </tr>
 <tr>
 <td class="enum_member_name"><p><a name="GST-VIDEO-INTERLACE-MODE-FIELDS:CAPS"></a>GST_VIDEO_INTERLACE_MODE_FIELDS</p></td>
-<td class="enum_member_description">
-<p>2 fields are stored in one buffer, use the
-    frame ID to get access to the required field. For multiview (the
-    'views' property &gt; 1) the fields of view N can be found at frame ID
-    (N * 2) and (N * 2) + 1.
-    Each field has only half the amount of lines as noted in the
-    height property. This mode requires multiple GstVideoMeta metadata
-    to describe the fields.</p>
-</td>
-<td class="enum_member_annotations"> </td>
+<td> </td>
+<td> </td>
 </tr>
 </tbody>
 </table></div>
@@ -6029,9 +3143,6 @@
 <hr>
 <div class="refsect2">
 <a name="GstVideoMultiviewMode"></a><h3>enum GstVideoMultiviewMode</h3>
-<p>All possible stereoscopic 3D and multiview representations.
-In conjunction with <a class="link" href="gst-plugins-base-libs-gstvideo.html#GstVideoMultiviewFlags" title="enum GstVideoMultiviewFlags"><span class="type">GstVideoMultiviewFlags</span></a>, describes how
-multiview content is being transported in the stream.</p>
 <div class="refsect3">
 <a name="GstVideoMultiviewMode.members"></a><h4>Members</h4>
 <div class="informaltable"><table class="informaltable" width="100%" border="0">
@@ -6043,114 +3154,68 @@
 <tbody>
 <tr>
 <td class="enum_member_name"><p><a name="GST-VIDEO-MULTIVIEW-MODE-NONE:CAPS"></a>GST_VIDEO_MULTIVIEW_MODE_NONE</p></td>
-<td class="enum_member_description">
-<p>A special value indicating
-no multiview information. Used in GstVideoInfo and other places to
-indicate that no specific multiview handling has been requested or
-provided. This value is never carried on caps.</p>
-</td>
-<td class="enum_member_annotations"> </td>
+<td> </td>
+<td> </td>
 </tr>
 <tr>
 <td class="enum_member_name"><p><a name="GST-VIDEO-MULTIVIEW-MODE-MONO:CAPS"></a>GST_VIDEO_MULTIVIEW_MODE_MONO</p></td>
-<td class="enum_member_description">
-<p>All frames are monoscopic.</p>
-</td>
-<td class="enum_member_annotations"> </td>
+<td> </td>
+<td> </td>
 </tr>
 <tr>
 <td class="enum_member_name"><p><a name="GST-VIDEO-MULTIVIEW-MODE-LEFT:CAPS"></a>GST_VIDEO_MULTIVIEW_MODE_LEFT</p></td>
-<td class="enum_member_description">
-<p>All frames represent a left-eye view.</p>
-</td>
-<td class="enum_member_annotations"> </td>
+<td> </td>
+<td> </td>
 </tr>
 <tr>
 <td class="enum_member_name"><p><a name="GST-VIDEO-MULTIVIEW-MODE-RIGHT:CAPS"></a>GST_VIDEO_MULTIVIEW_MODE_RIGHT</p></td>
-<td class="enum_member_description">
-<p>All frames represent a right-eye view.</p>
-</td>
-<td class="enum_member_annotations"> </td>
+<td> </td>
+<td> </td>
 </tr>
 <tr>
 <td class="enum_member_name"><p><a name="GST-VIDEO-MULTIVIEW-MODE-SIDE-BY-SIDE:CAPS"></a>GST_VIDEO_MULTIVIEW_MODE_SIDE_BY_SIDE</p></td>
-<td class="enum_member_description">
-<p>Left and right eye views are
-provided in the left and right half of the frame respectively.</p>
-</td>
-<td class="enum_member_annotations"> </td>
+<td> </td>
+<td> </td>
 </tr>
 <tr>
 <td class="enum_member_name"><p><a name="GST-VIDEO-MULTIVIEW-MODE-SIDE-BY-SIDE-QUINCUNX:CAPS"></a>GST_VIDEO_MULTIVIEW_MODE_SIDE_BY_SIDE_QUINCUNX</p></td>
-<td class="enum_member_description">
-<p>Left and right eye
-views are provided in the left and right half of the frame, but
-have been sampled using quincunx method, with half-pixel offset
-between the 2 views.</p>
-</td>
-<td class="enum_member_annotations"> </td>
+<td> </td>
+<td> </td>
 </tr>
 <tr>
 <td class="enum_member_name"><p><a name="GST-VIDEO-MULTIVIEW-MODE-COLUMN-INTERLEAVED:CAPS"></a>GST_VIDEO_MULTIVIEW_MODE_COLUMN_INTERLEAVED</p></td>
-<td class="enum_member_description">
-<p>Alternating vertical
-columns of pixels represent the left and right eye view respectively.</p>
-</td>
-<td class="enum_member_annotations"> </td>
+<td> </td>
+<td> </td>
 </tr>
 <tr>
 <td class="enum_member_name"><p><a name="GST-VIDEO-MULTIVIEW-MODE-ROW-INTERLEAVED:CAPS"></a>GST_VIDEO_MULTIVIEW_MODE_ROW_INTERLEAVED</p></td>
-<td class="enum_member_description">
-<p>Alternating horizontal
-rows of pixels represent the left and right eye view respectively.</p>
-</td>
-<td class="enum_member_annotations"> </td>
+<td> </td>
+<td> </td>
 </tr>
 <tr>
 <td class="enum_member_name"><p><a name="GST-VIDEO-MULTIVIEW-MODE-TOP-BOTTOM:CAPS"></a>GST_VIDEO_MULTIVIEW_MODE_TOP_BOTTOM</p></td>
-<td class="enum_member_description">
-<p>The top half of the frame
-contains the left eye, and the bottom half the right eye.</p>
-</td>
-<td class="enum_member_annotations"> </td>
+<td> </td>
+<td> </td>
 </tr>
 <tr>
 <td class="enum_member_name"><p><a name="GST-VIDEO-MULTIVIEW-MODE-CHECKERBOARD:CAPS"></a>GST_VIDEO_MULTIVIEW_MODE_CHECKERBOARD</p></td>
-<td class="enum_member_description">
-<p>Pixels are arranged with
-alternating pixels representing left and right eye views in a
-checkerboard fashion.</p>
-</td>
-<td class="enum_member_annotations"> </td>
+<td> </td>
+<td> </td>
 </tr>
 <tr>
 <td class="enum_member_name"><p><a name="GST-VIDEO-MULTIVIEW-MODE-FRAME-BY-FRAME:CAPS"></a>GST_VIDEO_MULTIVIEW_MODE_FRAME_BY_FRAME</p></td>
-<td class="enum_member_description">
-<p>Left and right eye views
-are provided in separate frames alternately.</p>
-</td>
-<td class="enum_member_annotations"> </td>
+<td> </td>
+<td> </td>
 </tr>
 <tr>
 <td class="enum_member_name"><p><a name="GST-VIDEO-MULTIVIEW-MODE-MULTIVIEW-FRAME-BY-FRAME:CAPS"></a>GST_VIDEO_MULTIVIEW_MODE_MULTIVIEW_FRAME_BY_FRAME</p></td>
-<td class="enum_member_description">
-<p>Multiple
-independent views are provided in separate frames in sequence.
-This method only applies to raw video buffers at the moment.
-Specific view identification is via the <span class="type">GstVideoMultiviewMeta</span>
-and <a class="link" href="gst-plugins-base-libs-gstvideometa.html#GstVideoMeta" title="struct GstVideoMeta"><span class="type">GstVideoMeta</span></a>(s) on raw video buffers.</p>
-</td>
-<td class="enum_member_annotations"> </td>
+<td> </td>
+<td> </td>
 </tr>
 <tr>
 <td class="enum_member_name"><p><a name="GST-VIDEO-MULTIVIEW-MODE-SEPARATED:CAPS"></a>GST_VIDEO_MULTIVIEW_MODE_SEPARATED</p></td>
-<td class="enum_member_description">
-<p>Multiple views are
-provided as separate <a href="/usr/share/gtk-doc/html/gstreamer-1.0GstMemory.html#GstMemory-struct"><span class="type">GstMemory</span></a> framebuffers attached to each
-<a href="/usr/share/gtk-doc/html/gstreamer-1.0GstBuffer.html#GstBuffer-struct"><span class="type">GstBuffer</span></a>, described by the <span class="type">GstVideoMultiviewMeta</span>
-and <a class="link" href="gst-plugins-base-libs-gstvideometa.html#GstVideoMeta" title="struct GstVideoMeta"><span class="type">GstVideoMeta</span></a>(s)</p>
-</td>
-<td class="enum_member_annotations"> </td>
+<td> </td>
+<td> </td>
 </tr>
 </tbody>
 </table></div>
@@ -6159,14 +3224,6 @@
 <hr>
 <div class="refsect2">
 <a name="GstVideoMultiviewFramePacking"></a><h3>enum GstVideoMultiviewFramePacking</h3>
-<p><a class="link" href="gst-plugins-base-libs-gstvideo.html#GstVideoMultiviewFramePacking" title="enum GstVideoMultiviewFramePacking"><span class="type">GstVideoMultiviewFramePacking</span></a> represents the subset of <a class="link" href="gst-plugins-base-libs-gstvideo.html#GstVideoMultiviewMode" title="enum GstVideoMultiviewMode"><span class="type">GstVideoMultiviewMode</span></a>
-values that can be applied to any video frame without needing extra metadata.
-It can be used by elements that provide a property to override the
-multiview interpretation of a video stream when the video doesn't contain
-any markers.</p>
-<p>This enum is used (for example) on playbin, to re-interpret a played
-video stream as a stereoscopic video. The individual enum values are
-equivalent to and have the same value as the matching <a class="link" href="gst-plugins-base-libs-gstvideo.html#GstVideoMultiviewMode" title="enum GstVideoMultiviewMode"><span class="type">GstVideoMultiviewMode</span></a>.</p>
 <div class="refsect3">
 <a name="GstVideoMultiviewFramePacking.members"></a><h4>Members</h4>
 <div class="informaltable"><table class="informaltable" width="100%" border="0">
@@ -6178,83 +3235,53 @@
 <tbody>
 <tr>
 <td class="enum_member_name"><p><a name="GST-VIDEO-MULTIVIEW-FRAME-PACKING-NONE:CAPS"></a>GST_VIDEO_MULTIVIEW_FRAME_PACKING_NONE</p></td>
-<td class="enum_member_description">
-<p>A special value indicating
-no frame packing info.</p>
-</td>
-<td class="enum_member_annotations"> </td>
+<td> </td>
+<td> </td>
 </tr>
 <tr>
 <td class="enum_member_name"><p><a name="GST-VIDEO-MULTIVIEW-FRAME-PACKING-MONO:CAPS"></a>GST_VIDEO_MULTIVIEW_FRAME_PACKING_MONO</p></td>
-<td class="enum_member_description">
-<p>All frames are monoscopic.</p>
-</td>
-<td class="enum_member_annotations"> </td>
+<td> </td>
+<td> </td>
 </tr>
 <tr>
 <td class="enum_member_name"><p><a name="GST-VIDEO-MULTIVIEW-FRAME-PACKING-LEFT:CAPS"></a>GST_VIDEO_MULTIVIEW_FRAME_PACKING_LEFT</p></td>
-<td class="enum_member_description">
-<p>All frames represent a left-eye view.</p>
-</td>
-<td class="enum_member_annotations"> </td>
+<td> </td>
+<td> </td>
 </tr>
 <tr>
 <td class="enum_member_name"><p><a name="GST-VIDEO-MULTIVIEW-FRAME-PACKING-RIGHT:CAPS"></a>GST_VIDEO_MULTIVIEW_FRAME_PACKING_RIGHT</p></td>
-<td class="enum_member_description">
-<p>All frames represent a right-eye view.</p>
-</td>
-<td class="enum_member_annotations"> </td>
+<td> </td>
+<td> </td>
 </tr>
 <tr>
 <td class="enum_member_name"><p><a name="GST-VIDEO-MULTIVIEW-FRAME-PACKING-SIDE-BY-SIDE:CAPS"></a>GST_VIDEO_MULTIVIEW_FRAME_PACKING_SIDE_BY_SIDE</p></td>
-<td class="enum_member_description">
-<p>Left and right eye views are
-provided in the left and right half of the frame respectively.</p>
-</td>
-<td class="enum_member_annotations"> </td>
+<td> </td>
+<td> </td>
 </tr>
 <tr>
 <td class="enum_member_name"><p><a name="GST-VIDEO-MULTIVIEW-FRAME-PACKING-SIDE-BY-SIDE-QUINCUNX:CAPS"></a>GST_VIDEO_MULTIVIEW_FRAME_PACKING_SIDE_BY_SIDE_QUINCUNX</p></td>
-<td class="enum_member_description">
-<p>Left and right eye
-views are provided in the left and right half of the frame, but
-have been sampled using quincunx method, with half-pixel offset
-between the 2 views.</p>
-</td>
-<td class="enum_member_annotations"> </td>
+<td> </td>
+<td> </td>
 </tr>
 <tr>
 <td class="enum_member_name"><p><a name="GST-VIDEO-MULTIVIEW-FRAME-PACKING-COLUMN-INTERLEAVED:CAPS"></a>GST_VIDEO_MULTIVIEW_FRAME_PACKING_COLUMN_INTERLEAVED</p></td>
-<td class="enum_member_description">
-<p>Alternating vertical
-columns of pixels represent the left and right eye view respectively.</p>
-</td>
-<td class="enum_member_annotations"> </td>
+<td> </td>
+<td> </td>
 </tr>
 <tr>
 <td class="enum_member_name"><p><a name="GST-VIDEO-MULTIVIEW-FRAME-PACKING-ROW-INTERLEAVED:CAPS"></a>GST_VIDEO_MULTIVIEW_FRAME_PACKING_ROW_INTERLEAVED</p></td>
-<td class="enum_member_description">
-<p>Alternating horizontal
-rows of pixels represent the left and right eye view respectively.</p>
-</td>
-<td class="enum_member_annotations"> </td>
+<td> </td>
+<td> </td>
 </tr>
 <tr>
 <td class="enum_member_name"><p><a name="GST-VIDEO-MULTIVIEW-FRAME-PACKING-TOP-BOTTOM:CAPS"></a>GST_VIDEO_MULTIVIEW_FRAME_PACKING_TOP_BOTTOM</p></td>
-<td class="enum_member_description">
-<p>The top half of the frame
-contains the left eye, and the bottom half the right eye.</p>
-</td>
-<td class="enum_member_annotations"> </td>
+<td> </td>
+<td> </td>
 </tr>
 <tr>
 <td class="enum_member_name"><p><a name="GST-VIDEO-MULTIVIEW-FRAME-PACKING-CHECKERBOARD:CAPS"></a>GST_VIDEO_MULTIVIEW_FRAME_PACKING_CHECKERBOARD</p></td>
-<td class="enum_member_description">
-<p>Pixels are arranged with
-alternating pixels representing left and right eye views in a
-checkerboard fashion.</p>
-</td>
-<td class="enum_member_annotations"> </td>
+<td> </td>
+<td> </td>
 </tr>
 </tbody>
 </table></div>
@@ -6263,9 +3290,6 @@
 <hr>
 <div class="refsect2">
 <a name="GstVideoMultiviewFlags"></a><h3>enum GstVideoMultiviewFlags</h3>
-<p>GstVideoMultiviewFlags are used to indicate extra properties of a
-stereo/multiview stream beyond the frame layout and buffer mapping
-that is conveyed in the <span class="type">GstMultiviewMode</span>.</p>
 <div class="refsect3">
 <a name="GstVideoMultiviewFlags.members"></a><h4>Members</h4>
 <div class="informaltable"><table class="informaltable" width="100%" border="0">
@@ -6277,76 +3301,43 @@
 <tbody>
 <tr>
 <td class="enum_member_name"><p><a name="GST-VIDEO-MULTIVIEW-FLAGS-NONE:CAPS"></a>GST_VIDEO_MULTIVIEW_FLAGS_NONE</p></td>
-<td class="enum_member_description">
-<p>No flags</p>
-</td>
-<td class="enum_member_annotations"> </td>
+<td> </td>
+<td> </td>
 </tr>
 <tr>
 <td class="enum_member_name"><p><a name="GST-VIDEO-MULTIVIEW-FLAGS-RIGHT-VIEW-FIRST:CAPS"></a>GST_VIDEO_MULTIVIEW_FLAGS_RIGHT_VIEW_FIRST</p></td>
-<td class="enum_member_description">
-<p>For stereo streams, the
-    normal arrangement of left and right views is reversed.</p>
-</td>
-<td class="enum_member_annotations"> </td>
+<td> </td>
+<td> </td>
 </tr>
 <tr>
 <td class="enum_member_name"><p><a name="GST-VIDEO-MULTIVIEW-FLAGS-LEFT-FLIPPED:CAPS"></a>GST_VIDEO_MULTIVIEW_FLAGS_LEFT_FLIPPED</p></td>
-<td class="enum_member_description">
-<p>The left view is vertically
-    mirrored.</p>
-</td>
-<td class="enum_member_annotations"> </td>
+<td> </td>
+<td> </td>
 </tr>
 <tr>
 <td class="enum_member_name"><p><a name="GST-VIDEO-MULTIVIEW-FLAGS-LEFT-FLOPPED:CAPS"></a>GST_VIDEO_MULTIVIEW_FLAGS_LEFT_FLOPPED</p></td>
-<td class="enum_member_description">
-<p>The left view is horizontally
-    mirrored.</p>
-</td>
-<td class="enum_member_annotations"> </td>
+<td> </td>
+<td> </td>
 </tr>
 <tr>
 <td class="enum_member_name"><p><a name="GST-VIDEO-MULTIVIEW-FLAGS-RIGHT-FLIPPED:CAPS"></a>GST_VIDEO_MULTIVIEW_FLAGS_RIGHT_FLIPPED</p></td>
-<td class="enum_member_description">
-<p>The right view is
-    vertically mirrored.</p>
-</td>
-<td class="enum_member_annotations"> </td>
+<td> </td>
+<td> </td>
 </tr>
 <tr>
 <td class="enum_member_name"><p><a name="GST-VIDEO-MULTIVIEW-FLAGS-RIGHT-FLOPPED:CAPS"></a>GST_VIDEO_MULTIVIEW_FLAGS_RIGHT_FLOPPED</p></td>
-<td class="enum_member_description">
-<p>The right view is
-    horizontally mirrored.</p>
-</td>
-<td class="enum_member_annotations"> </td>
+<td> </td>
+<td> </td>
 </tr>
 <tr>
 <td class="enum_member_name"><p><a name="GST-VIDEO-MULTIVIEW-FLAGS-HALF-ASPECT:CAPS"></a>GST_VIDEO_MULTIVIEW_FLAGS_HALF_ASPECT</p></td>
-<td class="enum_member_description">
-<p>For frame-packed
-    multiview modes, indicates that the individual
-    views have been encoded with half the true width or height
-    and should be scaled back up for display. This flag
-    is used for overriding input layout interpretation
-    by adjusting pixel-aspect-ratio.
-    For side-by-side, column interleaved or checkerboard packings, the
-    pixel width will be doubled. For row interleaved and top-bottom
-    encodings, pixel height will be doubled.</p>
-</td>
-<td class="enum_member_annotations"> </td>
+<td> </td>
+<td> </td>
 </tr>
 <tr>
 <td class="enum_member_name"><p><a name="GST-VIDEO-MULTIVIEW-FLAGS-MIXED-MONO:CAPS"></a>GST_VIDEO_MULTIVIEW_FLAGS_MIXED_MONO</p></td>
-<td class="enum_member_description">
-<p>The video stream contains both
-    mono and multiview portions, signalled on each buffer by the
-    absence or presence of the <em class="parameter"><code>GST_VIDEO_BUFFER_FLAG_MULTIPLE_VIEW</code></em>
-
-    buffer flag.</p>
-</td>
-<td class="enum_member_annotations"> </td>
+<td> </td>
+<td> </td>
 </tr>
 </tbody>
 </table></div>
@@ -6355,7 +3346,6 @@
 <hr>
 <div class="refsect2">
 <a name="GstVideoFlags"></a><h3>enum GstVideoFlags</h3>
-<p>Extra video flags</p>
 <div class="refsect3">
 <a name="GstVideoFlags.members"></a><h4>Members</h4>
 <div class="informaltable"><table class="informaltable" width="100%" border="0">
@@ -6367,26 +3357,18 @@
 <tbody>
 <tr>
 <td class="enum_member_name"><p><a name="GST-VIDEO-FLAG-NONE:CAPS"></a>GST_VIDEO_FLAG_NONE</p></td>
-<td class="enum_member_description">
-<p>no flags</p>
-</td>
-<td class="enum_member_annotations"> </td>
+<td> </td>
+<td> </td>
 </tr>
 <tr>
 <td class="enum_member_name"><p><a name="GST-VIDEO-FLAG-VARIABLE-FPS:CAPS"></a>GST_VIDEO_FLAG_VARIABLE_FPS</p></td>
-<td class="enum_member_description">
-<p>a variable fps is selected, fps_n and fps_d
-    denote the maximum fps of the video</p>
-</td>
-<td class="enum_member_annotations"> </td>
+<td> </td>
+<td> </td>
 </tr>
 <tr>
 <td class="enum_member_name"><p><a name="GST-VIDEO-FLAG-PREMULTIPLIED-ALPHA:CAPS"></a>GST_VIDEO_FLAG_PREMULTIPLIED_ALPHA</p></td>
-<td class="enum_member_description">
-<p>Each color has been scaled by the alpha
-    value.</p>
-</td>
-<td class="enum_member_annotations"> </td>
+<td> </td>
+<td> </td>
 </tr>
 </tbody>
 </table></div>
@@ -6407,60 +3389,10 @@
   GstMapInfo map[GST_VIDEO_MAX_PLANES];
 };
 </pre>
-<p>A video frame obtained from <a class="link" href="gst-plugins-base-libs-gstvideo.html#gst-video-frame-map" title="gst_video_frame_map ()"><code class="function">gst_video_frame_map()</code></a></p>
-<div class="refsect3">
-<a name="GstVideoFrame.members"></a><h4>Members</h4>
-<div class="informaltable"><table class="informaltable" width="100%" border="0">
-<colgroup>
-<col width="300px" class="struct_members_name">
-<col class="struct_members_description">
-<col width="200px" class="struct_members_annotations">
-</colgroup>
-<tbody>
-<tr>
-<td class="struct_member_name"><p><a class="link" href="gst-plugins-base-libs-gstvideo.html#GstVideoInfo" title="struct GstVideoInfo"><span class="type">GstVideoInfo</span></a> <em class="structfield"><code><a name="GstVideoFrame.info"></a>info</code></em>;</p></td>
-<td class="struct_member_description"><p>the <a class="link" href="gst-plugins-base-libs-gstvideo.html#GstVideoInfo" title="struct GstVideoInfo"><span class="type">GstVideoInfo</span></a></p></td>
-<td class="struct_member_annotations"> </td>
-</tr>
-<tr>
-<td class="struct_member_name"><p><a class="link" href="gst-plugins-base-libs-gstvideo.html#GstVideoFrameFlags" title="enum GstVideoFrameFlags"><span class="type">GstVideoFrameFlags</span></a> <em class="structfield"><code><a name="GstVideoFrame.flags"></a>flags</code></em>;</p></td>
-<td class="struct_member_description"><p><a class="link" href="gst-plugins-base-libs-gstvideo.html#GstVideoFrameFlags" title="enum GstVideoFrameFlags"><span class="type">GstVideoFrameFlags</span></a> for the frame</p></td>
-<td class="struct_member_annotations"> </td>
-</tr>
-<tr>
-<td class="struct_member_name"><p><a href="/usr/share/gtk-doc/html/gstreamer-1.0GstBuffer.html#GstBuffer-struct"><span class="type">GstBuffer</span></a> *<em class="structfield"><code><a name="GstVideoFrame.buffer"></a>buffer</code></em>;</p></td>
-<td class="struct_member_description"><p>the mapped buffer</p></td>
-<td class="struct_member_annotations"> </td>
-</tr>
-<tr>
-<td class="struct_member_name"><p><a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> <em class="structfield"><code><a name="GstVideoFrame.meta"></a>meta</code></em>;</p></td>
-<td class="struct_member_description"><p>pointer to metadata if any</p></td>
-<td class="struct_member_annotations"> </td>
-</tr>
-<tr>
-<td class="struct_member_name"><p><a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#gint"><span class="type">gint</span></a> <em class="structfield"><code><a name="GstVideoFrame.id"></a>id</code></em>;</p></td>
-<td class="struct_member_description"><p>id of the mapped frame. the id can for example be used to
-indentify the frame in case of multiview video.</p></td>
-<td class="struct_member_annotations"> </td>
-</tr>
-<tr>
-<td class="struct_member_name"><p><a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> <em class="structfield"><code><a name="GstVideoFrame.data"></a>data</code></em>[GST_VIDEO_MAX_PLANES];</p></td>
-<td class="struct_member_description"><p>pointers to the plane data</p></td>
-<td class="struct_member_annotations"> </td>
-</tr>
-<tr>
-<td class="struct_member_name"><p><a href="/usr/share/gtk-doc/html/gstreamer-1.0GstMemory.html#GstMapInfo"><span class="type">GstMapInfo</span></a> <em class="structfield"><code><a name="GstVideoFrame.map"></a>map</code></em>[GST_VIDEO_MAX_PLANES];</p></td>
-<td class="struct_member_description"><p>mappings of the planes</p></td>
-<td class="struct_member_annotations"> </td>
-</tr>
-</tbody>
-</table></div>
-</div>
 </div>
 <hr>
 <div class="refsect2">
 <a name="GstVideoFrameFlags"></a><h3>enum GstVideoFrameFlags</h3>
-<p>Extra video frame flags</p>
 <div class="refsect3">
 <a name="GstVideoFrameFlags.members"></a><h4>Members</h4>
 <div class="informaltable"><table class="informaltable" width="100%" border="0">
@@ -6472,56 +3404,38 @@
 <tbody>
 <tr>
 <td class="enum_member_name"><p><a name="GST-VIDEO-FRAME-FLAG-NONE:CAPS"></a>GST_VIDEO_FRAME_FLAG_NONE</p></td>
-<td class="enum_member_description">
-<p>no flags</p>
-</td>
-<td class="enum_member_annotations"> </td>
+<td> </td>
+<td> </td>
 </tr>
 <tr>
 <td class="enum_member_name"><p><a name="GST-VIDEO-FRAME-FLAG-INTERLACED:CAPS"></a>GST_VIDEO_FRAME_FLAG_INTERLACED</p></td>
-<td class="enum_member_description">
-<p>The video frame is interlaced. In mixed
-          interlace-mode, this flag specifies if the frame is interlaced or
-          progressive.</p>
-</td>
-<td class="enum_member_annotations"> </td>
+<td> </td>
+<td> </td>
 </tr>
 <tr>
 <td class="enum_member_name"><p><a name="GST-VIDEO-FRAME-FLAG-TFF:CAPS"></a>GST_VIDEO_FRAME_FLAG_TFF</p></td>
-<td class="enum_member_description">
-<p>The video frame has the top field first</p>
-</td>
-<td class="enum_member_annotations"> </td>
+<td> </td>
+<td> </td>
 </tr>
 <tr>
 <td class="enum_member_name"><p><a name="GST-VIDEO-FRAME-FLAG-RFF:CAPS"></a>GST_VIDEO_FRAME_FLAG_RFF</p></td>
-<td class="enum_member_description">
-<p>The video frame has the repeat flag</p>
-</td>
-<td class="enum_member_annotations"> </td>
+<td> </td>
+<td> </td>
 </tr>
 <tr>
 <td class="enum_member_name"><p><a name="GST-VIDEO-FRAME-FLAG-ONEFIELD:CAPS"></a>GST_VIDEO_FRAME_FLAG_ONEFIELD</p></td>
-<td class="enum_member_description">
-<p>The video frame has one field</p>
-</td>
-<td class="enum_member_annotations"> </td>
+<td> </td>
+<td> </td>
 </tr>
 <tr>
 <td class="enum_member_name"><p><a name="GST-VIDEO-FRAME-FLAG-MULTIPLE-VIEW:CAPS"></a>GST_VIDEO_FRAME_FLAG_MULTIPLE_VIEW</p></td>
-<td class="enum_member_description">
-<p>The video contains one or
-    more non-mono views</p>
-</td>
-<td class="enum_member_annotations"> </td>
+<td> </td>
+<td> </td>
 </tr>
 <tr>
 <td class="enum_member_name"><p><a name="GST-VIDEO-FRAME-FLAG-FIRST-IN-BUNDLE:CAPS"></a>GST_VIDEO_FRAME_FLAG_FIRST_IN_BUNDLE</p></td>
-<td class="enum_member_description">
-<p>The video frame is the first
-    in a set of corresponding views provided as sequential frames.</p>
-</td>
-<td class="enum_member_annotations"> </td>
+<td> </td>
+<td> </td>
 </tr>
 </tbody>
 </table></div>
@@ -6530,8 +3444,6 @@
 <hr>
 <div class="refsect2">
 <a name="GstVideoBufferFlags"></a><h3>enum GstVideoBufferFlags</h3>
-<p>Additional video buffer flags. These flags can potentially be used on any
-buffers carrying video data - even encoded data.</p>
 <div class="refsect3">
 <a name="GstVideoBufferFlags.members"></a><h4>Members</h4>
 <div class="informaltable"><table class="informaltable" width="100%" border="0">
@@ -6543,67 +3455,38 @@
 <tbody>
 <tr>
 <td class="enum_member_name"><p><a name="GST-VIDEO-BUFFER-FLAG-INTERLACED:CAPS"></a>GST_VIDEO_BUFFER_FLAG_INTERLACED</p></td>
-<td class="enum_member_description">
-<p>If the <a href="/usr/share/gtk-doc/html/gstreamer-1.0GstBuffer.html#GstBuffer-struct"><span class="type">GstBuffer</span></a> is interlaced. In mixed
-                                    interlace-mode, this flags specifies if the frame is
-                                    interlaced or progressive.</p>
-</td>
-<td class="enum_member_annotations"> </td>
+<td> </td>
+<td> </td>
 </tr>
 <tr>
 <td class="enum_member_name"><p><a name="GST-VIDEO-BUFFER-FLAG-TFF:CAPS"></a>GST_VIDEO_BUFFER_FLAG_TFF</p></td>
-<td class="enum_member_description">
-<p>If the <a href="/usr/share/gtk-doc/html/gstreamer-1.0GstBuffer.html#GstBuffer-struct"><span class="type">GstBuffer</span></a> is interlaced, then the first field
-                                    in the video frame is the top field.  If unset, the
-                                    bottom field is first.</p>
-</td>
-<td class="enum_member_annotations"> </td>
+<td> </td>
+<td> </td>
 </tr>
 <tr>
 <td class="enum_member_name"><p><a name="GST-VIDEO-BUFFER-FLAG-RFF:CAPS"></a>GST_VIDEO_BUFFER_FLAG_RFF</p></td>
-<td class="enum_member_description">
-<p>If the <a href="/usr/share/gtk-doc/html/gstreamer-1.0GstBuffer.html#GstBuffer-struct"><span class="type">GstBuffer</span></a> is interlaced, then the first field
-                                    (as defined by the <code class="literal">GST_VIDEO_BUFFER_TFF</code> flag setting)
-                                    is repeated.</p>
-</td>
-<td class="enum_member_annotations"> </td>
+<td> </td>
+<td> </td>
 </tr>
 <tr>
 <td class="enum_member_name"><p><a name="GST-VIDEO-BUFFER-FLAG-ONEFIELD:CAPS"></a>GST_VIDEO_BUFFER_FLAG_ONEFIELD</p></td>
-<td class="enum_member_description">
-<p>If the <a href="/usr/share/gtk-doc/html/gstreamer-1.0GstBuffer.html#GstBuffer-struct"><span class="type">GstBuffer</span></a> is interlaced, then only the
-                                    first field (as defined by the <code class="literal">GST_VIDEO_BUFFER_TFF</code>
-                                    flag setting) is to be displayed.</p>
-</td>
-<td class="enum_member_annotations"> </td>
+<td> </td>
+<td> </td>
 </tr>
 <tr>
 <td class="enum_member_name"><p><a name="GST-VIDEO-BUFFER-FLAG-MULTIPLE-VIEW:CAPS"></a>GST_VIDEO_BUFFER_FLAG_MULTIPLE_VIEW</p></td>
-<td class="enum_member_description">
-<p>The <a href="/usr/share/gtk-doc/html/gstreamer-1.0GstBuffer.html#GstBuffer-struct"><span class="type">GstBuffer</span></a> contains one or more specific views,
-                                    such as left or right eye view. This flags is set on
-                                    any buffer that contains non-mono content - even for
-                                    streams that contain only a single viewpoint. In mixed
-                                    mono / non-mono streams, the absense of the flag marks
-                                    mono buffers.</p>
-</td>
-<td class="enum_member_annotations"> </td>
+<td> </td>
+<td> </td>
 </tr>
 <tr>
 <td class="enum_member_name"><p><a name="GST-VIDEO-BUFFER-FLAG-FIRST-IN-BUNDLE:CAPS"></a>GST_VIDEO_BUFFER_FLAG_FIRST_IN_BUNDLE</p></td>
-<td class="enum_member_description">
-<p>When conveying stereo/multiview content with
-                                    frame-by-frame methods, this flag marks the first buffer
-                                     in a bundle of frames that belong together.</p>
-</td>
-<td class="enum_member_annotations"> </td>
+<td> </td>
+<td> </td>
 </tr>
 <tr>
 <td class="enum_member_name"><p><a name="GST-VIDEO-BUFFER-FLAG-LAST:CAPS"></a>GST_VIDEO_BUFFER_FLAG_LAST</p></td>
-<td class="enum_member_description">
-<p>Offset to define more flags</p>
-</td>
-<td class="enum_member_annotations"> </td>
+<td> </td>
+<td> </td>
 </tr>
 </tbody>
 </table></div>
@@ -6612,7 +3495,6 @@
 <hr>
 <div class="refsect2">
 <a name="GstVideoTileType"></a><h3>enum GstVideoTileType</h3>
-<p>Enum value describing the most common tiling types.</p>
 <div class="refsect3">
 <a name="GstVideoTileType.members"></a><h4>Members</h4>
 <div class="informaltable"><table class="informaltable" width="100%" border="0">
@@ -6623,12 +3505,8 @@
 </colgroup>
 <tbody><tr>
 <td class="enum_member_name"><p><a name="GST-VIDEO-TILE-TYPE-INDEXED:CAPS"></a>GST_VIDEO_TILE_TYPE_INDEXED</p></td>
-<td class="enum_member_description">
-<p>Tiles are indexed. Use
-  <a class="link" href="gst-plugins-base-libs-gstvideo.html#gst-video-tile-get-index" title="gst_video_tile_get_index ()"><code class="function">gst_video_tile_get_index()</code></a> to retrieve the tile at the requested
-  coordinates.</p>
-</td>
-<td class="enum_member_annotations"> </td>
+<td> </td>
+<td> </td>
 </tr></tbody>
 </table></div>
 </div>
@@ -6636,7 +3514,6 @@
 <hr>
 <div class="refsect2">
 <a name="GstVideoTileMode"></a><h3>enum GstVideoTileMode</h3>
-<p>Enum value describing the available tiling modes.</p>
 <div class="refsect3">
 <a name="GstVideoTileMode.members"></a><h4>Members</h4>
 <div class="informaltable"><table class="informaltable" width="100%" border="0">
@@ -6648,20 +3525,13 @@
 <tbody>
 <tr>
 <td class="enum_member_name"><p><a name="GST-VIDEO-TILE-MODE-UNKNOWN:CAPS"></a>GST_VIDEO_TILE_MODE_UNKNOWN</p></td>
-<td class="enum_member_description">
-<p>Unknown or unset tile mode</p>
-</td>
-<td class="enum_member_annotations"> </td>
+<td> </td>
+<td> </td>
 </tr>
 <tr>
 <td class="enum_member_name"><p><a name="GST-VIDEO-TILE-MODE-ZFLIPZ-2X2:CAPS"></a>GST_VIDEO_TILE_MODE_ZFLIPZ_2X2</p></td>
-<td class="enum_member_description">
-<p>Every four adjacent blocks - two
-   horizontally and two vertically are grouped together and are located
-   in memory in Z or flipped Z order. In case of odd rows, the last row
-   of blocks is arranged in linear order.</p>
-</td>
-<td class="enum_member_annotations"> </td>
+<td> </td>
+<td> </td>
 </tr>
 </tbody>
 </table></div>
diff --git a/docs/libs/html/gst-plugins-base-libs-gstvideoaffinetransformationmeta.html b/docs/libs/html/gst-plugins-base-libs-gstvideoaffinetransformationmeta.html
index 9921b1d..0bc7419 100644
--- a/docs/libs/html/gst-plugins-base-libs-gstvideoaffinetransformationmeta.html
+++ b/docs/libs/html/gst-plugins-base-libs-gstvideoaffinetransformationmeta.html
@@ -92,31 +92,6 @@
 <pre class="programlisting"><a class="link" href="gst-plugins-base-libs-gstvideoaffinetransformationmeta.html#GstVideoAffineTransformationMeta" title="struct GstVideoAffineTransformationMeta"><span class="returnvalue">GstVideoAffineTransformationMeta</span></a> *
 gst_buffer_add_video_affine_transformation_meta
                                (<em class="parameter"><code><a href="/usr/share/gtk-doc/html/gstreamer-1.0GstBuffer.html#GstBuffer-struct"><span class="type">GstBuffer</span></a> *buffer</code></em>);</pre>
-<p>Attaches GstVideoAffineTransformationMeta metadata to <em class="parameter"><code>buffer</code></em>
- with
-the given parameters.</p>
-<div class="refsect3">
-<a name="gst-buffer-add-video-affine-transformation-meta.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>buffer</p></td>
-<td class="parameter_description"><p>a <a href="/usr/share/gtk-doc/html/gstreamer-1.0GstBuffer.html#GstBuffer-struct"><span class="type">GstBuffer</span></a></p></td>
-<td class="parameter_annotations"> </td>
-</tr></tbody>
-</table></div>
-</div>
-<div class="refsect3">
-<a name="gst-buffer-add-video-affine-transformation-meta.returns"></a><h4>Returns</h4>
-<p> the <a class="link" href="gst-plugins-base-libs-gstvideoaffinetransformationmeta.html#GstVideoAffineTransformationMeta" title="struct GstVideoAffineTransformationMeta"><span class="type">GstVideoAffineTransformationMeta</span></a> on <em class="parameter"><code>buffer</code></em>
-. </p>
-<p><span class="annotation">[<acronym title="Don't free data after the code is done."><span class="acronym">transfer none</span></acronym>]</span></p>
-</div>
-<p class="since">Since: 1.8</p>
 </div>
 <hr>
 <div class="refsect2">
@@ -130,30 +105,6 @@
 gst_video_affine_transformation_meta_apply_matrix
                                (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstvideoaffinetransformationmeta.html#GstVideoAffineTransformationMeta" title="struct GstVideoAffineTransformationMeta"><span class="type">GstVideoAffineTransformationMeta</span></a> *meta</code></em>,
                                 <em class="parameter"><code>const <a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#gfloat"><span class="type">gfloat</span></a> matrix[16]</code></em>);</pre>
-<p>Apply a transformation using the given 4x4 transformation matrix</p>
-<div class="refsect3">
-<a name="gst-video-affine-transformation-meta-apply-matrix.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>meta</p></td>
-<td class="parameter_description"><p>a <a class="link" href="gst-plugins-base-libs-gstvideoaffinetransformationmeta.html#GstVideoAffineTransformationMeta" title="struct GstVideoAffineTransformationMeta"><span class="type">GstVideoAffineTransformationMeta</span></a></p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-<tr>
-<td class="parameter_name"><p>matrix</p></td>
-<td class="parameter_description"><p>a 4x4 transformation matrix to be applied</p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-</tbody>
-</table></div>
-</div>
-<p class="since">Since: 1.8</p>
 </div>
 </div>
 <div class="refsect1">
diff --git a/docs/libs/html/gst-plugins-base-libs-gstvideofilter.html b/docs/libs/html/gst-plugins-base-libs-gstvideofilter.html
index a557973..a4b29e9 100644
--- a/docs/libs/html/gst-plugins-base-libs-gstvideofilter.html
+++ b/docs/libs/html/gst-plugins-base-libs-gstvideofilter.html
@@ -28,7 +28,7 @@
 <div class="refnamediv"><table width="100%"><tr>
 <td valign="top">
 <h2><span class="refentrytitle"><a name="gst-plugins-base-libs-gstvideofilter.top_of_page"></a>gstvideofilter</span></h2>
-<p>gstvideofilter — Base class for video filters</p>
+<p>gstvideofilter</p>
 </td>
 <td class="gallery_image" valign="top" align="right"></td>
 </tr></table></div>
@@ -68,15 +68,6 @@
 </div>
 <div class="refsect1">
 <a name="gst-plugins-base-libs-gstvideofilter.description"></a><h2>Description</h2>
-<div class="refsect2">
-<a name="id-1.2.15.7.7.2"></a><p>
-Provides useful functions and a base class for video filters.
-</p>
-<p>
-The videofilter will by default enable QoS on the parent GstBaseTransform
-to implement frame dropping.
-</p>
-</div>
 </div>
 <div class="refsect1">
 <a name="gst-plugins-base-libs-gstvideofilter.functions_details"></a><h2>Functions</h2>
@@ -104,34 +95,6 @@
   GstFlowReturn (*transform_frame_ip) (GstVideoFilter *trans, GstVideoFrame *frame);
 };
 </pre>
-<p>The video filter class structure.</p>
-<div class="refsect3">
-<a name="GstVideoFilterClass.members"></a><h4>Members</h4>
-<div class="informaltable"><table class="informaltable" width="100%" border="0">
-<colgroup>
-<col width="300px" class="struct_members_name">
-<col class="struct_members_description">
-<col width="200px" class="struct_members_annotations">
-</colgroup>
-<tbody>
-<tr>
-<td class="struct_member_name"><p><em class="structfield"><code><a name="GstVideoFilterClass.set-info"></a>set_info</code></em> ()</p></td>
-<td class="struct_member_description"><p>function to be called with the negotiated caps and video infos</p></td>
-<td class="struct_member_annotations"> </td>
-</tr>
-<tr>
-<td class="struct_member_name"><p><em class="structfield"><code><a name="GstVideoFilterClass.transform-frame"></a>transform_frame</code></em> ()</p></td>
-<td class="struct_member_description"><p>transform a video frame</p></td>
-<td class="struct_member_annotations"> </td>
-</tr>
-<tr>
-<td class="struct_member_name"><p><em class="structfield"><code><a name="GstVideoFilterClass.transform-frame-ip"></a>transform_frame_ip</code></em> ()</p></td>
-<td class="struct_member_description"><p>transform a video frame in place</p></td>
-<td class="struct_member_annotations"> </td>
-</tr>
-</tbody>
-</table></div>
-</div>
 </div>
 </div>
 </div>
diff --git a/docs/libs/html/gst-plugins-base-libs-gstvideometa.html b/docs/libs/html/gst-plugins-base-libs-gstvideometa.html
index 9f4482d..bd7513e 100644
--- a/docs/libs/html/gst-plugins-base-libs-gstvideometa.html
+++ b/docs/libs/html/gst-plugins-base-libs-gstvideometa.html
@@ -223,59 +223,6 @@
                     <em class="parameter"><code><a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> *data</code></em>,
                     <em class="parameter"><code><a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#gint"><span class="type">gint</span></a> *stride</code></em>,
                     <em class="parameter"><code><a href="/usr/share/gtk-doc/html/gstreamer-1.0GstMemory.html#GstMapFlags"><span class="type">GstMapFlags</span></a> flags</code></em>);</pre>
-<p>Map the video plane with index <em class="parameter"><code>plane</code></em>
- in <em class="parameter"><code>meta</code></em>
- and return a pointer to the
-first byte of the plane and the stride of the plane.</p>
-<div class="refsect3">
-<a name="gst-video-meta-map.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>meta</p></td>
-<td class="parameter_description"><p>a <a class="link" href="gst-plugins-base-libs-gstvideometa.html#GstVideoMeta" title="struct GstVideoMeta"><span class="type">GstVideoMeta</span></a></p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-<tr>
-<td class="parameter_name"><p>plane</p></td>
-<td class="parameter_description"><p>a plane</p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-<tr>
-<td class="parameter_name"><p>info</p></td>
-<td class="parameter_description"><p>a <a href="/usr/share/gtk-doc/html/gstreamer-1.0GstMemory.html#GstMapInfo"><span class="type">GstMapInfo</span></a></p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-<tr>
-<td class="parameter_name"><p>data</p></td>
-<td class="parameter_description"><p>the data of <em class="parameter"><code>plane</code></em>
-</p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-<tr>
-<td class="parameter_name"><p>stride</p></td>
-<td class="parameter_description"><p>the stride of <em class="parameter"><code>plane</code></em>
-</p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-<tr>
-<td class="parameter_name"><p>flags</p></td>
-<td class="parameter_description"><p><em class="parameter"><code>GstMapFlags</code></em>
-</p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-</tbody>
-</table></div>
-</div>
-<div class="refsect3">
-<a name="gst-video-meta-map.returns"></a><h4>Returns</h4>
-<p> TRUE if the map operation was successful.</p>
-</div>
 </div>
 <hr>
 <div class="refsect2">
@@ -284,38 +231,6 @@
 gst_video_meta_unmap (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstvideometa.html#GstVideoMeta" title="struct GstVideoMeta"><span class="type">GstVideoMeta</span></a> *meta</code></em>,
                       <em class="parameter"><code><a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#guint"><span class="type">guint</span></a> plane</code></em>,
                       <em class="parameter"><code><a href="/usr/share/gtk-doc/html/gstreamer-1.0GstMemory.html#GstMapInfo"><span class="type">GstMapInfo</span></a> *info</code></em>);</pre>
-<p>Unmap a previously mapped plane with <a class="link" href="gst-plugins-base-libs-gstvideometa.html#gst-video-meta-map" title="gst_video_meta_map ()"><code class="function">gst_video_meta_map()</code></a>.</p>
-<div class="refsect3">
-<a name="gst-video-meta-unmap.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>meta</p></td>
-<td class="parameter_description"><p>a <a class="link" href="gst-plugins-base-libs-gstvideometa.html#GstVideoMeta" title="struct GstVideoMeta"><span class="type">GstVideoMeta</span></a></p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-<tr>
-<td class="parameter_name"><p>plane</p></td>
-<td class="parameter_description"><p>a plane</p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-<tr>
-<td class="parameter_name"><p>info</p></td>
-<td class="parameter_description"><p>a <a href="/usr/share/gtk-doc/html/gstreamer-1.0GstMemory.html#GstMapInfo"><span class="type">GstMapInfo</span></a></p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-</tbody>
-</table></div>
-</div>
-<div class="refsect3">
-<a name="gst-video-meta-unmap.returns"></a><h4>Returns</h4>
-<p> TRUE if the memory was successfully unmapped.</p>
-</div>
 </div>
 <hr>
 <div class="refsect2">
@@ -332,57 +247,6 @@
                            <em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstvideo.html#GstVideoFormat" title="enum GstVideoFormat"><span class="type">GstVideoFormat</span></a> format</code></em>,
                            <em class="parameter"><code><a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#guint"><span class="type">guint</span></a> width</code></em>,
                            <em class="parameter"><code><a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#guint"><span class="type">guint</span></a> height</code></em>);</pre>
-<p>Attaches GstVideoMeta metadata to <em class="parameter"><code>buffer</code></em>
- with the given parameters and the
-default offsets and strides for <em class="parameter"><code>format</code></em>
- and <em class="parameter"><code>width</code></em>
- x <em class="parameter"><code>height</code></em>
-.</p>
-<p>This function calculates the default offsets and strides and then calls
-<a class="link" href="gst-plugins-base-libs-gstvideometa.html#gst-buffer-add-video-meta-full" title="gst_buffer_add_video_meta_full ()"><code class="function">gst_buffer_add_video_meta_full()</code></a> with them.</p>
-<div class="refsect3">
-<a name="gst-buffer-add-video-meta.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>buffer</p></td>
-<td class="parameter_description"><p>a <a href="/usr/share/gtk-doc/html/gstreamer-1.0GstBuffer.html#GstBuffer-struct"><span class="type">GstBuffer</span></a></p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-<tr>
-<td class="parameter_name"><p>flags</p></td>
-<td class="parameter_description"><p><a class="link" href="gst-plugins-base-libs-gstvideo.html#GstVideoFrameFlags" title="enum GstVideoFrameFlags"><span class="type">GstVideoFrameFlags</span></a></p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-<tr>
-<td class="parameter_name"><p>format</p></td>
-<td class="parameter_description"><p>a <a class="link" href="gst-plugins-base-libs-gstvideo.html#GstVideoFormat" title="enum GstVideoFormat"><span class="type">GstVideoFormat</span></a></p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-<tr>
-<td class="parameter_name"><p>width</p></td>
-<td class="parameter_description"><p>the width</p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-<tr>
-<td class="parameter_name"><p>height</p></td>
-<td class="parameter_description"><p>the height</p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-</tbody>
-</table></div>
-</div>
-<div class="refsect3">
-<a name="gst-buffer-add-video-meta.returns"></a><h4>Returns</h4>
-<p> the <a class="link" href="gst-plugins-base-libs-gstvideometa.html#GstVideoMeta" title="struct GstVideoMeta"><span class="type">GstVideoMeta</span></a> on <em class="parameter"><code>buffer</code></em>
-. </p>
-<p><span class="annotation">[<acronym title="Don't free data after the code is done."><span class="acronym">transfer none</span></acronym>]</span></p>
-</div>
 </div>
 <hr>
 <div class="refsect2">
@@ -396,99 +260,12 @@
                                 <em class="parameter"><code><a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#guint"><span class="type">guint</span></a> n_planes</code></em>,
                                 <em class="parameter"><code><a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#gsize"><span class="type">gsize</span></a> offset[GST_VIDEO_MAX_PLANES]</code></em>,
                                 <em class="parameter"><code><a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#gint"><span class="type">gint</span></a> stride[GST_VIDEO_MAX_PLANES]</code></em>);</pre>
-<p>Attaches GstVideoMeta metadata to <em class="parameter"><code>buffer</code></em>
- with the given parameters.</p>
-<div class="refsect3">
-<a name="gst-buffer-add-video-meta-full.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>buffer</p></td>
-<td class="parameter_description"><p>a <a href="/usr/share/gtk-doc/html/gstreamer-1.0GstBuffer.html#GstBuffer-struct"><span class="type">GstBuffer</span></a></p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-<tr>
-<td class="parameter_name"><p>flags</p></td>
-<td class="parameter_description"><p><a class="link" href="gst-plugins-base-libs-gstvideo.html#GstVideoFrameFlags" title="enum GstVideoFrameFlags"><span class="type">GstVideoFrameFlags</span></a></p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-<tr>
-<td class="parameter_name"><p>format</p></td>
-<td class="parameter_description"><p>a <a class="link" href="gst-plugins-base-libs-gstvideo.html#GstVideoFormat" title="enum GstVideoFormat"><span class="type">GstVideoFormat</span></a></p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-<tr>
-<td class="parameter_name"><p>width</p></td>
-<td class="parameter_description"><p>the width</p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-<tr>
-<td class="parameter_name"><p>height</p></td>
-<td class="parameter_description"><p>the height</p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-<tr>
-<td class="parameter_name"><p>n_planes</p></td>
-<td class="parameter_description"><p>number of planes</p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-<tr>
-<td class="parameter_name"><p>offset</p></td>
-<td class="parameter_description"><p>offset of each plane</p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-<tr>
-<td class="parameter_name"><p>stride</p></td>
-<td class="parameter_description"><p>stride of each plane</p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-</tbody>
-</table></div>
-</div>
-<div class="refsect3">
-<a name="gst-buffer-add-video-meta-full.returns"></a><h4>Returns</h4>
-<p> the <a class="link" href="gst-plugins-base-libs-gstvideometa.html#GstVideoMeta" title="struct GstVideoMeta"><span class="type">GstVideoMeta</span></a> on <em class="parameter"><code>buffer</code></em>
-. </p>
-<p><span class="annotation">[<acronym title="Don't free data after the code is done."><span class="acronym">transfer none</span></acronym>]</span></p>
-</div>
 </div>
 <hr>
 <div class="refsect2">
 <a name="gst-buffer-get-video-meta"></a><h3>gst_buffer_get_video_meta ()</h3>
 <pre class="programlisting"><a class="link" href="gst-plugins-base-libs-gstvideometa.html#GstVideoMeta" title="struct GstVideoMeta"><span class="returnvalue">GstVideoMeta</span></a> *
 gst_buffer_get_video_meta (<em class="parameter"><code><a href="/usr/share/gtk-doc/html/gstreamer-1.0GstBuffer.html#GstBuffer-struct"><span class="type">GstBuffer</span></a> *buffer</code></em>);</pre>
-<p>Find the <a class="link" href="gst-plugins-base-libs-gstvideometa.html#GstVideoMeta" title="struct GstVideoMeta"><span class="type">GstVideoMeta</span></a> on <em class="parameter"><code>buffer</code></em>
- with the lowest <em class="parameter"><code>id</code></em>
-.</p>
-<p>Buffers can contain multiple <a class="link" href="gst-plugins-base-libs-gstvideometa.html#GstVideoMeta" title="struct GstVideoMeta"><span class="type">GstVideoMeta</span></a> metadata items when dealing with
-multiview buffers.</p>
-<div class="refsect3">
-<a name="gst-buffer-get-video-meta.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>buffer</p></td>
-<td class="parameter_description"><p>a <a href="/usr/share/gtk-doc/html/gstreamer-1.0GstBuffer.html#GstBuffer-struct"><span class="type">GstBuffer</span></a></p></td>
-<td class="parameter_annotations"> </td>
-</tr></tbody>
-</table></div>
-</div>
-<div class="refsect3">
-<a name="gst-buffer-get-video-meta.returns"></a><h4>Returns</h4>
-<p> the <a class="link" href="gst-plugins-base-libs-gstvideometa.html#GstVideoMeta" title="struct GstVideoMeta"><span class="type">GstVideoMeta</span></a> with lowest id (usually 0) or <a href="/usr/share/gtk-doc/html/glibglib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a> when there
-is no such metadata on <em class="parameter"><code>buffer</code></em>
-. </p>
-<p><span class="annotation">[<acronym title="Don't free data after the code is done."><span class="acronym">transfer none</span></acronym>]</span></p>
-</div>
 </div>
 <hr>
 <div class="refsect2">
@@ -496,41 +273,6 @@
 <pre class="programlisting"><a class="link" href="gst-plugins-base-libs-gstvideometa.html#GstVideoMeta" title="struct GstVideoMeta"><span class="returnvalue">GstVideoMeta</span></a> *
 gst_buffer_get_video_meta_id (<em class="parameter"><code><a href="/usr/share/gtk-doc/html/gstreamer-1.0GstBuffer.html#GstBuffer-struct"><span class="type">GstBuffer</span></a> *buffer</code></em>,
                               <em class="parameter"><code><a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#gint"><span class="type">gint</span></a> id</code></em>);</pre>
-<p>Find the <a class="link" href="gst-plugins-base-libs-gstvideometa.html#GstVideoMeta" title="struct GstVideoMeta"><span class="type">GstVideoMeta</span></a> on <em class="parameter"><code>buffer</code></em>
- with the given <em class="parameter"><code>id</code></em>
-.</p>
-<p>Buffers can contain multiple <a class="link" href="gst-plugins-base-libs-gstvideometa.html#GstVideoMeta" title="struct GstVideoMeta"><span class="type">GstVideoMeta</span></a> metadata items when dealing with
-multiview buffers.</p>
-<div class="refsect3">
-<a name="gst-buffer-get-video-meta-id.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>buffer</p></td>
-<td class="parameter_description"><p>a <a href="/usr/share/gtk-doc/html/gstreamer-1.0GstBuffer.html#GstBuffer-struct"><span class="type">GstBuffer</span></a></p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-<tr>
-<td class="parameter_name"><p>id</p></td>
-<td class="parameter_description"><p>a metadata id</p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-</tbody>
-</table></div>
-</div>
-<div class="refsect3">
-<a name="gst-buffer-get-video-meta-id.returns"></a><h4>Returns</h4>
-<p> the <a class="link" href="gst-plugins-base-libs-gstvideometa.html#GstVideoMeta" title="struct GstVideoMeta"><span class="type">GstVideoMeta</span></a> with <em class="parameter"><code>id</code></em>
-or <a href="/usr/share/gtk-doc/html/glibglib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a> when there is no such metadata
-on <em class="parameter"><code>buffer</code></em>
-. </p>
-<p><span class="annotation">[<acronym title="Don't free data after the code is done."><span class="acronym">transfer none</span></acronym>]</span></p>
-</div>
 </div>
 <hr>
 <div class="refsect2">
@@ -555,57 +297,6 @@
                                 <em class="parameter"><code><a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#guint"><span class="type">guint</span></a> y</code></em>,
                                 <em class="parameter"><code><a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#guint"><span class="type">guint</span></a> w</code></em>,
                                 <em class="parameter"><code><a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#guint"><span class="type">guint</span></a> h</code></em>);</pre>
-<p>Attaches <a class="link" href="gst-plugins-base-libs-gstvideometa.html#GstVideoRegionOfInterestMeta" title="GstVideoRegionOfInterestMeta"><span class="type">GstVideoRegionOfInterestMeta</span></a> metadata to <em class="parameter"><code>buffer</code></em>
- with the given
-parameters.</p>
-<div class="refsect3">
-<a name="gst-buffer-add-video-region-of-interest-meta.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>buffer</p></td>
-<td class="parameter_description"><p>a <a href="/usr/share/gtk-doc/html/gstreamer-1.0GstBuffer.html#GstBuffer-struct"><span class="type">GstBuffer</span></a></p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-<tr>
-<td class="parameter_name"><p>roi_type</p></td>
-<td class="parameter_description"><p>Type of the region of interest (e.g. "face")</p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-<tr>
-<td class="parameter_name"><p>x</p></td>
-<td class="parameter_description"><p>X position</p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-<tr>
-<td class="parameter_name"><p>y</p></td>
-<td class="parameter_description"><p>Y position</p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-<tr>
-<td class="parameter_name"><p>w</p></td>
-<td class="parameter_description"><p>width</p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-<tr>
-<td class="parameter_name"><p>h</p></td>
-<td class="parameter_description"><p>height</p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-</tbody>
-</table></div>
-</div>
-<div class="refsect3">
-<a name="gst-buffer-add-video-region-of-interest-meta.returns"></a><h4>Returns</h4>
-<p> the <a class="link" href="gst-plugins-base-libs-gstvideometa.html#GstVideoRegionOfInterestMeta" title="GstVideoRegionOfInterestMeta"><span class="type">GstVideoRegionOfInterestMeta</span></a> on <em class="parameter"><code>buffer</code></em>
-. </p>
-<p><span class="annotation">[<acronym title="Don't free data after the code is done."><span class="acronym">transfer none</span></acronym>]</span></p>
-</div>
 </div>
 <hr>
 <div class="refsect2">
@@ -618,57 +309,6 @@
                                 <em class="parameter"><code><a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#guint"><span class="type">guint</span></a> y</code></em>,
                                 <em class="parameter"><code><a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#guint"><span class="type">guint</span></a> w</code></em>,
                                 <em class="parameter"><code><a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#guint"><span class="type">guint</span></a> h</code></em>);</pre>
-<p>Attaches <a class="link" href="gst-plugins-base-libs-gstvideometa.html#GstVideoRegionOfInterestMeta" title="GstVideoRegionOfInterestMeta"><span class="type">GstVideoRegionOfInterestMeta</span></a> metadata to <em class="parameter"><code>buffer</code></em>
- with the given
-parameters.</p>
-<div class="refsect3">
-<a name="gst-buffer-add-video-region-of-interest-meta-id.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>buffer</p></td>
-<td class="parameter_description"><p>a <a href="/usr/share/gtk-doc/html/gstreamer-1.0GstBuffer.html#GstBuffer-struct"><span class="type">GstBuffer</span></a></p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-<tr>
-<td class="parameter_name"><p>roi_type</p></td>
-<td class="parameter_description"><p>Type of the region of interest (e.g. "face")</p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-<tr>
-<td class="parameter_name"><p>x</p></td>
-<td class="parameter_description"><p>X position</p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-<tr>
-<td class="parameter_name"><p>y</p></td>
-<td class="parameter_description"><p>Y position</p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-<tr>
-<td class="parameter_name"><p>w</p></td>
-<td class="parameter_description"><p>width</p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-<tr>
-<td class="parameter_name"><p>h</p></td>
-<td class="parameter_description"><p>height</p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-</tbody>
-</table></div>
-</div>
-<div class="refsect3">
-<a name="gst-buffer-add-video-region-of-interest-meta-id.returns"></a><h4>Returns</h4>
-<p> the <a class="link" href="gst-plugins-base-libs-gstvideometa.html#GstVideoRegionOfInterestMeta" title="GstVideoRegionOfInterestMeta"><span class="type">GstVideoRegionOfInterestMeta</span></a> on <em class="parameter"><code>buffer</code></em>
-. </p>
-<p><span class="annotation">[<acronym title="Don't free data after the code is done."><span class="acronym">transfer none</span></acronym>]</span></p>
-</div>
 </div>
 <hr>
 <div class="refsect2">
@@ -682,41 +322,6 @@
 gst_buffer_get_video_region_of_interest_meta_id
                                (<em class="parameter"><code><a href="/usr/share/gtk-doc/html/gstreamer-1.0GstBuffer.html#GstBuffer-struct"><span class="type">GstBuffer</span></a> *buffer</code></em>,
                                 <em class="parameter"><code><a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#gint"><span class="type">gint</span></a> id</code></em>);</pre>
-<p>Find the <a class="link" href="gst-plugins-base-libs-gstvideometa.html#GstVideoRegionOfInterestMeta" title="GstVideoRegionOfInterestMeta"><span class="type">GstVideoRegionOfInterestMeta</span></a> on <em class="parameter"><code>buffer</code></em>
- with the given <em class="parameter"><code>id</code></em>
-.</p>
-<p>Buffers can contain multiple <a class="link" href="gst-plugins-base-libs-gstvideometa.html#GstVideoRegionOfInterestMeta" title="GstVideoRegionOfInterestMeta"><span class="type">GstVideoRegionOfInterestMeta</span></a> metadata items if
-multiple regions of interests are marked on a frame.</p>
-<div class="refsect3">
-<a name="gst-buffer-get-video-region-of-interest-meta-id.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>buffer</p></td>
-<td class="parameter_description"><p>a <a href="/usr/share/gtk-doc/html/gstreamer-1.0GstBuffer.html#GstBuffer-struct"><span class="type">GstBuffer</span></a></p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-<tr>
-<td class="parameter_name"><p>id</p></td>
-<td class="parameter_description"><p>a metadata id</p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-</tbody>
-</table></div>
-</div>
-<div class="refsect3">
-<a name="gst-buffer-get-video-region-of-interest-meta-id.returns"></a><h4>Returns</h4>
-<p> the <a class="link" href="gst-plugins-base-libs-gstvideometa.html#GstVideoRegionOfInterestMeta" title="GstVideoRegionOfInterestMeta"><span class="type">GstVideoRegionOfInterestMeta</span></a> with <em class="parameter"><code>id</code></em>
-or <a href="/usr/share/gtk-doc/html/glibglib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a> when there is
-no such metadata on <em class="parameter"><code>buffer</code></em>
-. </p>
-<p><span class="annotation">[<acronym title="Don't free data after the code is done."><span class="acronym">transfer none</span></acronym>]</span></p>
-</div>
 </div>
 <hr>
 <div class="refsect2">
@@ -738,70 +343,6 @@
                                 <em class="parameter"><code><a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> user_data</code></em>,
                                 <em class="parameter"><code><a href="/usr/share/gtk-doc/html/gobjectgobject-Boxed-Types.html#GBoxedCopyFunc"><span class="type">GBoxedCopyFunc</span></a> user_data_copy</code></em>,
                                 <em class="parameter"><code><a href="/usr/share/gtk-doc/html/gobjectgobject-Boxed-Types.html#GBoxedFreeFunc"><span class="type">GBoxedFreeFunc</span></a> user_data_free</code></em>);</pre>
-<p>Attaches GstVideoGLTextureUploadMeta metadata to <em class="parameter"><code>buffer</code></em>
- with the given
-parameters.</p>
-<div class="refsect3">
-<a name="gst-buffer-add-video-gl-texture-upload-meta.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>buffer</p></td>
-<td class="parameter_description"><p>a <a href="/usr/share/gtk-doc/html/gstreamer-1.0GstBuffer.html#GstBuffer-struct"><span class="type">GstBuffer</span></a></p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-<tr>
-<td class="parameter_name"><p>texture_orientation</p></td>
-<td class="parameter_description"><p>the <span class="type">GstVideoGLTextureOrientation</span></p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-<tr>
-<td class="parameter_name"><p>n_textures</p></td>
-<td class="parameter_description"><p>the number of textures</p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-<tr>
-<td class="parameter_name"><p>texture_type</p></td>
-<td class="parameter_description"><p>array of <span class="type">GstVideoGLTextureType</span></p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-<tr>
-<td class="parameter_name"><p>upload</p></td>
-<td class="parameter_description"><p> the function to upload the buffer to a specific texture ID. </p></td>
-<td class="parameter_annotations"><span class="annotation">[<acronym title="The callback is valid only during the call to the method."><span class="acronym">scope call</span></acronym>]</span></td>
-</tr>
-<tr>
-<td class="parameter_name"><p>user_data</p></td>
-<td class="parameter_description"><p>user data for the implementor of <em class="parameter"><code>upload</code></em>
-</p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-<tr>
-<td class="parameter_name"><p>user_data_copy</p></td>
-<td class="parameter_description"><p> function to copy <em class="parameter"><code>user_data</code></em>
-. </p></td>
-<td class="parameter_annotations"><span class="annotation">[<acronym title="The callback is valid only during the call to the method."><span class="acronym">scope call</span></acronym>]</span></td>
-</tr>
-<tr>
-<td class="parameter_name"><p>user_data_free</p></td>
-<td class="parameter_description"><p> function to free <em class="parameter"><code>user_data</code></em>
-. </p></td>
-<td class="parameter_annotations"><span class="annotation">[<acronym title="The callback is valid only during the call to the method."><span class="acronym">scope call</span></acronym>]</span></td>
-</tr>
-</tbody>
-</table></div>
-</div>
-<div class="refsect3">
-<a name="gst-buffer-add-video-gl-texture-upload-meta.returns"></a><h4>Returns</h4>
-<p> the <a class="link" href="gst-plugins-base-libs-gstvideometa.html#GstVideoGLTextureUploadMeta" title="struct GstVideoGLTextureUploadMeta"><span class="type">GstVideoGLTextureUploadMeta</span></a> on <em class="parameter"><code>buffer</code></em>
-. </p>
-<p><span class="annotation">[<acronym title="Don't free data after the code is done."><span class="acronym">transfer none</span></acronym>]</span></p>
-</div>
 </div>
 <hr>
 <div class="refsect2">
@@ -816,33 +357,6 @@
 gst_video_gl_texture_upload_meta_upload
                                (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstvideometa.html#GstVideoGLTextureUploadMeta" title="struct GstVideoGLTextureUploadMeta"><span class="type">GstVideoGLTextureUploadMeta</span></a> *meta</code></em>,
                                 <em class="parameter"><code><a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#guint"><span class="type">guint</span></a> texture_id[4]</code></em>);</pre>
-<p>Uploads the buffer which owns the meta to a specific texture ID.</p>
-<div class="refsect3">
-<a name="gst-video-gl-texture-upload-meta-upload.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>meta</p></td>
-<td class="parameter_description"><p>a <a class="link" href="gst-plugins-base-libs-gstvideometa.html#GstVideoGLTextureUploadMeta" title="struct GstVideoGLTextureUploadMeta"><span class="type">GstVideoGLTextureUploadMeta</span></a></p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-<tr>
-<td class="parameter_name"><p>texture_id</p></td>
-<td class="parameter_description"><p>the texture IDs to upload to</p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-</tbody>
-</table></div>
-</div>
-<div class="refsect3">
-<a name="gst-video-gl-texture-upload-meta-upload.returns"></a><h4>Returns</h4>
-<p> <a href="/usr/share/gtk-doc/html/glibglib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a> if uploading succeeded, <a href="/usr/share/gtk-doc/html/glibglib-Standard-Macros.html#FALSE:CAPS"><code class="literal">FALSE</code></a> otherwise.</p>
-</div>
 </div>
 </div>
 <div class="refsect1">
@@ -869,83 +383,6 @@
   gboolean (*unmap)  (GstVideoMeta *meta, guint plane, GstMapInfo *info);
 };
 </pre>
-<p>Extra buffer metadata describing image properties</p>
-<div class="refsect3">
-<a name="GstVideoMeta.members"></a><h4>Members</h4>
-<div class="informaltable"><table class="informaltable" width="100%" border="0">
-<colgroup>
-<col width="300px" class="struct_members_name">
-<col class="struct_members_description">
-<col width="200px" class="struct_members_annotations">
-</colgroup>
-<tbody>
-<tr>
-<td class="struct_member_name"><p><a href="/usr/share/gtk-doc/html/gstreamer-1.0gstreamer-GstMeta.html#GstMeta"><span class="type">GstMeta</span></a> <em class="structfield"><code><a name="GstVideoMeta.meta"></a>meta</code></em>;</p></td>
-<td class="struct_member_description"><p>parent <a href="/usr/share/gtk-doc/html/gstreamer-1.0gstreamer-GstMeta.html#GstMeta"><span class="type">GstMeta</span></a></p></td>
-<td class="struct_member_annotations"> </td>
-</tr>
-<tr>
-<td class="struct_member_name"><p><a href="/usr/share/gtk-doc/html/gstreamer-1.0GstBuffer.html#GstBuffer-struct"><span class="type">GstBuffer</span></a> *<em class="structfield"><code><a name="GstVideoMeta.buffer"></a>buffer</code></em>;</p></td>
-<td class="struct_member_description"><p>the buffer this metadata belongs to</p></td>
-<td class="struct_member_annotations"> </td>
-</tr>
-<tr>
-<td class="struct_member_name"><p><a class="link" href="gst-plugins-base-libs-gstvideo.html#GstVideoFrameFlags" title="enum GstVideoFrameFlags"><span class="type">GstVideoFrameFlags</span></a> <em class="structfield"><code><a name="GstVideoMeta.flags"></a>flags</code></em>;</p></td>
-<td class="struct_member_description"><p>additional video flags</p></td>
-<td class="struct_member_annotations"> </td>
-</tr>
-<tr>
-<td class="struct_member_name"><p><a class="link" href="gst-plugins-base-libs-gstvideo.html#GstVideoFormat" title="enum GstVideoFormat"><span class="type">GstVideoFormat</span></a> <em class="structfield"><code><a name="GstVideoMeta.format"></a>format</code></em>;</p></td>
-<td class="struct_member_description"><p>the video format</p></td>
-<td class="struct_member_annotations"> </td>
-</tr>
-<tr>
-<td class="struct_member_name"><p><a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#gint"><span class="type">gint</span></a> <em class="structfield"><code><a name="GstVideoMeta.id"></a>id</code></em>;</p></td>
-<td class="struct_member_description"><p>identifier of the frame</p></td>
-<td class="struct_member_annotations"> </td>
-</tr>
-<tr>
-<td class="struct_member_name"><p><a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#guint"><span class="type">guint</span></a> <em class="structfield"><code><a name="GstVideoMeta.width"></a>width</code></em>;</p></td>
-<td class="struct_member_description"><p>the video width</p></td>
-<td class="struct_member_annotations"> </td>
-</tr>
-<tr>
-<td class="struct_member_name"><p><a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#guint"><span class="type">guint</span></a> <em class="structfield"><code><a name="GstVideoMeta.height"></a>height</code></em>;</p></td>
-<td class="struct_member_description"><p>the video height</p></td>
-<td class="struct_member_annotations"> </td>
-</tr>
-<tr>
-<td class="struct_member_name"><p><a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#guint"><span class="type">guint</span></a> <em class="structfield"><code><a name="GstVideoMeta.n-planes"></a>n_planes</code></em>;</p></td>
-<td class="struct_member_description"><p>the number of planes in the image</p></td>
-<td class="struct_member_annotations"> </td>
-</tr>
-<tr>
-<td class="struct_member_name"><p><a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#gsize"><span class="type">gsize</span></a> <em class="structfield"><code><a name="GstVideoMeta.offset"></a>offset</code></em>[GST_VIDEO_MAX_PLANES];</p></td>
-<td class="struct_member_description"><p>array of offsets for the planes. This field might not always be
-valid, it is used by the default implementation of <em class="parameter"><code>map</code></em>
-.</p></td>
-<td class="struct_member_annotations"> </td>
-</tr>
-<tr>
-<td class="struct_member_name"><p><a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#gint"><span class="type">gint</span></a> <em class="structfield"><code><a name="GstVideoMeta.stride"></a>stride</code></em>[GST_VIDEO_MAX_PLANES];</p></td>
-<td class="struct_member_description"><p>array of strides for the planes. This field might not always be
-valid, it is used by the default implementation of <em class="parameter"><code>map</code></em>
-.</p></td>
-<td class="struct_member_annotations"> </td>
-</tr>
-<tr>
-<td class="struct_member_name"><p><em class="structfield"><code><a name="GstVideoMeta.map"></a>map</code></em> ()</p></td>
-<td class="struct_member_description"><p>map the memory of a plane</p></td>
-<td class="struct_member_annotations"> </td>
-</tr>
-<tr>
-<td class="struct_member_name"><p><em class="structfield"><code><a name="GstVideoMeta.unmap"></a>unmap</code></em> ()</p></td>
-<td class="struct_member_description"><p>unmap the memory of a plane</p></td>
-<td class="struct_member_annotations"> </td>
-</tr>
-</tbody>
-</table></div>
-</div>
 </div>
 <hr>
 <div class="refsect2">
@@ -955,30 +392,6 @@
   GstVideoInfo *out_info;
 } GstVideoMetaTransform;
 </pre>
-<p>Extra data passed to a video transform <a href="/usr/share/gtk-doc/html/gstreamer-1.0gstreamer-GstMeta.html#GstMetaTransformFunction"><span class="type">GstMetaTransformFunction</span></a> such as:
-"gst-video-scale".</p>
-<div class="refsect3">
-<a name="GstVideoMetaTransform.members"></a><h4>Members</h4>
-<div class="informaltable"><table class="informaltable" width="100%" border="0">
-<colgroup>
-<col width="300px" class="struct_members_name">
-<col class="struct_members_description">
-<col width="200px" class="struct_members_annotations">
-</colgroup>
-<tbody>
-<tr>
-<td class="struct_member_name"><p><a class="link" href="gst-plugins-base-libs-gstvideo.html#GstVideoInfo" title="struct GstVideoInfo"><span class="type">GstVideoInfo</span></a> *<em class="structfield"><code><a name="GstVideoMetaTransform.in-info"></a>in_info</code></em>;</p></td>
-<td class="struct_member_description"><p>the input <a class="link" href="gst-plugins-base-libs-gstvideo.html#GstVideoInfo" title="struct GstVideoInfo"><span class="type">GstVideoInfo</span></a></p></td>
-<td class="struct_member_annotations"> </td>
-</tr>
-<tr>
-<td class="struct_member_name"><p><a class="link" href="gst-plugins-base-libs-gstvideo.html#GstVideoInfo" title="struct GstVideoInfo"><span class="type">GstVideoInfo</span></a> *<em class="structfield"><code><a name="GstVideoMetaTransform.out-info"></a>out_info</code></em>;</p></td>
-<td class="struct_member_description"><p>the output <a class="link" href="gst-plugins-base-libs-gstvideo.html#GstVideoInfo" title="struct GstVideoInfo"><span class="type">GstVideoInfo</span></a></p></td>
-<td class="struct_member_annotations"> </td>
-</tr>
-</tbody>
-</table></div>
-</div>
 </div>
 <hr>
 <div class="refsect2">
@@ -992,44 +405,6 @@
   guint         height;
 };
 </pre>
-<p>Extra buffer metadata describing image cropping.</p>
-<div class="refsect3">
-<a name="GstVideoCropMeta.members"></a><h4>Members</h4>
-<div class="informaltable"><table class="informaltable" width="100%" border="0">
-<colgroup>
-<col width="300px" class="struct_members_name">
-<col class="struct_members_description">
-<col width="200px" class="struct_members_annotations">
-</colgroup>
-<tbody>
-<tr>
-<td class="struct_member_name"><p><a href="/usr/share/gtk-doc/html/gstreamer-1.0gstreamer-GstMeta.html#GstMeta"><span class="type">GstMeta</span></a> <em class="structfield"><code><a name="GstVideoCropMeta.meta"></a>meta</code></em>;</p></td>
-<td class="struct_member_description"><p>parent <a href="/usr/share/gtk-doc/html/gstreamer-1.0gstreamer-GstMeta.html#GstMeta"><span class="type">GstMeta</span></a></p></td>
-<td class="struct_member_annotations"> </td>
-</tr>
-<tr>
-<td class="struct_member_name"><p><a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#guint"><span class="type">guint</span></a> <em class="structfield"><code><a name="GstVideoCropMeta.x"></a>x</code></em>;</p></td>
-<td class="struct_member_description"><p>the horizontal offset</p></td>
-<td class="struct_member_annotations"> </td>
-</tr>
-<tr>
-<td class="struct_member_name"><p><a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#guint"><span class="type">guint</span></a> <em class="structfield"><code><a name="GstVideoCropMeta.y"></a>y</code></em>;</p></td>
-<td class="struct_member_description"><p>the vertical offset</p></td>
-<td class="struct_member_annotations"> </td>
-</tr>
-<tr>
-<td class="struct_member_name"><p><a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#guint"><span class="type">guint</span></a> <em class="structfield"><code><a name="GstVideoCropMeta.width"></a>width</code></em>;</p></td>
-<td class="struct_member_description"><p>the cropped width</p></td>
-<td class="struct_member_annotations"> </td>
-</tr>
-<tr>
-<td class="struct_member_name"><p><a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#guint"><span class="type">guint</span></a> <em class="structfield"><code><a name="GstVideoCropMeta.height"></a>height</code></em>;</p></td>
-<td class="struct_member_description"><p>the cropped height</p></td>
-<td class="struct_member_annotations"> </td>
-</tr>
-</tbody>
-</table></div>
-</div>
 </div>
 <hr>
 <div class="refsect2">
@@ -1047,71 +422,12 @@
   guint h;
 } GstVideoRegionOfInterestMeta;
 </pre>
-<p>Extra buffer metadata describing an image region of interest</p>
-<div class="refsect3">
-<a name="GstVideoRegionOfInterestMeta.members"></a><h4>Members</h4>
-<div class="informaltable"><table class="informaltable" width="100%" border="0">
-<colgroup>
-<col width="300px" class="struct_members_name">
-<col class="struct_members_description">
-<col width="200px" class="struct_members_annotations">
-</colgroup>
-<tbody>
-<tr>
-<td class="struct_member_name"><p><a href="/usr/share/gtk-doc/html/gstreamer-1.0gstreamer-GstMeta.html#GstMeta"><span class="type">GstMeta</span></a> <em class="structfield"><code><a name="GstVideoRegionOfInterestMeta.meta"></a>meta</code></em>;</p></td>
-<td class="struct_member_description"><p>parent <a href="/usr/share/gtk-doc/html/gstreamer-1.0gstreamer-GstMeta.html#GstMeta"><span class="type">GstMeta</span></a></p></td>
-<td class="struct_member_annotations"> </td>
-</tr>
-<tr>
-<td class="struct_member_name"><p><a href="/usr/share/gtk-doc/html/glibglib-Quarks.html#GQuark"><span class="type">GQuark</span></a> <em class="structfield"><code><a name="GstVideoRegionOfInterestMeta.roi-type"></a>roi_type</code></em>;</p></td>
-<td class="struct_member_description"><p>GQuark describing the semantic of the Roi (f.i. a face, a pedestrian)</p></td>
-<td class="struct_member_annotations"> </td>
-</tr>
-<tr>
-<td class="struct_member_name"><p><a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#gint"><span class="type">gint</span></a> <em class="structfield"><code><a name="GstVideoRegionOfInterestMeta.id"></a>id</code></em>;</p></td>
-<td class="struct_member_description"><p>identifier of this particular ROI</p></td>
-<td class="struct_member_annotations"> </td>
-</tr>
-<tr>
-<td class="struct_member_name"><p><a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#gint"><span class="type">gint</span></a> <em class="structfield"><code><a name="GstVideoRegionOfInterestMeta.parent-id"></a>parent_id</code></em>;</p></td>
-<td class="struct_member_description"><p>identifier of its parent ROI, used f.i. for ROI hierarchisation.</p></td>
-<td class="struct_member_annotations"> </td>
-</tr>
-<tr>
-<td class="struct_member_name"><p><a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#guint"><span class="type">guint</span></a> <em class="structfield"><code><a name="GstVideoRegionOfInterestMeta.x"></a>x</code></em>;</p></td>
-<td class="struct_member_description"><p>x component of upper-left corner</p></td>
-<td class="struct_member_annotations"> </td>
-</tr>
-<tr>
-<td class="struct_member_name"><p><a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#guint"><span class="type">guint</span></a> <em class="structfield"><code><a name="GstVideoRegionOfInterestMeta.y"></a>y</code></em>;</p></td>
-<td class="struct_member_description"><p>y component of upper-left corner</p></td>
-<td class="struct_member_annotations"> </td>
-</tr>
-<tr>
-<td class="struct_member_name"><p><a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#guint"><span class="type">guint</span></a> <em class="structfield"><code><a name="GstVideoRegionOfInterestMeta.w"></a>w</code></em>;</p></td>
-<td class="struct_member_description"><p>bounding box width</p></td>
-<td class="struct_member_annotations"> </td>
-</tr>
-<tr>
-<td class="struct_member_name"><p><a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#guint"><span class="type">guint</span></a> <em class="structfield"><code><a name="GstVideoRegionOfInterestMeta.h"></a>h</code></em>;</p></td>
-<td class="struct_member_description"><p>bounding box height</p></td>
-<td class="struct_member_annotations"> </td>
-</tr>
-</tbody>
-</table></div>
-</div>
 </div>
 <hr>
 <div class="refsect2">
 <a name="GST-BUFFER-POOL-OPTION-VIDEO-GL-TEXTURE-UPLOAD-META:CAPS"></a><h3>GST_BUFFER_POOL_OPTION_VIDEO_GL_TEXTURE_UPLOAD_META</h3>
 <pre class="programlisting">#define GST_BUFFER_POOL_OPTION_VIDEO_GL_TEXTURE_UPLOAD_META "GstBufferPoolOptionVideoGLTextureUploadMeta"
 </pre>
-<p>An option that can be activated on a bufferpool to request gl texture upload
-meta on buffers from the pool.</p>
-<p>When this option is enabled on the bufferpool,
-<em class="parameter"><code>GST_BUFFER_POOL_OPTION_VIDEO_META</code></em>
- should also be enabled.</p>
-<p class="since">Since: 1.2.2</p>
 </div>
 <hr>
 <div class="refsect2">
@@ -1124,42 +440,6 @@
   GstVideoGLTextureType texture_type[4];
 };
 </pre>
-<p>Extra buffer metadata for uploading a buffer to an OpenGL texture
-ID. The caller of <a class="link" href="gst-plugins-base-libs-gstvideometa.html#gst-video-gl-texture-upload-meta-upload" title="gst_video_gl_texture_upload_meta_upload ()"><code class="function">gst_video_gl_texture_upload_meta_upload()</code></a> must
-have OpenGL set up and call this from a thread where it is valid
-to upload something to an OpenGL texture.</p>
-<div class="refsect3">
-<a name="GstVideoGLTextureUploadMeta.members"></a><h4>Members</h4>
-<div class="informaltable"><table class="informaltable" width="100%" border="0">
-<colgroup>
-<col width="300px" class="struct_members_name">
-<col class="struct_members_description">
-<col width="200px" class="struct_members_annotations">
-</colgroup>
-<tbody>
-<tr>
-<td class="struct_member_name"><p><a href="/usr/share/gtk-doc/html/gstreamer-1.0gstreamer-GstMeta.html#GstMeta"><span class="type">GstMeta</span></a> <em class="structfield"><code><a name="GstVideoGLTextureUploadMeta.meta"></a>meta</code></em>;</p></td>
-<td class="struct_member_description"><p>parent <a href="/usr/share/gtk-doc/html/gstreamer-1.0gstreamer-GstMeta.html#GstMeta"><span class="type">GstMeta</span></a></p></td>
-<td class="struct_member_annotations"> </td>
-</tr>
-<tr>
-<td class="struct_member_name"><p><span class="type">GstVideoGLTextureOrientation</span> <em class="structfield"><code><a name="GstVideoGLTextureUploadMeta.texture-orientation"></a>texture_orientation</code></em>;</p></td>
-<td class="struct_member_description"><p>Orientation of the textures</p></td>
-<td class="struct_member_annotations"> </td>
-</tr>
-<tr>
-<td class="struct_member_name"><p><a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#guint"><span class="type">guint</span></a> <em class="structfield"><code><a name="GstVideoGLTextureUploadMeta.n-textures"></a>n_textures</code></em>;</p></td>
-<td class="struct_member_description"><p>Number of textures that are generated</p></td>
-<td class="struct_member_annotations"> </td>
-</tr>
-<tr>
-<td class="struct_member_name"><p><span class="type">GstVideoGLTextureType</span> <em class="structfield"><code><a name="GstVideoGLTextureUploadMeta.texture-type"></a>texture_type</code></em>[4];</p></td>
-<td class="struct_member_description"><p>Type of each texture</p></td>
-<td class="struct_member_annotations"> </td>
-</tr>
-</tbody>
-</table></div>
-</div>
 </div>
 </div>
 </div>
diff --git a/docs/libs/html/gst-plugins-base-libs-gstvideoorientation.html b/docs/libs/html/gst-plugins-base-libs-gstvideoorientation.html
index d0216f6..8f60b21 100644
--- a/docs/libs/html/gst-plugins-base-libs-gstvideoorientation.html
+++ b/docs/libs/html/gst-plugins-base-libs-gstvideoorientation.html
@@ -28,8 +28,7 @@
 <div class="refnamediv"><table width="100%"><tr>
 <td valign="top">
 <h2><span class="refentrytitle"><a name="gst-plugins-base-libs-gstvideoorientation.top_of_page"></a>gstvideoorientation</span></h2>
-<p>gstvideoorientation — Interface for elements providing video orientation
-controls</p>
+<p>gstvideoorientation</p>
 </td>
 <td class="gallery_image" valign="top" align="right"></td>
 </tr></table></div>
@@ -140,8 +139,6 @@
 </div>
 <div class="refsect1">
 <a name="gst-plugins-base-libs-gstvideoorientation.description"></a><h2>Description</h2>
-<p>The interface allows unified access to control flipping and autocenter
-operation of video-sources or operators.</p>
 </div>
 <div class="refsect1">
 <a name="gst-plugins-base-libs-gstvideoorientation.functions_details"></a><h2>Functions</h2>
@@ -150,33 +147,6 @@
 <pre class="programlisting"><a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
 gst_video_orientation_get_hcenter (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstvideoorientation.html#GstVideoOrientation"><span class="type">GstVideoOrientation</span></a> *video_orientation</code></em>,
                                    <em class="parameter"><code><a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#gint"><span class="type">gint</span></a> *center</code></em>);</pre>
-<p>Get the horizontal centering offset from the given object.</p>
-<div class="refsect3">
-<a name="gst-video-orientation-get-hcenter.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>video_orientation</p></td>
-<td class="parameter_description"><p><a class="link" href="gst-plugins-base-libs-gstvideoorientation.html#GstVideoOrientation"><span class="type">GstVideoOrientation</span></a> interface of a <a href="/usr/share/gtk-doc/html/gstreamer-1.0GstElement.html#GstElement-struct"><span class="type">GstElement</span></a></p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-<tr>
-<td class="parameter_name"><p>center</p></td>
-<td class="parameter_description"><p>return location for the result</p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-</tbody>
-</table></div>
-</div>
-<div class="refsect3">
-<a name="gst-video-orientation-get-hcenter.returns"></a><h4>Returns</h4>
-<p> <a href="/usr/share/gtk-doc/html/glibglib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a> in case the element supports centering</p>
-</div>
 </div>
 <hr>
 <div class="refsect2">
@@ -184,33 +154,6 @@
 <pre class="programlisting"><a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
 gst_video_orientation_get_hflip (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstvideoorientation.html#GstVideoOrientation"><span class="type">GstVideoOrientation</span></a> *video_orientation</code></em>,
                                  <em class="parameter"><code><a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a> *flip</code></em>);</pre>
-<p>Get the horizontal flipping state (<a href="/usr/share/gtk-doc/html/glibglib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a> for flipped) from the given object.</p>
-<div class="refsect3">
-<a name="gst-video-orientation-get-hflip.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>video_orientation</p></td>
-<td class="parameter_description"><p><a class="link" href="gst-plugins-base-libs-gstvideoorientation.html#GstVideoOrientation"><span class="type">GstVideoOrientation</span></a> interface of a <a href="/usr/share/gtk-doc/html/gstreamer-1.0GstElement.html#GstElement-struct"><span class="type">GstElement</span></a></p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-<tr>
-<td class="parameter_name"><p>flip</p></td>
-<td class="parameter_description"><p>return location for the result</p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-</tbody>
-</table></div>
-</div>
-<div class="refsect3">
-<a name="gst-video-orientation-get-hflip.returns"></a><h4>Returns</h4>
-<p> <a href="/usr/share/gtk-doc/html/glibglib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a> in case the element supports flipping</p>
-</div>
 </div>
 <hr>
 <div class="refsect2">
@@ -218,33 +161,6 @@
 <pre class="programlisting"><a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
 gst_video_orientation_get_vcenter (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstvideoorientation.html#GstVideoOrientation"><span class="type">GstVideoOrientation</span></a> *video_orientation</code></em>,
                                    <em class="parameter"><code><a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#gint"><span class="type">gint</span></a> *center</code></em>);</pre>
-<p>Get the vertical centering offset from the given object.</p>
-<div class="refsect3">
-<a name="gst-video-orientation-get-vcenter.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>video_orientation</p></td>
-<td class="parameter_description"><p><a class="link" href="gst-plugins-base-libs-gstvideoorientation.html#GstVideoOrientation"><span class="type">GstVideoOrientation</span></a> interface of a <a href="/usr/share/gtk-doc/html/gstreamer-1.0GstElement.html#GstElement-struct"><span class="type">GstElement</span></a></p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-<tr>
-<td class="parameter_name"><p>center</p></td>
-<td class="parameter_description"><p>return location for the result</p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-</tbody>
-</table></div>
-</div>
-<div class="refsect3">
-<a name="gst-video-orientation-get-vcenter.returns"></a><h4>Returns</h4>
-<p> <a href="/usr/share/gtk-doc/html/glibglib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a> in case the element supports centering</p>
-</div>
 </div>
 <hr>
 <div class="refsect2">
@@ -252,33 +168,6 @@
 <pre class="programlisting"><a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
 gst_video_orientation_get_vflip (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstvideoorientation.html#GstVideoOrientation"><span class="type">GstVideoOrientation</span></a> *video_orientation</code></em>,
                                  <em class="parameter"><code><a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a> *flip</code></em>);</pre>
-<p>Get the vertical flipping state (<a href="/usr/share/gtk-doc/html/glibglib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a> for flipped) from the given object.</p>
-<div class="refsect3">
-<a name="gst-video-orientation-get-vflip.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>video_orientation</p></td>
-<td class="parameter_description"><p><a class="link" href="gst-plugins-base-libs-gstvideoorientation.html#GstVideoOrientation"><span class="type">GstVideoOrientation</span></a> interface of a <a href="/usr/share/gtk-doc/html/gstreamer-1.0GstElement.html#GstElement-struct"><span class="type">GstElement</span></a></p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-<tr>
-<td class="parameter_name"><p>flip</p></td>
-<td class="parameter_description"><p>return location for the result</p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-</tbody>
-</table></div>
-</div>
-<div class="refsect3">
-<a name="gst-video-orientation-get-vflip.returns"></a><h4>Returns</h4>
-<p> <a href="/usr/share/gtk-doc/html/glibglib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a> in case the element supports flipping</p>
-</div>
 </div>
 <hr>
 <div class="refsect2">
@@ -286,33 +175,6 @@
 <pre class="programlisting"><a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
 gst_video_orientation_set_hcenter (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstvideoorientation.html#GstVideoOrientation"><span class="type">GstVideoOrientation</span></a> *video_orientation</code></em>,
                                    <em class="parameter"><code><a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#gint"><span class="type">gint</span></a> center</code></em>);</pre>
-<p>Set the horizontal centering offset for the given object.</p>
-<div class="refsect3">
-<a name="gst-video-orientation-set-hcenter.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>video_orientation</p></td>
-<td class="parameter_description"><p><a class="link" href="gst-plugins-base-libs-gstvideoorientation.html#GstVideoOrientation"><span class="type">GstVideoOrientation</span></a> interface of a <a href="/usr/share/gtk-doc/html/gstreamer-1.0GstElement.html#GstElement-struct"><span class="type">GstElement</span></a></p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-<tr>
-<td class="parameter_name"><p>center</p></td>
-<td class="parameter_description"><p>centering offset</p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-</tbody>
-</table></div>
-</div>
-<div class="refsect3">
-<a name="gst-video-orientation-set-hcenter.returns"></a><h4>Returns</h4>
-<p> <a href="/usr/share/gtk-doc/html/glibglib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a> in case the element supports centering</p>
-</div>
 </div>
 <hr>
 <div class="refsect2">
@@ -320,33 +182,6 @@
 <pre class="programlisting"><a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
 gst_video_orientation_set_hflip (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstvideoorientation.html#GstVideoOrientation"><span class="type">GstVideoOrientation</span></a> *video_orientation</code></em>,
                                  <em class="parameter"><code><a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a> flip</code></em>);</pre>
-<p>Set the horizontal flipping state (<a href="/usr/share/gtk-doc/html/glibglib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a> for flipped) for the given object.</p>
-<div class="refsect3">
-<a name="gst-video-orientation-set-hflip.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>video_orientation</p></td>
-<td class="parameter_description"><p><a class="link" href="gst-plugins-base-libs-gstvideoorientation.html#GstVideoOrientation"><span class="type">GstVideoOrientation</span></a> interface of a <a href="/usr/share/gtk-doc/html/gstreamer-1.0GstElement.html#GstElement-struct"><span class="type">GstElement</span></a></p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-<tr>
-<td class="parameter_name"><p>flip</p></td>
-<td class="parameter_description"><p>use flipping</p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-</tbody>
-</table></div>
-</div>
-<div class="refsect3">
-<a name="gst-video-orientation-set-hflip.returns"></a><h4>Returns</h4>
-<p> <a href="/usr/share/gtk-doc/html/glibglib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a> in case the element supports flipping</p>
-</div>
 </div>
 <hr>
 <div class="refsect2">
@@ -354,33 +189,6 @@
 <pre class="programlisting"><a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
 gst_video_orientation_set_vcenter (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstvideoorientation.html#GstVideoOrientation"><span class="type">GstVideoOrientation</span></a> *video_orientation</code></em>,
                                    <em class="parameter"><code><a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#gint"><span class="type">gint</span></a> center</code></em>);</pre>
-<p>Set the vertical centering offset for the given object.</p>
-<div class="refsect3">
-<a name="gst-video-orientation-set-vcenter.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>video_orientation</p></td>
-<td class="parameter_description"><p><a class="link" href="gst-plugins-base-libs-gstvideoorientation.html#GstVideoOrientation"><span class="type">GstVideoOrientation</span></a> interface of a <a href="/usr/share/gtk-doc/html/gstreamer-1.0GstElement.html#GstElement-struct"><span class="type">GstElement</span></a></p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-<tr>
-<td class="parameter_name"><p>center</p></td>
-<td class="parameter_description"><p>centering offset</p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-</tbody>
-</table></div>
-</div>
-<div class="refsect3">
-<a name="gst-video-orientation-set-vcenter.returns"></a><h4>Returns</h4>
-<p> <a href="/usr/share/gtk-doc/html/glibglib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a> in case the element supports centering</p>
-</div>
 </div>
 <hr>
 <div class="refsect2">
@@ -388,33 +196,6 @@
 <pre class="programlisting"><a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
 gst_video_orientation_set_vflip (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstvideoorientation.html#GstVideoOrientation"><span class="type">GstVideoOrientation</span></a> *video_orientation</code></em>,
                                  <em class="parameter"><code><a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a> flip</code></em>);</pre>
-<p>Set the vertical flipping state (<a href="/usr/share/gtk-doc/html/glibglib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a> for flipped) for the given object.</p>
-<div class="refsect3">
-<a name="gst-video-orientation-set-vflip.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>video_orientation</p></td>
-<td class="parameter_description"><p><a class="link" href="gst-plugins-base-libs-gstvideoorientation.html#GstVideoOrientation"><span class="type">GstVideoOrientation</span></a> interface of a <a href="/usr/share/gtk-doc/html/gstreamer-1.0GstElement.html#GstElement-struct"><span class="type">GstElement</span></a></p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-<tr>
-<td class="parameter_name"><p>flip</p></td>
-<td class="parameter_description"><p>use flipping</p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-</tbody>
-</table></div>
-</div>
-<div class="refsect3">
-<a name="gst-video-orientation-set-vflip.returns"></a><h4>Returns</h4>
-<p> <a href="/usr/share/gtk-doc/html/glibglib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a> in case the element supports flipping</p>
-</div>
 </div>
 </div>
 <div class="refsect1">
@@ -422,7 +203,6 @@
 <div class="refsect2">
 <a name="GstVideoOrientation-struct"></a><h3>GstVideoOrientation</h3>
 <pre class="programlisting">typedef struct _GstVideoOrientation GstVideoOrientation;</pre>
-<p>Opaque <a class="link" href="gst-plugins-base-libs-gstvideoorientation.html#GstVideoOrientation"><span class="type">GstVideoOrientation</span></a> data structure.</p>
 </div>
 <hr>
 <div class="refsect2">
@@ -446,64 +226,6 @@
   gboolean (* set_vcenter) (GstVideoOrientation *video_orientation, gint center);
 };
 </pre>
-<p><a class="link" href="gst-plugins-base-libs-gstvideoorientation.html#GstVideoOrientationInterface" title="struct GstVideoOrientationInterface"><span class="type">GstVideoOrientationInterface</span></a> interface.</p>
-<div class="refsect3">
-<a name="GstVideoOrientationInterface.members"></a><h4>Members</h4>
-<div class="informaltable"><table class="informaltable" width="100%" border="0">
-<colgroup>
-<col width="300px" class="struct_members_name">
-<col class="struct_members_description">
-<col width="200px" class="struct_members_annotations">
-</colgroup>
-<tbody>
-<tr>
-<td class="struct_member_name"><p><a href="/usr/share/gtk-doc/html/gobjectgobject-Type-Information.html#GTypeInterface"><span class="type">GTypeInterface</span></a> <em class="structfield"><code><a name="GstVideoOrientationInterface.iface"></a>iface</code></em>;</p></td>
-<td class="struct_member_description"><p>parent interface type.</p></td>
-<td class="struct_member_annotations"> </td>
-</tr>
-<tr>
-<td class="struct_member_name"><p><em class="structfield"><code><a name="GstVideoOrientationInterface.get-hflip"></a>get_hflip</code></em> ()</p></td>
-<td class="struct_member_description"><p>virtual method to get horizontal flipping state</p></td>
-<td class="struct_member_annotations"> </td>
-</tr>
-<tr>
-<td class="struct_member_name"><p><em class="structfield"><code><a name="GstVideoOrientationInterface.get-vflip"></a>get_vflip</code></em> ()</p></td>
-<td class="struct_member_description"><p>virtual method to get vertical flipping state</p></td>
-<td class="struct_member_annotations"> </td>
-</tr>
-<tr>
-<td class="struct_member_name"><p><em class="structfield"><code><a name="GstVideoOrientationInterface.get-hcenter"></a>get_hcenter</code></em> ()</p></td>
-<td class="struct_member_description"><p>virtual method to get horizontal centering state</p></td>
-<td class="struct_member_annotations"> </td>
-</tr>
-<tr>
-<td class="struct_member_name"><p><em class="structfield"><code><a name="GstVideoOrientationInterface.get-vcenter"></a>get_vcenter</code></em> ()</p></td>
-<td class="struct_member_description"><p>virtual method to get vertical centering state</p></td>
-<td class="struct_member_annotations"> </td>
-</tr>
-<tr>
-<td class="struct_member_name"><p><em class="structfield"><code><a name="GstVideoOrientationInterface.set-hflip"></a>set_hflip</code></em> ()</p></td>
-<td class="struct_member_description"><p>virtual method to set horizontal flipping state</p></td>
-<td class="struct_member_annotations"> </td>
-</tr>
-<tr>
-<td class="struct_member_name"><p><em class="structfield"><code><a name="GstVideoOrientationInterface.set-vflip"></a>set_vflip</code></em> ()</p></td>
-<td class="struct_member_description"><p>virtual method to set vertical flipping state</p></td>
-<td class="struct_member_annotations"> </td>
-</tr>
-<tr>
-<td class="struct_member_name"><p><em class="structfield"><code><a name="GstVideoOrientationInterface.set-hcenter"></a>set_hcenter</code></em> ()</p></td>
-<td class="struct_member_description"><p>virtual method to set horizontal centering state</p></td>
-<td class="struct_member_annotations"> </td>
-</tr>
-<tr>
-<td class="struct_member_name"><p><em class="structfield"><code><a name="GstVideoOrientationInterface.set-vcenter"></a>set_vcenter</code></em> ()</p></td>
-<td class="struct_member_description"><p>virtual method to set vertical centering state</p></td>
-<td class="struct_member_annotations"> </td>
-</tr>
-</tbody>
-</table></div>
-</div>
 </div>
 </div>
 </div>
diff --git a/docs/libs/html/gst-plugins-base-libs-gstvideooverlay.html b/docs/libs/html/gst-plugins-base-libs-gstvideooverlay.html
index 1aa62bc..21c8e9e 100644
--- a/docs/libs/html/gst-plugins-base-libs-gstvideooverlay.html
+++ b/docs/libs/html/gst-plugins-base-libs-gstvideooverlay.html
@@ -28,9 +28,7 @@
 <div class="refnamediv"><table width="100%"><tr>
 <td valign="top">
 <h2><span class="refentrytitle"><a name="gst-plugins-base-libs-gstvideooverlay.top_of_page"></a>gstvideooverlay</span></h2>
-<p>gstvideooverlay — Interface for setting/getting a window system resource
-   on elements supporting it to configure a window into which to render a
-   video.</p>
+<p>gstvideooverlay</p>
 </td>
 <td class="gallery_image" valign="top" align="right"></td>
 </tr></table></div>
@@ -133,496 +131,6 @@
 </div>
 <div class="refsect1">
 <a name="gst-plugins-base-libs-gstvideooverlay.description"></a><h2>Description</h2>
-<div class="refsect2">
-<a name="id-1.2.15.16.8.2"></a><p>
-The <a class="link" href="gst-plugins-base-libs-gstvideooverlay.html#GstVideoOverlay"><span class="type">GstVideoOverlay</span></a> interface is used for 2 main purposes :
-</p>
-<div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; ">
-<li class="listitem"><p>
-To get a grab on the Window where the video sink element is going to render.
-This is achieved by either being informed about the Window identifier that
-the video sink element generated, or by forcing the video sink element to use
-a specific Window identifier for rendering.
-</p></li>
-<li class="listitem"><p>
-To force a redrawing of the latest video frame the video sink element
-displayed on the Window. Indeed if the <a href="/usr/share/gtk-doc/html/gstreamer-1.0GstPipeline.html#GstPipeline-struct"><span class="type">GstPipeline</span></a> is in <a href="/usr/share/gtk-doc/html/gstreamer-1.0GstElement.html#GST-STATE-PAUSED:CAPS"><span class="type">GST_STATE_PAUSED</span></a>
-state, moving the Window around will damage its content. Application
-developers will want to handle the Expose events themselves and force the
-video sink element to refresh the Window's content.
-</p></li>
-</ul></div>
-<p>
-</p>
-<p>
-Using the Window created by the video sink is probably the simplest scenario,
-in some cases, though, it might not be flexible enough for application
-developers if they need to catch events such as mouse moves and button
-clicks.
-</p>
-<p>
-Setting a specific Window identifier on the video sink element is the most
-flexible solution but it has some issues. Indeed the application needs to set
-its Window identifier at the right time to avoid internal Window creation
-from the video sink element. To solve this issue a <a href="/usr/share/gtk-doc/html/gstreamer-1.0GstMessage.html#GstMessage-struct"><span class="type">GstMessage</span></a> is posted on
-the bus to inform the application that it should set the Window identifier
-immediately. Here is an example on how to do that correctly:
-</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
-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</pre></td>
-        <td class="listing_code"><pre class="programlisting"><span class="gtkdoc kwb">static</span> GstBusSyncReply
-<span class="function">create_window</span> <span class="gtkdoc opt">(</span>GstBus <span class="gtkdoc opt">*</span> bus<span class="gtkdoc opt">,</span> GstMessage <span class="gtkdoc opt">*</span> message<span class="gtkdoc opt">,</span> GstPipeline <span class="gtkdoc opt">*</span> pipeline<span class="gtkdoc opt">)</span>
-<span class="gtkdoc opt">{</span>
- <span class="gtkdoc slc">// ignore anything but 'prepare-window-handle' element messages</span>
- <span class="keyword">if</span> <span class="gtkdoc opt">(!</span><span class="function"><a href="gst-plugins-base-libs-gstvideooverlay.html#gst-is-video-overlay-prepare-window-handle-message">gst_is_video_overlay_prepare_window_handle_message</a></span> <span class="gtkdoc opt">(</span>message<span class="gtkdoc opt">))</span>
-   <span class="keyword">return</span> GST_BUS_PASS<span class="gtkdoc opt">;</span>
-
- win <span class="gtkdoc opt">=</span> <span class="function">XCreateSimpleWindow</span> <span class="gtkdoc opt">(</span>disp<span class="gtkdoc opt">,</span> root<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="number">320</span><span class="gtkdoc opt">,</span> <span class="number">240</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="number">0</span><span class="gtkdoc opt">);</span>
-
- <span class="function">XSetWindowBackgroundPixmap</span> <span class="gtkdoc opt">(</span>disp<span class="gtkdoc opt">,</span> win<span class="gtkdoc opt">,</span> None<span class="gtkdoc opt">);</span>
-
- <span class="function">XMapRaised</span> <span class="gtkdoc opt">(</span>disp<span class="gtkdoc opt">,</span> win<span class="gtkdoc opt">);</span>
-
- <span class="function">XSync</span> <span class="gtkdoc opt">(</span>disp<span class="gtkdoc opt">,</span> FALSE<span class="gtkdoc opt">);</span>
-
- <span class="function"><a href="gst-plugins-base-libs-gstvideooverlay.html#gst-video-overlay-set-window-handle">gst_video_overlay_set_window_handle</a></span> <span class="gtkdoc opt">(</span><span class="function">GST_VIDEO_OVERLAY</span> <span class="gtkdoc opt">(</span><span class="function"><a href="/usr/share/gtk-doc/html/gstreamer-1.0GstMessage.html#GST-MESSAGE-SRC:CAPS">GST_MESSAGE_SRC</a></span> <span class="gtkdoc opt">(</span>message<span class="gtkdoc opt">)),</span>
-     win<span class="gtkdoc opt">);</span>
-
- <span class="function"><a href="/usr/share/gtk-doc/html/gstreamer-1.0GstMessage.html#gst-message-unref">gst_message_unref</a></span> <span class="gtkdoc opt">(</span>message<span class="gtkdoc opt">);</span>
-
- <span class="keyword">return</span> GST_BUS_DROP<span class="gtkdoc opt">;</span>
-<span class="gtkdoc opt">}</span>
-<span class="gtkdoc opt">...</span>
-<span class="gtkdoc kwb">int</span>
-<span class="function">main</span> <span class="gtkdoc opt">(</span><span class="gtkdoc kwb">int</span> argc<span class="gtkdoc opt">,</span> <span class="gtkdoc kwb">char</span> <span class="gtkdoc opt">**</span>argv<span class="gtkdoc opt">)</span>
-<span class="gtkdoc opt">{</span>
-<span class="gtkdoc opt">...</span>
- bus <span class="gtkdoc opt">=</span> <span class="function"><a href="/usr/share/gtk-doc/html/gstreamer-1.0GstPipeline.html#gst-pipeline-get-bus">gst_pipeline_get_bus</a></span> <span class="gtkdoc opt">(</span><span class="function">GST_PIPELINE</span> <span class="gtkdoc opt">(</span>pipeline<span class="gtkdoc opt">));</span>
- <span class="function"><a href="/usr/share/gtk-doc/html/gstreamer-1.0GstBus.html#gst-bus-set-sync-handler">gst_bus_set_sync_handler</a></span> <span class="gtkdoc opt">(</span>bus<span class="gtkdoc opt">, (</span>GstBusSyncHandler<span class="gtkdoc opt">)</span> create_window<span class="gtkdoc opt">,</span> pipeline<span class="gtkdoc opt">,</span>
-        NULL<span class="gtkdoc opt">);</span>
-<span class="gtkdoc opt">...</span>
-<span class="gtkdoc opt">}</span></pre></td>
-      </tr>
-    </tbody>
-  </table>
-</div>
-
-<p>
-</p>
-</div>
-<hr>
-<div class="refsect2">
-<a name="id-1.2.15.16.8.3"></a><h3>Two basic usage scenarios</h3>
-<p>
-There are two basic usage scenarios: in the simplest case, the application
-uses <span class="type">playbin</span> or <span class="type">plasink</span> or knows exactly what particular element is used
-for video output, which is usually the case when the application creates
-the videosink to use (e.g. <span class="type">xvimagesink</span>, <span class="type">ximagesink</span>, etc.) itself; in this
-case, the application can just create the videosink element, create and
-realize the window to render the video on and then
-call <a class="link" href="gst-plugins-base-libs-gstvideooverlay.html#gst-video-overlay-set-window-handle" title="gst_video_overlay_set_window_handle ()"><code class="function">gst_video_overlay_set_window_handle()</code></a> directly with the XID or native
-window handle, before starting up the pipeline.
-As <span class="type">playbin</span> and <span class="type">playsink</span> implement the video overlay interface and proxy
-it transparently to the actual video sink even if it is created later, this
-case also applies when using these elements.
-</p>
-<p>
-In the other and more common case, the application does not know in advance
-what GStreamer video sink element will be used for video output. This is
-usually the case when an element such as <span class="type">autovideosink</span> is used.
-In this case, the video sink element itself is created
-asynchronously from a GStreamer streaming thread some time after the
-pipeline has been started up. When that happens, however, the video sink
-will need to know right then whether to render onto an already existing
-application window or whether to create its own window. This is when it
-posts a prepare-window-handle message, and that is also why this message needs
-to be handled in a sync bus handler which will be called from the streaming
-thread directly (because the video sink will need an answer right then).
-</p>
-<p>
-As response to the prepare-window-handle element message in the bus sync
-handler, the application may use <a class="link" href="gst-plugins-base-libs-gstvideooverlay.html#gst-video-overlay-set-window-handle" title="gst_video_overlay_set_window_handle ()"><code class="function">gst_video_overlay_set_window_handle()</code></a> to tell
-the video sink to render onto an existing window surface. At this point the
-application should already have obtained the window handle / XID, so it
-just needs to set it. It is generally not advisable to call any GUI toolkit
-functions or window system functions from the streaming thread in which the
-prepare-window-handle message is handled, because most GUI toolkits and
-windowing systems are not thread-safe at all and a lot of care would be
-required to co-ordinate the toolkit and window system calls of the
-different threads (Gtk+ users please note: prior to Gtk+ 2.18
-<a href="/usr/share/gtk-doc/html/gdk3gdk3-X-Window-System-Interaction.html#GDK-WINDOW-XID:CAPS"><code class="function">GDK_WINDOW_XID()</code></a> was just a simple structure access, so generally fine to do
-within the bus sync handler; this macro was changed to a function call in
-Gtk+ 2.18 and later, which is likely to cause problems when called from a
-sync handler; see below for a better approach without <a href="/usr/share/gtk-doc/html/gdk3gdk3-X-Window-System-Interaction.html#GDK-WINDOW-XID:CAPS"><code class="function">GDK_WINDOW_XID()</code></a>
-used in the callback).
-</p>
-</div>
-<hr>
-<div class="refsect2">
-<a name="id-1.2.15.16.8.4"></a><h3>GstVideoOverlay and Gtk+</h3>
-<p>
-</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
-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
-55
-56
-57
-58
-59
-60
-61
-62
-63
-64
-65
-66
-67
-68
-69
-70
-71
-72
-73
-74
-75
-76
-77
-78
-79
-80
-81
-82
-83
-84
-85
-86
-87
-88
-89
-90
-91
-92
-93
-94
-95
-96</pre></td>
-        <td class="listing_code"><pre class="programlisting"><span class="gtkdoc ppc">#include &lt;gst/video/videooverlay.h&gt;</span>
-<span class="gtkdoc ppc">#include &lt;gtk/gtk.h&gt;</span>
-<span class="gtkdoc ppc">#ifdef GDK_WINDOWING_X11</span>
-<span class="gtkdoc ppc">#include &lt;gdk/gdkx.h&gt;</span>  <span class="gtkdoc slc">// for GDK_WINDOW_XID</span>
-<span class="gtkdoc ppc"></span><span class="gtkdoc ppc">#endif</span>
-<span class="gtkdoc ppc">#ifdef GDK_WINDOWING_WIN32</span>
-<span class="gtkdoc ppc">#include &lt;gdk/gdkwin32.h&gt;</span>  <span class="gtkdoc slc">// for GDK_WINDOW_HWND</span>
-<span class="gtkdoc ppc"></span><span class="gtkdoc ppc">#endif</span>
-<span class="gtkdoc opt">...</span>
-<span class="gtkdoc kwb">static</span> guintptr video_window_handle <span class="gtkdoc opt">=</span> <span class="number">0</span><span class="gtkdoc opt">;</span>
-<span class="gtkdoc opt">...</span>
-<span class="gtkdoc kwb">static</span> GstBusSyncReply
-<span class="function">bus_sync_handler</span> <span class="gtkdoc opt">(</span>GstBus <span class="gtkdoc opt">*</span> bus<span class="gtkdoc opt">,</span> GstMessage <span class="gtkdoc opt">*</span> message<span class="gtkdoc opt">,</span> gpointer user_data<span class="gtkdoc opt">)</span>
-<span class="gtkdoc opt">{</span>
- <span class="gtkdoc slc">// ignore anything but 'prepare-window-handle' element messages</span>
- <span class="keyword">if</span> <span class="gtkdoc opt">(!</span><span class="function"><a href="gst-plugins-base-libs-gstvideooverlay.html#gst-is-video-overlay-prepare-window-handle-message">gst_is_video_overlay_prepare_window_handle_message</a></span> <span class="gtkdoc opt">(</span>message<span class="gtkdoc opt">))</span>
-   <span class="keyword">return</span> GST_BUS_PASS<span class="gtkdoc opt">;</span>
-
- <span class="keyword">if</span> <span class="gtkdoc opt">(</span>video_window_handle <span class="gtkdoc opt">!=</span> <span class="number">0</span><span class="gtkdoc opt">) {</span>
-   GstVideoOverlay <span class="gtkdoc opt">*</span>overlay<span class="gtkdoc opt">;</span>
-
-   <span class="gtkdoc slc">// GST_MESSAGE_SRC (message) will be the video sink element</span>
-   overlay <span class="gtkdoc opt">=</span> <span class="function">GST_VIDEO_OVERLAY</span> <span class="gtkdoc opt">(</span><span class="function"><a href="/usr/share/gtk-doc/html/gstreamer-1.0GstMessage.html#GST-MESSAGE-SRC:CAPS">GST_MESSAGE_SRC</a></span> <span class="gtkdoc opt">(</span>message<span class="gtkdoc opt">));</span>
-   <span class="function"><a href="gst-plugins-base-libs-gstvideooverlay.html#gst-video-overlay-set-window-handle">gst_video_overlay_set_window_handle</a></span> <span class="gtkdoc opt">(</span>overlay<span class="gtkdoc opt">,</span> video_window_handle<span class="gtkdoc opt">);</span>
- <span class="gtkdoc opt">}</span> <span class="keyword">else</span> <span class="gtkdoc opt">{</span>
-   <span class="function"><a href="/usr/share/gtk-doc/html/glibglib-Message-Logging.html#g-warning">g_warning</a></span> <span class="gtkdoc opt">(</span><span class="string">&quot;Should have obtained video_window_handle by now!&quot;</span><span class="gtkdoc opt">);</span>
- <span class="gtkdoc opt">}</span>
-
- <span class="function"><a href="/usr/share/gtk-doc/html/gstreamer-1.0GstMessage.html#gst-message-unref">gst_message_unref</a></span> <span class="gtkdoc opt">(</span>message<span class="gtkdoc opt">);</span>
- <span class="keyword">return</span> GST_BUS_DROP<span class="gtkdoc opt">;</span>
-<span class="gtkdoc opt">}</span>
-<span class="gtkdoc opt">...</span>
-<span class="gtkdoc kwb">static void</span>
-<span class="function">video_widget_realize_cb</span> <span class="gtkdoc opt">(</span>GtkWidget <span class="gtkdoc opt">*</span> widget<span class="gtkdoc opt">,</span> gpointer data<span class="gtkdoc opt">)</span>
-<span class="gtkdoc opt">{</span>
-<span class="gtkdoc ppc">#if GTK_CHECK_VERSION(2,18,0)</span>
-  <span class="gtkdoc slc">// Tell Gtk+/Gdk to create a native window for this widget instead of</span>
-  <span class="gtkdoc slc">// drawing onto the parent widget.</span>
-  <span class="gtkdoc slc">// This is here just for pedagogical purposes, GDK_WINDOW_XID will call</span>
-  <span class="gtkdoc slc">// it as well in newer Gtk versions</span>
-  <span class="keyword">if</span> <span class="gtkdoc opt">(!</span><span class="function"><a href="/usr/share/gtk-doc/html/gdk3gdk3-Windows.html#gdk-window-ensure-native">gdk_window_ensure_native</a></span> <span class="gtkdoc opt">(</span>widget<span class="gtkdoc opt">-&gt;</span>window<span class="gtkdoc opt">))</span>
-    <span class="function"><a href="/usr/share/gtk-doc/html/glibglib-Message-Logging.html#g-error">g_error</a></span> <span class="gtkdoc opt">(</span><span class="string">&quot;Couldn't create native window needed for GstVideoOverlay!&quot;</span><span class="gtkdoc opt">);</span>
-<span class="gtkdoc ppc">#endif</span>
-
-<span class="gtkdoc ppc">#ifdef GDK_WINDOWING_X11</span>
-  <span class="gtkdoc opt">{</span>
-    gulong xid <span class="gtkdoc opt">=</span> <span class="function"><a href="/usr/share/gtk-doc/html/gdk3gdk3-X-Window-System-Interaction.html#GDK-WINDOW-XID:CAPS">GDK_WINDOW_XID</a></span> <span class="gtkdoc opt">(</span><span class="function"><a href="/usr/share/gtk-doc/html/gtk3GtkWidget.html#gtk-widget-get-window">gtk_widget_get_window</a></span> <span class="gtkdoc opt">(</span>video_window<span class="gtkdoc opt">));</span>
-    video_window_handle <span class="gtkdoc opt">=</span> xid<span class="gtkdoc opt">;</span>
-  <span class="gtkdoc opt">}</span>
-<span class="gtkdoc ppc">#endif</span>
-<span class="gtkdoc ppc">#ifdef GDK_WINDOWING_WIN32</span>
-  <span class="gtkdoc opt">{</span>
-    HWND wnd <span class="gtkdoc opt">=</span> <span class="function">GDK_WINDOW_HWND</span> <span class="gtkdoc opt">(</span><span class="function"><a href="/usr/share/gtk-doc/html/gtk3GtkWidget.html#gtk-widget-get-window">gtk_widget_get_window</a></span> <span class="gtkdoc opt">(</span>video_window<span class="gtkdoc opt">));</span>
-    video_window_handle <span class="gtkdoc opt">= (</span>guintptr<span class="gtkdoc opt">)</span> wnd<span class="gtkdoc opt">;</span>
-  <span class="gtkdoc opt">}</span>
-<span class="gtkdoc ppc">#endif</span>
-<span class="gtkdoc opt">}</span>
-<span class="gtkdoc opt">...</span>
-<span class="gtkdoc kwb">int</span>
-<span class="function">main</span> <span class="gtkdoc opt">(</span><span class="gtkdoc kwb">int</span> argc<span class="gtkdoc opt">,</span> <span class="gtkdoc kwb">char</span> <span class="gtkdoc opt">**</span>argv<span class="gtkdoc opt">)</span>
-<span class="gtkdoc opt">{</span>
-  GtkWidget <span class="gtkdoc opt">*</span>video_window<span class="gtkdoc opt">;</span>
-  GtkWidget <span class="gtkdoc opt">*</span>app_window<span class="gtkdoc opt">;</span>
-  <span class="gtkdoc opt">...</span>
-  app_window <span class="gtkdoc opt">=</span> <span class="function"><a href="/usr/share/gtk-doc/html/gtk3GtkWindow.html#gtk-window-new">gtk_window_new</a></span> <span class="gtkdoc opt">(</span>GTK_WINDOW_TOPLEVEL<span class="gtkdoc opt">);</span>
-  <span class="gtkdoc opt">...</span>
-  video_window <span class="gtkdoc opt">=</span> <span class="function"><a href="/usr/share/gtk-doc/html/gtk3GtkDrawingArea.html#gtk-drawing-area-new">gtk_drawing_area_new</a></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>video_window<span class="gtkdoc opt">,</span> <span class="string">&quot;realize&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>video_widget_realize_cb<span class="gtkdoc opt">),</span> NULL<span class="gtkdoc opt">);</span>
-  <span class="function"><a href="/usr/share/gtk-doc/html/gtk3GtkWidget.html#gtk-widget-set-double-buffered">gtk_widget_set_double_buffered</a></span> <span class="gtkdoc opt">(</span>video_window<span class="gtkdoc opt">,</span> FALSE<span class="gtkdoc opt">);</span>
-  <span class="gtkdoc opt">...</span>
-  <span class="gtkdoc slc">// usually the video_window will not be directly embedded into the</span>
-  <span class="gtkdoc slc">// application window like this, but there will be many other widgets</span>
-  <span class="gtkdoc slc">// and the video window will be embedded in one of them instead</span>
-  <span class="function"><a href="/usr/share/gtk-doc/html/gtk3GtkContainer.html#gtk-container-add">gtk_container_add</a></span> <span class="gtkdoc opt">(</span><span class="function">GTK_CONTAINER</span> <span class="gtkdoc opt">(</span>ap_window<span class="gtkdoc opt">),</span> video_window<span class="gtkdoc opt">);</span>
-  <span class="gtkdoc opt">...</span>
-  <span class="gtkdoc slc">// show the GUI</span>
-  <span class="function"><a href="/usr/share/gtk-doc/html/gtk3GtkWidget.html#gtk-widget-show-all">gtk_widget_show_all</a></span> <span class="gtkdoc opt">(</span>app_window<span class="gtkdoc opt">);</span>
-
-  <span class="gtkdoc slc">// realize window now so that the video window gets created and we can</span>
-  <span class="gtkdoc slc">// obtain its XID/HWND before the pipeline is started up and the videosink</span>
-  <span class="gtkdoc slc">// asks for the XID/HWND of the window to render onto</span>
-  <span class="function"><a href="/usr/share/gtk-doc/html/gtk3GtkWidget.html#gtk-widget-realize">gtk_widget_realize</a></span> <span class="gtkdoc opt">(</span>video_window<span class="gtkdoc opt">);</span>
-
-  <span class="gtkdoc slc">// we should have the XID/HWND now</span>
-  <span class="function"><a href="/usr/share/gtk-doc/html/glibglib-Testing.html#g-assert">g_assert</a></span> <span class="gtkdoc opt">(</span>video_window_handle <span class="gtkdoc opt">!=</span> <span class="number">0</span><span class="gtkdoc opt">);</span>
-  <span class="gtkdoc opt">...</span>
-  <span class="gtkdoc slc">// set up sync handler for setting the xid once the pipeline is started</span>
-  bus <span class="gtkdoc opt">=</span> <span class="function"><a href="/usr/share/gtk-doc/html/gstreamer-1.0GstPipeline.html#gst-pipeline-get-bus">gst_pipeline_get_bus</a></span> <span class="gtkdoc opt">(</span><span class="function">GST_PIPELINE</span> <span class="gtkdoc opt">(</span>pipeline<span class="gtkdoc opt">));</span>
-  <span class="function"><a href="/usr/share/gtk-doc/html/gstreamer-1.0GstBus.html#gst-bus-set-sync-handler">gst_bus_set_sync_handler</a></span> <span class="gtkdoc opt">(</span>bus<span class="gtkdoc opt">, (</span>GstBusSyncHandler<span class="gtkdoc opt">)</span> bus_sync_handler<span class="gtkdoc opt">,</span> NULL<span class="gtkdoc opt">,</span>
-      NULL<span class="gtkdoc opt">);</span>
-  <span class="function"><a href="/usr/share/gtk-doc/html/gstreamer-1.0GstObject.html#gst-object-unref">gst_object_unref</a></span> <span class="gtkdoc opt">(</span>bus<span class="gtkdoc opt">);</span>
-  <span class="gtkdoc opt">...</span>
-  <span class="function"><a href="/usr/share/gtk-doc/html/gstreamer-1.0GstElement.html#gst-element-set-state">gst_element_set_state</a></span> <span class="gtkdoc opt">(</span>pipeline<span class="gtkdoc opt">,</span> GST_STATE_PLAYING<span class="gtkdoc opt">);</span>
-  <span class="gtkdoc opt">...</span>
-<span class="gtkdoc opt">}</span></pre></td>
-      </tr>
-    </tbody>
-  </table>
-</div>
-
-<p>
-</p>
-</div>
-<hr>
-<div class="refsect2">
-<a name="id-1.2.15.16.8.5"></a><h3>GstVideoOverlay and Qt</h3>
-<p>
-</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
-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</pre></td>
-        <td class="listing_code"><pre class="programlisting"><span class="gtkdoc ppc">#include &lt;glib.h&gt;</span>
-<span class="gtkdoc ppc">#include &lt;gst/gst.h&gt;</span>
-<span class="gtkdoc ppc">#include &lt;gst/video/videooverlay.h&gt;</span>
-
-<span class="gtkdoc ppc">#include &lt;QApplication&gt;</span>
-<span class="gtkdoc ppc">#include &lt;QTimer&gt;</span>
-<span class="gtkdoc ppc">#include &lt;QWidget&gt;</span>
-
-<span class="gtkdoc kwb">int</span> <span class="function">main</span><span class="gtkdoc opt">(</span><span class="gtkdoc kwb">int</span> argc<span class="gtkdoc opt">,</span> <span class="gtkdoc kwb">char</span> <span class="gtkdoc opt">*</span>argv<span class="gtkdoc opt">[])</span>
-<span class="gtkdoc opt">{</span>
-  <span class="keyword">if</span> <span class="gtkdoc opt">(!</span><span class="function"><a href="/usr/share/gtk-doc/html/glibglib-Deprecated-Thread-APIs.html#g-thread-supported">g_thread_supported</a></span> <span class="gtkdoc opt">())</span>
-    <span class="function"><a href="/usr/share/gtk-doc/html/glibglib-Deprecated-Thread-APIs.html#g-thread-init">g_thread_init</a></span> <span class="gtkdoc opt">(</span>NULL<span class="gtkdoc opt">);</span>
-
-  <span class="function"><a href="/usr/share/gtk-doc/html/gstreamer-1.0gstreamer-Gst.html#gst-init">gst_init</a></span> <span class="gtkdoc opt">(&amp;</span>argc<span class="gtkdoc opt">, &amp;</span>argv<span class="gtkdoc opt">);</span>
-  QApplication <span class="function">app</span><span class="gtkdoc opt">(</span>argc<span class="gtkdoc opt">,</span> argv<span class="gtkdoc opt">);</span>
-  app<span class="gtkdoc opt">.</span><span class="function">connect</span><span class="gtkdoc opt">(&amp;</span>app<span class="gtkdoc opt">,</span> <span class="function">SIGNAL</span><span class="gtkdoc opt">(</span><span class="function">lastWindowClosed</span><span class="gtkdoc opt">()), &amp;</span>app<span class="gtkdoc opt">,</span> <span class="function">SLOT</span><span class="gtkdoc opt">(</span><span class="function">quit</span> <span class="gtkdoc opt">()));</span>
-
-  <span class="gtkdoc slc">// prepare the pipeline</span>
-
-  GstElement <span class="gtkdoc opt">*</span>pipeline <span class="gtkdoc opt">=</span> <span class="function"><a href="/usr/share/gtk-doc/html/gstreamer-1.0GstPipeline.html#gst-pipeline-new">gst_pipeline_new</a></span> <span class="gtkdoc opt">(</span><span class="string">&quot;xvoverlay&quot;</span><span class="gtkdoc opt">);</span>
-  GstElement <span class="gtkdoc opt">*</span>src <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;videotestsrc&quot;</span><span class="gtkdoc opt">,</span> NULL<span class="gtkdoc opt">);</span>
-  GstElement <span class="gtkdoc opt">*</span>sink <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;xvimagesink&quot;</span><span class="gtkdoc opt">,</span> NULL<span class="gtkdoc opt">);</span>
-  <span class="function"><a href="/usr/share/gtk-doc/html/gstreamer-1.0GstBin.html#gst-bin-add-many">gst_bin_add_many</a></span> <span class="gtkdoc opt">(</span><span class="function">GST_BIN</span> <span class="gtkdoc opt">(</span>pipeline<span class="gtkdoc opt">),</span> src<span class="gtkdoc opt">,</span> sink<span class="gtkdoc opt">,</span> NULL<span class="gtkdoc opt">);</span>
-  <span class="function"><a href="/usr/share/gtk-doc/html/gstreamer-1.0GstElement.html#gst-element-link">gst_element_link</a></span> <span class="gtkdoc opt">(</span>src<span class="gtkdoc opt">,</span> sink<span class="gtkdoc opt">);</span>
-
-  <span class="gtkdoc slc">// prepare the ui</span>
-
-  QWidget window<span class="gtkdoc opt">;</span>
-  window<span class="gtkdoc opt">.</span><span class="function">resize</span><span class="gtkdoc opt">(</span><span class="number">320</span><span class="gtkdoc opt">,</span> <span class="number">240</span><span class="gtkdoc opt">);</span>
-  window<span class="gtkdoc opt">.</span><span class="function">show</span><span class="gtkdoc opt">();</span>
-
-  WId xwinid <span class="gtkdoc opt">=</span> window<span class="gtkdoc opt">.</span><span class="function">winId</span><span class="gtkdoc opt">();</span>
-  <span class="function"><a href="gst-plugins-base-libs-gstvideooverlay.html#gst-video-overlay-set-window-handle">gst_video_overlay_set_window_handle</a></span> <span class="gtkdoc opt">(</span><span class="function">GST_VIDEO_OVERLAY</span> <span class="gtkdoc opt">(</span>sink<span class="gtkdoc opt">),</span> xwinid<span class="gtkdoc opt">);</span>
-
-  <span class="gtkdoc slc">// run the pipeline</span>
-
-  GstStateChangeReturn sret <span class="gtkdoc opt">=</span> <span class="function"><a href="/usr/share/gtk-doc/html/gstreamer-1.0GstElement.html#gst-element-set-state">gst_element_set_state</a></span> <span class="gtkdoc opt">(</span>pipeline<span class="gtkdoc opt">,</span>
-      GST_STATE_PLAYING<span class="gtkdoc opt">);</span>
-  <span class="keyword">if</span> <span class="gtkdoc opt">(</span>sret <span class="gtkdoc opt">==</span> GST_STATE_CHANGE_FAILURE<span class="gtkdoc opt">) {</span>
-    <span class="function"><a href="/usr/share/gtk-doc/html/gstreamer-1.0GstElement.html#gst-element-set-state">gst_element_set_state</a></span> <span class="gtkdoc opt">(</span>pipeline<span class="gtkdoc opt">,</span> GST_STATE_NULL<span class="gtkdoc opt">);</span>
-    <span class="function"><a href="/usr/share/gtk-doc/html/gstreamer-1.0GstObject.html#gst-object-unref">gst_object_unref</a></span> <span class="gtkdoc opt">(</span>pipeline<span class="gtkdoc opt">);</span>
-    <span class="gtkdoc slc">// Exit application</span>
-    QTimer<span class="gtkdoc opt">::</span><span class="function">singleShot</span><span class="gtkdoc opt">(</span><span class="number">0</span><span class="gtkdoc opt">,</span> QApplication<span class="gtkdoc opt">::</span><span class="function">activeWindow</span><span class="gtkdoc opt">(),</span> <span class="function">SLOT</span><span class="gtkdoc opt">(</span><span class="function">quit</span><span class="gtkdoc opt">()));</span>
-  <span class="gtkdoc opt">}</span>
-
-  <span class="gtkdoc kwb">int</span> ret <span class="gtkdoc opt">=</span> app<span class="gtkdoc opt">.</span><span class="function">exec</span><span class="gtkdoc opt">();</span>
-
-  window<span class="gtkdoc opt">.</span><span class="function">hide</span><span class="gtkdoc opt">();</span>
-  <span class="function"><a href="/usr/share/gtk-doc/html/gstreamer-1.0GstElement.html#gst-element-set-state">gst_element_set_state</a></span> <span class="gtkdoc opt">(</span>pipeline<span class="gtkdoc opt">,</span> GST_STATE_NULL<span class="gtkdoc opt">);</span>
-  <span class="function"><a href="/usr/share/gtk-doc/html/gstreamer-1.0GstObject.html#gst-object-unref">gst_object_unref</a></span> <span class="gtkdoc opt">(</span>pipeline<span class="gtkdoc opt">);</span>
-
-  <span class="keyword">return</span> ret<span class="gtkdoc opt">;</span>
-<span class="gtkdoc opt">}</span></pre></td>
-      </tr>
-    </tbody>
-  </table>
-</div>
-
-<p>
-</p>
-</div>
 </div>
 <div class="refsect1">
 <a name="gst-plugins-base-libs-gstvideooverlay.functions_details"></a><h2>Functions</h2>
@@ -631,30 +139,6 @@
 <pre class="programlisting"><span class="returnvalue">void</span>
 gst_video_overlay_got_window_handle (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstvideooverlay.html#GstVideoOverlay"><span class="type">GstVideoOverlay</span></a> *overlay</code></em>,
                                      <em class="parameter"><code><a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#guintptr"><span class="type">guintptr</span></a> handle</code></em>);</pre>
-<p>This will post a "have-window-handle" element message on the bus.</p>
-<p>This function should only be used by video overlay plugin developers.</p>
-<div class="refsect3">
-<a name="gst-video-overlay-got-window-handle.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>a <a class="link" href="gst-plugins-base-libs-gstvideooverlay.html#GstVideoOverlay"><span class="type">GstVideoOverlay</span></a> which got a window</p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-<tr>
-<td class="parameter_name"><p>handle</p></td>
-<td class="parameter_description"><p>a platform-specific handle referencing the window</p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-</tbody>
-</table></div>
-</div>
 </div>
 <hr>
 <div class="refsect2">
@@ -662,33 +146,6 @@
 <pre class="programlisting"><span class="returnvalue">void</span>
 gst_video_overlay_set_window_handle (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstvideooverlay.html#GstVideoOverlay"><span class="type">GstVideoOverlay</span></a> *overlay</code></em>,
                                      <em class="parameter"><code><a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#guintptr"><span class="type">guintptr</span></a> handle</code></em>);</pre>
-<p>This will call the video overlay's set_window_handle method. You
-should use this method to tell to an overlay to display video output to a
-specific window (e.g. an XWindow on X11). Passing 0 as the  <em class="parameter"><code>handle</code></em>
- will
-tell the overlay to stop using that window and create an internal one.</p>
-<div class="refsect3">
-<a name="gst-video-overlay-set-window-handle.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>a <a class="link" href="gst-plugins-base-libs-gstvideooverlay.html#GstVideoOverlay"><span class="type">GstVideoOverlay</span></a> to set the window on.</p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-<tr>
-<td class="parameter_name"><p>handle</p></td>
-<td class="parameter_description"><p>a handle referencing the window.</p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-</tbody>
-</table></div>
-</div>
 </div>
 <hr>
 <div class="refsect2">
@@ -696,49 +153,12 @@
 <pre class="programlisting"><span class="returnvalue">void</span>
 gst_video_overlay_prepare_window_handle
                                (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstvideooverlay.html#GstVideoOverlay"><span class="type">GstVideoOverlay</span></a> *overlay</code></em>);</pre>
-<p>This will post a "prepare-window-handle" element message on the bus
-to give applications an opportunity to call
-<a class="link" href="gst-plugins-base-libs-gstvideooverlay.html#gst-video-overlay-set-window-handle" title="gst_video_overlay_set_window_handle ()"><code class="function">gst_video_overlay_set_window_handle()</code></a> before a plugin creates its own
-window.</p>
-<p>This function should only be used by video overlay plugin developers.</p>
-<div class="refsect3">
-<a name="gst-video-overlay-prepare-window-handle.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>a <a class="link" href="gst-plugins-base-libs-gstvideooverlay.html#GstVideoOverlay"><span class="type">GstVideoOverlay</span></a> which does not yet have an Window handle set</p></td>
-<td class="parameter_annotations"> </td>
-</tr></tbody>
-</table></div>
-</div>
 </div>
 <hr>
 <div class="refsect2">
 <a name="gst-video-overlay-expose"></a><h3>gst_video_overlay_expose ()</h3>
 <pre class="programlisting"><span class="returnvalue">void</span>
 gst_video_overlay_expose (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstvideooverlay.html#GstVideoOverlay"><span class="type">GstVideoOverlay</span></a> *overlay</code></em>);</pre>
-<p>Tell an overlay that it has been exposed. This will redraw the current frame
-in the drawable even if the pipeline is PAUSED.</p>
-<div class="refsect3">
-<a name="gst-video-overlay-expose.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>a <a class="link" href="gst-plugins-base-libs-gstvideooverlay.html#GstVideoOverlay"><span class="type">GstVideoOverlay</span></a> to expose.</p></td>
-<td class="parameter_annotations"> </td>
-</tr></tbody>
-</table></div>
-</div>
 </div>
 <hr>
 <div class="refsect2">
@@ -746,33 +166,6 @@
 <pre class="programlisting"><span class="returnvalue">void</span>
 gst_video_overlay_handle_events (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstvideooverlay.html#GstVideoOverlay"><span class="type">GstVideoOverlay</span></a> *overlay</code></em>,
                                  <em class="parameter"><code><a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a> handle_events</code></em>);</pre>
-<p>Tell an overlay that it should handle events from the window system. These
-events are forwarded upstream as navigation events. In some window system,
-events are not propagated in the window hierarchy if a client is listening
-for them. This method allows you to disable events handling completely
-from the <a class="link" href="gst-plugins-base-libs-gstvideooverlay.html#GstVideoOverlay"><span class="type">GstVideoOverlay</span></a>.</p>
-<div class="refsect3">
-<a name="gst-video-overlay-handle-events.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>a <a class="link" href="gst-plugins-base-libs-gstvideooverlay.html#GstVideoOverlay"><span class="type">GstVideoOverlay</span></a> to expose.</p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-<tr>
-<td class="parameter_name"><p>handle_events</p></td>
-<td class="parameter_description"><p>a <a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a> indicating if events should be handled or not.</p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-</tbody>
-</table></div>
-</div>
 </div>
 <hr>
 <div class="refsect2">
@@ -784,58 +177,6 @@
                                 <em class="parameter"><code><a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#gint"><span class="type">gint</span></a> y</code></em>,
                                 <em class="parameter"><code><a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#gint"><span class="type">gint</span></a> width</code></em>,
                                 <em class="parameter"><code><a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#gint"><span class="type">gint</span></a> height</code></em>);</pre>
-<p>Configure a subregion as a video target within the window set by
-<a class="link" href="gst-plugins-base-libs-gstvideooverlay.html#gst-video-overlay-set-window-handle" title="gst_video_overlay_set_window_handle ()"><code class="function">gst_video_overlay_set_window_handle()</code></a>. If this is not used or not supported
-the video will fill the area of the window set as the overlay to 100%.
-By specifying the rectangle, the video can be overlayed to a specific region
-of that window only. After setting the new rectangle one should call
-<a class="link" href="gst-plugins-base-libs-gstvideooverlay.html#gst-video-overlay-expose" title="gst_video_overlay_expose ()"><code class="function">gst_video_overlay_expose()</code></a> to force a redraw. To unset the region pass -1 for
-the <em class="parameter"><code>width</code></em>
- and <em class="parameter"><code>height</code></em>
- parameters.</p>
-<p>This method is needed for non fullscreen video overlay in UI toolkits that
-do not support subwindows.</p>
-<div class="refsect3">
-<a name="gst-video-overlay-set-render-rectangle.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>a <a class="link" href="gst-plugins-base-libs-gstvideooverlay.html#GstVideoOverlay"><span class="type">GstVideoOverlay</span></a></p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-<tr>
-<td class="parameter_name"><p>x</p></td>
-<td class="parameter_description"><p>the horizontal offset of the render area inside the window</p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-<tr>
-<td class="parameter_name"><p>y</p></td>
-<td class="parameter_description"><p>the vertical offset of the render area inside the window</p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-<tr>
-<td class="parameter_name"><p>width</p></td>
-<td class="parameter_description"><p>the width of the render area inside the window</p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-<tr>
-<td class="parameter_name"><p>height</p></td>
-<td class="parameter_description"><p>the height of the render area inside the window</p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-</tbody>
-</table></div>
-</div>
-<div class="refsect3">
-<a name="gst-video-overlay-set-render-rectangle.returns"></a><h4>Returns</h4>
-<p> <a href="/usr/share/gtk-doc/html/glibglib-Standard-Macros.html#FALSE:CAPS"><code class="literal">FALSE</code></a> if not supported by the sink.</p>
-</div>
 </div>
 <hr>
 <div class="refsect2">
@@ -843,28 +184,6 @@
 <pre class="programlisting"><a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
 gst_is_video_overlay_prepare_window_handle_message
                                (<em class="parameter"><code><a href="/usr/share/gtk-doc/html/gstreamer-1.0GstMessage.html#GstMessage-struct"><span class="type">GstMessage</span></a> *msg</code></em>);</pre>
-<p>Convenience function to check if the given message is a
-"prepare-window-handle" message from a <a class="link" href="gst-plugins-base-libs-gstvideooverlay.html#GstVideoOverlay"><span class="type">GstVideoOverlay</span></a>.</p>
-<div class="refsect3">
-<a name="gst-is-video-overlay-prepare-window-handle-message.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>msg</p></td>
-<td class="parameter_description"><p>a <a href="/usr/share/gtk-doc/html/gstreamer-1.0GstMessage.html#GstMessage-struct"><span class="type">GstMessage</span></a></p></td>
-<td class="parameter_annotations"> </td>
-</tr></tbody>
-</table></div>
-</div>
-<div class="refsect3">
-<a name="gst-is-video-overlay-prepare-window-handle-message.returns"></a><h4>Returns</h4>
-<p> whether <em class="parameter"><code>msg</code></em>
-is a "prepare-window-handle" message</p>
-</div>
 </div>
 </div>
 <div class="refsect1">
@@ -872,7 +191,6 @@
 <div class="refsect2">
 <a name="GstVideoOverlay-struct"></a><h3>GstVideoOverlay</h3>
 <pre class="programlisting">typedef struct _GstVideoOverlay GstVideoOverlay;</pre>
-<p>Opaque <a class="link" href="gst-plugins-base-libs-gstvideooverlay.html#GstVideoOverlay"><span class="type">GstVideoOverlay</span></a> interface structure</p>
 </div>
 <hr>
 <div class="refsect2">
@@ -892,44 +210,6 @@
   void (*set_window_handle)    (GstVideoOverlay *overlay, guintptr handle);
 };
 </pre>
-<p><a class="link" href="gst-plugins-base-libs-gstvideooverlay.html#GstVideoOverlay"><span class="type">GstVideoOverlay</span></a> interface</p>
-<div class="refsect3">
-<a name="GstVideoOverlayInterface.members"></a><h4>Members</h4>
-<div class="informaltable"><table class="informaltable" width="100%" border="0">
-<colgroup>
-<col width="300px" class="struct_members_name">
-<col class="struct_members_description">
-<col width="200px" class="struct_members_annotations">
-</colgroup>
-<tbody>
-<tr>
-<td class="struct_member_name"><p><a href="/usr/share/gtk-doc/html/gobjectgobject-Type-Information.html#GTypeInterface"><span class="type">GTypeInterface</span></a> <em class="structfield"><code><a name="GstVideoOverlayInterface.iface"></a>iface</code></em>;</p></td>
-<td class="struct_member_description"><p>parent interface type.</p></td>
-<td class="struct_member_annotations"> </td>
-</tr>
-<tr>
-<td class="struct_member_name"><p><em class="structfield"><code><a name="GstVideoOverlayInterface.expose"></a>expose</code></em> ()</p></td>
-<td class="struct_member_description"><p>virtual method to handle expose events</p></td>
-<td class="struct_member_annotations"> </td>
-</tr>
-<tr>
-<td class="struct_member_name"><p><em class="structfield"><code><a name="GstVideoOverlayInterface.handle-events"></a>handle_events</code></em> ()</p></td>
-<td class="struct_member_description"><p>virtual method to handle events</p></td>
-<td class="struct_member_annotations"> </td>
-</tr>
-<tr>
-<td class="struct_member_name"><p><em class="structfield"><code><a name="GstVideoOverlayInterface.set-render-rectangle"></a>set_render_rectangle</code></em> ()</p></td>
-<td class="struct_member_description"><p>virtual method to set the render rectangle</p></td>
-<td class="struct_member_annotations"> </td>
-</tr>
-<tr>
-<td class="struct_member_name"><p><em class="structfield"><code><a name="GstVideoOverlayInterface.set-window-handle"></a>set_window_handle</code></em> ()</p></td>
-<td class="struct_member_description"><p>virtual method to configure the window handle</p></td>
-<td class="struct_member_annotations"> </td>
-</tr>
-</tbody>
-</table></div>
-</div>
 </div>
 </div>
 </div>
diff --git a/docs/libs/html/gst-plugins-base-libs-gstvideooverlaycomposition.html b/docs/libs/html/gst-plugins-base-libs-gstvideooverlaycomposition.html
index b7d0e8f..de47a0b 100644
--- a/docs/libs/html/gst-plugins-base-libs-gstvideooverlaycomposition.html
+++ b/docs/libs/html/gst-plugins-base-libs-gstvideooverlaycomposition.html
@@ -27,7 +27,7 @@
 <div class="refnamediv"><table width="100%"><tr>
 <td valign="top">
 <h2><span class="refentrytitle"><a name="gst-plugins-base-libs-gstvideooverlaycomposition.top_of_page"></a>gstvideooverlaycomposition</span></h2>
-<p>gstvideooverlaycomposition — Video Buffer Overlay Compositions (Subtitles, Logos)</p>
+<p>gstvideooverlaycomposition</p>
 </td>
 <td class="gallery_image" valign="top" align="right"></td>
 </tr></table></div>
@@ -315,35 +315,6 @@
 </div>
 <div class="refsect1">
 <a name="gst-plugins-base-libs-gstvideooverlaycomposition.description"></a><h2>Description</h2>
-<div class="refsect2">
-<a name="id-1.2.15.6.6.2"></a><p>
-Functions to create and handle overlay compositions on video buffers.
-</p>
-<p>
-An overlay composition describes one or more overlay rectangles to be
-blended on top of a video buffer.
-</p>
-<p>
-This API serves two main purposes:
-</p>
-<div class="itemizedlist">
-<span class="type">GstOverlayComposition</span><ul class="itemizedlist" style="list-style-type: disc; ">
-<li class="listitem">
-it can be used to attach overlay information (subtitles or logos)
-to non-raw video buffers such as GL/VAAPI/VDPAU surfaces. The actual
-blending of the overlay can then be done by e.g. the video sink that
-processes these non-raw buffers.
-</li>
-<li class="listitem">
-it can also be used to blend overlay rectangles on top of raw video
-buffers, thus consolidating blending functionality for raw video in
-one place.
-</li>
-</ul>
-</div>
-<p>
-</p>
-</div>
 </div>
 <div class="refsect1">
 <a name="gst-plugins-base-libs-gstvideooverlaycomposition.functions_details"></a><h2>Functions</h2>
@@ -351,85 +322,18 @@
 <a name="gst-video-overlay-composition-new"></a><h3>gst_video_overlay_composition_new ()</h3>
 <pre class="programlisting"><a class="link" href="gst-plugins-base-libs-gstvideooverlaycomposition.html#GstVideoOverlayComposition" title="GstVideoOverlayComposition"><span class="returnvalue">GstVideoOverlayComposition</span></a> *
 gst_video_overlay_composition_new (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstvideooverlaycomposition.html#GstVideoOverlayRectangle" title="GstVideoOverlayRectangle"><span class="type">GstVideoOverlayRectangle</span></a> *rectangle</code></em>);</pre>
-<p>Creates a new video overlay composition object to hold one or more
-overlay rectangles.</p>
-<div class="refsect3">
-<a name="gst-video-overlay-composition-new.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>rectangle</p></td>
-<td class="parameter_description"><p> a <a class="link" href="gst-plugins-base-libs-gstvideooverlaycomposition.html#GstVideoOverlayRectangle" title="GstVideoOverlayRectangle"><span class="type">GstVideoOverlayRectangle</span></a> to add to the
-composition. </p></td>
-<td class="parameter_annotations"><span class="annotation">[<acronym title="Don't free data after the code is done."><span class="acronym">transfer none</span></acronym>]</span></td>
-</tr></tbody>
-</table></div>
-</div>
-<div class="refsect3">
-<a name="gst-video-overlay-composition-new.returns"></a><h4>Returns</h4>
-<p> a new <a class="link" href="gst-plugins-base-libs-gstvideooverlaycomposition.html#GstVideoOverlayComposition" title="GstVideoOverlayComposition"><span class="type">GstVideoOverlayComposition</span></a>. Unref with
-<a class="link" href="gst-plugins-base-libs-gstvideooverlaycomposition.html#gst-video-overlay-composition-unref" title="gst_video_overlay_composition_unref ()"><code class="function">gst_video_overlay_composition_unref()</code></a> when no longer needed. </p>
-<p><span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>]</span></p>
-</div>
 </div>
 <hr>
 <div class="refsect2">
 <a name="gst-video-overlay-composition-ref"></a><h3>gst_video_overlay_composition_ref ()</h3>
 <pre class="programlisting"><a class="link" href="gst-plugins-base-libs-gstvideooverlaycomposition.html#GstVideoOverlayComposition" title="GstVideoOverlayComposition"><span class="returnvalue">GstVideoOverlayComposition</span></a> *
 gst_video_overlay_composition_ref (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstvideooverlaycomposition.html#GstVideoOverlayComposition" title="GstVideoOverlayComposition"><span class="type">GstVideoOverlayComposition</span></a> *comp</code></em>);</pre>
-<p>Increases the refcount of the given composition by one.</p>
-<p>Note that the refcount affects the writeability
-of <em class="parameter"><code>comp</code></em>
-, use <a class="link" href="gst-plugins-base-libs-gstvideooverlaycomposition.html#gst-video-overlay-composition-make-writable" title="gst_video_overlay_composition_make_writable ()"><code class="function">gst_video_overlay_composition_make_writable()</code></a> to ensure
-a composition and its rectangles can be modified.</p>
-<div class="refsect3">
-<a name="gst-video-overlay-composition-ref.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>comp</p></td>
-<td class="parameter_description"><p>a a <a class="link" href="gst-plugins-base-libs-gstvideooverlaycomposition.html#GstVideoOverlayComposition" title="GstVideoOverlayComposition"><span class="type">GstVideoOverlayComposition</span></a>.</p></td>
-<td class="parameter_annotations"> </td>
-</tr></tbody>
-</table></div>
-</div>
-<div class="refsect3">
-<a name="gst-video-overlay-composition-ref.returns"></a><h4>Returns</h4>
-<p> <em class="parameter"><code>comp</code></em>
-. </p>
-<p><span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>]</span></p>
-</div>
 </div>
 <hr>
 <div class="refsect2">
 <a name="gst-video-overlay-composition-unref"></a><h3>gst_video_overlay_composition_unref ()</h3>
 <pre class="programlisting"><span class="returnvalue">void</span>
 gst_video_overlay_composition_unref (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstvideooverlaycomposition.html#GstVideoOverlayComposition" title="GstVideoOverlayComposition"><span class="type">GstVideoOverlayComposition</span></a> *comp</code></em>);</pre>
-<p>Decreases the refcount of the composition. If the refcount reaches 0, the
-composition will be freed.</p>
-<div class="refsect3">
-<a name="gst-video-overlay-composition-unref.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>comp</p></td>
-<td class="parameter_description"><p> a <a class="link" href="gst-plugins-base-libs-gstvideooverlaycomposition.html#GstVideoOverlayComposition" title="GstVideoOverlayComposition"><span class="type">GstVideoOverlayComposition</span></a>. </p></td>
-<td class="parameter_annotations"><span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>]</span></td>
-</tr></tbody>
-</table></div>
-</div>
 </div>
 <hr>
 <div class="refsect2">
@@ -438,31 +342,6 @@
 gst_video_overlay_composition_add_rectangle
                                (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstvideooverlaycomposition.html#GstVideoOverlayComposition" title="GstVideoOverlayComposition"><span class="type">GstVideoOverlayComposition</span></a> *comp</code></em>,
                                 <em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstvideooverlaycomposition.html#GstVideoOverlayRectangle" title="GstVideoOverlayRectangle"><span class="type">GstVideoOverlayRectangle</span></a> *rectangle</code></em>);</pre>
-<p>Adds an overlay rectangle to an existing overlay composition object. This
-must be done right after creating the overlay composition.</p>
-<div class="refsect3">
-<a name="gst-video-overlay-composition-add-rectangle.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>comp</p></td>
-<td class="parameter_description"><p>a <a class="link" href="gst-plugins-base-libs-gstvideooverlaycomposition.html#GstVideoOverlayComposition" title="GstVideoOverlayComposition"><span class="type">GstVideoOverlayComposition</span></a></p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-<tr>
-<td class="parameter_name"><p>rectangle</p></td>
-<td class="parameter_description"><p> a <a class="link" href="gst-plugins-base-libs-gstvideooverlaycomposition.html#GstVideoOverlayRectangle" title="GstVideoOverlayRectangle"><span class="type">GstVideoOverlayRectangle</span></a> to add to the
-composition. </p></td>
-<td class="parameter_annotations"><span class="annotation">[<acronym title="Don't free data after the code is done."><span class="acronym">transfer none</span></acronym>]</span></td>
-</tr>
-</tbody>
-</table></div>
-</div>
 </div>
 <hr>
 <div class="refsect2">
@@ -470,27 +349,6 @@
 <pre class="programlisting"><a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#guint"><span class="returnvalue">guint</span></a>
 gst_video_overlay_composition_n_rectangles
                                (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstvideooverlaycomposition.html#GstVideoOverlayComposition" title="GstVideoOverlayComposition"><span class="type">GstVideoOverlayComposition</span></a> *comp</code></em>);</pre>
-<p>Returns the number of <a class="link" href="gst-plugins-base-libs-gstvideooverlaycomposition.html#GstVideoOverlayRectangle" title="GstVideoOverlayRectangle"><span class="type">GstVideoOverlayRectangle</span></a>s contained in <em class="parameter"><code>comp</code></em>
-.</p>
-<div class="refsect3">
-<a name="gst-video-overlay-composition-n-rectangles.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>comp</p></td>
-<td class="parameter_description"><p>a <a class="link" href="gst-plugins-base-libs-gstvideooverlaycomposition.html#GstVideoOverlayComposition" title="GstVideoOverlayComposition"><span class="type">GstVideoOverlayComposition</span></a></p></td>
-<td class="parameter_annotations"> </td>
-</tr></tbody>
-</table></div>
-</div>
-<div class="refsect3">
-<a name="gst-video-overlay-composition-n-rectangles.returns"></a><h4>Returns</h4>
-<p> the number of rectangles</p>
-</div>
 </div>
 <hr>
 <div class="refsect2">
@@ -499,41 +357,6 @@
 gst_video_overlay_composition_get_rectangle
                                (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstvideooverlaycomposition.html#GstVideoOverlayComposition" title="GstVideoOverlayComposition"><span class="type">GstVideoOverlayComposition</span></a> *comp</code></em>,
                                 <em class="parameter"><code><a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#guint"><span class="type">guint</span></a> n</code></em>);</pre>
-<p>Returns the <em class="parameter"><code>n</code></em>
--th <a class="link" href="gst-plugins-base-libs-gstvideooverlaycomposition.html#GstVideoOverlayRectangle" title="GstVideoOverlayRectangle"><span class="type">GstVideoOverlayRectangle</span></a> contained in <em class="parameter"><code>comp</code></em>
-.</p>
-<div class="refsect3">
-<a name="gst-video-overlay-composition-get-rectangle.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>comp</p></td>
-<td class="parameter_description"><p>a <a class="link" href="gst-plugins-base-libs-gstvideooverlaycomposition.html#GstVideoOverlayComposition" title="GstVideoOverlayComposition"><span class="type">GstVideoOverlayComposition</span></a></p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-<tr>
-<td class="parameter_name"><p>n</p></td>
-<td class="parameter_description"><p>number of the rectangle to get</p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-</tbody>
-</table></div>
-</div>
-<div class="refsect3">
-<a name="gst-video-overlay-composition-get-rectangle.returns"></a><h4>Returns</h4>
-<p> the <em class="parameter"><code>n</code></em>
--th rectangle, or NULL if <em class="parameter"><code>n</code></em>
-is out of
-bounds. Will not return a new reference, the caller will need to
-obtain her own reference using <a class="link" href="gst-plugins-base-libs-gstvideooverlaycomposition.html#gst-video-overlay-rectangle-ref" title="gst_video_overlay_rectangle_ref ()"><code class="function">gst_video_overlay_rectangle_ref()</code></a>
-if needed. </p>
-<p><span class="annotation">[<acronym title="Don't free data after the code is done."><span class="acronym">transfer none</span></acronym>]</span></p>
-</div>
 </div>
 <hr>
 <div class="refsect2">
@@ -541,64 +364,12 @@
 <pre class="programlisting"><a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#guint"><span class="returnvalue">guint</span></a>
 gst_video_overlay_composition_get_seqnum
                                (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstvideooverlaycomposition.html#GstVideoOverlayComposition" title="GstVideoOverlayComposition"><span class="type">GstVideoOverlayComposition</span></a> *comp</code></em>);</pre>
-<p>Returns the sequence number of this composition. Sequence numbers are
-monotonically increasing and unique for overlay compositions and rectangles
-(meaning there will never be a rectangle with the same sequence number as
-a composition).</p>
-<div class="refsect3">
-<a name="gst-video-overlay-composition-get-seqnum.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>comp</p></td>
-<td class="parameter_description"><p>a <a class="link" href="gst-plugins-base-libs-gstvideooverlaycomposition.html#GstVideoOverlayComposition" title="GstVideoOverlayComposition"><span class="type">GstVideoOverlayComposition</span></a></p></td>
-<td class="parameter_annotations"> </td>
-</tr></tbody>
-</table></div>
-</div>
-<div class="refsect3">
-<a name="gst-video-overlay-composition-get-seqnum.returns"></a><h4>Returns</h4>
-<p> the sequence number of <em class="parameter"><code>comp</code></em>
-</p>
-</div>
 </div>
 <hr>
 <div class="refsect2">
 <a name="gst-video-overlay-composition-copy"></a><h3>gst_video_overlay_composition_copy ()</h3>
 <pre class="programlisting"><a class="link" href="gst-plugins-base-libs-gstvideooverlaycomposition.html#GstVideoOverlayComposition" title="GstVideoOverlayComposition"><span class="returnvalue">GstVideoOverlayComposition</span></a> *
 gst_video_overlay_composition_copy (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstvideooverlaycomposition.html#GstVideoOverlayComposition" title="GstVideoOverlayComposition"><span class="type">GstVideoOverlayComposition</span></a> *comp</code></em>);</pre>
-<p>Makes a copy of <em class="parameter"><code>comp</code></em>
- and all contained rectangles, so that it is possible
-to modify the composition and contained rectangles (e.g. add additional
-rectangles or change the render co-ordinates or render dimension). The
-actual overlay pixel data buffers contained in the rectangles are not
-copied.</p>
-<div class="refsect3">
-<a name="gst-video-overlay-composition-copy.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>comp</p></td>
-<td class="parameter_description"><p> a <a class="link" href="gst-plugins-base-libs-gstvideooverlaycomposition.html#GstVideoOverlayComposition" title="GstVideoOverlayComposition"><span class="type">GstVideoOverlayComposition</span></a> to copy. </p></td>
-<td class="parameter_annotations"><span class="annotation">[<acronym title="Don't free data after the code is done."><span class="acronym">transfer none</span></acronym>]</span></td>
-</tr></tbody>
-</table></div>
-</div>
-<div class="refsect3">
-<a name="gst-video-overlay-composition-copy.returns"></a><h4>Returns</h4>
-<p> a new <a class="link" href="gst-plugins-base-libs-gstvideooverlaycomposition.html#GstVideoOverlayComposition" title="GstVideoOverlayComposition"><span class="type">GstVideoOverlayComposition</span></a> equivalent
-to <em class="parameter"><code>comp</code></em>
-. </p>
-<p><span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>]</span></p>
-</div>
 </div>
 <hr>
 <div class="refsect2">
@@ -606,38 +377,6 @@
 <pre class="programlisting"><a class="link" href="gst-plugins-base-libs-gstvideooverlaycomposition.html#GstVideoOverlayComposition" title="GstVideoOverlayComposition"><span class="returnvalue">GstVideoOverlayComposition</span></a> *
 gst_video_overlay_composition_make_writable
                                (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstvideooverlaycomposition.html#GstVideoOverlayComposition" title="GstVideoOverlayComposition"><span class="type">GstVideoOverlayComposition</span></a> *comp</code></em>);</pre>
-<p>Takes ownership of <em class="parameter"><code>comp</code></em>
- and returns a version of <em class="parameter"><code>comp</code></em>
- that is writable
-(i.e. can be modified). Will either return <em class="parameter"><code>comp</code></em>
- right away, or create a
-new writable copy of <em class="parameter"><code>comp</code></em>
- and unref <em class="parameter"><code>comp</code></em>
- itself. All the contained
-rectangles will also be copied, but the actual overlay pixel data buffers
-contained in the rectangles are not copied.</p>
-<div class="refsect3">
-<a name="gst-video-overlay-composition-make-writable.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>comp</p></td>
-<td class="parameter_description"><p> a <a class="link" href="gst-plugins-base-libs-gstvideooverlaycomposition.html#GstVideoOverlayComposition" title="GstVideoOverlayComposition"><span class="type">GstVideoOverlayComposition</span></a> to copy. </p></td>
-<td class="parameter_annotations"><span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>]</span></td>
-</tr></tbody>
-</table></div>
-</div>
-<div class="refsect3">
-<a name="gst-video-overlay-composition-make-writable.returns"></a><h4>Returns</h4>
-<p> a writable <a class="link" href="gst-plugins-base-libs-gstvideooverlaycomposition.html#GstVideoOverlayComposition" title="GstVideoOverlayComposition"><span class="type">GstVideoOverlayComposition</span></a>
-equivalent to <em class="parameter"><code>comp</code></em>
-. </p>
-<p><span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>]</span></p>
-</div>
 </div>
 <hr>
 <div class="refsect2">
@@ -645,34 +384,6 @@
 <pre class="programlisting"><a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
 gst_video_overlay_composition_blend (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstvideooverlaycomposition.html#GstVideoOverlayComposition" title="GstVideoOverlayComposition"><span class="type">GstVideoOverlayComposition</span></a> *comp</code></em>,
                                      <em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstvideo.html#GstVideoFrame" title="struct GstVideoFrame"><span class="type">GstVideoFrame</span></a> *video_buf</code></em>);</pre>
-<p>Blends the overlay rectangles in <em class="parameter"><code>comp</code></em>
- on top of the raw video data
-contained in <em class="parameter"><code>video_buf</code></em>
-. The data in <em class="parameter"><code>video_buf</code></em>
- must be writable and
-mapped appropriately.</p>
-<div class="refsect3">
-<a name="gst-video-overlay-composition-blend.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>comp</p></td>
-<td class="parameter_description"><p>a <a class="link" href="gst-plugins-base-libs-gstvideooverlaycomposition.html#GstVideoOverlayComposition" title="GstVideoOverlayComposition"><span class="type">GstVideoOverlayComposition</span></a></p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-<tr>
-<td class="parameter_name"><p>video_buf</p></td>
-<td class="parameter_description"><p>a <a class="link" href="gst-plugins-base-libs-gstvideo.html#GstVideoFrame" title="struct GstVideoFrame"><span class="type">GstVideoFrame</span></a> containing raw video data in a supported format</p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-</tbody>
-</table></div>
-</div>
 </div>
 <hr>
 <div class="refsect2">
@@ -688,37 +399,6 @@
 gst_buffer_add_video_overlay_composition_meta
                                (<em class="parameter"><code><a href="/usr/share/gtk-doc/html/gstreamer-1.0GstBuffer.html#GstBuffer-struct"><span class="type">GstBuffer</span></a> *buf</code></em>,
                                 <em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstvideooverlaycomposition.html#GstVideoOverlayComposition" title="GstVideoOverlayComposition"><span class="type">GstVideoOverlayComposition</span></a> *comp</code></em>);</pre>
-<p>Sets an overlay composition on a buffer. The buffer will obtain its own
-reference to the composition, meaning this function does not take ownership
-of <em class="parameter"><code>comp</code></em>
-.</p>
-<div class="refsect3">
-<a name="gst-buffer-add-video-overlay-composition-meta.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>buf</p></td>
-<td class="parameter_description"><p>a <a href="/usr/share/gtk-doc/html/gstreamer-1.0GstBuffer.html#GstBuffer-struct"><span class="type">GstBuffer</span></a></p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-<tr>
-<td class="parameter_name"><p>comp</p></td>
-<td class="parameter_description"><p> a <a class="link" href="gst-plugins-base-libs-gstvideooverlaycomposition.html#GstVideoOverlayComposition" title="GstVideoOverlayComposition"><span class="type">GstVideoOverlayComposition</span></a>. </p></td>
-<td class="parameter_annotations"><span class="annotation">[<acronym title="NULL is OK, both for passing and for returning."><span class="acronym">allow-none</span></acronym>]</span></td>
-</tr>
-</tbody>
-</table></div>
-</div>
-<div class="refsect3">
-<a name="gst-buffer-add-video-overlay-composition-meta.returns"></a><h4>Returns</h4>
-<p> a <a class="link" href="gst-plugins-base-libs-gstvideooverlaycomposition.html#GstVideoOverlayCompositionMeta" title="struct GstVideoOverlayCompositionMeta"><span class="type">GstVideoOverlayCompositionMeta</span></a>. </p>
-<p><span class="annotation">[<acronym title="Don't free data after the code is done."><span class="acronym">transfer none</span></acronym>]</span></p>
-</div>
 </div>
 <hr>
 <div class="refsect2">
@@ -740,124 +420,18 @@
                                      <em class="parameter"><code><a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#guint"><span class="type">guint</span></a> render_width</code></em>,
                                      <em class="parameter"><code><a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#guint"><span class="type">guint</span></a> render_height</code></em>,
                                      <em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstvideooverlaycomposition.html#GstVideoOverlayFormatFlags" title="enum GstVideoOverlayFormatFlags"><span class="type">GstVideoOverlayFormatFlags</span></a> flags</code></em>);</pre>
-<p>Creates a new video overlay rectangle with ARGB or AYUV pixel data.
-The layout in case of ARGB of the components in memory is B-G-R-A
-on little-endian platforms
-(corresponding to <a class="link" href="gst-plugins-base-libs-gstvideo.html#GST-VIDEO-FORMAT-BGRA:CAPS"><span class="type">GST_VIDEO_FORMAT_BGRA</span></a>) and A-R-G-B on big-endian
-platforms (corresponding to <a class="link" href="gst-plugins-base-libs-gstvideo.html#GST-VIDEO-FORMAT-ARGB:CAPS"><span class="type">GST_VIDEO_FORMAT_ARGB</span></a>). In other words,
-pixels are treated as 32-bit words and the lowest 8 bits then contain
-the blue component value and the highest 8 bits contain the alpha
-component value. Unless specified in the flags, the RGB values are
-non-premultiplied. This is the format that is used by most hardware,
-and also many rendering libraries such as Cairo, for example.
-The pixel data buffer must have <a class="link" href="gst-plugins-base-libs-gstvideometa.html#GstVideoMeta" title="struct GstVideoMeta"><span class="type">GstVideoMeta</span></a> set.</p>
-<div class="refsect3">
-<a name="gst-video-overlay-rectangle-new-raw.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>pixels</p></td>
-<td class="parameter_description"><p> a <a href="/usr/share/gtk-doc/html/gstreamer-1.0GstBuffer.html#GstBuffer-struct"><span class="type">GstBuffer</span></a> pointing to the pixel memory. </p></td>
-<td class="parameter_annotations"><span class="annotation">[<acronym title="Don't free data after the code is done."><span class="acronym">transfer none</span></acronym>]</span></td>
-</tr>
-<tr>
-<td class="parameter_name"><p>render_x</p></td>
-<td class="parameter_description"><p>the X co-ordinate on the video where the top-left corner of this
-overlay rectangle should be rendered to</p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-<tr>
-<td class="parameter_name"><p>render_y</p></td>
-<td class="parameter_description"><p>the Y co-ordinate on the video where the top-left corner of this
-overlay rectangle should be rendered to</p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-<tr>
-<td class="parameter_name"><p>render_width</p></td>
-<td class="parameter_description"><p>the render width of this rectangle on the video</p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-<tr>
-<td class="parameter_name"><p>render_height</p></td>
-<td class="parameter_description"><p>the render height of this rectangle on the video</p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-<tr>
-<td class="parameter_name"><p>flags</p></td>
-<td class="parameter_description"><p>flags</p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-</tbody>
-</table></div>
-</div>
-<div class="refsect3">
-<a name="gst-video-overlay-rectangle-new-raw.returns"></a><h4>Returns</h4>
-<p> a new <a class="link" href="gst-plugins-base-libs-gstvideooverlaycomposition.html#GstVideoOverlayRectangle" title="GstVideoOverlayRectangle"><span class="type">GstVideoOverlayRectangle</span></a>. Unref with
-<a class="link" href="gst-plugins-base-libs-gstvideooverlaycomposition.html#gst-video-overlay-rectangle-unref" title="gst_video_overlay_rectangle_unref ()"><code class="function">gst_video_overlay_rectangle_unref()</code></a> when no longer needed. </p>
-<p><span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>]</span></p>
-</div>
 </div>
 <hr>
 <div class="refsect2">
 <a name="gst-video-overlay-rectangle-ref"></a><h3>gst_video_overlay_rectangle_ref ()</h3>
 <pre class="programlisting"><a class="link" href="gst-plugins-base-libs-gstvideooverlaycomposition.html#GstVideoOverlayRectangle" title="GstVideoOverlayRectangle"><span class="returnvalue">GstVideoOverlayRectangle</span></a> *
 gst_video_overlay_rectangle_ref (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstvideooverlaycomposition.html#GstVideoOverlayRectangle" title="GstVideoOverlayRectangle"><span class="type">GstVideoOverlayRectangle</span></a> *comp</code></em>);</pre>
-<p>Increases the refcount of the given rectangle by one.</p>
-<p>Note that the refcount affects the writeability
-of <em class="parameter"><code>comp</code></em>
-, use <a class="link" href="gst-plugins-base-libs-gstvideooverlaycomposition.html#gst-video-overlay-rectangle-copy" title="gst_video_overlay_rectangle_copy ()"><code class="function">gst_video_overlay_rectangle_copy()</code></a> to ensure a rectangle can
-be modified (there is no <code class="function">gst_video_overlay_rectangle_make_writable()</code> because
-it is unlikely that someone will hold the single reference to the rectangle
-and not know that that's the case).</p>
-<div class="refsect3">
-<a name="gst-video-overlay-rectangle-ref.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>comp</p></td>
-<td class="parameter_description"><p>a a <a class="link" href="gst-plugins-base-libs-gstvideooverlaycomposition.html#GstVideoOverlayRectangle" title="GstVideoOverlayRectangle"><span class="type">GstVideoOverlayRectangle</span></a>.</p></td>
-<td class="parameter_annotations"> </td>
-</tr></tbody>
-</table></div>
-</div>
-<div class="refsect3">
-<a name="gst-video-overlay-rectangle-ref.returns"></a><h4>Returns</h4>
-<p> <em class="parameter"><code>comp</code></em>
-. </p>
-<p><span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>]</span></p>
-</div>
 </div>
 <hr>
 <div class="refsect2">
 <a name="gst-video-overlay-rectangle-unref"></a><h3>gst_video_overlay_rectangle_unref ()</h3>
 <pre class="programlisting"><span class="returnvalue">void</span>
 gst_video_overlay_rectangle_unref (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstvideooverlaycomposition.html#GstVideoOverlayRectangle" title="GstVideoOverlayRectangle"><span class="type">GstVideoOverlayRectangle</span></a> *comp</code></em>);</pre>
-<p>Decreases the refcount of the rectangle. If the refcount reaches 0, the
-rectangle will be freed.</p>
-<div class="refsect3">
-<a name="gst-video-overlay-rectangle-unref.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>comp</p></td>
-<td class="parameter_description"><p> a <a class="link" href="gst-plugins-base-libs-gstvideooverlaycomposition.html#GstVideoOverlayRectangle" title="GstVideoOverlayRectangle"><span class="type">GstVideoOverlayRectangle</span></a>. </p></td>
-<td class="parameter_annotations"><span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>]</span></td>
-</tr></tbody>
-</table></div>
-</div>
 </div>
 <hr>
 <div class="refsect2">
@@ -866,42 +440,6 @@
 gst_video_overlay_rectangle_get_pixels_raw
                                (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstvideooverlaycomposition.html#GstVideoOverlayRectangle" title="GstVideoOverlayRectangle"><span class="type">GstVideoOverlayRectangle</span></a> *rectangle</code></em>,
                                 <em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstvideooverlaycomposition.html#GstVideoOverlayFormatFlags" title="enum GstVideoOverlayFormatFlags"><span class="type">GstVideoOverlayFormatFlags</span></a> flags</code></em>);</pre>
-<div class="refsect3">
-<a name="gst-video-overlay-rectangle-get-pixels-raw.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>rectangle</p></td>
-<td class="parameter_description"><p>a <a class="link" href="gst-plugins-base-libs-gstvideooverlaycomposition.html#GstVideoOverlayRectangle" title="GstVideoOverlayRectangle"><span class="type">GstVideoOverlayRectangle</span></a></p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-<tr>
-<td class="parameter_name"><p>flags</p></td>
-<td class="parameter_description"><p>flags
-If a global_alpha value != 1 is set for the rectangle, the caller
-should set the <a class="link" href="gst-plugins-base-libs-gstvideooverlaycomposition.html#GST-VIDEO-OVERLAY-FORMAT-FLAG-GLOBAL-ALPHA:CAPS"><span class="type">GST_VIDEO_OVERLAY_FORMAT_FLAG_GLOBAL_ALPHA</span></a> flag
-if he wants to apply global-alpha himself. If the flag is not set
-global_alpha is applied internally before returning the pixel-data.</p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-</tbody>
-</table></div>
-</div>
-<div class="refsect3">
-<a name="gst-video-overlay-rectangle-get-pixels-raw.returns"></a><h4>Returns</h4>
-<p> a <a href="/usr/share/gtk-doc/html/gstreamer-1.0GstBuffer.html#GstBuffer-struct"><span class="type">GstBuffer</span></a> holding the pixel data with
-format as originally provided and specified in video meta with
-width and height of the render dimensions as per
-<a class="link" href="gst-plugins-base-libs-gstvideooverlaycomposition.html#gst-video-overlay-rectangle-get-render-rectangle" title="gst_video_overlay_rectangle_get_render_rectangle ()"><code class="function">gst_video_overlay_rectangle_get_render_rectangle()</code></a>. This function does
-not return a reference, the caller should obtain a reference of her own
-with <a href="/usr/share/gtk-doc/html/gstreamer-1.0GstBuffer.html#gst-buffer-ref"><code class="function">gst_buffer_ref()</code></a> if needed. </p>
-<p><span class="annotation">[<acronym title="Don't free data after the code is done."><span class="acronym">transfer none</span></acronym>]</span></p>
-</div>
 </div>
 <hr>
 <div class="refsect2">
@@ -910,41 +448,6 @@
 gst_video_overlay_rectangle_get_pixels_argb
                                (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstvideooverlaycomposition.html#GstVideoOverlayRectangle" title="GstVideoOverlayRectangle"><span class="type">GstVideoOverlayRectangle</span></a> *rectangle</code></em>,
                                 <em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstvideooverlaycomposition.html#GstVideoOverlayFormatFlags" title="enum GstVideoOverlayFormatFlags"><span class="type">GstVideoOverlayFormatFlags</span></a> flags</code></em>);</pre>
-<div class="refsect3">
-<a name="gst-video-overlay-rectangle-get-pixels-argb.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>rectangle</p></td>
-<td class="parameter_description"><p>a <a class="link" href="gst-plugins-base-libs-gstvideooverlaycomposition.html#GstVideoOverlayRectangle" title="GstVideoOverlayRectangle"><span class="type">GstVideoOverlayRectangle</span></a></p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-<tr>
-<td class="parameter_name"><p>flags</p></td>
-<td class="parameter_description"><p>flags
-If a global_alpha value != 1 is set for the rectangle, the caller
-should set the <a class="link" href="gst-plugins-base-libs-gstvideooverlaycomposition.html#GST-VIDEO-OVERLAY-FORMAT-FLAG-GLOBAL-ALPHA:CAPS"><span class="type">GST_VIDEO_OVERLAY_FORMAT_FLAG_GLOBAL_ALPHA</span></a> flag
-if he wants to apply global-alpha himself. If the flag is not set
-global_alpha is applied internally before returning the pixel-data.</p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-</tbody>
-</table></div>
-</div>
-<div class="refsect3">
-<a name="gst-video-overlay-rectangle-get-pixels-argb.returns"></a><h4>Returns</h4>
-<p> a <a href="/usr/share/gtk-doc/html/gstreamer-1.0GstBuffer.html#GstBuffer-struct"><span class="type">GstBuffer</span></a> holding the ARGB pixel data with
-width and height of the render dimensions as per
-<a class="link" href="gst-plugins-base-libs-gstvideooverlaycomposition.html#gst-video-overlay-rectangle-get-render-rectangle" title="gst_video_overlay_rectangle_get_render_rectangle ()"><code class="function">gst_video_overlay_rectangle_get_render_rectangle()</code></a>. This function does
-not return a reference, the caller should obtain a reference of her own
-with <a href="/usr/share/gtk-doc/html/gstreamer-1.0GstBuffer.html#gst-buffer-ref"><code class="function">gst_buffer_ref()</code></a> if needed. </p>
-<p><span class="annotation">[<acronym title="Don't free data after the code is done."><span class="acronym">transfer none</span></acronym>]</span></p>
-</div>
 </div>
 <hr>
 <div class="refsect2">
@@ -953,41 +456,6 @@
 gst_video_overlay_rectangle_get_pixels_ayuv
                                (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstvideooverlaycomposition.html#GstVideoOverlayRectangle" title="GstVideoOverlayRectangle"><span class="type">GstVideoOverlayRectangle</span></a> *rectangle</code></em>,
                                 <em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstvideooverlaycomposition.html#GstVideoOverlayFormatFlags" title="enum GstVideoOverlayFormatFlags"><span class="type">GstVideoOverlayFormatFlags</span></a> flags</code></em>);</pre>
-<div class="refsect3">
-<a name="gst-video-overlay-rectangle-get-pixels-ayuv.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>rectangle</p></td>
-<td class="parameter_description"><p>a <a class="link" href="gst-plugins-base-libs-gstvideooverlaycomposition.html#GstVideoOverlayRectangle" title="GstVideoOverlayRectangle"><span class="type">GstVideoOverlayRectangle</span></a></p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-<tr>
-<td class="parameter_name"><p>flags</p></td>
-<td class="parameter_description"><p>flags
-If a global_alpha value != 1 is set for the rectangle, the caller
-should set the <a class="link" href="gst-plugins-base-libs-gstvideooverlaycomposition.html#GST-VIDEO-OVERLAY-FORMAT-FLAG-GLOBAL-ALPHA:CAPS"><span class="type">GST_VIDEO_OVERLAY_FORMAT_FLAG_GLOBAL_ALPHA</span></a> flag
-if he wants to apply global-alpha himself. If the flag is not set
-global_alpha is applied internally before returning the pixel-data.</p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-</tbody>
-</table></div>
-</div>
-<div class="refsect3">
-<a name="gst-video-overlay-rectangle-get-pixels-ayuv.returns"></a><h4>Returns</h4>
-<p> a <a href="/usr/share/gtk-doc/html/gstreamer-1.0GstBuffer.html#GstBuffer-struct"><span class="type">GstBuffer</span></a> holding the AYUV pixel data with
-width and height of the render dimensions as per
-<a class="link" href="gst-plugins-base-libs-gstvideooverlaycomposition.html#gst-video-overlay-rectangle-get-render-rectangle" title="gst_video_overlay_rectangle_get_render_rectangle ()"><code class="function">gst_video_overlay_rectangle_get_render_rectangle()</code></a>. This function does
-not return a reference, the caller should obtain a reference of her own
-with <a href="/usr/share/gtk-doc/html/gstreamer-1.0GstBuffer.html#gst-buffer-ref"><code class="function">gst_buffer_ref()</code></a> if needed. </p>
-<p><span class="annotation">[<acronym title="Don't free data after the code is done."><span class="acronym">transfer none</span></acronym>]</span></p>
-</div>
 </div>
 <hr>
 <div class="refsect2">
@@ -996,43 +464,6 @@
 gst_video_overlay_rectangle_get_pixels_unscaled_raw
                                (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstvideooverlaycomposition.html#GstVideoOverlayRectangle" title="GstVideoOverlayRectangle"><span class="type">GstVideoOverlayRectangle</span></a> *rectangle</code></em>,
                                 <em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstvideooverlaycomposition.html#GstVideoOverlayFormatFlags" title="enum GstVideoOverlayFormatFlags"><span class="type">GstVideoOverlayFormatFlags</span></a> flags</code></em>);</pre>
-<p>Retrieves the pixel data as it is. This is useful if the caller can
-do the scaling itself when handling the overlaying. The rectangle will
-need to be scaled to the render dimensions, which can be retrieved using
-<a class="link" href="gst-plugins-base-libs-gstvideooverlaycomposition.html#gst-video-overlay-rectangle-get-render-rectangle" title="gst_video_overlay_rectangle_get_render_rectangle ()"><code class="function">gst_video_overlay_rectangle_get_render_rectangle()</code></a>.</p>
-<div class="refsect3">
-<a name="gst-video-overlay-rectangle-get-pixels-unscaled-raw.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>rectangle</p></td>
-<td class="parameter_description"><p>a <a class="link" href="gst-plugins-base-libs-gstvideooverlaycomposition.html#GstVideoOverlayRectangle" title="GstVideoOverlayRectangle"><span class="type">GstVideoOverlayRectangle</span></a></p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-<tr>
-<td class="parameter_name"><p>flags</p></td>
-<td class="parameter_description"><p>flags.
-If a global_alpha value != 1 is set for the rectangle, the caller
-should set the <a class="link" href="gst-plugins-base-libs-gstvideooverlaycomposition.html#GST-VIDEO-OVERLAY-FORMAT-FLAG-GLOBAL-ALPHA:CAPS"><span class="type">GST_VIDEO_OVERLAY_FORMAT_FLAG_GLOBAL_ALPHA</span></a> flag
-if he wants to apply global-alpha himself. If the flag is not set
-global_alpha is applied internally before returning the pixel-data.</p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-</tbody>
-</table></div>
-</div>
-<div class="refsect3">
-<a name="gst-video-overlay-rectangle-get-pixels-unscaled-raw.returns"></a><h4>Returns</h4>
-<p> a <a href="/usr/share/gtk-doc/html/gstreamer-1.0GstBuffer.html#GstBuffer-struct"><span class="type">GstBuffer</span></a> holding the pixel data with
-<a class="link" href="gst-plugins-base-libs-gstvideometa.html#GstVideoMeta" title="struct GstVideoMeta"><span class="type">GstVideoMeta</span></a> set. This function does not return a reference, the caller
-should obtain a reference of her own with <a href="/usr/share/gtk-doc/html/gstreamer-1.0GstBuffer.html#gst-buffer-ref"><code class="function">gst_buffer_ref()</code></a> if needed. </p>
-<p><span class="annotation">[<acronym title="Don't free data after the code is done."><span class="acronym">transfer none</span></acronym>]</span></p>
-</div>
 </div>
 <hr>
 <div class="refsect2">
@@ -1041,43 +472,6 @@
 gst_video_overlay_rectangle_get_pixels_unscaled_argb
                                (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstvideooverlaycomposition.html#GstVideoOverlayRectangle" title="GstVideoOverlayRectangle"><span class="type">GstVideoOverlayRectangle</span></a> *rectangle</code></em>,
                                 <em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstvideooverlaycomposition.html#GstVideoOverlayFormatFlags" title="enum GstVideoOverlayFormatFlags"><span class="type">GstVideoOverlayFormatFlags</span></a> flags</code></em>);</pre>
-<p>Retrieves the pixel data as it is. This is useful if the caller can
-do the scaling itself when handling the overlaying. The rectangle will
-need to be scaled to the render dimensions, which can be retrieved using
-<a class="link" href="gst-plugins-base-libs-gstvideooverlaycomposition.html#gst-video-overlay-rectangle-get-render-rectangle" title="gst_video_overlay_rectangle_get_render_rectangle ()"><code class="function">gst_video_overlay_rectangle_get_render_rectangle()</code></a>.</p>
-<div class="refsect3">
-<a name="gst-video-overlay-rectangle-get-pixels-unscaled-argb.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>rectangle</p></td>
-<td class="parameter_description"><p>a <a class="link" href="gst-plugins-base-libs-gstvideooverlaycomposition.html#GstVideoOverlayRectangle" title="GstVideoOverlayRectangle"><span class="type">GstVideoOverlayRectangle</span></a></p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-<tr>
-<td class="parameter_name"><p>flags</p></td>
-<td class="parameter_description"><p>flags.
-If a global_alpha value != 1 is set for the rectangle, the caller
-should set the <a class="link" href="gst-plugins-base-libs-gstvideooverlaycomposition.html#GST-VIDEO-OVERLAY-FORMAT-FLAG-GLOBAL-ALPHA:CAPS"><span class="type">GST_VIDEO_OVERLAY_FORMAT_FLAG_GLOBAL_ALPHA</span></a> flag
-if he wants to apply global-alpha himself. If the flag is not set
-global_alpha is applied internally before returning the pixel-data.</p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-</tbody>
-</table></div>
-</div>
-<div class="refsect3">
-<a name="gst-video-overlay-rectangle-get-pixels-unscaled-argb.returns"></a><h4>Returns</h4>
-<p> a <a href="/usr/share/gtk-doc/html/gstreamer-1.0GstBuffer.html#GstBuffer-struct"><span class="type">GstBuffer</span></a> holding the ARGB pixel data with
-<a class="link" href="gst-plugins-base-libs-gstvideometa.html#GstVideoMeta" title="struct GstVideoMeta"><span class="type">GstVideoMeta</span></a> set. This function does not return a reference, the caller
-should obtain a reference of her own with <a href="/usr/share/gtk-doc/html/gstreamer-1.0GstBuffer.html#gst-buffer-ref"><code class="function">gst_buffer_ref()</code></a> if needed. </p>
-<p><span class="annotation">[<acronym title="Don't free data after the code is done."><span class="acronym">transfer none</span></acronym>]</span></p>
-</div>
 </div>
 <hr>
 <div class="refsect2">
@@ -1086,43 +480,6 @@
 gst_video_overlay_rectangle_get_pixels_unscaled_ayuv
                                (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstvideooverlaycomposition.html#GstVideoOverlayRectangle" title="GstVideoOverlayRectangle"><span class="type">GstVideoOverlayRectangle</span></a> *rectangle</code></em>,
                                 <em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstvideooverlaycomposition.html#GstVideoOverlayFormatFlags" title="enum GstVideoOverlayFormatFlags"><span class="type">GstVideoOverlayFormatFlags</span></a> flags</code></em>);</pre>
-<p>Retrieves the pixel data as it is. This is useful if the caller can
-do the scaling itself when handling the overlaying. The rectangle will
-need to be scaled to the render dimensions, which can be retrieved using
-<a class="link" href="gst-plugins-base-libs-gstvideooverlaycomposition.html#gst-video-overlay-rectangle-get-render-rectangle" title="gst_video_overlay_rectangle_get_render_rectangle ()"><code class="function">gst_video_overlay_rectangle_get_render_rectangle()</code></a>.</p>
-<div class="refsect3">
-<a name="gst-video-overlay-rectangle-get-pixels-unscaled-ayuv.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>rectangle</p></td>
-<td class="parameter_description"><p>a <a class="link" href="gst-plugins-base-libs-gstvideooverlaycomposition.html#GstVideoOverlayRectangle" title="GstVideoOverlayRectangle"><span class="type">GstVideoOverlayRectangle</span></a></p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-<tr>
-<td class="parameter_name"><p>flags</p></td>
-<td class="parameter_description"><p>flags.
-If a global_alpha value != 1 is set for the rectangle, the caller
-should set the <a class="link" href="gst-plugins-base-libs-gstvideooverlaycomposition.html#GST-VIDEO-OVERLAY-FORMAT-FLAG-GLOBAL-ALPHA:CAPS"><span class="type">GST_VIDEO_OVERLAY_FORMAT_FLAG_GLOBAL_ALPHA</span></a> flag
-if he wants to apply global-alpha himself. If the flag is not set
-global_alpha is applied internally before returning the pixel-data.</p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-</tbody>
-</table></div>
-</div>
-<div class="refsect3">
-<a name="gst-video-overlay-rectangle-get-pixels-unscaled-ayuv.returns"></a><h4>Returns</h4>
-<p> a <a href="/usr/share/gtk-doc/html/gstreamer-1.0GstBuffer.html#GstBuffer-struct"><span class="type">GstBuffer</span></a> holding the AYUV pixel data with
-<a class="link" href="gst-plugins-base-libs-gstvideometa.html#GstVideoMeta" title="struct GstVideoMeta"><span class="type">GstVideoMeta</span></a> set. This function does not return a reference, the caller
-should obtain a reference of her own with <a href="/usr/share/gtk-doc/html/gstreamer-1.0GstBuffer.html#gst-buffer-ref"><code class="function">gst_buffer_ref()</code></a> if needed. </p>
-<p><span class="annotation">[<acronym title="Don't free data after the code is done."><span class="acronym">transfer none</span></acronym>]</span></p>
-</div>
 </div>
 <hr>
 <div class="refsect2">
@@ -1134,49 +491,6 @@
                                 <em class="parameter"><code><a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#gint"><span class="type">gint</span></a> *render_y</code></em>,
                                 <em class="parameter"><code><a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#guint"><span class="type">guint</span></a> *render_width</code></em>,
                                 <em class="parameter"><code><a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#guint"><span class="type">guint</span></a> *render_height</code></em>);</pre>
-<p>Retrieves the render position and render dimension of the overlay
-rectangle on the video.</p>
-<div class="refsect3">
-<a name="gst-video-overlay-rectangle-get-render-rectangle.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>rectangle</p></td>
-<td class="parameter_description"><p>a <a class="link" href="gst-plugins-base-libs-gstvideooverlaycomposition.html#GstVideoOverlayRectangle" title="GstVideoOverlayRectangle"><span class="type">GstVideoOverlayRectangle</span></a></p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-<tr>
-<td class="parameter_name"><p>render_x</p></td>
-<td class="parameter_description"><p> address where to store the X render offset. </p></td>
-<td class="parameter_annotations"><span class="annotation">[<acronym title="Parameter for returning results. Default is transfer full."><span class="acronym">out</span></acronym>][<acronym title="NULL is OK, both for passing and for returning."><span class="acronym">allow-none</span></acronym>]</span></td>
-</tr>
-<tr>
-<td class="parameter_name"><p>render_y</p></td>
-<td class="parameter_description"><p> address where to store the Y render offset. </p></td>
-<td class="parameter_annotations"><span class="annotation">[<acronym title="Parameter for returning results. Default is transfer full."><span class="acronym">out</span></acronym>][<acronym title="NULL is OK, both for passing and for returning."><span class="acronym">allow-none</span></acronym>]</span></td>
-</tr>
-<tr>
-<td class="parameter_name"><p>render_width</p></td>
-<td class="parameter_description"><p> address where to store the render width. </p></td>
-<td class="parameter_annotations"><span class="annotation">[<acronym title="Parameter for returning results. Default is transfer full."><span class="acronym">out</span></acronym>][<acronym title="NULL is OK, both for passing and for returning."><span class="acronym">allow-none</span></acronym>]</span></td>
-</tr>
-<tr>
-<td class="parameter_name"><p>render_height</p></td>
-<td class="parameter_description"><p> address where to store the render height. </p></td>
-<td class="parameter_annotations"><span class="annotation">[<acronym title="Parameter for returning results. Default is transfer full."><span class="acronym">out</span></acronym>][<acronym title="NULL is OK, both for passing and for returning."><span class="acronym">allow-none</span></acronym>]</span></td>
-</tr>
-</tbody>
-</table></div>
-</div>
-<div class="refsect3">
-<a name="gst-video-overlay-rectangle-get-render-rectangle.returns"></a><h4>Returns</h4>
-<p> TRUE if valid render dimensions were retrieved.</p>
-</div>
 </div>
 <hr>
 <div class="refsect2">
@@ -1184,39 +498,6 @@
 <pre class="programlisting"><a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#guint"><span class="returnvalue">guint</span></a>
 gst_video_overlay_rectangle_get_seqnum
                                (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstvideooverlaycomposition.html#GstVideoOverlayRectangle" title="GstVideoOverlayRectangle"><span class="type">GstVideoOverlayRectangle</span></a> *rectangle</code></em>);</pre>
-<p>Returns the sequence number of this rectangle. Sequence numbers are
-monotonically increasing and unique for overlay compositions and rectangles
-(meaning there will never be a rectangle with the same sequence number as
-a composition).</p>
-<p>Using the sequence number of a rectangle as an indicator for changed
-pixel-data of a rectangle is dangereous. Some API calls, like e.g.
-<a class="link" href="gst-plugins-base-libs-gstvideooverlaycomposition.html#gst-video-overlay-rectangle-set-global-alpha" title="gst_video_overlay_rectangle_set_global_alpha ()"><code class="function">gst_video_overlay_rectangle_set_global_alpha()</code></a>, automatically update
-the per rectangle sequence number, which is misleading for renderers/
-consumers, that handle global-alpha themselves. For them  the
-pixel-data returned by gst_video_overlay_rectangle_get_pixels_*()
-wont be different for different global-alpha values. In this case a
-renderer could also use the GstBuffer pointers as a hint for changed
-pixel-data.</p>
-<div class="refsect3">
-<a name="gst-video-overlay-rectangle-get-seqnum.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>rectangle</p></td>
-<td class="parameter_description"><p>a <a class="link" href="gst-plugins-base-libs-gstvideooverlaycomposition.html#GstVideoOverlayRectangle" title="GstVideoOverlayRectangle"><span class="type">GstVideoOverlayRectangle</span></a></p></td>
-<td class="parameter_annotations"> </td>
-</tr></tbody>
-</table></div>
-</div>
-<div class="refsect3">
-<a name="gst-video-overlay-rectangle-get-seqnum.returns"></a><h4>Returns</h4>
-<p> the sequence number of <em class="parameter"><code>rectangle</code></em>
-</p>
-</div>
 </div>
 <hr>
 <div class="refsect2">
@@ -1228,115 +509,18 @@
                                 <em class="parameter"><code><a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#gint"><span class="type">gint</span></a> render_y</code></em>,
                                 <em class="parameter"><code><a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#guint"><span class="type">guint</span></a> render_width</code></em>,
                                 <em class="parameter"><code><a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#guint"><span class="type">guint</span></a> render_height</code></em>);</pre>
-<p>Sets the render position and dimensions of the rectangle on the video.
-This function is mainly for elements that modify the size of the video
-in some way (e.g. through scaling or cropping) and need to adjust the
-details of any overlays to match the operation that changed the size.</p>
-<p><em class="parameter"><code>rectangle</code></em>
- must be writable, meaning its refcount must be 1. You can
-make the rectangles inside a <a class="link" href="gst-plugins-base-libs-gstvideooverlaycomposition.html#GstVideoOverlayComposition" title="GstVideoOverlayComposition"><span class="type">GstVideoOverlayComposition</span></a> writable using
-<a class="link" href="gst-plugins-base-libs-gstvideooverlaycomposition.html#gst-video-overlay-composition-make-writable" title="gst_video_overlay_composition_make_writable ()"><code class="function">gst_video_overlay_composition_make_writable()</code></a> or
-<a class="link" href="gst-plugins-base-libs-gstvideooverlaycomposition.html#gst-video-overlay-composition-copy" title="gst_video_overlay_composition_copy ()"><code class="function">gst_video_overlay_composition_copy()</code></a>.</p>
-<div class="refsect3">
-<a name="gst-video-overlay-rectangle-set-render-rectangle.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>rectangle</p></td>
-<td class="parameter_description"><p>a <a class="link" href="gst-plugins-base-libs-gstvideooverlaycomposition.html#GstVideoOverlayRectangle" title="GstVideoOverlayRectangle"><span class="type">GstVideoOverlayRectangle</span></a></p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-<tr>
-<td class="parameter_name"><p>render_x</p></td>
-<td class="parameter_description"><p>render X position of rectangle on video</p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-<tr>
-<td class="parameter_name"><p>render_y</p></td>
-<td class="parameter_description"><p>render Y position of rectangle on video</p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-<tr>
-<td class="parameter_name"><p>render_width</p></td>
-<td class="parameter_description"><p>render width of rectangle</p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-<tr>
-<td class="parameter_name"><p>render_height</p></td>
-<td class="parameter_description"><p>render height of rectangle</p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-</tbody>
-</table></div>
-</div>
 </div>
 <hr>
 <div class="refsect2">
 <a name="gst-video-overlay-rectangle-copy"></a><h3>gst_video_overlay_rectangle_copy ()</h3>
 <pre class="programlisting"><a class="link" href="gst-plugins-base-libs-gstvideooverlaycomposition.html#GstVideoOverlayRectangle" title="GstVideoOverlayRectangle"><span class="returnvalue">GstVideoOverlayRectangle</span></a> *
 gst_video_overlay_rectangle_copy (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstvideooverlaycomposition.html#GstVideoOverlayRectangle" title="GstVideoOverlayRectangle"><span class="type">GstVideoOverlayRectangle</span></a> *rectangle</code></em>);</pre>
-<p>Makes a copy of <em class="parameter"><code>rectangle</code></em>
-, so that it is possible to modify it
-(e.g. to change the render co-ordinates or render dimension). The
-actual overlay pixel data buffers contained in the rectangle are not
-copied.</p>
-<div class="refsect3">
-<a name="gst-video-overlay-rectangle-copy.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>rectangle</p></td>
-<td class="parameter_description"><p> a <a class="link" href="gst-plugins-base-libs-gstvideooverlaycomposition.html#GstVideoOverlayRectangle" title="GstVideoOverlayRectangle"><span class="type">GstVideoOverlayRectangle</span></a> to copy. </p></td>
-<td class="parameter_annotations"><span class="annotation">[<acronym title="Don't free data after the code is done."><span class="acronym">transfer none</span></acronym>]</span></td>
-</tr></tbody>
-</table></div>
-</div>
-<div class="refsect3">
-<a name="gst-video-overlay-rectangle-copy.returns"></a><h4>Returns</h4>
-<p> a new <a class="link" href="gst-plugins-base-libs-gstvideooverlaycomposition.html#GstVideoOverlayRectangle" title="GstVideoOverlayRectangle"><span class="type">GstVideoOverlayRectangle</span></a> equivalent
-to <em class="parameter"><code>rectangle</code></em>
-. </p>
-<p><span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>]</span></p>
-</div>
 </div>
 <hr>
 <div class="refsect2">
 <a name="gst-video-overlay-rectangle-get-flags"></a><h3>gst_video_overlay_rectangle_get_flags ()</h3>
 <pre class="programlisting"><a class="link" href="gst-plugins-base-libs-gstvideooverlaycomposition.html#GstVideoOverlayFormatFlags" title="enum GstVideoOverlayFormatFlags"><span class="returnvalue">GstVideoOverlayFormatFlags</span></a>
 gst_video_overlay_rectangle_get_flags (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstvideooverlaycomposition.html#GstVideoOverlayRectangle" title="GstVideoOverlayRectangle"><span class="type">GstVideoOverlayRectangle</span></a> *rectangle</code></em>);</pre>
-<p>Retrieves the flags associated with a <a class="link" href="gst-plugins-base-libs-gstvideooverlaycomposition.html#GstVideoOverlayRectangle" title="GstVideoOverlayRectangle"><span class="type">GstVideoOverlayRectangle</span></a>.
-This is useful if the caller can handle both premultiplied alpha and
-non premultiplied alpha, for example. By knowing whether the rectangle
-uses premultiplied or not, it can request the pixel data in the format
-it is stored in, to avoid unnecessary conversion.</p>
-<div class="refsect3">
-<a name="gst-video-overlay-rectangle-get-flags.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>rectangle</p></td>
-<td class="parameter_description"><p>a <a class="link" href="gst-plugins-base-libs-gstvideooverlaycomposition.html#GstVideoOverlayRectangle" title="GstVideoOverlayRectangle"><span class="type">GstVideoOverlayRectangle</span></a></p></td>
-<td class="parameter_annotations"> </td>
-</tr></tbody>
-</table></div>
-</div>
-<div class="refsect3">
-<a name="gst-video-overlay-rectangle-get-flags.returns"></a><h4>Returns</h4>
-<p> the <a class="link" href="gst-plugins-base-libs-gstvideooverlaycomposition.html#GstVideoOverlayFormatFlags" title="enum GstVideoOverlayFormatFlags"><span class="type">GstVideoOverlayFormatFlags</span></a> associated with the rectangle.</p>
-</div>
 </div>
 <hr>
 <div class="refsect2">
@@ -1344,26 +528,6 @@
 <pre class="programlisting"><a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#gfloat"><span class="returnvalue">gfloat</span></a>
 gst_video_overlay_rectangle_get_global_alpha
                                (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstvideooverlaycomposition.html#GstVideoOverlayRectangle" title="GstVideoOverlayRectangle"><span class="type">GstVideoOverlayRectangle</span></a> *rectangle</code></em>);</pre>
-<p>Retrieves the global-alpha value associated with a <a class="link" href="gst-plugins-base-libs-gstvideooverlaycomposition.html#GstVideoOverlayRectangle" title="GstVideoOverlayRectangle"><span class="type">GstVideoOverlayRectangle</span></a>.</p>
-<div class="refsect3">
-<a name="gst-video-overlay-rectangle-get-global-alpha.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>rectangle</p></td>
-<td class="parameter_description"><p>a <a class="link" href="gst-plugins-base-libs-gstvideooverlaycomposition.html#GstVideoOverlayRectangle" title="GstVideoOverlayRectangle"><span class="type">GstVideoOverlayRectangle</span></a></p></td>
-<td class="parameter_annotations"> </td>
-</tr></tbody>
-</table></div>
-</div>
-<div class="refsect3">
-<a name="gst-video-overlay-rectangle-get-global-alpha.returns"></a><h4>Returns</h4>
-<p> the global-alpha value associated with the rectangle.</p>
-</div>
 </div>
 <hr>
 <div class="refsect2">
@@ -1372,36 +536,6 @@
 gst_video_overlay_rectangle_set_global_alpha
                                (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstvideooverlaycomposition.html#GstVideoOverlayRectangle" title="GstVideoOverlayRectangle"><span class="type">GstVideoOverlayRectangle</span></a> *rectangle</code></em>,
                                 <em class="parameter"><code><a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#gfloat"><span class="type">gfloat</span></a> global_alpha</code></em>);</pre>
-<p>Sets the global alpha value associated with a <a class="link" href="gst-plugins-base-libs-gstvideooverlaycomposition.html#GstVideoOverlayRectangle" title="GstVideoOverlayRectangle"><span class="type">GstVideoOverlayRectangle</span></a>. Per-
-pixel alpha values are multiplied with this value. Valid
-values: 0 &lt;= global_alpha &lt;= 1; 1 to deactivate.</p>
-<p><em class="parameter"><code>rectangle</code></em>
- must be writable, meaning its refcount must be 1. You can
-make the rectangles inside a <a class="link" href="gst-plugins-base-libs-gstvideooverlaycomposition.html#GstVideoOverlayComposition" title="GstVideoOverlayComposition"><span class="type">GstVideoOverlayComposition</span></a> writable using
-<a class="link" href="gst-plugins-base-libs-gstvideooverlaycomposition.html#gst-video-overlay-composition-make-writable" title="gst_video_overlay_composition_make_writable ()"><code class="function">gst_video_overlay_composition_make_writable()</code></a> or
-<a class="link" href="gst-plugins-base-libs-gstvideooverlaycomposition.html#gst-video-overlay-composition-copy" title="gst_video_overlay_composition_copy ()"><code class="function">gst_video_overlay_composition_copy()</code></a>.</p>
-<div class="refsect3">
-<a name="gst-video-overlay-rectangle-set-global-alpha.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>rectangle</p></td>
-<td class="parameter_description"><p>a <a class="link" href="gst-plugins-base-libs-gstvideooverlaycomposition.html#GstVideoOverlayRectangle" title="GstVideoOverlayRectangle"><span class="type">GstVideoOverlayRectangle</span></a></p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-<tr>
-<td class="parameter_name"><p>global_alpha</p></td>
-<td class="parameter_description"><p>Global alpha value (0 to 1.0)</p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-</tbody>
-</table></div>
-</div>
 </div>
 </div>
 <div class="refsect1">
@@ -1409,16 +543,11 @@
 <div class="refsect2">
 <a name="GstVideoOverlayComposition"></a><h3>GstVideoOverlayComposition</h3>
 <pre class="programlisting">typedef struct _GstVideoOverlayComposition GstVideoOverlayComposition;</pre>
-<p>An opaque video overlay composition object. A composition contains
-multiple overlay rectangles.</p>
 </div>
 <hr>
 <div class="refsect2">
 <a name="GST-VIDEO-OVERLAY-COMPOSITION-BLEND-FORMATS:CAPS"></a><h3>GST_VIDEO_OVERLAY_COMPOSITION_BLEND_FORMATS</h3>
 <pre class="programlisting">#define             GST_VIDEO_OVERLAY_COMPOSITION_BLEND_FORMATS</pre>
-<p>Video formats supported by <a class="link" href="gst-plugins-base-libs-gstvideooverlaycomposition.html#gst-video-overlay-composition-blend" title="gst_video_overlay_composition_blend ()"><code class="function">gst_video_overlay_composition_blend()</code></a>, for
-use in overlay elements' pad template caps.</p>
-<p class="since">Since: 1.2</p>
 </div>
 <hr>
 <div class="refsect2">
@@ -1429,34 +558,10 @@
   GstVideoOverlayComposition *overlay;
 };
 </pre>
-<p>Extra buffer metadata describing image overlay data.</p>
-<div class="refsect3">
-<a name="GstVideoOverlayCompositionMeta.members"></a><h4>Members</h4>
-<div class="informaltable"><table class="informaltable" width="100%" border="0">
-<colgroup>
-<col width="300px" class="struct_members_name">
-<col class="struct_members_description">
-<col width="200px" class="struct_members_annotations">
-</colgroup>
-<tbody>
-<tr>
-<td class="struct_member_name"><p><a href="/usr/share/gtk-doc/html/gstreamer-1.0gstreamer-GstMeta.html#GstMeta"><span class="type">GstMeta</span></a> <em class="structfield"><code><a name="GstVideoOverlayCompositionMeta.meta"></a>meta</code></em>;</p></td>
-<td class="struct_member_description"><p>parent <a href="/usr/share/gtk-doc/html/gstreamer-1.0gstreamer-GstMeta.html#GstMeta"><span class="type">GstMeta</span></a></p></td>
-<td class="struct_member_annotations"> </td>
-</tr>
-<tr>
-<td class="struct_member_name"><p><a class="link" href="gst-plugins-base-libs-gstvideooverlaycomposition.html#GstVideoOverlayComposition" title="GstVideoOverlayComposition"><span class="type">GstVideoOverlayComposition</span></a> *<em class="structfield"><code><a name="GstVideoOverlayCompositionMeta.overlay"></a>overlay</code></em>;</p></td>
-<td class="struct_member_description"><p>the attached <a class="link" href="gst-plugins-base-libs-gstvideooverlaycomposition.html#GstVideoOverlayComposition" title="GstVideoOverlayComposition"><span class="type">GstVideoOverlayComposition</span></a></p></td>
-<td class="struct_member_annotations"> </td>
-</tr>
-</tbody>
-</table></div>
-</div>
 </div>
 <hr>
 <div class="refsect2">
 <a name="GstVideoOverlayFormatFlags"></a><h3>enum GstVideoOverlayFormatFlags</h3>
-<p>Overlay format flags.</p>
 <div class="refsect3">
 <a name="GstVideoOverlayFormatFlags.members"></a><h4>Members</h4>
 <div class="informaltable"><table class="informaltable" width="100%" border="0">
@@ -1468,24 +573,18 @@
 <tbody>
 <tr>
 <td class="enum_member_name"><p><a name="GST-VIDEO-OVERLAY-FORMAT-FLAG-NONE:CAPS"></a>GST_VIDEO_OVERLAY_FORMAT_FLAG_NONE</p></td>
-<td class="enum_member_description">
-<p>no flags</p>
-</td>
-<td class="enum_member_annotations"> </td>
+<td> </td>
+<td> </td>
 </tr>
 <tr>
 <td class="enum_member_name"><p><a name="GST-VIDEO-OVERLAY-FORMAT-FLAG-PREMULTIPLIED-ALPHA:CAPS"></a>GST_VIDEO_OVERLAY_FORMAT_FLAG_PREMULTIPLIED_ALPHA</p></td>
-<td class="enum_member_description">
-<p>RGB are premultiplied by A/255.</p>
-</td>
-<td class="enum_member_annotations"> </td>
+<td> </td>
+<td> </td>
 </tr>
 <tr>
 <td class="enum_member_name"><p><a name="GST-VIDEO-OVERLAY-FORMAT-FLAG-GLOBAL-ALPHA:CAPS"></a>GST_VIDEO_OVERLAY_FORMAT_FLAG_GLOBAL_ALPHA</p></td>
-<td class="enum_member_description">
-<p>a global-alpha value != 1 is set.</p>
-</td>
-<td class="enum_member_annotations"> </td>
+<td> </td>
+<td> </td>
 </tr>
 </tbody>
 </table></div>
@@ -1495,8 +594,6 @@
 <div class="refsect2">
 <a name="GstVideoOverlayRectangle"></a><h3>GstVideoOverlayRectangle</h3>
 <pre class="programlisting">typedef struct _GstVideoOverlayRectangle GstVideoOverlayRectangle;</pre>
-<p>An opaque video overlay rectangle object. A rectangle contains a single
-overlay rectangle which can be added to a composition.</p>
 </div>
 </div>
 </div>
diff --git a/docs/libs/html/gst-plugins-base-libs-gstvideosink.html b/docs/libs/html/gst-plugins-base-libs-gstvideosink.html
index a771a44..988a3c9 100644
--- a/docs/libs/html/gst-plugins-base-libs-gstvideosink.html
+++ b/docs/libs/html/gst-plugins-base-libs-gstvideosink.html
@@ -29,7 +29,7 @@
 <div class="refnamediv"><table width="100%"><tr>
 <td valign="top">
 <h2><span class="refentrytitle"><a name="gst-plugins-base-libs-gstvideosink.top_of_page"></a>gstvideosink</span></h2>
-<p>gstvideosink — Base class for video sinks</p>
+<p>gstvideosink</p>
 </td>
 <td class="gallery_image" valign="top" align="right"></td>
 </tr></table></div>
@@ -125,16 +125,6 @@
 </div>
 <div class="refsect1">
 <a name="gst-plugins-base-libs-gstvideosink.description"></a><h2>Description</h2>
-<div class="refsect2">
-<a name="id-1.2.15.12.9.2"></a><p>
-Provides useful functions and a base class for video sinks. 
-</p>
-<p>
-GstVideoSink will configure the default base sink to drop frames that
-arrive later than 20ms as this is considered the default threshold for
-observing out-of-sync frames.
-</p>
-</div>
 </div>
 <div class="refsect1">
 <a name="gst-plugins-base-libs-gstvideosink.functions_details"></a><h2>Functions</h2>
@@ -148,23 +138,6 @@
 <a name="GST-VIDEO-SINK-PAD:CAPS"></a><h3>GST_VIDEO_SINK_PAD()</h3>
 <pre class="programlisting">#define GST_VIDEO_SINK_PAD(obj) GST_BASE_SINK_PAD(obj)
 </pre>
-<p>Get the sink <a href="/usr/share/gtk-doc/html/gstreamer-1.0GstPad.html#GstPad-struct"><span class="type">GstPad</span></a> of <em class="parameter"><code>obj</code></em>
-.</p>
-<div class="refsect3">
-<a name="GST-VIDEO-SINK-PAD.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>obj</p></td>
-<td class="parameter_description"><p>a <a class="link" href="gst-plugins-base-libs-gstvideosink.html#GstVideoSink"><span class="type">GstVideoSink</span></a></p></td>
-<td class="parameter_annotations"> </td>
-</tr></tbody>
-</table></div>
-</div>
 </div>
 <hr>
 <div class="refsect2">
@@ -180,47 +153,6 @@
                             <em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstvideosink.html#GstVideoRectangle" title="struct GstVideoRectangle"><span class="type">GstVideoRectangle</span></a> dst</code></em>,
                             <em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstvideosink.html#GstVideoRectangle" title="struct GstVideoRectangle"><span class="type">GstVideoRectangle</span></a> *result</code></em>,
                             <em class="parameter"><code><a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a> scaling</code></em>);</pre>
-<p>Takes <em class="parameter"><code>src</code></em>
- rectangle and position it at the center of <em class="parameter"><code>dst</code></em>
- rectangle with or
-without <em class="parameter"><code>scaling</code></em>
-. It handles clipping if the <em class="parameter"><code>src</code></em>
- rectangle is bigger than
-the <em class="parameter"><code>dst</code></em>
- one and <em class="parameter"><code>scaling</code></em>
- is set to FALSE.</p>
-<div class="refsect3">
-<a name="gst-video-sink-center-rect.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>src</p></td>
-<td class="parameter_description"><p>the <a class="link" href="gst-plugins-base-libs-gstvideosink.html#GstVideoRectangle" title="struct GstVideoRectangle"><span class="type">GstVideoRectangle</span></a> describing the source area</p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-<tr>
-<td class="parameter_name"><p>dst</p></td>
-<td class="parameter_description"><p>the <a class="link" href="gst-plugins-base-libs-gstvideosink.html#GstVideoRectangle" title="struct GstVideoRectangle"><span class="type">GstVideoRectangle</span></a> describing the destination area</p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-<tr>
-<td class="parameter_name"><p>result</p></td>
-<td class="parameter_description"><p>a pointer to a <a class="link" href="gst-plugins-base-libs-gstvideosink.html#GstVideoRectangle" title="struct GstVideoRectangle"><span class="type">GstVideoRectangle</span></a> which will receive the result area</p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-<tr>
-<td class="parameter_name"><p>scaling</p></td>
-<td class="parameter_description"><p>a <a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a> indicating if scaling should be applied or not</p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-</tbody>
-</table></div>
-</div>
 </div>
 </div>
 <div class="refsect1">
@@ -231,32 +163,6 @@
   gint width, height;
 };
 </pre>
-<p>The video sink instance structure. Derived video sinks should set the
-<em class="parameter"><code>height</code></em>
- and <em class="parameter"><code>width</code></em>
- members.</p>
-<div class="refsect3">
-<a name="GstVideoSink.members"></a><h4>Members</h4>
-<div class="informaltable"><table class="informaltable" width="100%" border="0">
-<colgroup>
-<col width="300px" class="struct_members_name">
-<col class="struct_members_description">
-<col width="200px" class="struct_members_annotations">
-</colgroup>
-<tbody>
-<tr>
-<td class="struct_member_name"><p><a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#gint"><span class="type">gint</span></a> <em class="structfield"><code><a name="GstVideoSink-struct.width"></a>width</code></em>;</p></td>
-<td class="struct_member_description"><p>video width (derived class needs to set this)</p></td>
-<td class="struct_member_annotations"> </td>
-</tr>
-<tr>
-<td class="struct_member_name"><p><a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#gint"><span class="type">gint</span></a> <em class="structfield"><code><a name="GstVideoSink-struct.height"></a>height</code></em>;</p></td>
-<td class="struct_member_description"><p>video height (derived class needs to set this)</p></td>
-<td class="struct_member_annotations"> </td>
-</tr>
-</tbody>
-</table></div>
-</div>
 </div>
 <hr>
 <div class="refsect2">
@@ -267,27 +173,6 @@
   GstFlowReturn  (*show_frame) (GstVideoSink *video_sink, GstBuffer *buf);
 };
 </pre>
-<p>The video sink class structure. Derived classes should override the
-<em class="parameter"><code>show_frame</code></em>
- virtual function.</p>
-<div class="refsect3">
-<a name="GstVideoSinkClass.members"></a><h4>Members</h4>
-<div class="informaltable"><table class="informaltable" width="100%" border="0">
-<colgroup>
-<col width="300px" class="struct_members_name">
-<col class="struct_members_description">
-<col width="200px" class="struct_members_annotations">
-</colgroup>
-<tbody><tr>
-<td class="struct_member_name"><p><em class="structfield"><code><a name="GstVideoSinkClass.show-frame"></a>show_frame</code></em> ()</p></td>
-<td class="struct_member_description"><p>render a video frame. Maps to <a href="/usr/share/gtk-doc/html/gstreamer-libs-1.0GstBaseSink.html#GstBaseSinkClass.render"><code class="function">GstBaseSinkClass.render()</code></a> and
-<a href="/usr/share/gtk-doc/html/gstreamer-libs-1.0GstBaseSink.html#GstBaseSinkClass.preroll"><code class="function">GstBaseSinkClass.preroll()</code></a> vfuncs. Rendering during preroll will be
-suppressed if the <a class="link" href="gst-plugins-base-libs-gstvideosink.html#GstVideoSink--show-preroll-frame" title="The “show-preroll-frame” property"><span class="type">“show-preroll-frame”</span></a> property is set to
-<a href="/usr/share/gtk-doc/html/glibglib-Standard-Macros.html#FALSE:CAPS"><code class="literal">FALSE</code></a>.</p></td>
-<td class="struct_member_annotations"> </td>
-</tr></tbody>
-</table></div>
-</div>
 </div>
 <hr>
 <div class="refsect2">
@@ -299,39 +184,6 @@
   gint h;
 };
 </pre>
-<p>Helper structure representing a rectangular area.</p>
-<div class="refsect3">
-<a name="GstVideoRectangle.members"></a><h4>Members</h4>
-<div class="informaltable"><table class="informaltable" width="100%" border="0">
-<colgroup>
-<col width="300px" class="struct_members_name">
-<col class="struct_members_description">
-<col width="200px" class="struct_members_annotations">
-</colgroup>
-<tbody>
-<tr>
-<td class="struct_member_name"><p><a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#gint"><span class="type">gint</span></a> <em class="structfield"><code><a name="GstVideoRectangle.x"></a>x</code></em>;</p></td>
-<td class="struct_member_description"><p>X coordinate of rectangle's top-left point</p></td>
-<td class="struct_member_annotations"> </td>
-</tr>
-<tr>
-<td class="struct_member_name"><p><a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#gint"><span class="type">gint</span></a> <em class="structfield"><code><a name="GstVideoRectangle.y"></a>y</code></em>;</p></td>
-<td class="struct_member_description"><p>Y coordinate of rectangle's top-left point</p></td>
-<td class="struct_member_annotations"> </td>
-</tr>
-<tr>
-<td class="struct_member_name"><p><a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#gint"><span class="type">gint</span></a> <em class="structfield"><code><a name="GstVideoRectangle.w"></a>w</code></em>;</p></td>
-<td class="struct_member_description"><p>width of the rectangle</p></td>
-<td class="struct_member_annotations"> </td>
-</tr>
-<tr>
-<td class="struct_member_name"><p><a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#gint"><span class="type">gint</span></a> <em class="structfield"><code><a name="GstVideoRectangle.h"></a>h</code></em>;</p></td>
-<td class="struct_member_description"><p>height of the rectangle</p></td>
-<td class="struct_member_annotations"> </td>
-</tr>
-</tbody>
-</table></div>
-</div>
 </div>
 </div>
 <div class="refsect1">
@@ -339,8 +191,7 @@
 <div class="refsect2">
 <a name="GstVideoSink--show-preroll-frame"></a><h3>The <code class="literal">“show-preroll-frame”</code> property</h3>
 <pre class="programlisting">  “show-preroll-frame”       <a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a></pre>
-<p>Whether to show video frames during preroll. If set to <a href="/usr/share/gtk-doc/html/glibglib-Standard-Macros.html#FALSE:CAPS"><span class="type">FALSE</span></a>, video
-frames will only be rendered in PLAYING state.</p>
+<p>Whether to render video frames during preroll.</p>
 <p>Flags: Read / Write / Construct</p>
 <p>Default value: TRUE</p>
 </div>
diff --git a/docs/libs/html/gst-plugins-base-libs-gstvideoutils.html b/docs/libs/html/gst-plugins-base-libs-gstvideoutils.html
index 61b122e..6ae21fb 100644
--- a/docs/libs/html/gst-plugins-base-libs-gstvideoutils.html
+++ b/docs/libs/html/gst-plugins-base-libs-gstvideoutils.html
@@ -212,229 +212,54 @@
 <a name="GST-VIDEO-CODEC-FRAME-FLAGS:CAPS"></a><h3>GST_VIDEO_CODEC_FRAME_FLAGS()</h3>
 <pre class="programlisting">#define GST_VIDEO_CODEC_FRAME_FLAGS(frame) ((frame)-&gt;flags)
 </pre>
-<p>The entire set of flags for the <em class="parameter"><code>frame</code></em>
-</p>
-<div class="refsect3">
-<a name="GST-VIDEO-CODEC-FRAME-FLAGS.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>frame</p></td>
-<td class="parameter_description"><p>a <a class="link" href="gst-plugins-base-libs-gstvideoutils.html#GstVideoCodecFrame" title="struct GstVideoCodecFrame"><span class="type">GstVideoCodecFrame</span></a></p></td>
-<td class="parameter_annotations"> </td>
-</tr></tbody>
-</table></div>
-</div>
 </div>
 <hr>
 <div class="refsect2">
 <a name="GST-VIDEO-CODEC-FRAME-FLAG-IS-SET:CAPS"></a><h3>GST_VIDEO_CODEC_FRAME_FLAG_IS_SET()</h3>
 <pre class="programlisting">#define GST_VIDEO_CODEC_FRAME_FLAG_IS_SET(frame,flag)   !!(GST_VIDEO_CODEC_FRAME_FLAGS(frame) &amp; (flag))
 </pre>
-<p>Checks whether the given <em class="parameter"><code>flag</code></em>
- is set</p>
-<div class="refsect3">
-<a name="GST-VIDEO-CODEC-FRAME-FLAG-IS-SET.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>frame</p></td>
-<td class="parameter_description"><p>a <a class="link" href="gst-plugins-base-libs-gstvideoutils.html#GstVideoCodecFrame" title="struct GstVideoCodecFrame"><span class="type">GstVideoCodecFrame</span></a></p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-<tr>
-<td class="parameter_name"><p>flag</p></td>
-<td class="parameter_description"><p>a flag to check for</p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-</tbody>
-</table></div>
-</div>
 </div>
 <hr>
 <div class="refsect2">
 <a name="GST-VIDEO-CODEC-FRAME-FLAG-SET:CAPS"></a><h3>GST_VIDEO_CODEC_FRAME_FLAG_SET()</h3>
 <pre class="programlisting">#define GST_VIDEO_CODEC_FRAME_FLAG_SET(frame,flag)     (GST_VIDEO_CODEC_FRAME_FLAGS(frame) |= (flag))
 </pre>
-<p>This macro sets the given bits</p>
-<div class="refsect3">
-<a name="GST-VIDEO-CODEC-FRAME-FLAG-SET.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>frame</p></td>
-<td class="parameter_description"><p>a <a class="link" href="gst-plugins-base-libs-gstvideoutils.html#GstVideoCodecFrame" title="struct GstVideoCodecFrame"><span class="type">GstVideoCodecFrame</span></a></p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-<tr>
-<td class="parameter_name"><p>flag</p></td>
-<td class="parameter_description"><p>Flag to set, can be any number of bits in guint32.</p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-</tbody>
-</table></div>
-</div>
 </div>
 <hr>
 <div class="refsect2">
 <a name="GST-VIDEO-CODEC-FRAME-FLAG-UNSET:CAPS"></a><h3>GST_VIDEO_CODEC_FRAME_FLAG_UNSET()</h3>
 <pre class="programlisting">#define GST_VIDEO_CODEC_FRAME_FLAG_UNSET(frame,flag)   (GST_VIDEO_CODEC_FRAME_FLAGS(frame) &amp;= ~(flag))
 </pre>
-<p>This macro usets the given bits.</p>
-<div class="refsect3">
-<a name="GST-VIDEO-CODEC-FRAME-FLAG-UNSET.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>frame</p></td>
-<td class="parameter_description"><p>a <a class="link" href="gst-plugins-base-libs-gstvideoutils.html#GstVideoCodecFrame" title="struct GstVideoCodecFrame"><span class="type">GstVideoCodecFrame</span></a></p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-<tr>
-<td class="parameter_name"><p>flag</p></td>
-<td class="parameter_description"><p>Flag to unset</p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-</tbody>
-</table></div>
-</div>
 </div>
 <hr>
 <div class="refsect2">
 <a name="GST-VIDEO-CODEC-FRAME-IS-DECODE-ONLY:CAPS"></a><h3>GST_VIDEO_CODEC_FRAME_IS_DECODE_ONLY()</h3>
 <pre class="programlisting">#define GST_VIDEO_CODEC_FRAME_IS_DECODE_ONLY(frame)     (GST_VIDEO_CODEC_FRAME_FLAG_IS_SET(frame, GST_VIDEO_CODEC_FRAME_FLAG_DECODE_ONLY))
 </pre>
-<p>Tests if the buffer should only be decoded but not sent downstream.</p>
-<div class="refsect3">
-<a name="GST-VIDEO-CODEC-FRAME-IS-DECODE-ONLY.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>frame</p></td>
-<td class="parameter_description"><p>a <a class="link" href="gst-plugins-base-libs-gstvideoutils.html#GstVideoCodecFrame" title="struct GstVideoCodecFrame"><span class="type">GstVideoCodecFrame</span></a></p></td>
-<td class="parameter_annotations"> </td>
-</tr></tbody>
-</table></div>
-</div>
 </div>
 <hr>
 <div class="refsect2">
 <a name="GST-VIDEO-CODEC-FRAME-IS-FORCE-KEYFRAME:CAPS"></a><h3>GST_VIDEO_CODEC_FRAME_IS_FORCE_KEYFRAME()</h3>
 <pre class="programlisting">#define GST_VIDEO_CODEC_FRAME_IS_FORCE_KEYFRAME(frame)      (GST_VIDEO_CODEC_FRAME_FLAG_IS_SET(frame, GST_VIDEO_CODEC_FRAME_FLAG_FORCE_KEYFRAME))
 </pre>
-<p>Tests if the frame must be encoded as a keyframe. Applies only to
-frames provided to encoders. Decoders can safely ignore this field.</p>
-<div class="refsect3">
-<a name="GST-VIDEO-CODEC-FRAME-IS-FORCE-KEYFRAME.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>frame</p></td>
-<td class="parameter_description"><p>a <a class="link" href="gst-plugins-base-libs-gstvideoutils.html#GstVideoCodecFrame" title="struct GstVideoCodecFrame"><span class="type">GstVideoCodecFrame</span></a></p></td>
-<td class="parameter_annotations"> </td>
-</tr></tbody>
-</table></div>
-</div>
 </div>
 <hr>
 <div class="refsect2">
 <a name="GST-VIDEO-CODEC-FRAME-IS-FORCE-KEYFRAME-HEADERS:CAPS"></a><h3>GST_VIDEO_CODEC_FRAME_IS_FORCE_KEYFRAME_HEADERS()</h3>
 <pre class="programlisting">#define GST_VIDEO_CODEC_FRAME_IS_FORCE_KEYFRAME_HEADERS(frame)      (GST_VIDEO_CODEC_FRAME_FLAG_IS_SET(frame, GST_VIDEO_CODEC_FRAME_FLAG_FORCE_KEYFRAME_HEADERS))
 </pre>
-<p>Tests if encoder should output stream headers before outputting the
-resulting encoded buffer for the given frame.</p>
-<p>Applies only to frames provided to encoders. Decoders can safely
-ignore this field.</p>
-<div class="refsect3">
-<a name="GST-VIDEO-CODEC-FRAME-IS-FORCE-KEYFRAME-HEADERS.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>frame</p></td>
-<td class="parameter_description"><p>a <a class="link" href="gst-plugins-base-libs-gstvideoutils.html#GstVideoCodecFrame" title="struct GstVideoCodecFrame"><span class="type">GstVideoCodecFrame</span></a></p></td>
-<td class="parameter_annotations"> </td>
-</tr></tbody>
-</table></div>
-</div>
 </div>
 <hr>
 <div class="refsect2">
 <a name="GST-VIDEO-CODEC-FRAME-IS-SYNC-POINT:CAPS"></a><h3>GST_VIDEO_CODEC_FRAME_IS_SYNC_POINT()</h3>
 <pre class="programlisting">#define GST_VIDEO_CODEC_FRAME_IS_SYNC_POINT(frame)      (GST_VIDEO_CODEC_FRAME_FLAG_IS_SET(frame, GST_VIDEO_CODEC_FRAME_FLAG_SYNC_POINT))
 </pre>
-<p>Tests if the frame is a synchronization point (like a keyframe).</p>
-<p>Decoder implementations can use this to detect keyframes.</p>
-<div class="refsect3">
-<a name="GST-VIDEO-CODEC-FRAME-IS-SYNC-POINT.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>frame</p></td>
-<td class="parameter_description"><p>a <a class="link" href="gst-plugins-base-libs-gstvideoutils.html#GstVideoCodecFrame" title="struct GstVideoCodecFrame"><span class="type">GstVideoCodecFrame</span></a></p></td>
-<td class="parameter_annotations"> </td>
-</tr></tbody>
-</table></div>
-</div>
 </div>
 <hr>
 <div class="refsect2">
 <a name="GST-VIDEO-CODEC-FRAME-SET-DECODE-ONLY:CAPS"></a><h3>GST_VIDEO_CODEC_FRAME_SET_DECODE_ONLY()</h3>
 <pre class="programlisting">#define GST_VIDEO_CODEC_FRAME_SET_DECODE_ONLY(frame)    (GST_VIDEO_CODEC_FRAME_FLAG_SET(frame, GST_VIDEO_CODEC_FRAME_FLAG_DECODE_ONLY))
 </pre>
-<p>Sets the buffer to not be sent downstream.</p>
-<p>Decoder implementation can use this if they have frames that
-are not meant to be displayed.</p>
-<p>Encoder implementation can safely ignore this field.</p>
-<div class="refsect3">
-<a name="GST-VIDEO-CODEC-FRAME-SET-DECODE-ONLY.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>frame</p></td>
-<td class="parameter_description"><p>a <a class="link" href="gst-plugins-base-libs-gstvideoutils.html#GstVideoCodecFrame" title="struct GstVideoCodecFrame"><span class="type">GstVideoCodecFrame</span></a></p></td>
-<td class="parameter_annotations"> </td>
-</tr></tbody>
-</table></div>
-</div>
 </div>
 <hr>
 <div class="refsect2">
@@ -453,25 +278,6 @@
 <a name="GST-VIDEO-CODEC-FRAME-SET-SYNC-POINT:CAPS"></a><h3>GST_VIDEO_CODEC_FRAME_SET_SYNC_POINT()</h3>
 <pre class="programlisting">#define GST_VIDEO_CODEC_FRAME_SET_SYNC_POINT(frame)     (GST_VIDEO_CODEC_FRAME_FLAG_SET(frame, GST_VIDEO_CODEC_FRAME_FLAG_SYNC_POINT))
 </pre>
-<p>Sets the frame to be a synchronization point (like a keyframe).</p>
-<p>Encoder implementations should set this accordingly.</p>
-<p>Decoder implementing parsing features should set this when they
-detect such a synchronization point.</p>
-<div class="refsect3">
-<a name="GST-VIDEO-CODEC-FRAME-SET-SYNC-POINT.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>frame</p></td>
-<td class="parameter_description"><p>a <a class="link" href="gst-plugins-base-libs-gstvideoutils.html#GstVideoCodecFrame" title="struct GstVideoCodecFrame"><span class="type">GstVideoCodecFrame</span></a></p></td>
-<td class="parameter_annotations"> </td>
-</tr></tbody>
-</table></div>
-</div>
 </div>
 <hr>
 <div class="refsect2">
@@ -496,50 +302,12 @@
 <a name="gst-video-codec-frame-ref"></a><h3>gst_video_codec_frame_ref ()</h3>
 <pre class="programlisting"><a class="link" href="gst-plugins-base-libs-gstvideoutils.html#GstVideoCodecFrame" title="struct GstVideoCodecFrame"><span class="returnvalue">GstVideoCodecFrame</span></a> *
 gst_video_codec_frame_ref (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstvideoutils.html#GstVideoCodecFrame" title="struct GstVideoCodecFrame"><span class="type">GstVideoCodecFrame</span></a> *frame</code></em>);</pre>
-<p>Increases the refcount of the given frame by one.</p>
-<div class="refsect3">
-<a name="gst-video-codec-frame-ref.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>frame</p></td>
-<td class="parameter_description"><p>a <a class="link" href="gst-plugins-base-libs-gstvideoutils.html#GstVideoCodecFrame" title="struct GstVideoCodecFrame"><span class="type">GstVideoCodecFrame</span></a></p></td>
-<td class="parameter_annotations"> </td>
-</tr></tbody>
-</table></div>
-</div>
-<div class="refsect3">
-<a name="gst-video-codec-frame-ref.returns"></a><h4>Returns</h4>
-<p> <em class="parameter"><code>buf</code></em>
-</p>
-</div>
 </div>
 <hr>
 <div class="refsect2">
 <a name="gst-video-codec-frame-unref"></a><h3>gst_video_codec_frame_unref ()</h3>
 <pre class="programlisting"><span class="returnvalue">void</span>
 gst_video_codec_frame_unref (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstvideoutils.html#GstVideoCodecFrame" title="struct GstVideoCodecFrame"><span class="type">GstVideoCodecFrame</span></a> *frame</code></em>);</pre>
-<p>Decreases the refcount of the frame. If the refcount reaches 0, the frame
-will be freed.</p>
-<div class="refsect3">
-<a name="gst-video-codec-frame-unref.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>frame</p></td>
-<td class="parameter_description"><p>a <a class="link" href="gst-plugins-base-libs-gstvideoutils.html#GstVideoCodecFrame" title="struct GstVideoCodecFrame"><span class="type">GstVideoCodecFrame</span></a></p></td>
-<td class="parameter_annotations"> </td>
-</tr></tbody>
-</table></div>
-</div>
 </div>
 <hr>
 <div class="refsect2">
@@ -548,119 +316,24 @@
 gst_video_codec_frame_set_user_data (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstvideoutils.html#GstVideoCodecFrame" title="struct GstVideoCodecFrame"><span class="type">GstVideoCodecFrame</span></a> *frame</code></em>,
                                      <em class="parameter"><code><a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> user_data</code></em>,
                                      <em class="parameter"><code><a href="/usr/share/gtk-doc/html/glibglib-Datasets.html#GDestroyNotify"><span class="type">GDestroyNotify</span></a> notify</code></em>);</pre>
-<p>Sets <em class="parameter"><code>user_data</code></em>
- on the frame and the <a href="/usr/share/gtk-doc/html/glibglib-Datasets.html#GDestroyNotify"><span class="type">GDestroyNotify</span></a> that will be called when
-the frame is freed. Allows to attach private data by the subclass to frames.</p>
-<p>If a <em class="parameter"><code>user_data</code></em>
- was previously set, then the previous set <em class="parameter"><code>notify</code></em>
- will be called
-before the <em class="parameter"><code>user_data</code></em>
- is replaced.</p>
-<div class="refsect3">
-<a name="gst-video-codec-frame-set-user-data.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>frame</p></td>
-<td class="parameter_description"><p>a <a class="link" href="gst-plugins-base-libs-gstvideoutils.html#GstVideoCodecFrame" title="struct GstVideoCodecFrame"><span class="type">GstVideoCodecFrame</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>private data</p></td>
-<td class="parameter_annotations"> </td>
-</tr>
-<tr>
-<td class="parameter_name"><p>notify</p></td>
-<td class="parameter_description"><p> a <a href="/usr/share/gtk-doc/html/glibglib-Datasets.html#GDestroyNotify"><span class="type">GDestroyNotify</span></a>. </p></td>
-<td class="parameter_annotations"><span class="annotation">[<acronym title="This parameter is a 'user_data', for callbacks; many bindings can pass NULL here."><span class="acronym">closure</span></acronym> user_data]</span></td>
-</tr>
-</tbody>
-</table></div>
-</div>
 </div>
 <hr>
 <div class="refsect2">
 <a name="gst-video-codec-frame-get-user-data"></a><h3>gst_video_codec_frame_get_user_data ()</h3>
 <pre class="programlisting"><a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#gpointer"><span class="returnvalue">gpointer</span></a>
 gst_video_codec_frame_get_user_data (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstvideoutils.html#GstVideoCodecFrame" title="struct GstVideoCodecFrame"><span class="type">GstVideoCodecFrame</span></a> *frame</code></em>);</pre>
-<p>Gets private data set on the frame by the subclass via
-<a class="link" href="gst-plugins-base-libs-gstvideoutils.html#gst-video-codec-frame-set-user-data" title="gst_video_codec_frame_set_user_data ()"><code class="function">gst_video_codec_frame_set_user_data()</code></a> previously.</p>
-<div class="refsect3">
-<a name="gst-video-codec-frame-get-user-data.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>frame</p></td>
-<td class="parameter_description"><p>a <a class="link" href="gst-plugins-base-libs-gstvideoutils.html#GstVideoCodecFrame" title="struct GstVideoCodecFrame"><span class="type">GstVideoCodecFrame</span></a></p></td>
-<td class="parameter_annotations"> </td>
-</tr></tbody>
-</table></div>
-</div>
-<div class="refsect3">
-<a name="gst-video-codec-frame-get-user-data.returns"></a><h4>Returns</h4>
-<p> The previously set user_data. </p>
-<p><span class="annotation">[<acronym title="Don't free data after the code is done."><span class="acronym">transfer none</span></acronym>]</span></p>
-</div>
 </div>
 <hr>
 <div class="refsect2">
 <a name="gst-video-codec-state-ref"></a><h3>gst_video_codec_state_ref ()</h3>
 <pre class="programlisting"><a class="link" href="gst-plugins-base-libs-gstvideoutils.html#GstVideoCodecState" title="struct GstVideoCodecState"><span class="returnvalue">GstVideoCodecState</span></a> *
 gst_video_codec_state_ref (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstvideoutils.html#GstVideoCodecState" title="struct GstVideoCodecState"><span class="type">GstVideoCodecState</span></a> *state</code></em>);</pre>
-<p>Increases the refcount of the given state by one.</p>
-<div class="refsect3">
-<a name="gst-video-codec-state-ref.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>state</p></td>
-<td class="parameter_description"><p>a <a class="link" href="gst-plugins-base-libs-gstvideoutils.html#GstVideoCodecState" title="struct GstVideoCodecState"><span class="type">GstVideoCodecState</span></a></p></td>
-<td class="parameter_annotations"> </td>
-</tr></tbody>
-</table></div>
-</div>
-<div class="refsect3">
-<a name="gst-video-codec-state-ref.returns"></a><h4>Returns</h4>
-<p> <em class="parameter"><code>buf</code></em>
-</p>
-</div>
 </div>
 <hr>
 <div class="refsect2">
 <a name="gst-video-codec-state-unref"></a><h3>gst_video_codec_state_unref ()</h3>
 <pre class="programlisting"><span class="returnvalue">void</span>
 gst_video_codec_state_unref (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstvideoutils.html#GstVideoCodecState" title="struct GstVideoCodecState"><span class="type">GstVideoCodecState</span></a> *state</code></em>);</pre>
-<p>Decreases the refcount of the state. If the refcount reaches 0, the state
-will be freed.</p>
-<div class="refsect3">
-<a name="gst-video-codec-state-unref.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>state</p></td>
-<td class="parameter_description"><p>a <a class="link" href="gst-plugins-base-libs-gstvideoutils.html#GstVideoCodecState" title="struct GstVideoCodecState"><span class="type">GstVideoCodecState</span></a></p></td>
-<td class="parameter_annotations"> </td>
-</tr></tbody>
-</table></div>
-</div>
 </div>
 </div>
 <div class="refsect1">
@@ -684,87 +357,10 @@
   GstClockTime deadline; /* D */
 };
 </pre>
-<p>A <a class="link" href="gst-plugins-base-libs-gstvideoutils.html#GstVideoCodecFrame" title="struct GstVideoCodecFrame"><span class="type">GstVideoCodecFrame</span></a> represents a video frame both in raw and
-encoded form.</p>
-<div class="refsect3">
-<a name="GstVideoCodecFrame.members"></a><h4>Members</h4>
-<div class="informaltable"><table class="informaltable" width="100%" border="0">
-<colgroup>
-<col width="300px" class="struct_members_name">
-<col class="struct_members_description">
-<col width="200px" class="struct_members_annotations">
-</colgroup>
-<tbody>
-<tr>
-<td class="struct_member_name"><p><a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#guint32"><span class="type">guint32</span></a> <em class="structfield"><code><a name="GstVideoCodecFrame.system-frame-number"></a>system_frame_number</code></em>;</p></td>
-<td class="struct_member_description"><p>Unique identifier for the frame. Use this if you need
-to get hold of the frame later (like when data is being decoded).
-Typical usage in decoders is to set this on the opaque value provided
-to the library and get back the frame using <a class="link" href="gst-plugins-base-libs-GstVideoDecoder.html#gst-video-decoder-get-frame" title="gst_video_decoder_get_frame ()"><code class="function">gst_video_decoder_get_frame()</code></a></p></td>
-<td class="struct_member_annotations"> </td>
-</tr>
-<tr>
-<td class="struct_member_name"><p><a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#guint32"><span class="type">guint32</span></a> <em class="structfield"><code><a name="GstVideoCodecFrame.decode-frame-number"></a>decode_frame_number</code></em>;</p></td>
-<td> </td>
-<td> </td>
-</tr>
-<tr>
-<td class="struct_member_name"><p><a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#guint32"><span class="type">guint32</span></a> <em class="structfield"><code><a name="GstVideoCodecFrame.presentation-frame-number"></a>presentation_frame_number</code></em>;</p></td>
-<td> </td>
-<td> </td>
-</tr>
-<tr>
-<td class="struct_member_name"><p><a href="/usr/share/gtk-doc/html/gstreamer-1.0GstClock.html#GstClockTime"><span class="type">GstClockTime</span></a> <em class="structfield"><code><a name="GstVideoCodecFrame.dts"></a>dts</code></em>;</p></td>
-<td class="struct_member_description"><p>Decoding timestamp</p></td>
-<td class="struct_member_annotations"> </td>
-</tr>
-<tr>
-<td class="struct_member_name"><p><a href="/usr/share/gtk-doc/html/gstreamer-1.0GstClock.html#GstClockTime"><span class="type">GstClockTime</span></a> <em class="structfield"><code><a name="GstVideoCodecFrame.pts"></a>pts</code></em>;</p></td>
-<td class="struct_member_description"><p>Presentation timestamp</p></td>
-<td class="struct_member_annotations"> </td>
-</tr>
-<tr>
-<td class="struct_member_name"><p><a href="/usr/share/gtk-doc/html/gstreamer-1.0GstClock.html#GstClockTime"><span class="type">GstClockTime</span></a> <em class="structfield"><code><a name="GstVideoCodecFrame.duration"></a>duration</code></em>;</p></td>
-<td class="struct_member_description"><p>Duration of the frame</p></td>
-<td class="struct_member_annotations"> </td>
-</tr>
-<tr>
-<td class="struct_member_name"><p><span class="type">int</span> <em class="structfield"><code><a name="GstVideoCodecFrame.distance-from-sync"></a>distance_from_sync</code></em>;</p></td>
-<td class="struct_member_description"><p>Distance in frames from the last synchronization point.</p></td>
-<td class="struct_member_annotations"> </td>
-</tr>
-<tr>
-<td class="struct_member_name"><p><a href="/usr/share/gtk-doc/html/gstreamer-1.0GstBuffer.html#GstBuffer-struct"><span class="type">GstBuffer</span></a> *<em class="structfield"><code><a name="GstVideoCodecFrame.input-buffer"></a>input_buffer</code></em>;</p></td>
-<td class="struct_member_description"><p>the input <a href="/usr/share/gtk-doc/html/gstreamer-1.0GstBuffer.html#GstBuffer-struct"><span class="type">GstBuffer</span></a> that created this frame. The buffer is owned
-by the frame and references to the frame instead of the buffer should
-be kept.</p></td>
-<td class="struct_member_annotations"> </td>
-</tr>
-<tr>
-<td class="struct_member_name"><p><a href="/usr/share/gtk-doc/html/gstreamer-1.0GstBuffer.html#GstBuffer-struct"><span class="type">GstBuffer</span></a> *<em class="structfield"><code><a name="GstVideoCodecFrame.output-buffer"></a>output_buffer</code></em>;</p></td>
-<td class="struct_member_description"><p>the output <a href="/usr/share/gtk-doc/html/gstreamer-1.0GstBuffer.html#GstBuffer-struct"><span class="type">GstBuffer</span></a>. Implementations should set this either
-directly, or by using the
-<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-GstVideoDecoder.html#gst-video-decoder-allocate-output-frame" title="gst_video_decoder_allocate_output_frame ()"><code class="function">gst_video_decoder_allocate_output_frame()</code></a></code></em>
-or
-<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-GstVideoDecoder.html#gst-video-decoder-allocate-output-buffer" title="gst_video_decoder_allocate_output_buffer ()"><code class="function">gst_video_decoder_allocate_output_buffer()</code></a></code></em>
-methods. The buffer is
-owned by the frame and references to the frame instead of the
-buffer should be kept.</p></td>
-<td class="struct_member_annotations"> </td>
-</tr>
-<tr>
-<td class="struct_member_name"><p><a href="/usr/share/gtk-doc/html/gstreamer-1.0GstClock.html#GstClockTime"><span class="type">GstClockTime</span></a> <em class="structfield"><code><a name="GstVideoCodecFrame.deadline"></a>deadline</code></em>;</p></td>
-<td class="struct_member_description"><p>Running time when the frame will be used.</p></td>
-<td class="struct_member_annotations"> </td>
-</tr>
-</tbody>
-</table></div>
-</div>
 </div>
 <hr>
 <div class="refsect2">
 <a name="GstVideoCodecFrameFlags"></a><h3>enum GstVideoCodecFrameFlags</h3>
-<p>Flags for <a class="link" href="gst-plugins-base-libs-gstvideoutils.html#GstVideoCodecFrame" title="struct GstVideoCodecFrame"><span class="type">GstVideoCodecFrame</span></a></p>
 <div class="refsect3">
 <a name="GstVideoCodecFrameFlags.members"></a><h4>Members</h4>
 <div class="informaltable"><table class="informaltable" width="100%" border="0">
@@ -776,31 +372,23 @@
 <tbody>
 <tr>
 <td class="enum_member_name"><p><a name="GST-VIDEO-CODEC-FRAME-FLAG-DECODE-ONLY:CAPS"></a>GST_VIDEO_CODEC_FRAME_FLAG_DECODE_ONLY</p></td>
-<td class="enum_member_description">
-<p>is the frame only meant to be decoded</p>
-</td>
-<td class="enum_member_annotations"> </td>
+<td> </td>
+<td> </td>
 </tr>
 <tr>
 <td class="enum_member_name"><p><a name="GST-VIDEO-CODEC-FRAME-FLAG-SYNC-POINT:CAPS"></a>GST_VIDEO_CODEC_FRAME_FLAG_SYNC_POINT</p></td>
-<td class="enum_member_description">
-<p>is the frame a synchronization point (keyframe)</p>
-</td>
-<td class="enum_member_annotations"> </td>
+<td> </td>
+<td> </td>
 </tr>
 <tr>
 <td class="enum_member_name"><p><a name="GST-VIDEO-CODEC-FRAME-FLAG-FORCE-KEYFRAME:CAPS"></a>GST_VIDEO_CODEC_FRAME_FLAG_FORCE_KEYFRAME</p></td>
-<td class="enum_member_description">
-<p>should the output frame be made a keyframe</p>
-</td>
-<td class="enum_member_annotations"> </td>
+<td> </td>
+<td> </td>
 </tr>
 <tr>
 <td class="enum_member_name"><p><a name="GST-VIDEO-CODEC-FRAME-FLAG-FORCE-KEYFRAME-HEADERS:CAPS"></a>GST_VIDEO_CODEC_FRAME_FLAG_FORCE_KEYFRAME_HEADERS</p></td>
-<td class="enum_member_description">
-<p>should the encoder output stream headers</p>
-</td>
-<td class="enum_member_annotations"> </td>
+<td> </td>
+<td> </td>
 </tr>
 </tbody>
 </table></div>
@@ -815,46 +403,10 @@
   GstCaps *caps;
 
   GstBuffer *codec_data;
+
+  GstCaps *allocation_caps;
 };
 </pre>
-<p>Structure representing the state of an incoming or outgoing video
-stream for encoders and decoders.</p>
-<p>Decoders and encoders will receive such a state through their
-respective <em class="parameter"><code>set_format</code></em>
- vmethods.</p>
-<p>Decoders and encoders can set the downstream state, by using the
-<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-GstVideoDecoder.html#gst-video-decoder-set-output-state" title="gst_video_decoder_set_output_state ()"><code class="function">gst_video_decoder_set_output_state()</code></a></code></em>
- or
-<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-GstVideoEncoder.html#gst-video-encoder-set-output-state" title="gst_video_encoder_set_output_state ()"><code class="function">gst_video_encoder_set_output_state()</code></a></code></em>
- methods.</p>
-<div class="refsect3">
-<a name="GstVideoCodecState.members"></a><h4>Members</h4>
-<div class="informaltable"><table class="informaltable" width="100%" border="0">
-<colgroup>
-<col width="300px" class="struct_members_name">
-<col class="struct_members_description">
-<col width="200px" class="struct_members_annotations">
-</colgroup>
-<tbody>
-<tr>
-<td class="struct_member_name"><p><a class="link" href="gst-plugins-base-libs-gstvideo.html#GstVideoInfo" title="struct GstVideoInfo"><span class="type">GstVideoInfo</span></a> <em class="structfield"><code><a name="GstVideoCodecState.info"></a>info</code></em>;</p></td>
-<td class="struct_member_description"><p>The <a class="link" href="gst-plugins-base-libs-gstvideo.html#GstVideoInfo" title="struct GstVideoInfo"><span class="type">GstVideoInfo</span></a> describing the stream</p></td>
-<td class="struct_member_annotations"> </td>
-</tr>
-<tr>
-<td class="struct_member_name"><p><a href="/usr/share/gtk-doc/html/gstreamer-1.0GstCaps.html#GstCaps-struct"><span class="type">GstCaps</span></a> *<em class="structfield"><code><a name="GstVideoCodecState.caps"></a>caps</code></em>;</p></td>
-<td class="struct_member_description"><p>The <a href="/usr/share/gtk-doc/html/gstreamer-1.0GstCaps.html#GstCaps-struct"><span class="type">GstCaps</span></a></p></td>
-<td class="struct_member_annotations"> </td>
-</tr>
-<tr>
-<td class="struct_member_name"><p><a href="/usr/share/gtk-doc/html/gstreamer-1.0GstBuffer.html#GstBuffer-struct"><span class="type">GstBuffer</span></a> *<em class="structfield"><code><a name="GstVideoCodecState.codec-data"></a>codec_data</code></em>;</p></td>
-<td class="struct_member_description"><p>a <a href="/usr/share/gtk-doc/html/gstreamer-1.0GstBuffer.html#GstBuffer-struct"><span class="type">GstBuffer</span></a> corresponding to the
-'codec_data' field of a stream, or NULL.</p></td>
-<td class="struct_member_annotations"> </td>
-</tr>
-</tbody>
-</table></div>
-</div>
 </div>
 </div>
 </div>
diff --git a/docs/libs/html/gstreamer-allocators.html b/docs/libs/html/gstreamer-allocators.html
index 0dd9880..817dc83 100644
--- a/docs/libs/html/gstreamer-allocators.html
+++ b/docs/libs/html/gstreamer-allocators.html
@@ -24,10 +24,10 @@
 <a name="gstreamer-allocators"></a>Allocators Library</h2></div></div></div>
 <div class="toc"><dl class="toc">
 <dt>
-<span class="refentrytitle"><a href="gst-plugins-base-libs-dmabuf.html">dmabuf</a></span><span class="refpurpose"> — Memory wrapper for Linux dmabuf memory</span>
+<span class="refentrytitle"><a href="gst-plugins-base-libs-dmabuf.html">dmabuf</a></span><span class="refpurpose"></span>
 </dt>
 <dt>
-<span class="refentrytitle"><a href="gst-plugins-base-libs-fdmemory.html">fdmemory</a></span><span class="refpurpose"> — Memory wrapper for fd backed memory</span>
+<span class="refentrytitle"><a href="gst-plugins-base-libs-fdmemory.html">fdmemory</a></span><span class="refpurpose"></span>
 </dt>
 </dl></div>
 <p>
diff --git a/docs/libs/html/gstreamer-app.html b/docs/libs/html/gstreamer-app.html
index d85f9bb..1368d95 100644
--- a/docs/libs/html/gstreamer-app.html
+++ b/docs/libs/html/gstreamer-app.html
@@ -24,12 +24,10 @@
 <a name="gstreamer-app"></a>App Library</h2></div></div></div>
 <div class="toc"><dl class="toc">
 <dt>
-<span class="refentrytitle"><a href="gst-plugins-base-libs-appsrc.html">appsrc</a></span><span class="refpurpose"> — Easy way for applications to inject buffers into a
-    pipeline</span>
+<span class="refentrytitle"><a href="gst-plugins-base-libs-appsrc.html">appsrc</a></span><span class="refpurpose"></span>
 </dt>
 <dt>
-<span class="refentrytitle"><a href="gst-plugins-base-libs-appsink.html">appsink</a></span><span class="refpurpose"> — Easy way for applications to extract samples from a
-    pipeline</span>
+<span class="refentrytitle"><a href="gst-plugins-base-libs-appsink.html">appsink</a></span><span class="refpurpose"></span>
 </dt>
 </dl></div>
 <p>
diff --git a/docs/libs/html/gstreamer-audio.html b/docs/libs/html/gstreamer-audio.html
index 362ba84..c7200a3 100644
--- a/docs/libs/html/gstreamer-audio.html
+++ b/docs/libs/html/gstreamer-audio.html
@@ -24,40 +24,40 @@
 <a name="gstreamer-audio"></a>Audio Library</h2></div></div></div>
 <div class="toc"><dl class="toc">
 <dt>
-<span class="refentrytitle"><a href="gst-plugins-base-libs-gstaudio.html">gstaudio</a></span><span class="refpurpose"> — Support library for audio elements</span>
+<span class="refentrytitle"><a href="gst-plugins-base-libs-gstaudio.html">gstaudio</a></span><span class="refpurpose"></span>
 </dt>
 <dt>
-<span class="refentrytitle"><a href="gst-plugins-base-libs-gstaudiometa.html">gstaudiometa</a></span><span class="refpurpose"> — Buffer metadata for audio downmix matrix handling</span>
+<span class="refentrytitle"><a href="gst-plugins-base-libs-gstaudiometa.html">gstaudiometa</a></span><span class="refpurpose"></span>
 </dt>
 <dt>
-<span class="refentrytitle"><a href="gst-plugins-base-libs-gstaudiocdsrc.html">gstaudiocdsrc</a></span><span class="refpurpose"> — Base class for Audio CD sources</span>
+<span class="refentrytitle"><a href="gst-plugins-base-libs-gstaudiocdsrc.html">gstaudiocdsrc</a></span><span class="refpurpose"></span>
 </dt>
 <dt>
-<span class="refentrytitle"><a href="gst-plugins-base-libs-gstaudioclock.html">gstaudioclock</a></span><span class="refpurpose"> — Helper object for implementing audio clocks</span>
+<span class="refentrytitle"><a href="gst-plugins-base-libs-gstaudioclock.html">gstaudioclock</a></span><span class="refpurpose"></span>
 </dt>
 <dt>
-<span class="refentrytitle"><a href="gst-plugins-base-libs-gstaudiodecoder.html">gstaudiodecoder</a></span><span class="refpurpose"> — Base class for audio decoders</span>
+<span class="refentrytitle"><a href="gst-plugins-base-libs-gstaudiodecoder.html">gstaudiodecoder</a></span><span class="refpurpose"></span>
 </dt>
 <dt>
-<span class="refentrytitle"><a href="gst-plugins-base-libs-gstaudioencoder.html">gstaudioencoder</a></span><span class="refpurpose"> — Base class for audio encoders</span>
+<span class="refentrytitle"><a href="gst-plugins-base-libs-gstaudioencoder.html">gstaudioencoder</a></span><span class="refpurpose"></span>
 </dt>
 <dt>
-<span class="refentrytitle"><a href="gst-plugins-base-libs-gstaudiofilter.html">gstaudiofilter</a></span><span class="refpurpose"> — Base class for simple audio filters</span>
+<span class="refentrytitle"><a href="gst-plugins-base-libs-gstaudiofilter.html">gstaudiofilter</a></span><span class="refpurpose"></span>
 </dt>
 <dt>
-<span class="refentrytitle"><a href="gst-plugins-base-libs-gstaudiosink.html">gstaudiosink</a></span><span class="refpurpose"> — Simple base class for audio sinks</span>
+<span class="refentrytitle"><a href="gst-plugins-base-libs-gstaudiosink.html">gstaudiosink</a></span><span class="refpurpose"></span>
 </dt>
 <dt>
-<span class="refentrytitle"><a href="gst-plugins-base-libs-gstaudiosrc.html">gstaudiosrc</a></span><span class="refpurpose"> — Simple base class for audio sources</span>
+<span class="refentrytitle"><a href="gst-plugins-base-libs-gstaudiosrc.html">gstaudiosrc</a></span><span class="refpurpose"></span>
 </dt>
 <dt>
-<span class="refentrytitle"><a href="gst-plugins-base-libs-gstaudiobasesink.html">gstaudiobasesink</a></span><span class="refpurpose"> — Base class for audio sinks</span>
+<span class="refentrytitle"><a href="gst-plugins-base-libs-gstaudiobasesink.html">gstaudiobasesink</a></span><span class="refpurpose"></span>
 </dt>
 <dt>
-<span class="refentrytitle"><a href="gst-plugins-base-libs-gstaudiobasesrc.html">gstaudiobasesrc</a></span><span class="refpurpose"> — Base class for audio sources</span>
+<span class="refentrytitle"><a href="gst-plugins-base-libs-gstaudiobasesrc.html">gstaudiobasesrc</a></span><span class="refpurpose"></span>
 </dt>
 <dt>
-<span class="refentrytitle"><a href="gst-plugins-base-libs-gstaudiochannels.html">gstaudiochannels</a></span><span class="refpurpose"> — Support library for audio channel handling</span>
+<span class="refentrytitle"><a href="gst-plugins-base-libs-gstaudiochannels.html">gstaudiochannels</a></span><span class="refpurpose"></span>
 </dt>
 <dt>
 <span class="refentrytitle"><a href="gst-plugins-base-libs-GstAudioConverter.html">GstAudioConverter</a></span><span class="refpurpose"></span>
@@ -66,13 +66,13 @@
 <span class="refentrytitle"><a href="gst-plugins-base-libs-GstAudioQuantize.html">GstAudioQuantize</a></span><span class="refpurpose"></span>
 </dt>
 <dt>
-<span class="refentrytitle"><a href="gst-plugins-base-libs-gstaudioringbuffer.html">gstaudioringbuffer</a></span><span class="refpurpose"> — Base class for audio ringbuffer implementations</span>
+<span class="refentrytitle"><a href="gst-plugins-base-libs-gstaudioringbuffer.html">gstaudioringbuffer</a></span><span class="refpurpose"></span>
 </dt>
 <dt>
-<span class="refentrytitle"><a href="gst-plugins-base-libs-gstaudioiec61937.html">gstaudioiec61937</a></span><span class="refpurpose"> — Utility functions for IEC 61937 payloading</span>
+<span class="refentrytitle"><a href="gst-plugins-base-libs-gstaudioiec61937.html">gstaudioiec61937</a></span><span class="refpurpose"></span>
 </dt>
 <dt>
-<span class="refentrytitle"><a href="gst-plugins-base-libs-gststreamvolume.html">gststreamvolume</a></span><span class="refpurpose"> — Interface for elements that provide a stream volume</span>
+<span class="refentrytitle"><a href="gst-plugins-base-libs-gststreamvolume.html">gststreamvolume</a></span><span class="refpurpose"></span>
 </dt>
 </dl></div>
 <p>
diff --git a/docs/libs/html/gstreamer-base-utils.html b/docs/libs/html/gstreamer-base-utils.html
index 07a9261..ecd44fe 100644
--- a/docs/libs/html/gstreamer-base-utils.html
+++ b/docs/libs/html/gstreamer-base-utils.html
@@ -24,29 +24,28 @@
 <a name="gstreamer-base-utils"></a>Base Utils Library</h2></div></div></div>
 <div class="toc"><dl class="toc">
 <dt>
-<span class="refentrytitle"><a href="gst-plugins-base-libs-gstpbutils.html">gstpbutils</a></span><span class="refpurpose"> — General Application and Plugin Utility Library</span>
+<span class="refentrytitle"><a href="gst-plugins-base-libs-gstpbutils.html">gstpbutils</a></span><span class="refpurpose"></span>
 </dt>
 <dt>
-<span class="refentrytitle"><a href="gst-plugins-base-libs-gstpluginsbaseversion.html">gstpluginsbaseversion</a></span><span class="refpurpose"> — GStreamer gst-plugins-base libraries version macros.</span>
+<span class="refentrytitle"><a href="gst-plugins-base-libs-gstpluginsbaseversion.html">gstpluginsbaseversion</a></span><span class="refpurpose"></span>
 </dt>
 <dt>
-<span class="refentrytitle"><a href="gst-plugins-base-libs-gstpbutilscodecutils.html">gstpbutilscodecutils</a></span><span class="refpurpose"> — Miscellaneous codec-specific utility functions</span>
+<span class="refentrytitle"><a href="gst-plugins-base-libs-gstpbutilscodecutils.html">gstpbutilscodecutils</a></span><span class="refpurpose"></span>
 </dt>
 <dt>
-<span class="refentrytitle"><a href="gst-plugins-base-libs-gstpbutilsdescriptions.html">gstpbutilsdescriptions</a></span><span class="refpurpose"> — Provides human-readable descriptions for caps/codecs
-and encoder, decoder, URI source and URI sink elements</span>
+<span class="refentrytitle"><a href="gst-plugins-base-libs-gstpbutilsdescriptions.html">gstpbutilsdescriptions</a></span><span class="refpurpose"></span>
 </dt>
 <dt>
-<span class="refentrytitle"><a href="gst-plugins-base-libs-gstpbutilsmissingplugins.html">gstpbutilsmissingplugins</a></span><span class="refpurpose"> — Create, recognise and parse missing-plugins messages</span>
+<span class="refentrytitle"><a href="gst-plugins-base-libs-gstpbutilsmissingplugins.html">gstpbutilsmissingplugins</a></span><span class="refpurpose"></span>
 </dt>
 <dt>
-<span class="refentrytitle"><a href="gst-plugins-base-libs-gstpbutilsinstallplugins.html">gstpbutilsinstallplugins</a></span><span class="refpurpose"> — Missing plugin installation support for applications</span>
+<span class="refentrytitle"><a href="gst-plugins-base-libs-gstpbutilsinstallplugins.html">gstpbutilsinstallplugins</a></span><span class="refpurpose"></span>
 </dt>
 <dt>
-<span class="refentrytitle"><a href="gst-plugins-base-libs-gstdiscoverer.html">gstdiscoverer</a></span><span class="refpurpose"> — Utility for discovering information on URIs.</span>
+<span class="refentrytitle"><a href="gst-plugins-base-libs-gstdiscoverer.html">gstdiscoverer</a></span><span class="refpurpose"></span>
 </dt>
 <dt>
-<span class="refentrytitle"><a href="gst-plugins-base-libs-encoding-profile.html">encoding-profile</a></span><span class="refpurpose"> — Encoding profile library</span>
+<span class="refentrytitle"><a href="gst-plugins-base-libs-encoding-profile.html">encoding-profile</a></span><span class="refpurpose"></span>
 </dt>
 </dl></div>
 <p>
diff --git a/docs/libs/html/gstreamer-ffft.html b/docs/libs/html/gstreamer-ffft.html
index 8f738b6..eef9b59 100644
--- a/docs/libs/html/gstreamer-ffft.html
+++ b/docs/libs/html/gstreamer-ffft.html
@@ -24,19 +24,19 @@
 <a name="gstreamer-ffft"></a>FFT Library</h2></div></div></div>
 <div class="toc"><dl class="toc">
 <dt>
-<span class="refentrytitle"><a href="gst-plugins-base-libs-gstfft.html">gstfft</a></span><span class="refpurpose"> — General FFT functions and declarations</span>
+<span class="refentrytitle"><a href="gst-plugins-base-libs-gstfft.html">gstfft</a></span><span class="refpurpose"></span>
 </dt>
 <dt>
-<span class="refentrytitle"><a href="gst-plugins-base-libs-gstffts16.html">gstffts16</a></span><span class="refpurpose"> — FFT functions for signed 16 bit integer samples</span>
+<span class="refentrytitle"><a href="gst-plugins-base-libs-gstffts16.html">gstffts16</a></span><span class="refpurpose"></span>
 </dt>
 <dt>
-<span class="refentrytitle"><a href="gst-plugins-base-libs-gstffts32.html">gstffts32</a></span><span class="refpurpose"> — FFT functions for signed 32 bit integer samples</span>
+<span class="refentrytitle"><a href="gst-plugins-base-libs-gstffts32.html">gstffts32</a></span><span class="refpurpose"></span>
 </dt>
 <dt>
-<span class="refentrytitle"><a href="gst-plugins-base-libs-gstfftf32.html">gstfftf32</a></span><span class="refpurpose"> — FFT functions for 32 bit float samples</span>
+<span class="refentrytitle"><a href="gst-plugins-base-libs-gstfftf32.html">gstfftf32</a></span><span class="refpurpose"></span>
 </dt>
 <dt>
-<span class="refentrytitle"><a href="gst-plugins-base-libs-gstfftf64.html">gstfftf64</a></span><span class="refpurpose"> — FFT functions for 64 bit float samples</span>
+<span class="refentrytitle"><a href="gst-plugins-base-libs-gstfftf64.html">gstfftf64</a></span><span class="refpurpose"></span>
 </dt>
 </dl></div>
 <p>
diff --git a/docs/libs/html/gstreamer-mikey.html b/docs/libs/html/gstreamer-mikey.html
index 4f88121..e2b5e16 100644
--- a/docs/libs/html/gstreamer-mikey.html
+++ b/docs/libs/html/gstreamer-mikey.html
@@ -23,7 +23,7 @@
 <div class="titlepage"><div><div><h2 class="title">
 <a name="gstreamer-mikey"></a>MIKEY Library</h2></div></div></div>
 <div class="toc"><dl class="toc"><dt>
-<span class="refentrytitle"><a href="gst-plugins-base-libs-gstmikey.html">gstmikey</a></span><span class="refpurpose"> — Helper methods for dealing with MIKEY messages</span>
+<span class="refentrytitle"><a href="gst-plugins-base-libs-gstmikey.html">gstmikey</a></span><span class="refpurpose"></span>
 </dt></dl></div>
 <p>
         This library should be linked to by getting cflags and libs from
diff --git a/docs/libs/html/gstreamer-plugins-base.html b/docs/libs/html/gstreamer-plugins-base.html
index fcf5bf1..d14b311 100644
--- a/docs/libs/html/gstreamer-plugins-base.html
+++ b/docs/libs/html/gstreamer-plugins-base.html
@@ -33,60 +33,58 @@
 <dt><span class="chapter"><a href="gstreamer-allocators.html">Allocators Library</a></span></dt>
 <dd><dl>
 <dt>
-<span class="refentrytitle"><a href="gst-plugins-base-libs-dmabuf.html">dmabuf</a></span><span class="refpurpose"> — Memory wrapper for Linux dmabuf memory</span>
+<span class="refentrytitle"><a href="gst-plugins-base-libs-dmabuf.html">dmabuf</a></span><span class="refpurpose"></span>
 </dt>
 <dt>
-<span class="refentrytitle"><a href="gst-plugins-base-libs-fdmemory.html">fdmemory</a></span><span class="refpurpose"> — Memory wrapper for fd backed memory</span>
+<span class="refentrytitle"><a href="gst-plugins-base-libs-fdmemory.html">fdmemory</a></span><span class="refpurpose"></span>
 </dt>
 </dl></dd>
 <dt><span class="chapter"><a href="gstreamer-app.html">App Library</a></span></dt>
 <dd><dl>
 <dt>
-<span class="refentrytitle"><a href="gst-plugins-base-libs-appsrc.html">appsrc</a></span><span class="refpurpose"> — Easy way for applications to inject buffers into a
-    pipeline</span>
+<span class="refentrytitle"><a href="gst-plugins-base-libs-appsrc.html">appsrc</a></span><span class="refpurpose"></span>
 </dt>
 <dt>
-<span class="refentrytitle"><a href="gst-plugins-base-libs-appsink.html">appsink</a></span><span class="refpurpose"> — Easy way for applications to extract samples from a
-    pipeline</span>
+<span class="refentrytitle"><a href="gst-plugins-base-libs-appsink.html">appsink</a></span><span class="refpurpose"></span>
 </dt>
 </dl></dd>
 <dt><span class="chapter"><a href="gstreamer-audio.html">Audio Library</a></span></dt>
 <dd><dl>
 <dt>
-<span class="refentrytitle"><a href="gst-plugins-base-libs-gstaudio.html">gstaudio</a></span><span class="refpurpose"> — Support library for audio elements</span>
+<span class="refentrytitle"><a href="gst-plugins-base-libs-gstaudio.html">gstaudio</a></span><span class="refpurpose"></span>
 </dt>
 <dt>
-<span class="refentrytitle"><a href="gst-plugins-base-libs-gstaudiometa.html">gstaudiometa</a></span><span class="refpurpose"> — Buffer metadata for audio downmix matrix handling</span>
+<span class="refentrytitle"><a href="gst-plugins-base-libs-gstaudiometa.html">gstaudiometa</a></span><span class="refpurpose"></span>
 </dt>
 <dt>
-<span class="refentrytitle"><a href="gst-plugins-base-libs-gstaudiocdsrc.html">gstaudiocdsrc</a></span><span class="refpurpose"> — Base class for Audio CD sources</span>
+<span class="refentrytitle"><a href="gst-plugins-base-libs-gstaudiocdsrc.html">gstaudiocdsrc</a></span><span class="refpurpose"></span>
 </dt>
 <dt>
-<span class="refentrytitle"><a href="gst-plugins-base-libs-gstaudioclock.html">gstaudioclock</a></span><span class="refpurpose"> — Helper object for implementing audio clocks</span>
+<span class="refentrytitle"><a href="gst-plugins-base-libs-gstaudioclock.html">gstaudioclock</a></span><span class="refpurpose"></span>
 </dt>
 <dt>
-<span class="refentrytitle"><a href="gst-plugins-base-libs-gstaudiodecoder.html">gstaudiodecoder</a></span><span class="refpurpose"> — Base class for audio decoders</span>
+<span class="refentrytitle"><a href="gst-plugins-base-libs-gstaudiodecoder.html">gstaudiodecoder</a></span><span class="refpurpose"></span>
 </dt>
 <dt>
-<span class="refentrytitle"><a href="gst-plugins-base-libs-gstaudioencoder.html">gstaudioencoder</a></span><span class="refpurpose"> — Base class for audio encoders</span>
+<span class="refentrytitle"><a href="gst-plugins-base-libs-gstaudioencoder.html">gstaudioencoder</a></span><span class="refpurpose"></span>
 </dt>
 <dt>
-<span class="refentrytitle"><a href="gst-plugins-base-libs-gstaudiofilter.html">gstaudiofilter</a></span><span class="refpurpose"> — Base class for simple audio filters</span>
+<span class="refentrytitle"><a href="gst-plugins-base-libs-gstaudiofilter.html">gstaudiofilter</a></span><span class="refpurpose"></span>
 </dt>
 <dt>
-<span class="refentrytitle"><a href="gst-plugins-base-libs-gstaudiosink.html">gstaudiosink</a></span><span class="refpurpose"> — Simple base class for audio sinks</span>
+<span class="refentrytitle"><a href="gst-plugins-base-libs-gstaudiosink.html">gstaudiosink</a></span><span class="refpurpose"></span>
 </dt>
 <dt>
-<span class="refentrytitle"><a href="gst-plugins-base-libs-gstaudiosrc.html">gstaudiosrc</a></span><span class="refpurpose"> — Simple base class for audio sources</span>
+<span class="refentrytitle"><a href="gst-plugins-base-libs-gstaudiosrc.html">gstaudiosrc</a></span><span class="refpurpose"></span>
 </dt>
 <dt>
-<span class="refentrytitle"><a href="gst-plugins-base-libs-gstaudiobasesink.html">gstaudiobasesink</a></span><span class="refpurpose"> — Base class for audio sinks</span>
+<span class="refentrytitle"><a href="gst-plugins-base-libs-gstaudiobasesink.html">gstaudiobasesink</a></span><span class="refpurpose"></span>
 </dt>
 <dt>
-<span class="refentrytitle"><a href="gst-plugins-base-libs-gstaudiobasesrc.html">gstaudiobasesrc</a></span><span class="refpurpose"> — Base class for audio sources</span>
+<span class="refentrytitle"><a href="gst-plugins-base-libs-gstaudiobasesrc.html">gstaudiobasesrc</a></span><span class="refpurpose"></span>
 </dt>
 <dt>
-<span class="refentrytitle"><a href="gst-plugins-base-libs-gstaudiochannels.html">gstaudiochannels</a></span><span class="refpurpose"> — Support library for audio channel handling</span>
+<span class="refentrytitle"><a href="gst-plugins-base-libs-gstaudiochannels.html">gstaudiochannels</a></span><span class="refpurpose"></span>
 </dt>
 <dt>
 <span class="refentrytitle"><a href="gst-plugins-base-libs-GstAudioConverter.html">GstAudioConverter</a></span><span class="refpurpose"></span>
@@ -95,164 +93,157 @@
 <span class="refentrytitle"><a href="gst-plugins-base-libs-GstAudioQuantize.html">GstAudioQuantize</a></span><span class="refpurpose"></span>
 </dt>
 <dt>
-<span class="refentrytitle"><a href="gst-plugins-base-libs-gstaudioringbuffer.html">gstaudioringbuffer</a></span><span class="refpurpose"> — Base class for audio ringbuffer implementations</span>
+<span class="refentrytitle"><a href="gst-plugins-base-libs-gstaudioringbuffer.html">gstaudioringbuffer</a></span><span class="refpurpose"></span>
 </dt>
 <dt>
-<span class="refentrytitle"><a href="gst-plugins-base-libs-gstaudioiec61937.html">gstaudioiec61937</a></span><span class="refpurpose"> — Utility functions for IEC 61937 payloading</span>
+<span class="refentrytitle"><a href="gst-plugins-base-libs-gstaudioiec61937.html">gstaudioiec61937</a></span><span class="refpurpose"></span>
 </dt>
 <dt>
-<span class="refentrytitle"><a href="gst-plugins-base-libs-gststreamvolume.html">gststreamvolume</a></span><span class="refpurpose"> — Interface for elements that provide a stream volume</span>
+<span class="refentrytitle"><a href="gst-plugins-base-libs-gststreamvolume.html">gststreamvolume</a></span><span class="refpurpose"></span>
 </dt>
 </dl></dd>
 <dt><span class="chapter"><a href="gstreamer-ffft.html">FFT Library</a></span></dt>
 <dd><dl>
 <dt>
-<span class="refentrytitle"><a href="gst-plugins-base-libs-gstfft.html">gstfft</a></span><span class="refpurpose"> — General FFT functions and declarations</span>
+<span class="refentrytitle"><a href="gst-plugins-base-libs-gstfft.html">gstfft</a></span><span class="refpurpose"></span>
 </dt>
 <dt>
-<span class="refentrytitle"><a href="gst-plugins-base-libs-gstffts16.html">gstffts16</a></span><span class="refpurpose"> — FFT functions for signed 16 bit integer samples</span>
+<span class="refentrytitle"><a href="gst-plugins-base-libs-gstffts16.html">gstffts16</a></span><span class="refpurpose"></span>
 </dt>
 <dt>
-<span class="refentrytitle"><a href="gst-plugins-base-libs-gstffts32.html">gstffts32</a></span><span class="refpurpose"> — FFT functions for signed 32 bit integer samples</span>
+<span class="refentrytitle"><a href="gst-plugins-base-libs-gstffts32.html">gstffts32</a></span><span class="refpurpose"></span>
 </dt>
 <dt>
-<span class="refentrytitle"><a href="gst-plugins-base-libs-gstfftf32.html">gstfftf32</a></span><span class="refpurpose"> — FFT functions for 32 bit float samples</span>
+<span class="refentrytitle"><a href="gst-plugins-base-libs-gstfftf32.html">gstfftf32</a></span><span class="refpurpose"></span>
 </dt>
 <dt>
-<span class="refentrytitle"><a href="gst-plugins-base-libs-gstfftf64.html">gstfftf64</a></span><span class="refpurpose"> — FFT functions for 64 bit float samples</span>
+<span class="refentrytitle"><a href="gst-plugins-base-libs-gstfftf64.html">gstfftf64</a></span><span class="refpurpose"></span>
 </dt>
 </dl></dd>
 <dt><span class="chapter"><a href="gstreamer-riff.html">Riff Media Library</a></span></dt>
 <dd><dl><dt>
-<span class="refentrytitle"><a href="gst-plugins-base-libs-gstriff.html">gstriff</a></span><span class="refpurpose"> — Riff fileformat utillity functions.</span>
+<span class="refentrytitle"><a href="gst-plugins-base-libs-gstriff.html">gstriff</a></span><span class="refpurpose"></span>
 </dt></dl></dd>
 <dt><span class="chapter"><a href="gstreamer-rtp.html">RTP Library</a></span></dt>
 <dd><dl>
 <dt>
-<span class="refentrytitle"><a href="gst-plugins-base-libs-gstrtpbaseaudiopayload.html">gstrtpbaseaudiopayload</a></span><span class="refpurpose"> — Base class for audio RTP payloader</span>
+<span class="refentrytitle"><a href="gst-plugins-base-libs-gstrtpbaseaudiopayload.html">gstrtpbaseaudiopayload</a></span><span class="refpurpose"></span>
 </dt>
 <dt>
-<span class="refentrytitle"><a href="gst-plugins-base-libs-gstrtpbasedepayload.html">gstrtpbasedepayload</a></span><span class="refpurpose"> — Base class for RTP depayloader</span>
+<span class="refentrytitle"><a href="gst-plugins-base-libs-gstrtpbasedepayload.html">gstrtpbasedepayload</a></span><span class="refpurpose"></span>
 </dt>
 <dt>
-<span class="refentrytitle"><a href="gst-plugins-base-libs-gstrtpbasepayload.html">gstrtpbasepayload</a></span><span class="refpurpose"> — Base class for RTP payloader</span>
+<span class="refentrytitle"><a href="gst-plugins-base-libs-gstrtpbasepayload.html">gstrtpbasepayload</a></span><span class="refpurpose"></span>
 </dt>
 <dt>
-<span class="refentrytitle"><a href="gst-plugins-base-libs-gstrtpbuffer.html">gstrtpbuffer</a></span><span class="refpurpose"> — Helper methods for dealing with RTP buffers</span>
+<span class="refentrytitle"><a href="gst-plugins-base-libs-gstrtpbuffer.html">gstrtpbuffer</a></span><span class="refpurpose"></span>
 </dt>
 <dt>
-<span class="refentrytitle"><a href="gst-plugins-base-libs-gstrtcpbuffer.html">gstrtcpbuffer</a></span><span class="refpurpose"> — Helper methods for dealing with RTCP buffers</span>
+<span class="refentrytitle"><a href="gst-plugins-base-libs-gstrtcpbuffer.html">gstrtcpbuffer</a></span><span class="refpurpose"></span>
 </dt>
 <dt>
-<span class="refentrytitle"><a href="gst-plugins-base-libs-gstrtppayloads.html">gstrtppayloads</a></span><span class="refpurpose"> — Helper methods for dealing with RTP payloads</span>
+<span class="refentrytitle"><a href="gst-plugins-base-libs-gstrtppayloads.html">gstrtppayloads</a></span><span class="refpurpose"></span>
 </dt>
 <dt>
-<span class="refentrytitle"><a href="gst-plugins-base-libs-gstrtphdrext.html">gstrtphdrext</a></span><span class="refpurpose"> — Helper methods for dealing with RTP header extensions</span>
+<span class="refentrytitle"><a href="gst-plugins-base-libs-gstrtphdrext.html">gstrtphdrext</a></span><span class="refpurpose"></span>
 </dt>
 </dl></dd>
 <dt><span class="chapter"><a href="gstreamer-rtsp.html">RTSP Library</a></span></dt>
 <dd><dl>
 <dt>
-<span class="refentrytitle"><a href="gst-plugins-base-libs-gstrtspconnection.html">gstrtspconnection</a></span><span class="refpurpose"> — manage RTSP connections</span>
+<span class="refentrytitle"><a href="gst-plugins-base-libs-gstrtspconnection.html">gstrtspconnection</a></span><span class="refpurpose"></span>
 </dt>
 <dt>
-<span class="refentrytitle"><a href="gst-plugins-base-libs-gstrtspdefs.html">gstrtspdefs</a></span><span class="refpurpose"> — common RTSP defines</span>
+<span class="refentrytitle"><a href="gst-plugins-base-libs-gstrtspdefs.html">gstrtspdefs</a></span><span class="refpurpose"></span>
 </dt>
 <dt>
-<span class="refentrytitle"><a href="gst-plugins-base-libs-gstrtspextension.html">gstrtspextension</a></span><span class="refpurpose"> — Interface for extending RTSP protocols</span>
+<span class="refentrytitle"><a href="gst-plugins-base-libs-gstrtspextension.html">gstrtspextension</a></span><span class="refpurpose"></span>
 </dt>
 <dt>
-<span class="refentrytitle"><a href="gst-plugins-base-libs-gstrtspmessage.html">gstrtspmessage</a></span><span class="refpurpose"> — RTSP messages</span>
+<span class="refentrytitle"><a href="gst-plugins-base-libs-gstrtspmessage.html">gstrtspmessage</a></span><span class="refpurpose"></span>
 </dt>
 <dt>
-<span class="refentrytitle"><a href="gst-plugins-base-libs-gstrtsprange.html">gstrtsprange</a></span><span class="refpurpose"> — dealing with time ranges</span>
+<span class="refentrytitle"><a href="gst-plugins-base-libs-gstrtsprange.html">gstrtsprange</a></span><span class="refpurpose"></span>
 </dt>
 <dt>
-<span class="refentrytitle"><a href="gst-plugins-base-libs-gstrtsptransport.html">gstrtsptransport</a></span><span class="refpurpose"> — dealing with RTSP transports</span>
+<span class="refentrytitle"><a href="gst-plugins-base-libs-gstrtsptransport.html">gstrtsptransport</a></span><span class="refpurpose"></span>
 </dt>
 <dt>
-<span class="refentrytitle"><a href="gst-plugins-base-libs-gstrtspurl.html">gstrtspurl</a></span><span class="refpurpose"> — handling RTSP urls</span>
+<span class="refentrytitle"><a href="gst-plugins-base-libs-gstrtspurl.html">gstrtspurl</a></span><span class="refpurpose"></span>
 </dt>
 </dl></dd>
 <dt><span class="chapter"><a href="gstreamer-sdp.html">SDP Library</a></span></dt>
 <dd><dl><dt>
-<span class="refentrytitle"><a href="gst-plugins-base-libs-gstsdpmessage.html">gstsdpmessage</a></span><span class="refpurpose"> — Helper methods for dealing with SDP messages</span>
+<span class="refentrytitle"><a href="gst-plugins-base-libs-gstsdpmessage.html">gstsdpmessage</a></span><span class="refpurpose"></span>
 </dt></dl></dd>
 <dt><span class="chapter"><a href="gstreamer-mikey.html">MIKEY Library</a></span></dt>
 <dd><dl><dt>
-<span class="refentrytitle"><a href="gst-plugins-base-libs-gstmikey.html">gstmikey</a></span><span class="refpurpose"> — Helper methods for dealing with MIKEY messages</span>
+<span class="refentrytitle"><a href="gst-plugins-base-libs-gstmikey.html">gstmikey</a></span><span class="refpurpose"></span>
 </dt></dl></dd>
 <dt><span class="chapter"><a href="gstreamer-tag.html">Tag Support Library</a></span></dt>
 <dd><dl>
 <dt>
-<span class="refentrytitle"><a href="gst-plugins-base-libs-gsttag.html">gsttag</a></span><span class="refpurpose"> — additional tag definitions for plugins and applications</span>
+<span class="refentrytitle"><a href="gst-plugins-base-libs-gsttag.html">gsttag</a></span><span class="refpurpose"></span>
 </dt>
 <dt>
-<span class="refentrytitle"><a href="gst-plugins-base-libs-gsttagvorbis.html">gsttagvorbis</a></span><span class="refpurpose"> — tag mappings and support functions for plugins
-                    dealing with vorbiscomments</span>
+<span class="refentrytitle"><a href="gst-plugins-base-libs-gsttagvorbis.html">gsttagvorbis</a></span><span class="refpurpose"></span>
 </dt>
 <dt>
-<span class="refentrytitle"><a href="gst-plugins-base-libs-gsttagid3.html">gsttagid3</a></span><span class="refpurpose"> — tag mappings and support functions for plugins
-                    dealing with ID3v1 and ID3v2 tags</span>
+<span class="refentrytitle"><a href="gst-plugins-base-libs-gsttagid3.html">gsttagid3</a></span><span class="refpurpose"></span>
 </dt>
 <dt>
-<span class="refentrytitle"><a href="gst-plugins-base-libs-gsttagexif.html">gsttagexif</a></span><span class="refpurpose"> — tag mappings and support functions for plugins
-                    dealing with exif tags</span>
+<span class="refentrytitle"><a href="gst-plugins-base-libs-gsttagexif.html">gsttagexif</a></span><span class="refpurpose"></span>
 </dt>
 <dt>
-<span class="refentrytitle"><a href="gst-plugins-base-libs-gsttagxmp.html">gsttagxmp</a></span><span class="refpurpose"> — tag mappings and support functions for plugins
-                    dealing with xmp packets</span>
+<span class="refentrytitle"><a href="gst-plugins-base-libs-gsttagxmp.html">gsttagxmp</a></span><span class="refpurpose"></span>
 </dt>
 <dt>
-<span class="refentrytitle"><a href="gst-plugins-base-libs-gsttagxmpwriter.html">gsttagxmpwriter</a></span><span class="refpurpose"> — Interface for elements that provide XMP serialization</span>
+<span class="refentrytitle"><a href="gst-plugins-base-libs-gsttagxmpwriter.html">gsttagxmpwriter</a></span><span class="refpurpose"></span>
 </dt>
 <dt>
-<span class="refentrytitle"><a href="gst-plugins-base-libs-gsttagdemux.html">gsttagdemux</a></span><span class="refpurpose"> — Base class for demuxing tags that are in chunks
-                    directly at the beginning or at the end of a file</span>
+<span class="refentrytitle"><a href="gst-plugins-base-libs-gsttagdemux.html">gsttagdemux</a></span><span class="refpurpose"></span>
 </dt>
 <dt>
-<span class="refentrytitle"><a href="gst-plugins-base-libs-gsttagmux.html">gsttagmux</a></span><span class="refpurpose"> — Base class for adding tags that are in one single chunk
-                    directly at the beginning or at the end of a file</span>
+<span class="refentrytitle"><a href="gst-plugins-base-libs-gsttagmux.html">gsttagmux</a></span><span class="refpurpose"></span>
 </dt>
 <dt>
-<span class="refentrytitle"><a href="gst-plugins-base-libs-gsttaglanguagecodes.html">gsttaglanguagecodes</a></span><span class="refpurpose"> — mappings for ISO-639 language codes and names</span>
+<span class="refentrytitle"><a href="gst-plugins-base-libs-gsttaglanguagecodes.html">gsttaglanguagecodes</a></span><span class="refpurpose"></span>
 </dt>
 <dt>
-<span class="refentrytitle"><a href="gst-plugins-base-libs-gsttaglicenses.html">gsttaglicenses</a></span><span class="refpurpose"> — utility functions for Creative Commons licenses</span>
+<span class="refentrytitle"><a href="gst-plugins-base-libs-gsttaglicenses.html">gsttaglicenses</a></span><span class="refpurpose"></span>
 </dt>
 </dl></dd>
 <dt><span class="chapter"><a href="gstreamer-base-utils.html">Base Utils Library</a></span></dt>
 <dd><dl>
 <dt>
-<span class="refentrytitle"><a href="gst-plugins-base-libs-gstpbutils.html">gstpbutils</a></span><span class="refpurpose"> — General Application and Plugin Utility Library</span>
+<span class="refentrytitle"><a href="gst-plugins-base-libs-gstpbutils.html">gstpbutils</a></span><span class="refpurpose"></span>
 </dt>
 <dt>
-<span class="refentrytitle"><a href="gst-plugins-base-libs-gstpluginsbaseversion.html">gstpluginsbaseversion</a></span><span class="refpurpose"> — GStreamer gst-plugins-base libraries version macros.</span>
+<span class="refentrytitle"><a href="gst-plugins-base-libs-gstpluginsbaseversion.html">gstpluginsbaseversion</a></span><span class="refpurpose"></span>
 </dt>
 <dt>
-<span class="refentrytitle"><a href="gst-plugins-base-libs-gstpbutilscodecutils.html">gstpbutilscodecutils</a></span><span class="refpurpose"> — Miscellaneous codec-specific utility functions</span>
+<span class="refentrytitle"><a href="gst-plugins-base-libs-gstpbutilscodecutils.html">gstpbutilscodecutils</a></span><span class="refpurpose"></span>
 </dt>
 <dt>
-<span class="refentrytitle"><a href="gst-plugins-base-libs-gstpbutilsdescriptions.html">gstpbutilsdescriptions</a></span><span class="refpurpose"> — Provides human-readable descriptions for caps/codecs
-and encoder, decoder, URI source and URI sink elements</span>
+<span class="refentrytitle"><a href="gst-plugins-base-libs-gstpbutilsdescriptions.html">gstpbutilsdescriptions</a></span><span class="refpurpose"></span>
 </dt>
 <dt>
-<span class="refentrytitle"><a href="gst-plugins-base-libs-gstpbutilsmissingplugins.html">gstpbutilsmissingplugins</a></span><span class="refpurpose"> — Create, recognise and parse missing-plugins messages</span>
+<span class="refentrytitle"><a href="gst-plugins-base-libs-gstpbutilsmissingplugins.html">gstpbutilsmissingplugins</a></span><span class="refpurpose"></span>
 </dt>
 <dt>
-<span class="refentrytitle"><a href="gst-plugins-base-libs-gstpbutilsinstallplugins.html">gstpbutilsinstallplugins</a></span><span class="refpurpose"> — Missing plugin installation support for applications</span>
+<span class="refentrytitle"><a href="gst-plugins-base-libs-gstpbutilsinstallplugins.html">gstpbutilsinstallplugins</a></span><span class="refpurpose"></span>
 </dt>
 <dt>
-<span class="refentrytitle"><a href="gst-plugins-base-libs-gstdiscoverer.html">gstdiscoverer</a></span><span class="refpurpose"> — Utility for discovering information on URIs.</span>
+<span class="refentrytitle"><a href="gst-plugins-base-libs-gstdiscoverer.html">gstdiscoverer</a></span><span class="refpurpose"></span>
 </dt>
 <dt>
-<span class="refentrytitle"><a href="gst-plugins-base-libs-encoding-profile.html">encoding-profile</a></span><span class="refpurpose"> — Encoding profile library</span>
+<span class="refentrytitle"><a href="gst-plugins-base-libs-encoding-profile.html">encoding-profile</a></span><span class="refpurpose"></span>
 </dt>
 </dl></dd>
 <dt><span class="chapter"><a href="gstreamer-video.html">Video Library</a></span></dt>
 <dd><dl>
 <dt>
-<span class="refentrytitle"><a href="gst-plugins-base-libs-gstvideo.html">gstvideo</a></span><span class="refpurpose"> — Support library for video operations</span>
+<span class="refentrytitle"><a href="gst-plugins-base-libs-gstvideo.html">gstvideo</a></span><span class="refpurpose"></span>
 </dt>
 <dt>
 <span class="refentrytitle"><a href="gst-plugins-base-libs-gstvideometa.html">gstvideometa</a></span><span class="refpurpose"></span>
@@ -261,57 +252,52 @@
 <span class="refentrytitle"><a href="gst-plugins-base-libs-gstvideoaffinetransformationmeta.html">gstvideoaffinetransformationmeta</a></span><span class="refpurpose"></span>
 </dt>
 <dt>
-<span class="refentrytitle"><a href="gst-plugins-base-libs-gstvideooverlaycomposition.html">gstvideooverlaycomposition</a></span><span class="refpurpose"> — Video Buffer Overlay Compositions (Subtitles, Logos)</span>
+<span class="refentrytitle"><a href="gst-plugins-base-libs-gstvideooverlaycomposition.html">gstvideooverlaycomposition</a></span><span class="refpurpose"></span>
 </dt>
 <dt>
-<span class="refentrytitle"><a href="gst-plugins-base-libs-gstvideofilter.html">gstvideofilter</a></span><span class="refpurpose"> — Base class for video filters</span>
+<span class="refentrytitle"><a href="gst-plugins-base-libs-gstvideofilter.html">gstvideofilter</a></span><span class="refpurpose"></span>
 </dt>
 <dt>
-<span class="refentrytitle"><a href="gst-plugins-base-libs-GstVideoDither.html">GstVideoDither</a></span><span class="refpurpose"> — Utility object for dithering and quantizing lines of video</span>
+<span class="refentrytitle"><a href="gst-plugins-base-libs-GstVideoDither.html">GstVideoDither</a></span><span class="refpurpose"></span>
 </dt>
 <dt>
-<span class="refentrytitle"><a href="gst-plugins-base-libs-GstVideoChroma.html">GstVideoChroma</a></span><span class="refpurpose"> — Functions and utility object for operating on chroma video planes</span>
+<span class="refentrytitle"><a href="gst-plugins-base-libs-GstVideoChroma.html">GstVideoChroma</a></span><span class="refpurpose"></span>
 </dt>
 <dt>
-<span class="refentrytitle"><a href="gst-plugins-base-libs-GstVideoResampler.html">GstVideoResampler</a></span><span class="refpurpose"> — Utility structure for resampler information</span>
+<span class="refentrytitle"><a href="gst-plugins-base-libs-GstVideoResampler.html">GstVideoResampler</a></span><span class="refpurpose"></span>
 </dt>
 <dt>
-<span class="refentrytitle"><a href="gst-plugins-base-libs-GstVideoScaler.html">GstVideoScaler</a></span><span class="refpurpose"> — Utility object for rescaling video frames</span>
+<span class="refentrytitle"><a href="gst-plugins-base-libs-GstVideoScaler.html">GstVideoScaler</a></span><span class="refpurpose"></span>
 </dt>
 <dt>
-<span class="refentrytitle"><a href="gst-plugins-base-libs-gstvideosink.html">gstvideosink</a></span><span class="refpurpose"> — Base class for video sinks</span>
+<span class="refentrytitle"><a href="gst-plugins-base-libs-gstvideosink.html">gstvideosink</a></span><span class="refpurpose"></span>
 </dt>
 <dt>
-<span class="refentrytitle"><a href="gst-plugins-base-libs-gstcolorbalance.html">gstcolorbalance</a></span><span class="refpurpose"> — Interface for adjusting color balance settings</span>
+<span class="refentrytitle"><a href="gst-plugins-base-libs-gstcolorbalance.html">gstcolorbalance</a></span><span class="refpurpose"></span>
 </dt>
 <dt>
-<span class="refentrytitle"><a href="gst-plugins-base-libs-gstcolorbalancechannel.html">gstcolorbalancechannel</a></span><span class="refpurpose"> — Object representing a channel from the <span class="type">GstColorBalance</span>
-        interface.</span>
+<span class="refentrytitle"><a href="gst-plugins-base-libs-gstcolorbalancechannel.html">gstcolorbalancechannel</a></span><span class="refpurpose"></span>
 </dt>
 <dt>
-<span class="refentrytitle"><a href="gst-plugins-base-libs-gstvideoorientation.html">gstvideoorientation</a></span><span class="refpurpose"> — Interface for elements providing video orientation
-controls</span>
+<span class="refentrytitle"><a href="gst-plugins-base-libs-gstvideoorientation.html">gstvideoorientation</a></span><span class="refpurpose"></span>
 </dt>
 <dt>
-<span class="refentrytitle"><a href="gst-plugins-base-libs-gstvideooverlay.html">gstvideooverlay</a></span><span class="refpurpose"> — Interface for setting/getting a window system resource
-   on elements supporting it to configure a window into which to render a
-   video.</span>
+<span class="refentrytitle"><a href="gst-plugins-base-libs-gstvideooverlay.html">gstvideooverlay</a></span><span class="refpurpose"></span>
 </dt>
 <dt>
-<span class="refentrytitle"><a href="gst-plugins-base-libs-GstVideoDecoder.html">GstVideoDecoder</a></span><span class="refpurpose"> — Base class for video decoders</span>
+<span class="refentrytitle"><a href="gst-plugins-base-libs-GstVideoDecoder.html">GstVideoDecoder</a></span><span class="refpurpose"></span>
 </dt>
 <dt>
-<span class="refentrytitle"><a href="gst-plugins-base-libs-GstVideoEncoder.html">GstVideoEncoder</a></span><span class="refpurpose"> — Base class for video encoders</span>
+<span class="refentrytitle"><a href="gst-plugins-base-libs-GstVideoEncoder.html">GstVideoEncoder</a></span><span class="refpurpose"></span>
 </dt>
 <dt>
-<span class="refentrytitle"><a href="gst-plugins-base-libs-GstVideoPool.html">GstVideoPool</a></span><span class="refpurpose"> — GstBufferPool for raw video buffers</span>
+<span class="refentrytitle"><a href="gst-plugins-base-libs-GstVideoPool.html">GstVideoPool</a></span><span class="refpurpose"></span>
 </dt>
 <dt>
 <span class="refentrytitle"><a href="gst-plugins-base-libs-gstvideoutils.html">gstvideoutils</a></span><span class="refpurpose"></span>
 </dt>
 <dt>
-<span class="refentrytitle"><a href="gst-plugins-base-libs-gstnavigation.html">gstnavigation</a></span><span class="refpurpose"> — Interface for creating, sending and parsing navigation
-events.</span>
+<span class="refentrytitle"><a href="gst-plugins-base-libs-gstnavigation.html">gstnavigation</a></span><span class="refpurpose"></span>
 </dt>
 </dl></dd>
 </dl>
diff --git a/docs/libs/html/gstreamer-riff.html b/docs/libs/html/gstreamer-riff.html
index e89ce64..6f720c1 100644
--- a/docs/libs/html/gstreamer-riff.html
+++ b/docs/libs/html/gstreamer-riff.html
@@ -23,7 +23,7 @@
 <div class="titlepage"><div><div><h2 class="title">
 <a name="gstreamer-riff"></a>Riff Media Library</h2></div></div></div>
 <div class="toc"><dl class="toc"><dt>
-<span class="refentrytitle"><a href="gst-plugins-base-libs-gstriff.html">gstriff</a></span><span class="refpurpose"> — Riff fileformat utillity functions.</span>
+<span class="refentrytitle"><a href="gst-plugins-base-libs-gstriff.html">gstriff</a></span><span class="refpurpose"></span>
 </dt></dl></div>
 <p>
         This library should be linked to by getting cflags and libs from
diff --git a/docs/libs/html/gstreamer-rtp.html b/docs/libs/html/gstreamer-rtp.html
index f136f46..aa5a1fd 100644
--- a/docs/libs/html/gstreamer-rtp.html
+++ b/docs/libs/html/gstreamer-rtp.html
@@ -24,25 +24,25 @@
 <a name="gstreamer-rtp"></a>RTP Library</h2></div></div></div>
 <div class="toc"><dl class="toc">
 <dt>
-<span class="refentrytitle"><a href="gst-plugins-base-libs-gstrtpbaseaudiopayload.html">gstrtpbaseaudiopayload</a></span><span class="refpurpose"> — Base class for audio RTP payloader</span>
+<span class="refentrytitle"><a href="gst-plugins-base-libs-gstrtpbaseaudiopayload.html">gstrtpbaseaudiopayload</a></span><span class="refpurpose"></span>
 </dt>
 <dt>
-<span class="refentrytitle"><a href="gst-plugins-base-libs-gstrtpbasedepayload.html">gstrtpbasedepayload</a></span><span class="refpurpose"> — Base class for RTP depayloader</span>
+<span class="refentrytitle"><a href="gst-plugins-base-libs-gstrtpbasedepayload.html">gstrtpbasedepayload</a></span><span class="refpurpose"></span>
 </dt>
 <dt>
-<span class="refentrytitle"><a href="gst-plugins-base-libs-gstrtpbasepayload.html">gstrtpbasepayload</a></span><span class="refpurpose"> — Base class for RTP payloader</span>
+<span class="refentrytitle"><a href="gst-plugins-base-libs-gstrtpbasepayload.html">gstrtpbasepayload</a></span><span class="refpurpose"></span>
 </dt>
 <dt>
-<span class="refentrytitle"><a href="gst-plugins-base-libs-gstrtpbuffer.html">gstrtpbuffer</a></span><span class="refpurpose"> — Helper methods for dealing with RTP buffers</span>
+<span class="refentrytitle"><a href="gst-plugins-base-libs-gstrtpbuffer.html">gstrtpbuffer</a></span><span class="refpurpose"></span>
 </dt>
 <dt>
-<span class="refentrytitle"><a href="gst-plugins-base-libs-gstrtcpbuffer.html">gstrtcpbuffer</a></span><span class="refpurpose"> — Helper methods for dealing with RTCP buffers</span>
+<span class="refentrytitle"><a href="gst-plugins-base-libs-gstrtcpbuffer.html">gstrtcpbuffer</a></span><span class="refpurpose"></span>
 </dt>
 <dt>
-<span class="refentrytitle"><a href="gst-plugins-base-libs-gstrtppayloads.html">gstrtppayloads</a></span><span class="refpurpose"> — Helper methods for dealing with RTP payloads</span>
+<span class="refentrytitle"><a href="gst-plugins-base-libs-gstrtppayloads.html">gstrtppayloads</a></span><span class="refpurpose"></span>
 </dt>
 <dt>
-<span class="refentrytitle"><a href="gst-plugins-base-libs-gstrtphdrext.html">gstrtphdrext</a></span><span class="refpurpose"> — Helper methods for dealing with RTP header extensions</span>
+<span class="refentrytitle"><a href="gst-plugins-base-libs-gstrtphdrext.html">gstrtphdrext</a></span><span class="refpurpose"></span>
 </dt>
 </dl></div>
 <p>
diff --git a/docs/libs/html/gstreamer-rtsp.html b/docs/libs/html/gstreamer-rtsp.html
index 6dbeddf..49632ff 100644
--- a/docs/libs/html/gstreamer-rtsp.html
+++ b/docs/libs/html/gstreamer-rtsp.html
@@ -24,25 +24,25 @@
 <a name="gstreamer-rtsp"></a>RTSP Library</h2></div></div></div>
 <div class="toc"><dl class="toc">
 <dt>
-<span class="refentrytitle"><a href="gst-plugins-base-libs-gstrtspconnection.html">gstrtspconnection</a></span><span class="refpurpose"> — manage RTSP connections</span>
+<span class="refentrytitle"><a href="gst-plugins-base-libs-gstrtspconnection.html">gstrtspconnection</a></span><span class="refpurpose"></span>
 </dt>
 <dt>
-<span class="refentrytitle"><a href="gst-plugins-base-libs-gstrtspdefs.html">gstrtspdefs</a></span><span class="refpurpose"> — common RTSP defines</span>
+<span class="refentrytitle"><a href="gst-plugins-base-libs-gstrtspdefs.html">gstrtspdefs</a></span><span class="refpurpose"></span>
 </dt>
 <dt>
-<span class="refentrytitle"><a href="gst-plugins-base-libs-gstrtspextension.html">gstrtspextension</a></span><span class="refpurpose"> — Interface for extending RTSP protocols</span>
+<span class="refentrytitle"><a href="gst-plugins-base-libs-gstrtspextension.html">gstrtspextension</a></span><span class="refpurpose"></span>
 </dt>
 <dt>
-<span class="refentrytitle"><a href="gst-plugins-base-libs-gstrtspmessage.html">gstrtspmessage</a></span><span class="refpurpose"> — RTSP messages</span>
+<span class="refentrytitle"><a href="gst-plugins-base-libs-gstrtspmessage.html">gstrtspmessage</a></span><span class="refpurpose"></span>
 </dt>
 <dt>
-<span class="refentrytitle"><a href="gst-plugins-base-libs-gstrtsprange.html">gstrtsprange</a></span><span class="refpurpose"> — dealing with time ranges</span>
+<span class="refentrytitle"><a href="gst-plugins-base-libs-gstrtsprange.html">gstrtsprange</a></span><span class="refpurpose"></span>
 </dt>
 <dt>
-<span class="refentrytitle"><a href="gst-plugins-base-libs-gstrtsptransport.html">gstrtsptransport</a></span><span class="refpurpose"> — dealing with RTSP transports</span>
+<span class="refentrytitle"><a href="gst-plugins-base-libs-gstrtsptransport.html">gstrtsptransport</a></span><span class="refpurpose"></span>
 </dt>
 <dt>
-<span class="refentrytitle"><a href="gst-plugins-base-libs-gstrtspurl.html">gstrtspurl</a></span><span class="refpurpose"> — handling RTSP urls</span>
+<span class="refentrytitle"><a href="gst-plugins-base-libs-gstrtspurl.html">gstrtspurl</a></span><span class="refpurpose"></span>
 </dt>
 </dl></div>
 <p>
diff --git a/docs/libs/html/gstreamer-sdp.html b/docs/libs/html/gstreamer-sdp.html
index b377a43..38685e4 100644
--- a/docs/libs/html/gstreamer-sdp.html
+++ b/docs/libs/html/gstreamer-sdp.html
@@ -23,7 +23,7 @@
 <div class="titlepage"><div><div><h2 class="title">
 <a name="gstreamer-sdp"></a>SDP Library</h2></div></div></div>
 <div class="toc"><dl class="toc"><dt>
-<span class="refentrytitle"><a href="gst-plugins-base-libs-gstsdpmessage.html">gstsdpmessage</a></span><span class="refpurpose"> — Helper methods for dealing with SDP messages</span>
+<span class="refentrytitle"><a href="gst-plugins-base-libs-gstsdpmessage.html">gstsdpmessage</a></span><span class="refpurpose"></span>
 </dt></dl></div>
 <p>
         This library should be linked to by getting cflags and libs from
diff --git a/docs/libs/html/gstreamer-tag.html b/docs/libs/html/gstreamer-tag.html
index a4f6b0a..870a9ff 100644
--- a/docs/libs/html/gstreamer-tag.html
+++ b/docs/libs/html/gstreamer-tag.html
@@ -24,40 +24,34 @@
 <a name="gstreamer-tag"></a>Tag Support Library</h2></div></div></div>
 <div class="toc"><dl class="toc">
 <dt>
-<span class="refentrytitle"><a href="gst-plugins-base-libs-gsttag.html">gsttag</a></span><span class="refpurpose"> — additional tag definitions for plugins and applications</span>
+<span class="refentrytitle"><a href="gst-plugins-base-libs-gsttag.html">gsttag</a></span><span class="refpurpose"></span>
 </dt>
 <dt>
-<span class="refentrytitle"><a href="gst-plugins-base-libs-gsttagvorbis.html">gsttagvorbis</a></span><span class="refpurpose"> — tag mappings and support functions for plugins
-                    dealing with vorbiscomments</span>
+<span class="refentrytitle"><a href="gst-plugins-base-libs-gsttagvorbis.html">gsttagvorbis</a></span><span class="refpurpose"></span>
 </dt>
 <dt>
-<span class="refentrytitle"><a href="gst-plugins-base-libs-gsttagid3.html">gsttagid3</a></span><span class="refpurpose"> — tag mappings and support functions for plugins
-                    dealing with ID3v1 and ID3v2 tags</span>
+<span class="refentrytitle"><a href="gst-plugins-base-libs-gsttagid3.html">gsttagid3</a></span><span class="refpurpose"></span>
 </dt>
 <dt>
-<span class="refentrytitle"><a href="gst-plugins-base-libs-gsttagexif.html">gsttagexif</a></span><span class="refpurpose"> — tag mappings and support functions for plugins
-                    dealing with exif tags</span>
+<span class="refentrytitle"><a href="gst-plugins-base-libs-gsttagexif.html">gsttagexif</a></span><span class="refpurpose"></span>
 </dt>
 <dt>
-<span class="refentrytitle"><a href="gst-plugins-base-libs-gsttagxmp.html">gsttagxmp</a></span><span class="refpurpose"> — tag mappings and support functions for plugins
-                    dealing with xmp packets</span>
+<span class="refentrytitle"><a href="gst-plugins-base-libs-gsttagxmp.html">gsttagxmp</a></span><span class="refpurpose"></span>
 </dt>
 <dt>
-<span class="refentrytitle"><a href="gst-plugins-base-libs-gsttagxmpwriter.html">gsttagxmpwriter</a></span><span class="refpurpose"> — Interface for elements that provide XMP serialization</span>
+<span class="refentrytitle"><a href="gst-plugins-base-libs-gsttagxmpwriter.html">gsttagxmpwriter</a></span><span class="refpurpose"></span>
 </dt>
 <dt>
-<span class="refentrytitle"><a href="gst-plugins-base-libs-gsttagdemux.html">gsttagdemux</a></span><span class="refpurpose"> — Base class for demuxing tags that are in chunks
-                    directly at the beginning or at the end of a file</span>
+<span class="refentrytitle"><a href="gst-plugins-base-libs-gsttagdemux.html">gsttagdemux</a></span><span class="refpurpose"></span>
 </dt>
 <dt>
-<span class="refentrytitle"><a href="gst-plugins-base-libs-gsttagmux.html">gsttagmux</a></span><span class="refpurpose"> — Base class for adding tags that are in one single chunk
-                    directly at the beginning or at the end of a file</span>
+<span class="refentrytitle"><a href="gst-plugins-base-libs-gsttagmux.html">gsttagmux</a></span><span class="refpurpose"></span>
 </dt>
 <dt>
-<span class="refentrytitle"><a href="gst-plugins-base-libs-gsttaglanguagecodes.html">gsttaglanguagecodes</a></span><span class="refpurpose"> — mappings for ISO-639 language codes and names</span>
+<span class="refentrytitle"><a href="gst-plugins-base-libs-gsttaglanguagecodes.html">gsttaglanguagecodes</a></span><span class="refpurpose"></span>
 </dt>
 <dt>
-<span class="refentrytitle"><a href="gst-plugins-base-libs-gsttaglicenses.html">gsttaglicenses</a></span><span class="refpurpose"> — utility functions for Creative Commons licenses</span>
+<span class="refentrytitle"><a href="gst-plugins-base-libs-gsttaglicenses.html">gsttaglicenses</a></span><span class="refpurpose"></span>
 </dt>
 </dl></div>
 <p>
diff --git a/docs/libs/html/gstreamer-video.html b/docs/libs/html/gstreamer-video.html
index 3dc6ce9..6d515e3 100644
--- a/docs/libs/html/gstreamer-video.html
+++ b/docs/libs/html/gstreamer-video.html
@@ -24,7 +24,7 @@
 <a name="gstreamer-video"></a>Video Library</h2></div></div></div>
 <div class="toc"><dl class="toc">
 <dt>
-<span class="refentrytitle"><a href="gst-plugins-base-libs-gstvideo.html">gstvideo</a></span><span class="refpurpose"> — Support library for video operations</span>
+<span class="refentrytitle"><a href="gst-plugins-base-libs-gstvideo.html">gstvideo</a></span><span class="refpurpose"></span>
 </dt>
 <dt>
 <span class="refentrytitle"><a href="gst-plugins-base-libs-gstvideometa.html">gstvideometa</a></span><span class="refpurpose"></span>
@@ -33,57 +33,52 @@
 <span class="refentrytitle"><a href="gst-plugins-base-libs-gstvideoaffinetransformationmeta.html">gstvideoaffinetransformationmeta</a></span><span class="refpurpose"></span>
 </dt>
 <dt>
-<span class="refentrytitle"><a href="gst-plugins-base-libs-gstvideooverlaycomposition.html">gstvideooverlaycomposition</a></span><span class="refpurpose"> — Video Buffer Overlay Compositions (Subtitles, Logos)</span>
+<span class="refentrytitle"><a href="gst-plugins-base-libs-gstvideooverlaycomposition.html">gstvideooverlaycomposition</a></span><span class="refpurpose"></span>
 </dt>
 <dt>
-<span class="refentrytitle"><a href="gst-plugins-base-libs-gstvideofilter.html">gstvideofilter</a></span><span class="refpurpose"> — Base class for video filters</span>
+<span class="refentrytitle"><a href="gst-plugins-base-libs-gstvideofilter.html">gstvideofilter</a></span><span class="refpurpose"></span>
 </dt>
 <dt>
-<span class="refentrytitle"><a href="gst-plugins-base-libs-GstVideoDither.html">GstVideoDither</a></span><span class="refpurpose"> — Utility object for dithering and quantizing lines of video</span>
+<span class="refentrytitle"><a href="gst-plugins-base-libs-GstVideoDither.html">GstVideoDither</a></span><span class="refpurpose"></span>
 </dt>
 <dt>
-<span class="refentrytitle"><a href="gst-plugins-base-libs-GstVideoChroma.html">GstVideoChroma</a></span><span class="refpurpose"> — Functions and utility object for operating on chroma video planes</span>
+<span class="refentrytitle"><a href="gst-plugins-base-libs-GstVideoChroma.html">GstVideoChroma</a></span><span class="refpurpose"></span>
 </dt>
 <dt>
-<span class="refentrytitle"><a href="gst-plugins-base-libs-GstVideoResampler.html">GstVideoResampler</a></span><span class="refpurpose"> — Utility structure for resampler information</span>
+<span class="refentrytitle"><a href="gst-plugins-base-libs-GstVideoResampler.html">GstVideoResampler</a></span><span class="refpurpose"></span>
 </dt>
 <dt>
-<span class="refentrytitle"><a href="gst-plugins-base-libs-GstVideoScaler.html">GstVideoScaler</a></span><span class="refpurpose"> — Utility object for rescaling video frames</span>
+<span class="refentrytitle"><a href="gst-plugins-base-libs-GstVideoScaler.html">GstVideoScaler</a></span><span class="refpurpose"></span>
 </dt>
 <dt>
-<span class="refentrytitle"><a href="gst-plugins-base-libs-gstvideosink.html">gstvideosink</a></span><span class="refpurpose"> — Base class for video sinks</span>
+<span class="refentrytitle"><a href="gst-plugins-base-libs-gstvideosink.html">gstvideosink</a></span><span class="refpurpose"></span>
 </dt>
 <dt>
-<span class="refentrytitle"><a href="gst-plugins-base-libs-gstcolorbalance.html">gstcolorbalance</a></span><span class="refpurpose"> — Interface for adjusting color balance settings</span>
+<span class="refentrytitle"><a href="gst-plugins-base-libs-gstcolorbalance.html">gstcolorbalance</a></span><span class="refpurpose"></span>
 </dt>
 <dt>
-<span class="refentrytitle"><a href="gst-plugins-base-libs-gstcolorbalancechannel.html">gstcolorbalancechannel</a></span><span class="refpurpose"> — Object representing a channel from the <span class="type">GstColorBalance</span>
-        interface.</span>
+<span class="refentrytitle"><a href="gst-plugins-base-libs-gstcolorbalancechannel.html">gstcolorbalancechannel</a></span><span class="refpurpose"></span>
 </dt>
 <dt>
-<span class="refentrytitle"><a href="gst-plugins-base-libs-gstvideoorientation.html">gstvideoorientation</a></span><span class="refpurpose"> — Interface for elements providing video orientation
-controls</span>
+<span class="refentrytitle"><a href="gst-plugins-base-libs-gstvideoorientation.html">gstvideoorientation</a></span><span class="refpurpose"></span>
 </dt>
 <dt>
-<span class="refentrytitle"><a href="gst-plugins-base-libs-gstvideooverlay.html">gstvideooverlay</a></span><span class="refpurpose"> — Interface for setting/getting a window system resource
-   on elements supporting it to configure a window into which to render a
-   video.</span>
+<span class="refentrytitle"><a href="gst-plugins-base-libs-gstvideooverlay.html">gstvideooverlay</a></span><span class="refpurpose"></span>
 </dt>
 <dt>
-<span class="refentrytitle"><a href="gst-plugins-base-libs-GstVideoDecoder.html">GstVideoDecoder</a></span><span class="refpurpose"> — Base class for video decoders</span>
+<span class="refentrytitle"><a href="gst-plugins-base-libs-GstVideoDecoder.html">GstVideoDecoder</a></span><span class="refpurpose"></span>
 </dt>
 <dt>
-<span class="refentrytitle"><a href="gst-plugins-base-libs-GstVideoEncoder.html">GstVideoEncoder</a></span><span class="refpurpose"> — Base class for video encoders</span>
+<span class="refentrytitle"><a href="gst-plugins-base-libs-GstVideoEncoder.html">GstVideoEncoder</a></span><span class="refpurpose"></span>
 </dt>
 <dt>
-<span class="refentrytitle"><a href="gst-plugins-base-libs-GstVideoPool.html">GstVideoPool</a></span><span class="refpurpose"> — GstBufferPool for raw video buffers</span>
+<span class="refentrytitle"><a href="gst-plugins-base-libs-GstVideoPool.html">GstVideoPool</a></span><span class="refpurpose"></span>
 </dt>
 <dt>
 <span class="refentrytitle"><a href="gst-plugins-base-libs-gstvideoutils.html">gstvideoutils</a></span><span class="refpurpose"></span>
 </dt>
 <dt>
-<span class="refentrytitle"><a href="gst-plugins-base-libs-gstnavigation.html">gstnavigation</a></span><span class="refpurpose"> — Interface for creating, sending and parsing navigation
-events.</span>
+<span class="refentrytitle"><a href="gst-plugins-base-libs-gstnavigation.html">gstnavigation</a></span><span class="refpurpose"></span>
 </dt>
 </dl></div>
 <p>
diff --git a/docs/libs/html/index.html b/docs/libs/html/index.html
index 142d20e..6154210 100644
--- a/docs/libs/html/index.html
+++ b/docs/libs/html/index.html
@@ -15,7 +15,7 @@
 <div>
 <div><table class="navigation" id="top" width="100%" cellpadding="2" cellspacing="0"><tr><th valign="middle"><p class="title">GStreamer Base Plugins 1.0 Library Reference Manual</p></th></tr></table></div>
 <div><p class="releaseinfo">
-      for GStreamer Base Library 1.0 (1.8.2)
+      for GStreamer Base Library 1.0 (1.9.1)
       <a class="ulink" href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gst-plugins-base-libs/html/" target="_top">http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gst-plugins-base-libs/html/</a>.
     </p></div>
 </div>
@@ -32,60 +32,58 @@
 <dt><span class="chapter"><a href="gstreamer-allocators.html">Allocators Library</a></span></dt>
 <dd><dl>
 <dt>
-<span class="refentrytitle"><a href="gst-plugins-base-libs-dmabuf.html">dmabuf</a></span><span class="refpurpose"> — Memory wrapper for Linux dmabuf memory</span>
+<span class="refentrytitle"><a href="gst-plugins-base-libs-dmabuf.html">dmabuf</a></span><span class="refpurpose"></span>
 </dt>
 <dt>
-<span class="refentrytitle"><a href="gst-plugins-base-libs-fdmemory.html">fdmemory</a></span><span class="refpurpose"> — Memory wrapper for fd backed memory</span>
+<span class="refentrytitle"><a href="gst-plugins-base-libs-fdmemory.html">fdmemory</a></span><span class="refpurpose"></span>
 </dt>
 </dl></dd>
 <dt><span class="chapter"><a href="gstreamer-app.html">App Library</a></span></dt>
 <dd><dl>
 <dt>
-<span class="refentrytitle"><a href="gst-plugins-base-libs-appsrc.html">appsrc</a></span><span class="refpurpose"> — Easy way for applications to inject buffers into a
-    pipeline</span>
+<span class="refentrytitle"><a href="gst-plugins-base-libs-appsrc.html">appsrc</a></span><span class="refpurpose"></span>
 </dt>
 <dt>
-<span class="refentrytitle"><a href="gst-plugins-base-libs-appsink.html">appsink</a></span><span class="refpurpose"> — Easy way for applications to extract samples from a
-    pipeline</span>
+<span class="refentrytitle"><a href="gst-plugins-base-libs-appsink.html">appsink</a></span><span class="refpurpose"></span>
 </dt>
 </dl></dd>
 <dt><span class="chapter"><a href="gstreamer-audio.html">Audio Library</a></span></dt>
 <dd><dl>
 <dt>
-<span class="refentrytitle"><a href="gst-plugins-base-libs-gstaudio.html">gstaudio</a></span><span class="refpurpose"> — Support library for audio elements</span>
+<span class="refentrytitle"><a href="gst-plugins-base-libs-gstaudio.html">gstaudio</a></span><span class="refpurpose"></span>
 </dt>
 <dt>
-<span class="refentrytitle"><a href="gst-plugins-base-libs-gstaudiometa.html">gstaudiometa</a></span><span class="refpurpose"> — Buffer metadata for audio downmix matrix handling</span>
+<span class="refentrytitle"><a href="gst-plugins-base-libs-gstaudiometa.html">gstaudiometa</a></span><span class="refpurpose"></span>
 </dt>
 <dt>
-<span class="refentrytitle"><a href="gst-plugins-base-libs-gstaudiocdsrc.html">gstaudiocdsrc</a></span><span class="refpurpose"> — Base class for Audio CD sources</span>
+<span class="refentrytitle"><a href="gst-plugins-base-libs-gstaudiocdsrc.html">gstaudiocdsrc</a></span><span class="refpurpose"></span>
 </dt>
 <dt>
-<span class="refentrytitle"><a href="gst-plugins-base-libs-gstaudioclock.html">gstaudioclock</a></span><span class="refpurpose"> — Helper object for implementing audio clocks</span>
+<span class="refentrytitle"><a href="gst-plugins-base-libs-gstaudioclock.html">gstaudioclock</a></span><span class="refpurpose"></span>
 </dt>
 <dt>
-<span class="refentrytitle"><a href="gst-plugins-base-libs-gstaudiodecoder.html">gstaudiodecoder</a></span><span class="refpurpose"> — Base class for audio decoders</span>
+<span class="refentrytitle"><a href="gst-plugins-base-libs-gstaudiodecoder.html">gstaudiodecoder</a></span><span class="refpurpose"></span>
 </dt>
 <dt>
-<span class="refentrytitle"><a href="gst-plugins-base-libs-gstaudioencoder.html">gstaudioencoder</a></span><span class="refpurpose"> — Base class for audio encoders</span>
+<span class="refentrytitle"><a href="gst-plugins-base-libs-gstaudioencoder.html">gstaudioencoder</a></span><span class="refpurpose"></span>
 </dt>
 <dt>
-<span class="refentrytitle"><a href="gst-plugins-base-libs-gstaudiofilter.html">gstaudiofilter</a></span><span class="refpurpose"> — Base class for simple audio filters</span>
+<span class="refentrytitle"><a href="gst-plugins-base-libs-gstaudiofilter.html">gstaudiofilter</a></span><span class="refpurpose"></span>
 </dt>
 <dt>
-<span class="refentrytitle"><a href="gst-plugins-base-libs-gstaudiosink.html">gstaudiosink</a></span><span class="refpurpose"> — Simple base class for audio sinks</span>
+<span class="refentrytitle"><a href="gst-plugins-base-libs-gstaudiosink.html">gstaudiosink</a></span><span class="refpurpose"></span>
 </dt>
 <dt>
-<span class="refentrytitle"><a href="gst-plugins-base-libs-gstaudiosrc.html">gstaudiosrc</a></span><span class="refpurpose"> — Simple base class for audio sources</span>
+<span class="refentrytitle"><a href="gst-plugins-base-libs-gstaudiosrc.html">gstaudiosrc</a></span><span class="refpurpose"></span>
 </dt>
 <dt>
-<span class="refentrytitle"><a href="gst-plugins-base-libs-gstaudiobasesink.html">gstaudiobasesink</a></span><span class="refpurpose"> — Base class for audio sinks</span>
+<span class="refentrytitle"><a href="gst-plugins-base-libs-gstaudiobasesink.html">gstaudiobasesink</a></span><span class="refpurpose"></span>
 </dt>
 <dt>
-<span class="refentrytitle"><a href="gst-plugins-base-libs-gstaudiobasesrc.html">gstaudiobasesrc</a></span><span class="refpurpose"> — Base class for audio sources</span>
+<span class="refentrytitle"><a href="gst-plugins-base-libs-gstaudiobasesrc.html">gstaudiobasesrc</a></span><span class="refpurpose"></span>
 </dt>
 <dt>
-<span class="refentrytitle"><a href="gst-plugins-base-libs-gstaudiochannels.html">gstaudiochannels</a></span><span class="refpurpose"> — Support library for audio channel handling</span>
+<span class="refentrytitle"><a href="gst-plugins-base-libs-gstaudiochannels.html">gstaudiochannels</a></span><span class="refpurpose"></span>
 </dt>
 <dt>
 <span class="refentrytitle"><a href="gst-plugins-base-libs-GstAudioConverter.html">GstAudioConverter</a></span><span class="refpurpose"></span>
@@ -94,164 +92,157 @@
 <span class="refentrytitle"><a href="gst-plugins-base-libs-GstAudioQuantize.html">GstAudioQuantize</a></span><span class="refpurpose"></span>
 </dt>
 <dt>
-<span class="refentrytitle"><a href="gst-plugins-base-libs-gstaudioringbuffer.html">gstaudioringbuffer</a></span><span class="refpurpose"> — Base class for audio ringbuffer implementations</span>
+<span class="refentrytitle"><a href="gst-plugins-base-libs-gstaudioringbuffer.html">gstaudioringbuffer</a></span><span class="refpurpose"></span>
 </dt>
 <dt>
-<span class="refentrytitle"><a href="gst-plugins-base-libs-gstaudioiec61937.html">gstaudioiec61937</a></span><span class="refpurpose"> — Utility functions for IEC 61937 payloading</span>
+<span class="refentrytitle"><a href="gst-plugins-base-libs-gstaudioiec61937.html">gstaudioiec61937</a></span><span class="refpurpose"></span>
 </dt>
 <dt>
-<span class="refentrytitle"><a href="gst-plugins-base-libs-gststreamvolume.html">gststreamvolume</a></span><span class="refpurpose"> — Interface for elements that provide a stream volume</span>
+<span class="refentrytitle"><a href="gst-plugins-base-libs-gststreamvolume.html">gststreamvolume</a></span><span class="refpurpose"></span>
 </dt>
 </dl></dd>
 <dt><span class="chapter"><a href="gstreamer-ffft.html">FFT Library</a></span></dt>
 <dd><dl>
 <dt>
-<span class="refentrytitle"><a href="gst-plugins-base-libs-gstfft.html">gstfft</a></span><span class="refpurpose"> — General FFT functions and declarations</span>
+<span class="refentrytitle"><a href="gst-plugins-base-libs-gstfft.html">gstfft</a></span><span class="refpurpose"></span>
 </dt>
 <dt>
-<span class="refentrytitle"><a href="gst-plugins-base-libs-gstffts16.html">gstffts16</a></span><span class="refpurpose"> — FFT functions for signed 16 bit integer samples</span>
+<span class="refentrytitle"><a href="gst-plugins-base-libs-gstffts16.html">gstffts16</a></span><span class="refpurpose"></span>
 </dt>
 <dt>
-<span class="refentrytitle"><a href="gst-plugins-base-libs-gstffts32.html">gstffts32</a></span><span class="refpurpose"> — FFT functions for signed 32 bit integer samples</span>
+<span class="refentrytitle"><a href="gst-plugins-base-libs-gstffts32.html">gstffts32</a></span><span class="refpurpose"></span>
 </dt>
 <dt>
-<span class="refentrytitle"><a href="gst-plugins-base-libs-gstfftf32.html">gstfftf32</a></span><span class="refpurpose"> — FFT functions for 32 bit float samples</span>
+<span class="refentrytitle"><a href="gst-plugins-base-libs-gstfftf32.html">gstfftf32</a></span><span class="refpurpose"></span>
 </dt>
 <dt>
-<span class="refentrytitle"><a href="gst-plugins-base-libs-gstfftf64.html">gstfftf64</a></span><span class="refpurpose"> — FFT functions for 64 bit float samples</span>
+<span class="refentrytitle"><a href="gst-plugins-base-libs-gstfftf64.html">gstfftf64</a></span><span class="refpurpose"></span>
 </dt>
 </dl></dd>
 <dt><span class="chapter"><a href="gstreamer-riff.html">Riff Media Library</a></span></dt>
 <dd><dl><dt>
-<span class="refentrytitle"><a href="gst-plugins-base-libs-gstriff.html">gstriff</a></span><span class="refpurpose"> — Riff fileformat utillity functions.</span>
+<span class="refentrytitle"><a href="gst-plugins-base-libs-gstriff.html">gstriff</a></span><span class="refpurpose"></span>
 </dt></dl></dd>
 <dt><span class="chapter"><a href="gstreamer-rtp.html">RTP Library</a></span></dt>
 <dd><dl>
 <dt>
-<span class="refentrytitle"><a href="gst-plugins-base-libs-gstrtpbaseaudiopayload.html">gstrtpbaseaudiopayload</a></span><span class="refpurpose"> — Base class for audio RTP payloader</span>
+<span class="refentrytitle"><a href="gst-plugins-base-libs-gstrtpbaseaudiopayload.html">gstrtpbaseaudiopayload</a></span><span class="refpurpose"></span>
 </dt>
 <dt>
-<span class="refentrytitle"><a href="gst-plugins-base-libs-gstrtpbasedepayload.html">gstrtpbasedepayload</a></span><span class="refpurpose"> — Base class for RTP depayloader</span>
+<span class="refentrytitle"><a href="gst-plugins-base-libs-gstrtpbasedepayload.html">gstrtpbasedepayload</a></span><span class="refpurpose"></span>
 </dt>
 <dt>
-<span class="refentrytitle"><a href="gst-plugins-base-libs-gstrtpbasepayload.html">gstrtpbasepayload</a></span><span class="refpurpose"> — Base class for RTP payloader</span>
+<span class="refentrytitle"><a href="gst-plugins-base-libs-gstrtpbasepayload.html">gstrtpbasepayload</a></span><span class="refpurpose"></span>
 </dt>
 <dt>
-<span class="refentrytitle"><a href="gst-plugins-base-libs-gstrtpbuffer.html">gstrtpbuffer</a></span><span class="refpurpose"> — Helper methods for dealing with RTP buffers</span>
+<span class="refentrytitle"><a href="gst-plugins-base-libs-gstrtpbuffer.html">gstrtpbuffer</a></span><span class="refpurpose"></span>
 </dt>
 <dt>
-<span class="refentrytitle"><a href="gst-plugins-base-libs-gstrtcpbuffer.html">gstrtcpbuffer</a></span><span class="refpurpose"> — Helper methods for dealing with RTCP buffers</span>
+<span class="refentrytitle"><a href="gst-plugins-base-libs-gstrtcpbuffer.html">gstrtcpbuffer</a></span><span class="refpurpose"></span>
 </dt>
 <dt>
-<span class="refentrytitle"><a href="gst-plugins-base-libs-gstrtppayloads.html">gstrtppayloads</a></span><span class="refpurpose"> — Helper methods for dealing with RTP payloads</span>
+<span class="refentrytitle"><a href="gst-plugins-base-libs-gstrtppayloads.html">gstrtppayloads</a></span><span class="refpurpose"></span>
 </dt>
 <dt>
-<span class="refentrytitle"><a href="gst-plugins-base-libs-gstrtphdrext.html">gstrtphdrext</a></span><span class="refpurpose"> — Helper methods for dealing with RTP header extensions</span>
+<span class="refentrytitle"><a href="gst-plugins-base-libs-gstrtphdrext.html">gstrtphdrext</a></span><span class="refpurpose"></span>
 </dt>
 </dl></dd>
 <dt><span class="chapter"><a href="gstreamer-rtsp.html">RTSP Library</a></span></dt>
 <dd><dl>
 <dt>
-<span class="refentrytitle"><a href="gst-plugins-base-libs-gstrtspconnection.html">gstrtspconnection</a></span><span class="refpurpose"> — manage RTSP connections</span>
+<span class="refentrytitle"><a href="gst-plugins-base-libs-gstrtspconnection.html">gstrtspconnection</a></span><span class="refpurpose"></span>
 </dt>
 <dt>
-<span class="refentrytitle"><a href="gst-plugins-base-libs-gstrtspdefs.html">gstrtspdefs</a></span><span class="refpurpose"> — common RTSP defines</span>
+<span class="refentrytitle"><a href="gst-plugins-base-libs-gstrtspdefs.html">gstrtspdefs</a></span><span class="refpurpose"></span>
 </dt>
 <dt>
-<span class="refentrytitle"><a href="gst-plugins-base-libs-gstrtspextension.html">gstrtspextension</a></span><span class="refpurpose"> — Interface for extending RTSP protocols</span>
+<span class="refentrytitle"><a href="gst-plugins-base-libs-gstrtspextension.html">gstrtspextension</a></span><span class="refpurpose"></span>
 </dt>
 <dt>
-<span class="refentrytitle"><a href="gst-plugins-base-libs-gstrtspmessage.html">gstrtspmessage</a></span><span class="refpurpose"> — RTSP messages</span>
+<span class="refentrytitle"><a href="gst-plugins-base-libs-gstrtspmessage.html">gstrtspmessage</a></span><span class="refpurpose"></span>
 </dt>
 <dt>
-<span class="refentrytitle"><a href="gst-plugins-base-libs-gstrtsprange.html">gstrtsprange</a></span><span class="refpurpose"> — dealing with time ranges</span>
+<span class="refentrytitle"><a href="gst-plugins-base-libs-gstrtsprange.html">gstrtsprange</a></span><span class="refpurpose"></span>
 </dt>
 <dt>
-<span class="refentrytitle"><a href="gst-plugins-base-libs-gstrtsptransport.html">gstrtsptransport</a></span><span class="refpurpose"> — dealing with RTSP transports</span>
+<span class="refentrytitle"><a href="gst-plugins-base-libs-gstrtsptransport.html">gstrtsptransport</a></span><span class="refpurpose"></span>
 </dt>
 <dt>
-<span class="refentrytitle"><a href="gst-plugins-base-libs-gstrtspurl.html">gstrtspurl</a></span><span class="refpurpose"> — handling RTSP urls</span>
+<span class="refentrytitle"><a href="gst-plugins-base-libs-gstrtspurl.html">gstrtspurl</a></span><span class="refpurpose"></span>
 </dt>
 </dl></dd>
 <dt><span class="chapter"><a href="gstreamer-sdp.html">SDP Library</a></span></dt>
 <dd><dl><dt>
-<span class="refentrytitle"><a href="gst-plugins-base-libs-gstsdpmessage.html">gstsdpmessage</a></span><span class="refpurpose"> — Helper methods for dealing with SDP messages</span>
+<span class="refentrytitle"><a href="gst-plugins-base-libs-gstsdpmessage.html">gstsdpmessage</a></span><span class="refpurpose"></span>
 </dt></dl></dd>
 <dt><span class="chapter"><a href="gstreamer-mikey.html">MIKEY Library</a></span></dt>
 <dd><dl><dt>
-<span class="refentrytitle"><a href="gst-plugins-base-libs-gstmikey.html">gstmikey</a></span><span class="refpurpose"> — Helper methods for dealing with MIKEY messages</span>
+<span class="refentrytitle"><a href="gst-plugins-base-libs-gstmikey.html">gstmikey</a></span><span class="refpurpose"></span>
 </dt></dl></dd>
 <dt><span class="chapter"><a href="gstreamer-tag.html">Tag Support Library</a></span></dt>
 <dd><dl>
 <dt>
-<span class="refentrytitle"><a href="gst-plugins-base-libs-gsttag.html">gsttag</a></span><span class="refpurpose"> — additional tag definitions for plugins and applications</span>
+<span class="refentrytitle"><a href="gst-plugins-base-libs-gsttag.html">gsttag</a></span><span class="refpurpose"></span>
 </dt>
 <dt>
-<span class="refentrytitle"><a href="gst-plugins-base-libs-gsttagvorbis.html">gsttagvorbis</a></span><span class="refpurpose"> — tag mappings and support functions for plugins
-                    dealing with vorbiscomments</span>
+<span class="refentrytitle"><a href="gst-plugins-base-libs-gsttagvorbis.html">gsttagvorbis</a></span><span class="refpurpose"></span>
 </dt>
 <dt>
-<span class="refentrytitle"><a href="gst-plugins-base-libs-gsttagid3.html">gsttagid3</a></span><span class="refpurpose"> — tag mappings and support functions for plugins
-                    dealing with ID3v1 and ID3v2 tags</span>
+<span class="refentrytitle"><a href="gst-plugins-base-libs-gsttagid3.html">gsttagid3</a></span><span class="refpurpose"></span>
 </dt>
 <dt>
-<span class="refentrytitle"><a href="gst-plugins-base-libs-gsttagexif.html">gsttagexif</a></span><span class="refpurpose"> — tag mappings and support functions for plugins
-                    dealing with exif tags</span>
+<span class="refentrytitle"><a href="gst-plugins-base-libs-gsttagexif.html">gsttagexif</a></span><span class="refpurpose"></span>
 </dt>
 <dt>
-<span class="refentrytitle"><a href="gst-plugins-base-libs-gsttagxmp.html">gsttagxmp</a></span><span class="refpurpose"> — tag mappings and support functions for plugins
-                    dealing with xmp packets</span>
+<span class="refentrytitle"><a href="gst-plugins-base-libs-gsttagxmp.html">gsttagxmp</a></span><span class="refpurpose"></span>
 </dt>
 <dt>
-<span class="refentrytitle"><a href="gst-plugins-base-libs-gsttagxmpwriter.html">gsttagxmpwriter</a></span><span class="refpurpose"> — Interface for elements that provide XMP serialization</span>
+<span class="refentrytitle"><a href="gst-plugins-base-libs-gsttagxmpwriter.html">gsttagxmpwriter</a></span><span class="refpurpose"></span>
 </dt>
 <dt>
-<span class="refentrytitle"><a href="gst-plugins-base-libs-gsttagdemux.html">gsttagdemux</a></span><span class="refpurpose"> — Base class for demuxing tags that are in chunks
-                    directly at the beginning or at the end of a file</span>
+<span class="refentrytitle"><a href="gst-plugins-base-libs-gsttagdemux.html">gsttagdemux</a></span><span class="refpurpose"></span>
 </dt>
 <dt>
-<span class="refentrytitle"><a href="gst-plugins-base-libs-gsttagmux.html">gsttagmux</a></span><span class="refpurpose"> — Base class for adding tags that are in one single chunk
-                    directly at the beginning or at the end of a file</span>
+<span class="refentrytitle"><a href="gst-plugins-base-libs-gsttagmux.html">gsttagmux</a></span><span class="refpurpose"></span>
 </dt>
 <dt>
-<span class="refentrytitle"><a href="gst-plugins-base-libs-gsttaglanguagecodes.html">gsttaglanguagecodes</a></span><span class="refpurpose"> — mappings for ISO-639 language codes and names</span>
+<span class="refentrytitle"><a href="gst-plugins-base-libs-gsttaglanguagecodes.html">gsttaglanguagecodes</a></span><span class="refpurpose"></span>
 </dt>
 <dt>
-<span class="refentrytitle"><a href="gst-plugins-base-libs-gsttaglicenses.html">gsttaglicenses</a></span><span class="refpurpose"> — utility functions for Creative Commons licenses</span>
+<span class="refentrytitle"><a href="gst-plugins-base-libs-gsttaglicenses.html">gsttaglicenses</a></span><span class="refpurpose"></span>
 </dt>
 </dl></dd>
 <dt><span class="chapter"><a href="gstreamer-base-utils.html">Base Utils Library</a></span></dt>
 <dd><dl>
 <dt>
-<span class="refentrytitle"><a href="gst-plugins-base-libs-gstpbutils.html">gstpbutils</a></span><span class="refpurpose"> — General Application and Plugin Utility Library</span>
+<span class="refentrytitle"><a href="gst-plugins-base-libs-gstpbutils.html">gstpbutils</a></span><span class="refpurpose"></span>
 </dt>
 <dt>
-<span class="refentrytitle"><a href="gst-plugins-base-libs-gstpluginsbaseversion.html">gstpluginsbaseversion</a></span><span class="refpurpose"> — GStreamer gst-plugins-base libraries version macros.</span>
+<span class="refentrytitle"><a href="gst-plugins-base-libs-gstpluginsbaseversion.html">gstpluginsbaseversion</a></span><span class="refpurpose"></span>
 </dt>
 <dt>
-<span class="refentrytitle"><a href="gst-plugins-base-libs-gstpbutilscodecutils.html">gstpbutilscodecutils</a></span><span class="refpurpose"> — Miscellaneous codec-specific utility functions</span>
+<span class="refentrytitle"><a href="gst-plugins-base-libs-gstpbutilscodecutils.html">gstpbutilscodecutils</a></span><span class="refpurpose"></span>
 </dt>
 <dt>
-<span class="refentrytitle"><a href="gst-plugins-base-libs-gstpbutilsdescriptions.html">gstpbutilsdescriptions</a></span><span class="refpurpose"> — Provides human-readable descriptions for caps/codecs
-and encoder, decoder, URI source and URI sink elements</span>
+<span class="refentrytitle"><a href="gst-plugins-base-libs-gstpbutilsdescriptions.html">gstpbutilsdescriptions</a></span><span class="refpurpose"></span>
 </dt>
 <dt>
-<span class="refentrytitle"><a href="gst-plugins-base-libs-gstpbutilsmissingplugins.html">gstpbutilsmissingplugins</a></span><span class="refpurpose"> — Create, recognise and parse missing-plugins messages</span>
+<span class="refentrytitle"><a href="gst-plugins-base-libs-gstpbutilsmissingplugins.html">gstpbutilsmissingplugins</a></span><span class="refpurpose"></span>
 </dt>
 <dt>
-<span class="refentrytitle"><a href="gst-plugins-base-libs-gstpbutilsinstallplugins.html">gstpbutilsinstallplugins</a></span><span class="refpurpose"> — Missing plugin installation support for applications</span>
+<span class="refentrytitle"><a href="gst-plugins-base-libs-gstpbutilsinstallplugins.html">gstpbutilsinstallplugins</a></span><span class="refpurpose"></span>
 </dt>
 <dt>
-<span class="refentrytitle"><a href="gst-plugins-base-libs-gstdiscoverer.html">gstdiscoverer</a></span><span class="refpurpose"> — Utility for discovering information on URIs.</span>
+<span class="refentrytitle"><a href="gst-plugins-base-libs-gstdiscoverer.html">gstdiscoverer</a></span><span class="refpurpose"></span>
 </dt>
 <dt>
-<span class="refentrytitle"><a href="gst-plugins-base-libs-encoding-profile.html">encoding-profile</a></span><span class="refpurpose"> — Encoding profile library</span>
+<span class="refentrytitle"><a href="gst-plugins-base-libs-encoding-profile.html">encoding-profile</a></span><span class="refpurpose"></span>
 </dt>
 </dl></dd>
 <dt><span class="chapter"><a href="gstreamer-video.html">Video Library</a></span></dt>
 <dd><dl>
 <dt>
-<span class="refentrytitle"><a href="gst-plugins-base-libs-gstvideo.html">gstvideo</a></span><span class="refpurpose"> — Support library for video operations</span>
+<span class="refentrytitle"><a href="gst-plugins-base-libs-gstvideo.html">gstvideo</a></span><span class="refpurpose"></span>
 </dt>
 <dt>
 <span class="refentrytitle"><a href="gst-plugins-base-libs-gstvideometa.html">gstvideometa</a></span><span class="refpurpose"></span>
@@ -260,64 +251,58 @@
 <span class="refentrytitle"><a href="gst-plugins-base-libs-gstvideoaffinetransformationmeta.html">gstvideoaffinetransformationmeta</a></span><span class="refpurpose"></span>
 </dt>
 <dt>
-<span class="refentrytitle"><a href="gst-plugins-base-libs-gstvideooverlaycomposition.html">gstvideooverlaycomposition</a></span><span class="refpurpose"> — Video Buffer Overlay Compositions (Subtitles, Logos)</span>
+<span class="refentrytitle"><a href="gst-plugins-base-libs-gstvideooverlaycomposition.html">gstvideooverlaycomposition</a></span><span class="refpurpose"></span>
 </dt>
 <dt>
-<span class="refentrytitle"><a href="gst-plugins-base-libs-gstvideofilter.html">gstvideofilter</a></span><span class="refpurpose"> — Base class for video filters</span>
+<span class="refentrytitle"><a href="gst-plugins-base-libs-gstvideofilter.html">gstvideofilter</a></span><span class="refpurpose"></span>
 </dt>
 <dt>
-<span class="refentrytitle"><a href="gst-plugins-base-libs-GstVideoDither.html">GstVideoDither</a></span><span class="refpurpose"> — Utility object for dithering and quantizing lines of video</span>
+<span class="refentrytitle"><a href="gst-plugins-base-libs-GstVideoDither.html">GstVideoDither</a></span><span class="refpurpose"></span>
 </dt>
 <dt>
-<span class="refentrytitle"><a href="gst-plugins-base-libs-GstVideoChroma.html">GstVideoChroma</a></span><span class="refpurpose"> — Functions and utility object for operating on chroma video planes</span>
+<span class="refentrytitle"><a href="gst-plugins-base-libs-GstVideoChroma.html">GstVideoChroma</a></span><span class="refpurpose"></span>
 </dt>
 <dt>
-<span class="refentrytitle"><a href="gst-plugins-base-libs-GstVideoResampler.html">GstVideoResampler</a></span><span class="refpurpose"> — Utility structure for resampler information</span>
+<span class="refentrytitle"><a href="gst-plugins-base-libs-GstVideoResampler.html">GstVideoResampler</a></span><span class="refpurpose"></span>
 </dt>
 <dt>
-<span class="refentrytitle"><a href="gst-plugins-base-libs-GstVideoScaler.html">GstVideoScaler</a></span><span class="refpurpose"> — Utility object for rescaling video frames</span>
+<span class="refentrytitle"><a href="gst-plugins-base-libs-GstVideoScaler.html">GstVideoScaler</a></span><span class="refpurpose"></span>
 </dt>
 <dt>
-<span class="refentrytitle"><a href="gst-plugins-base-libs-gstvideosink.html">gstvideosink</a></span><span class="refpurpose"> — Base class for video sinks</span>
+<span class="refentrytitle"><a href="gst-plugins-base-libs-gstvideosink.html">gstvideosink</a></span><span class="refpurpose"></span>
 </dt>
 <dt>
-<span class="refentrytitle"><a href="gst-plugins-base-libs-gstcolorbalance.html">gstcolorbalance</a></span><span class="refpurpose"> — Interface for adjusting color balance settings</span>
+<span class="refentrytitle"><a href="gst-plugins-base-libs-gstcolorbalance.html">gstcolorbalance</a></span><span class="refpurpose"></span>
 </dt>
 <dt>
-<span class="refentrytitle"><a href="gst-plugins-base-libs-gstcolorbalancechannel.html">gstcolorbalancechannel</a></span><span class="refpurpose"> — Object representing a channel from the <span class="type">GstColorBalance</span>
-        interface.</span>
+<span class="refentrytitle"><a href="gst-plugins-base-libs-gstcolorbalancechannel.html">gstcolorbalancechannel</a></span><span class="refpurpose"></span>
 </dt>
 <dt>
-<span class="refentrytitle"><a href="gst-plugins-base-libs-gstvideoorientation.html">gstvideoorientation</a></span><span class="refpurpose"> — Interface for elements providing video orientation
-controls</span>
+<span class="refentrytitle"><a href="gst-plugins-base-libs-gstvideoorientation.html">gstvideoorientation</a></span><span class="refpurpose"></span>
 </dt>
 <dt>
-<span class="refentrytitle"><a href="gst-plugins-base-libs-gstvideooverlay.html">gstvideooverlay</a></span><span class="refpurpose"> — Interface for setting/getting a window system resource
-   on elements supporting it to configure a window into which to render a
-   video.</span>
+<span class="refentrytitle"><a href="gst-plugins-base-libs-gstvideooverlay.html">gstvideooverlay</a></span><span class="refpurpose"></span>
 </dt>
 <dt>
-<span class="refentrytitle"><a href="gst-plugins-base-libs-GstVideoDecoder.html">GstVideoDecoder</a></span><span class="refpurpose"> — Base class for video decoders</span>
+<span class="refentrytitle"><a href="gst-plugins-base-libs-GstVideoDecoder.html">GstVideoDecoder</a></span><span class="refpurpose"></span>
 </dt>
 <dt>
-<span class="refentrytitle"><a href="gst-plugins-base-libs-GstVideoEncoder.html">GstVideoEncoder</a></span><span class="refpurpose"> — Base class for video encoders</span>
+<span class="refentrytitle"><a href="gst-plugins-base-libs-GstVideoEncoder.html">GstVideoEncoder</a></span><span class="refpurpose"></span>
 </dt>
 <dt>
-<span class="refentrytitle"><a href="gst-plugins-base-libs-GstVideoPool.html">GstVideoPool</a></span><span class="refpurpose"> — GstBufferPool for raw video buffers</span>
+<span class="refentrytitle"><a href="gst-plugins-base-libs-GstVideoPool.html">GstVideoPool</a></span><span class="refpurpose"></span>
 </dt>
 <dt>
 <span class="refentrytitle"><a href="gst-plugins-base-libs-gstvideoutils.html">gstvideoutils</a></span><span class="refpurpose"></span>
 </dt>
 <dt>
-<span class="refentrytitle"><a href="gst-plugins-base-libs-gstnavigation.html">gstnavigation</a></span><span class="refpurpose"> — Interface for creating, sending and parsing navigation
-events.</span>
+<span class="refentrytitle"><a href="gst-plugins-base-libs-gstnavigation.html">gstnavigation</a></span><span class="refpurpose"></span>
 </dt>
 </dl></dd>
 </dl></dd>
 <dt><span class="part"><a href="gstreamer-libs-hierarchy.html">II. Object Hierarchy</a></span></dt>
 <dt><span class="index"><a href="api-index-full.html">Index</a></span></dt>
 <dt><span class="index"><a href="api-index-deprecated.html">Index of deprecated API</a></span></dt>
-<dt><span class="glossary"><a href="annotation-glossary.html">Annotation Glossary</a></span></dt>
 </dl></div>
 </div>
 <div class="footer">
diff --git a/docs/plugins/Makefile.am b/docs/plugins/Makefile.am
index 5e72a67..4722155 100644
--- a/docs/plugins/Makefile.am
+++ b/docs/plugins/Makefile.am
@@ -55,6 +55,8 @@
 	$(top_srcdir)/ext/cdparanoia/gstcdparanoiasrc.h \
 	$(top_srcdir)/ext/ogg/gstoggdemux.h \
 	$(top_srcdir)/ext/ogg/gstoggmux.h \
+	$(top_srcdir)/ext/opus/gstopusdec.h \
+	$(top_srcdir)/ext/opus/gstopusenc.h \
 	$(top_srcdir)/ext/pango/gstclockoverlay.h \
 	$(top_srcdir)/ext/pango/gsttextoverlay.h \
 	$(top_srcdir)/ext/pango/gsttextrender.h \
@@ -68,6 +70,8 @@
 	$(top_srcdir)/ext/vorbis/gstvorbistag.h \
 	$(top_srcdir)/gst/adder/gstadder.h \
 	$(top_srcdir)/gst/audioconvert/gstaudioconvert.h \
+	$(top_srcdir)/gst/audiorate/gstaudiorate.h \
+	$(top_srcdir)/gst/audioresample/gstaudioresample.h \
 	$(top_srcdir)/gst/audiotestsrc/gstaudiotestsrc.h \
 	$(top_srcdir)/gst/encoding/gstencodebin.h \
 	$(top_srcdir)/gst/gio/gstgiosink.h \
@@ -75,16 +79,23 @@
 	$(top_srcdir)/gst/gio/gstgiostreamsink.h \
 	$(top_srcdir)/gst/gio/gstgiostreamsrc.h \
 	$(top_srcdir)/gst/playback/gstplay-enum.h \
+	$(top_srcdir)/gst/playback/gstplaysink.h \
+	$(top_srcdir)/gst/playback/gststreamsynchronizer.h \
 	$(top_srcdir)/gst/playback/gstsubtitleoverlay.h \
 	$(top_srcdir)/gst/audiorate/gstaudiorate.h \
 	$(top_srcdir)/gst/audioresample/gstaudioresample.h \
+	$(top_srcdir)/gst/subparse/gstssaparse.h \
+	$(top_srcdir)/gst/subparse/gstsubparse.h \
+	$(top_srcdir)/gst/tcp/gstmultifdsink.h \
+	$(top_srcdir)/gst/tcp/gstmultihandlesink.h \
 	$(top_srcdir)/gst/tcp/gstmultisocketsink.h \
 	$(top_srcdir)/gst/tcp/gstsocketsrc.h \
-	$(top_srcdir)/gst/tcp/gsttcpclientsrc.h \
 	$(top_srcdir)/gst/tcp/gsttcpclientsink.h \
-	$(top_srcdir)/gst/tcp/gsttcpserversrc.h \
-	$(top_srcdir)/gst/tcp/gsttcpserversink.h \
+	$(top_srcdir)/gst/tcp/gsttcpclientsrc.h \
 	$(top_srcdir)/gst/tcp/gsttcp.h \
+	$(top_srcdir)/gst/tcp/gsttcpserversink.h \
+	$(top_srcdir)/gst/tcp/gsttcpserversrc.h \
+	$(top_srcdir)/gst/videoconvert/gstvideoconvert.h \
 	$(top_srcdir)/gst/videorate/gstvideorate.h \
 	$(top_srcdir)/gst/videoscale/gstvideoscale.h \
 	$(top_srcdir)/gst/videotestsrc/gstvideotestsrc.h \
diff --git a/docs/plugins/Makefile.in b/docs/plugins/Makefile.in
index 7d623bd..1afa36c 100644
--- a/docs/plugins/Makefile.in
+++ b/docs/plugins/Makefile.in
@@ -522,6 +522,8 @@
 	$(top_srcdir)/ext/cdparanoia/gstcdparanoiasrc.h \
 	$(top_srcdir)/ext/ogg/gstoggdemux.h \
 	$(top_srcdir)/ext/ogg/gstoggmux.h \
+	$(top_srcdir)/ext/opus/gstopusdec.h \
+	$(top_srcdir)/ext/opus/gstopusenc.h \
 	$(top_srcdir)/ext/pango/gstclockoverlay.h \
 	$(top_srcdir)/ext/pango/gsttextoverlay.h \
 	$(top_srcdir)/ext/pango/gsttextrender.h \
@@ -535,6 +537,8 @@
 	$(top_srcdir)/ext/vorbis/gstvorbistag.h \
 	$(top_srcdir)/gst/adder/gstadder.h \
 	$(top_srcdir)/gst/audioconvert/gstaudioconvert.h \
+	$(top_srcdir)/gst/audiorate/gstaudiorate.h \
+	$(top_srcdir)/gst/audioresample/gstaudioresample.h \
 	$(top_srcdir)/gst/audiotestsrc/gstaudiotestsrc.h \
 	$(top_srcdir)/gst/encoding/gstencodebin.h \
 	$(top_srcdir)/gst/gio/gstgiosink.h \
@@ -542,16 +546,23 @@
 	$(top_srcdir)/gst/gio/gstgiostreamsink.h \
 	$(top_srcdir)/gst/gio/gstgiostreamsrc.h \
 	$(top_srcdir)/gst/playback/gstplay-enum.h \
+	$(top_srcdir)/gst/playback/gstplaysink.h \
+	$(top_srcdir)/gst/playback/gststreamsynchronizer.h \
 	$(top_srcdir)/gst/playback/gstsubtitleoverlay.h \
 	$(top_srcdir)/gst/audiorate/gstaudiorate.h \
 	$(top_srcdir)/gst/audioresample/gstaudioresample.h \
+	$(top_srcdir)/gst/subparse/gstssaparse.h \
+	$(top_srcdir)/gst/subparse/gstsubparse.h \
+	$(top_srcdir)/gst/tcp/gstmultifdsink.h \
+	$(top_srcdir)/gst/tcp/gstmultihandlesink.h \
 	$(top_srcdir)/gst/tcp/gstmultisocketsink.h \
 	$(top_srcdir)/gst/tcp/gstsocketsrc.h \
-	$(top_srcdir)/gst/tcp/gsttcpclientsrc.h \
 	$(top_srcdir)/gst/tcp/gsttcpclientsink.h \
-	$(top_srcdir)/gst/tcp/gsttcpserversrc.h \
-	$(top_srcdir)/gst/tcp/gsttcpserversink.h \
+	$(top_srcdir)/gst/tcp/gsttcpclientsrc.h \
 	$(top_srcdir)/gst/tcp/gsttcp.h \
+	$(top_srcdir)/gst/tcp/gsttcpserversink.h \
+	$(top_srcdir)/gst/tcp/gsttcpserversrc.h \
+	$(top_srcdir)/gst/videoconvert/gstvideoconvert.h \
 	$(top_srcdir)/gst/videorate/gstvideorate.h \
 	$(top_srcdir)/gst/videoscale/gstvideoscale.h \
 	$(top_srcdir)/gst/videotestsrc/gstvideotestsrc.h \
@@ -1001,9 +1012,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-base-plugins-docs.sgml b/docs/plugins/gst-plugins-base-plugins-docs.sgml
index 9cb48d8..b1d6209 100644
--- a/docs/plugins/gst-plugins-base-plugins-docs.sgml
+++ b/docs/plugins/gst-plugins-base-plugins-docs.sgml
@@ -20,8 +20,8 @@
     <xi:include href="xml/element-adder.xml" />
     <xi:include href="xml/element-alsamidisrc.xml" />
     <xi:include href="xml/element-alsasink.xml" />
-    <xi:include href="xml/element-alsasrc.xml" />
     <xi:include href="xml/element-appsink.xml" />
+    <xi:include href="xml/element-alsasrc.xml" />
     <xi:include href="xml/element-appsrc.xml" />
     <xi:include href="xml/element-audioconvert.xml" />
     <xi:include href="xml/element-audiorate.xml" />
diff --git a/docs/plugins/gst-plugins-base-plugins-sections.txt b/docs/plugins/gst-plugins-base-plugins-sections.txt
index 2cd8ce8..593beb1 100644
--- a/docs/plugins/gst-plugins-base-plugins-sections.txt
+++ b/docs/plugins/gst-plugins-base-plugins-sections.txt
@@ -5,16 +5,13 @@
 <SUBSECTION Standard>
 GstAdderClass
 GST_ADDER
+GST_ADDER_CAST
 GST_IS_ADDER
 GST_ADDER_CLASS
 GST_IS_ADDER_CLASS
 GST_TYPE_ADDER
 <SUBSECTION Private>
 gst_adder_get_type
-GstAdderClass
-GstAdderFormat
-GstAdderFunction
-GstAdderInputChannel
 </SECTION>
 
 <SECTION>
@@ -24,11 +21,12 @@
 <SUBSECTION Standard>
 GstAlsaMidiSrcClass
 GST_ALSA_MIDI_SRC
-GST_ALSA_MIDI_SRC_CLASS
+GST_ALSA_MIDI_SRC_CAST
 GST_IS_ALSA_MIDI_SRC
+GST_ALSA_MIDI_SRC_CLASS
 GST_IS_ALSA_MIDI_SRC_CLASS
 GST_TYPE_ALSA_MIDI_SRC
-SUBSECTION Private>
+<SUBSECTION Private>
 gst_alsa_midi_src_get_type
 </SECTION>
 
@@ -44,9 +42,6 @@
 GST_ALSA_SINK_CLASS
 GST_IS_ALSA_SINK_CLASS
 GST_TYPE_ALSA_SINK
-GST_ALSA_SINK_GET_LOCK
-GST_ALSA_SINK_LOCK
-GST_ALSA_SINK_UNLOCK
 <SUBSECTION Private>
 gst_alsa_sink_get_type
 </SECTION>
@@ -63,9 +58,6 @@
 GST_ALSA_SRC_CLASS
 GST_IS_ALSA_SRC_CLASS
 GST_TYPE_ALSA_SRC
-GST_ALSA_SRC_GET_LOCK
-GST_ALSA_SRC_LOCK
-GST_ALSA_SRC_UNLOCK
 <SUBSECTION Private>
 gst_alsa_src_get_type
 </SECTION>
@@ -75,22 +67,9 @@
 <TITLE>appsink</TITLE>
 GstAppSink
 <SUBSECTION Standard>
-gst_app_sink_set_caps
-gst_app_sink_get_caps
-gst_app_sink_is_eos
-gst_app_sink_set_emit_signals
-gst_app_sink_get_emit_signals
-gst_app_sink_set_max_buffers
-gst_app_sink_get_max_buffers
-gst_app_sink_set_drop
-gst_app_sink_get_drop
-gst_app_sink_pull_preroll
-gst_app_sink_pull_buffer
-gst_app_sink_set_callbacks
 GstAppSinkClass
-GstAppSinkPrivate
-GstAppSinkCallbacks
 GST_APP_SINK
+GST_APP_SINK_CAST
 GST_IS_APP_SINK
 GST_APP_SINK_CLASS
 GST_IS_APP_SINK_CLASS
@@ -104,26 +83,9 @@
 <TITLE>appsrc</TITLE>
 GstAppSrc
 <SUBSECTION Standard>
-gst_app_src_set_caps
-gst_app_src_get_caps
-gst_app_src_set_size
-gst_app_src_get_size
-gst_app_src_set_stream_type
-gst_app_src_get_stream_type
-gst_app_src_set_max_bytes
-gst_app_src_get_max_bytes
-gst_app_src_set_latency
-gst_app_src_get_latency
-gst_app_src_set_emit_signals
-gst_app_src_get_emit_signals
-gst_app_src_push_buffer
-gst_app_src_end_of_stream
-GstAppSrcCallbacks
-gst_app_src_set_callbacks
 GstAppSrcClass
-GstAppSrcPrivate
-GstAppStreamType
 GST_APP_SRC
+GST_APP_SRC_CAST
 GST_IS_APP_SRC
 GST_APP_SRC_CLASS
 GST_IS_APP_SRC_CLASS
@@ -136,26 +98,14 @@
 <FILE>element-audioconvert</FILE>
 <TITLE>audioconvert</TITLE>
 GstAudioConvert
-GstAudioConvertDithering
-GstAudioConvertNoiseShaping
 <SUBSECTION Standard>
 GstAudioConvertClass
 GST_AUDIO_CONVERT
+GST_AUDIO_CONVERT_CAST
 GST_IS_AUDIO_CONVERT
 GST_AUDIO_CONVERT_CLASS
 GST_IS_AUDIO_CONVERT_CLASS
 GST_TYPE_AUDIO_CONVERT
-AudioConvertCtx
-AudioConvertFmt
-AudioConvertMix
-AudioConvertPack
-AudioConvertQuantize
-AudioConvertUnpack
-audio_convert_clean_context
-audio_convert_clean_fmt
-audio_convert_convert
-audio_convert_get_sizes
-audio_convert_prepare_context
 <SUBSECTION Private>
 gst_audio_convert_get_type
 </SECTION>
@@ -167,6 +117,7 @@
 <SUBSECTION Standard>
 GstAudioRateClass
 GST_AUDIO_RATE
+GST_AUDIO_RATE_CAST
 GST_IS_AUDIO_RATE
 GST_AUDIO_RATE_CLASS
 GST_IS_AUDIO_RATE_CLASS
@@ -179,9 +130,13 @@
 <FILE>element-audioresample</FILE>
 <TITLE>audioresample</TITLE>
 GstAudioResample
+GstAudioResamplerMethod
+GstAudioResamplerFilterInterpolation
+GstAudioResamplerFilterMode
 <SUBSECTION Standard>
 GstAudioResampleClass
 GST_AUDIO_RESAMPLE
+GST_AUDIO_RESAMPLE_CAST
 GST_IS_AUDIO_RESAMPLE
 GST_AUDIO_RESAMPLE_CLASS
 GST_IS_AUDIO_RESAMPLE_CLASS
@@ -198,6 +153,7 @@
 <SUBSECTION Standard>
 GstAudioTestSrcClass
 GST_AUDIO_TEST_SRC
+GST_AUDIO_TEST_SRC_CAST
 GST_IS_AUDIO_TEST_SRC
 GST_AUDIO_TEST_SRC_CLASS
 GST_IS_AUDIO_TEST_SRC_CLASS
@@ -213,6 +169,7 @@
 <SUBSECTION Standard>
 GstCdParanoiaSrcClass
 GST_CD_PARANOIA_SRC
+GST_CD_PARANOIA_SRC_CAST
 GST_IS_CD_PARANOIA_SRC
 GST_CD_PARANOIA_SRC_CLASS
 GST_IS_CD_PARANOIA_SRC_CLASS
@@ -228,6 +185,7 @@
 <SUBSECTION Standard>
 GstClockOverlayClass
 GST_CLOCK_OVERLAY
+GST_CLOCK_OVERLAY_CAST
 GST_IS_CLOCK_OVERLAY
 GST_CLOCK_OVERLAY_CLASS
 GST_IS_CLOCK_OVERLAY_CLASS
@@ -260,6 +218,7 @@
 <SUBSECTION Standard>
 GstEncodeBinClass
 GST_ENCODE_BIN
+GST_ENCODE_BIN_CAST
 GST_IS_ENCODE_BIN
 GST_ENCODE_BIN_CLASS
 GST_IS_ENCODE_BIN_CLASS
@@ -275,6 +234,7 @@
 <SUBSECTION Standard>
 GstGioSinkClass
 GST_GIO_SINK
+GST_GIO_SINK_CAST
 GST_IS_GIO_SINK
 GST_GIO_SINK_CLASS
 GST_IS_GIO_SINK_CLASS
@@ -290,6 +250,7 @@
 <SUBSECTION Standard>
 GstGioSrcClass
 GST_GIO_SRC
+GST_GIO_SRC_CAST
 GST_IS_GIO_SRC
 GST_GIO_SRC_CLASS
 GST_IS_GIO_SRC_CLASS
@@ -305,6 +266,7 @@
 <SUBSECTION Standard>
 GstGioStreamSinkClass
 GST_GIO_STREAM_SINK
+GST_GIO_STREAM_SINK_CAST
 GST_IS_GIO_STREAM_SINK
 GST_GIO_STREAM_SINK_CLASS
 GST_IS_GIO_STREAM_SINK_CLASS
@@ -320,6 +282,7 @@
 <SUBSECTION Standard>
 GstGioStreamSrcClass
 GST_GIO_STREAM_SRC
+GST_GIO_STREAM_SRC_CAST
 GST_IS_GIO_STREAM_SRC
 GST_GIO_STREAM_SRC_CLASS
 GST_IS_GIO_STREAM_SRC_CLASS
@@ -332,19 +295,14 @@
 <FILE>element-multifdsink</FILE>
 <TITLE>multifdsink</TITLE>
 GstMultiFdSink
-GstRecoverPolicy
-GstSyncMethod
-GstClientStatus
-GstTCPProtocol
-GstTCPUnitType
 <SUBSECTION Standard>
 GstMultiFdSinkClass
 GST_MULTI_FD_SINK
+GST_MULTI_FD_SINK_CAST
 GST_IS_MULTI_FD_SINK
 GST_MULTI_FD_SINK_CLASS
 GST_IS_MULTI_FD_SINK_CLASS
 GST_TYPE_MULTI_FD_SINK
-GstTCPClient
 <SUBSECTION Private>
 gst_multi_fd_sink_get_type
 </SECTION>
@@ -353,19 +311,14 @@
 <FILE>element-multisocketsink</FILE>
 <TITLE>multisocketsink</TITLE>
 GstMultiSocketSink
-GstRecoverPolicy
-GstSyncMethod
-GstClientStatus
-GstTCPProtocol
-GstTCPUnitType
 <SUBSECTION Standard>
 GstMultiSocketSinkClass
 GST_MULTI_SOCKET_SINK
+GST_MULTI_SOCKET_SINK_CAST
 GST_IS_MULTI_SOCKET_SINK
 GST_MULTI_SOCKET_SINK_CLASS
 GST_IS_MULTI_SOCKET_SINK_CLASS
 GST_TYPE_MULTI_SOCKET_SINK
-GstTCPClient
 <SUBSECTION Private>
 gst_multi_socket_sink_get_type
 </SECTION>
@@ -393,20 +346,11 @@
 <SUBSECTION Standard>
 GstOggDemuxClass
 GST_OGG_DEMUX
+GST_OGG_DEMUX_CAST
 GST_IS_OGG_DEMUX
 GST_OGG_DEMUX_CLASS
 GST_IS_OGG_DEMUX_CLASS
 GST_TYPE_OGG_DEMUX
-GST_IS_OGG_PAD
-GST_IS_OGG_PAD_CLASS
-GST_OGG_PAD
-GST_OGG_PAD_CLASS
-GST_TYPE_OGG_PAD
-GstOggChain
-GstOggPad
-GstOggPadClass
-GstOggPadMode
-GstOggPadState
 <SUBSECTION Private>
 gst_ogg_demux_get_type
 </SECTION>
@@ -418,6 +362,7 @@
 <SUBSECTION Standard>
 GstOggMuxClass
 GST_OGG_MUX
+GST_OGG_MUX_CAST
 GST_IS_OGG_MUX
 GST_OGG_MUX_CLASS
 GST_IS_OGG_MUX_CLASS
@@ -490,37 +435,46 @@
 gst_ogm_video_parse_get_type
 </SECTION>
 
+<SECTION>
 <FILE>element-opusdec</FILE>
 <TITLE>opusdec</TITLE>
 GstOpusDec
 <SUBSECTION Standard>
 GstOpusDecClass
-gst_opus_dec_get_type
-GST_TYPE_OPUS_DEC
 GST_OPUS_DEC
-GST_OPUS_DEC_CLASS
+GST_OPUS_DEC_CAST
 GST_IS_OPUS_DEC
+GST_OPUS_DEC_CLASS
 GST_IS_OPUS_DEC_CLASS
+GST_TYPE_OPUS_DEC
+<SUBSECTION Private>
+gst_opus_dec_get_type
 </SECTION>
 
+<SECTION>
 <FILE>element-opusenc</FILE>
 <TITLE>opusenc</TITLE>
 GstOpusEnc
+GstOpusEncAudioType
+GstOpusEncBandwidth
+GstOpusEncBitrateType
+GstOpusEncFrameSize
 <SUBSECTION Standard>
 GstOpusEncClass
-gst_opus_enc_get_type
-GST_TYPE_OPUS_ENC
 GST_OPUS_ENC
-GST_OPUS_ENC_CLASS
+GST_OPUS_ENC_CAST
 GST_IS_OPUS_ENC
+GST_OPUS_ENC_CLASS
 GST_IS_OPUS_ENC_CLASS
+GST_TYPE_OPUS_ENC
+<SUBSECTION Private>
+gst_opus_enc_get_type
 </SECTION>
 
 <SECTION>
 <FILE>element-playbin</FILE>
 <TITLE>playbin</TITLE>
 GstPlayBin
-GstPlayFlags
 <SUBSECTION Standard>
 GstPlayBinClass
 GST_PLAY_BIN
@@ -529,8 +483,6 @@
 GST_PLAY_BIN_CLASS
 GST_IS_PLAY_BIN_CLASS
 GST_TYPE_PLAY_BIN
-gst_play_flags_get_type
-GST_TYPE_PLAY_FLAGS
 <SUBSECTION Private>
 gst_play_bin_get_type
 </SECTION>
@@ -543,35 +495,10 @@
 <SUBSECTION Standard>
 GstPlaySinkClass
 GST_PLAY_SINK
+GST_PLAY_SINK_CAST
 GST_IS_PLAY_SINK
 GST_PLAY_SINK_CLASS
 GST_IS_PLAY_SINK_CLASS
-GstPlaySinkType
-gst_play_sink_request_pad
-gst_play_sink_release_pad
-gst_play_sink_refresh_pad
-gst_play_sink_set_filter
-gst_play_sink_get_filter
-gst_play_sink_set_sink
-gst_play_sink_get_sink
-gst_play_sink_set_vis_plugin
-gst_play_sink_get_vis_plugin
-gst_play_sink_set_volume
-gst_play_sink_get_volume
-gst_play_sink_set_mute
-gst_play_sink_get_mute
-gst_play_sink_set_flags
-gst_play_sink_get_flags
-gst_play_sink_set_font_desc
-gst_play_sink_get_font_desc
-gst_play_sink_set_subtitle_encoding
-gst_play_sink_get_subtitle_encoding
-gst_play_sink_set_av_offset
-gst_play_sink_get_av_offset
-gst_play_sink_get_last_sample
-gst_play_sink_convert_sample
-gst_play_sink_reconfigure
-gst_play_sink_plugin_init
 GST_TYPE_PLAY_SINK
 <SUBSECTION Private>
 gst_play_sink_get_type
@@ -584,6 +511,7 @@
 <SUBSECTION Standard>
 GstSocketSrcClass
 GST_SOCKET_SRC
+GST_SOCKET_SRC_CAST
 GST_IS_SOCKET_SRC
 GST_SOCKET_SRC_CLASS
 GST_IS_SOCKET_SRC_CLASS
@@ -615,6 +543,7 @@
 <SUBSECTION Standard>
 GstStreamSynchronizerClass
 GST_STREAM_SYNCHRONIZER
+GST_STREAM_SYNCHRONIZER_CAST
 GST_IS_STREAM_SYNCHRONIZER
 GST_STREAM_SYNCHRONIZER_CLASS
 GST_IS_STREAM_SYNCHRONIZER_CLASS
@@ -650,11 +579,8 @@
 GST_IS_SUBTITLE_OVERLAY
 GST_SUBTITLE_OVERLAY_CLASS
 GST_IS_SUBTITLE_OVERLAY_CLASS
-GST_SUBTITLE_OVERLAY_LOCK
-GST_SUBTITLE_OVERLAY_UNLOCK
 GST_TYPE_SUBTITLE_OVERLAY
 <SUBSECTION Private>
-gst_subtitle_overlay_plugin_init
 gst_subtitle_overlay_get_type
 </SECTION>
 
@@ -664,8 +590,8 @@
 GstTCPClientSink
 <SUBSECTION Standard>
 GstTCPClientSinkClass
-GstTCPClientSinkFlags
 GST_TCP_CLIENT_SINK
+GST_TCP_CLIENT_SINK_CAST
 GST_IS_TCP_CLIENT_SINK
 GST_TCP_CLIENT_SINK_CLASS
 GST_IS_TCP_CLIENT_SINK_CLASS
@@ -680,12 +606,13 @@
 GstTCPClientSrc
 <SUBSECTION Standard>
 GstTCPClientSrcClass
-GstTCPClientSrcFlags
 GST_TCP_CLIENT_SRC
+GST_TCP_CLIENT_SRC_CAST
 GST_IS_TCP_CLIENT_SRC
 GST_TCP_CLIENT_SRC_CLASS
 GST_IS_TCP_CLIENT_SRC_CLASS
 GST_TYPE_TCP_CLIENT_SRC
+<SUBSECTION Private>
 gst_tcp_client_src_get_type
 </SECTION>
 
@@ -695,8 +622,8 @@
 GstTCPServerSink
 <SUBSECTION Standard>
 GstTCPServerSinkClass
-GstTCPServerSinkFlags
 GST_TCP_SERVER_SINK
+GST_TCP_SERVER_SINK_CAST
 GST_IS_TCP_SERVER_SINK
 GST_TCP_SERVER_SINK_CLASS
 GST_IS_TCP_SERVER_SINK_CLASS
@@ -711,8 +638,8 @@
 GstTCPServerSrc
 <SUBSECTION Standard>
 GstTCPServerSrcClass
-GstTCPServerSrcFlags
 GST_TCP_SERVER_SRC
+GST_TCP_SERVER_SRC_CAST
 GST_IS_TCP_SERVER_SRC
 GST_TCP_SERVER_SRC_CLASS
 GST_IS_TCP_SERVER_SRC_CLASS
@@ -725,17 +652,13 @@
 <FILE>element-textoverlay</FILE>
 <TITLE>textoverlay</TITLE>
 GstTextOverlay
-GstTextOverlayVAlign
-GstTextOverlayHAlign
-GstTextOverlayWrapMode
 <SUBSECTION Standard>
 GstTextOverlayClass
-GstTextOverlayLineAlign
 GST_TEXT_OVERLAY
+GST_TEXT_OVERLAY_CAST
 GST_IS_TEXT_OVERLAY
 GST_TEXT_OVERLAY_CLASS
 GST_IS_TEXT_OVERLAY_CLASS
-GST_TEXT_OVERLAY_GET_CLASS
 GST_TYPE_TEXT_OVERLAY
 <SUBSECTION Private>
 gst_text_overlay_get_type
@@ -745,13 +668,16 @@
 <FILE>element-textrender</FILE>
 <TITLE>textrender</TITLE>
 GstTextRender
+GstTextRenderHAlign
+GstTextRenderLineAlign
+GstTextRenderVAlign
 <SUBSECTION Standard>
 GstTextRenderClass
 GST_TEXT_RENDER
+GST_TEXT_RENDER_CAST
 GST_IS_TEXT_RENDER
 GST_TEXT_RENDER_CLASS
 GST_IS_TEXT_RENDER_CLASS
-GST_TEXT_RENDER_GET_CLASS
 GST_TYPE_TEXT_RENDER
 <SUBSECTION Private>
 gst_text_render_get_type
@@ -764,6 +690,7 @@
 <SUBSECTION Standard>
 GstTheoraDecClass
 GST_THEORA_DEC
+GST_THEORA_DEC_CAST
 GST_IS_THEORA_DEC
 GST_THEORA_DEC_CLASS
 GST_IS_THEORA_DEC_CLASS
@@ -780,6 +707,7 @@
 <SUBSECTION Standard>
 GstTheoraEncClass
 GST_THEORA_ENC
+GST_THEORA_ENC_CAST
 GST_IS_THEORA_ENC
 GST_THEORA_ENC_CLASS
 GST_IS_THEORA_ENC_CLASS
@@ -795,6 +723,7 @@
 <SUBSECTION Standard>
 GstTheoraParseClass
 GST_THEORA_PARSE
+GST_THEORA_PARSE_CAST
 GST_IS_THEORA_PARSE
 GST_THEORA_PARSE_CLASS
 GST_IS_THEORA_PARSE_CLASS
@@ -811,6 +740,7 @@
 <SUBSECTION Standard>
 GstTimeOverlayClass
 GST_TIME_OVERLAY
+GST_TIME_OVERLAY_CAST
 GST_IS_TIME_OVERLAY
 GST_TIME_OVERLAY_CLASS
 GST_IS_TIME_OVERLAY_CLASS
@@ -823,7 +753,6 @@
 <FILE>element-uridecodebin</FILE>
 <TITLE>uridecodebin</TITLE>
 GstURIDecodeBin
-GstAutoplugSelectResult
 <SUBSECTION Standard>
 GstURIDecodeBinClass
 GST_URI_DECODE_BIN
@@ -832,10 +761,8 @@
 GST_URI_DECODE_BIN_CLASS
 GST_IS_URI_DECODE_BIN_CLASS
 GST_TYPE_URI_DECODE_BIN
-GST_TYPE_AUTOPLUG_SELECT_RESULT
 <SUBSECTION Private>
 gst_uri_decode_bin_get_type
-gst_autoplug_select_result_get_type
 </SECTION>
 
 <SECTION>
@@ -845,6 +772,7 @@
 <SUBSECTION Standard>
 GstVideoConvertClass
 GST_VIDEO_CONVERT
+GST_VIDEO_CONVERT_CAST
 GST_IS_VIDEO_CONVERT
 GST_VIDEO_CONVERT_CLASS
 GST_IS_VIDEO_CONVERT_CLASS
@@ -860,6 +788,7 @@
 <SUBSECTION Standard>
 GstVideoRateClass
 GST_VIDEO_RATE
+GST_VIDEO_RATE_CAST
 GST_IS_VIDEO_RATE
 GST_VIDEO_RATE_CLASS
 GST_IS_VIDEO_RATE_CLASS
@@ -876,6 +805,7 @@
 <SUBSECTION Standard>
 GstVideoScaleClass
 GST_VIDEO_SCALE
+GST_VIDEO_SCALE_CAST
 GST_IS_VIDEO_SCALE
 GST_VIDEO_SCALE_CLASS
 GST_IS_VIDEO_SCALE_CLASS
@@ -889,10 +819,10 @@
 <TITLE>videotestsrc</TITLE>
 GstVideoTestSrc
 GstVideoTestSrcPattern
-GstVideoTestSrcColorSpec
 <SUBSECTION Standard>
 GstVideoTestSrcClass
 GST_VIDEO_TEST_SRC
+GST_VIDEO_TEST_SRC_CAST
 GST_IS_VIDEO_TEST_SRC
 GST_VIDEO_TEST_SRC_CLASS
 GST_IS_VIDEO_TEST_SRC_CLASS
@@ -908,6 +838,7 @@
 <SUBSECTION Standard>
 GstVolumeClass
 GST_VOLUME
+GST_VOLUME_CAST
 GST_IS_VOLUME
 GST_VOLUME_CLASS
 GST_IS_VOLUME_CLASS
@@ -923,6 +854,7 @@
 <SUBSECTION Standard>
 GstVorbisDecClass
 GST_VORBIS_DEC
+GST_VORBIS_DEC_CAST
 GST_IS_VORBIS_DEC
 GST_VORBIS_DEC_CLASS
 GST_IS_VORBIS_DEC_CLASS
@@ -938,6 +870,7 @@
 <SUBSECTION Standard>
 GstVorbisEncClass
 GST_VORBIS_ENC
+GST_VORBIS_ENC_CAST
 GST_IS_VORBIS_ENC
 GST_VORBIS_ENC_CLASS
 GST_IS_VORBIS_ENC_CLASS
@@ -953,6 +886,7 @@
 <SUBSECTION Standard>
 GstVorbisParseClass
 GST_VORBIS_PARSE
+GST_VORBIS_PARSE_CAST
 GST_IS_VORBIS_PARSE
 GST_VORBIS_PARSE_CLASS
 GST_IS_VORBIS_PARSE_CLASS
@@ -968,6 +902,7 @@
 <SUBSECTION Standard>
 GstVorbisTagClass
 GST_VORBIS_TAG
+GST_VORBIS_TAG_CAST
 GST_IS_VORBIS_TAG
 GST_VORBIS_TAG_CLASS
 GST_IS_VORBIS_TAG_CLASS
@@ -983,14 +918,11 @@
 <SUBSECTION Standard>
 GstXImageSinkClass
 GST_X_IMAGE_SINK
+GST_X_IMAGE_SINK_CAST
 GST_IS_X_IMAGE_SINK
 GST_X_IMAGE_SINK_CLASS
 GST_IS_X_IMAGE_SINK_CLASS
 GST_TYPE_X_IMAGE_SINK
-GstXImageBuffer
-GstXImageBufferClass
-GstXContext
-GstXWindow
 <SUBSECTION Private>
 gst_x_image_sink_get_type
 </SECTION>
@@ -1002,13 +934,12 @@
 <SUBSECTION Standard>
 GstXvImageSinkClass
 GST_XV_IMAGE_SINK
+GST_XV_IMAGE_SINK_CAST
 GST_IS_XV_IMAGE_SINK
 GST_XV_IMAGE_SINK_CLASS
 GST_IS_XV_IMAGE_SINK_CLASS
 GST_TYPE_XV_IMAGE_SINK
-GstXvImageBuffer
-GstXvImageBufferClass
-GstXvImageFormat
 <SUBSECTION Private>
 gst_xv_image_sink_get_type
 </SECTION>
+
diff --git a/docs/plugins/gst-plugins-base-plugins.args b/docs/plugins/gst-plugins-base-plugins.args
index 5c9330d..dc26fa3 100644
--- a/docs/plugins/gst-plugins-base-plugins.args
+++ b/docs/plugins/gst-plugins-base-plugins.args
@@ -870,12 +870,32 @@
 
 <ARG>
 <NAME>GstAudioResample::sinc-filter-mode</NAME>
-<TYPE>SpeexResamplerSincFilterMode</TYPE>
+<TYPE>GstAudioResamplerFilterMode</TYPE>
 <RANGE></RANGE>
 <FLAGS>rw</FLAGS>
 <NICK>Sinc filter table mode</NICK>
 <BLURB>What sinc filter table mode to use.</BLURB>
-<DEFAULT>Use full table if table size below threshold</DEFAULT>
+<DEFAULT>GST_AUDIO_RESAMPLER_FILTER_MODE_AUTO</DEFAULT>
+</ARG>
+
+<ARG>
+<NAME>GstAudioResample::resample-method</NAME>
+<TYPE>GstAudioResamplerMethod</TYPE>
+<RANGE></RANGE>
+<FLAGS>rw</FLAGS>
+<NICK>Resample method to use</NICK>
+<BLURB>What resample method to use.</BLURB>
+<DEFAULT>GST_AUDIO_RESAMPLER_METHOD_KAISER</DEFAULT>
+</ARG>
+
+<ARG>
+<NAME>GstAudioResample::sinc-filter-interpolation</NAME>
+<TYPE>GstAudioResamplerFilterInterpolation</TYPE>
+<RANGE></RANGE>
+<FLAGS>rw</FLAGS>
+<NICK>Sinc filter interpolation</NICK>
+<BLURB>How to interpolate the sinc filter table.</BLURB>
+<DEFAULT>GST_AUDIO_RESAMPLER_FILTER_INTERPOLATION_CUBIC</DEFAULT>
 </ARG>
 
 <ARG>
@@ -1299,6 +1319,16 @@
 </ARG>
 
 <ARG>
+<NAME>GstAppSrc::duration</NAME>
+<TYPE>guint64</TYPE>
+<RANGE></RANGE>
+<FLAGS>rw</FLAGS>
+<NICK>Duration</NICK>
+<BLURB>The duration of the data stream in nanoseconds (GST_CLOCK_TIME_NONE if unknown).</BLURB>
+<DEFAULT>18446744073709551615</DEFAULT>
+</ARG>
+
+<ARG>
 <NAME>GstAppSink::caps</NAME>
 <TYPE>GstCaps*</TYPE>
 <RANGE></RANGE>
@@ -2749,6 +2779,486 @@
 </ARG>
 
 <ARG>
+<NAME>GstURISourceBin::buffer-duration</NAME>
+<TYPE>gint64</TYPE>
+<RANGE>>= G_MAXULONG</RANGE>
+<FLAGS>rw</FLAGS>
+<NICK>Buffer duration (ns)</NICK>
+<BLURB>Buffer duration when buffering streams (-1 default value).</BLURB>
+<DEFAULT>-1</DEFAULT>
+</ARG>
+
+<ARG>
+<NAME>GstURISourceBin::buffer-size</NAME>
+<TYPE>gint</TYPE>
+<RANGE>>= G_MAXULONG</RANGE>
+<FLAGS>rw</FLAGS>
+<NICK>Buffer size (bytes)</NICK>
+<BLURB>Buffer size when buffering streams (-1 default value).</BLURB>
+<DEFAULT>-1</DEFAULT>
+</ARG>
+
+<ARG>
+<NAME>GstURISourceBin::connection-speed</NAME>
+<TYPE>guint64</TYPE>
+<RANGE><= 18446744073709551</RANGE>
+<FLAGS>rw</FLAGS>
+<NICK>Connection Speed</NICK>
+<BLURB>Network connection speed in kbps (0 = unknown).</BLURB>
+<DEFAULT>0</DEFAULT>
+</ARG>
+
+<ARG>
+<NAME>GstURISourceBin::download</NAME>
+<TYPE>gboolean</TYPE>
+<RANGE></RANGE>
+<FLAGS>rw</FLAGS>
+<NICK>Download</NICK>
+<BLURB>Attempt download buffering when buffering network streams.</BLURB>
+<DEFAULT>FALSE</DEFAULT>
+</ARG>
+
+<ARG>
+<NAME>GstURISourceBin::ring-buffer-max-size</NAME>
+<TYPE>guint64</TYPE>
+<RANGE><= G_MAXUINT</RANGE>
+<FLAGS>rw</FLAGS>
+<NICK>Max. ring buffer size (bytes)</NICK>
+<BLURB>Max. amount of data in the ring buffer (bytes, 0 = ring buffer disabled).</BLURB>
+<DEFAULT>0</DEFAULT>
+</ARG>
+
+<ARG>
+<NAME>GstURISourceBin::source</NAME>
+<TYPE>GstElement*</TYPE>
+<RANGE></RANGE>
+<FLAGS>r</FLAGS>
+<NICK>Source</NICK>
+<BLURB>Source object used.</BLURB>
+<DEFAULT></DEFAULT>
+</ARG>
+
+<ARG>
+<NAME>GstURISourceBin::uri</NAME>
+<TYPE>gchar*</TYPE>
+<RANGE></RANGE>
+<FLAGS>rw</FLAGS>
+<NICK>URI</NICK>
+<BLURB>URI to decode.</BLURB>
+<DEFAULT>NULL</DEFAULT>
+</ARG>
+
+<ARG>
+<NAME>GstURISourceBin::use-buffering</NAME>
+<TYPE>gboolean</TYPE>
+<RANGE></RANGE>
+<FLAGS>rw</FLAGS>
+<NICK>Use Buffering</NICK>
+<BLURB>Perform buffering on demuxed/parsed media.</BLURB>
+<DEFAULT>FALSE</DEFAULT>
+</ARG>
+
+<ARG>
+<NAME>GstPlayBin3::audio-filter</NAME>
+<TYPE>GstElement*</TYPE>
+<RANGE></RANGE>
+<FLAGS>rw</FLAGS>
+<NICK>Audio filter</NICK>
+<BLURB>the audio filter(s) to apply, if possible.</BLURB>
+<DEFAULT></DEFAULT>
+</ARG>
+
+<ARG>
+<NAME>GstPlayBin3::audio-sink</NAME>
+<TYPE>GstElement*</TYPE>
+<RANGE></RANGE>
+<FLAGS>rw</FLAGS>
+<NICK>Audio Sink</NICK>
+<BLURB>the audio output element to use (NULL = default sink).</BLURB>
+<DEFAULT></DEFAULT>
+</ARG>
+
+<ARG>
+<NAME>GstPlayBin3::audio-stream-combiner</NAME>
+<TYPE>GstElement*</TYPE>
+<RANGE></RANGE>
+<FLAGS>rw</FLAGS>
+<NICK>Audio stream combiner</NICK>
+<BLURB>Current audio stream combiner (NULL = input-selector).</BLURB>
+<DEFAULT></DEFAULT>
+</ARG>
+
+<ARG>
+<NAME>GstPlayBin3::auto-select-streams</NAME>
+<TYPE>gboolean</TYPE>
+<RANGE></RANGE>
+<FLAGS>rw</FLAGS>
+<NICK>Automatic Select-Streams</NICK>
+<BLURB>Whether playbin should respond to stream-collection messags with select-streams events.</BLURB>
+<DEFAULT>TRUE</DEFAULT>
+</ARG>
+
+<ARG>
+<NAME>GstPlayBin3::av-offset</NAME>
+<TYPE>gint64</TYPE>
+<RANGE></RANGE>
+<FLAGS>rw</FLAGS>
+<NICK>AV Offset</NICK>
+<BLURB>The synchronisation offset between audio and video in nanoseconds.</BLURB>
+<DEFAULT>0</DEFAULT>
+</ARG>
+
+<ARG>
+<NAME>GstPlayBin3::buffer-duration</NAME>
+<TYPE>gint64</TYPE>
+<RANGE>>= G_MAXULONG</RANGE>
+<FLAGS>rw</FLAGS>
+<NICK>Buffer duration (ns)</NICK>
+<BLURB>Buffer duration when buffering network streams.</BLURB>
+<DEFAULT>-1</DEFAULT>
+</ARG>
+
+<ARG>
+<NAME>GstPlayBin3::buffer-size</NAME>
+<TYPE>gint</TYPE>
+<RANGE>>= G_MAXULONG</RANGE>
+<FLAGS>rw</FLAGS>
+<NICK>Buffer size (bytes)</NICK>
+<BLURB>Buffer size when buffering network streams.</BLURB>
+<DEFAULT>-1</DEFAULT>
+</ARG>
+
+<ARG>
+<NAME>GstPlayBin3::connection-speed</NAME>
+<TYPE>guint64</TYPE>
+<RANGE><= 18446744073709551</RANGE>
+<FLAGS>rw</FLAGS>
+<NICK>Connection Speed</NICK>
+<BLURB>Network connection speed in kbps (0 = unknown).</BLURB>
+<DEFAULT>0</DEFAULT>
+</ARG>
+
+<ARG>
+<NAME>GstPlayBin3::current-audio</NAME>
+<TYPE>gint</TYPE>
+<RANGE>>= G_MAXULONG</RANGE>
+<FLAGS>rw</FLAGS>
+<NICK>Current audio</NICK>
+<BLURB>Currently playing audio stream (-1 = auto).</BLURB>
+<DEFAULT>-1</DEFAULT>
+</ARG>
+
+<ARG>
+<NAME>GstPlayBin3::current-suburi</NAME>
+<TYPE>gchar*</TYPE>
+<RANGE></RANGE>
+<FLAGS>r</FLAGS>
+<NICK>Current .sub-URI</NICK>
+<BLURB>The currently playing URI of a subtitle.</BLURB>
+<DEFAULT>NULL</DEFAULT>
+</ARG>
+
+<ARG>
+<NAME>GstPlayBin3::current-text</NAME>
+<TYPE>gint</TYPE>
+<RANGE>>= G_MAXULONG</RANGE>
+<FLAGS>rw</FLAGS>
+<NICK>Current Text</NICK>
+<BLURB>Currently playing text stream (-1 = auto).</BLURB>
+<DEFAULT>-1</DEFAULT>
+</ARG>
+
+<ARG>
+<NAME>GstPlayBin3::current-uri</NAME>
+<TYPE>gchar*</TYPE>
+<RANGE></RANGE>
+<FLAGS>r</FLAGS>
+<NICK>Current URI</NICK>
+<BLURB>The currently playing URI.</BLURB>
+<DEFAULT>NULL</DEFAULT>
+</ARG>
+
+<ARG>
+<NAME>GstPlayBin3::current-video</NAME>
+<TYPE>gint</TYPE>
+<RANGE>>= G_MAXULONG</RANGE>
+<FLAGS>rw</FLAGS>
+<NICK>Current Video</NICK>
+<BLURB>Currently playing video stream (-1 = auto).</BLURB>
+<DEFAULT>-1</DEFAULT>
+</ARG>
+
+<ARG>
+<NAME>GstPlayBin3::flags</NAME>
+<TYPE>GstPlayFlags</TYPE>
+<RANGE></RANGE>
+<FLAGS>rw</FLAGS>
+<NICK>Flags</NICK>
+<BLURB>Flags to control behaviour.</BLURB>
+<DEFAULT>Render the video stream|Render the audio stream|Render subtitles|Use software volume|Deinterlace video if necessary|Use software color balance</DEFAULT>
+</ARG>
+
+<ARG>
+<NAME>GstPlayBin3::force-aspect-ratio</NAME>
+<TYPE>gboolean</TYPE>
+<RANGE></RANGE>
+<FLAGS>rw</FLAGS>
+<NICK>Force Aspect Ratio</NICK>
+<BLURB>When enabled, scaling will respect original aspect ratio.</BLURB>
+<DEFAULT>TRUE</DEFAULT>
+</ARG>
+
+<ARG>
+<NAME>GstPlayBin3::mute</NAME>
+<TYPE>gboolean</TYPE>
+<RANGE></RANGE>
+<FLAGS>rw</FLAGS>
+<NICK>Mute</NICK>
+<BLURB>Mute the audio channel without changing the volume.</BLURB>
+<DEFAULT>FALSE</DEFAULT>
+</ARG>
+
+<ARG>
+<NAME>GstPlayBin3::n-audio</NAME>
+<TYPE>gint</TYPE>
+<RANGE>>= 0</RANGE>
+<FLAGS>r</FLAGS>
+<NICK>Number Audio</NICK>
+<BLURB>Total number of audio streams.</BLURB>
+<DEFAULT>0</DEFAULT>
+</ARG>
+
+<ARG>
+<NAME>GstPlayBin3::n-text</NAME>
+<TYPE>gint</TYPE>
+<RANGE>>= 0</RANGE>
+<FLAGS>r</FLAGS>
+<NICK>Number Text</NICK>
+<BLURB>Total number of text streams.</BLURB>
+<DEFAULT>0</DEFAULT>
+</ARG>
+
+<ARG>
+<NAME>GstPlayBin3::n-video</NAME>
+<TYPE>gint</TYPE>
+<RANGE>>= 0</RANGE>
+<FLAGS>r</FLAGS>
+<NICK>Number Video</NICK>
+<BLURB>Total number of video streams.</BLURB>
+<DEFAULT>0</DEFAULT>
+</ARG>
+
+<ARG>
+<NAME>GstPlayBin3::ring-buffer-max-size</NAME>
+<TYPE>guint64</TYPE>
+<RANGE><= G_MAXUINT</RANGE>
+<FLAGS>rw</FLAGS>
+<NICK>Max. ring buffer size (bytes)</NICK>
+<BLURB>Max. amount of data in the ring buffer (bytes, 0 = ring buffer disabled).</BLURB>
+<DEFAULT>0</DEFAULT>
+</ARG>
+
+<ARG>
+<NAME>GstPlayBin3::sample</NAME>
+<TYPE>GstSample*</TYPE>
+<RANGE></RANGE>
+<FLAGS>r</FLAGS>
+<NICK>Sample</NICK>
+<BLURB>The last sample (NULL = no video available).</BLURB>
+<DEFAULT></DEFAULT>
+</ARG>
+
+<ARG>
+<NAME>GstPlayBin3::source</NAME>
+<TYPE>GstElement*</TYPE>
+<RANGE></RANGE>
+<FLAGS>r</FLAGS>
+<NICK>Source</NICK>
+<BLURB>Source element.</BLURB>
+<DEFAULT></DEFAULT>
+</ARG>
+
+<ARG>
+<NAME>GstPlayBin3::subtitle-encoding</NAME>
+<TYPE>gchar*</TYPE>
+<RANGE></RANGE>
+<FLAGS>rw</FLAGS>
+<NICK>subtitle encoding</NICK>
+<BLURB>Encoding to assume if input subtitles are not in UTF-8 encoding. If not set, the GST_SUBTITLE_ENCODING environment variable will be checked for an encoding to use. If that is not set either, ISO-8859-15 will be assumed.</BLURB>
+<DEFAULT>NULL</DEFAULT>
+</ARG>
+
+<ARG>
+<NAME>GstPlayBin3::subtitle-font-desc</NAME>
+<TYPE>gchar*</TYPE>
+<RANGE></RANGE>
+<FLAGS>w</FLAGS>
+<NICK>Subtitle font description</NICK>
+<BLURB>Pango font description of font to be used for subtitle rendering.</BLURB>
+<DEFAULT>NULL</DEFAULT>
+</ARG>
+
+<ARG>
+<NAME>GstPlayBin3::suburi</NAME>
+<TYPE>gchar*</TYPE>
+<RANGE></RANGE>
+<FLAGS>rw</FLAGS>
+<NICK>.sub-URI</NICK>
+<BLURB>Optional URI of a subtitle.</BLURB>
+<DEFAULT>NULL</DEFAULT>
+</ARG>
+
+<ARG>
+<NAME>GstPlayBin3::text-sink</NAME>
+<TYPE>GstElement*</TYPE>
+<RANGE></RANGE>
+<FLAGS>rw</FLAGS>
+<NICK>Text plugin</NICK>
+<BLURB>the text output element to use (NULL = default subtitleoverlay).</BLURB>
+<DEFAULT></DEFAULT>
+</ARG>
+
+<ARG>
+<NAME>GstPlayBin3::text-stream-combiner</NAME>
+<TYPE>GstElement*</TYPE>
+<RANGE></RANGE>
+<FLAGS>rw</FLAGS>
+<NICK>Text stream combiner</NICK>
+<BLURB>Current text stream combiner (NULL = input-selector).</BLURB>
+<DEFAULT></DEFAULT>
+</ARG>
+
+<ARG>
+<NAME>GstPlayBin3::uri</NAME>
+<TYPE>gchar*</TYPE>
+<RANGE></RANGE>
+<FLAGS>rw</FLAGS>
+<NICK>URI</NICK>
+<BLURB>URI of the media to play.</BLURB>
+<DEFAULT>NULL</DEFAULT>
+</ARG>
+
+<ARG>
+<NAME>GstPlayBin3::video-filter</NAME>
+<TYPE>GstElement*</TYPE>
+<RANGE></RANGE>
+<FLAGS>rw</FLAGS>
+<NICK>Video filter</NICK>
+<BLURB>the video filter(s) to apply, if possible.</BLURB>
+<DEFAULT></DEFAULT>
+</ARG>
+
+<ARG>
+<NAME>GstPlayBin3::video-multiview-flags</NAME>
+<TYPE>GstVideoMultiviewFlags</TYPE>
+<RANGE></RANGE>
+<FLAGS>rw</FLAGS>
+<NICK>Multiview Flags Override</NICK>
+<BLURB>Override details of the multiview frame layout.</BLURB>
+<DEFAULT></DEFAULT>
+</ARG>
+
+<ARG>
+<NAME>GstPlayBin3::video-multiview-mode</NAME>
+<TYPE>GstVideoMultiviewFramePacking</TYPE>
+<RANGE></RANGE>
+<FLAGS>rw</FLAGS>
+<NICK>Multiview Mode Override</NICK>
+<BLURB>Re-interpret a video stream as one of several frame-packed stereoscopic modes.</BLURB>
+<DEFAULT>GST_VIDEO_MULTIVIEW_FRAME_PACKING_NONE</DEFAULT>
+</ARG>
+
+<ARG>
+<NAME>GstPlayBin3::video-sink</NAME>
+<TYPE>GstElement*</TYPE>
+<RANGE></RANGE>
+<FLAGS>rw</FLAGS>
+<NICK>Video Sink</NICK>
+<BLURB>the video output element to use (NULL = default sink).</BLURB>
+<DEFAULT></DEFAULT>
+</ARG>
+
+<ARG>
+<NAME>GstPlayBin3::video-stream-combiner</NAME>
+<TYPE>GstElement*</TYPE>
+<RANGE></RANGE>
+<FLAGS>rw</FLAGS>
+<NICK>Video stream combiner</NICK>
+<BLURB>Current video stream combiner (NULL = input-selector).</BLURB>
+<DEFAULT></DEFAULT>
+</ARG>
+
+<ARG>
+<NAME>GstPlayBin3::vis-plugin</NAME>
+<TYPE>GstElement*</TYPE>
+<RANGE></RANGE>
+<FLAGS>rw</FLAGS>
+<NICK>Vis plugin</NICK>
+<BLURB>the visualization element to use (NULL = default).</BLURB>
+<DEFAULT></DEFAULT>
+</ARG>
+
+<ARG>
+<NAME>GstPlayBin3::volume</NAME>
+<TYPE>gdouble</TYPE>
+<RANGE>[0,10]</RANGE>
+<FLAGS>rw</FLAGS>
+<NICK>Volume</NICK>
+<BLURB>The audio volume, 1.0=100%.</BLURB>
+<DEFAULT>1</DEFAULT>
+</ARG>
+
+<ARG>
+<NAME>GstParseBin::connection-speed</NAME>
+<TYPE>guint64</TYPE>
+<RANGE><= 18446744073709551</RANGE>
+<FLAGS>rw</FLAGS>
+<NICK>Connection Speed</NICK>
+<BLURB>Network connection speed in kbps (0 = unknown).</BLURB>
+<DEFAULT>0</DEFAULT>
+</ARG>
+
+<ARG>
+<NAME>GstParseBin::expose-all-streams</NAME>
+<TYPE>gboolean</TYPE>
+<RANGE></RANGE>
+<FLAGS>rw</FLAGS>
+<NICK>Expose All Streams</NICK>
+<BLURB>Expose all streams, including those of unknown type or that don't match the 'caps' property.</BLURB>
+<DEFAULT>TRUE</DEFAULT>
+</ARG>
+
+<ARG>
+<NAME>GstParseBin::sink-caps</NAME>
+<TYPE>GstCaps*</TYPE>
+<RANGE></RANGE>
+<FLAGS>rw</FLAGS>
+<NICK>Sink Caps</NICK>
+<BLURB>The caps of the input data. (NULL = use typefind element).</BLURB>
+<DEFAULT></DEFAULT>
+</ARG>
+
+<ARG>
+<NAME>GstParseBin::subtitle-encoding</NAME>
+<TYPE>gchar*</TYPE>
+<RANGE></RANGE>
+<FLAGS>rw</FLAGS>
+<NICK>subtitle encoding</NICK>
+<BLURB>Encoding to assume if input subtitles are not in UTF-8 encoding. If not set, the GST_SUBTITLE_ENCODING environment variable will be checked for an encoding to use. If that is not set either, ISO-8859-15 will be assumed.</BLURB>
+<DEFAULT>NULL</DEFAULT>
+</ARG>
+
+<ARG>
+<NAME>GstDecodebin3::caps</NAME>
+<TYPE>GstCaps*</TYPE>
+<RANGE></RANGE>
+<FLAGS>rw</FLAGS>
+<NICK>Caps</NICK>
+<BLURB>The caps on which to stop decoding. (NULL = default).</BLURB>
+<DEFAULT></DEFAULT>
+</ARG>
+
+<ARG>
 <NAME>GstTheoraDec::visualize-bit-usage</NAME>
 <TYPE>gint</TYPE>
 <RANGE>[0,255]</RANGE>
diff --git a/docs/plugins/gst-plugins-base-plugins.hierarchy b/docs/plugins/gst-plugins-base-plugins.hierarchy
index c2d607b..75f4ff1 100644
--- a/docs/plugins/gst-plugins-base-plugins.hierarchy
+++ b/docs/plugins/gst-plugins-base-plugins.hierarchy
@@ -79,12 +79,16 @@
           GstVideoRate
         GstBin
           GstDecodeBin
+          GstDecodebin3
           GstEncodeBin
+          GstParseBin
           GstPipeline
             GstPlayBin
+            GstPlayBin3
           GstPlaySink
           GstSubtitleOverlay
           GstURIDecodeBin
+          GstURISourceBin
         GstOggAviParse
         GstOggDemux
         GstOggMux
@@ -108,6 +112,7 @@
         GstProxyPad
           GstGhostPad
             GstDecodePad
+            GstParsePad
       GstPadTemplate
       GstPlugin
       GstPluginFeature
@@ -116,6 +121,8 @@
         GstTracerFactory
         GstTypeFindFactory
       GstRegistry
+      GstStream
+      GstStreamCollection
       GstTask
       GstTaskPool
   GInputStream
diff --git a/docs/plugins/gst-plugins-base-plugins.interfaces b/docs/plugins/gst-plugins-base-plugins.interfaces
index 651688d..8ed5c52 100644
--- a/docs/plugins/gst-plugins-base-plugins.interfaces
+++ b/docs/plugins/gst-plugins-base-plugins.interfaces
@@ -9,17 +9,21 @@
 GstBin GstChildProxy
 GstCdParanoiaSrc GstURIHandler
 GstDecodeBin GstChildProxy
+GstDecodebin3 GstChildProxy
 GstEncodeBin GstChildProxy
 GstGioSink GstURIHandler
 GstGioSrc GstURIHandler
 GstOggMux GstPreset
 GstOpusEnc GstPreset GstTagSetter
+GstParseBin GstChildProxy
 GstPipeline GstChildProxy
 GstPlayBin GstChildProxy GstStreamVolume GstVideoOverlay GstNavigation GstColorBalance
+GstPlayBin3 GstChildProxy GstStreamVolume GstVideoOverlay GstNavigation GstColorBalance
 GstPlaySink GstChildProxy GstStreamVolume GstVideoOverlay GstNavigation GstColorBalance
 GstSubtitleOverlay GstChildProxy
 GstTheoraEnc GstPreset
 GstURIDecodeBin GstChildProxy
+GstURISourceBin GstChildProxy
 GstVideoEncoder GstPreset
 GstVolume GstStreamVolume
 GstVorbisEnc GstPreset GstTagSetter
diff --git a/docs/plugins/gst-plugins-base-plugins.signals b/docs/plugins/gst-plugins-base-plugins.signals
index 8be77d0..cd62796 100644
--- a/docs/plugins/gst-plugins-base-plugins.signals
+++ b/docs/plugins/gst-plugins-base-plugins.signals
@@ -202,6 +202,14 @@
 </SIGNAL>
 
 <SIGNAL>
+<NAME>GstPlayBin::element-setup</NAME>
+<RETURNS>void</RETURNS>
+<FLAGS>l</FLAGS>
+GstPlayBin *gstplaybin
+GstElement *arg1
+</SIGNAL>
+
+<SIGNAL>
 <NAME>GstDecodeBin::autoplug-continue</NAME>
 <RETURNS>gboolean</RETURNS>
 <FLAGS>l</FLAGS>
@@ -525,3 +533,264 @@
 GstSocketSrc *gstsocketsrc
 </SIGNAL>
 
+<SIGNAL>
+<NAME>GstURISourceBin::autoplug-continue</NAME>
+<RETURNS>gboolean</RETURNS>
+<FLAGS>l</FLAGS>
+GstURISourceBin *gsturisourcebin
+GstPad *arg1
+GstCaps *arg2
+</SIGNAL>
+
+<SIGNAL>
+<NAME>GstURISourceBin::autoplug-factories</NAME>
+<RETURNS>GValueArray*</RETURNS>
+<FLAGS>l</FLAGS>
+GstURISourceBin *gsturisourcebin
+GstPad *arg1
+GstCaps *arg2
+</SIGNAL>
+
+<SIGNAL>
+<NAME>GstURISourceBin::autoplug-query</NAME>
+<RETURNS>gboolean</RETURNS>
+<FLAGS>l</FLAGS>
+GstURISourceBin *gsturisourcebin
+GstPad *arg1
+GstElement *arg2
+GstQuery *arg3
+</SIGNAL>
+
+<SIGNAL>
+<NAME>GstURISourceBin::autoplug-select</NAME>
+<RETURNS>GstAutoplugSelectResult</RETURNS>
+<FLAGS>l</FLAGS>
+GstURISourceBin *gsturisourcebin
+GstPad *arg1
+GstCaps *arg2
+GstElementFactory *arg3
+</SIGNAL>
+
+<SIGNAL>
+<NAME>GstURISourceBin::autoplug-sort</NAME>
+<RETURNS>GValueArray*</RETURNS>
+<FLAGS>l</FLAGS>
+GstURISourceBin *gsturisourcebin
+GstPad *arg1
+GstCaps *arg2
+GValueArray *arg3
+</SIGNAL>
+
+<SIGNAL>
+<NAME>GstURISourceBin::drained</NAME>
+<RETURNS>void</RETURNS>
+<FLAGS>l</FLAGS>
+GstURISourceBin *gsturisourcebin
+</SIGNAL>
+
+<SIGNAL>
+<NAME>GstURISourceBin::source-setup</NAME>
+<RETURNS>void</RETURNS>
+<FLAGS>l</FLAGS>
+GstURISourceBin *gsturisourcebin
+GstElement *arg1
+</SIGNAL>
+
+<SIGNAL>
+<NAME>GstURISourceBin::unknown-type</NAME>
+<RETURNS>void</RETURNS>
+<FLAGS>l</FLAGS>
+GstURISourceBin *gsturisourcebin
+GstPad *arg1
+GstCaps *arg2
+</SIGNAL>
+
+<SIGNAL>
+<NAME>GstPlayBin3::about-to-finish</NAME>
+<RETURNS>void</RETURNS>
+<FLAGS>l</FLAGS>
+GstPlayBin3 *gstplaybin3
+</SIGNAL>
+
+<SIGNAL>
+<NAME>GstPlayBin3::audio-changed</NAME>
+<RETURNS>void</RETURNS>
+<FLAGS>l</FLAGS>
+GstPlayBin3 *gstplaybin3
+</SIGNAL>
+
+<SIGNAL>
+<NAME>GstPlayBin3::audio-tags-changed</NAME>
+<RETURNS>void</RETURNS>
+<FLAGS>l</FLAGS>
+GstPlayBin3 *gstplaybin3
+gint  arg1
+</SIGNAL>
+
+<SIGNAL>
+<NAME>GstPlayBin3::convert-sample</NAME>
+<RETURNS>GstSample*</RETURNS>
+<FLAGS>la</FLAGS>
+GstPlayBin3 *gstplaybin3
+GstCaps *arg1
+</SIGNAL>
+
+<SIGNAL>
+<NAME>GstPlayBin3::get-audio-pad</NAME>
+<RETURNS>GstPad*</RETURNS>
+<FLAGS>la</FLAGS>
+GstPlayBin3 *gstplaybin3
+gint  arg1
+</SIGNAL>
+
+<SIGNAL>
+<NAME>GstPlayBin3::get-audio-tags</NAME>
+<RETURNS>GstTagList*</RETURNS>
+<FLAGS>la</FLAGS>
+GstPlayBin3 *gstplaybin3
+gint  arg1
+</SIGNAL>
+
+<SIGNAL>
+<NAME>GstPlayBin3::get-text-pad</NAME>
+<RETURNS>GstPad*</RETURNS>
+<FLAGS>la</FLAGS>
+GstPlayBin3 *gstplaybin3
+gint  arg1
+</SIGNAL>
+
+<SIGNAL>
+<NAME>GstPlayBin3::get-text-tags</NAME>
+<RETURNS>GstTagList*</RETURNS>
+<FLAGS>la</FLAGS>
+GstPlayBin3 *gstplaybin3
+gint  arg1
+</SIGNAL>
+
+<SIGNAL>
+<NAME>GstPlayBin3::get-video-pad</NAME>
+<RETURNS>GstPad*</RETURNS>
+<FLAGS>la</FLAGS>
+GstPlayBin3 *gstplaybin3
+gint  arg1
+</SIGNAL>
+
+<SIGNAL>
+<NAME>GstPlayBin3::get-video-tags</NAME>
+<RETURNS>GstTagList*</RETURNS>
+<FLAGS>la</FLAGS>
+GstPlayBin3 *gstplaybin3
+gint  arg1
+</SIGNAL>
+
+<SIGNAL>
+<NAME>GstPlayBin3::source-setup</NAME>
+<RETURNS>void</RETURNS>
+<FLAGS>l</FLAGS>
+GstPlayBin3 *gstplaybin3
+GstElement *arg1
+</SIGNAL>
+
+<SIGNAL>
+<NAME>GstPlayBin3::text-changed</NAME>
+<RETURNS>void</RETURNS>
+<FLAGS>l</FLAGS>
+GstPlayBin3 *gstplaybin3
+</SIGNAL>
+
+<SIGNAL>
+<NAME>GstPlayBin3::text-tags-changed</NAME>
+<RETURNS>void</RETURNS>
+<FLAGS>l</FLAGS>
+GstPlayBin3 *gstplaybin3
+gint  arg1
+</SIGNAL>
+
+<SIGNAL>
+<NAME>GstPlayBin3::video-changed</NAME>
+<RETURNS>void</RETURNS>
+<FLAGS>l</FLAGS>
+GstPlayBin3 *gstplaybin3
+</SIGNAL>
+
+<SIGNAL>
+<NAME>GstPlayBin3::video-tags-changed</NAME>
+<RETURNS>void</RETURNS>
+<FLAGS>l</FLAGS>
+GstPlayBin3 *gstplaybin3
+gint  arg1
+</SIGNAL>
+
+<SIGNAL>
+<NAME>GstParseBin::autoplug-continue</NAME>
+<RETURNS>gboolean</RETURNS>
+<FLAGS>l</FLAGS>
+GstParseBin *gstparsebin
+GstPad *arg1
+GstCaps *arg2
+</SIGNAL>
+
+<SIGNAL>
+<NAME>GstParseBin::autoplug-factories</NAME>
+<RETURNS>GValueArray*</RETURNS>
+<FLAGS>l</FLAGS>
+GstParseBin *gstparsebin
+GstPad *arg1
+GstCaps *arg2
+</SIGNAL>
+
+<SIGNAL>
+<NAME>GstParseBin::autoplug-query</NAME>
+<RETURNS>gboolean</RETURNS>
+<FLAGS>l</FLAGS>
+GstParseBin *gstparsebin
+GstPad *arg1
+GstElement *arg2
+GstQuery *arg3
+</SIGNAL>
+
+<SIGNAL>
+<NAME>GstParseBin::autoplug-select</NAME>
+<RETURNS>GstAutoplugSelectResult</RETURNS>
+<FLAGS>l</FLAGS>
+GstParseBin *gstparsebin
+GstPad *arg1
+GstCaps *arg2
+GstElementFactory *arg3
+</SIGNAL>
+
+<SIGNAL>
+<NAME>GstParseBin::autoplug-sort</NAME>
+<RETURNS>GValueArray*</RETURNS>
+<FLAGS>l</FLAGS>
+GstParseBin *gstparsebin
+GstPad *arg1
+GstCaps *arg2
+GValueArray *arg3
+</SIGNAL>
+
+<SIGNAL>
+<NAME>GstParseBin::drained</NAME>
+<RETURNS>void</RETURNS>
+<FLAGS>l</FLAGS>
+GstParseBin *gstparsebin
+</SIGNAL>
+
+<SIGNAL>
+<NAME>GstParseBin::unknown-type</NAME>
+<RETURNS>void</RETURNS>
+<FLAGS>l</FLAGS>
+GstParseBin *gstparsebin
+GstPad *arg1
+GstCaps *arg2
+</SIGNAL>
+
+<SIGNAL>
+<NAME>GstDecodebin3::select-stream</NAME>
+<RETURNS>gint</RETURNS>
+<FLAGS>l</FLAGS>
+GstDecodebin3 *gstdecodebin3
+GstStreamCollection *arg1
+GstStream *arg2
+</SIGNAL>
+
diff --git a/docs/plugins/html/ch01.html b/docs/plugins/html/ch01.html
index 6b074fe..462636b 100644
--- a/docs/plugins/html/ch01.html
+++ b/docs/plugins/html/ch01.html
@@ -33,10 +33,10 @@
 <span class="refentrytitle"><a href="gst-plugins-base-plugins-alsasink.html">alsasink</a></span><span class="refpurpose"></span>
 </dt>
 <dt>
-<span class="refentrytitle"><a href="gst-plugins-base-plugins-alsasrc.html">alsasrc</a></span><span class="refpurpose"></span>
+<span class="refentrytitle"><a href="gst-plugins-base-plugins-appsink.html">appsink</a></span><span class="refpurpose"></span>
 </dt>
 <dt>
-<span class="refentrytitle"><a href="gst-plugins-base-plugins-appsink.html">appsink</a></span><span class="refpurpose"></span>
+<span class="refentrytitle"><a href="gst-plugins-base-plugins-alsasrc.html">alsasrc</a></span><span class="refpurpose"></span>
 </dt>
 <dt>
 <span class="refentrytitle"><a href="gst-plugins-base-plugins-appsrc.html">appsrc</a></span><span class="refpurpose"></span>
diff --git a/docs/plugins/html/gst-plugins-base-plugins-1.0.devhelp2 b/docs/plugins/html/gst-plugins-base-plugins-1.0.devhelp2
index 921bcbf..2901b23 100644
--- a/docs/plugins/html/gst-plugins-base-plugins-1.0.devhelp2
+++ b/docs/plugins/html/gst-plugins-base-plugins-1.0.devhelp2
@@ -5,8 +5,8 @@
       <sub name="adder" link="gst-plugins-base-plugins-adder.html"/>
       <sub name="alsamidisrc" link="gst-plugins-base-plugins-alsamidisrc.html"/>
       <sub name="alsasink" link="gst-plugins-base-plugins-alsasink.html"/>
-      <sub name="alsasrc" link="gst-plugins-base-plugins-alsasrc.html"/>
       <sub name="appsink" link="gst-plugins-base-plugins-appsink.html"/>
+      <sub name="alsasrc" link="gst-plugins-base-plugins-alsasrc.html"/>
       <sub name="appsrc" link="gst-plugins-base-plugins-appsrc.html"/>
       <sub name="audioconvert" link="gst-plugins-base-plugins-audioconvert.html"/>
       <sub name="audiorate" link="gst-plugins-base-plugins-audiorate.html"/>
@@ -101,10 +101,6 @@
     <keyword type="property" name="The “card-name” property" link="gst-plugins-base-plugins-alsasink.html#GstAlsaSink--card-name"/>
     <keyword type="property" name="The “device” property" link="gst-plugins-base-plugins-alsasink.html#GstAlsaSink--device"/>
     <keyword type="property" name="The “device-name” property" link="gst-plugins-base-plugins-alsasink.html#GstAlsaSink--device-name"/>
-    <keyword type="struct" name="struct GstAlsaSrc" link="gst-plugins-base-plugins-alsasrc.html#GstAlsaSrc-struct"/>
-    <keyword type="property" name="The “card-name” property" link="gst-plugins-base-plugins-alsasrc.html#GstAlsaSrc--card-name"/>
-    <keyword type="property" name="The “device” property" link="gst-plugins-base-plugins-alsasrc.html#GstAlsaSrc--device"/>
-    <keyword type="property" name="The “device-name” property" link="gst-plugins-base-plugins-alsasrc.html#GstAlsaSrc--device-name"/>
     <keyword type="struct" name="struct GstAppSink" link="gst-plugins-base-plugins-appsink.html#GstAppSink-struct"/>
     <keyword type="property" name="The “caps” property" link="gst-plugins-base-plugins-appsink.html#GstAppSink--caps"/>
     <keyword type="property" name="The “drop” property" link="gst-plugins-base-plugins-appsink.html#GstAppSink--drop"/>
@@ -117,6 +113,10 @@
     <keyword type="signal" name="The “new-sample” signal" link="gst-plugins-base-plugins-appsink.html#GstAppSink-new-sample"/>
     <keyword type="signal" name="The “pull-preroll” signal" link="gst-plugins-base-plugins-appsink.html#GstAppSink-pull-preroll"/>
     <keyword type="signal" name="The “pull-sample” signal" link="gst-plugins-base-plugins-appsink.html#GstAppSink-pull-sample"/>
+    <keyword type="struct" name="struct GstAlsaSrc" link="gst-plugins-base-plugins-alsasrc.html#GstAlsaSrc-struct"/>
+    <keyword type="property" name="The “card-name” property" link="gst-plugins-base-plugins-alsasrc.html#GstAlsaSrc--card-name"/>
+    <keyword type="property" name="The “device” property" link="gst-plugins-base-plugins-alsasrc.html#GstAlsaSrc--device"/>
+    <keyword type="property" name="The “device-name” property" link="gst-plugins-base-plugins-alsasrc.html#GstAlsaSrc--device-name"/>
     <keyword type="struct" name="struct GstAppSrc" link="gst-plugins-base-plugins-appsrc.html#GstAppSrc-struct"/>
     <keyword type="property" name="The “block” property" link="gst-plugins-base-plugins-appsrc.html#GstAppSrc--block"/>
     <keyword type="property" name="The “caps” property" link="gst-plugins-base-plugins-appsrc.html#GstAppSrc--caps"/>
@@ -130,6 +130,7 @@
     <keyword type="property" name="The “min-percent” property" link="gst-plugins-base-plugins-appsrc.html#GstAppSrc--min-percent"/>
     <keyword type="property" name="The “size” property" link="gst-plugins-base-plugins-appsrc.html#GstAppSrc--size"/>
     <keyword type="property" name="The “stream-type” property" link="gst-plugins-base-plugins-appsrc.html#GstAppSrc--stream-type"/>
+    <keyword type="property" name="The “duration” property" link="gst-plugins-base-plugins-appsrc.html#GstAppSrc--duration"/>
     <keyword type="signal" name="The “end-of-stream” signal" link="gst-plugins-base-plugins-appsrc.html#GstAppSrc-end-of-stream"/>
     <keyword type="signal" name="The “enough-data” signal" link="gst-plugins-base-plugins-appsrc.html#GstAppSrc-enough-data"/>
     <keyword type="signal" name="The “need-data” signal" link="gst-plugins-base-plugins-appsrc.html#GstAppSrc-need-data"/>
@@ -151,6 +152,8 @@
     <keyword type="property" name="The “quality” property" link="gst-plugins-base-plugins-audioresample.html#GstAudioResample--quality"/>
     <keyword type="property" name="The “sinc-filter-auto-threshold” property" link="gst-plugins-base-plugins-audioresample.html#GstAudioResample--sinc-filter-auto-threshold"/>
     <keyword type="property" name="The “sinc-filter-mode” property" link="gst-plugins-base-plugins-audioresample.html#GstAudioResample--sinc-filter-mode"/>
+    <keyword type="property" name="The “resample-method” property" link="gst-plugins-base-plugins-audioresample.html#GstAudioResample--resample-method"/>
+    <keyword type="property" name="The “sinc-filter-interpolation” property" link="gst-plugins-base-plugins-audioresample.html#GstAudioResample--sinc-filter-interpolation"/>
     <keyword type="struct" name="struct GstAudioTestSrc" link="gst-plugins-base-plugins-audiotestsrc.html#GstAudioTestSrc-struct"/>
     <keyword type="enum" name="enum GstAudioTestSrcWave" link="gst-plugins-base-plugins-audiotestsrc.html#GstAudioTestSrcWave"/>
     <keyword type="property" name="The “can-activate-pull” property" link="gst-plugins-base-plugins-audiotestsrc.html#GstAudioTestSrc--can-activate-pull"/>
@@ -212,9 +215,6 @@
     <keyword type="struct" name="struct GstGioStreamSrc" link="gst-plugins-base-plugins-giostreamsrc.html#GstGioStreamSrc-struct"/>
     <keyword type="property" name="The “stream” property" link="gst-plugins-base-plugins-giostreamsrc.html#GstGioStreamSrc--stream"/>
     <keyword type="struct" name="struct GstMultiFdSink" link="gst-plugins-base-plugins-multifdsink.html#GstMultiFdSink-struct"/>
-    <keyword type="enum" name="enum GstRecoverPolicy" link="gst-plugins-base-plugins-multifdsink.html#GstRecoverPolicy"/>
-    <keyword type="enum" name="enum GstSyncMethod" link="gst-plugins-base-plugins-multifdsink.html#GstSyncMethod"/>
-    <keyword type="enum" name="enum GstClientStatus" link="gst-plugins-base-plugins-multifdsink.html#GstClientStatus"/>
     <keyword type="property" name="The “handle-read” property" link="gst-plugins-base-plugins-multifdsink.html#GstMultiFdSink--handle-read"/>
     <keyword type="signal" name="The “add” signal" link="gst-plugins-base-plugins-multifdsink.html#GstMultiFdSink-add"/>
     <keyword type="signal" name="The “add-full” signal" link="gst-plugins-base-plugins-multifdsink.html#GstMultiFdSink-add-full"/>
@@ -225,9 +225,6 @@
     <keyword type="signal" name="The “remove” signal" link="gst-plugins-base-plugins-multifdsink.html#GstMultiFdSink-remove"/>
     <keyword type="signal" name="The “remove-flush” signal" link="gst-plugins-base-plugins-multifdsink.html#GstMultiFdSink-remove-flush"/>
     <keyword type="struct" name="struct GstMultiSocketSink" link="gst-plugins-base-plugins-multisocketsink.html#GstMultiSocketSink-struct"/>
-    <keyword type="enum" name="enum GstRecoverPolicy" link="gst-plugins-base-plugins-multisocketsink.html#GstRecoverPolicy"/>
-    <keyword type="enum" name="enum GstSyncMethod" link="gst-plugins-base-plugins-multisocketsink.html#GstSyncMethod"/>
-    <keyword type="enum" name="enum GstClientStatus" link="gst-plugins-base-plugins-multisocketsink.html#GstClientStatus"/>
     <keyword type="property" name="The “send-dispatched” property" link="gst-plugins-base-plugins-multisocketsink.html#GstMultiSocketSink--send-dispatched"/>
     <keyword type="property" name="The “send-messages” property" link="gst-plugins-base-plugins-multisocketsink.html#GstMultiSocketSink--send-messages"/>
     <keyword type="signal" name="The “add” signal" link="gst-plugins-base-plugins-multisocketsink.html#GstMultiSocketSink-add"/>
@@ -248,6 +245,7 @@
     <keyword type="property" name="The “apply-gain” property" link="gst-plugins-base-plugins-opusdec.html#GstOpusDec--apply-gain"/>
     <keyword type="property" name="The “use-inband-fec” property" link="gst-plugins-base-plugins-opusdec.html#GstOpusDec--use-inband-fec"/>
     <keyword type="struct" name="struct GstOpusEnc" link="gst-plugins-base-plugins-opusenc.html#GstOpusEnc-struct"/>
+    <keyword type="enum" name="enum GstOpusEncBitrateType" link="gst-plugins-base-plugins-opusenc.html#GstOpusEncBitrateType"/>
     <keyword type="property" name="The “audio” property" link="gst-plugins-base-plugins-opusenc.html#GstOpusEnc--audio"/>
     <keyword type="property" name="The “audio-type” property" link="gst-plugins-base-plugins-opusenc.html#GstOpusEnc--audio-type"/>
     <keyword type="property" name="The “bandwidth” property" link="gst-plugins-base-plugins-opusenc.html#GstOpusEnc--bandwidth"/>
@@ -262,7 +260,6 @@
     <keyword type="property" name="The “max-payload-size” property" link="gst-plugins-base-plugins-opusenc.html#GstOpusEnc--max-payload-size"/>
     <keyword type="property" name="The “packet-loss-percentage” property" link="gst-plugins-base-plugins-opusenc.html#GstOpusEnc--packet-loss-percentage"/>
     <keyword type="struct" name="struct GstPlayBin" link="gst-plugins-base-plugins-playbin.html#GstPlayBin-struct"/>
-    <keyword type="enum" name="enum GstPlayFlags" link="gst-plugins-base-plugins-playbin.html#GstPlayFlags"/>
     <keyword type="property" name="The “audio-sink” property" link="gst-plugins-base-plugins-playbin.html#GstPlayBin--audio-sink"/>
     <keyword type="property" name="The “audio-stream-combiner” property" link="gst-plugins-base-plugins-playbin.html#GstPlayBin--audio-stream-combiner"/>
     <keyword type="property" name="The “av-offset” property" link="gst-plugins-base-plugins-playbin.html#GstPlayBin--av-offset"/>
@@ -312,6 +309,7 @@
     <keyword type="signal" name="The “text-tags-changed” signal" link="gst-plugins-base-plugins-playbin.html#GstPlayBin-text-tags-changed"/>
     <keyword type="signal" name="The “video-changed” signal" link="gst-plugins-base-plugins-playbin.html#GstPlayBin-video-changed"/>
     <keyword type="signal" name="The “video-tags-changed” signal" link="gst-plugins-base-plugins-playbin.html#GstPlayBin-video-tags-changed"/>
+    <keyword type="signal" name="The “element-setup” signal" link="gst-plugins-base-plugins-playbin.html#GstPlayBin-element-setup"/>
     <keyword type="struct" name="GstPlaySink" link="gst-plugins-base-plugins-playsink.html#GstPlaySink-struct"/>
     <keyword type="property" name="The “audio-sink” property" link="gst-plugins-base-plugins-playsink.html#GstPlaySink--audio-sink"/>
     <keyword type="property" name="The “av-offset” property" link="gst-plugins-base-plugins-playsink.html#GstPlaySink--av-offset"/>
@@ -360,6 +358,9 @@
     <keyword type="property" name="The “port” property" link="gst-plugins-base-plugins-tcpserversrc.html#GstTCPServerSrc--port"/>
     <keyword type="struct" name="struct GstTextOverlay" link="gst-plugins-base-plugins-textoverlay.html#GstTextOverlay-struct"/>
     <keyword type="struct" name="struct GstTextRender" link="gst-plugins-base-plugins-textrender.html#GstTextRender-struct"/>
+    <keyword type="enum" name="enum GstTextRenderHAlign" link="gst-plugins-base-plugins-textrender.html#GstTextRenderHAlign"/>
+    <keyword type="enum" name="enum GstTextRenderLineAlign" link="gst-plugins-base-plugins-textrender.html#GstTextRenderLineAlign"/>
+    <keyword type="enum" name="enum GstTextRenderVAlign" link="gst-plugins-base-plugins-textrender.html#GstTextRenderVAlign"/>
     <keyword type="property" name="The “font-desc” property" link="gst-plugins-base-plugins-textrender.html#GstTextRender--font-desc"/>
     <keyword type="property" name="The “halignment” property" link="gst-plugins-base-plugins-textrender.html#GstTextRender--halignment"/>
     <keyword type="property" name="The “line-alignment” property" link="gst-plugins-base-plugins-textrender.html#GstTextRender--line-alignment"/>
@@ -391,7 +392,6 @@
     <keyword type="enum" name="enum GstTimeOverlayTimeLine" link="gst-plugins-base-plugins-timeoverlay.html#GstTimeOverlayTimeLine"/>
     <keyword type="property" name="The “time-mode” property" link="gst-plugins-base-plugins-timeoverlay.html#GstTimeOverlay--time-mode"/>
     <keyword type="struct" name="struct GstURIDecodeBin" link="gst-plugins-base-plugins-uridecodebin.html#GstURIDecodeBin-struct"/>
-    <keyword type="enum" name="enum GstAutoplugSelectResult" link="gst-plugins-base-plugins-uridecodebin.html#GstAutoplugSelectResult"/>
     <keyword type="property" name="The “buffer-duration” property" link="gst-plugins-base-plugins-uridecodebin.html#GstURIDecodeBin--buffer-duration"/>
     <keyword type="property" name="The “buffer-size” property" link="gst-plugins-base-plugins-uridecodebin.html#GstURIDecodeBin--buffer-size"/>
     <keyword type="property" name="The “caps” property" link="gst-plugins-base-plugins-uridecodebin.html#GstURIDecodeBin--caps"/>
@@ -515,61 +515,24 @@
     <keyword type="constant" name="GST_AUDIO_TEST_SRC_WAVE_RED_NOISE" link="gst-plugins-base-plugins-audiotestsrc.html#GST-AUDIO-TEST-SRC-WAVE-RED-NOISE:CAPS"/>
     <keyword type="constant" name="GST_AUDIO_TEST_SRC_WAVE_BLUE_NOISE" link="gst-plugins-base-plugins-audiotestsrc.html#GST-AUDIO-TEST-SRC-WAVE-BLUE-NOISE:CAPS"/>
     <keyword type="constant" name="GST_AUDIO_TEST_SRC_WAVE_VIOLET_NOISE" link="gst-plugins-base-plugins-audiotestsrc.html#GST-AUDIO-TEST-SRC-WAVE-VIOLET-NOISE:CAPS"/>
-    <keyword type="constant" name="GST_RECOVER_POLICY_NONE" link="gst-plugins-base-plugins-multifdsink.html#GST-RECOVER-POLICY-NONE:CAPS"/>
-    <keyword type="constant" name="GST_RECOVER_POLICY_RESYNC_LATEST" link="gst-plugins-base-plugins-multifdsink.html#GST-RECOVER-POLICY-RESYNC-LATEST:CAPS"/>
-    <keyword type="constant" name="GST_RECOVER_POLICY_RESYNC_SOFT_LIMIT" link="gst-plugins-base-plugins-multifdsink.html#GST-RECOVER-POLICY-RESYNC-SOFT-LIMIT:CAPS"/>
-    <keyword type="constant" name="GST_RECOVER_POLICY_RESYNC_KEYFRAME" link="gst-plugins-base-plugins-multifdsink.html#GST-RECOVER-POLICY-RESYNC-KEYFRAME:CAPS"/>
-    <keyword type="constant" name="GST_SYNC_METHOD_LATEST" link="gst-plugins-base-plugins-multifdsink.html#GST-SYNC-METHOD-LATEST:CAPS"/>
-    <keyword type="constant" name="GST_SYNC_METHOD_NEXT_KEYFRAME" link="gst-plugins-base-plugins-multifdsink.html#GST-SYNC-METHOD-NEXT-KEYFRAME:CAPS"/>
-    <keyword type="constant" name="GST_SYNC_METHOD_LATEST_KEYFRAME" link="gst-plugins-base-plugins-multifdsink.html#GST-SYNC-METHOD-LATEST-KEYFRAME:CAPS"/>
-    <keyword type="constant" name="GST_SYNC_METHOD_BURST" link="gst-plugins-base-plugins-multifdsink.html#GST-SYNC-METHOD-BURST:CAPS"/>
-    <keyword type="constant" name="GST_SYNC_METHOD_BURST_KEYFRAME" link="gst-plugins-base-plugins-multifdsink.html#GST-SYNC-METHOD-BURST-KEYFRAME:CAPS"/>
-    <keyword type="constant" name="GST_SYNC_METHOD_BURST_WITH_KEYFRAME" link="gst-plugins-base-plugins-multifdsink.html#GST-SYNC-METHOD-BURST-WITH-KEYFRAME:CAPS"/>
-    <keyword type="constant" name="GST_CLIENT_STATUS_OK" link="gst-plugins-base-plugins-multifdsink.html#GST-CLIENT-STATUS-OK:CAPS"/>
-    <keyword type="constant" name="GST_CLIENT_STATUS_CLOSED" link="gst-plugins-base-plugins-multifdsink.html#GST-CLIENT-STATUS-CLOSED:CAPS"/>
-    <keyword type="constant" name="GST_CLIENT_STATUS_REMOVED" link="gst-plugins-base-plugins-multifdsink.html#GST-CLIENT-STATUS-REMOVED:CAPS"/>
-    <keyword type="constant" name="GST_CLIENT_STATUS_SLOW" link="gst-plugins-base-plugins-multifdsink.html#GST-CLIENT-STATUS-SLOW:CAPS"/>
-    <keyword type="constant" name="GST_CLIENT_STATUS_ERROR" link="gst-plugins-base-plugins-multifdsink.html#GST-CLIENT-STATUS-ERROR:CAPS"/>
-    <keyword type="constant" name="GST_CLIENT_STATUS_DUPLICATE" link="gst-plugins-base-plugins-multifdsink.html#GST-CLIENT-STATUS-DUPLICATE:CAPS"/>
-    <keyword type="constant" name="GST_CLIENT_STATUS_FLUSHING" link="gst-plugins-base-plugins-multifdsink.html#GST-CLIENT-STATUS-FLUSHING:CAPS"/>
-    <keyword type="constant" name="GST_RECOVER_POLICY_NONE" link="gst-plugins-base-plugins-multisocketsink.html#GST-RECOVER-POLICY-NONE:CAPS"/>
-    <keyword type="constant" name="GST_RECOVER_POLICY_RESYNC_LATEST" link="gst-plugins-base-plugins-multisocketsink.html#GST-RECOVER-POLICY-RESYNC-LATEST:CAPS"/>
-    <keyword type="constant" name="GST_RECOVER_POLICY_RESYNC_SOFT_LIMIT" link="gst-plugins-base-plugins-multisocketsink.html#GST-RECOVER-POLICY-RESYNC-SOFT-LIMIT:CAPS"/>
-    <keyword type="constant" name="GST_RECOVER_POLICY_RESYNC_KEYFRAME" link="gst-plugins-base-plugins-multisocketsink.html#GST-RECOVER-POLICY-RESYNC-KEYFRAME:CAPS"/>
-    <keyword type="constant" name="GST_SYNC_METHOD_LATEST" link="gst-plugins-base-plugins-multisocketsink.html#GST-SYNC-METHOD-LATEST:CAPS"/>
-    <keyword type="constant" name="GST_SYNC_METHOD_NEXT_KEYFRAME" link="gst-plugins-base-plugins-multisocketsink.html#GST-SYNC-METHOD-NEXT-KEYFRAME:CAPS"/>
-    <keyword type="constant" name="GST_SYNC_METHOD_LATEST_KEYFRAME" link="gst-plugins-base-plugins-multisocketsink.html#GST-SYNC-METHOD-LATEST-KEYFRAME:CAPS"/>
-    <keyword type="constant" name="GST_SYNC_METHOD_BURST" link="gst-plugins-base-plugins-multisocketsink.html#GST-SYNC-METHOD-BURST:CAPS"/>
-    <keyword type="constant" name="GST_SYNC_METHOD_BURST_KEYFRAME" link="gst-plugins-base-plugins-multisocketsink.html#GST-SYNC-METHOD-BURST-KEYFRAME:CAPS"/>
-    <keyword type="constant" name="GST_SYNC_METHOD_BURST_WITH_KEYFRAME" link="gst-plugins-base-plugins-multisocketsink.html#GST-SYNC-METHOD-BURST-WITH-KEYFRAME:CAPS"/>
-    <keyword type="constant" name="GST_CLIENT_STATUS_OK" link="gst-plugins-base-plugins-multisocketsink.html#GST-CLIENT-STATUS-OK:CAPS"/>
-    <keyword type="constant" name="GST_CLIENT_STATUS_CLOSED" link="gst-plugins-base-plugins-multisocketsink.html#GST-CLIENT-STATUS-CLOSED:CAPS"/>
-    <keyword type="constant" name="GST_CLIENT_STATUS_REMOVED" link="gst-plugins-base-plugins-multisocketsink.html#GST-CLIENT-STATUS-REMOVED:CAPS"/>
-    <keyword type="constant" name="GST_CLIENT_STATUS_SLOW" link="gst-plugins-base-plugins-multisocketsink.html#GST-CLIENT-STATUS-SLOW:CAPS"/>
-    <keyword type="constant" name="GST_CLIENT_STATUS_ERROR" link="gst-plugins-base-plugins-multisocketsink.html#GST-CLIENT-STATUS-ERROR:CAPS"/>
-    <keyword type="constant" name="GST_CLIENT_STATUS_DUPLICATE" link="gst-plugins-base-plugins-multisocketsink.html#GST-CLIENT-STATUS-DUPLICATE:CAPS"/>
-    <keyword type="constant" name="GST_CLIENT_STATUS_FLUSHING" link="gst-plugins-base-plugins-multisocketsink.html#GST-CLIENT-STATUS-FLUSHING:CAPS"/>
-    <keyword type="constant" name="GST_PLAY_FLAG_VIDEO" link="gst-plugins-base-plugins-playbin.html#GST-PLAY-FLAG-VIDEO:CAPS"/>
-    <keyword type="constant" name="GST_PLAY_FLAG_AUDIO" link="gst-plugins-base-plugins-playbin.html#GST-PLAY-FLAG-AUDIO:CAPS"/>
-    <keyword type="constant" name="GST_PLAY_FLAG_TEXT" link="gst-plugins-base-plugins-playbin.html#GST-PLAY-FLAG-TEXT:CAPS"/>
-    <keyword type="constant" name="GST_PLAY_FLAG_VIS" link="gst-plugins-base-plugins-playbin.html#GST-PLAY-FLAG-VIS:CAPS"/>
-    <keyword type="constant" name="GST_PLAY_FLAG_SOFT_VOLUME" link="gst-plugins-base-plugins-playbin.html#GST-PLAY-FLAG-SOFT-VOLUME:CAPS"/>
-    <keyword type="constant" name="GST_PLAY_FLAG_NATIVE_AUDIO" link="gst-plugins-base-plugins-playbin.html#GST-PLAY-FLAG-NATIVE-AUDIO:CAPS"/>
-    <keyword type="constant" name="GST_PLAY_FLAG_NATIVE_VIDEO" link="gst-plugins-base-plugins-playbin.html#GST-PLAY-FLAG-NATIVE-VIDEO:CAPS"/>
-    <keyword type="constant" name="GST_PLAY_FLAG_DOWNLOAD" link="gst-plugins-base-plugins-playbin.html#GST-PLAY-FLAG-DOWNLOAD:CAPS"/>
-    <keyword type="constant" name="GST_PLAY_FLAG_BUFFERING" link="gst-plugins-base-plugins-playbin.html#GST-PLAY-FLAG-BUFFERING:CAPS"/>
-    <keyword type="constant" name="GST_PLAY_FLAG_DEINTERLACE" link="gst-plugins-base-plugins-playbin.html#GST-PLAY-FLAG-DEINTERLACE:CAPS"/>
-    <keyword type="constant" name="GST_PLAY_FLAG_SOFT_COLORBALANCE" link="gst-plugins-base-plugins-playbin.html#GST-PLAY-FLAG-SOFT-COLORBALANCE:CAPS"/>
-    <keyword type="constant" name="GST_PLAY_FLAG_FORCE_FILTERS" link="gst-plugins-base-plugins-playbin.html#GST-PLAY-FLAG-FORCE-FILTERS:CAPS"/>
+    <keyword type="constant" name="BITRATE_TYPE_CBR" link="gst-plugins-base-plugins-opusenc.html#BITRATE-TYPE-CBR:CAPS"/>
+    <keyword type="constant" name="BITRATE_TYPE_VBR" link="gst-plugins-base-plugins-opusenc.html#BITRATE-TYPE-VBR:CAPS"/>
+    <keyword type="constant" name="BITRATE_TYPE_CONSTRAINED_VBR" link="gst-plugins-base-plugins-opusenc.html#BITRATE-TYPE-CONSTRAINED-VBR:CAPS"/>
+    <keyword type="constant" name="GST_TEXT_RENDER_HALIGN_LEFT" link="gst-plugins-base-plugins-textrender.html#GST-TEXT-RENDER-HALIGN-LEFT:CAPS"/>
+    <keyword type="constant" name="GST_TEXT_RENDER_HALIGN_CENTER" link="gst-plugins-base-plugins-textrender.html#GST-TEXT-RENDER-HALIGN-CENTER:CAPS"/>
+    <keyword type="constant" name="GST_TEXT_RENDER_HALIGN_RIGHT" link="gst-plugins-base-plugins-textrender.html#GST-TEXT-RENDER-HALIGN-RIGHT:CAPS"/>
+    <keyword type="constant" name="GST_TEXT_RENDER_LINE_ALIGN_LEFT" link="gst-plugins-base-plugins-textrender.html#GST-TEXT-RENDER-LINE-ALIGN-LEFT:CAPS"/>
+    <keyword type="constant" name="GST_TEXT_RENDER_LINE_ALIGN_CENTER" link="gst-plugins-base-plugins-textrender.html#GST-TEXT-RENDER-LINE-ALIGN-CENTER:CAPS"/>
+    <keyword type="constant" name="GST_TEXT_RENDER_LINE_ALIGN_RIGHT" link="gst-plugins-base-plugins-textrender.html#GST-TEXT-RENDER-LINE-ALIGN-RIGHT:CAPS"/>
+    <keyword type="constant" name="GST_TEXT_RENDER_VALIGN_BASELINE" link="gst-plugins-base-plugins-textrender.html#GST-TEXT-RENDER-VALIGN-BASELINE:CAPS"/>
+    <keyword type="constant" name="GST_TEXT_RENDER_VALIGN_BOTTOM" link="gst-plugins-base-plugins-textrender.html#GST-TEXT-RENDER-VALIGN-BOTTOM:CAPS"/>
+    <keyword type="constant" name="GST_TEXT_RENDER_VALIGN_TOP" link="gst-plugins-base-plugins-textrender.html#GST-TEXT-RENDER-VALIGN-TOP:CAPS"/>
     <keyword type="constant" name="MULTIPASS_MODE_SINGLE_PASS" link="gst-plugins-base-plugins-theoraenc.html#MULTIPASS-MODE-SINGLE-PASS:CAPS"/>
     <keyword type="constant" name="MULTIPASS_MODE_FIRST_PASS" link="gst-plugins-base-plugins-theoraenc.html#MULTIPASS-MODE-FIRST-PASS:CAPS"/>
     <keyword type="constant" name="MULTIPASS_MODE_SECOND_PASS" link="gst-plugins-base-plugins-theoraenc.html#MULTIPASS-MODE-SECOND-PASS:CAPS"/>
     <keyword type="constant" name="GST_TIME_OVERLAY_TIME_LINE_BUFFER_TIME" link="gst-plugins-base-plugins-timeoverlay.html#GST-TIME-OVERLAY-TIME-LINE-BUFFER-TIME:CAPS"/>
     <keyword type="constant" name="GST_TIME_OVERLAY_TIME_LINE_STREAM_TIME" link="gst-plugins-base-plugins-timeoverlay.html#GST-TIME-OVERLAY-TIME-LINE-STREAM-TIME:CAPS"/>
     <keyword type="constant" name="GST_TIME_OVERLAY_TIME_LINE_RUNNING_TIME" link="gst-plugins-base-plugins-timeoverlay.html#GST-TIME-OVERLAY-TIME-LINE-RUNNING-TIME:CAPS"/>
-    <keyword type="constant" name="GST_AUTOPLUG_SELECT_TRY" link="gst-plugins-base-plugins-uridecodebin.html#GST-AUTOPLUG-SELECT-TRY:CAPS"/>
-    <keyword type="constant" name="GST_AUTOPLUG_SELECT_EXPOSE" link="gst-plugins-base-plugins-uridecodebin.html#GST-AUTOPLUG-SELECT-EXPOSE:CAPS"/>
-    <keyword type="constant" name="GST_AUTOPLUG_SELECT_SKIP" link="gst-plugins-base-plugins-uridecodebin.html#GST-AUTOPLUG-SELECT-SKIP:CAPS"/>
     <keyword type="constant" name="GST_VIDEO_SCALE_NEAREST" link="gst-plugins-base-plugins-videoscale.html#GST-VIDEO-SCALE-NEAREST:CAPS"/>
     <keyword type="constant" name="GST_VIDEO_SCALE_BILINEAR" link="gst-plugins-base-plugins-videoscale.html#GST-VIDEO-SCALE-BILINEAR:CAPS"/>
     <keyword type="constant" name="GST_VIDEO_SCALE_4TAP" link="gst-plugins-base-plugins-videoscale.html#GST-VIDEO-SCALE-4TAP:CAPS"/>
diff --git a/docs/plugins/html/gst-plugins-base-plugins-alsamidisrc.html b/docs/plugins/html/gst-plugins-base-plugins-alsamidisrc.html
index 6eccbc8..cc67f87 100644
--- a/docs/plugins/html/gst-plugins-base-plugins-alsamidisrc.html
+++ b/docs/plugins/html/gst-plugins-base-plugins-alsamidisrc.html
@@ -75,10 +75,29 @@
 </div>
 <div class="refsect1">
 <a name="gst-plugins-base-plugins-alsamidisrc.description"></a><h2>Description</h2>
+<p>The alsamidisrc element is an element that fetches ALSA MIDI sequencer
+events and makes them available to elements understanding
+audio/x-midi-events in their sink pads.</p>
+<p>It can be used to generate notes from a MIDI input device.</p>
+<div class="refsect2">
+<a name="id-1.2.3.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>v alsamidisrc ports<span class="gtkdoc opt">=</span><span class="number">129</span><span class="gtkdoc opt">:</span><span class="number">0</span> <span class="gtkdoc opt">!</span> fluiddec <span class="gtkdoc opt">!</span> audioconvert <span class="gtkdoc opt">!</span> autoaudiosink</pre></td>
+      </tr>
+    </tbody>
+  </table>
+</div>
+ This pipeline will listen for events from the sequencer device at port 129:0,
+and generate notes using the fluiddec element.
+</div>
 <div class="refsynopsisdiv">
 <h2>Synopsis</h2>
 <div class="refsect2">
-<a name="id-1.2.3.7.2.1"></a><h3>Element Information</h3>
+<a name="id-1.2.3.7.5.1"></a><h3>Element Information</h3>
 <div class="variablelist"><table border="0" class="variablelist">
 <colgroup>
 <col align="left" valign="top">
@@ -104,7 +123,7 @@
 </div>
 <hr>
 <div class="refsect2">
-<a name="id-1.2.3.7.2.2"></a><h3>Element Pads</h3>
+<a name="id-1.2.3.7.5.2"></a><h3>Element Pads</h3>
 <div class="variablelist"><table border="0" class="variablelist">
 <colgroup>
 <col align="left" valign="top">
@@ -141,6 +160,7 @@
 <div class="refsect2">
 <a name="GstAlsaMidiSrc-struct"></a><h3>struct GstAlsaMidiSrc</h3>
 <pre class="programlisting">struct GstAlsaMidiSrc;</pre>
+<p>Opaque <a class="link" href="gst-plugins-base-plugins-alsamidisrc.html#GstAlsaMidiSrc"><span class="type">GstAlsaMidiSrc</span></a> data structure.</p>
 </div>
 </div>
 <div class="refsect1">
@@ -153,6 +173,10 @@
 <p>Default value: NULL</p>
 </div>
 </div>
+<div class="refsect1">
+<a name="gst-plugins-base-plugins-alsamidisrc.see-also"></a><h2>See Also</h2>
+<p><a href="/usr/share/gtk-doc/html/gstreamer-libs-1.0GstPushSrc.html#GstPushSrc-struct"><span class="type">GstPushSrc</span></a></p>
+</div>
 </div>
 <div class="footer">
 <hr>Generated by GTK-Doc V1.25</div>
diff --git a/docs/plugins/html/gst-plugins-base-plugins-alsasink.html b/docs/plugins/html/gst-plugins-base-plugins-alsasink.html
index 77d354c..8ac5951 100644
--- a/docs/plugins/html/gst-plugins-base-plugins-alsasink.html
+++ b/docs/plugins/html/gst-plugins-base-plugins-alsasink.html
@@ -7,7 +7,7 @@
 <link rel="home" href="index.html" title="GStreamer Base Plugins 1.0 Plugins Reference Manual">
 <link rel="up" href="ch01.html" title="gst-plugins-base Elements">
 <link rel="prev" href="gst-plugins-base-plugins-alsamidisrc.html" title="alsamidisrc">
-<link rel="next" href="gst-plugins-base-plugins-alsasrc.html" title="alsasrc">
+<link rel="next" href="gst-plugins-base-plugins-appsink.html" title="appsink">
 <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-base-plugins-alsamidisrc.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td>
-<td><a accesskey="n" href="gst-plugins-base-plugins-alsasrc.html"><img src="right.png" width="16" height="16" border="0" alt="Next"></a></td>
+<td><a accesskey="n" href="gst-plugins-base-plugins-appsink.html"><img src="right.png" width="16" height="16" border="0" alt="Next"></a></td>
 </tr></table>
 <div class="refentry">
 <a name="gst-plugins-base-plugins-alsasink"></a><div class="titlepage"></div>
@@ -90,10 +90,25 @@
 </div>
 <div class="refsect1">
 <a name="gst-plugins-base-plugins-alsasink.description"></a><h2>Description</h2>
+<p>This element renders audio samples using the ALSA audio API.</p>
+<div class="refsect2">
+<a name="id-1.2.4.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> <span class="gtkdoc opt">-</span>v uridecodebin uri<span class="gtkdoc opt">=</span>file<span class="gtkdoc opt">:</span><span class="gtkdoc slc">///path/to/audio.ogg ! audioconvert ! audioresample ! autoaudiosink</span></pre></td>
+      </tr>
+    </tbody>
+  </table>
+</div>
+ Play an Ogg/Vorbis file and output audio via ALSA.
+</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">
@@ -119,7 +134,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">
@@ -172,6 +187,7 @@
 <div class="refsect2">
 <a name="GstAlsaSink-struct"></a><h3>struct GstAlsaSink</h3>
 <pre class="programlisting">struct GstAlsaSink;</pre>
+<p>Opaque data structure</p>
 </div>
 </div>
 <div class="refsect1">
@@ -200,6 +216,10 @@
 <p>Default value: ""</p>
 </div>
 </div>
+<div class="refsect1">
+<a name="gst-plugins-base-plugins-alsasink.see-also"></a><h2>See Also</h2>
+<p>alsasrc</p>
+</div>
 </div>
 <div class="footer">
 <hr>Generated by GTK-Doc V1.25</div>
diff --git a/docs/plugins/html/gst-plugins-base-plugins-alsasrc.html b/docs/plugins/html/gst-plugins-base-plugins-alsasrc.html
index 1ce9fb2..54ea73f 100644
--- a/docs/plugins/html/gst-plugins-base-plugins-alsasrc.html
+++ b/docs/plugins/html/gst-plugins-base-plugins-alsasrc.html
@@ -6,8 +6,8 @@
 <meta name="generator" content="DocBook XSL Stylesheets V1.79.1">
 <link rel="home" href="index.html" title="GStreamer Base Plugins 1.0 Plugins Reference Manual">
 <link rel="up" href="ch01.html" title="gst-plugins-base Elements">
-<link rel="prev" href="gst-plugins-base-plugins-alsasink.html" title="alsasink">
-<link rel="next" href="gst-plugins-base-plugins-appsink.html" title="appsink">
+<link rel="prev" href="gst-plugins-base-plugins-appsink.html" title="appsink">
+<link rel="next" href="gst-plugins-base-plugins-appsrc.html" title="appsrc">
 <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-base-plugins-alsasink.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td>
-<td><a accesskey="n" href="gst-plugins-base-plugins-appsink.html"><img src="right.png" width="16" height="16" border="0" alt="Next"></a></td>
+<td><a accesskey="p" href="gst-plugins-base-plugins-appsink.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td>
+<td><a accesskey="n" href="gst-plugins-base-plugins-appsrc.html"><img src="right.png" width="16" height="16" border="0" alt="Next"></a></td>
 </tr></table>
 <div class="refentry">
 <a name="gst-plugins-base-plugins-alsasrc"></a><div class="titlepage"></div>
@@ -91,10 +91,25 @@
 </div>
 <div class="refsect1">
 <a name="gst-plugins-base-plugins-alsasrc.description"></a><h2>Description</h2>
+<p>This element reads data from an audio card using the ALSA API.</p>
+<div class="refsect2">
+<a name="id-1.2.6.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> <span class="gtkdoc opt">-</span>v alsasrc <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>alsasrc<span class="gtkdoc opt">.</span>ogg</pre></td>
+      </tr>
+    </tbody>
+  </table>
+</div>
+ Record from a sound card using ALSA and encode to Ogg/Vorbis.
+</div>
 <div class="refsynopsisdiv">
 <h2>Synopsis</h2>
 <div class="refsect2">
-<a name="id-1.2.5.7.2.1"></a><h3>Element Information</h3>
+<a name="id-1.2.6.7.4.1"></a><h3>Element Information</h3>
 <div class="variablelist"><table border="0" class="variablelist">
 <colgroup>
 <col align="left" valign="top">
@@ -120,7 +135,7 @@
 </div>
 <hr>
 <div class="refsect2">
-<a name="id-1.2.5.7.2.2"></a><h3>Element Pads</h3>
+<a name="id-1.2.6.7.4.2"></a><h3>Element Pads</h3>
 <div class="variablelist"><table border="0" class="variablelist">
 <colgroup>
 <col align="left" valign="top">
@@ -157,6 +172,7 @@
 <div class="refsect2">
 <a name="GstAlsaSrc-struct"></a><h3>struct GstAlsaSrc</h3>
 <pre class="programlisting">struct GstAlsaSrc;</pre>
+<p>Opaque data structure</p>
 </div>
 </div>
 <div class="refsect1">
@@ -185,6 +201,10 @@
 <p>Default value: ""</p>
 </div>
 </div>
+<div class="refsect1">
+<a name="gst-plugins-base-plugins-alsasrc.see-also"></a><h2>See Also</h2>
+<p>alsasink</p>
+</div>
 </div>
 <div class="footer">
 <hr>Generated by GTK-Doc V1.25</div>
diff --git a/docs/plugins/html/gst-plugins-base-plugins-appsink.html b/docs/plugins/html/gst-plugins-base-plugins-appsink.html
index 5169cdf..2166800 100644
--- a/docs/plugins/html/gst-plugins-base-plugins-appsink.html
+++ b/docs/plugins/html/gst-plugins-base-plugins-appsink.html
@@ -6,8 +6,8 @@
 <meta name="generator" content="DocBook XSL Stylesheets V1.79.1">
 <link rel="home" href="index.html" title="GStreamer Base Plugins 1.0 Plugins Reference Manual">
 <link rel="up" href="ch01.html" title="gst-plugins-base Elements">
-<link rel="prev" href="gst-plugins-base-plugins-alsasrc.html" title="alsasrc">
-<link rel="next" href="gst-plugins-base-plugins-appsrc.html" title="appsrc">
+<link rel="prev" href="gst-plugins-base-plugins-alsasink.html" title="alsasink">
+<link rel="next" href="gst-plugins-base-plugins-alsasrc.html" title="alsasrc">
 <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-base-plugins-alsasrc.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td>
-<td><a accesskey="n" href="gst-plugins-base-plugins-appsrc.html"><img src="right.png" width="16" height="16" border="0" alt="Next"></a></td>
+<td><a accesskey="p" href="gst-plugins-base-plugins-alsasink.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td>
+<td><a accesskey="n" href="gst-plugins-base-plugins-alsasrc.html"><img src="right.png" width="16" height="16" border="0" alt="Next"></a></td>
 </tr></table>
 <div class="refentry">
 <a name="gst-plugins-base-plugins-appsink"></a><div class="titlepage"></div>
@@ -157,7 +157,7 @@
 <div class="refsynopsisdiv">
 <h2>Synopsis</h2>
 <div class="refsect2">
-<a name="id-1.2.6.9.6.1"></a><h3>Element Information</h3>
+<a name="id-1.2.5.9.6.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.6.9.6.2"></a><h3>Element Pads</h3>
+<a name="id-1.2.5.9.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-base-plugins-appsrc.html b/docs/plugins/html/gst-plugins-base-plugins-appsrc.html
index 5877cde..aef1122 100644
--- a/docs/plugins/html/gst-plugins-base-plugins-appsrc.html
+++ b/docs/plugins/html/gst-plugins-base-plugins-appsrc.html
@@ -6,7 +6,7 @@
 <meta name="generator" content="DocBook XSL Stylesheets V1.79.1">
 <link rel="home" href="index.html" title="GStreamer Base Plugins 1.0 Plugins Reference Manual">
 <link rel="up" href="ch01.html" title="gst-plugins-base Elements">
-<link rel="prev" href="gst-plugins-base-plugins-appsink.html" title="appsink">
+<link rel="prev" href="gst-plugins-base-plugins-alsasrc.html" title="alsasrc">
 <link rel="next" href="gst-plugins-base-plugins-audioconvert.html" title="audioconvert">
 <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-base-plugins-appsink.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td>
+<td><a accesskey="p" href="gst-plugins-base-plugins-alsasrc.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td>
 <td><a accesskey="n" href="gst-plugins-base-plugins-audioconvert.html"><img src="right.png" width="16" height="16" border="0" alt="Next"></a></td>
 </tr></table>
 <div class="refentry">
@@ -105,6 +105,11 @@
 <td class="property_name"><a class="link" href="gst-plugins-base-plugins-appsrc.html#GstAppSrc--stream-type" title="The “stream-type” property">stream-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#guint64"><span class="type">guint64</span></a></td>
+<td class="property_name"><a class="link" href="gst-plugins-base-plugins-appsrc.html#GstAppSrc--duration" title="The “duration” property">duration</a></td>
+<td class="property_flags">Read / Write</td>
+</tr>
 </tbody>
 </table></div>
 </div>
@@ -355,6 +360,14 @@
 <p>Flags: Read / Write</p>
 <p>Default value: GST_APP_STREAM_TYPE_STREAM</p>
 </div>
+<hr>
+<div class="refsect2">
+<a name="GstAppSrc--duration"></a><h3>The <code class="literal">“duration”</code> property</h3>
+<pre class="programlisting">  “duration”                 <a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#guint64"><span class="type">guint64</span></a></pre>
+<p>The duration of the data stream in nanoseconds (GST_CLOCK_TIME_NONE if unknown).</p>
+<p>Flags: Read / Write</p>
+<p>Default value: 18446744073709551615</p>
+</div>
 </div>
 <div class="refsect1">
 <a name="gst-plugins-base-plugins-appsrc.signal-details"></a><h2>Signal Details</h2>
diff --git a/docs/plugins/html/gst-plugins-base-plugins-audioresample.html b/docs/plugins/html/gst-plugins-base-plugins-audioresample.html
index feab78d..9106cfa 100644
--- a/docs/plugins/html/gst-plugins-base-plugins-audioresample.html
+++ b/docs/plugins/html/gst-plugins-base-plugins-audioresample.html
@@ -53,10 +53,20 @@
 <td class="property_flags">Read / Write</td>
 </tr>
 <tr>
-<td class="property_type"><span class="type">SpeexResamplerSincFilterMode</span></td>
+<td class="property_type"><span class="type">GstAudioResamplerFilterMode</span></td>
 <td class="property_name"><a class="link" href="gst-plugins-base-plugins-audioresample.html#GstAudioResample--sinc-filter-mode" title="The “sinc-filter-mode” property">sinc-filter-mode</a></td>
 <td class="property_flags">Read / Write</td>
 </tr>
+<tr>
+<td class="property_type"><span class="type">GstAudioResamplerMethod</span></td>
+<td class="property_name"><a class="link" href="gst-plugins-base-plugins-audioresample.html#GstAudioResample--resample-method" title="The “resample-method” property">resample-method</a></td>
+<td class="property_flags">Read / Write</td>
+</tr>
+<tr>
+<td class="property_type"><span class="type">GstAudioResamplerFilterInterpolation</span></td>
+<td class="property_name"><a class="link" href="gst-plugins-base-plugins-audioresample.html#GstAudioResample--sinc-filter-interpolation" title="The “sinc-filter-interpolation” property">sinc-filter-interpolation</a></td>
+<td class="property_flags">Read / Write</td>
+</tr>
 </tbody>
 </table></div>
 </div>
@@ -160,7 +170,7 @@
 </tr>
 <tr>
 <td><p><span class="term">details</span></p></td>
-<td>audio/x-raw, format=(string){ F32LE, F64LE, S32LE, S24LE, S16LE, S8 }, rate=(int)[ 1, 2147483647 ], channels=(int)[ 1, 2147483647 ], layout=(string){ interleaved, non-interleaved }</td>
+<td>audio/x-raw, format=(string){ S8, U8, S16LE, S16BE, U16LE, U16BE, S24_32LE, S24_32BE, U24_32LE, U24_32BE, S32LE, S32BE, U32LE, U32BE, S24LE, S24BE, U24LE, U24BE, S20LE, S20BE, U20LE, U20BE, S18LE, S18BE, U18LE, U18BE, F32LE, F32BE, F64LE, F64BE }, rate=(int)[ 1, 2147483647 ], channels=(int)[ 1, 2147483647 ], layout=(string){ interleaved, non-interleaved }</td>
 </tr>
 </tbody>
 </table></div>
@@ -184,7 +194,7 @@
 </tr>
 <tr>
 <td><p><span class="term">details</span></p></td>
-<td>audio/x-raw, format=(string){ F32LE, F64LE, S32LE, S24LE, S16LE, S8 }, rate=(int)[ 1, 2147483647 ], channels=(int)[ 1, 2147483647 ], layout=(string){ interleaved, non-interleaved }</td>
+<td>audio/x-raw, format=(string){ S8, U8, S16LE, S16BE, U16LE, U16BE, S24_32LE, S24_32BE, U24_32LE, U24_32BE, S32LE, S32BE, U32LE, U32BE, S24LE, S24BE, U24LE, U24BE, S20LE, S20BE, U20LE, U20BE, S18LE, S18BE, U18LE, U18BE, F32LE, F32BE, F64LE, F64BE }, rate=(int)[ 1, 2147483647 ], channels=(int)[ 1, 2147483647 ], layout=(string){ interleaved, non-interleaved }</td>
 </tr>
 </tbody>
 </table></div>
@@ -224,10 +234,26 @@
 <hr>
 <div class="refsect2">
 <a name="GstAudioResample--sinc-filter-mode"></a><h3>The <code class="literal">“sinc-filter-mode”</code> property</h3>
-<pre class="programlisting">  “sinc-filter-mode”         <span class="type">SpeexResamplerSincFilterMode</span></pre>
+<pre class="programlisting">  “sinc-filter-mode”         <span class="type">GstAudioResamplerFilterMode</span></pre>
 <p>What sinc filter table mode to use.</p>
 <p>Flags: Read / Write</p>
-<p>Default value: Use full table if table size below threshold</p>
+<p>Default value: GST_AUDIO_RESAMPLER_FILTER_MODE_AUTO</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="GstAudioResample--resample-method"></a><h3>The <code class="literal">“resample-method”</code> property</h3>
+<pre class="programlisting">  “resample-method”          <span class="type">GstAudioResamplerMethod</span></pre>
+<p>What resample method to use.</p>
+<p>Flags: Read / Write</p>
+<p>Default value: GST_AUDIO_RESAMPLER_METHOD_KAISER</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="GstAudioResample--sinc-filter-interpolation"></a><h3>The <code class="literal">“sinc-filter-interpolation”</code> property</h3>
+<pre class="programlisting">  “sinc-filter-interpolation” <span class="type">GstAudioResamplerFilterInterpolation</span></pre>
+<p>How to interpolate the sinc filter table.</p>
+<p>Flags: Read / Write</p>
+<p>Default value: GST_AUDIO_RESAMPLER_FILTER_INTERPOLATION_CUBIC</p>
 </div>
 </div>
 </div>
diff --git a/docs/plugins/html/gst-plugins-base-plugins-cdparanoiasrc.html b/docs/plugins/html/gst-plugins-base-plugins-cdparanoiasrc.html
index d1abe49..e057f5b 100644
--- a/docs/plugins/html/gst-plugins-base-plugins-cdparanoiasrc.html
+++ b/docs/plugins/html/gst-plugins-base-plugins-cdparanoiasrc.html
@@ -194,6 +194,7 @@
 <div class="refsect2">
 <a name="GstCdParanoiaSrc-struct"></a><h3>struct GstCdParanoiaSrc</h3>
 <pre class="programlisting">struct GstCdParanoiaSrc;</pre>
+<p>The cdparanoia object structure.</p>
 </div>
 </div>
 <div class="refsect1">
@@ -201,7 +202,7 @@
 <div class="refsect2">
 <a name="GstCdParanoiaSrc--cache-size"></a><h3>The <code class="literal">“cache-size”</code> property</h3>
 <pre class="programlisting">  “cache-size”               <a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#gint"><span class="type">gint</span></a></pre>
-<p>Set CD cache size to n sectors (-1 = auto).</p>
+<p>Set CD cache size to n sectors (-1 = auto)</p>
 <p>Flags: Read / Write</p>
 <p>Allowed values: &gt;= G_MAXULONG</p>
 <p>Default value: -1</p>
@@ -246,18 +247,76 @@
 <div class="refsect2">
 <a name="GstCdParanoiaSrc-transport-error"></a><h3>The <code class="literal">“transport-error”</code> signal</h3>
 <pre class="programlisting"><span class="returnvalue">void</span>
-user_function (<a class="link" href="gst-plugins-base-plugins-cdparanoiasrc.html#GstCdParanoiaSrc"><span class="type">GstCdParanoiaSrc</span></a> *gstcdparanoiasrc,
-               <a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#gint"><span class="type">gint</span></a>              arg1,
+user_function (<a class="link" href="gst-plugins-base-plugins-cdparanoiasrc.html#GstCdParanoiaSrc"><span class="type">GstCdParanoiaSrc</span></a> *cdparanoia,
+               <a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#gint"><span class="type">gint</span></a>              sector,
                <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 whenever an error occurs while reading.
+CdParanoia will attempt to recover the data.</p>
+<div class="refsect3">
+<a name="GstCdParanoiaSrc-transport-error.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>cdparanoia</p></td>
+<td class="parameter_description"><p>The CdParanoia instance</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>sector</p></td>
+<td class="parameter_description"><p>The sector number at which the error was encountered.</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>
 </div>
 <hr>
 <div class="refsect2">
 <a name="GstCdParanoiaSrc-uncorrected-error"></a><h3>The <code class="literal">“uncorrected-error”</code> signal</h3>
 <pre class="programlisting"><span class="returnvalue">void</span>
-user_function (<a class="link" href="gst-plugins-base-plugins-cdparanoiasrc.html#GstCdParanoiaSrc"><span class="type">GstCdParanoiaSrc</span></a> *gstcdparanoiasrc,
-               <a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#gint"><span class="type">gint</span></a>              arg1,
+user_function (<a class="link" href="gst-plugins-base-plugins-cdparanoiasrc.html#GstCdParanoiaSrc"><span class="type">GstCdParanoiaSrc</span></a> *cdparanoia,
+               <a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#gint"><span class="type">gint</span></a>              sector,
                <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 whenever an uncorrectable error occurs while
+reading. The data could not be read.</p>
+<div class="refsect3">
+<a name="GstCdParanoiaSrc-uncorrected-error.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>cdparanoia</p></td>
+<td class="parameter_description"><p>The CdParanoia instance</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>sector</p></td>
+<td class="parameter_description"><p>The sector number at which the error was encountered.</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>
 </div>
 </div>
diff --git a/docs/plugins/html/gst-plugins-base-plugins-clockoverlay.html b/docs/plugins/html/gst-plugins-base-plugins-clockoverlay.html
index 7a7d8dd..d7c0dbc 100644
--- a/docs/plugins/html/gst-plugins-base-plugins-clockoverlay.html
+++ b/docs/plugins/html/gst-plugins-base-plugins-clockoverlay.html
@@ -74,10 +74,43 @@
 </div>
 <div class="refsect1">
 <a name="gst-plugins-base-plugins-clockoverlay.description"></a><h2>Description</h2>
+<p>This element overlays the current clock time on top of a video
+stream. You can position the text and configure the font details
+using the properties of the <span class="type">GstBaseTextOverlay</span> class. By default, the
+time is displayed in the top left corner of the picture, with some
+padding to the left and to the top.</p>
+<div class="refsect2">
+<a name="id-1.2.13.7.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> <span class="gtkdoc opt">-</span>v videotestsrc <span class="gtkdoc opt">!</span> clockoverlay <span class="gtkdoc opt">!</span> autovideosink</pre></td>
+      </tr>
+    </tbody>
+  </table>
+</div>
+ Display the current wall clock time in the top left corner of the video picture
+<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> clockoverlay halignment<span class="gtkdoc opt">=</span>right valignment<span class="gtkdoc opt">=</span>bottom text<span class="gtkdoc opt">=</span><span class="string">&quot;Edge City&quot;</span> shaded<span class="gtkdoc opt">-</span>background<span class="gtkdoc opt">=</span><span class="keyword">true</span> font<span class="gtkdoc opt">-</span>desc<span class="gtkdoc opt">=</span><span class="string">&quot;Sans, 36&quot;</span> <span class="gtkdoc opt">!</span> videoconvert <span class="gtkdoc opt">!</span> autovideosink</pre></td>
+      </tr>
+    </tbody>
+  </table>
+</div>
+ Another pipeline that displays the current time with some leading
+text in the bottom right corner of the video picture, with the background
+of the text being shaded in order to make it more legible on top of a
+bright video background.
+</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.4.1"></a><h3>Element Information</h3>
 <div class="variablelist"><table border="0" class="variablelist">
 <colgroup>
 <col align="left" valign="top">
@@ -103,7 +136,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.4.2"></a><h3>Element Pads</h3>
 <div class="variablelist"><table border="0" class="variablelist">
 <colgroup>
 <col align="left" valign="top">
@@ -128,7 +161,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>
@@ -156,7 +189,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>
@@ -172,6 +205,7 @@
 <div class="refsect2">
 <a name="GstClockOverlay-struct"></a><h3>struct GstClockOverlay</h3>
 <pre class="programlisting">struct GstClockOverlay;</pre>
+<p>Opaque clockoverlay data structure.</p>
 </div>
 </div>
 <div class="refsect1">
@@ -184,6 +218,10 @@
 <p>Default value: "%H:%M:%S"</p>
 </div>
 </div>
+<div class="refsect1">
+<a name="gst-plugins-base-plugins-clockoverlay.see-also"></a><h2>See Also</h2>
+<p><span class="type">GstBaseTextOverlay</span>, <a class="link" href="gst-plugins-base-plugins-timeoverlay.html#GstTimeOverlay"><span class="type">GstTimeOverlay</span></a></p>
+</div>
 </div>
 <div class="footer">
 <hr>Generated by GTK-Doc V1.25</div>
diff --git a/docs/plugins/html/gst-plugins-base-plugins-decodebin.html b/docs/plugins/html/gst-plugins-base-plugins-decodebin.html
index c8a154c..d934a88 100644
--- a/docs/plugins/html/gst-plugins-base-plugins-decodebin.html
+++ b/docs/plugins/html/gst-plugins-base-plugins-decodebin.html
@@ -136,7 +136,7 @@
 <td class="signal_flags"><a href="/usr/share/gtk-doc/html/gobjectgobject-Signals.html#G-SIGNAL-RUN-LAST:CAPS">Run Last</a></td>
 </tr>
 <tr>
-<td class="signal_type"><a class="link" href="gst-plugins-base-plugins-uridecodebin.html#GstAutoplugSelectResult" title="enum GstAutoplugSelectResult"><span class="returnvalue">GstAutoplugSelectResult</span></a></td>
+<td class="signal_type"><a href="/usr/share/gtk-doc/html/gst-plugins-base-plugins-1.0gst-plugins-base-plugins-uridecodebin.html#GstAutoplugSelectResult"><span class="returnvalue">GstAutoplugSelectResult</span></a></td>
 <td class="signal_name"><a class="link" href="gst-plugins-base-plugins-decodebin.html#GstDecodeBin-autoplug-select" title="The “autoplug-select” signal">autoplug-select</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>
@@ -566,7 +566,7 @@
 <hr>
 <div class="refsect2">
 <a name="GstDecodeBin-autoplug-select"></a><h3>The <code class="literal">“autoplug-select”</code> signal</h3>
-<pre class="programlisting"><a class="link" href="gst-plugins-base-plugins-uridecodebin.html#GstAutoplugSelectResult" title="enum GstAutoplugSelectResult"><span class="returnvalue">GstAutoplugSelectResult</span></a>
+<pre class="programlisting"><a href="/usr/share/gtk-doc/html/gst-plugins-base-plugins-1.0gst-plugins-base-plugins-uridecodebin.html#GstAutoplugSelectResult"><span class="returnvalue">GstAutoplugSelectResult</span></a>
 user_function (<a class="link" href="gst-plugins-base-plugins-decodebin.html#GstDecodeBin"><span class="type">GstDecodeBin</span></a>      *bin,
                <a href="/usr/share/gtk-doc/html/gstreamer-1.0GstPad.html#GstPad-struct"><span class="type">GstPad</span></a>            *pad,
                <a href="/usr/share/gtk-doc/html/gstreamer-1.0GstCaps.html#GstCaps-struct"><span class="type">GstCaps</span></a>           *caps,
@@ -578,13 +578,13 @@
 those factories, this signal is emitted.</p>
 <p>The signal handler should return a <span class="type">GST_TYPE_AUTOPLUG_SELECT_RESULT</span> enum
 value indicating what decodebin should do next.</p>
-<p>A value of <a class="link" href="gst-plugins-base-plugins-uridecodebin.html#GST-AUTOPLUG-SELECT-TRY:CAPS"><span class="type">GST_AUTOPLUG_SELECT_TRY</span></a> will try to autoplug an element from
+<p>A value of <a href="/usr/share/gtk-doc/html/gst-plugins-base-plugins-1.0gst-plugins-base-plugins-uridecodebin.html#GST-AUTOPLUG-SELECT-TRY:CAPS"><span class="type">GST_AUTOPLUG_SELECT_TRY</span></a> will try to autoplug an element from
 <em class="parameter"><code>factory</code></em>
 .</p>
-<p>A value of <a class="link" href="gst-plugins-base-plugins-uridecodebin.html#GST-AUTOPLUG-SELECT-EXPOSE:CAPS"><span class="type">GST_AUTOPLUG_SELECT_EXPOSE</span></a> will expose <em class="parameter"><code>pad</code></em>
+<p>A value of <a href="/usr/share/gtk-doc/html/gst-plugins-base-plugins-1.0gst-plugins-base-plugins-uridecodebin.html#GST-AUTOPLUG-SELECT-EXPOSE:CAPS"><span class="type">GST_AUTOPLUG_SELECT_EXPOSE</span></a> will expose <em class="parameter"><code>pad</code></em>
  without plugging
 any element to it.</p>
-<p>A value of <a class="link" href="gst-plugins-base-plugins-uridecodebin.html#GST-AUTOPLUG-SELECT-SKIP:CAPS"><span class="type">GST_AUTOPLUG_SELECT_SKIP</span></a> will skip <em class="parameter"><code>factory</code></em>
+<p>A value of <a href="/usr/share/gtk-doc/html/gst-plugins-base-plugins-1.0gst-plugins-base-plugins-uridecodebin.html#GST-AUTOPLUG-SELECT-SKIP:CAPS"><span class="type">GST_AUTOPLUG_SELECT_SKIP</span></a> will skip <em class="parameter"><code>factory</code></em>
  and move to the
 next factory.</p>
 <div class="note">
@@ -635,7 +635,7 @@
 <a name="GstDecodeBin-autoplug-select.returns"></a><h4>Returns</h4>
 <p> a <span class="type">GST_TYPE_AUTOPLUG_SELECT_RESULT</span> that indicates the required
 operation. the default handler will always return
-<a class="link" href="gst-plugins-base-plugins-uridecodebin.html#GST-AUTOPLUG-SELECT-TRY:CAPS"><span class="type">GST_AUTOPLUG_SELECT_TRY</span></a>.</p>
+<a href="/usr/share/gtk-doc/html/gst-plugins-base-plugins-1.0gst-plugins-base-plugins-uridecodebin.html#GST-AUTOPLUG-SELECT-TRY:CAPS"><span class="type">GST_AUTOPLUG_SELECT_TRY</span></a>.</p>
 </div>
 <p>Flags: <a href="/usr/share/gtk-doc/html/gobjectgobject-Signals.html#G-SIGNAL-RUN-LAST:CAPS">Run Last</a></p>
 </div>
diff --git a/docs/plugins/html/gst-plugins-base-plugins-multifdsink.html b/docs/plugins/html/gst-plugins-base-plugins-multifdsink.html
index 417635d..747143d 100644
--- a/docs/plugins/html/gst-plugins-base-plugins-multifdsink.html
+++ b/docs/plugins/html/gst-plugins-base-plugins-multifdsink.html
@@ -109,24 +109,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-base-plugins-multifdsink.html#GstMultiFdSink-struct" title="struct GstMultiFdSink">GstMultiFdSink</a></td>
-</tr>
-<tr>
-<td class="datatype_keyword">enum</td>
-<td class="function_name"><a class="link" href="gst-plugins-base-plugins-multifdsink.html#GstRecoverPolicy" title="enum GstRecoverPolicy">GstRecoverPolicy</a></td>
-</tr>
-<tr>
-<td class="datatype_keyword">enum</td>
-<td class="function_name"><a class="link" href="gst-plugins-base-plugins-multifdsink.html#GstSyncMethod" title="enum GstSyncMethod">GstSyncMethod</a></td>
-</tr>
-<tr>
-<td class="datatype_keyword">enum</td>
-<td class="function_name"><a class="link" href="gst-plugins-base-plugins-multifdsink.html#GstClientStatus" title="enum GstClientStatus">GstClientStatus</a></td>
-</tr>
-</tbody>
+</tr></tbody>
 </table></div>
 </div>
 <div class="refsect1">
@@ -274,182 +260,6 @@
 <pre class="programlisting">struct GstMultiFdSink;</pre>
 <p>The multifdsink object structure.</p>
 </div>
-<hr>
-<div class="refsect2">
-<a name="GstRecoverPolicy"></a><h3>enum GstRecoverPolicy</h3>
-<p>Possible values for the recovery procedure to use when a client consumes
-data too slow and has a backlag of more that soft-limit buffers.</p>
-<div class="refsect3">
-<a name="GstRecoverPolicy.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-RECOVER-POLICY-NONE:CAPS"></a>GST_RECOVER_POLICY_NONE</p></td>
-<td class="enum_member_description">
-<p>no recovering is done</p>
-</td>
-<td class="enum_member_annotations"> </td>
-</tr>
-<tr>
-<td class="enum_member_name"><p><a name="GST-RECOVER-POLICY-RESYNC-LATEST:CAPS"></a>GST_RECOVER_POLICY_RESYNC_LATEST</p></td>
-<td class="enum_member_description">
-<p>client is moved to last buffer</p>
-</td>
-<td class="enum_member_annotations"> </td>
-</tr>
-<tr>
-<td class="enum_member_name"><p><a name="GST-RECOVER-POLICY-RESYNC-SOFT-LIMIT:CAPS"></a>GST_RECOVER_POLICY_RESYNC_SOFT_LIMIT</p></td>
-<td class="enum_member_description">
-<p>client is moved to the soft limit</p>
-</td>
-<td class="enum_member_annotations"> </td>
-</tr>
-<tr>
-<td class="enum_member_name"><p><a name="GST-RECOVER-POLICY-RESYNC-KEYFRAME:CAPS"></a>GST_RECOVER_POLICY_RESYNC_KEYFRAME</p></td>
-<td class="enum_member_description">
-<p>client is moved to latest keyframe</p>
-</td>
-<td class="enum_member_annotations"> </td>
-</tr>
-</tbody>
-</table></div>
-</div>
-</div>
-<hr>
-<div class="refsect2">
-<a name="GstSyncMethod"></a><h3>enum GstSyncMethod</h3>
-<p>This enum defines the selection of the first buffer that is sent
-to a new client.</p>
-<div class="refsect3">
-<a name="GstSyncMethod.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-SYNC-METHOD-LATEST:CAPS"></a>GST_SYNC_METHOD_LATEST</p></td>
-<td class="enum_member_description">
-<p>client receives most recent buffer</p>
-</td>
-<td class="enum_member_annotations"> </td>
-</tr>
-<tr>
-<td class="enum_member_name"><p><a name="GST-SYNC-METHOD-NEXT-KEYFRAME:CAPS"></a>GST_SYNC_METHOD_NEXT_KEYFRAME</p></td>
-<td class="enum_member_description">
-<p>client receives next keyframe</p>
-</td>
-<td class="enum_member_annotations"> </td>
-</tr>
-<tr>
-<td class="enum_member_name"><p><a name="GST-SYNC-METHOD-LATEST-KEYFRAME:CAPS"></a>GST_SYNC_METHOD_LATEST_KEYFRAME</p></td>
-<td class="enum_member_description">
-<p>client receives latest keyframe (burst)</p>
-</td>
-<td class="enum_member_annotations"> </td>
-</tr>
-<tr>
-<td class="enum_member_name"><p><a name="GST-SYNC-METHOD-BURST:CAPS"></a>GST_SYNC_METHOD_BURST</p></td>
-<td class="enum_member_description">
-<p>client receives specific amount of data</p>
-</td>
-<td class="enum_member_annotations"> </td>
-</tr>
-<tr>
-<td class="enum_member_name"><p><a name="GST-SYNC-METHOD-BURST-KEYFRAME:CAPS"></a>GST_SYNC_METHOD_BURST_KEYFRAME</p></td>
-<td class="enum_member_description">
-<p>client receives specific amount of data 
-                                       starting from latest keyframe</p>
-</td>
-<td class="enum_member_annotations"> </td>
-</tr>
-<tr>
-<td class="enum_member_name"><p><a name="GST-SYNC-METHOD-BURST-WITH-KEYFRAME:CAPS"></a>GST_SYNC_METHOD_BURST_WITH_KEYFRAME</p></td>
-<td class="enum_member_description">
-<p>client receives specific amount of data from
-                                       a keyframe, or if there is not enough data after
-                                       the keyframe, starting before the keyframe</p>
-</td>
-<td class="enum_member_annotations"> </td>
-</tr>
-</tbody>
-</table></div>
-</div>
-</div>
-<hr>
-<div class="refsect2">
-<a name="GstClientStatus"></a><h3>enum GstClientStatus</h3>
-<p>This specifies the reason why a client was removed from
-multisocketsink and is received in the "client-removed" signal.</p>
-<div class="refsect3">
-<a name="GstClientStatus.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-CLIENT-STATUS-OK:CAPS"></a>GST_CLIENT_STATUS_OK</p></td>
-<td class="enum_member_description">
-<p>client is ok</p>
-</td>
-<td class="enum_member_annotations"> </td>
-</tr>
-<tr>
-<td class="enum_member_name"><p><a name="GST-CLIENT-STATUS-CLOSED:CAPS"></a>GST_CLIENT_STATUS_CLOSED</p></td>
-<td class="enum_member_description">
-<p>client closed the socket</p>
-</td>
-<td class="enum_member_annotations"> </td>
-</tr>
-<tr>
-<td class="enum_member_name"><p><a name="GST-CLIENT-STATUS-REMOVED:CAPS"></a>GST_CLIENT_STATUS_REMOVED</p></td>
-<td class="enum_member_description">
-<p>client is removed</p>
-</td>
-<td class="enum_member_annotations"> </td>
-</tr>
-<tr>
-<td class="enum_member_name"><p><a name="GST-CLIENT-STATUS-SLOW:CAPS"></a>GST_CLIENT_STATUS_SLOW</p></td>
-<td class="enum_member_description">
-<p>client is too slow</p>
-</td>
-<td class="enum_member_annotations"> </td>
-</tr>
-<tr>
-<td class="enum_member_name"><p><a name="GST-CLIENT-STATUS-ERROR:CAPS"></a>GST_CLIENT_STATUS_ERROR</p></td>
-<td class="enum_member_description">
-<p>client is in error</p>
-</td>
-<td class="enum_member_annotations"> </td>
-</tr>
-<tr>
-<td class="enum_member_name"><p><a name="GST-CLIENT-STATUS-DUPLICATE:CAPS"></a>GST_CLIENT_STATUS_DUPLICATE</p></td>
-<td class="enum_member_description">
-<p>same client added twice</p>
-</td>
-<td class="enum_member_annotations"> </td>
-</tr>
-<tr>
-<td class="enum_member_name"><p><a name="GST-CLIENT-STATUS-FLUSHING:CAPS"></a>GST_CLIENT_STATUS_FLUSHING</p></td>
-<td class="enum_member_description">
-<p>client is flushing out the remaining buffers.</p>
-</td>
-<td class="enum_member_annotations"> </td>
-</tr>
-</tbody>
-</table></div>
-</div>
-</div>
 </div>
 <div class="refsect1">
 <a name="gst-plugins-base-plugins-multifdsink.property-details"></a><h2>Property Details</h2>
diff --git a/docs/plugins/html/gst-plugins-base-plugins-multisocketsink.html b/docs/plugins/html/gst-plugins-base-plugins-multisocketsink.html
index a531d65..147ea7e 100644
--- a/docs/plugins/html/gst-plugins-base-plugins-multisocketsink.html
+++ b/docs/plugins/html/gst-plugins-base-plugins-multisocketsink.html
@@ -116,24 +116,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-base-plugins-multisocketsink.html#GstMultiSocketSink-struct" title="struct GstMultiSocketSink">GstMultiSocketSink</a></td>
-</tr>
-<tr>
-<td class="datatype_keyword">enum</td>
-<td class="function_name"><a class="link" href="gst-plugins-base-plugins-multifdsink.html#GstRecoverPolicy" title="enum GstRecoverPolicy">GstRecoverPolicy</a></td>
-</tr>
-<tr>
-<td class="datatype_keyword">enum</td>
-<td class="function_name"><a class="link" href="gst-plugins-base-plugins-multifdsink.html#GstSyncMethod" title="enum GstSyncMethod">GstSyncMethod</a></td>
-</tr>
-<tr>
-<td class="datatype_keyword">enum</td>
-<td class="function_name"><a class="link" href="gst-plugins-base-plugins-multifdsink.html#GstClientStatus" title="enum GstClientStatus">GstClientStatus</a></td>
-</tr>
-</tbody>
+</tr></tbody>
 </table></div>
 </div>
 <div class="refsect1">
@@ -280,182 +266,6 @@
 <pre class="programlisting">struct GstMultiSocketSink;</pre>
 <p>The multisocketsink object structure.</p>
 </div>
-<hr>
-<div class="refsect2">
-<a name="GstRecoverPolicy"></a><h3>enum GstRecoverPolicy</h3>
-<p>Possible values for the recovery procedure to use when a client consumes
-data too slow and has a backlag of more that soft-limit buffers.</p>
-<div class="refsect3">
-<a name="GstRecoverPolicy.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-RECOVER-POLICY-NONE:CAPS"></a>GST_RECOVER_POLICY_NONE</p></td>
-<td class="enum_member_description">
-<p>no recovering is done</p>
-</td>
-<td class="enum_member_annotations"> </td>
-</tr>
-<tr>
-<td class="enum_member_name"><p><a name="GST-RECOVER-POLICY-RESYNC-LATEST:CAPS"></a>GST_RECOVER_POLICY_RESYNC_LATEST</p></td>
-<td class="enum_member_description">
-<p>client is moved to last buffer</p>
-</td>
-<td class="enum_member_annotations"> </td>
-</tr>
-<tr>
-<td class="enum_member_name"><p><a name="GST-RECOVER-POLICY-RESYNC-SOFT-LIMIT:CAPS"></a>GST_RECOVER_POLICY_RESYNC_SOFT_LIMIT</p></td>
-<td class="enum_member_description">
-<p>client is moved to the soft limit</p>
-</td>
-<td class="enum_member_annotations"> </td>
-</tr>
-<tr>
-<td class="enum_member_name"><p><a name="GST-RECOVER-POLICY-RESYNC-KEYFRAME:CAPS"></a>GST_RECOVER_POLICY_RESYNC_KEYFRAME</p></td>
-<td class="enum_member_description">
-<p>client is moved to latest keyframe</p>
-</td>
-<td class="enum_member_annotations"> </td>
-</tr>
-</tbody>
-</table></div>
-</div>
-</div>
-<hr>
-<div class="refsect2">
-<a name="GstSyncMethod"></a><h3>enum GstSyncMethod</h3>
-<p>This enum defines the selection of the first buffer that is sent
-to a new client.</p>
-<div class="refsect3">
-<a name="GstSyncMethod.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-SYNC-METHOD-LATEST:CAPS"></a>GST_SYNC_METHOD_LATEST</p></td>
-<td class="enum_member_description">
-<p>client receives most recent buffer</p>
-</td>
-<td class="enum_member_annotations"> </td>
-</tr>
-<tr>
-<td class="enum_member_name"><p><a name="GST-SYNC-METHOD-NEXT-KEYFRAME:CAPS"></a>GST_SYNC_METHOD_NEXT_KEYFRAME</p></td>
-<td class="enum_member_description">
-<p>client receives next keyframe</p>
-</td>
-<td class="enum_member_annotations"> </td>
-</tr>
-<tr>
-<td class="enum_member_name"><p><a name="GST-SYNC-METHOD-LATEST-KEYFRAME:CAPS"></a>GST_SYNC_METHOD_LATEST_KEYFRAME</p></td>
-<td class="enum_member_description">
-<p>client receives latest keyframe (burst)</p>
-</td>
-<td class="enum_member_annotations"> </td>
-</tr>
-<tr>
-<td class="enum_member_name"><p><a name="GST-SYNC-METHOD-BURST:CAPS"></a>GST_SYNC_METHOD_BURST</p></td>
-<td class="enum_member_description">
-<p>client receives specific amount of data</p>
-</td>
-<td class="enum_member_annotations"> </td>
-</tr>
-<tr>
-<td class="enum_member_name"><p><a name="GST-SYNC-METHOD-BURST-KEYFRAME:CAPS"></a>GST_SYNC_METHOD_BURST_KEYFRAME</p></td>
-<td class="enum_member_description">
-<p>client receives specific amount of data 
-                                       starting from latest keyframe</p>
-</td>
-<td class="enum_member_annotations"> </td>
-</tr>
-<tr>
-<td class="enum_member_name"><p><a name="GST-SYNC-METHOD-BURST-WITH-KEYFRAME:CAPS"></a>GST_SYNC_METHOD_BURST_WITH_KEYFRAME</p></td>
-<td class="enum_member_description">
-<p>client receives specific amount of data from
-                                       a keyframe, or if there is not enough data after
-                                       the keyframe, starting before the keyframe</p>
-</td>
-<td class="enum_member_annotations"> </td>
-</tr>
-</tbody>
-</table></div>
-</div>
-</div>
-<hr>
-<div class="refsect2">
-<a name="GstClientStatus"></a><h3>enum GstClientStatus</h3>
-<p>This specifies the reason why a client was removed from
-multisocketsink and is received in the "client-removed" signal.</p>
-<div class="refsect3">
-<a name="GstClientStatus.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-CLIENT-STATUS-OK:CAPS"></a>GST_CLIENT_STATUS_OK</p></td>
-<td class="enum_member_description">
-<p>client is ok</p>
-</td>
-<td class="enum_member_annotations"> </td>
-</tr>
-<tr>
-<td class="enum_member_name"><p><a name="GST-CLIENT-STATUS-CLOSED:CAPS"></a>GST_CLIENT_STATUS_CLOSED</p></td>
-<td class="enum_member_description">
-<p>client closed the socket</p>
-</td>
-<td class="enum_member_annotations"> </td>
-</tr>
-<tr>
-<td class="enum_member_name"><p><a name="GST-CLIENT-STATUS-REMOVED:CAPS"></a>GST_CLIENT_STATUS_REMOVED</p></td>
-<td class="enum_member_description">
-<p>client is removed</p>
-</td>
-<td class="enum_member_annotations"> </td>
-</tr>
-<tr>
-<td class="enum_member_name"><p><a name="GST-CLIENT-STATUS-SLOW:CAPS"></a>GST_CLIENT_STATUS_SLOW</p></td>
-<td class="enum_member_description">
-<p>client is too slow</p>
-</td>
-<td class="enum_member_annotations"> </td>
-</tr>
-<tr>
-<td class="enum_member_name"><p><a name="GST-CLIENT-STATUS-ERROR:CAPS"></a>GST_CLIENT_STATUS_ERROR</p></td>
-<td class="enum_member_description">
-<p>client is in error</p>
-</td>
-<td class="enum_member_annotations"> </td>
-</tr>
-<tr>
-<td class="enum_member_name"><p><a name="GST-CLIENT-STATUS-DUPLICATE:CAPS"></a>GST_CLIENT_STATUS_DUPLICATE</p></td>
-<td class="enum_member_description">
-<p>same client added twice</p>
-</td>
-<td class="enum_member_annotations"> </td>
-</tr>
-<tr>
-<td class="enum_member_name"><p><a name="GST-CLIENT-STATUS-FLUSHING:CAPS"></a>GST_CLIENT_STATUS_FLUSHING</p></td>
-<td class="enum_member_description">
-<p>client is flushing out the remaining buffers.</p>
-</td>
-<td class="enum_member_annotations"> </td>
-</tr>
-</tbody>
-</table></div>
-</div>
-</div>
 </div>
 <div class="refsect1">
 <a name="gst-plugins-base-plugins-multisocketsink.property-details"></a><h2>Property Details</h2>
diff --git a/docs/plugins/html/gst-plugins-base-plugins-oggdemux.html b/docs/plugins/html/gst-plugins-base-plugins-oggdemux.html
index 8fa9023..16fc605 100644
--- a/docs/plugins/html/gst-plugins-base-plugins-oggdemux.html
+++ b/docs/plugins/html/gst-plugins-base-plugins-oggdemux.html
@@ -56,10 +56,25 @@
 </div>
 <div class="refsect1">
 <a name="gst-plugins-base-plugins-oggdemux.description"></a><h2>Description</h2>
+<p>This element demuxes ogg files into their encoded audio and video components.</p>
+<div class="refsect2">
+<a name="id-1.2.23.6.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 filesrc location<span class="gtkdoc opt">=</span>test<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> autoaudiosink</pre></td>
+      </tr>
+    </tbody>
+  </table>
+</div>
+ Decodes a vorbis audio stream stored inside an ogg container and plays it.
+</div>
 <div class="refsynopsisdiv">
 <h2>Synopsis</h2>
 <div class="refsect2">
-<a name="id-1.2.23.6.2.1"></a><h3>Element Information</h3>
+<a name="id-1.2.23.6.4.1"></a><h3>Element Information</h3>
 <div class="variablelist"><table border="0" class="variablelist">
 <colgroup>
 <col align="left" valign="top">
@@ -85,7 +100,7 @@
 </div>
 <hr>
 <div class="refsect2">
-<a name="id-1.2.23.6.2.2"></a><h3>Element Pads</h3>
+<a name="id-1.2.23.6.4.2"></a><h3>Element Pads</h3>
 <div class="variablelist"><table border="0" class="variablelist">
 <colgroup>
 <col align="left" valign="top">
@@ -158,8 +173,13 @@
 <div class="refsect2">
 <a name="GstOggDemux-struct"></a><h3>struct GstOggDemux</h3>
 <pre class="programlisting">struct GstOggDemux;</pre>
+<p>The ogg demuxer object structure.</p>
 </div>
 </div>
+<div class="refsect1">
+<a name="gst-plugins-base-plugins-oggdemux.see-also"></a><h2>See Also</h2>
+<a class="link" href="gst-plugins-base-plugins-oggmux.html" title="oggmux">oggmux</a>
+</div>
 </div>
 <div class="footer">
 <hr>Generated by GTK-Doc V1.25</div>
diff --git a/docs/plugins/html/gst-plugins-base-plugins-oggmux.html b/docs/plugins/html/gst-plugins-base-plugins-oggmux.html
index c8d2b57..1b35fb6 100644
--- a/docs/plugins/html/gst-plugins-base-plugins-oggmux.html
+++ b/docs/plugins/html/gst-plugins-base-plugins-oggmux.html
@@ -96,10 +96,26 @@
 </div>
 <div class="refsect1">
 <a name="gst-plugins-base-plugins-oggmux.description"></a><h2>Description</h2>
+<p>This element merges streams (audio and video) into ogg files.</p>
+<div class="refsect2">
+<a name="id-1.2.24.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> v4l2src num<span class="gtkdoc opt">-</span>buffers<span class="gtkdoc opt">=</span><span class="number">500</span> <span class="gtkdoc opt">!</span> video<span class="gtkdoc opt">/</span>x<span class="gtkdoc opt">-</span>raw<span class="gtkdoc opt">,</span>width<span class="gtkdoc opt">=</span><span class="number">320</span><span class="gtkdoc opt">,</span>height<span class="gtkdoc opt">=</span><span class="number">240</span> <span class="gtkdoc opt">!</span> videoconvert <span class="gtkdoc opt">!</span> videorate <span class="gtkdoc opt">!</span> theoraenc <span class="gtkdoc opt">!</span> oggmux <span class="gtkdoc opt">!</span> filesink location<span class="gtkdoc opt">=</span>video<span class="gtkdoc opt">.</span>ogg</pre></td>
+      </tr>
+    </tbody>
+  </table>
+</div>
+ Encodes a video stream captured from a v4l2-compatible camera to Ogg/Theora
+(the encoding will stop automatically after 500 frames)
+</div>
 <div class="refsynopsisdiv">
 <h2>Synopsis</h2>
 <div class="refsect2">
-<a name="id-1.2.24.8.2.1"></a><h3>Element Information</h3>
+<a name="id-1.2.24.8.4.1"></a><h3>Element Information</h3>
 <div class="variablelist"><table border="0" class="variablelist">
 <colgroup>
 <col align="left" valign="top">
@@ -125,7 +141,7 @@
 </div>
 <hr>
 <div class="refsect2">
-<a name="id-1.2.24.8.2.2"></a><h3>Element Pads</h3>
+<a name="id-1.2.24.8.4.2"></a><h3>Element Pads</h3>
 <div class="variablelist"><table border="0" class="variablelist">
 <colgroup>
 <col align="left" valign="top">
@@ -290,6 +306,7 @@
 <div class="refsect2">
 <a name="GstOggMux-struct"></a><h3>struct GstOggMux</h3>
 <pre class="programlisting">struct GstOggMux;</pre>
+<p>The ogg muxer object structure.</p>
 </div>
 </div>
 <div class="refsect1">
@@ -326,6 +343,10 @@
 <p>Default value: FALSE</p>
 </div>
 </div>
+<div class="refsect1">
+<a name="gst-plugins-base-plugins-oggmux.see-also"></a><h2>See Also</h2>
+<a class="link" href="gst-plugins-base-plugins-oggdemux.html" title="oggdemux">oggdemux</a>
+</div>
 </div>
 <div class="footer">
 <hr>Generated by GTK-Doc V1.25</div>
diff --git a/docs/plugins/html/gst-plugins-base-plugins-opusdec.html b/docs/plugins/html/gst-plugins-base-plugins-opusdec.html
index eebfa19..321d803 100644
--- a/docs/plugins/html/gst-plugins-base-plugins-opusdec.html
+++ b/docs/plugins/html/gst-plugins-base-plugins-opusdec.html
@@ -80,10 +80,25 @@
 </div>
 <div class="refsect1">
 <a name="gst-plugins-base-plugins-opusdec.description"></a><h2>Description</h2>
+<p>This element decodes a OPUS stream to raw integer audio.</p>
+<div class="refsect2">
+<a name="id-1.2.29.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> <span class="gtkdoc opt">-</span>v filesrc location<span class="gtkdoc opt">=</span>opus<span class="gtkdoc opt">.</span>ogg <span class="gtkdoc opt">!</span> oggdemux <span class="gtkdoc opt">!</span> opusdec <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/Opus file. To create an Ogg/Opus file refer to the documentation of opusenc.
+</div>
 <div class="refsynopsisdiv">
 <h2>Synopsis</h2>
 <div class="refsect2">
-<a name="id-1.2.29.7.2.1"></a><h3>Element Information</h3>
+<a name="id-1.2.29.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.29.7.2.2"></a><h3>Element Pads</h3>
+<a name="id-1.2.29.7.4.2"></a><h3>Element Pads</h3>
 <div class="variablelist"><table border="0" class="variablelist">
 <colgroup>
 <col align="left" valign="top">
@@ -194,6 +209,10 @@
 <p>Default value: FALSE</p>
 </div>
 </div>
+<div class="refsect1">
+<a name="gst-plugins-base-plugins-opusdec.see-also"></a><h2>See Also</h2>
+<p>opusenc, oggdemux</p>
+</div>
 </div>
 <div class="footer">
 <hr>Generated by GTK-Doc V1.25</div>
diff --git a/docs/plugins/html/gst-plugins-base-plugins-opusenc.html b/docs/plugins/html/gst-plugins-base-plugins-opusenc.html
index 877f44d..3d90508 100644
--- a/docs/plugins/html/gst-plugins-base-plugins-opusenc.html
+++ b/docs/plugins/html/gst-plugins-base-plugins-opusenc.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-base-plugins-opusenc.description" class="shortcut">Description</a></span><span id="nav_hierarchy">  <span class="dim">|</span> 
-                  <a href="#gst-plugins-base-plugins-opusenc.object-hierarchy" class="shortcut">Object Hierarchy</a></span><span id="nav_properties">  <span class="dim">|</span> 
+                  <a href="#gst-plugins-base-plugins-opusenc.object-hierarchy" class="shortcut">Object Hierarchy</a></span><span id="nav_interfaces">  <span class="dim">|</span> 
+                  <a href="#gst-plugins-base-plugins-opusenc.implemented-interfaces" class="shortcut">Implemented Interfaces</a></span><span id="nav_properties">  <span class="dim">|</span> 
                   <a href="#gst-plugins-base-plugins-opusenc.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>
@@ -63,7 +64,7 @@
 <td class="property_flags">Read / Write</td>
 </tr>
 <tr>
-<td class="property_type"><span class="type">GstOpusEncBitrateType</span></td>
+<td class="property_type"><a class="link" href="gst-plugins-base-plugins-opusenc.html#GstOpusEncBitrateType" title="enum GstOpusEncBitrateType"><span class="type">GstOpusEncBitrateType</span></a></td>
 <td class="property_name"><a class="link" href="gst-plugins-base-plugins-opusenc.html#GstOpusEnc--bitrate-type" title="The “bitrate-type” property">bitrate-type</a></td>
 <td class="property_flags">Read / Write</td>
 </tr>
@@ -110,17 +111,23 @@
 </tbody>
 </table></div>
 </div>
-<a name="GstOpusDec"></a><a name="GstOpusEnc"></a><div class="refsect1">
+<a name="GstOpusEnc"></a><div class="refsect1">
 <a name="gst-plugins-base-plugins-opusenc.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>
+<tbody>
+<tr>
 <td class="datatype_keyword">struct</td>
 <td class="function_name"><a class="link" href="gst-plugins-base-plugins-opusenc.html#GstOpusEnc-struct" title="struct GstOpusEnc">GstOpusEnc</a></td>
-</tr></tbody>
+</tr>
+<tr>
+<td class="datatype_keyword">enum</td>
+<td class="function_name"><a class="link" href="gst-plugins-base-plugins-opusenc.html#GstOpusEncBitrateType" title="enum GstOpusEncBitrateType">GstOpusEncBitrateType</a></td>
+</tr>
+</tbody>
 </table></div>
 </div>
 <div class="refsect1">
@@ -134,11 +141,32 @@
 </pre>
 </div>
 <div class="refsect1">
+<a name="gst-plugins-base-plugins-opusenc.implemented-interfaces"></a><h2>Implemented Interfaces</h2>
+<p>
+GstOpusEnc 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-base-plugins-opusenc.description"></a><h2>Description</h2>
+<p>This element encodes raw audio to OPUS.</p>
+<div class="refsect2">
+<a name="id-1.2.30.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 audiotestsrc wave<span class="gtkdoc opt">=</span>sine num<span class="gtkdoc opt">-</span>buffers<span class="gtkdoc opt">=</span><span class="number">100</span> <span class="gtkdoc opt">!</span> audioconvert <span class="gtkdoc opt">!</span> opusenc <span class="gtkdoc opt">!</span> oggmux <span class="gtkdoc opt">!</span> filesink location<span class="gtkdoc opt">=</span>sine<span class="gtkdoc opt">.</span>ogg</pre></td>
+      </tr>
+    </tbody>
+  </table>
+</div>
+ Encode a test sine signal to Ogg/OPUS.
+</div>
 <div class="refsynopsisdiv">
 <h2>Synopsis</h2>
 <div class="refsect2">
-<a name="id-1.2.30.8.2.1"></a><h3>Element Information</h3>
+<a name="id-1.2.30.8.4.1"></a><h3>Element Information</h3>
 <div class="variablelist"><table border="0" class="variablelist">
 <colgroup>
 <col align="left" valign="top">
@@ -164,7 +192,7 @@
 </div>
 <hr>
 <div class="refsect2">
-<a name="id-1.2.30.8.2.2"></a><h3>Element Pads</h3>
+<a name="id-1.2.30.8.4.2"></a><h3>Element Pads</h3>
 <div class="variablelist"><table border="0" class="variablelist">
 <colgroup>
 <col align="left" valign="top">
@@ -230,6 +258,37 @@
 <a name="GstOpusEnc-struct"></a><h3>struct GstOpusEnc</h3>
 <pre class="programlisting">struct GstOpusEnc;</pre>
 </div>
+<hr>
+<div class="refsect2">
+<a name="GstOpusEncBitrateType"></a><h3>enum GstOpusEncBitrateType</h3>
+<div class="refsect3">
+<a name="GstOpusEncBitrateType.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="BITRATE-TYPE-CBR:CAPS"></a>BITRATE_TYPE_CBR</p></td>
+<td> </td>
+<td> </td>
+</tr>
+<tr>
+<td class="enum_member_name"><p><a name="BITRATE-TYPE-VBR:CAPS"></a>BITRATE_TYPE_VBR</p></td>
+<td> </td>
+<td> </td>
+</tr>
+<tr>
+<td class="enum_member_name"><p><a name="BITRATE-TYPE-CONSTRAINED-VBR:CAPS"></a>BITRATE_TYPE_CONSTRAINED_VBR</p></td>
+<td> </td>
+<td> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+</div>
 </div>
 <div class="refsect1">
 <a name="gst-plugins-base-plugins-opusenc.property-details"></a><h2>Property Details</h2>
@@ -268,7 +327,7 @@
 <hr>
 <div class="refsect2">
 <a name="GstOpusEnc--bitrate-type"></a><h3>The <code class="literal">“bitrate-type”</code> property</h3>
-<pre class="programlisting">  “bitrate-type”             <span class="type">GstOpusEncBitrateType</span></pre>
+<pre class="programlisting">  “bitrate-type”             <a class="link" href="gst-plugins-base-plugins-opusenc.html#GstOpusEncBitrateType" title="enum GstOpusEncBitrateType"><span class="type">GstOpusEncBitrateType</span></a></pre>
 <p>Bitrate type.</p>
 <p>Flags: Read / Write</p>
 <p>Default value: CBR</p>
@@ -341,6 +400,10 @@
 <p>Default value: 0</p>
 </div>
 </div>
+<div class="refsect1">
+<a name="gst-plugins-base-plugins-opusenc.see-also"></a><h2>See Also</h2>
+<p>opusdec, oggmux</p>
+</div>
 </div>
 <div class="footer">
 <hr>Generated by GTK-Doc V1.25</div>
diff --git a/docs/plugins/html/gst-plugins-base-plugins-playbin.html b/docs/plugins/html/gst-plugins-base-plugins-playbin.html
index 2406333..f685c41 100644
--- a/docs/plugins/html/gst-plugins-base-plugins-playbin.html
+++ b/docs/plugins/html/gst-plugins-base-plugins-playbin.html
@@ -104,7 +104,7 @@
 <td class="property_flags">Read / Write</td>
 </tr>
 <tr>
-<td class="property_type"><a class="link" href="gst-plugins-base-plugins-playbin.html#GstPlayFlags" title="enum GstPlayFlags"><span class="type">GstPlayFlags</span></a></td>
+<td class="property_type"><a href="/usr/share/gtk-doc/html/gst-plugins-base-plugins-1.0gst-plugins-base-plugins-playbin.html#GstPlayFlags"><span class="type">GstPlayFlags</span></a></td>
 <td class="property_name"><a class="link" href="gst-plugins-base-plugins-playbin.html#GstPlayBin--flags" title="The “flags” property">flags</a></td>
 <td class="property_flags">Read / Write</td>
 </tr>
@@ -325,6 +325,11 @@
 <td class="signal_name"><a class="link" href="gst-plugins-base-plugins-playbin.html#GstPlayBin-video-tags-changed" title="The “video-tags-changed” signal">video-tags-changed</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>
+<tr>
+<td class="signal_type"><span class="returnvalue">void</span></td>
+<td class="signal_name"><a class="link" href="gst-plugins-base-plugins-playbin.html#GstPlayBin-element-setup" title="The “element-setup” signal">element-setup</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>
@@ -335,16 +340,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-base-plugins-playbin.html#GstPlayBin-struct" title="struct GstPlayBin">GstPlayBin</a></td>
-</tr>
-<tr>
-<td class="datatype_keyword">enum</td>
-<td class="function_name"><a class="link" href="gst-plugins-base-plugins-playbin.html#GstPlayFlags" title="enum GstPlayFlags">GstPlayFlags</a></td>
-</tr>
-</tbody>
+</tr></tbody>
 </table></div>
 </div>
 <div class="refsect1">
@@ -646,112 +645,6 @@
 <pre class="programlisting">struct GstPlayBin;</pre>
 <p>playbin element structure</p>
 </div>
-<hr>
-<div class="refsect2">
-<a name="GstPlayFlags"></a><h3>enum GstPlayFlags</h3>
-<p>Extra flags to configure the behaviour of the sinks.</p>
-<div class="refsect3">
-<a name="GstPlayFlags.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-PLAY-FLAG-VIDEO:CAPS"></a>GST_PLAY_FLAG_VIDEO</p></td>
-<td class="enum_member_description">
-<p>Enable rendering of the video stream</p>
-</td>
-<td class="enum_member_annotations"> </td>
-</tr>
-<tr>
-<td class="enum_member_name"><p><a name="GST-PLAY-FLAG-AUDIO:CAPS"></a>GST_PLAY_FLAG_AUDIO</p></td>
-<td class="enum_member_description">
-<p>Enable rendering of the audio stream</p>
-</td>
-<td class="enum_member_annotations"> </td>
-</tr>
-<tr>
-<td class="enum_member_name"><p><a name="GST-PLAY-FLAG-TEXT:CAPS"></a>GST_PLAY_FLAG_TEXT</p></td>
-<td class="enum_member_description">
-<p>Enable rendering of subtitles</p>
-</td>
-<td class="enum_member_annotations"> </td>
-</tr>
-<tr>
-<td class="enum_member_name"><p><a name="GST-PLAY-FLAG-VIS:CAPS"></a>GST_PLAY_FLAG_VIS</p></td>
-<td class="enum_member_description">
-<p>Enable rendering of visualisations when there is
-      no video stream.</p>
-</td>
-<td class="enum_member_annotations"> </td>
-</tr>
-<tr>
-<td class="enum_member_name"><p><a name="GST-PLAY-FLAG-SOFT-VOLUME:CAPS"></a>GST_PLAY_FLAG_SOFT_VOLUME</p></td>
-<td class="enum_member_description">
-<p>Use software volume</p>
-</td>
-<td class="enum_member_annotations"> </td>
-</tr>
-<tr>
-<td class="enum_member_name"><p><a name="GST-PLAY-FLAG-NATIVE-AUDIO:CAPS"></a>GST_PLAY_FLAG_NATIVE_AUDIO</p></td>
-<td class="enum_member_description">
-<p>only allow native audio formats, this omits
-  configuration of audioconvert and audioresample.</p>
-</td>
-<td class="enum_member_annotations"> </td>
-</tr>
-<tr>
-<td class="enum_member_name"><p><a name="GST-PLAY-FLAG-NATIVE-VIDEO:CAPS"></a>GST_PLAY_FLAG_NATIVE_VIDEO</p></td>
-<td class="enum_member_description">
-<p>only allow native video formats, this omits
-  configuration of videoconvert and videoscale.</p>
-</td>
-<td class="enum_member_annotations"> </td>
-</tr>
-<tr>
-<td class="enum_member_name"><p><a name="GST-PLAY-FLAG-DOWNLOAD:CAPS"></a>GST_PLAY_FLAG_DOWNLOAD</p></td>
-<td class="enum_member_description">
-<p>enable progressice download buffering for selected
-  formats.</p>
-</td>
-<td class="enum_member_annotations"> </td>
-</tr>
-<tr>
-<td class="enum_member_name"><p><a name="GST-PLAY-FLAG-BUFFERING:CAPS"></a>GST_PLAY_FLAG_BUFFERING</p></td>
-<td class="enum_member_description">
-<p>enable buffering of the demuxed or parsed data.</p>
-</td>
-<td class="enum_member_annotations"> </td>
-</tr>
-<tr>
-<td class="enum_member_name"><p><a name="GST-PLAY-FLAG-DEINTERLACE:CAPS"></a>GST_PLAY_FLAG_DEINTERLACE</p></td>
-<td class="enum_member_description">
-<p>deinterlace raw video (if native not forced).</p>
-</td>
-<td class="enum_member_annotations"> </td>
-</tr>
-<tr>
-<td class="enum_member_name"><p><a name="GST-PLAY-FLAG-SOFT-COLORBALANCE:CAPS"></a>GST_PLAY_FLAG_SOFT_COLORBALANCE</p></td>
-<td class="enum_member_description">
-<p>Use a software filter for colour balance</p>
-</td>
-<td class="enum_member_annotations"> </td>
-</tr>
-<tr>
-<td class="enum_member_name"><p><a name="GST-PLAY-FLAG-FORCE-FILTERS:CAPS"></a>GST_PLAY_FLAG_FORCE_FILTERS</p></td>
-<td class="enum_member_description">
-<p>force audio/video filters to be applied if
-  set.</p>
-</td>
-<td class="enum_member_annotations"> </td>
-</tr>
-</tbody>
-</table></div>
-</div>
-</div>
 </div>
 <div class="refsect1">
 <a name="gst-plugins-base-plugins-playbin.property-details"></a><h2>Property Details</h2>
@@ -855,7 +748,7 @@
 <hr>
 <div class="refsect2">
 <a name="GstPlayBin--flags"></a><h3>The <code class="literal">“flags”</code> property</h3>
-<pre class="programlisting">  “flags”                    <a class="link" href="gst-plugins-base-plugins-playbin.html#GstPlayFlags" title="enum GstPlayFlags"><span class="type">GstPlayFlags</span></a></pre>
+<pre class="programlisting">  “flags”                    <a href="/usr/share/gtk-doc/html/gst-plugins-base-plugins-1.0gst-plugins-base-plugins-playbin.html#GstPlayFlags"><span class="type">GstPlayFlags</span></a></pre>
 <p>Control the behaviour of playbin.</p>
 <p>Flags: Read / Write</p>
 <p>Default value: Render the video stream|Render the audio stream|Render subtitles|Use software volume|Deinterlace video if necessary|Use software color balance</p>
@@ -1657,6 +1550,50 @@
 </div>
 <p>Flags: <a href="/usr/share/gtk-doc/html/gobjectgobject-Signals.html#G-SIGNAL-RUN-LAST:CAPS">Run Last</a></p>
 </div>
+<hr>
+<div class="refsect2">
+<a name="GstPlayBin-element-setup"></a><h3>The <code class="literal">“element-setup”</code> signal</h3>
+<pre class="programlisting"><span class="returnvalue">void</span>
+user_function (<a class="link" href="gst-plugins-base-plugins-playbin.html#GstPlayBin"><span class="type">GstPlayBin</span></a> *playbin,
+               <a href="/usr/share/gtk-doc/html/gstreamer-1.0GstElement.html#GstElement-struct"><span class="type">GstElement</span></a> *element,
+               <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 a new element is added to playbin or any of
+its sub-bins. This signal can be used to configure elements, e.g. to set
+properties on decoders. This is functionally equivalent to connecting to
+the deep-element-added signal, but more convenient.</p>
+<p>This signal is usually emitted from the context of a GStreamer streaming
+thread, so might be called at the same time as code running in the main
+application thread.</p>
+<div class="refsect3">
+<a name="GstPlayBin-element-setup.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>playbin</p></td>
+<td class="parameter_description"><p>a <a class="link" href="gst-plugins-base-plugins-playbin.html#GstPlayBin"><span class="type">GstPlayBin</span></a></p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>element</p></td>
+<td class="parameter_description"><p>an element that was added to the playbin hierarchy</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: 1.10</p>
+</div>
 </div>
 </div>
 <div class="footer">
diff --git a/docs/plugins/html/gst-plugins-base-plugins-playsink.html b/docs/plugins/html/gst-plugins-base-plugins-playsink.html
index b3fc5ae..eb106ea 100644
--- a/docs/plugins/html/gst-plugins-base-plugins-playsink.html
+++ b/docs/plugins/html/gst-plugins-base-plugins-playsink.html
@@ -56,7 +56,7 @@
 <td class="property_flags">Read / Write</td>
 </tr>
 <tr>
-<td class="property_type"><a class="link" href="gst-plugins-base-plugins-playbin.html#GstPlayFlags" title="enum GstPlayFlags"><span class="type">GstPlayFlags</span></a></td>
+<td class="property_type"><a href="/usr/share/gtk-doc/html/gst-plugins-base-plugins-1.0gst-plugins-base-plugins-playbin.html#GstPlayFlags"><span class="type">GstPlayFlags</span></a></td>
 <td class="property_name"><a class="link" href="gst-plugins-base-plugins-playsink.html#GstPlaySink--flags" title="The “flags” property">flags</a></td>
 <td class="property_flags">Read / Write</td>
 </tr>
@@ -371,7 +371,7 @@
 <hr>
 <div class="refsect2">
 <a name="GstPlaySink--flags"></a><h3>The <code class="literal">“flags”</code> property</h3>
-<pre class="programlisting">  “flags”                    <a class="link" href="gst-plugins-base-plugins-playbin.html#GstPlayFlags" title="enum GstPlayFlags"><span class="type">GstPlayFlags</span></a></pre>
+<pre class="programlisting">  “flags”                    <a href="/usr/share/gtk-doc/html/gst-plugins-base-plugins-1.0gst-plugins-base-plugins-playbin.html#GstPlayFlags"><span class="type">GstPlayFlags</span></a></pre>
 <p>Control the behaviour of playsink.</p>
 <p>Flags: Read / Write</p>
 <p>Default value: Render the video stream|Render the audio stream|Render subtitles|Use software volume|Use software color balance</p>
diff --git a/docs/plugins/html/gst-plugins-base-plugins-plugin-adder.html b/docs/plugins/html/gst-plugins-base-plugins-plugin-adder.html
index e679e74..1595d8d 100644
--- a/docs/plugins/html/gst-plugins-base-plugins-plugin-adder.html
+++ b/docs/plugins/html/gst-plugins-base-plugins-plugin-adder.html
@@ -42,7 +42,7 @@
 </tr>
 <tr>
 <td><p><span class="term">version</span></p></td>
-<td>1.8.2</td>
+<td>1.9.1</td>
 </tr>
 <tr>
 <td><p><span class="term">run-time license</span></p></td>
diff --git a/docs/plugins/html/gst-plugins-base-plugins-plugin-alsa.html b/docs/plugins/html/gst-plugins-base-plugins-plugin-alsa.html
index 88d2a69..cf072fa 100644
--- a/docs/plugins/html/gst-plugins-base-plugins-plugin-alsa.html
+++ b/docs/plugins/html/gst-plugins-base-plugins-plugin-alsa.html
@@ -42,7 +42,7 @@
 </tr>
 <tr>
 <td><p><span class="term">version</span></p></td>
-<td>1.8.2</td>
+<td>1.9.1</td>
 </tr>
 <tr>
 <td><p><span class="term">run-time license</span></p></td>
diff --git a/docs/plugins/html/gst-plugins-base-plugins-plugin-app.html b/docs/plugins/html/gst-plugins-base-plugins-plugin-app.html
index 31a2a04..0152f02 100644
--- a/docs/plugins/html/gst-plugins-base-plugins-plugin-app.html
+++ b/docs/plugins/html/gst-plugins-base-plugins-plugin-app.html
@@ -42,7 +42,7 @@
 </tr>
 <tr>
 <td><p><span class="term">version</span></p></td>
-<td>1.8.2</td>
+<td>1.9.1</td>
 </tr>
 <tr>
 <td><p><span class="term">run-time license</span></p></td>
diff --git a/docs/plugins/html/gst-plugins-base-plugins-plugin-audioconvert.html b/docs/plugins/html/gst-plugins-base-plugins-plugin-audioconvert.html
index 293e441..7784e29 100644
--- a/docs/plugins/html/gst-plugins-base-plugins-plugin-audioconvert.html
+++ b/docs/plugins/html/gst-plugins-base-plugins-plugin-audioconvert.html
@@ -42,7 +42,7 @@
 </tr>
 <tr>
 <td><p><span class="term">version</span></p></td>
-<td>1.8.2</td>
+<td>1.9.1</td>
 </tr>
 <tr>
 <td><p><span class="term">run-time license</span></p></td>
diff --git a/docs/plugins/html/gst-plugins-base-plugins-plugin-audiorate.html b/docs/plugins/html/gst-plugins-base-plugins-plugin-audiorate.html
index 0f8c569..bb36fd9 100644
--- a/docs/plugins/html/gst-plugins-base-plugins-plugin-audiorate.html
+++ b/docs/plugins/html/gst-plugins-base-plugins-plugin-audiorate.html
@@ -42,7 +42,7 @@
 </tr>
 <tr>
 <td><p><span class="term">version</span></p></td>
-<td>1.8.2</td>
+<td>1.9.1</td>
 </tr>
 <tr>
 <td><p><span class="term">run-time license</span></p></td>
diff --git a/docs/plugins/html/gst-plugins-base-plugins-plugin-audioresample.html b/docs/plugins/html/gst-plugins-base-plugins-plugin-audioresample.html
index 3960cb2..2a71487 100644
--- a/docs/plugins/html/gst-plugins-base-plugins-plugin-audioresample.html
+++ b/docs/plugins/html/gst-plugins-base-plugins-plugin-audioresample.html
@@ -42,7 +42,7 @@
 </tr>
 <tr>
 <td><p><span class="term">version</span></p></td>
-<td>1.8.2</td>
+<td>1.9.1</td>
 </tr>
 <tr>
 <td><p><span class="term">run-time license</span></p></td>
diff --git a/docs/plugins/html/gst-plugins-base-plugins-plugin-audiotestsrc.html b/docs/plugins/html/gst-plugins-base-plugins-plugin-audiotestsrc.html
index b2fbeb6..69eae90 100644
--- a/docs/plugins/html/gst-plugins-base-plugins-plugin-audiotestsrc.html
+++ b/docs/plugins/html/gst-plugins-base-plugins-plugin-audiotestsrc.html
@@ -42,7 +42,7 @@
 </tr>
 <tr>
 <td><p><span class="term">version</span></p></td>
-<td>1.8.2</td>
+<td>1.9.1</td>
 </tr>
 <tr>
 <td><p><span class="term">run-time license</span></p></td>
diff --git a/docs/plugins/html/gst-plugins-base-plugins-plugin-cdparanoia.html b/docs/plugins/html/gst-plugins-base-plugins-plugin-cdparanoia.html
index 4c04796..18cb922 100644
--- a/docs/plugins/html/gst-plugins-base-plugins-plugin-cdparanoia.html
+++ b/docs/plugins/html/gst-plugins-base-plugins-plugin-cdparanoia.html
@@ -42,7 +42,7 @@
 </tr>
 <tr>
 <td><p><span class="term">version</span></p></td>
-<td>1.8.2</td>
+<td>1.9.1</td>
 </tr>
 <tr>
 <td><p><span class="term">run-time license</span></p></td>
diff --git a/docs/plugins/html/gst-plugins-base-plugins-plugin-encoding.html b/docs/plugins/html/gst-plugins-base-plugins-plugin-encoding.html
index 34a68bd..90bfc7e 100644
--- a/docs/plugins/html/gst-plugins-base-plugins-plugin-encoding.html
+++ b/docs/plugins/html/gst-plugins-base-plugins-plugin-encoding.html
@@ -42,7 +42,7 @@
 </tr>
 <tr>
 <td><p><span class="term">version</span></p></td>
-<td>1.8.2</td>
+<td>1.9.1</td>
 </tr>
 <tr>
 <td><p><span class="term">run-time license</span></p></td>
diff --git a/docs/plugins/html/gst-plugins-base-plugins-plugin-gio.html b/docs/plugins/html/gst-plugins-base-plugins-plugin-gio.html
index fb9c493..91184b8 100644
--- a/docs/plugins/html/gst-plugins-base-plugins-plugin-gio.html
+++ b/docs/plugins/html/gst-plugins-base-plugins-plugin-gio.html
@@ -42,7 +42,7 @@
 </tr>
 <tr>
 <td><p><span class="term">version</span></p></td>
-<td>1.8.2</td>
+<td>1.9.1</td>
 </tr>
 <tr>
 <td><p><span class="term">run-time license</span></p></td>
diff --git a/docs/plugins/html/gst-plugins-base-plugins-plugin-libvisual.html b/docs/plugins/html/gst-plugins-base-plugins-plugin-libvisual.html
index eff6768..61a0fd4 100644
--- a/docs/plugins/html/gst-plugins-base-plugins-plugin-libvisual.html
+++ b/docs/plugins/html/gst-plugins-base-plugins-plugin-libvisual.html
@@ -42,7 +42,7 @@
 </tr>
 <tr>
 <td><p><span class="term">version</span></p></td>
-<td>1.8.2</td>
+<td>1.9.1</td>
 </tr>
 <tr>
 <td><p><span class="term">run-time license</span></p></td>
diff --git a/docs/plugins/html/gst-plugins-base-plugins-plugin-ogg.html b/docs/plugins/html/gst-plugins-base-plugins-plugin-ogg.html
index 1471ceb..6cb2a20 100644
--- a/docs/plugins/html/gst-plugins-base-plugins-plugin-ogg.html
+++ b/docs/plugins/html/gst-plugins-base-plugins-plugin-ogg.html
@@ -42,7 +42,7 @@
 </tr>
 <tr>
 <td><p><span class="term">version</span></p></td>
-<td>1.8.2</td>
+<td>1.9.1</td>
 </tr>
 <tr>
 <td><p><span class="term">run-time license</span></p></td>
diff --git a/docs/plugins/html/gst-plugins-base-plugins-plugin-opus.html b/docs/plugins/html/gst-plugins-base-plugins-plugin-opus.html
index bfcea78..cddf25b 100644
--- a/docs/plugins/html/gst-plugins-base-plugins-plugin-opus.html
+++ b/docs/plugins/html/gst-plugins-base-plugins-plugin-opus.html
@@ -42,7 +42,7 @@
 </tr>
 <tr>
 <td><p><span class="term">version</span></p></td>
-<td>1.8.2</td>
+<td>1.9.1</td>
 </tr>
 <tr>
 <td><p><span class="term">run-time license</span></p></td>
diff --git a/docs/plugins/html/gst-plugins-base-plugins-plugin-pango.html b/docs/plugins/html/gst-plugins-base-plugins-plugin-pango.html
index b7f9974..02f3d71 100644
--- a/docs/plugins/html/gst-plugins-base-plugins-plugin-pango.html
+++ b/docs/plugins/html/gst-plugins-base-plugins-plugin-pango.html
@@ -42,7 +42,7 @@
 </tr>
 <tr>
 <td><p><span class="term">version</span></p></td>
-<td>1.8.2</td>
+<td>1.9.1</td>
 </tr>
 <tr>
 <td><p><span class="term">run-time license</span></p></td>
diff --git a/docs/plugins/html/gst-plugins-base-plugins-plugin-playback.html b/docs/plugins/html/gst-plugins-base-plugins-plugin-playback.html
index bd0ae43..a9a52be 100644
--- a/docs/plugins/html/gst-plugins-base-plugins-plugin-playback.html
+++ b/docs/plugins/html/gst-plugins-base-plugins-plugin-playback.html
@@ -42,7 +42,7 @@
 </tr>
 <tr>
 <td><p><span class="term">version</span></p></td>
-<td>1.8.2</td>
+<td>1.9.1</td>
 </tr>
 <tr>
 <td><p><span class="term">run-time license</span></p></td>
@@ -72,10 +72,22 @@
 <td>Autoplug and decode to raw media</td>
 </tr>
 <tr>
+<td><p><span class="term">decodebin3</span></p></td>
+<td>Autoplug and decode to raw media</td>
+</tr>
+<tr>
+<td><p><span class="term">parsebin</span></p></td>
+<td>Parse and de-multiplex to elementary stream</td>
+</tr>
+<tr>
 <td><p><span class="term"><a class="link" href="gst-plugins-base-plugins-playbin.html" title="playbin">playbin</a></span></p></td>
 <td>Autoplug and play media from an uri</td>
 </tr>
 <tr>
+<td><p><span class="term">playbin3</span></p></td>
+<td>Autoplug and play media from an uri</td>
+</tr>
+<tr>
 <td><p><span class="term"><a class="link" href="gst-plugins-base-plugins-playsink.html" title="playsink">playsink</a></span></p></td>
 <td>Convenience sink for multiple streams</td>
 </tr>
@@ -91,6 +103,10 @@
 <td><p><span class="term"><a class="link" href="gst-plugins-base-plugins-uridecodebin.html" title="uridecodebin">uridecodebin</a></span></p></td>
 <td>Autoplug and decode an URI to raw media</td>
 </tr>
+<tr>
+<td><p><span class="term">urisourcebin</span></p></td>
+<td>Download and buffer a URI as needed</td>
+</tr>
 </tbody>
 </table></div>
 </div>
diff --git a/docs/plugins/html/gst-plugins-base-plugins-plugin-subparse.html b/docs/plugins/html/gst-plugins-base-plugins-plugin-subparse.html
index 5cc5780..6ba29ef 100644
--- a/docs/plugins/html/gst-plugins-base-plugins-plugin-subparse.html
+++ b/docs/plugins/html/gst-plugins-base-plugins-plugin-subparse.html
@@ -42,7 +42,7 @@
 </tr>
 <tr>
 <td><p><span class="term">version</span></p></td>
-<td>1.8.2</td>
+<td>1.9.1</td>
 </tr>
 <tr>
 <td><p><span class="term">run-time license</span></p></td>
diff --git a/docs/plugins/html/gst-plugins-base-plugins-plugin-tcp.html b/docs/plugins/html/gst-plugins-base-plugins-plugin-tcp.html
index a20e35d..fc5d5c0 100644
--- a/docs/plugins/html/gst-plugins-base-plugins-plugin-tcp.html
+++ b/docs/plugins/html/gst-plugins-base-plugins-plugin-tcp.html
@@ -42,7 +42,7 @@
 </tr>
 <tr>
 <td><p><span class="term">version</span></p></td>
-<td>1.8.2</td>
+<td>1.9.1</td>
 </tr>
 <tr>
 <td><p><span class="term">run-time license</span></p></td>
diff --git a/docs/plugins/html/gst-plugins-base-plugins-plugin-theora.html b/docs/plugins/html/gst-plugins-base-plugins-plugin-theora.html
index 78ef059..9dc867b 100644
--- a/docs/plugins/html/gst-plugins-base-plugins-plugin-theora.html
+++ b/docs/plugins/html/gst-plugins-base-plugins-plugin-theora.html
@@ -42,7 +42,7 @@
 </tr>
 <tr>
 <td><p><span class="term">version</span></p></td>
-<td>1.8.2</td>
+<td>1.9.1</td>
 </tr>
 <tr>
 <td><p><span class="term">run-time license</span></p></td>
diff --git a/docs/plugins/html/gst-plugins-base-plugins-plugin-typefindfunctions.html b/docs/plugins/html/gst-plugins-base-plugins-plugin-typefindfunctions.html
index 689f98d..fa93cb7 100644
--- a/docs/plugins/html/gst-plugins-base-plugins-plugin-typefindfunctions.html
+++ b/docs/plugins/html/gst-plugins-base-plugins-plugin-typefindfunctions.html
@@ -42,7 +42,7 @@
 </tr>
 <tr>
 <td><p><span class="term">version</span></p></td>
-<td>1.8.2</td>
+<td>1.9.1</td>
 </tr>
 <tr>
 <td><p><span class="term">run-time license</span></p></td>
diff --git a/docs/plugins/html/gst-plugins-base-plugins-plugin-videoconvert.html b/docs/plugins/html/gst-plugins-base-plugins-plugin-videoconvert.html
index 60e8e0a..fbe7731 100644
--- a/docs/plugins/html/gst-plugins-base-plugins-plugin-videoconvert.html
+++ b/docs/plugins/html/gst-plugins-base-plugins-plugin-videoconvert.html
@@ -42,7 +42,7 @@
 </tr>
 <tr>
 <td><p><span class="term">version</span></p></td>
-<td>1.8.2</td>
+<td>1.9.1</td>
 </tr>
 <tr>
 <td><p><span class="term">run-time license</span></p></td>
diff --git a/docs/plugins/html/gst-plugins-base-plugins-plugin-videorate.html b/docs/plugins/html/gst-plugins-base-plugins-plugin-videorate.html
index 63bd6a2..d16d01e 100644
--- a/docs/plugins/html/gst-plugins-base-plugins-plugin-videorate.html
+++ b/docs/plugins/html/gst-plugins-base-plugins-plugin-videorate.html
@@ -42,7 +42,7 @@
 </tr>
 <tr>
 <td><p><span class="term">version</span></p></td>
-<td>1.8.2</td>
+<td>1.9.1</td>
 </tr>
 <tr>
 <td><p><span class="term">run-time license</span></p></td>
diff --git a/docs/plugins/html/gst-plugins-base-plugins-plugin-videoscale.html b/docs/plugins/html/gst-plugins-base-plugins-plugin-videoscale.html
index 68969ca..d395a0b 100644
--- a/docs/plugins/html/gst-plugins-base-plugins-plugin-videoscale.html
+++ b/docs/plugins/html/gst-plugins-base-plugins-plugin-videoscale.html
@@ -42,7 +42,7 @@
 </tr>
 <tr>
 <td><p><span class="term">version</span></p></td>
-<td>1.8.2</td>
+<td>1.9.1</td>
 </tr>
 <tr>
 <td><p><span class="term">run-time license</span></p></td>
diff --git a/docs/plugins/html/gst-plugins-base-plugins-plugin-videotestsrc.html b/docs/plugins/html/gst-plugins-base-plugins-plugin-videotestsrc.html
index b4f6b45..4dda9c4 100644
--- a/docs/plugins/html/gst-plugins-base-plugins-plugin-videotestsrc.html
+++ b/docs/plugins/html/gst-plugins-base-plugins-plugin-videotestsrc.html
@@ -42,7 +42,7 @@
 </tr>
 <tr>
 <td><p><span class="term">version</span></p></td>
-<td>1.8.2</td>
+<td>1.9.1</td>
 </tr>
 <tr>
 <td><p><span class="term">run-time license</span></p></td>
diff --git a/docs/plugins/html/gst-plugins-base-plugins-plugin-volume.html b/docs/plugins/html/gst-plugins-base-plugins-plugin-volume.html
index 648e71f..78478aa 100644
--- a/docs/plugins/html/gst-plugins-base-plugins-plugin-volume.html
+++ b/docs/plugins/html/gst-plugins-base-plugins-plugin-volume.html
@@ -42,7 +42,7 @@
 </tr>
 <tr>
 <td><p><span class="term">version</span></p></td>
-<td>1.8.2</td>
+<td>1.9.1</td>
 </tr>
 <tr>
 <td><p><span class="term">run-time license</span></p></td>
diff --git a/docs/plugins/html/gst-plugins-base-plugins-plugin-vorbis.html b/docs/plugins/html/gst-plugins-base-plugins-plugin-vorbis.html
index 6b4db95..de71dfb 100644
--- a/docs/plugins/html/gst-plugins-base-plugins-plugin-vorbis.html
+++ b/docs/plugins/html/gst-plugins-base-plugins-plugin-vorbis.html
@@ -42,7 +42,7 @@
 </tr>
 <tr>
 <td><p><span class="term">version</span></p></td>
-<td>1.8.2</td>
+<td>1.9.1</td>
 </tr>
 <tr>
 <td><p><span class="term">run-time license</span></p></td>
diff --git a/docs/plugins/html/gst-plugins-base-plugins-plugin-ximagesink.html b/docs/plugins/html/gst-plugins-base-plugins-plugin-ximagesink.html
index 2cdbe2e..fb5e75c 100644
--- a/docs/plugins/html/gst-plugins-base-plugins-plugin-ximagesink.html
+++ b/docs/plugins/html/gst-plugins-base-plugins-plugin-ximagesink.html
@@ -42,7 +42,7 @@
 </tr>
 <tr>
 <td><p><span class="term">version</span></p></td>
-<td>1.8.2</td>
+<td>1.9.1</td>
 </tr>
 <tr>
 <td><p><span class="term">run-time license</span></p></td>
diff --git a/docs/plugins/html/gst-plugins-base-plugins-plugin-xvimagesink.html b/docs/plugins/html/gst-plugins-base-plugins-plugin-xvimagesink.html
index 9c394f4..b05f7a9 100644
--- a/docs/plugins/html/gst-plugins-base-plugins-plugin-xvimagesink.html
+++ b/docs/plugins/html/gst-plugins-base-plugins-plugin-xvimagesink.html
@@ -41,7 +41,7 @@
 </tr>
 <tr>
 <td><p><span class="term">version</span></p></td>
-<td>1.8.2</td>
+<td>1.9.1</td>
 </tr>
 <tr>
 <td><p><span class="term">run-time license</span></p></td>
diff --git a/docs/plugins/html/gst-plugins-base-plugins-subparse.html b/docs/plugins/html/gst-plugins-base-plugins-subparse.html
index e897d85..35cbcb6 100644
--- a/docs/plugins/html/gst-plugins-base-plugins-subparse.html
+++ b/docs/plugins/html/gst-plugins-base-plugins-subparse.html
@@ -156,6 +156,10 @@
 <td><p><span class="term"></span></p></td>
 <td> application/x-subtitle-lrc</td>
 </tr>
+<tr>
+<td><p><span class="term"></span></p></td>
+<td> application/x-subtitle-vtt</td>
+</tr>
 </tbody>
 </table></div>
 <div class="variablelist"><table border="0" class="variablelist">
diff --git a/docs/plugins/html/gst-plugins-base-plugins-textoverlay.html b/docs/plugins/html/gst-plugins-base-plugins-textoverlay.html
index 04e0475..b2c3624 100644
--- a/docs/plugins/html/gst-plugins-base-plugins-textoverlay.html
+++ b/docs/plugins/html/gst-plugins-base-plugins-textoverlay.html
@@ -57,10 +57,87 @@
 </div>
 <div class="refsect1">
 <a name="gst-plugins-base-plugins-textoverlay.description"></a><h2>Description</h2>
+<p>This plugin renders text on top of a video stream. This can be either
+static text or text from buffers received on the text sink pad, e.g.
+as produced by the subparse element. If the text sink pad is not linked,
+the text set via the "text" property will be rendered. If the text sink
+pad is linked, text will be rendered as it is received on that pad,
+honouring and matching the buffer timestamps of both input streams.</p>
+<p>The text can contain newline characters and text wrapping is enabled by
+default.</p>
+<div class="refsect2">
+<a name="id-1.2.42.6.4"></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> <span class="gtkdoc opt">-</span>v gst<span class="gtkdoc opt">-</span>launch<span class="gtkdoc opt">-</span><span class="number">1.0</span> videotestsrc <span class="gtkdoc opt">!</span> textoverlay text<span class="gtkdoc opt">=</span><span class="string">&quot;Room A&quot;</span> valignment<span class="gtkdoc opt">=</span>top halignment<span class="gtkdoc opt">=</span>left font<span class="gtkdoc opt">-</span>desc<span class="gtkdoc opt">=</span><span class="string">&quot;Sans, 72&quot;</span> <span class="gtkdoc opt">!</span> autovideosink</pre></td>
+      </tr>
+    </tbody>
+  </table>
+</div>
+ Here is a simple pipeline that displays a static text in the top left
+corner of the video picture
+<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>subtitles<span class="gtkdoc opt">.</span>srt <span class="gtkdoc opt">!</span> subparse <span class="gtkdoc opt">!</span> txt<span class="gtkdoc opt">.</span>   videotestsrc <span class="gtkdoc opt">!</span> timeoverlay <span class="gtkdoc opt">!</span> textoverlay name<span class="gtkdoc opt">=</span>txt shaded<span class="gtkdoc opt">-</span>background<span class="gtkdoc opt">=</span>yes <span class="gtkdoc opt">!</span> autovideosink</pre></td>
+      </tr>
+    </tbody>
+  </table>
+</div>
+ Here is another pipeline that displays subtitles from an .srt subtitle
+file, centered at the bottom of the picture and with a rectangular shading
+around the text in the background:
+<p>
+If you do not have such a subtitle file, create one looking like this
+in a text editor:
+</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
+6
+7
+8
+9
+10
+11
+12
+13</pre></td>
+        <td class="listing_code"><pre class="programlisting"><span class="number">1</span>
+<span class="number">00</span><span class="gtkdoc opt">:</span><span class="number">00</span><span class="gtkdoc opt">:</span><span class="number">03</span><span class="gtkdoc opt">,</span><span class="number">000</span> <span class="gtkdoc opt">--&gt;</span> <span class="number">00</span><span class="gtkdoc opt">:</span><span class="number">00</span><span class="gtkdoc opt">:</span><span class="number">05</span><span class="gtkdoc opt">,</span><span class="number">000</span>
+Hello? <span class="gtkdoc opt">(</span><span class="number">3</span><span class="gtkdoc opt">-</span><span class="number">5</span>s<span class="gtkdoc opt">)</span>
+
+<span class="number">2</span>
+<span class="number">00</span><span class="gtkdoc opt">:</span><span class="number">00</span><span class="gtkdoc opt">:</span><span class="number">08</span><span class="gtkdoc opt">,</span><span class="number">000</span> <span class="gtkdoc opt">--&gt;</span> <span class="number">00</span><span class="gtkdoc opt">:</span><span class="number">00</span><span class="gtkdoc opt">:</span><span class="number">13</span><span class="gtkdoc opt">,</span><span class="number">000</span>
+Yes<span class="gtkdoc opt">,</span> <span class="keyword">this</span> is a subtitle<span class="gtkdoc opt">.</span> Don<span class="string">'t</span>
+<span class="string">you like it? (8-13s)</span>
+<span class="string"></span>
+<span class="string">3</span>
+<span class="string">00:00:18,826 --&gt; 00:01:02,886</span>
+<span class="string">Uh? What are you talking about?</span>
+<span class="string">I don'</span>t <span class="function">understand</span>  <span class="gtkdoc opt">(</span><span class="number">18</span><span class="gtkdoc opt">-</span><span class="number">62</span>s<span class="gtkdoc opt">)</span></pre></td>
+      </tr>
+    </tbody>
+  </table>
+</div>
+
+<p>
+</p>
+</div>
 <div class="refsynopsisdiv">
 <h2>Synopsis</h2>
 <div class="refsect2">
-<a name="id-1.2.42.6.2.1"></a><h3>Element Information</h3>
+<a name="id-1.2.42.6.5.1"></a><h3>Element Information</h3>
 <div class="variablelist"><table border="0" class="variablelist">
 <colgroup>
 <col align="left" valign="top">
@@ -86,7 +163,7 @@
 </div>
 <hr>
 <div class="refsect2">
-<a name="id-1.2.42.6.2.2"></a><h3>Element Pads</h3>
+<a name="id-1.2.42.6.5.2"></a><h3>Element Pads</h3>
 <div class="variablelist"><table border="0" class="variablelist">
 <colgroup>
 <col align="left" valign="top">
@@ -135,7 +212,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>
@@ -163,7 +240,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>
@@ -179,8 +256,13 @@
 <div class="refsect2">
 <a name="GstTextOverlay-struct"></a><h3>struct GstTextOverlay</h3>
 <pre class="programlisting">struct GstTextOverlay;</pre>
+<p>Opaque textoverlay data structure.</p>
 </div>
 </div>
+<div class="refsect1">
+<a name="gst-plugins-base-plugins-textoverlay.see-also"></a><h2>See Also</h2>
+<p><a class="link" href="gst-plugins-base-plugins-textrender.html#GstTextRender"><span class="type">GstTextRender</span></a>, <a class="link" href="gst-plugins-base-plugins-textoverlay.html#GstTextOverlay"><span class="type">GstTextOverlay</span></a>, <a class="link" href="gst-plugins-base-plugins-timeoverlay.html#GstTimeOverlay"><span class="type">GstTimeOverlay</span></a>, <a class="link" href="gst-plugins-base-plugins-subparse.html#GstSubParse"><span class="type">GstSubParse</span></a></p>
+</div>
 </div>
 <div class="footer">
 <hr>Generated by GTK-Doc V1.25</div>
diff --git a/docs/plugins/html/gst-plugins-base-plugins-textrender.html b/docs/plugins/html/gst-plugins-base-plugins-textrender.html
index 376ad46..8c83671 100644
--- a/docs/plugins/html/gst-plugins-base-plugins-textrender.html
+++ b/docs/plugins/html/gst-plugins-base-plugins-textrender.html
@@ -49,17 +49,17 @@
 <td class="property_flags">Write</td>
 </tr>
 <tr>
-<td class="property_type"><span class="type">GstTextRenderHAlign</span></td>
+<td class="property_type"><a class="link" href="gst-plugins-base-plugins-textrender.html#GstTextRenderHAlign" title="enum GstTextRenderHAlign"><span class="type">GstTextRenderHAlign</span></a></td>
 <td class="property_name"><a class="link" href="gst-plugins-base-plugins-textrender.html#GstTextRender--halignment" title="The “halignment” property">halignment</a></td>
 <td class="property_flags">Read / Write</td>
 </tr>
 <tr>
-<td class="property_type"><span class="type">GstTextRenderLineAlign</span></td>
+<td class="property_type"><a class="link" href="gst-plugins-base-plugins-textrender.html#GstTextRenderLineAlign" title="enum GstTextRenderLineAlign"><span class="type">GstTextRenderLineAlign</span></a></td>
 <td class="property_name"><a class="link" href="gst-plugins-base-plugins-textrender.html#GstTextRender--line-alignment" title="The “line-alignment” property">line-alignment</a></td>
 <td class="property_flags">Read / Write</td>
 </tr>
 <tr>
-<td class="property_type"><span class="type">GstTextRenderVAlign</span></td>
+<td class="property_type"><a class="link" href="gst-plugins-base-plugins-textrender.html#GstTextRenderVAlign" title="enum GstTextRenderVAlign"><span class="type">GstTextRenderVAlign</span></a></td>
 <td class="property_name"><a class="link" href="gst-plugins-base-plugins-textrender.html#GstTextRender--valignment" title="The “valignment” property">valignment</a></td>
 <td class="property_flags">Read / Write</td>
 </tr>
@@ -83,10 +83,24 @@
 <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-base-plugins-textrender.html#GstTextRender-struct" title="struct GstTextRender">GstTextRender</a></td>
-</tr></tbody>
+</tr>
+<tr>
+<td class="datatype_keyword">enum</td>
+<td class="function_name"><a class="link" href="gst-plugins-base-plugins-textrender.html#GstTextRenderHAlign" title="enum GstTextRenderHAlign">GstTextRenderHAlign</a></td>
+</tr>
+<tr>
+<td class="datatype_keyword">enum</td>
+<td class="function_name"><a class="link" href="gst-plugins-base-plugins-textrender.html#GstTextRenderLineAlign" title="enum GstTextRenderLineAlign">GstTextRenderLineAlign</a></td>
+</tr>
+<tr>
+<td class="datatype_keyword">enum</td>
+<td class="function_name"><a class="link" href="gst-plugins-base-plugins-textrender.html#GstTextRenderVAlign" title="enum GstTextRenderVAlign">GstTextRenderVAlign</a></td>
+</tr>
+</tbody>
 </table></div>
 </div>
 <div class="refsect1">
@@ -100,10 +114,29 @@
 </div>
 <div class="refsect1">
 <a name="gst-plugins-base-plugins-textrender.description"></a><h2>Description</h2>
+<p>This plugin renders text received on the text sink pad to a video
+buffer (retaining the alpha channel), so it can later be overlayed
+on top of video streams using other elements.</p>
+<p>The text can contain newline characters. (FIXME: What about text 
+wrapping? It does not make sense in this context)</p>
+<div class="refsect2">
+<a name="id-1.2.43.7.4"></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> <span class="gtkdoc opt">-</span>v filesrc location<span class="gtkdoc opt">=</span>subtitles<span class="gtkdoc opt">.</span>srt <span class="gtkdoc opt">!</span> subparse <span class="gtkdoc opt">!</span> textrender <span class="gtkdoc opt">!</span> videoconvert <span class="gtkdoc opt">!</span> autovideosink</pre></td>
+      </tr>
+    </tbody>
+  </table>
+</div>
+
+</div>
 <div class="refsynopsisdiv">
 <h2>Synopsis</h2>
 <div class="refsect2">
-<a name="id-1.2.43.7.2.1"></a><h3>Element Information</h3>
+<a name="id-1.2.43.7.5.1"></a><h3>Element Information</h3>
 <div class="variablelist"><table border="0" class="variablelist">
 <colgroup>
 <col align="left" valign="top">
@@ -129,7 +162,7 @@
 </div>
 <hr>
 <div class="refsect2">
-<a name="id-1.2.43.7.2.2"></a><h3>Element Pads</h3>
+<a name="id-1.2.43.7.5.2"></a><h3>Element Pads</h3>
 <div class="variablelist"><table border="0" class="variablelist">
 <colgroup>
 <col align="left" valign="top">
@@ -190,6 +223,121 @@
 <div class="refsect2">
 <a name="GstTextRender-struct"></a><h3>struct GstTextRender</h3>
 <pre class="programlisting">struct GstTextRender;</pre>
+<p>Opaque textrender data structure.</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="GstTextRenderHAlign"></a><h3>enum GstTextRenderHAlign</h3>
+<p>Horizontal alignment of the text.</p>
+<div class="refsect3">
+<a name="GstTextRenderHAlign.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-TEXT-RENDER-HALIGN-LEFT:CAPS"></a>GST_TEXT_RENDER_HALIGN_LEFT</p></td>
+<td class="enum_member_description">
+<p>align text left</p>
+</td>
+<td class="enum_member_annotations"> </td>
+</tr>
+<tr>
+<td class="enum_member_name"><p><a name="GST-TEXT-RENDER-HALIGN-CENTER:CAPS"></a>GST_TEXT_RENDER_HALIGN_CENTER</p></td>
+<td class="enum_member_description">
+<p>align text center</p>
+</td>
+<td class="enum_member_annotations"> </td>
+</tr>
+<tr>
+<td class="enum_member_name"><p><a name="GST-TEXT-RENDER-HALIGN-RIGHT:CAPS"></a>GST_TEXT_RENDER_HALIGN_RIGHT</p></td>
+<td class="enum_member_description">
+<p>align text right</p>
+</td>
+<td class="enum_member_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="GstTextRenderLineAlign"></a><h3>enum GstTextRenderLineAlign</h3>
+<p>Alignment of text lines relative to each other</p>
+<div class="refsect3">
+<a name="GstTextRenderLineAlign.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-TEXT-RENDER-LINE-ALIGN-LEFT:CAPS"></a>GST_TEXT_RENDER_LINE_ALIGN_LEFT</p></td>
+<td class="enum_member_description">
+<p>lines are left-aligned</p>
+</td>
+<td class="enum_member_annotations"> </td>
+</tr>
+<tr>
+<td class="enum_member_name"><p><a name="GST-TEXT-RENDER-LINE-ALIGN-CENTER:CAPS"></a>GST_TEXT_RENDER_LINE_ALIGN_CENTER</p></td>
+<td class="enum_member_description">
+<p>lines are center-aligned</p>
+</td>
+<td class="enum_member_annotations"> </td>
+</tr>
+<tr>
+<td class="enum_member_name"><p><a name="GST-TEXT-RENDER-LINE-ALIGN-RIGHT:CAPS"></a>GST_TEXT_RENDER_LINE_ALIGN_RIGHT</p></td>
+<td class="enum_member_description">
+<p>lines are right-aligned</p>
+</td>
+<td class="enum_member_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="GstTextRenderVAlign"></a><h3>enum GstTextRenderVAlign</h3>
+<p>Vertical alignment of the text.</p>
+<div class="refsect3">
+<a name="GstTextRenderVAlign.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-TEXT-RENDER-VALIGN-BASELINE:CAPS"></a>GST_TEXT_RENDER_VALIGN_BASELINE</p></td>
+<td class="enum_member_description">
+<p>draw text on the baseline</p>
+</td>
+<td class="enum_member_annotations"> </td>
+</tr>
+<tr>
+<td class="enum_member_name"><p><a name="GST-TEXT-RENDER-VALIGN-BOTTOM:CAPS"></a>GST_TEXT_RENDER_VALIGN_BOTTOM</p></td>
+<td class="enum_member_description">
+<p>draw text on the bottom</p>
+</td>
+<td class="enum_member_annotations"> </td>
+</tr>
+<tr>
+<td class="enum_member_name"><p><a name="GST-TEXT-RENDER-VALIGN-TOP:CAPS"></a>GST_TEXT_RENDER_VALIGN_TOP</p></td>
+<td class="enum_member_description">
+<p>draw test on top</p>
+</td>
+<td class="enum_member_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
 </div>
 </div>
 <div class="refsect1">
@@ -204,7 +352,7 @@
 <hr>
 <div class="refsect2">
 <a name="GstTextRender--halignment"></a><h3>The <code class="literal">“halignment”</code> property</h3>
-<pre class="programlisting">  “halignment”               <span class="type">GstTextRenderHAlign</span></pre>
+<pre class="programlisting">  “halignment”               <a class="link" href="gst-plugins-base-plugins-textrender.html#GstTextRenderHAlign" title="enum GstTextRenderHAlign"><span class="type">GstTextRenderHAlign</span></a></pre>
 <p>Horizontal alignment of the text.</p>
 <p>Flags: Read / Write</p>
 <p>Default value: center</p>
@@ -212,7 +360,7 @@
 <hr>
 <div class="refsect2">
 <a name="GstTextRender--line-alignment"></a><h3>The <code class="literal">“line-alignment”</code> property</h3>
-<pre class="programlisting">  “line-alignment”           <span class="type">GstTextRenderLineAlign</span></pre>
+<pre class="programlisting">  “line-alignment”           <a class="link" href="gst-plugins-base-plugins-textrender.html#GstTextRenderLineAlign" title="enum GstTextRenderLineAlign"><span class="type">GstTextRenderLineAlign</span></a></pre>
 <p>Alignment of text lines relative to each other.</p>
 <p>Flags: Read / Write</p>
 <p>Default value: center</p>
@@ -220,7 +368,7 @@
 <hr>
 <div class="refsect2">
 <a name="GstTextRender--valignment"></a><h3>The <code class="literal">“valignment”</code> property</h3>
-<pre class="programlisting">  “valignment”               <span class="type">GstTextRenderVAlign</span></pre>
+<pre class="programlisting">  “valignment”               <a class="link" href="gst-plugins-base-plugins-textrender.html#GstTextRenderVAlign" title="enum GstTextRenderVAlign"><span class="type">GstTextRenderVAlign</span></a></pre>
 <p>Vertical alignment of the text.</p>
 <p>Flags: Read / Write</p>
 <p>Default value: baseline</p>
@@ -244,6 +392,10 @@
 <p>Default value: 25</p>
 </div>
 </div>
+<div class="refsect1">
+<a name="gst-plugins-base-plugins-textrender.see-also"></a><h2>See Also</h2>
+<p><a class="link" href="gst-plugins-base-plugins-textoverlay.html#GstTextOverlay"><span class="type">GstTextOverlay</span></a></p>
+</div>
 </div>
 <div class="footer">
 <hr>Generated by GTK-Doc V1.25</div>
diff --git a/docs/plugins/html/gst-plugins-base-plugins-theoradec.html b/docs/plugins/html/gst-plugins-base-plugins-theoradec.html
index db4df33..f9a015b 100644
--- a/docs/plugins/html/gst-plugins-base-plugins-theoradec.html
+++ b/docs/plugins/html/gst-plugins-base-plugins-theoradec.html
@@ -90,10 +90,29 @@
 </div>
 <div class="refsect1">
 <a name="gst-plugins-base-plugins-theoradec.description"></a><h2>Description</h2>
+<p>This element decodes theora streams into raw video</p>
+<a class="ulink" href="http://www.theora.org/" target="_top">Theora</a> is a royalty-free
+<p>video codec maintained by the <a class="ulink" href="http://www.xiph.org/" target="_top">Xiph.org
+Foundation</a>, based on the VP3 codec.</p>
+<div class="refsect2">
+<a name="id-1.2.44.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>ogg <span class="gtkdoc opt">!</span> oggdemux <span class="gtkdoc opt">!</span> theoradec <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 an ogg stream and decodes the theora video in it.
+Refer to the theoraenc example to create the ogg file.
+</div>
 <div class="refsynopsisdiv">
 <h2>Synopsis</h2>
 <div class="refsect2">
-<a name="id-1.2.44.7.2.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">
@@ -119,7 +138,7 @@
 </div>
 <hr>
 <div class="refsect2">
-<a name="id-1.2.44.7.2.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">
@@ -180,6 +199,7 @@
 <div class="refsect2">
 <a name="GstTheoraDec-struct"></a><h3>struct GstTheoraDec</h3>
 <pre class="programlisting">struct GstTheoraDec;</pre>
+<p>Opaque object data structure.</p>
 </div>
 </div>
 <div class="refsect1">
@@ -220,6 +240,10 @@
 <p>Default value: 0</p>
 </div>
 </div>
+<div class="refsect1">
+<a name="gst-plugins-base-plugins-theoradec.see-also"></a><h2>See Also</h2>
+<p>theoraenc, oggdemux</p>
+</div>
 </div>
 <div class="footer">
 <hr>Generated by GTK-Doc V1.25</div>
diff --git a/docs/plugins/html/gst-plugins-base-plugins-theoraenc.html b/docs/plugins/html/gst-plugins-base-plugins-theoraenc.html
index 2efd264..e6e80f4 100644
--- a/docs/plugins/html/gst-plugins-base-plugins-theoraenc.html
+++ b/docs/plugins/html/gst-plugins-base-plugins-theoraenc.html
@@ -149,10 +149,43 @@
 </div>
 <div class="refsect1">
 <a name="gst-plugins-base-plugins-theoraenc.description"></a><h2>Description</h2>
+<p>This element encodes raw video into a Theora stream.</p>
+<a class="ulink" href="http://www.theora.org/" target="_top">Theora</a> is a royalty-free
+<p>video codec maintained by the <a class="ulink" href="http://www.xiph.org/" target="_top">Xiph.org
+Foundation</a>, based on the VP3 codec.</p>
+<p>The theora codec internally only supports encoding of images that are a
+multiple of 16 pixels in both X and Y direction. It is however perfectly
+possible to encode images with other dimensions because an arbitrary
+rectangular cropping region can be set up. This element will automatically
+set up a correct cropping region if the dimensions are not multiples of 16
+pixels.</p>
+<p>To control the quality of the encoding, the <span class="type">“bitrate”</span> and
+<span class="type">“quality”</span> properties can be used. These two properties are
+mutualy exclusive. Setting the bitrate property will produce a constant
+bitrate (CBR) stream while setting the quality property will produce a
+variable bitrate (VBR) stream.</p>
+<p>A videorate element is often required in front of theoraenc, especially
+when transcoding and when putting Theora into the Ogg container.</p>
+<div class="refsect2">
+<a name="id-1.2.45.8.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>v videotestsrc num<span class="gtkdoc opt">-</span>buffers<span class="gtkdoc opt">=</span><span class="number">500</span> <span class="gtkdoc opt">!</span> video<span class="gtkdoc opt">/</span>x<span class="gtkdoc opt">-</span>raw<span class="gtkdoc opt">,</span>width<span class="gtkdoc opt">=</span><span class="number">1280</span><span class="gtkdoc opt">,</span>height<span class="gtkdoc opt">=</span><span class="number">720</span> <span class="gtkdoc opt">!</span> queue <span class="gtkdoc opt">!</span> progressreport <span class="gtkdoc opt">!</span> theoraenc <span class="gtkdoc opt">!</span> oggmux <span class="gtkdoc opt">!</span> filesink location<span class="gtkdoc opt">=</span>videotestsrc<span class="gtkdoc opt">.</span>ogg</pre></td>
+      </tr>
+    </tbody>
+  </table>
+</div>
+ This example pipeline will encode a test video source to theora muxed in an
+ogg container. Refer to the theoradec documentation to decode the create
+stream.
+</div>
 <div class="refsynopsisdiv">
 <h2>Synopsis</h2>
 <div class="refsect2">
-<a name="id-1.2.45.8.2.1"></a><h3>Element Information</h3>
+<a name="id-1.2.45.8.9.1"></a><h3>Element Information</h3>
 <div class="variablelist"><table border="0" class="variablelist">
 <colgroup>
 <col align="left" valign="top">
@@ -178,7 +211,7 @@
 </div>
 <hr>
 <div class="refsect2">
-<a name="id-1.2.45.8.2.2"></a><h3>Element Pads</h3>
+<a name="id-1.2.45.8.9.2"></a><h3>Element Pads</h3>
 <div class="variablelist"><table border="0" class="variablelist">
 <colgroup>
 <col align="left" valign="top">
@@ -239,6 +272,7 @@
 <div class="refsect2">
 <a name="GstTheoraEnc-struct"></a><h3>struct GstTheoraEnc</h3>
 <pre class="programlisting">struct GstTheoraEnc;</pre>
+<p>Opaque data structure.</p>
 </div>
 <hr>
 <div class="refsect2">
@@ -254,18 +288,24 @@
 <tbody>
 <tr>
 <td class="enum_member_name"><p><a name="MULTIPASS-MODE-SINGLE-PASS:CAPS"></a>MULTIPASS_MODE_SINGLE_PASS</p></td>
-<td> </td>
-<td> </td>
+<td class="enum_member_description">
+<p>Single pass encoding</p>
+</td>
+<td class="enum_member_annotations"> </td>
 </tr>
 <tr>
 <td class="enum_member_name"><p><a name="MULTIPASS-MODE-FIRST-PASS:CAPS"></a>MULTIPASS_MODE_FIRST_PASS</p></td>
-<td> </td>
-<td> </td>
+<td class="enum_member_description">
+<p>First pass of two pass encoding</p>
+</td>
+<td class="enum_member_annotations"> </td>
 </tr>
 <tr>
 <td class="enum_member_name"><p><a name="MULTIPASS-MODE-SECOND-PASS:CAPS"></a>MULTIPASS_MODE_SECOND_PASS</p></td>
-<td> </td>
-<td> </td>
+<td class="enum_member_description">
+<p>Second pass of two pass encoding</p>
+</td>
+<td class="enum_member_annotations"> </td>
 </tr>
 </tbody>
 </table></div>
@@ -384,6 +424,10 @@
 <p>Default value: FALSE</p>
 </div>
 </div>
+<div class="refsect1">
+<a name="gst-plugins-base-plugins-theoraenc.see-also"></a><h2>See Also</h2>
+<p>theoradec, oggmux</p>
+</div>
 </div>
 <div class="footer">
 <hr>Generated by GTK-Doc V1.25</div>
diff --git a/docs/plugins/html/gst-plugins-base-plugins-theoraparse.html b/docs/plugins/html/gst-plugins-base-plugins-theoraparse.html
index fe6fb30..8c9d64f 100644
--- a/docs/plugins/html/gst-plugins-base-plugins-theoraparse.html
+++ b/docs/plugins/html/gst-plugins-base-plugins-theoraparse.html
@@ -56,10 +56,54 @@
 </div>
 <div class="refsect1">
 <a name="gst-plugins-base-plugins-theoraparse.description"></a><h2>Description</h2>
+<p>The theoraparse element will parse the header packets of the Theora
+stream and put them as the streamheader in the caps. This is used in the
+multifdsink case where you want to stream live theora streams to multiple
+clients, each client has to receive the streamheaders first before they can
+consume the theora packets.</p>
+<p>This element also makes sure that the buffers that it pushes out are properly
+timestamped and that their offset and offset_end are set. The buffers that
+theoraparse outputs have all of the metadata that oggmux expects to receive,
+which allows you to (for example) remux an ogg/theora file.</p>
+<p>In addition, this element allows you to fix badly synchronized streams. You
+pass in an array of (granule time, buffer time) synchronization points via
+the synchronization-points GValueArray property, and this element will adjust
+the granulepos values that it outputs. The adjustment will be made by
+offsetting all buffers that it outputs by a specified amount, and updating
+that offset from the value array whenever a keyframe is processed.</p>
+<div class="refsect2">
+<a name="id-1.2.46.6.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>video<span class="gtkdoc opt">.</span>ogg <span class="gtkdoc opt">!</span> oggdemux <span class="gtkdoc opt">!</span> theoraparse <span class="gtkdoc opt">!</span> fakesink</pre></td>
+      </tr>
+    </tbody>
+  </table>
+</div>
+ This pipeline shows that the streamheader is set in the caps, and that each
+buffer has the timestamp, duration, offset, and offset_end set.
+<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> filesrc location<span class="gtkdoc opt">=</span>video<span class="gtkdoc opt">.</span>ogg <span class="gtkdoc opt">!</span> oggdemux <span class="gtkdoc opt">!</span> theoraparse \
+           <span class="gtkdoc opt">!</span> oggmux <span class="gtkdoc opt">!</span> filesink location<span class="gtkdoc opt">=</span>video<span class="gtkdoc opt">-</span>remuxed<span class="gtkdoc opt">.</span>ogg</pre></td>
+      </tr>
+    </tbody>
+  </table>
+</div>
+ This pipeline shows remuxing. video-remuxed.ogg might not be exactly the same
+as video.ogg, but they should produce exactly the same decoded data.
+</div>
 <div class="refsynopsisdiv">
 <h2>Synopsis</h2>
 <div class="refsect2">
-<a name="id-1.2.46.6.2.1"></a><h3>Element Information</h3>
+<a name="id-1.2.46.6.6.1"></a><h3>Element Information</h3>
 <div class="variablelist"><table border="0" class="variablelist">
 <colgroup>
 <col align="left" valign="top">
@@ -85,7 +129,7 @@
 </div>
 <hr>
 <div class="refsect2">
-<a name="id-1.2.46.6.2.2"></a><h3>Element Pads</h3>
+<a name="id-1.2.46.6.6.2"></a><h3>Element Pads</h3>
 <div class="variablelist"><table border="0" class="variablelist">
 <colgroup>
 <col align="left" valign="top">
@@ -146,8 +190,13 @@
 <div class="refsect2">
 <a name="GstTheoraParse-struct"></a><h3>struct GstTheoraParse</h3>
 <pre class="programlisting">struct GstTheoraParse;</pre>
+<p>Opaque data structure.</p>
 </div>
 </div>
+<div class="refsect1">
+<a name="gst-plugins-base-plugins-theoraparse.see-also"></a><h2>See Also</h2>
+<p>theoradec, oggdemux, vorbisparse</p>
+</div>
 </div>
 <div class="footer">
 <hr>Generated by GTK-Doc V1.25</div>
diff --git a/docs/plugins/html/gst-plugins-base-plugins-timeoverlay.html b/docs/plugins/html/gst-plugins-base-plugins-timeoverlay.html
index b3b7148..4fb88ce 100644
--- a/docs/plugins/html/gst-plugins-base-plugins-timeoverlay.html
+++ b/docs/plugins/html/gst-plugins-base-plugins-timeoverlay.html
@@ -79,10 +79,42 @@
 </div>
 <div class="refsect1">
 <a name="gst-plugins-base-plugins-timeoverlay.description"></a><h2>Description</h2>
+<p>This element overlays the buffer time stamps of a video stream on
+top of itself. You can position the text and configure the font details
+using the properties of the <span class="type">GstBaseTextOverlay</span> class. By default, the
+time stamp is displayed in the top left corner of the picture, with some
+padding to the left and to the top.</p>
+<div class="refsect2">
+<a name="id-1.2.47.7.3"></a><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> timeoverlay <span class="gtkdoc opt">!</span> autovideosink</pre></td>
+      </tr>
+    </tbody>
+  </table>
+</div>
+ Display the time stamps in the top left corner of the video picture.
+<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> timeoverlay halignment<span class="gtkdoc opt">=</span>right valignment<span class="gtkdoc opt">=</span>bottom text<span class="gtkdoc opt">=</span><span class="string">&quot;Stream time:&quot;</span> shaded<span class="gtkdoc opt">-</span>background<span class="gtkdoc opt">=</span><span class="keyword">true</span> font<span class="gtkdoc opt">-</span>desc<span class="gtkdoc opt">=</span><span class="string">&quot;Sans, 24&quot;</span> <span class="gtkdoc opt">!</span> autovideosink</pre></td>
+      </tr>
+    </tbody>
+  </table>
+</div>
+ Another pipeline that displays the time stamps with some leading
+text in the bottom right corner of the video picture, with the background
+of the text being shaded in order to make it more legible on top of a
+bright video background.
+</div>
 <div class="refsynopsisdiv">
 <h2>Synopsis</h2>
 <div class="refsect2">
-<a name="id-1.2.47.7.2.1"></a><h3>Element Information</h3>
+<a name="id-1.2.47.7.4.1"></a><h3>Element Information</h3>
 <div class="variablelist"><table border="0" class="variablelist">
 <colgroup>
 <col align="left" valign="top">
@@ -108,7 +140,7 @@
 </div>
 <hr>
 <div class="refsect2">
-<a name="id-1.2.47.7.2.2"></a><h3>Element Pads</h3>
+<a name="id-1.2.47.7.4.2"></a><h3>Element Pads</h3>
 <div class="variablelist"><table border="0" class="variablelist">
 <colgroup>
 <col align="left" valign="top">
@@ -133,7 +165,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>
@@ -161,7 +193,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>
@@ -177,6 +209,7 @@
 <div class="refsect2">
 <a name="GstTimeOverlay-struct"></a><h3>struct GstTimeOverlay</h3>
 <pre class="programlisting">struct GstTimeOverlay;</pre>
+<p>Opaque timeoverlay data structure.</p>
 </div>
 <hr>
 <div class="refsect2">
@@ -220,6 +253,10 @@
 <p>Default value: buffer-time</p>
 </div>
 </div>
+<div class="refsect1">
+<a name="gst-plugins-base-plugins-timeoverlay.see-also"></a><h2>See Also</h2>
+<p><span class="type">GstBaseTextOverlay</span>, <a class="link" href="gst-plugins-base-plugins-clockoverlay.html#GstClockOverlay"><span class="type">GstClockOverlay</span></a></p>
+</div>
 </div>
 <div class="footer">
 <hr>Generated by GTK-Doc V1.25</div>
diff --git a/docs/plugins/html/gst-plugins-base-plugins-uridecodebin.html b/docs/plugins/html/gst-plugins-base-plugins-uridecodebin.html
index 734e6f3..81b7e95 100644
--- a/docs/plugins/html/gst-plugins-base-plugins-uridecodebin.html
+++ b/docs/plugins/html/gst-plugins-base-plugins-uridecodebin.html
@@ -132,7 +132,7 @@
 <td class="signal_flags"><a href="/usr/share/gtk-doc/html/gobjectgobject-Signals.html#G-SIGNAL-RUN-LAST:CAPS">Run Last</a></td>
 </tr>
 <tr>
-<td class="signal_type"><a class="link" href="gst-plugins-base-plugins-uridecodebin.html#GstAutoplugSelectResult" title="enum GstAutoplugSelectResult"><span class="returnvalue">GstAutoplugSelectResult</span></a></td>
+<td class="signal_type"><a href="/usr/share/gtk-doc/html/gst-plugins-base-plugins-1.0gst-plugins-base-plugins-uridecodebin.html#GstAutoplugSelectResult"><span class="returnvalue">GstAutoplugSelectResult</span></a></td>
 <td class="signal_name"><a class="link" href="gst-plugins-base-plugins-uridecodebin.html#GstURIDecodeBin-autoplug-select" title="The “autoplug-select” signal">autoplug-select</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>
@@ -167,16 +167,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-base-plugins-uridecodebin.html#GstURIDecodeBin-struct" title="struct GstURIDecodeBin">GstURIDecodeBin</a></td>
-</tr>
-<tr>
-<td class="datatype_keyword">enum</td>
-<td class="function_name"><a class="link" href="gst-plugins-base-plugins-uridecodebin.html#GstAutoplugSelectResult" title="enum GstAutoplugSelectResult">GstAutoplugSelectResult</a></td>
-</tr>
-</tbody>
+</tr></tbody>
 </table></div>
 </div>
 <div class="refsect1">
@@ -267,44 +261,6 @@
 <pre class="programlisting">struct GstURIDecodeBin;</pre>
 <p>uridecodebin element struct</p>
 </div>
-<hr>
-<div class="refsect2">
-<a name="GstAutoplugSelectResult"></a><h3>enum GstAutoplugSelectResult</h3>
-<p>return values for the autoplug-select signal.</p>
-<div class="refsect3">
-<a name="GstAutoplugSelectResult.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-AUTOPLUG-SELECT-TRY:CAPS"></a>GST_AUTOPLUG_SELECT_TRY</p></td>
-<td class="enum_member_description">
-<p>try to autoplug the current factory</p>
-</td>
-<td class="enum_member_annotations"> </td>
-</tr>
-<tr>
-<td class="enum_member_name"><p><a name="GST-AUTOPLUG-SELECT-EXPOSE:CAPS"></a>GST_AUTOPLUG_SELECT_EXPOSE</p></td>
-<td class="enum_member_description">
-<p>expose the pad as a raw stream</p>
-</td>
-<td class="enum_member_annotations"> </td>
-</tr>
-<tr>
-<td class="enum_member_name"><p><a name="GST-AUTOPLUG-SELECT-SKIP:CAPS"></a>GST_AUTOPLUG_SELECT_SKIP</p></td>
-<td class="enum_member_description">
-<p>skip the current factory</p>
-</td>
-<td class="enum_member_annotations"> </td>
-</tr>
-</tbody>
-</table></div>
-</div>
-</div>
 </div>
 <div class="refsect1">
 <a name="gst-plugins-base-plugins-uridecodebin.property-details"></a><h2>Property Details</h2>
@@ -532,7 +488,7 @@
 <hr>
 <div class="refsect2">
 <a name="GstURIDecodeBin-autoplug-select"></a><h3>The <code class="literal">“autoplug-select”</code> signal</h3>
-<pre class="programlisting"><a class="link" href="gst-plugins-base-plugins-uridecodebin.html#GstAutoplugSelectResult" title="enum GstAutoplugSelectResult"><span class="returnvalue">GstAutoplugSelectResult</span></a>
+<pre class="programlisting"><a href="/usr/share/gtk-doc/html/gst-plugins-base-plugins-1.0gst-plugins-base-plugins-uridecodebin.html#GstAutoplugSelectResult"><span class="returnvalue">GstAutoplugSelectResult</span></a>
 user_function (<a class="link" href="gst-plugins-base-plugins-uridecodebin.html#GstURIDecodeBin"><span class="type">GstURIDecodeBin</span></a>   *bin,
                <a href="/usr/share/gtk-doc/html/gstreamer-1.0GstPad.html#GstPad-struct"><span class="type">GstPad</span></a>            *pad,
                <a href="/usr/share/gtk-doc/html/gstreamer-1.0GstCaps.html#GstCaps-struct"><span class="type">GstCaps</span></a>           *caps,
@@ -544,13 +500,13 @@
 those factories, this signal is emitted.</p>
 <p>The signal handler should return a <span class="type">GST_TYPE_AUTOPLUG_SELECT_RESULT</span> enum
 value indicating what decodebin should do next.</p>
-<p>A value of <a class="link" href="gst-plugins-base-plugins-uridecodebin.html#GST-AUTOPLUG-SELECT-TRY:CAPS"><span class="type">GST_AUTOPLUG_SELECT_TRY</span></a> will try to autoplug an element from
+<p>A value of <a href="/usr/share/gtk-doc/html/gst-plugins-base-plugins-1.0gst-plugins-base-plugins-uridecodebin.html#GST-AUTOPLUG-SELECT-TRY:CAPS"><span class="type">GST_AUTOPLUG_SELECT_TRY</span></a> will try to autoplug an element from
 <em class="parameter"><code>factory</code></em>
 .</p>
-<p>A value of <a class="link" href="gst-plugins-base-plugins-uridecodebin.html#GST-AUTOPLUG-SELECT-EXPOSE:CAPS"><span class="type">GST_AUTOPLUG_SELECT_EXPOSE</span></a> will expose <em class="parameter"><code>pad</code></em>
+<p>A value of <a href="/usr/share/gtk-doc/html/gst-plugins-base-plugins-1.0gst-plugins-base-plugins-uridecodebin.html#GST-AUTOPLUG-SELECT-EXPOSE:CAPS"><span class="type">GST_AUTOPLUG_SELECT_EXPOSE</span></a> will expose <em class="parameter"><code>pad</code></em>
  without plugging
 any element to it.</p>
-<p>A value of <a class="link" href="gst-plugins-base-plugins-uridecodebin.html#GST-AUTOPLUG-SELECT-SKIP:CAPS"><span class="type">GST_AUTOPLUG_SELECT_SKIP</span></a> will skip <em class="parameter"><code>factory</code></em>
+<p>A value of <a href="/usr/share/gtk-doc/html/gst-plugins-base-plugins-1.0gst-plugins-base-plugins-uridecodebin.html#GST-AUTOPLUG-SELECT-SKIP:CAPS"><span class="type">GST_AUTOPLUG_SELECT_SKIP</span></a> will skip <em class="parameter"><code>factory</code></em>
  and move to the
 next factory.</p>
 <div class="note">
@@ -601,7 +557,7 @@
 <a name="GstURIDecodeBin-autoplug-select.returns"></a><h4>Returns</h4>
 <p> a <span class="type">GST_TYPE_AUTOPLUG_SELECT_RESULT</span> that indicates the required
 operation. The default handler will always return
-<a class="link" href="gst-plugins-base-plugins-uridecodebin.html#GST-AUTOPLUG-SELECT-TRY:CAPS"><span class="type">GST_AUTOPLUG_SELECT_TRY</span></a>.</p>
+<a href="/usr/share/gtk-doc/html/gst-plugins-base-plugins-1.0gst-plugins-base-plugins-uridecodebin.html#GST-AUTOPLUG-SELECT-TRY:CAPS"><span class="type">GST_AUTOPLUG_SELECT_TRY</span></a>.</p>
 </div>
 <p>Flags: <a href="/usr/share/gtk-doc/html/gobjectgobject-Signals.html#G-SIGNAL-RUN-LAST:CAPS">Run Last</a></p>
 </div>
diff --git a/docs/plugins/html/gst-plugins-base-plugins-videoconvert.html b/docs/plugins/html/gst-plugins-base-plugins-videoconvert.html
index 5071237..cd2bbd7 100644
--- a/docs/plugins/html/gst-plugins-base-plugins-videoconvert.html
+++ b/docs/plugins/html/gst-plugins-base-plugins-videoconvert.html
@@ -183,11 +183,11 @@
 </tr>
 <tr>
 <td><p><span class="term">details</span></p></td>
-<td>video/x-raw, 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, 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>
 <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>
@@ -211,11 +211,11 @@
 </tr>
 <tr>
 <td><p><span class="term">details</span></p></td>
-<td>video/x-raw, 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, 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>
 <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>
diff --git a/docs/plugins/html/gst-plugins-base-plugins-videoscale.html b/docs/plugins/html/gst-plugins-base-plugins-videoscale.html
index 66bbea3..492bb7a 100644
--- a/docs/plugins/html/gst-plugins-base-plugins-videoscale.html
+++ b/docs/plugins/html/gst-plugins-base-plugins-videoscale.html
@@ -197,11 +197,11 @@
 </tr>
 <tr>
 <td><p><span class="term">details</span></p></td>
-<td>video/x-raw, 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, 32767 ], height=(int)[ 1, 32767 ], framerate=(fraction)[ 0/1, 2147483647/1 ]</td>
+<td>video/x-raw, 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, 32767 ], height=(int)[ 1, 32767 ], framerate=(fraction)[ 0/1, 2147483647/1 ]</td>
 </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, 32767 ], height=(int)[ 1, 32767 ], 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, 32767 ], height=(int)[ 1, 32767 ], framerate=(fraction)[ 0/1, 2147483647/1 ]</td>
 </tr>
 </tbody>
 </table></div>
@@ -225,11 +225,11 @@
 </tr>
 <tr>
 <td><p><span class="term">details</span></p></td>
-<td>video/x-raw, 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, 32767 ], height=(int)[ 1, 32767 ], framerate=(fraction)[ 0/1, 2147483647/1 ]</td>
+<td>video/x-raw, 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, 32767 ], height=(int)[ 1, 32767 ], framerate=(fraction)[ 0/1, 2147483647/1 ]</td>
 </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, 32767 ], height=(int)[ 1, 32767 ], 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, 32767 ], height=(int)[ 1, 32767 ], framerate=(fraction)[ 0/1, 2147483647/1 ]</td>
 </tr>
 </tbody>
 </table></div>
diff --git a/docs/plugins/html/gst-plugins-base-plugins-videotestsrc.html b/docs/plugins/html/gst-plugins-base-plugins-videotestsrc.html
index b546a7d..02b1cd2 100644
--- a/docs/plugins/html/gst-plugins-base-plugins-videotestsrc.html
+++ b/docs/plugins/html/gst-plugins-base-plugins-videotestsrc.html
@@ -234,7 +234,7 @@
 </tr>
 <tr>
 <td><p><span class="term">details</span></p></td>
-<td>video/x-raw, 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, 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>
 <tr>
 <td><p><span class="term"></span></p></td>
diff --git a/docs/plugins/html/gst-plugins-base-plugins-vorbisdec.html b/docs/plugins/html/gst-plugins-base-plugins-vorbisdec.html
index 9ed03f1..3196ea4 100644
--- a/docs/plugins/html/gst-plugins-base-plugins-vorbisdec.html
+++ b/docs/plugins/html/gst-plugins-base-plugins-vorbisdec.html
@@ -57,10 +57,29 @@
 </div>
 <div class="refsect1">
 <a name="gst-plugins-base-plugins-vorbisdec.description"></a><h2>Description</h2>
+<p>This element decodes a Vorbis stream to raw float audio.</p>
+<a class="ulink" href="http://www.vorbis.com/" target="_top">Vorbis</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>. As it outputs raw float audio you will often need to
+put an audioconvert element after it.</p>
+<div class="refsect2">
+<a name="id-1.2.54.6.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>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> autoaudiosink</pre></td>
+      </tr>
+    </tbody>
+  </table>
+</div>
+ Decode an Ogg/Vorbis. To create an Ogg/Vorbis file refer to the documentation of vorbisenc.
+</div>
 <div class="refsynopsisdiv">
 <h2>Synopsis</h2>
 <div class="refsect2">
-<a name="id-1.2.54.6.2.1"></a><h3>Element Information</h3>
+<a name="id-1.2.54.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.54.6.2.2"></a><h3>Element Pads</h3>
+<a name="id-1.2.54.6.6.2"></a><h3>Element Pads</h3>
 <div class="variablelist"><table border="0" class="variablelist">
 <colgroup>
 <col align="left" valign="top">
@@ -147,8 +166,13 @@
 <div class="refsect2">
 <a name="GstVorbisDec-struct"></a><h3>struct GstVorbisDec</h3>
 <pre class="programlisting">struct GstVorbisDec;</pre>
+<p>Opaque data structure.</p>
 </div>
 </div>
+<div class="refsect1">
+<a name="gst-plugins-base-plugins-vorbisdec.see-also"></a><h2>See Also</h2>
+<p>vorbisenc, oggdemux</p>
+</div>
 </div>
 <div class="footer">
 <hr>Generated by GTK-Doc V1.25</div>
diff --git a/docs/plugins/html/gst-plugins-base-plugins-vorbisenc.html b/docs/plugins/html/gst-plugins-base-plugins-vorbisenc.html
index c8ad1e6..037ab06 100644
--- a/docs/plugins/html/gst-plugins-base-plugins-vorbisenc.html
+++ b/docs/plugins/html/gst-plugins-base-plugins-vorbisenc.html
@@ -108,10 +108,40 @@
 </div>
 <div class="refsect1">
 <a name="gst-plugins-base-plugins-vorbisenc.description"></a><h2>Description</h2>
+<p>This element encodes raw float audio into a Vorbis stream.</p>
+<a class="ulink" href="http://www.vorbis.com/" target="_top">Vorbis</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.55.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> <span class="gtkdoc opt">-</span>v audiotestsrc wave<span class="gtkdoc opt">=</span>sine num<span class="gtkdoc opt">-</span>buffers<span class="gtkdoc opt">=</span><span class="number">100</span> <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>sine<span class="gtkdoc opt">.</span>ogg</pre></td>
+      </tr>
+    </tbody>
+  </table>
+</div>
+ Encode a test sine signal to Ogg/Vorbis.  Note that the resulting file
+will be really small because a sine signal compresses very well.
+<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 autoaudiosrc <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 and encode to Ogg/Vorbis.
+</div>
 <div class="refsynopsisdiv">
 <h2>Synopsis</h2>
 <div class="refsect2">
-<a name="id-1.2.55.8.2.1"></a><h3>Element Information</h3>
+<a name="id-1.2.55.8.6.1"></a><h3>Element Information</h3>
 <div class="variablelist"><table border="0" class="variablelist">
 <colgroup>
 <col align="left" valign="top">
@@ -137,7 +167,7 @@
 </div>
 <hr>
 <div class="refsect2">
-<a name="id-1.2.55.8.2.2"></a><h3>Element Pads</h3>
+<a name="id-1.2.55.8.6.2"></a><h3>Element Pads</h3>
 <div class="variablelist"><table border="0" class="variablelist">
 <colgroup>
 <col align="left" valign="top">
@@ -230,6 +260,7 @@
 <div class="refsect2">
 <a name="GstVorbisEnc-struct"></a><h3>struct GstVorbisEnc</h3>
 <pre class="programlisting">struct GstVorbisEnc;</pre>
+<p>Opaque data structure.</p>
 </div>
 </div>
 <div class="refsect1">
@@ -286,6 +317,10 @@
 <p>Default value: 0.3</p>
 </div>
 </div>
+<div class="refsect1">
+<a name="gst-plugins-base-plugins-vorbisenc.see-also"></a><h2>See Also</h2>
+<p>vorbisdec, oggmux</p>
+</div>
 </div>
 <div class="footer">
 <hr>Generated by GTK-Doc V1.25</div>
diff --git a/docs/plugins/html/gst-plugins-base-plugins-vorbisparse.html b/docs/plugins/html/gst-plugins-base-plugins-vorbisparse.html
index d6257b8..bf68e24 100644
--- a/docs/plugins/html/gst-plugins-base-plugins-vorbisparse.html
+++ b/docs/plugins/html/gst-plugins-base-plugins-vorbisparse.html
@@ -57,10 +57,48 @@
 </div>
 <div class="refsect1">
 <a name="gst-plugins-base-plugins-vorbisparse.description"></a><h2>Description</h2>
+<p>The vorbisparse element will parse the header packets of the Vorbis
+stream and put them as the streamheader in the caps. This is used in the
+multifdsink case where you want to stream live vorbis streams to multiple
+clients, each client has to receive the streamheaders first before they can
+consume the vorbis packets.</p>
+<p>This element also makes sure that the buffers that it pushes out are properly
+timestamped and that their offset and offset_end are set. The buffers that
+vorbisparse outputs have all of the metadata that oggmux expects to receive,
+which allows you to (for example) remux an ogg/vorbis file.</p>
+<div class="refsect2">
+<a name="id-1.2.56.6.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> vorbisparse <span class="gtkdoc opt">!</span> fakesink</pre></td>
+      </tr>
+    </tbody>
+  </table>
+</div>
+ This pipeline shows that the streamheader is set in the caps, and that each
+buffer has the timestamp, duration, offset, and offset_end set.
+<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> 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> vorbisparse \
+           <span class="gtkdoc opt">!</span> oggmux <span class="gtkdoc opt">!</span> filesink location<span class="gtkdoc opt">=</span>sine<span class="gtkdoc opt">-</span>remuxed<span class="gtkdoc opt">.</span>ogg</pre></td>
+      </tr>
+    </tbody>
+  </table>
+</div>
+ This pipeline shows remuxing. sine-remuxed.ogg might not be exactly the same
+as sine.ogg, but they should produce exactly the same decoded data.
+</div>
 <div class="refsynopsisdiv">
 <h2>Synopsis</h2>
 <div class="refsect2">
-<a name="id-1.2.56.6.2.1"></a><h3>Element Information</h3>
+<a name="id-1.2.56.6.5.1"></a><h3>Element Information</h3>
 <div class="variablelist"><table border="0" class="variablelist">
 <colgroup>
 <col align="left" valign="top">
@@ -86,7 +124,7 @@
 </div>
 <hr>
 <div class="refsect2">
-<a name="id-1.2.56.6.2.2"></a><h3>Element Pads</h3>
+<a name="id-1.2.56.6.5.2"></a><h3>Element Pads</h3>
 <div class="variablelist"><table border="0" class="variablelist">
 <colgroup>
 <col align="left" valign="top">
@@ -147,8 +185,13 @@
 <div class="refsect2">
 <a name="GstVorbisParse-struct"></a><h3>struct GstVorbisParse</h3>
 <pre class="programlisting">struct GstVorbisParse;</pre>
+<p>Opaque data structure.</p>
 </div>
 </div>
+<div class="refsect1">
+<a name="gst-plugins-base-plugins-vorbisparse.see-also"></a><h2>See Also</h2>
+<p>vorbisdec, oggdemux, theoraparse</p>
+</div>
 </div>
 <div class="footer">
 <hr>Generated by GTK-Doc V1.25</div>
diff --git a/docs/plugins/html/gst-plugins-base-plugins-vorbistag.html b/docs/plugins/html/gst-plugins-base-plugins-vorbistag.html
index 91854ce..aae6763 100644
--- a/docs/plugins/html/gst-plugins-base-plugins-vorbistag.html
+++ b/docs/plugins/html/gst-plugins-base-plugins-vorbistag.html
@@ -64,10 +64,36 @@
 </div>
 <div class="refsect1">
 <a name="gst-plugins-base-plugins-vorbistag.description"></a><h2>Description</h2>
+<p>The vorbistags element can change the tag contained within a raw
+vorbis stream. Specifically, it modifies the comments header packet
+of the vorbis stream.</p>
+<p>The element will also process the stream as the <span class="type">vorbisparse</span> element does
+so it can be used when remuxing an Ogg Vorbis stream, without additional
+elements.</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 vorbis 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.57.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>foo<span class="gtkdoc opt">.</span>ogg <span class="gtkdoc opt">!</span> oggdemux <span class="gtkdoc opt">!</span> vorbistag <span class="gtkdoc opt">!</span> oggmux <span class="gtkdoc opt">!</span> filesink location<span class="gtkdoc opt">=</span>bar<span class="gtkdoc opt">.</span>ogg</pre></td>
+      </tr>
+    </tbody>
+  </table>
+</div>
+ This element is not useful with gst-launch-1.0, 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.57.7.2.1"></a><h3>Element Information</h3>
+<a name="id-1.2.57.7.6.1"></a><h3>Element Information</h3>
 <div class="variablelist"><table border="0" class="variablelist">
 <colgroup>
 <col align="left" valign="top">
@@ -93,7 +119,7 @@
 </div>
 <hr>
 <div class="refsect2">
-<a name="id-1.2.57.7.2.2"></a><h3>Element Pads</h3>
+<a name="id-1.2.57.7.6.2"></a><h3>Element Pads</h3>
 <div class="variablelist"><table border="0" class="variablelist">
 <colgroup>
 <col align="left" valign="top">
@@ -154,8 +180,13 @@
 <div class="refsect2">
 <a name="GstVorbisTag-struct"></a><h3>struct GstVorbisTag</h3>
 <pre class="programlisting">struct GstVorbisTag;</pre>
+<p>Opaque data structure.</p>
 </div>
 </div>
+<div class="refsect1">
+<a name="gst-plugins-base-plugins-vorbistag.see-also"></a><h2>See Also</h2>
+<p><span class="type">oggdemux</span>, <span class="type">oggmux</span>, <span class="type">vorbisparse</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-base-plugins-ximagesink.html b/docs/plugins/html/gst-plugins-base-plugins-ximagesink.html
index 1651579..b2f4e25 100644
--- a/docs/plugins/html/gst-plugins-base-plugins-ximagesink.html
+++ b/docs/plugins/html/gst-plugins-base-plugins-ximagesink.html
@@ -120,10 +120,113 @@
 </div>
 <div class="refsect1">
 <a name="gst-plugins-base-plugins-ximagesink.description"></a><h2>Description</h2>
+<p>XImageSink renders video frames to a drawable (XWindow) on a local or remote
+display. This element can receive a Window ID from the application through
+the <a href="../html/gst-plugins-base-libs-gstvideooverlay.html#GstVideoOverlay-struct"><span class="type">GstVideoOverlay</span></a> interface and will then render video frames in this
+drawable. If no Window ID was provided by the application, the element will
+create its own internal window and render into it.</p>
+<div class="refsect2">
+<a name="id-1.2.58.8.3"></a><h3>Scaling</h3>
+<p>
+As standard XImage rendering to a drawable is not scaled, XImageSink will use
+reverse caps negotiation to try to get scaled video frames for the drawable.
+This is accomplished by asking the peer pad if it accepts some different caps
+which in most cases implies that there is a scaling element in the pipeline,
+or that an element generating the video frames can generate them with a 
+different geometry. This mechanism is handled during buffer allocations, for
+each allocation request the video sink will check the drawable geometry, look
+at the <a class="link" href="gst-plugins-base-plugins-ximagesink.html#GstXImageSink--force-aspect-ratio" title="The “force-aspect-ratio” property"><span class="type">“force-aspect-ratio”</span></a> property, calculate the geometry of
+desired video frames and then check that the peer pad accept those new caps.
+If it does it will then allocate a buffer in video memory with this new
+geometry and return it with the new caps.
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="id-1.2.58.8.4"></a><h3>Events</h3>
+<p>
+XImageSink creates a thread to handle events coming from the drawable. There
+are several kind of events that can be grouped in 2 big categories: input 
+events and window state related events. Input events will be translated to
+navigation events and pushed upstream for other elements to react on them.
+This includes events such as pointer moves, key press/release, clicks etc...
+Other events are used to handle the drawable appearance even when the data
+is not flowing (GST_STATE_PAUSED). That means that even when the element is
+paused, it will receive expose events from the drawable and draw the latest
+frame with correct borders/aspect-ratio.
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="id-1.2.58.8.5"></a><h3>Pixel aspect ratio</h3>
+<p>
+When changing state to GST_STATE_READY, XImageSink will open a connection to
+the display specified in the <a class="link" href="gst-plugins-base-plugins-ximagesink.html#GstXImageSink--display" title="The “display” property"><span class="type">“display”</span></a> property or the default
+display if nothing specified. Once this connection is open it will inspect 
+the display configuration including the physical display geometry and 
+then calculate the pixel aspect ratio. When caps negotiation will occur, the
+video sink will set the calculated pixel aspect ratio on the caps to make 
+sure that incoming video frames will have the correct pixel aspect ratio for
+this display. Sometimes the calculated pixel aspect ratio can be wrong, it is
+then possible to enforce a specific pixel aspect ratio using the
+<a class="link" href="gst-plugins-base-plugins-ximagesink.html#GstXImageSink--pixel-aspect-ratio" title="The “pixel-aspect-ratio” property"><span class="type">“pixel-aspect-ratio”</span></a> property.
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="id-1.2.58.8.6"></a><h3>Examples</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> queue <span class="gtkdoc opt">!</span> ximagesink</pre></td>
+      </tr>
+    </tbody>
+  </table>
+</div>
+ A pipeline to test reverse negotiation. When the test video signal appears
+you can resize the window and see that scaled buffers of the desired size are
+going to arrive with a short delay. This illustrates how buffers of desired
+size are allocated along the way. If you take away the queue, scaling will
+happen almost immediately.
+<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> videoconvert <span class="gtkdoc opt">!</span> ximagesink</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.)
+<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> video<span class="gtkdoc opt">/</span>x<span class="gtkdoc opt">-</span>raw<span class="gtkdoc opt">,</span> pixel<span class="gtkdoc opt">-</span>aspect<span class="gtkdoc opt">-</span>ratio<span class="gtkdoc opt">=(</span>fraction<span class="gtkdoc opt">)</span><span class="number">4</span><span class="gtkdoc opt">/</span><span class="number">3</span> <span class="gtkdoc opt">!</span> videoscale <span class="gtkdoc opt">!</span> ximagesink</pre></td>
+      </tr>
+    </tbody>
+  </table>
+</div>
+ This is faking a 4/3 pixel aspect ratio caps on video frames produced by
+videotestsrc, in most cases the pixel aspect ratio of the display will be
+1/1. This means that videoscale will have to do the scaling to convert 
+incoming frames to a size that will match the display pixel aspect ratio
+(from 320x240 to 320x180 in this case). Note that you might have to escape 
+some characters for your shell like '\(fraction\)'.
+</div>
 <div class="refsynopsisdiv">
 <h2>Synopsis</h2>
 <div class="refsect2">
-<a name="id-1.2.58.8.2.1"></a><h3>Element Information</h3>
+<a name="id-1.2.58.8.7.1"></a><h3>Element Information</h3>
 <div class="variablelist"><table border="0" class="variablelist">
 <colgroup>
 <col align="left" valign="top">
@@ -149,7 +252,7 @@
 </div>
 <hr>
 <div class="refsect2">
-<a name="id-1.2.58.8.2.2"></a><h3>Element Pads</h3>
+<a name="id-1.2.58.8.7.2"></a><h3>Element Pads</h3>
 <div class="variablelist"><table border="0" class="variablelist">
 <colgroup>
 <col align="left" valign="top">
@@ -186,6 +289,18 @@
 <div class="refsect2">
 <a name="GstXImageSink-struct"></a><h3>struct GstXImageSink</h3>
 <pre class="programlisting">struct GstXImageSink;</pre>
+<p>The <a class="link" href="gst-plugins-base-plugins-ximagesink.html#GstXImageSink"><span class="type">GstXImageSink</span></a> data structure.</p>
+<div class="refsect3">
+<a name="GstXImageSink.members"></a><h4>Members</h4>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
+<colgroup>
+<col width="300px" class="struct_members_name">
+<col class="struct_members_description">
+<col width="200px" class="struct_members_annotations">
+</colgroup>
+<tbody></tbody>
+</table></div>
+</div>
 </div>
 </div>
 <div class="refsect1">
@@ -241,7 +356,7 @@
 <div class="refsect2">
 <a name="GstXImageSink--window-height"></a><h3>The <code class="literal">“window-height”</code> property</h3>
 <pre class="programlisting">  “window-height”            <a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#guint64"><span class="type">guint64</span></a></pre>
-<p>Height of the window.</p>
+<p>Actual height of the video window.</p>
 <p>Flags: Read</p>
 <p>Default value: 0</p>
 </div>
@@ -249,7 +364,7 @@
 <div class="refsect2">
 <a name="GstXImageSink--window-width"></a><h3>The <code class="literal">“window-width”</code> property</h3>
 <pre class="programlisting">  “window-width”             <a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#guint64"><span class="type">guint64</span></a></pre>
-<p>Width of the window.</p>
+<p>Actual width of the video window.</p>
 <p>Flags: Read</p>
 <p>Default value: 0</p>
 </div>
diff --git a/docs/plugins/html/gst-plugins-base-plugins-xvimagesink.html b/docs/plugins/html/gst-plugins-base-plugins-xvimagesink.html
index 4c1f986..a613dd6 100644
--- a/docs/plugins/html/gst-plugins-base-plugins-xvimagesink.html
+++ b/docs/plugins/html/gst-plugins-base-plugins-xvimagesink.html
@@ -172,10 +172,139 @@
 </div>
 <div class="refsect1">
 <a name="gst-plugins-base-plugins-xvimagesink.description"></a><h2>Description</h2>
+<p>XvImageSink renders video frames to a drawable (XWindow) on a local display
+using the XVideo extension. Rendering to a remote display is theoretically
+possible but i doubt that the XVideo extension is actually available when
+connecting to a remote display. This element can receive a Window ID from the
+application through the <a href="../html/gst-plugins-base-libs-gstvideooverlay.html#GstVideoOverlay-struct"><span class="type">GstVideoOverlay</span></a> interface and will then render
+video frames in this drawable. If no Window ID was provided by the
+application, the element will create its own internal window and render
+into it.</p>
+<div class="refsect2">
+<a name="id-1.2.59.8.3"></a><h3>Scaling</h3>
+<p>
+The XVideo extension, when it's available, handles hardware accelerated
+scaling of video frames. This means that the element will just accept
+incoming video frames no matter their geometry and will then put them to the
+drawable scaling them on the fly. Using the <a class="link" href="gst-plugins-base-plugins-xvimagesink.html#GstXvImageSink--force-aspect-ratio" title="The “force-aspect-ratio” property"><span class="type">“force-aspect-ratio”</span></a>
+property it is possible to enforce scaling with a constant aspect ratio,
+which means drawing black borders around the video frame.
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="id-1.2.59.8.4"></a><h3>Events</h3>
+<p>
+XvImageSink creates a thread to handle events coming from the drawable. There
+are several kind of events that can be grouped in 2 big categories: input
+events and window state related events. Input events will be translated to
+navigation events and pushed upstream for other elements to react on them.
+This includes events such as pointer moves, key press/release, clicks etc...
+Other events are used to handle the drawable appearance even when the data
+is not flowing (GST_STATE_PAUSED). That means that even when the element is
+paused, it will receive expose events from the drawable and draw the latest
+frame with correct borders/aspect-ratio.
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="id-1.2.59.8.5"></a><h3>Pixel aspect ratio</h3>
+<p>
+When changing state to GST_STATE_READY, XvImageSink will open a connection to
+the display specified in the <a class="link" href="gst-plugins-base-plugins-xvimagesink.html#GstXvImageSink--display" title="The “display” property"><span class="type">“display”</span></a> property or the
+default display if nothing specified. Once this connection is open it will
+inspect the display configuration including the physical display geometry and
+then calculate the pixel aspect ratio. When receiving video frames with a
+different pixel aspect ratio, XvImageSink will use hardware scaling to
+display the video frames correctly on display's pixel aspect ratio.
+Sometimes the calculated pixel aspect ratio can be wrong, it is
+then possible to enforce a specific pixel aspect ratio using the
+<a class="link" href="gst-plugins-base-plugins-xvimagesink.html#GstXvImageSink--pixel-aspect-ratio" title="The “pixel-aspect-ratio” property"><span class="type">“pixel-aspect-ratio”</span></a> property.
+</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="id-1.2.59.8.6"></a><h3>Examples</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> xvimagesink</pre></td>
+      </tr>
+    </tbody>
+  </table>
+</div>
+ A pipeline to test hardware scaling.
+When the test video signal appears you can resize the window and see that
+video frames are scaled through hardware (no extra CPU cost). By default
+the image will never be distorted when scaled, instead black borders will
+be added if needed.
+<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> xvimagesink force<span class="gtkdoc opt">-</span>aspect<span class="gtkdoc opt">-</span>ratio<span class="gtkdoc opt">=</span><span class="keyword">false</span></pre></td>
+      </tr>
+    </tbody>
+  </table>
+</div>
+ Same pipeline with <a class="link" href="gst-plugins-base-plugins-xvimagesink.html#GstXvImageSink--force-aspect-ratio" title="The “force-aspect-ratio” property"><span class="type">“force-aspect-ratio”</span></a> property set to
+false. You can observe that no borders are drawn around the scaled image
+now and it will be distorted to fill the entire frame instead of respecting
+the aspect ratio.
+<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> xvimagesink</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 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> video<span class="gtkdoc opt">/</span>x<span class="gtkdoc opt">-</span>raw<span class="gtkdoc opt">,</span> pixel<span class="gtkdoc opt">-</span>aspect<span class="gtkdoc opt">-</span>ratio<span class="gtkdoc opt">=</span><span class="number">4</span><span class="gtkdoc opt">/</span><span class="number">3</span> <span class="gtkdoc opt">!</span> xvimagesink</pre></td>
+      </tr>
+    </tbody>
+  </table>
+</div>
+ This is faking a 4/3 pixel aspect ratio caps on video frames produced by
+videotestsrc, in most cases the pixel aspect ratio of the display will be
+1/1. This means that XvImageSink will have to do the scaling to convert
+incoming frames to a size that will match the display pixel aspect ratio
+(from 320x240 to 320x180 in this case).
+<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> xvimagesink hue<span class="gtkdoc opt">=</span><span class="number">100</span> saturation<span class="gtkdoc opt">=-</span><span class="number">100</span> brightness<span class="gtkdoc opt">=</span><span class="number">100</span></pre></td>
+      </tr>
+    </tbody>
+  </table>
+</div>
+ Demonstrates how to use the colorbalance interface.
+</div>
 <div class="refsynopsisdiv">
 <h2>Synopsis</h2>
 <div class="refsect2">
-<a name="id-1.2.59.8.2.1"></a><h3>Element Information</h3>
+<a name="id-1.2.59.8.7.1"></a><h3>Element Information</h3>
 <div class="variablelist"><table border="0" class="variablelist">
 <colgroup>
 <col align="left" valign="top">
@@ -201,7 +330,7 @@
 </div>
 <hr>
 <div class="refsect2">
-<a name="id-1.2.59.8.2.2"></a><h3>Element Pads</h3>
+<a name="id-1.2.59.8.7.2"></a><h3>Element Pads</h3>
 <div class="variablelist"><table border="0" class="variablelist">
 <colgroup>
 <col align="left" valign="top">
@@ -238,6 +367,18 @@
 <div class="refsect2">
 <a name="GstXvImageSink-struct"></a><h3>struct GstXvImageSink</h3>
 <pre class="programlisting">struct GstXvImageSink;</pre>
+<p>The <a class="link" href="gst-plugins-base-plugins-xvimagesink.html#GstXvImageSink"><span class="type">GstXvImageSink</span></a> data structure.</p>
+<div class="refsect3">
+<a name="GstXvImageSink.members"></a><h4>Members</h4>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
+<colgroup>
+<col width="300px" class="struct_members_name">
+<col class="struct_members_description">
+<col width="200px" class="struct_members_annotations">
+</colgroup>
+<tbody></tbody>
+</table></div>
+</div>
 </div>
 </div>
 <div class="refsect1">
@@ -245,7 +386,7 @@
 <div class="refsect2">
 <a name="GstXvImageSink--autopaint-colorkey"></a><h3>The <code class="literal">“autopaint-colorkey”</code> property</h3>
 <pre class="programlisting">  “autopaint-colorkey”       <a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a></pre>
-<p>Whether to autofill overlay with colorkey.</p>
+<p>Whether to autofill overlay with colorkey</p>
 <p>Flags: Read / Write</p>
 <p>Default value: TRUE</p>
 </div>
@@ -311,7 +452,8 @@
 <div class="refsect2">
 <a name="GstXvImageSink--draw-borders"></a><h3>The <code class="literal">“draw-borders”</code> property</h3>
 <pre class="programlisting">  “draw-borders”             <a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a></pre>
-<p>Draw black borders to fill unused area in force-aspect-ratio mode.</p>
+<p>Draw black borders when using GstXvImageSink:force-aspect-ratio to fill
+unused parts of the video area.</p>
 <p>Flags: Read / Write</p>
 <p>Default value: TRUE</p>
 </div>
@@ -335,7 +477,8 @@
 <div class="refsect2">
 <a name="GstXvImageSink--handle-expose"></a><h3>The <code class="literal">“handle-expose”</code> property</h3>
 <pre class="programlisting">  “handle-expose”            <a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a></pre>
-<p>When enabled, the current frame will always be drawn in response to X Expose events.</p>
+<p>When enabled, the current frame will always be drawn in response to X
+Expose.</p>
 <p>Flags: Read / Write</p>
 <p>Default value: TRUE</p>
 </div>
@@ -377,7 +520,7 @@
 <div class="refsect2">
 <a name="GstXvImageSink--window-height"></a><h3>The <code class="literal">“window-height”</code> property</h3>
 <pre class="programlisting">  “window-height”            <a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#guint64"><span class="type">guint64</span></a></pre>
-<p>Height of the window.</p>
+<p>Actual height of the video window.</p>
 <p>Flags: Read</p>
 <p>Default value: 0</p>
 </div>
@@ -385,7 +528,7 @@
 <div class="refsect2">
 <a name="GstXvImageSink--window-width"></a><h3>The <code class="literal">“window-width”</code> property</h3>
 <pre class="programlisting">  “window-width”             <a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#guint64"><span class="type">guint64</span></a></pre>
-<p>Width of the window.</p>
+<p>Actual width of the video window.</p>
 <p>Flags: Read</p>
 <p>Default value: 0</p>
 </div>
diff --git a/docs/plugins/html/index.html b/docs/plugins/html/index.html
index 6f5f463..e704abc 100644
--- a/docs/plugins/html/index.html
+++ b/docs/plugins/html/index.html
@@ -15,7 +15,7 @@
 <div>
 <div><table class="navigation" id="top" width="100%" cellpadding="2" cellspacing="0"><tr><th valign="middle"><p class="title">GStreamer Base Plugins 1.0 Plugins Reference Manual</p></th></tr></table></div>
 <div><p class="releaseinfo">
-      for GStreamer Base Plugins 1.0 (1.8.2)
+      for GStreamer Base Plugins 1.0 (1.9.1)
       The latest version of this documentation can be found on-line at
       <a class="ulink" href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gst-plugins-base/html/" target="_top">http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gst-plugins-base/html/</a>.
     </p></div>
@@ -35,10 +35,10 @@
 <span class="refentrytitle"><a href="gst-plugins-base-plugins-alsasink.html">alsasink</a></span><span class="refpurpose"></span>
 </dt>
 <dt>
-<span class="refentrytitle"><a href="gst-plugins-base-plugins-alsasrc.html">alsasrc</a></span><span class="refpurpose"></span>
+<span class="refentrytitle"><a href="gst-plugins-base-plugins-appsink.html">appsink</a></span><span class="refpurpose"></span>
 </dt>
 <dt>
-<span class="refentrytitle"><a href="gst-plugins-base-plugins-appsink.html">appsink</a></span><span class="refpurpose"></span>
+<span class="refentrytitle"><a href="gst-plugins-base-plugins-alsasrc.html">alsasrc</a></span><span class="refpurpose"></span>
 </dt>
 <dt>
 <span class="refentrytitle"><a href="gst-plugins-base-plugins-appsrc.html">appsrc</a></span><span class="refpurpose"></span>
diff --git a/docs/plugins/inspect/plugin-adder.xml b/docs/plugins/inspect/plugin-adder.xml
index 2bd5af5..f74a13c 100644
--- a/docs/plugins/inspect/plugin-adder.xml
+++ b/docs/plugins/inspect/plugin-adder.xml
@@ -3,7 +3,7 @@
   <description>Adds multiple streams</description>
   <filename>../../gst/adder/.libs/libgstadder.so</filename>
   <basename>libgstadder.so</basename>
-  <version>1.8.2</version>
+  <version>1.9.1</version>
   <license>LGPL</license>
   <source>gst-plugins-base</source>
   <package>GStreamer Base Plug-ins source release</package>
diff --git a/docs/plugins/inspect/plugin-alsa.xml b/docs/plugins/inspect/plugin-alsa.xml
index c54f9d9..ae34d0d 100644
--- a/docs/plugins/inspect/plugin-alsa.xml
+++ b/docs/plugins/inspect/plugin-alsa.xml
@@ -3,7 +3,7 @@
   <description>ALSA plugin library</description>
   <filename>../../ext/alsa/.libs/libgstalsa.so</filename>
   <basename>libgstalsa.so</basename>
-  <version>1.8.2</version>
+  <version>1.9.1</version>
   <license>LGPL</license>
   <source>gst-plugins-base</source>
   <package>GStreamer Base Plug-ins source release</package>
diff --git a/docs/plugins/inspect/plugin-app.xml b/docs/plugins/inspect/plugin-app.xml
index 8aef377..0a875cf 100644
--- a/docs/plugins/inspect/plugin-app.xml
+++ b/docs/plugins/inspect/plugin-app.xml
@@ -3,7 +3,7 @@
   <description>Elements used to communicate with applications</description>
   <filename>../../gst/app/.libs/libgstapp.so</filename>
   <basename>libgstapp.so</basename>
-  <version>1.8.2</version>
+  <version>1.9.1</version>
   <license>LGPL</license>
   <source>gst-plugins-base</source>
   <package>GStreamer Base Plug-ins source release</package>
diff --git a/docs/plugins/inspect/plugin-audioconvert.xml b/docs/plugins/inspect/plugin-audioconvert.xml
index 19ef71c..c29f3c9 100644
--- a/docs/plugins/inspect/plugin-audioconvert.xml
+++ b/docs/plugins/inspect/plugin-audioconvert.xml
@@ -3,7 +3,7 @@
   <description>Convert audio to different formats</description>
   <filename>../../gst/audioconvert/.libs/libgstaudioconvert.so</filename>
   <basename>libgstaudioconvert.so</basename>
-  <version>1.8.2</version>
+  <version>1.9.1</version>
   <license>LGPL</license>
   <source>gst-plugins-base</source>
   <package>GStreamer Base Plug-ins source release</package>
diff --git a/docs/plugins/inspect/plugin-audiorate.xml b/docs/plugins/inspect/plugin-audiorate.xml
index 37aefed..9ed49e1 100644
--- a/docs/plugins/inspect/plugin-audiorate.xml
+++ b/docs/plugins/inspect/plugin-audiorate.xml
@@ -3,7 +3,7 @@
   <description>Adjusts audio frames</description>
   <filename>../../gst/audiorate/.libs/libgstaudiorate.so</filename>
   <basename>libgstaudiorate.so</basename>
-  <version>1.8.2</version>
+  <version>1.9.1</version>
   <license>LGPL</license>
   <source>gst-plugins-base</source>
   <package>GStreamer Base Plug-ins source release</package>
diff --git a/docs/plugins/inspect/plugin-audioresample.xml b/docs/plugins/inspect/plugin-audioresample.xml
index a2254b8..e27ec17 100644
--- a/docs/plugins/inspect/plugin-audioresample.xml
+++ b/docs/plugins/inspect/plugin-audioresample.xml
@@ -3,7 +3,7 @@
   <description>Resamples audio</description>
   <filename>../../gst/audioresample/.libs/libgstaudioresample.so</filename>
   <basename>libgstaudioresample.so</basename>
-  <version>1.8.2</version>
+  <version>1.9.1</version>
   <license>LGPL</license>
   <source>gst-plugins-base</source>
   <package>GStreamer Base Plug-ins source release</package>
@@ -20,13 +20,13 @@
           <name>sink</name>
           <direction>sink</direction>
           <presence>always</presence>
-          <details>audio/x-raw, format=(string){ F32LE, F64LE, S32LE, S24LE, S16LE, S8 }, rate=(int)[ 1, 2147483647 ], channels=(int)[ 1, 2147483647 ], layout=(string){ interleaved, non-interleaved }</details>
+          <details>audio/x-raw, format=(string){ S8, U8, S16LE, S16BE, U16LE, U16BE, S24_32LE, S24_32BE, U24_32LE, U24_32BE, S32LE, S32BE, U32LE, U32BE, S24LE, S24BE, U24LE, U24BE, S20LE, S20BE, U20LE, U20BE, S18LE, S18BE, U18LE, U18BE, F32LE, F32BE, F64LE, F64BE }, rate=(int)[ 1, 2147483647 ], channels=(int)[ 1, 2147483647 ], layout=(string){ interleaved, non-interleaved }</details>
         </caps>
         <caps>
           <name>src</name>
           <direction>source</direction>
           <presence>always</presence>
-          <details>audio/x-raw, format=(string){ F32LE, F64LE, S32LE, S24LE, S16LE, S8 }, rate=(int)[ 1, 2147483647 ], channels=(int)[ 1, 2147483647 ], layout=(string){ interleaved, non-interleaved }</details>
+          <details>audio/x-raw, format=(string){ S8, U8, S16LE, S16BE, U16LE, U16BE, S24_32LE, S24_32BE, U24_32LE, U24_32BE, S32LE, S32BE, U32LE, U32BE, S24LE, S24BE, U24LE, U24BE, S20LE, S20BE, U20LE, U20BE, S18LE, S18BE, U18LE, U18BE, F32LE, F32BE, F64LE, F64BE }, rate=(int)[ 1, 2147483647 ], channels=(int)[ 1, 2147483647 ], layout=(string){ interleaved, non-interleaved }</details>
         </caps>
       </pads>
     </element>
diff --git a/docs/plugins/inspect/plugin-audiotestsrc.xml b/docs/plugins/inspect/plugin-audiotestsrc.xml
index d3dff29..b558685 100644
--- a/docs/plugins/inspect/plugin-audiotestsrc.xml
+++ b/docs/plugins/inspect/plugin-audiotestsrc.xml
@@ -3,7 +3,7 @@
   <description>Creates audio test signals of given frequency and volume</description>
   <filename>../../gst/audiotestsrc/.libs/libgstaudiotestsrc.so</filename>
   <basename>libgstaudiotestsrc.so</basename>
-  <version>1.8.2</version>
+  <version>1.9.1</version>
   <license>LGPL</license>
   <source>gst-plugins-base</source>
   <package>GStreamer Base Plug-ins source release</package>
diff --git a/docs/plugins/inspect/plugin-cdparanoia.xml b/docs/plugins/inspect/plugin-cdparanoia.xml
index b9ae828..fb00cf1 100644
--- a/docs/plugins/inspect/plugin-cdparanoia.xml
+++ b/docs/plugins/inspect/plugin-cdparanoia.xml
@@ -3,7 +3,7 @@
   <description>Read audio from CD in paranoid mode</description>
   <filename>../../ext/cdparanoia/.libs/libgstcdparanoia.so</filename>
   <basename>libgstcdparanoia.so</basename>
-  <version>1.8.2</version>
+  <version>1.9.1</version>
   <license>LGPL</license>
   <source>gst-plugins-base</source>
   <package>GStreamer Base Plug-ins source release</package>
diff --git a/docs/plugins/inspect/plugin-encoding.xml b/docs/plugins/inspect/plugin-encoding.xml
index e6671d7..f27cd10 100644
--- a/docs/plugins/inspect/plugin-encoding.xml
+++ b/docs/plugins/inspect/plugin-encoding.xml
@@ -3,7 +3,7 @@
   <description>various encoding-related elements</description>
   <filename>../../gst/encoding/.libs/libgstencodebin.so</filename>
   <basename>libgstencodebin.so</basename>
-  <version>1.8.2</version>
+  <version>1.9.1</version>
   <license>LGPL</license>
   <source>gst-plugins-base</source>
   <package>GStreamer Base Plug-ins source release</package>
diff --git a/docs/plugins/inspect/plugin-gio.xml b/docs/plugins/inspect/plugin-gio.xml
index 66b7cb7..252dbf9 100644
--- a/docs/plugins/inspect/plugin-gio.xml
+++ b/docs/plugins/inspect/plugin-gio.xml
@@ -3,7 +3,7 @@
   <description>GIO elements</description>
   <filename>../../gst/gio/.libs/libgstgio.so</filename>
   <basename>libgstgio.so</basename>
-  <version>1.8.2</version>
+  <version>1.9.1</version>
   <license>LGPL</license>
   <source>gst-plugins-base</source>
   <package>GStreamer Base Plug-ins source release</package>
diff --git a/docs/plugins/inspect/plugin-libvisual.xml b/docs/plugins/inspect/plugin-libvisual.xml
index 3474b87..ab0f09b 100644
--- a/docs/plugins/inspect/plugin-libvisual.xml
+++ b/docs/plugins/inspect/plugin-libvisual.xml
@@ -3,7 +3,7 @@
   <description>libvisual visualization plugins</description>
   <filename>../../ext/libvisual/.libs/libgstlibvisual.so</filename>
   <basename>libgstlibvisual.so</basename>
-  <version>1.8.2</version>
+  <version>1.9.1</version>
   <license>LGPL</license>
   <source>gst-plugins-base</source>
   <package>GStreamer Base Plug-ins source release</package>
diff --git a/docs/plugins/inspect/plugin-ogg.xml b/docs/plugins/inspect/plugin-ogg.xml
index 856a3a6..f2fb7fd 100644
--- a/docs/plugins/inspect/plugin-ogg.xml
+++ b/docs/plugins/inspect/plugin-ogg.xml
@@ -3,7 +3,7 @@
   <description>ogg stream manipulation (info about ogg: http://xiph.org)</description>
   <filename>../../ext/ogg/.libs/libgstogg.so</filename>
   <basename>libgstogg.so</basename>
-  <version>1.8.2</version>
+  <version>1.9.1</version>
   <license>LGPL</license>
   <source>gst-plugins-base</source>
   <package>GStreamer Base Plug-ins source release</package>
diff --git a/docs/plugins/inspect/plugin-opus.xml b/docs/plugins/inspect/plugin-opus.xml
index 216f55d..f56439d 100644
--- a/docs/plugins/inspect/plugin-opus.xml
+++ b/docs/plugins/inspect/plugin-opus.xml
@@ -3,7 +3,7 @@
   <description>OPUS plugin library</description>
   <filename>../../ext/opus/.libs/libgstopus.so</filename>
   <basename>libgstopus.so</basename>
-  <version>1.8.2</version>
+  <version>1.9.1</version>
   <license>LGPL</license>
   <source>gst-plugins-base</source>
   <package>GStreamer Base Plug-ins source release</package>
diff --git a/docs/plugins/inspect/plugin-pango.xml b/docs/plugins/inspect/plugin-pango.xml
index 1f32298..58f17f2 100644
--- a/docs/plugins/inspect/plugin-pango.xml
+++ b/docs/plugins/inspect/plugin-pango.xml
@@ -3,7 +3,7 @@
   <description>Pango-based text rendering and overlay</description>
   <filename>../../ext/pango/.libs/libgstpango.so</filename>
   <basename>libgstpango.so</basename>
-  <version>1.8.2</version>
+  <version>1.9.1</version>
   <license>LGPL</license>
   <source>gst-plugins-base</source>
   <package>GStreamer Base Plug-ins source release</package>
@@ -20,13 +20,13 @@
           <name>video_sink</name>
           <direction>sink</direction>
           <presence>always</presence>
-          <details>video/x-raw, format=(string){ BGRx, RGBx, xRGB, xBGR, RGBA, BGRA, ARGB, ABGR, RGB, BGR, I420, YV12, AYUV, YUY2, UYVY, v308, Y41B, Y42B, Y444, NV12, NV21, A420, YUV9, YVU9, IYU1, GRAY8 }, 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){ BGRx, RGBx, xRGB, xBGR, RGBA, BGRA, ARGB, ABGR, RGB, BGR, I420, YV12, AYUV, YUY2, UYVY, v308, Y41B, Y42B, Y444, NV12, NV21, A420, YUV9, YVU9, IYU1, GRAY8 }, 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){ BGRx, RGBx, xRGB, xBGR, RGBA, BGRA, ARGB, ABGR, RGB, BGR, I420, YV12, AYUV, YUY2, UYVY, v308, Y41B, Y42B, Y444, NV12, NV21, A420, YUV9, YVU9, IYU1, GRAY8 }, 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){ BGRx, RGBx, xRGB, xBGR, RGBA, BGRA, ARGB, ABGR, RGB, BGR, I420, YV12, AYUV, YUY2, UYVY, v308, Y41B, Y42B, Y444, NV12, NV21, A420, YUV9, YVU9, IYU1, GRAY8 }, 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>
@@ -47,13 +47,13 @@
           <name>video_sink</name>
           <direction>sink</direction>
           <presence>always</presence>
-          <details>video/x-raw, format=(string){ BGRx, RGBx, xRGB, xBGR, RGBA, BGRA, ARGB, ABGR, RGB, BGR, I420, YV12, AYUV, YUY2, UYVY, v308, Y41B, Y42B, Y444, NV12, NV21, A420, YUV9, YVU9, IYU1, GRAY8 }, 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){ BGRx, RGBx, xRGB, xBGR, RGBA, BGRA, ARGB, ABGR, RGB, BGR, I420, YV12, AYUV, YUY2, UYVY, v308, Y41B, Y42B, Y444, NV12, NV21, A420, YUV9, YVU9, IYU1, GRAY8 }, 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){ BGRx, RGBx, xRGB, xBGR, RGBA, BGRA, ARGB, ABGR, RGB, BGR, I420, YV12, AYUV, YUY2, UYVY, v308, Y41B, Y42B, Y444, NV12, NV21, A420, YUV9, YVU9, IYU1, GRAY8 }, 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){ BGRx, RGBx, xRGB, xBGR, RGBA, BGRA, ARGB, ABGR, RGB, BGR, I420, YV12, AYUV, YUY2, UYVY, v308, Y41B, Y42B, Y444, NV12, NV21, A420, YUV9, YVU9, IYU1, GRAY8 }, 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>
@@ -89,13 +89,13 @@
           <name>video_sink</name>
           <direction>sink</direction>
           <presence>always</presence>
-          <details>video/x-raw, format=(string){ BGRx, RGBx, xRGB, xBGR, RGBA, BGRA, ARGB, ABGR, RGB, BGR, I420, YV12, AYUV, YUY2, UYVY, v308, Y41B, Y42B, Y444, NV12, NV21, A420, YUV9, YVU9, IYU1, GRAY8 }, 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){ BGRx, RGBx, xRGB, xBGR, RGBA, BGRA, ARGB, ABGR, RGB, BGR, I420, YV12, AYUV, YUY2, UYVY, v308, Y41B, Y42B, Y444, NV12, NV21, A420, YUV9, YVU9, IYU1, GRAY8 }, 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){ BGRx, RGBx, xRGB, xBGR, RGBA, BGRA, ARGB, ABGR, RGB, BGR, I420, YV12, AYUV, YUY2, UYVY, v308, Y41B, Y42B, Y444, NV12, NV21, A420, YUV9, YVU9, IYU1, GRAY8 }, 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){ BGRx, RGBx, xRGB, xBGR, RGBA, BGRA, ARGB, ABGR, RGB, BGR, I420, YV12, AYUV, YUY2, UYVY, v308, Y41B, Y42B, Y444, NV12, NV21, A420, YUV9, YVU9, IYU1, GRAY8 }, 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-playback.xml b/docs/plugins/inspect/plugin-playback.xml
index 80d2354..59af86e 100644
--- a/docs/plugins/inspect/plugin-playback.xml
+++ b/docs/plugins/inspect/plugin-playback.xml
@@ -3,7 +3,7 @@
   <description>various playback elements</description>
   <filename>../../gst/playback/.libs/libgstplayback.so</filename>
   <basename>libgstplayback.so</basename>
-  <version>1.8.2</version>
+  <version>1.9.1</version>
   <license>LGPL</license>
   <source>gst-plugins-base</source>
   <package>GStreamer Base Plug-ins source release</package>
@@ -31,6 +31,72 @@
       </pads>
     </element>
     <element>
+      <name>decodebin3</name>
+      <longname>Decoder Bin 3</longname>
+      <class>Generic/Bin/Decoder</class>
+      <description>Autoplug and decode to raw media</description>
+      <author>Edward Hervey &lt;edward@centricular.com&gt;</author>
+      <pads>
+        <caps>
+          <name>sink</name>
+          <direction>sink</direction>
+          <presence>always</presence>
+          <details>ANY</details>
+        </caps>
+        <caps>
+          <name>sink_%u</name>
+          <direction>sink</direction>
+          <presence>request</presence>
+          <details>ANY</details>
+        </caps>
+        <caps>
+          <name>audio_%u</name>
+          <direction>source</direction>
+          <presence>sometimes</presence>
+          <details>ANY</details>
+        </caps>
+        <caps>
+          <name>src_%u</name>
+          <direction>source</direction>
+          <presence>sometimes</presence>
+          <details>ANY</details>
+        </caps>
+        <caps>
+          <name>text_%u</name>
+          <direction>source</direction>
+          <presence>sometimes</presence>
+          <details>ANY</details>
+        </caps>
+        <caps>
+          <name>video_%u</name>
+          <direction>source</direction>
+          <presence>sometimes</presence>
+          <details>ANY</details>
+        </caps>
+      </pads>
+    </element>
+    <element>
+      <name>parsebin</name>
+      <longname>Parse Bin</longname>
+      <class>Generic/Bin/Parser</class>
+      <description>Parse and de-multiplex to elementary stream</description>
+      <author>Jan Schmidt &lt;jan@centricular.com&gt;, Edward Hervey &lt;edward@centricular.com&gt;</author>
+      <pads>
+        <caps>
+          <name>sink</name>
+          <direction>sink</direction>
+          <presence>always</presence>
+          <details>ANY</details>
+        </caps>
+        <caps>
+          <name>src_%u</name>
+          <direction>source</direction>
+          <presence>sometimes</presence>
+          <details>ANY</details>
+        </caps>
+      </pads>
+    </element>
+    <element>
       <name>playbin</name>
       <longname>Player Bin 2</longname>
       <class>Generic/Bin/Player</class>
@@ -40,6 +106,15 @@
       </pads>
     </element>
     <element>
+      <name>playbin3</name>
+      <longname>Player Bin 3</longname>
+      <class>Generic/Bin/Player</class>
+      <description>Autoplug and play media from an uri</description>
+      <author>Wim Taymans &lt;wim.taymans@gmail.com&gt;</author>
+      <pads>
+      </pads>
+    </element>
+    <element>
       <name>playsink</name>
       <longname>Player Sink</longname>
       <class>Generic/Bin/Sink</class>
@@ -141,5 +216,20 @@
         </caps>
       </pads>
     </element>
+    <element>
+      <name>urisourcebin</name>
+      <longname>URI reader</longname>
+      <class>Generic/Bin/Source</class>
+      <description>Download and buffer a URI as needed</description>
+      <author>Jan Schmidt &lt;jan@centricular.com&gt;</author>
+      <pads>
+        <caps>
+          <name>src_%u</name>
+          <direction>source</direction>
+          <presence>sometimes</presence>
+          <details>ANY</details>
+        </caps>
+      </pads>
+    </element>
   </elements>
 </plugin>
\ No newline at end of file
diff --git a/docs/plugins/inspect/plugin-subparse.xml b/docs/plugins/inspect/plugin-subparse.xml
index ac3e111..82dd469 100644
--- a/docs/plugins/inspect/plugin-subparse.xml
+++ b/docs/plugins/inspect/plugin-subparse.xml
@@ -3,7 +3,7 @@
   <description>Subtitle parsing</description>
   <filename>../../gst/subparse/.libs/libgstsubparse.so</filename>
   <basename>libgstsubparse.so</basename>
-  <version>1.8.2</version>
+  <version>1.9.1</version>
   <license>LGPL</license>
   <source>gst-plugins-base</source>
   <package>GStreamer Base Plug-ins source release</package>
@@ -41,7 +41,7 @@
           <name>sink</name>
           <direction>sink</direction>
           <presence>always</presence>
-          <details>application/x-subtitle; application/x-subtitle-sami; application/x-subtitle-tmplayer; application/x-subtitle-mpl2; application/x-subtitle-dks; application/x-subtitle-qttext; application/x-subtitle-lrc</details>
+          <details>application/x-subtitle; application/x-subtitle-sami; application/x-subtitle-tmplayer; application/x-subtitle-mpl2; application/x-subtitle-dks; application/x-subtitle-qttext; application/x-subtitle-lrc; application/x-subtitle-vtt</details>
         </caps>
         <caps>
           <name>src</name>
diff --git a/docs/plugins/inspect/plugin-tcp.xml b/docs/plugins/inspect/plugin-tcp.xml
index 6df7525..9bf9c6d 100644
--- a/docs/plugins/inspect/plugin-tcp.xml
+++ b/docs/plugins/inspect/plugin-tcp.xml
@@ -3,7 +3,7 @@
   <description>transfer data over the network via TCP</description>
   <filename>../../gst/tcp/.libs/libgsttcp.so</filename>
   <basename>libgsttcp.so</basename>
-  <version>1.8.2</version>
+  <version>1.9.1</version>
   <license>LGPL</license>
   <source>gst-plugins-base</source>
   <package>GStreamer Base Plug-ins source release</package>
diff --git a/docs/plugins/inspect/plugin-theora.xml b/docs/plugins/inspect/plugin-theora.xml
index 2370ac4..6f4d43a 100644
--- a/docs/plugins/inspect/plugin-theora.xml
+++ b/docs/plugins/inspect/plugin-theora.xml
@@ -3,7 +3,7 @@
   <description>Theora plugin library</description>
   <filename>../../ext/theora/.libs/libgsttheora.so</filename>
   <basename>libgsttheora.so</basename>
-  <version>1.8.2</version>
+  <version>1.9.1</version>
   <license>LGPL</license>
   <source>gst-plugins-base</source>
   <package>GStreamer Base Plug-ins source release</package>
diff --git a/docs/plugins/inspect/plugin-typefindfunctions.xml b/docs/plugins/inspect/plugin-typefindfunctions.xml
index 501cb6a..96d974d 100644
--- a/docs/plugins/inspect/plugin-typefindfunctions.xml
+++ b/docs/plugins/inspect/plugin-typefindfunctions.xml
@@ -3,7 +3,7 @@
   <description>default typefind functions</description>
   <filename>../../gst/typefind/.libs/libgsttypefindfunctions.so</filename>
   <basename>libgsttypefindfunctions.so</basename>
-  <version>1.8.2</version>
+  <version>1.9.1</version>
   <license>LGPL</license>
   <source>gst-plugins-base</source>
   <package>GStreamer Base Plug-ins source release</package>
diff --git a/docs/plugins/inspect/plugin-videoconvert.xml b/docs/plugins/inspect/plugin-videoconvert.xml
index bb5da91..adbdb26 100644
--- a/docs/plugins/inspect/plugin-videoconvert.xml
+++ b/docs/plugins/inspect/plugin-videoconvert.xml
@@ -3,7 +3,7 @@
   <description>Colorspace conversion</description>
   <filename>../../gst/videoconvert/.libs/libgstvideoconvert.so</filename>
   <basename>libgstvideoconvert.so</basename>
-  <version>1.8.2</version>
+  <version>1.9.1</version>
   <license>LGPL</license>
   <source>gst-plugins-base</source>
   <package>GStreamer Base Plug-ins source release</package>
@@ -20,13 +20,13 @@
           <name>sink</name>
           <direction>sink</direction>
           <presence>always</presence>
-          <details>video/x-raw, 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 ]; 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){ 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 ]; 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){ 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 ]; 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){ 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 ]; 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-videorate.xml b/docs/plugins/inspect/plugin-videorate.xml
index 58f20e0..96c62bc 100644
--- a/docs/plugins/inspect/plugin-videorate.xml
+++ b/docs/plugins/inspect/plugin-videorate.xml
@@ -3,7 +3,7 @@
   <description>Adjusts video frames</description>
   <filename>../../gst/videorate/.libs/libgstvideorate.so</filename>
   <basename>libgstvideorate.so</basename>
-  <version>1.8.2</version>
+  <version>1.9.1</version>
   <license>LGPL</license>
   <source>gst-plugins-base</source>
   <package>GStreamer Base Plug-ins source release</package>
diff --git a/docs/plugins/inspect/plugin-videoscale.xml b/docs/plugins/inspect/plugin-videoscale.xml
index 3fca73b..0bdc5a0 100644
--- a/docs/plugins/inspect/plugin-videoscale.xml
+++ b/docs/plugins/inspect/plugin-videoscale.xml
@@ -3,7 +3,7 @@
   <description>Resizes video</description>
   <filename>../../gst/videoscale/.libs/libgstvideoscale.so</filename>
   <basename>libgstvideoscale.so</basename>
-  <version>1.8.2</version>
+  <version>1.9.1</version>
   <license>LGPL</license>
   <source>gst-plugins-base</source>
   <package>GStreamer Base Plug-ins source release</package>
@@ -20,13 +20,13 @@
           <name>sink</name>
           <direction>sink</direction>
           <presence>always</presence>
-          <details>video/x-raw, 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, 32767 ], height=(int)[ 1, 32767 ], 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, 32767 ], height=(int)[ 1, 32767 ], framerate=(fraction)[ 0/1, 2147483647/1 ]</details>
+          <details>video/x-raw, 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, 32767 ], height=(int)[ 1, 32767 ], 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, 32767 ], height=(int)[ 1, 32767 ], framerate=(fraction)[ 0/1, 2147483647/1 ]</details>
         </caps>
         <caps>
           <name>src</name>
           <direction>source</direction>
           <presence>always</presence>
-          <details>video/x-raw, 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, 32767 ], height=(int)[ 1, 32767 ], 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, 32767 ], height=(int)[ 1, 32767 ], framerate=(fraction)[ 0/1, 2147483647/1 ]</details>
+          <details>video/x-raw, 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, 32767 ], height=(int)[ 1, 32767 ], 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, 32767 ], height=(int)[ 1, 32767 ], framerate=(fraction)[ 0/1, 2147483647/1 ]</details>
         </caps>
       </pads>
     </element>
diff --git a/docs/plugins/inspect/plugin-videotestsrc.xml b/docs/plugins/inspect/plugin-videotestsrc.xml
index 4097a1e..0cfb87a 100644
--- a/docs/plugins/inspect/plugin-videotestsrc.xml
+++ b/docs/plugins/inspect/plugin-videotestsrc.xml
@@ -3,7 +3,7 @@
   <description>Creates a test video stream</description>
   <filename>../../gst/videotestsrc/.libs/libgstvideotestsrc.so</filename>
   <basename>libgstvideotestsrc.so</basename>
-  <version>1.8.2</version>
+  <version>1.9.1</version>
   <license>LGPL</license>
   <source>gst-plugins-base</source>
   <package>GStreamer Base Plug-ins source release</package>
@@ -20,7 +20,7 @@
           <name>src</name>
           <direction>source</direction>
           <presence>always</presence>
-          <details>video/x-raw, 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 ]; video/x-bayer, format=(string){ bggr, rggb, grbg, gbrg }, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]</details>
+          <details>video/x-raw, 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 ]; video/x-bayer, format=(string){ bggr, rggb, grbg, gbrg }, 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-volume.xml b/docs/plugins/inspect/plugin-volume.xml
index df5b4ed..6c3aa58 100644
--- a/docs/plugins/inspect/plugin-volume.xml
+++ b/docs/plugins/inspect/plugin-volume.xml
@@ -3,7 +3,7 @@
   <description>plugin for controlling audio volume</description>
   <filename>../../gst/volume/.libs/libgstvolume.so</filename>
   <basename>libgstvolume.so</basename>
-  <version>1.8.2</version>
+  <version>1.9.1</version>
   <license>LGPL</license>
   <source>gst-plugins-base</source>
   <package>GStreamer Base Plug-ins source release</package>
diff --git a/docs/plugins/inspect/plugin-vorbis.xml b/docs/plugins/inspect/plugin-vorbis.xml
index dd20760..c17fcd3 100644
--- a/docs/plugins/inspect/plugin-vorbis.xml
+++ b/docs/plugins/inspect/plugin-vorbis.xml
@@ -3,7 +3,7 @@
   <description>Vorbis plugin library</description>
   <filename>../../ext/vorbis/.libs/libgstvorbis.so</filename>
   <basename>libgstvorbis.so</basename>
-  <version>1.8.2</version>
+  <version>1.9.1</version>
   <license>LGPL</license>
   <source>gst-plugins-base</source>
   <package>GStreamer Base Plug-ins source release</package>
diff --git a/docs/plugins/inspect/plugin-ximagesink.xml b/docs/plugins/inspect/plugin-ximagesink.xml
index a4bf148..3703e28 100644
--- a/docs/plugins/inspect/plugin-ximagesink.xml
+++ b/docs/plugins/inspect/plugin-ximagesink.xml
@@ -3,7 +3,7 @@
   <description>X11 video output element based on standard Xlib calls</description>
   <filename>../../sys/ximage/.libs/libgstximagesink.so</filename>
   <basename>libgstximagesink.so</basename>
-  <version>1.8.2</version>
+  <version>1.9.1</version>
   <license>LGPL</license>
   <source>gst-plugins-base</source>
   <package>GStreamer Base Plug-ins source release</package>
diff --git a/docs/plugins/inspect/plugin-xvimagesink.xml b/docs/plugins/inspect/plugin-xvimagesink.xml
index 52541fc..eb4fdf8 100644
--- a/docs/plugins/inspect/plugin-xvimagesink.xml
+++ b/docs/plugins/inspect/plugin-xvimagesink.xml
@@ -3,7 +3,7 @@
   <description>XFree86 video output plugin using Xv extension</description>
   <filename>../../sys/xvimage/.libs/libgstxvimagesink.so</filename>
   <basename>libgstxvimagesink.so</basename>
-  <version>1.8.2</version>
+  <version>1.9.1</version>
   <license>LGPL</license>
   <source>gst-plugins-base</source>
   <package>GStreamer Base Plug-ins source release</package>
diff --git a/ext/alsa/gstalsa.c b/ext/alsa/gstalsa.c
index 9d2a973..a44e6e1 100644
--- a/ext/alsa/gstalsa.c
+++ b/ext/alsa/gstalsa.c
@@ -750,6 +750,7 @@
     GstAudioChannelPosition * pos)
 {
   int c;
+  gboolean all_mono = TRUE;
 
   for (c = 0; c < chmap->channels; c++) {
     if (chmap->pos[c] > SND_CHMAP_LAST)
@@ -758,7 +759,64 @@
     if (!pos[c])
       return FALSE;
     pos[c]--;
+
+    if (pos[c] != GST_AUDIO_CHANNEL_POSITION_MONO)
+      all_mono = FALSE;
   }
+
+  if (all_mono && chmap->channels > 1) {
+    /* GST_AUDIO_CHANNEL_POSITION_MONO can only be used with 1 channel and
+     * GST_AUDIO_CHANNEL_POSITION_NONE is meant to be used for position-less
+     * multi channels.
+     * Converting as ALSA can only express such configuration by using an array
+     * full of SND_CHMAP_MONO.
+     */
+    for (c = 0; c < chmap->channels; c++)
+      pos[c] = GST_AUDIO_CHANNEL_POSITION_NONE;
+  }
+
   return TRUE;
 }
+
+void
+alsa_detect_channels_mapping (GstObject * obj, snd_pcm_t * handle,
+    GstAudioRingBufferSpec * spec, guint channels, GstAudioRingBuffer * buf)
+{
+  snd_pcm_chmap_t *chmap;
+  GstAudioChannelPosition pos[8];
+
+  if (spec->type != GST_AUDIO_RING_BUFFER_FORMAT_TYPE_RAW || channels >= 9)
+    return;
+
+  chmap = snd_pcm_get_chmap (handle);
+  if (!chmap) {
+    GST_LOG_OBJECT (obj, "ALSA driver does not implement channels mapping API");
+    return;
+  }
+
+  if (chmap->channels != channels) {
+    GST_LOG_OBJECT (obj,
+        "got channels mapping for %u channels but stream has %u channels; ignoring",
+        chmap->channels, channels);
+    goto out;
+  }
+
+  if (alsa_chmap_to_channel_positions (chmap, pos)) {
+#ifndef GST_DISABLE_GST_DEBUG
+    {
+      gchar *tmp = gst_audio_channel_positions_to_string (pos, channels);
+
+      GST_LOG_OBJECT (obj, "got channels mapping %s", tmp);
+      g_free (tmp);
+    }
+#endif /* GST_DISABLE_GST_DEBUG */
+
+    gst_audio_ring_buffer_set_channel_positions (buf, pos);
+  } else {
+    GST_LOG_OBJECT (obj, "failed to convert ALSA channels mapping");
+  }
+
+out:
+  free (chmap);
+}
 #endif /* SND_CHMAP_API_VERSION */
diff --git a/ext/alsa/gstalsa.h b/ext/alsa/gstalsa.h
index 8026619..56fa075 100644
--- a/ext/alsa/gstalsa.h
+++ b/ext/alsa/gstalsa.h
@@ -73,7 +73,13 @@
 extern const GstAudioChannelPosition alsa_position[][8];
 #ifdef SND_CHMAP_API_VERSION
 gboolean alsa_chmap_to_channel_positions (const snd_pcm_chmap_t *chmap,
-					  GstAudioChannelPosition *pos);
+                                          GstAudioChannelPosition *pos);
+
+void alsa_detect_channels_mapping (GstObject * obj,
+                                   snd_pcm_t * handle,
+                                   GstAudioRingBufferSpec * spec,
+                                   guint channels,
+                                   GstAudioRingBuffer * buf);
 #endif
 
 #endif /* __GST_ALSA_H__ */
diff --git a/ext/alsa/gstalsamidisrc.c b/ext/alsa/gstalsamidisrc.c
index 645d0b0..edf7624 100644
--- a/ext/alsa/gstalsamidisrc.c
+++ b/ext/alsa/gstalsamidisrc.c
@@ -247,8 +247,7 @@
       "AlsaMidi Source",
       "Source",
       "Push ALSA MIDI sequencer events around", "Antonio Ospite <ao2@ao2.it>");
-  gst_element_class_add_pad_template (gstelement_class,
-      gst_static_pad_template_get (&srctemplate));
+  gst_element_class_add_static_pad_template (gstelement_class, &srctemplate);
 
   gstbase_src_class->start = GST_DEBUG_FUNCPTR (gst_alsa_midi_src_start);
   gstbase_src_class->stop = GST_DEBUG_FUNCPTR (gst_alsa_midi_src_stop);
diff --git a/ext/alsa/gstalsasink.c b/ext/alsa/gstalsasink.c
index 28f328e..86606f7 100644
--- a/ext/alsa/gstalsasink.c
+++ b/ext/alsa/gstalsasink.c
@@ -166,8 +166,8 @@
       "Audio sink (ALSA)", "Sink/Audio",
       "Output to a sound card via ALSA", "Wim Taymans <wim@fluendo.com>");
 
-  gst_element_class_add_pad_template (gstelement_class,
-      gst_static_pad_template_get (&alsasink_sink_factory));
+  gst_element_class_add_static_pad_template (gstelement_class,
+      &alsasink_sink_factory);
 
   gstbasesink_class->get_caps = GST_DEBUG_FUNCPTR (gst_alsasink_getcaps);
   gstbasesink_class->query = GST_DEBUG_FUNCPTR (gst_alsasink_query);
@@ -909,16 +909,8 @@
   }
 
 #ifdef SND_CHMAP_API_VERSION
-  if (spec->type == GST_AUDIO_RING_BUFFER_FORMAT_TYPE_RAW && alsa->channels < 9) {
-    snd_pcm_chmap_t *chmap = snd_pcm_get_chmap (alsa->handle);
-    if (chmap && chmap->channels == alsa->channels) {
-      GstAudioChannelPosition pos[8];
-      if (alsa_chmap_to_channel_positions (chmap, pos))
-        gst_audio_ring_buffer_set_channel_positions (GST_AUDIO_BASE_SINK
-            (alsa)->ringbuffer, pos);
-    }
-    free (chmap);
-  }
+  alsa_detect_channels_mapping (GST_OBJECT (alsa), alsa->handle, spec,
+      alsa->channels, GST_AUDIO_BASE_SINK (alsa)->ringbuffer);
 #endif /* SND_CHMAP_API_VERSION */
 
   return TRUE;
diff --git a/ext/alsa/gstalsasrc.c b/ext/alsa/gstalsasrc.c
index a359cc3..74b8bf9 100644
--- a/ext/alsa/gstalsasrc.c
+++ b/ext/alsa/gstalsasrc.c
@@ -142,8 +142,8 @@
       "Audio source (ALSA)", "Source/Audio",
       "Read from a sound card via ALSA", "Wim Taymans <wim@fluendo.com>");
 
-  gst_element_class_add_pad_template (gstelement_class,
-      gst_static_pad_template_get (&alsasrc_src_factory));
+  gst_element_class_add_static_pad_template (gstelement_class,
+      &alsasrc_src_factory);
 
   gstbasesrc_class->get_caps = GST_DEBUG_FUNCPTR (gst_alsasrc_getcaps);
 
@@ -785,16 +785,8 @@
   }
 
 #ifdef SND_CHMAP_API_VERSION
-  if (spec->type == GST_AUDIO_RING_BUFFER_FORMAT_TYPE_RAW && alsa->channels < 9) {
-    snd_pcm_chmap_t *chmap = snd_pcm_get_chmap (alsa->handle);
-    if (chmap && chmap->channels == alsa->channels) {
-      GstAudioChannelPosition pos[8];
-      if (alsa_chmap_to_channel_positions (chmap, pos))
-        gst_audio_ring_buffer_set_channel_positions (GST_AUDIO_BASE_SRC
-            (alsa)->ringbuffer, pos);
-    }
-    free (chmap);
-  }
+  alsa_detect_channels_mapping (GST_OBJECT (alsa), alsa->handle, spec,
+      alsa->channels, GST_AUDIO_BASE_SRC (alsa)->ringbuffer);
 #endif /* SND_CHMAP_API_VERSION */
 
   return TRUE;
diff --git a/ext/libvisual/visual.c b/ext/libvisual/visual.c
index 460c106..2ed94f0 100644
--- a/ext/libvisual/visual.c
+++ b/ext/libvisual/visual.c
@@ -30,16 +30,16 @@
 /* amounf of samples before we can feed libvisual */
 #define VISUAL_SAMPLES  512
 
+#if G_BYTE_ORDER == G_BIG_ENDIAN
+#define RGB_ORDER_CAPS "xRGB, RGB"
+#else
+#define RGB_ORDER_CAPS "BGRx, BGR"
+#endif
+
 static GstStaticPadTemplate src_template = GST_STATIC_PAD_TEMPLATE ("src",
     GST_PAD_SRC,
     GST_PAD_ALWAYS,
-    GST_STATIC_CAPS (GST_VIDEO_CAPS_MAKE (" { "
-#if G_BYTE_ORDER == G_BIG_ENDIAN
-            "\"xRGB\", " "\"RGB\", "
-#else
-            "\"BGRx\", " "\"BGR\", "
-#endif
-            "\"RGB16\" } "))
+    GST_STATIC_CAPS (GST_VIDEO_CAPS_MAKE (" { " RGB_ORDER_CAPS ", RGB16 } "))
     );
 
 static GstStaticPadTemplate sink_template = GST_STATIC_PAD_TEMPLATE ("sink",
@@ -103,10 +103,8 @@
         klass->plugin->info->name, klass->plugin->info->version);
 
     /* FIXME: improve to only register what plugin supports? */
-    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,
         longname, "Visualization",
diff --git a/ext/ogg/gstoggaviparse.c b/ext/ogg/gstoggaviparse.c
index c96a2df..7a12a32 100644
--- a/ext/ogg/gstoggaviparse.c
+++ b/ext/ogg/gstoggaviparse.c
@@ -140,10 +140,10 @@
       "parse an ogg avi stream into pages (info about ogg: http://xiph.org)",
       "Wim Taymans <wim@fluendo.com>");
 
-  gst_element_class_add_pad_template (element_class,
-      gst_static_pad_template_get (&ogg_avi_parse_sink_template_factory));
-  gst_element_class_add_pad_template (element_class,
-      gst_static_pad_template_get (&ogg_avi_parse_src_template_factory));
+  gst_element_class_add_static_pad_template (element_class,
+      &ogg_avi_parse_sink_template_factory);
+  gst_element_class_add_static_pad_template (element_class,
+      &ogg_avi_parse_src_template_factory);
 }
 
 static void
diff --git a/ext/ogg/gstoggdemux.c b/ext/ogg/gstoggdemux.c
index bd129ab..f84d0e0 100644
--- a/ext/ogg/gstoggdemux.c
+++ b/ext/ogg/gstoggdemux.c
@@ -808,8 +808,6 @@
           pad->discont = FALSE;
   }
 
-  pad->position = ogg->segment.position;
-
   /* don't push the header packets when we are asked to skip them */
   if (!packet->b_o_s || push_headers) {
     if (pad->last_ret == GST_FLOW_OK) {
@@ -854,6 +852,8 @@
   GST_DEBUG_OBJECT (ogg, "ogg current time %" GST_TIME_FORMAT
       " (%" G_GINT64_FORMAT ")", GST_TIME_ARGS (current_time), current_time);
 
+  pad->position = ogg->segment.position;
+
   /* check stream eos */
   if (!pad->is_eos && !delta_unit &&
       ((ogg->segment.rate > 0.0 &&
@@ -2238,10 +2238,10 @@
       "demux ogg streams (info about ogg: http://xiph.org)",
       "Wim Taymans <wim@fluendo.com>");
 
-  gst_element_class_add_pad_template (gstelement_class,
-      gst_static_pad_template_get (&ogg_demux_sink_template_factory));
-  gst_element_class_add_pad_template (gstelement_class,
-      gst_static_pad_template_get (&ogg_demux_src_template_factory));
+  gst_element_class_add_static_pad_template (gstelement_class,
+      &ogg_demux_sink_template_factory);
+  gst_element_class_add_static_pad_template (gstelement_class,
+      &ogg_demux_src_template_factory);
 
   gstelement_class->change_state = gst_ogg_demux_change_state;
   gstelement_class->send_event = gst_ogg_demux_receive_event;
@@ -2319,6 +2319,7 @@
     stream->start_time = -1;
     stream->map.accumulated_granule = 0;
     stream->current_granule = -1;
+    stream->keyframe_granule = -1;
   }
   ogg->building_chain = chain;
   GST_DEBUG_OBJECT (ogg, "Resetting current chain");
@@ -4562,7 +4563,7 @@
   drop = (ogg->seek_event_drop_till > 0);
   GST_PUSH_UNLOCK (ogg);
   if (drop) {
-    GST_ERROR_OBJECT (ogg, "Dropping buffer because we have a pending seek");
+    GST_DEBUG_OBJECT (ogg, "Dropping buffer because we have a pending seek");
     gst_buffer_unref (buffer);
     return GST_FLOW_OK;
   }
diff --git a/ext/ogg/gstoggmux.c b/ext/ogg/gstoggmux.c
index 4e1ce94..d2adb3b 100644
--- a/ext/ogg/gstoggmux.c
+++ b/ext/ogg/gstoggmux.c
@@ -150,14 +150,13 @@
   gobject_class->get_property = gst_ogg_mux_get_property;
   gobject_class->set_property = gst_ogg_mux_set_property;
 
-  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 (&video_sink_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 (&subtitle_sink_factory));
+  gst_element_class_add_static_pad_template (gstelement_class, &src_factory);
+  gst_element_class_add_static_pad_template (gstelement_class,
+      &video_sink_factory);
+  gst_element_class_add_static_pad_template (gstelement_class,
+      &audio_sink_factory);
+  gst_element_class_add_static_pad_template (gstelement_class,
+      &subtitle_sink_factory);
 
   gst_element_class_set_static_metadata (gstelement_class,
       "Ogg muxer", "Codec/Muxer",
diff --git a/ext/ogg/gstoggparse.c b/ext/ogg/gstoggparse.c
index 76f53ab..1d7107b 100644
--- a/ext/ogg/gstoggparse.c
+++ b/ext/ogg/gstoggparse.c
@@ -225,10 +225,10 @@
       "parse ogg streams into pages (info about ogg: http://xiph.org)",
       "Michael Smith <msmith@fluendo.com>");
 
-  gst_element_class_add_pad_template (element_class,
-      gst_static_pad_template_get (&ogg_parse_sink_template_factory));
-  gst_element_class_add_pad_template (element_class,
-      gst_static_pad_template_get (&ogg_parse_src_template_factory));
+  gst_element_class_add_static_pad_template (element_class,
+      &ogg_parse_sink_template_factory);
+  gst_element_class_add_static_pad_template (element_class,
+      &ogg_parse_src_template_factory);
 }
 
 static void
diff --git a/ext/ogg/gstogmparse.c b/ext/ogg/gstogmparse.c
index c85c064..00632ea 100644
--- a/ext/ogg/gstogmparse.c
+++ b/ext/ogg/gstogmparse.c
@@ -281,10 +281,10 @@
       "parse an OGM audio header and stream",
       "GStreamer maintainers <gstreamer-devel@lists.freedesktop.org>");
 
-  gst_element_class_add_pad_template (element_class,
-      gst_static_pad_template_get (&sink_factory_audio));
-  audio_src_templ = gst_pad_template_new ("src",
-      GST_PAD_SRC, GST_PAD_SOMETIMES, caps);
+  gst_element_class_add_static_pad_template (element_class,
+      &sink_factory_audio);
+  audio_src_templ =
+      gst_pad_template_new ("src", GST_PAD_SRC, GST_PAD_SOMETIMES, caps);
   gst_element_class_add_pad_template (element_class, audio_src_templ);
   gst_caps_unref (caps);
 }
@@ -300,10 +300,10 @@
       "parse an OGM video header and stream",
       "GStreamer maintainers <gstreamer-devel@lists.freedesktop.org>");
 
-  gst_element_class_add_pad_template (element_class,
-      gst_static_pad_template_get (&sink_factory_video));
-  video_src_templ = gst_pad_template_new ("src",
-      GST_PAD_SRC, GST_PAD_SOMETIMES, caps);
+  gst_element_class_add_static_pad_template (element_class,
+      &sink_factory_video);
+  video_src_templ =
+      gst_pad_template_new ("src", GST_PAD_SRC, GST_PAD_SOMETIMES, caps);
   gst_element_class_add_pad_template (element_class, video_src_templ);
   gst_caps_unref (caps);
 }
@@ -320,8 +320,7 @@
       "parse an OGM text header and stream",
       "GStreamer maintainers <gstreamer-devel@lists.freedesktop.org>");
 
-  gst_element_class_add_pad_template (element_class,
-      gst_static_pad_template_get (&sink_factory_text));
+  gst_element_class_add_static_pad_template (element_class, &sink_factory_text);
   text_src_templ = gst_pad_template_new ("src",
       GST_PAD_SRC, GST_PAD_SOMETIMES, caps);
   gst_element_class_add_pad_template (element_class, text_src_templ);
diff --git a/ext/opus/gstopusdec.c b/ext/opus/gstopusdec.c
index 501a379..7e99478 100644
--- a/ext/opus/gstopusdec.c
+++ b/ext/opus/gstopusdec.c
@@ -126,13 +126,12 @@
   adclass->set_format = GST_DEBUG_FUNCPTR (gst_opus_dec_set_format);
   adclass->getcaps = GST_DEBUG_FUNCPTR (gst_opus_dec_getcaps);
 
-  gst_element_class_add_pad_template (element_class,
-      gst_static_pad_template_get (&opus_dec_src_factory));
-  gst_element_class_add_pad_template (element_class,
-      gst_static_pad_template_get (&opus_dec_sink_factory));
+  gst_element_class_add_static_pad_template (element_class,
+      &opus_dec_src_factory);
+  gst_element_class_add_static_pad_template (element_class,
+      &opus_dec_sink_factory);
   gst_element_class_set_static_metadata (element_class, "Opus audio decoder",
-      "Codec/Decoder/Audio",
-      "decode opus streams to audio",
+      "Codec/Decoder/Audio", "decode opus streams to audio",
       "Vincent Penquerc'h <vincent.penquerch@collabora.co.uk>");
   g_object_class_install_property (gobject_class, PROP_USE_INBAND_FEC,
       g_param_spec_boolean ("use-inband-fec", "Use in-band FEC",
@@ -167,6 +166,7 @@
   dec->sample_rate = 0;
   dec->n_channels = 0;
   dec->leftover_plc_duration = 0;
+  dec->last_known_buffer_duration = GST_CLOCK_TIME_NONE;
 }
 
 static void
@@ -317,7 +317,8 @@
   const GstAudioChannelPosition *posn = NULL;
 
   if (!gst_opus_header_is_id_header (buf)) {
-    GST_ERROR_OBJECT (dec, "Header is not an Opus ID header");
+    GST_ELEMENT_ERROR (dec, STREAM, FORMAT, (NULL),
+        ("Header is not an Opus ID header"));
     return GST_FLOW_ERROR;
   }
 
@@ -328,7 +329,8 @@
           &dec->n_streams,
           &dec->n_stereo_streams,
           dec->channel_mapping, &dec->pre_skip, &dec->r128_gain)) {
-    GST_ERROR_OBJECT (dec, "Failed to parse Opus ID header");
+    GST_ELEMENT_ERROR (dec, STREAM, DECODE, (NULL),
+        ("Failed to parse Opus ID header"));
     return GST_FLOW_ERROR;
   }
   dec->r128_gain_volume = gst_opus_dec_get_r128_volume (dec->r128_gain);
@@ -382,6 +384,66 @@
   return GST_FLOW_OK;
 }
 
+/* adapted from ext/ogg/gstoggstream.c */
+static gint64
+packet_duration_opus (const unsigned char *data, size_t bytes)
+{
+  static const guint64 durations[32] = {
+    480, 960, 1920, 2880,       /* Silk NB */
+    480, 960, 1920, 2880,       /* Silk MB */
+    480, 960, 1920, 2880,       /* Silk WB */
+    480, 960,                   /* Hybrid SWB */
+    480, 960,                   /* Hybrid FB */
+    120, 240, 480, 960,         /* CELT NB */
+    120, 240, 480, 960,         /* CELT NB */
+    120, 240, 480, 960,         /* CELT NB */
+    120, 240, 480, 960,         /* CELT NB */
+  };
+
+  gint64 duration;
+  gint64 frame_duration;
+  gint nframes = 0;
+  guint8 toc;
+
+  if (bytes < 1)
+    return 0;
+
+  /* headers */
+  if (bytes >= 8 && !memcmp (data, "Opus", 4))
+    return 0;
+
+  toc = data[0];
+
+  frame_duration = durations[toc >> 3];
+  switch (toc & 3) {
+    case 0:
+      nframes = 1;
+      break;
+    case 1:
+      nframes = 2;
+      break;
+    case 2:
+      nframes = 2;
+      break;
+    case 3:
+      if (bytes < 2) {
+        GST_WARNING ("Code 3 Opus packet has less than 2 bytes");
+        return 0;
+      }
+      nframes = data[1] & 63;
+      break;
+  }
+
+  duration = nframes * frame_duration;
+  if (duration > 5760) {
+    GST_WARNING ("Opus packet duration > 120 ms, invalid");
+    return 0;
+  }
+  GST_LOG ("Opus packet: frame size %.1f ms, %d frames, duration %.1f ms",
+      frame_duration / 48.f, nframes, duration / 48.f);
+  return duration / 48.f * 1000000;
+}
+
 static GstFlowReturn
 opus_dec_chain_parse_data (GstOpusDec * dec, GstBuffer * buffer)
 {
@@ -478,6 +540,19 @@
     GstClockTime aligned_missing_duration;
     GstClockTime missing_duration = GST_BUFFER_DURATION (bufd);
 
+    if (!GST_CLOCK_TIME_IS_VALID (missing_duration)) {
+      if (GST_CLOCK_TIME_IS_VALID (dec->last_known_buffer_duration)) {
+        missing_duration = dec->last_known_buffer_duration;
+        GST_WARNING_OBJECT (dec,
+            "Missing duration, using last duration %" GST_TIME_FORMAT,
+            GST_TIME_ARGS (missing_duration));
+      } else {
+        GST_WARNING_OBJECT (dec,
+            "Missing buffer, but unknown duration, and no previously known duration, assuming 20 ms");
+        missing_duration = 20 * GST_MSECOND;
+      }
+    }
+
     GST_DEBUG_OBJECT (dec,
         "missing buffer, doing PLC duration %" GST_TIME_FORMAT
         " plus leftover %" GST_TIME_FORMAT, GST_TIME_ARGS (missing_duration),
@@ -530,6 +605,9 @@
     goto buffer_failed;
   }
 
+  if (size > 0)
+    dec->last_known_buffer_duration = packet_duration_opus (data, size);
+
   gst_buffer_map (outbuf, &omap, GST_MAP_WRITE);
   out_data = (gint16 *) omap.data;
 
@@ -558,7 +636,7 @@
     GstFlowReturn ret = GST_FLOW_ERROR;
 
     gst_buffer_unref (outbuf);
-    GST_AUDIO_DECODER_ERROR (dec, 1, STREAM, DECODE, ("Error decoding stream"),
+    GST_AUDIO_DECODER_ERROR (dec, 1, STREAM, DECODE, (NULL),
         ("Decoding error (%d): %s", n, opus_strerror (n)), ret);
     return ret;
   }
@@ -647,11 +725,13 @@
   return res;
 
 creation_failed:
-  GST_ERROR_OBJECT (dec, "Failed to create Opus decoder: %d", err);
+  GST_ELEMENT_ERROR (dec, LIBRARY, INIT, ("Failed to create Opus decoder"),
+      ("Failed to create Opus decoder (%d): %s", err, opus_strerror (err)));
   return GST_FLOW_ERROR;
 
 buffer_failed:
-  GST_ERROR_OBJECT (dec, "Failed to create %u byte buffer", packet_size);
+  GST_ELEMENT_ERROR (dec, STREAM, DECODE, (NULL),
+      ("Failed to create %u byte buffer", packet_size));
   return GST_FLOW_ERROR;
 }
 
diff --git a/ext/opus/gstopusdec.h b/ext/opus/gstopusdec.h
index df52cfb..de0dd17 100644
--- a/ext/opus/gstopusdec.h
+++ b/ext/opus/gstopusdec.h
@@ -73,6 +73,8 @@
   gboolean primed;
 
   guint64 leftover_plc_duration;
+
+  GstClockTime last_known_buffer_duration;
 };
 
 struct _GstOpusDecClass {
diff --git a/ext/opus/gstopusenc.c b/ext/opus/gstopusenc.c
index 604974e..e06b75c 100644
--- a/ext/opus/gstopusenc.c
+++ b/ext/opus/gstopusenc.c
@@ -271,10 +271,8 @@
   gobject_class->set_property = gst_opus_enc_set_property;
   gobject_class->get_property = gst_opus_enc_get_property;
 
-  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, "Opus audio encoder",
       "Codec/Encoder/Audio",
       "Encodes audio in Opus format",
@@ -814,6 +812,9 @@
 
     caps = gst_caps_new_empty ();
 
+    /* The caps is cached */
+    GST_MINI_OBJECT_FLAG_SET (caps, GST_MINI_OBJECT_FLAG_MAY_BE_LEAKED);
+
     /* Generate our two template structures */
     g_value_init (&rate_array, GST_TYPE_LIST);
     g_value_init (&v, G_TYPE_INT);
@@ -1046,13 +1047,14 @@
   gst_buffer_unmap (outbuf, &omap);
 
   if (outsize < 0) {
-    GST_ERROR_OBJECT (enc, "Encoding failed: %d", outsize);
+    GST_ELEMENT_ERROR (enc, STREAM, ENCODE, (NULL),
+        ("Encoding failed (%d): %s", outsize, opus_strerror (outsize)));
     ret = GST_FLOW_ERROR;
     goto done;
   } else if (outsize > max_payload_size) {
-    GST_WARNING_OBJECT (enc,
-        "Encoded size %d is higher than max payload size (%d bytes)",
-        outsize, max_payload_size);
+    GST_ELEMENT_ERROR (enc, STREAM, ENCODE, (NULL),
+        ("Encoded size %d is higher than max payload size (%d bytes)",
+            outsize, max_payload_size));
     ret = GST_FLOW_ERROR;
     goto done;
   }
diff --git a/ext/pango/gstbasetextoverlay.c b/ext/pango/gstbasetextoverlay.c
index e0bb169..d2cdc23 100644
--- a/ext/pango/gstbasetextoverlay.c
+++ b/ext/pango/gstbasetextoverlay.c
@@ -351,10 +351,10 @@
   gobject_class->set_property = gst_base_text_overlay_set_property;
   gobject_class->get_property = gst_base_text_overlay_get_property;
 
-  gst_element_class_add_pad_template (gstelement_class,
-      gst_static_pad_template_get (&src_template_factory));
-  gst_element_class_add_pad_template (gstelement_class,
-      gst_static_pad_template_get (&video_sink_template_factory));
+  gst_element_class_add_static_pad_template (gstelement_class,
+      &src_template_factory);
+  gst_element_class_add_static_pad_template (gstelement_class,
+      &video_sink_template_factory);
 
   gstelement_class->change_state =
       GST_DEBUG_FUNCPTR (gst_base_text_overlay_change_state);
@@ -2160,6 +2160,7 @@
     case GST_VIDEO_FORMAT_UYVY:
     case GST_VIDEO_FORMAT_YUY2:
     case GST_VIDEO_FORMAT_v308:
+    case GST_VIDEO_FORMAT_IYU2:
       gst_base_text_overlay_shade_packed_Y (overlay, frame, x0, x1, y0, y1);
       break;
     case GST_VIDEO_FORMAT_xRGB:
diff --git a/ext/pango/gsttextoverlay.c b/ext/pango/gsttextoverlay.c
index d036579..453e51e 100644
--- a/ext/pango/gsttextoverlay.c
+++ b/ext/pango/gsttextoverlay.c
@@ -90,8 +90,8 @@
 {
   GstElementClass *element_class = (GstElementClass *) klass;
 
-  gst_element_class_add_pad_template (element_class,
-      gst_static_pad_template_get (&text_sink_template_factory));
+  gst_element_class_add_static_pad_template (element_class,
+      &text_sink_template_factory);
 
   gst_element_class_set_static_metadata (element_class, "Text overlay",
       "Filter/Editor/Video",
diff --git a/ext/pango/gsttextrender.c b/ext/pango/gsttextrender.c
index c16dce4..8d59a1b 100644
--- a/ext/pango/gsttextrender.c
+++ b/ext/pango/gsttextrender.c
@@ -188,10 +188,10 @@
   gobject_class->set_property = gst_text_render_set_property;
   gobject_class->get_property = gst_text_render_get_property;
 
-  gst_element_class_add_pad_template (gstelement_class,
-      gst_static_pad_template_get (&src_template_factory));
-  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,
+      &src_template_factory);
+  gst_element_class_add_static_pad_template (gstelement_class,
+      &sink_template_factory);
 
   gst_element_class_set_static_metadata (gstelement_class, "Text renderer",
       "Filter/Editor/Video",
diff --git a/ext/theora/gsttheoradec.c b/ext/theora/gsttheoradec.c
index e9e70e1..45c777e 100644
--- a/ext/theora/gsttheoradec.c
+++ b/ext/theora/gsttheoradec.c
@@ -172,13 +172,12 @@
             G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS));
   }
 
-  gst_element_class_add_pad_template (element_class,
-      gst_static_pad_template_get (&theora_dec_src_factory));
-  gst_element_class_add_pad_template (element_class,
-      gst_static_pad_template_get (&theora_dec_sink_factory));
-  gst_element_class_set_static_metadata (element_class,
-      "Theora video decoder", "Codec/Decoder/Video",
-      "decode raw theora streams to raw YUV video",
+  gst_element_class_add_static_pad_template (element_class,
+      &theora_dec_src_factory);
+  gst_element_class_add_static_pad_template (element_class,
+      &theora_dec_sink_factory);
+  gst_element_class_set_static_metadata (element_class, "Theora video decoder",
+      "Codec/Decoder/Video", "decode raw theora streams to raw YUV video",
       "Benjamin Otte <otte@gnome.org>, Wim Taymans <wim@fluendo.com>");
 
   video_decoder_class->start = GST_DEBUG_FUNCPTR (theora_dec_start);
diff --git a/ext/theora/gsttheoraenc.c b/ext/theora/gsttheoraenc.c
index ce692f2..d291221 100644
--- a/ext/theora/gsttheoraenc.c
+++ b/ext/theora/gsttheoraenc.c
@@ -212,13 +212,12 @@
   gobject_class->get_property = theora_enc_get_property;
   gobject_class->finalize = theora_enc_finalize;
 
-  gst_element_class_add_pad_template (element_class,
-      gst_static_pad_template_get (&theora_enc_src_factory));
-  gst_element_class_add_pad_template (element_class,
-      gst_static_pad_template_get (&theora_enc_sink_factory));
-  gst_element_class_set_static_metadata (element_class,
-      "Theora video encoder", "Codec/Encoder/Video",
-      "encode raw YUV video to a theora stream",
+  gst_element_class_add_static_pad_template (element_class,
+      &theora_enc_src_factory);
+  gst_element_class_add_static_pad_template (element_class,
+      &theora_enc_sink_factory);
+  gst_element_class_set_static_metadata (element_class, "Theora video encoder",
+      "Codec/Encoder/Video", "encode raw YUV video to a theora stream",
       "Wim Taymans <wim@fluendo.com>");
 
   gstvideo_encoder_class->start = GST_DEBUG_FUNCPTR (theora_enc_start);
diff --git a/ext/theora/gsttheoraparse.c b/ext/theora/gsttheoraparse.c
index 5c58644..12a5fb1 100644
--- a/ext/theora/gsttheoraparse.c
+++ b/ext/theora/gsttheoraparse.c
@@ -135,13 +135,13 @@
           G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS));
 #endif
 
-  gst_element_class_add_pad_template (gstelement_class,
-      gst_static_pad_template_get (&theora_parse_src_factory));
-  gst_element_class_add_pad_template (gstelement_class,
-      gst_static_pad_template_get (&theora_parse_sink_factory));
+  gst_element_class_add_static_pad_template (gstelement_class,
+      &theora_parse_src_factory);
+  gst_element_class_add_static_pad_template (gstelement_class,
+      &theora_parse_sink_factory);
   gst_element_class_set_static_metadata (gstelement_class,
-      "Theora video parser", "Codec/Parser/Video",
-      "parse raw theora streams", "Andy Wingo <wingo@pobox.com>");
+      "Theora video parser", "Codec/Parser/Video", "parse raw theora streams",
+      "Andy Wingo <wingo@pobox.com>");
 
   gstelement_class->change_state = theora_parse_change_state;
 
diff --git a/ext/vorbis/gstvorbisdec.c b/ext/vorbis/gstvorbisdec.c
index bc0a20f..afe32ca 100644
--- a/ext/vorbis/gstvorbisdec.c
+++ b/ext/vorbis/gstvorbisdec.c
@@ -83,18 +83,16 @@
 static void
 gst_vorbis_dec_class_init (GstVorbisDecClass * klass)
 {
-  GstPadTemplate *src_template, *sink_template;
   GObjectClass *gobject_class = G_OBJECT_CLASS (klass);
   GstElementClass *element_class = GST_ELEMENT_CLASS (klass);
   GstAudioDecoderClass *base_class = GST_AUDIO_DECODER_CLASS (klass);
 
   gobject_class->finalize = vorbis_dec_finalize;
 
-  src_template = gst_static_pad_template_get (&vorbis_dec_src_factory);
-  gst_element_class_add_pad_template (element_class, src_template);
-
-  sink_template = gst_static_pad_template_get (&vorbis_dec_sink_factory);
-  gst_element_class_add_pad_template (element_class, sink_template);
+  gst_element_class_add_static_pad_template (element_class,
+      &vorbis_dec_src_factory);
+  gst_element_class_add_static_pad_template (element_class,
+      &vorbis_dec_sink_factory);
 
   gst_element_class_set_static_metadata (element_class,
       "Vorbis audio decoder", "Codec/Decoder/Audio",
diff --git a/ext/vorbis/gstvorbisenc.c b/ext/vorbis/gstvorbisenc.c
index 818a010..1ac9d83 100644
--- a/ext/vorbis/gstvorbisenc.c
+++ b/ext/vorbis/gstvorbisenc.c
@@ -162,8 +162,8 @@
   gst_element_class_add_pad_template (gstelement_class, sink_templ);
   gst_caps_unref (sink_caps);
 
-  gst_element_class_add_pad_template (gstelement_class,
-      gst_static_pad_template_get (&vorbis_enc_src_factory));
+  gst_element_class_add_static_pad_template (gstelement_class,
+      &vorbis_enc_src_factory);
 
   gst_element_class_set_static_metadata (gstelement_class,
       "Vorbis audio encoder", "Codec/Encoder/Audio",
diff --git a/ext/vorbis/gstvorbisparse.c b/ext/vorbis/gstvorbisparse.c
index f9f9198..dd357a1 100644
--- a/ext/vorbis/gstvorbisparse.c
+++ b/ext/vorbis/gstvorbisparse.c
@@ -93,13 +93,12 @@
 
   gstelement_class->change_state = vorbis_parse_change_state;
 
-  gst_element_class_add_pad_template (gstelement_class,
-      gst_static_pad_template_get (&vorbis_parse_src_factory));
-  gst_element_class_add_pad_template (gstelement_class,
-      gst_static_pad_template_get (&vorbis_parse_sink_factory));
-  gst_element_class_set_static_metadata (gstelement_class,
-      "VorbisParse", "Codec/Parser/Audio",
-      "parse raw vorbis streams",
+  gst_element_class_add_static_pad_template (gstelement_class,
+      &vorbis_parse_src_factory);
+  gst_element_class_add_static_pad_template (gstelement_class,
+      &vorbis_parse_sink_factory);
+  gst_element_class_set_static_metadata (gstelement_class, "VorbisParse",
+      "Codec/Parser/Audio", "parse raw vorbis streams",
       "Thomas Vander Stichele <thomas at apestaart dot org>");
 
   klass->parse_packet = GST_DEBUG_FUNCPTR (vorbis_parse_parse_packet);
diff --git a/gst-libs/gst/allocators/Makefile.am b/gst-libs/gst/allocators/Makefile.am
index 5c11b8a..bccfdb3 100644
--- a/gst-libs/gst/allocators/Makefile.am
+++ b/gst-libs/gst/allocators/Makefile.am
@@ -27,6 +27,7 @@
 GstAllocators-@GST_API_VERSION@.gir: $(INTROSPECTION_SCANNER) libgstallocators-@GST_API_VERSION@.la
 	$(AM_V_GEN)PKG_CONFIG_PATH="$(GST_PKG_CONFIG_PATH)" GI_SCANNER_DISABLE_CACHE=yes\
 		GST_PLUGIN_SYSTEM_PATH="" GST_PLUGIN_PATH="" GST_REGISTRY_UPDATE=no \
+		CPPFLAGS="$(CPPFLAGS)" CFLAGS="$(CFLAGS)" LDFLAGS="$(LDFLAGS)" CC="$(CC)" PKG_CONFIG="$(PKG_CONFIG)" DLLTOOL="$(DLLTOOL)" \
 		$(INTROSPECTION_SCANNER) -v --namespace GstAllocators \
 		--nsversion=@GST_API_VERSION@ \
 		--identifier-prefix=Gst \
diff --git a/gst-libs/gst/allocators/Makefile.in b/gst-libs/gst/allocators/Makefile.in
index 1d1c999..140b71b 100644
--- a/gst-libs/gst/allocators/Makefile.in
+++ b/gst-libs/gst/allocators/Makefile.in
@@ -913,6 +913,7 @@
 @HAVE_INTROSPECTION_TRUE@GstAllocators-@GST_API_VERSION@.gir: $(INTROSPECTION_SCANNER) libgstallocators-@GST_API_VERSION@.la
 @HAVE_INTROSPECTION_TRUE@	$(AM_V_GEN)PKG_CONFIG_PATH="$(GST_PKG_CONFIG_PATH)" GI_SCANNER_DISABLE_CACHE=yes\
 @HAVE_INTROSPECTION_TRUE@		GST_PLUGIN_SYSTEM_PATH="" GST_PLUGIN_PATH="" GST_REGISTRY_UPDATE=no \
+@HAVE_INTROSPECTION_TRUE@		CPPFLAGS="$(CPPFLAGS)" CFLAGS="$(CFLAGS)" LDFLAGS="$(LDFLAGS)" CC="$(CC)" PKG_CONFIG="$(PKG_CONFIG)" DLLTOOL="$(DLLTOOL)" \
 @HAVE_INTROSPECTION_TRUE@		$(INTROSPECTION_SCANNER) -v --namespace GstAllocators \
 @HAVE_INTROSPECTION_TRUE@		--nsversion=@GST_API_VERSION@ \
 @HAVE_INTROSPECTION_TRUE@		--identifier-prefix=Gst \
diff --git a/gst-libs/gst/allocators/gstfdmemory.c b/gst-libs/gst/allocators/gstfdmemory.c
index 7a7f05b..312a3d4 100644
--- a/gst-libs/gst/allocators/gstfdmemory.c
+++ b/gst-libs/gst/allocators/gstfdmemory.c
@@ -201,7 +201,7 @@
   allocator_class->free = gst_fd_mem_free;
 
   GST_DEBUG_CATEGORY_INIT (gst_fdmemory_debug, "fdmemory", 0,
-    "GstFdMemory and GstFdAllocator");
+      "GstFdMemory and GstFdAllocator");
 }
 
 static void
diff --git a/gst-libs/gst/app/Makefile.am b/gst-libs/gst/app/Makefile.am
index 1555841..0033371 100644
--- a/gst-libs/gst/app/Makefile.am
+++ b/gst-libs/gst/app/Makefile.am
@@ -6,14 +6,6 @@
 
 include $(top_srcdir)/common/gst-glib-gen.mak
 
-built_sources = gstapp-marshal.c
-built_headers = gstapp-marshal.h
-
-BUILT_SOURCES = $(built_sources) $(built_headers)
-
-nodist_libgstapp_@GST_API_VERSION@_la_SOURCES = \
-             $(built_sources)
-
 libgstapp_@GST_API_VERSION@_la_SOURCES = gstappsrc.c gstappsink.c 
 libgstapp_@GST_API_VERSION@_la_CFLAGS = $(GST_PLUGINS_BASE_CFLAGS) \
 	$(GST_BASE_CFLAGS) $(GST_CFLAGS)
@@ -26,10 +18,6 @@
 	gstappsrc.h \
 	gstappsink.h
 
-CLEANFILES = $(BUILT_SOURCES)
-
-EXTRA_DIST = gstapp-marshal.list
-
 if HAVE_INTROSPECTION
 BUILT_GIRSOURCES = GstApp-@GST_API_VERSION@.gir
 
@@ -40,6 +28,7 @@
 GstApp-@GST_API_VERSION@.gir: $(INTROSPECTION_SCANNER) libgstapp-@GST_API_VERSION@.la
 	$(AM_V_GEN)PKG_CONFIG_PATH="$(GST_PKG_CONFIG_PATH)" GI_SCANNER_DISABLE_CACHE=yes\
 		GST_PLUGIN_SYSTEM_PATH_1_0="" GST_PLUGIN_PATH_1_0="" GST_REGISTRY_UPDATE=no \
+		CPPFLAGS="$(CPPFLAGS)" CFLAGS="$(CFLAGS)" LDFLAGS="$(LDFLAGS)" CC="$(CC)" PKG_CONFIG="$(PKG_CONFIG)" DLLTOOL="$(DLLTOOL)" \
 		$(INTROSPECTION_SCANNER) -v --namespace GstApp \
 		--nsversion=@GST_API_VERSION@ \
 		--identifier-prefix=Gst \
@@ -80,5 +69,5 @@
 		--includedir=`PKG_CONFIG_PATH="$(GST_PKG_CONFIG_PATH)" $(PKG_CONFIG) --variable=girdir gstreamer-base-@GST_API_VERSION@` \
 		$(INTROSPECTION_COMPILER_OPTS) $< -o $(@F)
 
-CLEANFILES += $(BUILT_GIRSOURCES) $(typelibs_DATA)
+CLEANFILES = $(BUILT_GIRSOURCES) $(typelibs_DATA)
 endif
diff --git a/gst-libs/gst/app/Makefile.in b/gst-libs/gst/app/Makefile.in
index ba3f898..7c918b4 100644
--- a/gst-libs/gst/app/Makefile.in
+++ b/gst-libs/gst/app/Makefile.in
@@ -99,7 +99,6 @@
 build_triplet = @build@
 host_triplet = @host@
 target_triplet = @target@
-@HAVE_INTROSPECTION_TRUE@am__append_1 = $(BUILT_GIRSOURCES) $(typelibs_DATA)
 subdir = gst-libs/gst/app
 ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
 am__aclocal_m4_deps = $(top_srcdir)/common/m4/as-ac-expand.m4 \
@@ -179,11 +178,8 @@
 am_libgstapp_@GST_API_VERSION@_la_OBJECTS =  \
 	libgstapp_@GST_API_VERSION@_la-gstappsrc.lo \
 	libgstapp_@GST_API_VERSION@_la-gstappsink.lo
-am__objects_1 = libgstapp_@GST_API_VERSION@_la-gstapp-marshal.lo
-nodist_libgstapp_@GST_API_VERSION@_la_OBJECTS = $(am__objects_1)
 libgstapp_@GST_API_VERSION@_la_OBJECTS =  \
-	$(am_libgstapp_@GST_API_VERSION@_la_OBJECTS) \
-	$(nodist_libgstapp_@GST_API_VERSION@_la_OBJECTS)
+	$(am_libgstapp_@GST_API_VERSION@_la_OBJECTS)
 AM_V_lt = $(am__v_lt_@AM_V@)
 am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@)
 am__v_lt_0 = --silent
@@ -226,8 +222,7 @@
 am__v_CCLD_ = $(am__v_CCLD_@AM_DEFAULT_V@)
 am__v_CCLD_0 = @echo "  CCLD    " $@;
 am__v_CCLD_1 = 
-SOURCES = $(libgstapp_@GST_API_VERSION@_la_SOURCES) \
-	$(nodist_libgstapp_@GST_API_VERSION@_la_SOURCES)
+SOURCES = $(libgstapp_@GST_API_VERSION@_la_SOURCES)
 DIST_SOURCES = $(libgstapp_@GST_API_VERSION@_la_SOURCES)
 am__can_run_installinfo = \
   case $$AM_UPDATE_INFO_DIR in \
@@ -539,12 +534,6 @@
 glib_gen_prefix = __gst_app
 glib_gen_basename = gstapp
 enum_headers = $(foreach h,$(glib_enum_headers),\n\#include \"$(h)\")
-built_sources = gstapp-marshal.c
-built_headers = gstapp-marshal.h
-BUILT_SOURCES = $(built_sources) $(built_headers)
-nodist_libgstapp_@GST_API_VERSION@_la_SOURCES = \
-             $(built_sources)
-
 libgstapp_@GST_API_VERSION@_la_SOURCES = gstappsrc.c gstappsink.c 
 libgstapp_@GST_API_VERSION@_la_CFLAGS = $(GST_PLUGINS_BASE_CFLAGS) \
 	$(GST_BASE_CFLAGS) $(GST_CFLAGS)
@@ -557,8 +546,6 @@
 	gstappsrc.h \
 	gstappsink.h
 
-CLEANFILES = $(BUILT_SOURCES) $(am__append_1)
-EXTRA_DIST = gstapp-marshal.list
 @HAVE_INTROSPECTION_TRUE@BUILT_GIRSOURCES = GstApp-@GST_API_VERSION@.gir
 @HAVE_INTROSPECTION_TRUE@gir_headers = $(patsubst %,$(srcdir)/%, $(libgstapp_@GST_API_VERSION@include_HEADERS))
 @HAVE_INTROSPECTION_TRUE@gir_sources = $(patsubst %,$(srcdir)/%, \
@@ -572,8 +559,8 @@
 @HAVE_INTROSPECTION_TRUE@gir_DATA = $(BUILT_GIRSOURCES)
 @HAVE_INTROSPECTION_TRUE@typelibsdir = $(libdir)/girepository-1.0/
 @HAVE_INTROSPECTION_TRUE@typelibs_DATA = $(BUILT_GIRSOURCES:.gir=.typelib)
-all: $(BUILT_SOURCES)
-	$(MAKE) $(AM_MAKEFLAGS) all-am
+@HAVE_INTROSPECTION_TRUE@CLEANFILES = $(BUILT_GIRSOURCES) $(typelibs_DATA)
+all: all-am
 
 .SUFFIXES:
 .SUFFIXES: .c .lo .o .obj
@@ -652,7 +639,6 @@
 distclean-compile:
 	-rm -f *.tab.c
 
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgstapp_@GST_API_VERSION@_la-gstapp-marshal.Plo@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgstapp_@GST_API_VERSION@_la-gstappsink.Plo@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgstapp_@GST_API_VERSION@_la-gstappsrc.Plo@am__quote@
 
@@ -694,13 +680,6 @@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
 @am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstapp_@GST_API_VERSION@_la_CFLAGS) $(CFLAGS) -c -o libgstapp_@GST_API_VERSION@_la-gstappsink.lo `test -f 'gstappsink.c' || echo '$(srcdir)/'`gstappsink.c
 
-libgstapp_@GST_API_VERSION@_la-gstapp-marshal.lo: gstapp-marshal.c
-@am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstapp_@GST_API_VERSION@_la_CFLAGS) $(CFLAGS) -MT libgstapp_@GST_API_VERSION@_la-gstapp-marshal.lo -MD -MP -MF $(DEPDIR)/libgstapp_@GST_API_VERSION@_la-gstapp-marshal.Tpo -c -o libgstapp_@GST_API_VERSION@_la-gstapp-marshal.lo `test -f 'gstapp-marshal.c' || echo '$(srcdir)/'`gstapp-marshal.c
-@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libgstapp_@GST_API_VERSION@_la-gstapp-marshal.Tpo $(DEPDIR)/libgstapp_@GST_API_VERSION@_la-gstapp-marshal.Plo
-@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='gstapp-marshal.c' object='libgstapp_@GST_API_VERSION@_la-gstapp-marshal.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 $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstapp_@GST_API_VERSION@_la_CFLAGS) $(CFLAGS) -c -o libgstapp_@GST_API_VERSION@_la-gstapp-marshal.lo `test -f 'gstapp-marshal.c' || echo '$(srcdir)/'`gstapp-marshal.c
-
 mostlyclean-libtool:
 	-rm -f *.lo
 
@@ -807,15 +786,13 @@
 	  fi; \
 	done
 check-am: all-am
-check: $(BUILT_SOURCES)
-	$(MAKE) $(AM_MAKEFLAGS) check-am
+check: check-am
 all-am: Makefile $(LTLIBRARIES) $(DATA) $(HEADERS)
 installdirs:
 	for dir in "$(DESTDIR)$(libdir)" "$(DESTDIR)$(girdir)" "$(DESTDIR)$(typelibsdir)" "$(DESTDIR)$(libgstapp_@GST_API_VERSION@includedir)"; do \
 	  test -z "$$dir" || $(MKDIR_P) "$$dir"; \
 	done
-install: $(BUILT_SOURCES)
-	$(MAKE) $(AM_MAKEFLAGS) install-am
+install: install-am
 install-exec: install-exec-am
 install-data: install-data-am
 uninstall: uninstall-am
@@ -846,7 +823,6 @@
 maintainer-clean-generic:
 	@echo "This command is intended for maintainers to use"
 	@echo "it deletes files that may require special tools to rebuild."
-	-test -z "$(BUILT_SOURCES)" || rm -f $(BUILT_SOURCES)
 clean: clean-am
 
 clean-am: clean-generic clean-libLTLIBRARIES clean-libtool \
@@ -921,7 +897,7 @@
 	uninstall-libgstapp_@GST_API_VERSION@includeHEADERS \
 	uninstall-typelibsDATA
 
-.MAKE: all check install install-am install-strip
+.MAKE: install-am install-strip
 
 .PHONY: all all-am check check-am clean clean-generic \
 	clean-libLTLIBRARIES clean-libtool cscopelist-am ctags-am \
@@ -984,6 +960,7 @@
 @HAVE_INTROSPECTION_TRUE@GstApp-@GST_API_VERSION@.gir: $(INTROSPECTION_SCANNER) libgstapp-@GST_API_VERSION@.la
 @HAVE_INTROSPECTION_TRUE@	$(AM_V_GEN)PKG_CONFIG_PATH="$(GST_PKG_CONFIG_PATH)" GI_SCANNER_DISABLE_CACHE=yes\
 @HAVE_INTROSPECTION_TRUE@		GST_PLUGIN_SYSTEM_PATH_1_0="" GST_PLUGIN_PATH_1_0="" GST_REGISTRY_UPDATE=no \
+@HAVE_INTROSPECTION_TRUE@		CPPFLAGS="$(CPPFLAGS)" CFLAGS="$(CFLAGS)" LDFLAGS="$(LDFLAGS)" CC="$(CC)" PKG_CONFIG="$(PKG_CONFIG)" DLLTOOL="$(DLLTOOL)" \
 @HAVE_INTROSPECTION_TRUE@		$(INTROSPECTION_SCANNER) -v --namespace GstApp \
 @HAVE_INTROSPECTION_TRUE@		--nsversion=@GST_API_VERSION@ \
 @HAVE_INTROSPECTION_TRUE@		--identifier-prefix=Gst \
diff --git a/gst-libs/gst/app/gstapp-marshal.list b/gst-libs/gst/app/gstapp-marshal.list
deleted file mode 100644
index d5fefd8..0000000
--- a/gst-libs/gst/app/gstapp-marshal.list
+++ /dev/null
@@ -1,6 +0,0 @@
-BOOLEAN:UINT64
-ENUM:BOXED
-ENUM:VOID
-BOXED:VOID
-VOID:UINT
-
diff --git a/gst-libs/gst/app/gstappsink.c b/gst-libs/gst/app/gstappsink.c
index e5293ee..eca5008 100644
--- a/gst-libs/gst/app/gstappsink.c
+++ b/gst-libs/gst/app/gstappsink.c
@@ -69,7 +69,6 @@
 
 #include <string.h>
 
-#include "gstapp-marshal.h"
 #include "gstappsink.h"
 
 struct _GstAppSinkPrivate
@@ -259,8 +258,7 @@
   gst_app_sink_signals[SIGNAL_NEW_PREROLL] =
       g_signal_new ("new-preroll", G_TYPE_FROM_CLASS (klass), G_SIGNAL_RUN_LAST,
       G_STRUCT_OFFSET (GstAppSinkClass, new_preroll),
-      NULL, NULL, __gst_app_marshal_ENUM__VOID, GST_TYPE_FLOW_RETURN, 0,
-      G_TYPE_NONE);
+      NULL, NULL, NULL, GST_TYPE_FLOW_RETURN, 0, G_TYPE_NONE);
   /**
    * GstAppSink::new-sample:
    * @appsink: the appsink element that emited the signal
@@ -280,8 +278,7 @@
   gst_app_sink_signals[SIGNAL_NEW_SAMPLE] =
       g_signal_new ("new-sample", G_TYPE_FROM_CLASS (klass), G_SIGNAL_RUN_LAST,
       G_STRUCT_OFFSET (GstAppSinkClass, new_sample),
-      NULL, NULL, __gst_app_marshal_ENUM__VOID, GST_TYPE_FLOW_RETURN, 0,
-      G_TYPE_NONE);
+      NULL, NULL, NULL, GST_TYPE_FLOW_RETURN, 0, G_TYPE_NONE);
 
   /**
    * GstAppSink::pull-preroll:
@@ -309,8 +306,7 @@
   gst_app_sink_signals[SIGNAL_PULL_PREROLL] =
       g_signal_new ("pull-preroll", G_TYPE_FROM_CLASS (klass),
       G_SIGNAL_RUN_LAST | G_SIGNAL_ACTION, G_STRUCT_OFFSET (GstAppSinkClass,
-          pull_preroll), NULL, NULL, __gst_app_marshal_BOXED__VOID,
-      GST_TYPE_SAMPLE, 0, G_TYPE_NONE);
+          pull_preroll), NULL, NULL, NULL, GST_TYPE_SAMPLE, 0, G_TYPE_NONE);
   /**
    * GstAppSink::pull-sample:
    * @appsink: the appsink element to emit this signal on
@@ -335,15 +331,14 @@
   gst_app_sink_signals[SIGNAL_PULL_SAMPLE] =
       g_signal_new ("pull-sample", G_TYPE_FROM_CLASS (klass),
       G_SIGNAL_RUN_LAST | G_SIGNAL_ACTION, G_STRUCT_OFFSET (GstAppSinkClass,
-          pull_sample), NULL, NULL, __gst_app_marshal_BOXED__VOID,
-      GST_TYPE_SAMPLE, 0, G_TYPE_NONE);
+          pull_sample), NULL, NULL, NULL, GST_TYPE_SAMPLE, 0, G_TYPE_NONE);
 
   gst_element_class_set_static_metadata (element_class, "AppSink",
       "Generic/Sink", "Allow the application to get access to raw buffer",
       "David Schleef <ds@schleef.org>, Wim Taymans <wim.taymans@gmail.com>");
 
-  gst_element_class_add_pad_template (element_class,
-      gst_static_pad_template_get (&gst_app_sink_template));
+  gst_element_class_add_static_pad_template (element_class,
+      &gst_app_sink_template);
 
   basesink_class->unlock = gst_app_sink_unlock_start;
   basesink_class->unlock_stop = gst_app_sink_unlock_stop;
diff --git a/gst-libs/gst/app/gstappsrc.c b/gst-libs/gst/app/gstappsrc.c
index d06fca1..dcbed51 100644
--- a/gst-libs/gst/app/gstappsrc.c
+++ b/gst-libs/gst/app/gstappsrc.c
@@ -98,7 +98,6 @@
 
 #include <string.h>
 
-#include "gstapp-marshal.h"
 #include "gstappsrc.h"
 
 struct _GstAppSrcPrivate
@@ -111,6 +110,7 @@
   GstCaps *current_caps;
 
   gint64 size;
+  GstClockTime duration;
   GstAppStreamType stream_type;
   guint64 max_bytes;
   GstFormat format;
@@ -163,6 +163,7 @@
 #define DEFAULT_PROP_EMIT_SIGNALS  TRUE
 #define DEFAULT_PROP_MIN_PERCENT   0
 #define DEFAULT_PROP_CURRENT_LEVEL_BYTES   0
+#define DEFAULT_PROP_DURATION      GST_CLOCK_TIME_NONE
 
 enum
 {
@@ -179,6 +180,7 @@
   PROP_EMIT_SIGNALS,
   PROP_MIN_PERCENT,
   PROP_CURRENT_LEVEL_BYTES,
+  PROP_DURATION,
   PROP_LAST
 };
 
@@ -402,6 +404,19 @@
           0, G_MAXUINT64, DEFAULT_PROP_CURRENT_LEVEL_BYTES,
           G_PARAM_READABLE | G_PARAM_STATIC_STRINGS));
 
+  /**
+   * GstAppSrc::duration:
+   *
+   * The total duration in nanoseconds of the data stream. If the total duration is known, it
+   * is recommended to configure it with this property.
+   *
+   * Since: 1.10
+   */
+  g_object_class_install_property (gobject_class, PROP_DURATION,
+      g_param_spec_uint64 ("duration", "Duration",
+          "The duration of the data stream in nanoseconds (GST_CLOCK_TIME_NONE if unknown)",
+          0, G_MAXUINT64, DEFAULT_PROP_DURATION,
+          G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS));
 
   /**
    * GstAppSrc::need-data:
@@ -420,7 +435,7 @@
   gst_app_src_signals[SIGNAL_NEED_DATA] =
       g_signal_new ("need-data", G_TYPE_FROM_CLASS (klass), G_SIGNAL_RUN_LAST,
       G_STRUCT_OFFSET (GstAppSrcClass, need_data),
-      NULL, NULL, __gst_app_marshal_VOID__UINT, G_TYPE_NONE, 1, G_TYPE_UINT);
+      NULL, NULL, NULL, G_TYPE_NONE, 1, G_TYPE_UINT);
 
   /**
    * GstAppSrc::enough-data:
@@ -449,8 +464,7 @@
   gst_app_src_signals[SIGNAL_SEEK_DATA] =
       g_signal_new ("seek-data", G_TYPE_FROM_CLASS (klass), G_SIGNAL_RUN_LAST,
       G_STRUCT_OFFSET (GstAppSrcClass, seek_data),
-      NULL, NULL, __gst_app_marshal_BOOLEAN__UINT64, G_TYPE_BOOLEAN, 1,
-      G_TYPE_UINT64);
+      NULL, NULL, NULL, G_TYPE_BOOLEAN, 1, G_TYPE_UINT64);
 
    /**
     * GstAppSrc::push-buffer:
@@ -467,7 +481,7 @@
   gst_app_src_signals[SIGNAL_PUSH_BUFFER] =
       g_signal_new ("push-buffer", G_TYPE_FROM_CLASS (klass),
       G_SIGNAL_RUN_LAST | G_SIGNAL_ACTION, G_STRUCT_OFFSET (GstAppSrcClass,
-          push_buffer), NULL, NULL, __gst_app_marshal_ENUM__BOXED,
+          push_buffer), NULL, NULL, NULL,
       GST_TYPE_FLOW_RETURN, 1, GST_TYPE_BUFFER);
 
   /**
@@ -493,7 +507,7 @@
   gst_app_src_signals[SIGNAL_PUSH_SAMPLE] =
       g_signal_new ("push-sample", G_TYPE_FROM_CLASS (klass),
       G_SIGNAL_RUN_LAST | G_SIGNAL_ACTION, G_STRUCT_OFFSET (GstAppSrcClass,
-          push_sample), NULL, NULL, __gst_app_marshal_ENUM__BOXED,
+          push_sample), NULL, NULL, NULL,
       GST_TYPE_FLOW_RETURN, 1, GST_TYPE_SAMPLE);
 
 
@@ -506,15 +520,15 @@
   gst_app_src_signals[SIGNAL_END_OF_STREAM] =
       g_signal_new ("end-of-stream", G_TYPE_FROM_CLASS (klass),
       G_SIGNAL_RUN_LAST | G_SIGNAL_ACTION, G_STRUCT_OFFSET (GstAppSrcClass,
-          end_of_stream), NULL, NULL, __gst_app_marshal_ENUM__VOID,
+          end_of_stream), NULL, NULL, NULL,
       GST_TYPE_FLOW_RETURN, 0, G_TYPE_NONE);
 
   gst_element_class_set_static_metadata (element_class, "AppSrc",
       "Generic/Source", "Allow the application to feed buffers to a pipeline",
       "David Schleef <ds@schleef.org>, Wim Taymans <wim.taymans@gmail.com>");
 
-  gst_element_class_add_pad_template (element_class,
-      gst_static_pad_template_get (&gst_app_src_template));
+  gst_element_class_add_static_pad_template (element_class,
+      &gst_app_src_template);
 
   element_class->send_event = gst_app_src_send_event;
 
@@ -551,6 +565,7 @@
   priv->queue = g_queue_new ();
 
   priv->size = DEFAULT_PROP_SIZE;
+  priv->duration = DEFAULT_PROP_DURATION;
   priv->stream_type = DEFAULT_PROP_STREAM_TYPE;
   priv->max_bytes = DEFAULT_PROP_MAX_BYTES;
   priv->format = DEFAULT_PROP_FORMAT;
@@ -703,6 +718,9 @@
     case PROP_MIN_PERCENT:
       priv->min_percent = g_value_get_uint (value);
       break;
+    case PROP_DURATION:
+      gst_app_src_set_duration (appsrc, g_value_get_uint64 (value));
+      break;
     default:
       G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec);
       break;
@@ -763,6 +781,9 @@
     case PROP_CURRENT_LEVEL_BYTES:
       g_value_set_uint64 (value, gst_app_src_get_current_level_bytes (appsrc));
       break;
+    case PROP_DURATION:
+      g_value_set_uint64 (value, gst_app_src_get_duration (appsrc));
+      break;
     default:
       G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec);
       break;
@@ -935,6 +956,9 @@
       if (format == GST_FORMAT_BYTES) {
         gst_query_set_duration (query, format, priv->size);
         res = TRUE;
+      } else if (format == GST_FORMAT_TIME) {
+        gst_query_set_duration (query, format, priv->duration);
+        res = TRUE;
       } else {
         res = FALSE;
       }
@@ -1100,6 +1124,16 @@
 
     gst_element_post_message (GST_ELEMENT (appsrc),
         gst_message_new_duration_changed (GST_OBJECT (appsrc)));
+  } else if (G_UNLIKELY (priv->duration != bsrc->segment.duration &&
+          bsrc->segment.format == GST_FORMAT_TIME)) {
+    GST_DEBUG_OBJECT (appsrc,
+        "Duration changed from %" GST_TIME_FORMAT " to %" GST_TIME_FORMAT,
+        GST_TIME_ARGS (bsrc->segment.duration), GST_TIME_ARGS (priv->duration));
+    bsrc->segment.duration = priv->duration;
+    GST_OBJECT_UNLOCK (appsrc);
+
+    gst_element_post_message (GST_ELEMENT (appsrc),
+        gst_message_new_duration_changed (GST_OBJECT (appsrc)));
   } else {
     GST_OBJECT_UNLOCK (appsrc);
   }
@@ -1357,6 +1391,62 @@
 }
 
 /**
+ * gst_app_src_set_duration:
+ * @appsrc: a #GstAppSrc
+ * @duration: the duration to set
+ *
+ * Set the duration of the stream in nanoseconds. A value of GST_CLOCK_TIME_NONE means that the duration is
+ * not known.
+ *
+ * Since: 1.10
+ */
+void
+gst_app_src_set_duration (GstAppSrc * appsrc, GstClockTime duration)
+{
+  GstAppSrcPrivate *priv;
+
+  g_return_if_fail (GST_IS_APP_SRC (appsrc));
+
+  priv = appsrc->priv;
+
+  GST_OBJECT_LOCK (appsrc);
+  GST_DEBUG_OBJECT (appsrc, "setting duration of %" GST_TIME_FORMAT,
+      GST_TIME_ARGS (duration));
+  priv->duration = duration;
+  GST_OBJECT_UNLOCK (appsrc);
+}
+
+/**
+ * gst_app_src_get_duration:
+ * @appsrc: a #GstAppSrc
+ *
+ * Get the duration of the stream in nanoseconds. A value of GST_CLOCK_TIME_NONE means that the duration is
+ * not known.
+ *
+ * Returns: the duration of the stream previously set with gst_app_src_set_duration();
+ *
+ * Since: 1.10
+ */
+GstClockTime
+gst_app_src_get_duration (GstAppSrc * appsrc)
+{
+  GstClockTime duration;
+  GstAppSrcPrivate *priv;
+
+  g_return_val_if_fail (GST_IS_APP_SRC (appsrc), GST_CLOCK_TIME_NONE);
+
+  priv = appsrc->priv;
+
+  GST_OBJECT_LOCK (appsrc);
+  duration = priv->duration;
+  GST_DEBUG_OBJECT (appsrc, "getting duration of %" GST_TIME_FORMAT,
+      GST_TIME_ARGS (duration));
+  GST_OBJECT_UNLOCK (appsrc);
+
+  return duration;
+}
+
+/**
  * gst_app_src_set_stream_type:
  * @appsrc: a #GstAppSrc
  * @type: the new state
@@ -1617,6 +1707,40 @@
 
   priv = appsrc->priv;
 
+  if (GST_BUFFER_DTS (buffer) == GST_CLOCK_TIME_NONE &&
+      GST_BUFFER_PTS (buffer) == GST_CLOCK_TIME_NONE &&
+      gst_base_src_get_do_timestamp (GST_BASE_SRC_CAST (appsrc))) {
+    GstClock *clock;
+
+    clock = gst_element_get_clock (GST_ELEMENT_CAST (appsrc));
+    if (clock) {
+      GstClockTime now;
+      GstClockTime base_time =
+          gst_element_get_base_time (GST_ELEMENT_CAST (appsrc));
+
+      now = gst_clock_get_time (clock);
+      if (now > base_time)
+        now -= base_time;
+      else
+        now = 0;
+      gst_object_unref (clock);
+
+      if (!steal_ref)
+        buffer = gst_buffer_copy (buffer);
+      else
+        buffer = gst_buffer_make_writable (buffer);
+
+      GST_BUFFER_PTS (buffer) = now;
+      GST_BUFFER_DTS (buffer) = now;
+      steal_ref = TRUE;
+    } else {
+      GST_WARNING_OBJECT (appsrc,
+          "do-timestamp=TRUE but buffers are provided before "
+          "reaching the PLAYING state and having a clock. Timestamps will "
+          "not be accurate!");
+    }
+  }
+
   g_mutex_lock (&priv->mutex);
 
   while (TRUE) {
diff --git a/gst-libs/gst/app/gstappsrc.h b/gst-libs/gst/app/gstappsrc.h
index d37edae..c9d1738 100644
--- a/gst-libs/gst/app/gstappsrc.h
+++ b/gst-libs/gst/app/gstappsrc.h
@@ -127,6 +127,9 @@
 void             gst_app_src_set_size                (GstAppSrc *appsrc, gint64 size);
 gint64           gst_app_src_get_size                (GstAppSrc *appsrc);
 
+void             gst_app_src_set_duration            (GstAppSrc *appsrc, GstClockTime duration);
+GstClockTime     gst_app_src_get_duration            (GstAppSrc *appsrc);
+
 void             gst_app_src_set_stream_type         (GstAppSrc *appsrc, GstAppStreamType type);
 GstAppStreamType gst_app_src_get_stream_type         (GstAppSrc *appsrc);
 
diff --git a/gst-libs/gst/audio/Makefile.am b/gst-libs/gst/audio/Makefile.am
index e707d1d..202cb66 100644
--- a/gst-libs/gst/audio/Makefile.am
+++ b/gst-libs/gst/audio/Makefile.am
@@ -10,6 +10,7 @@
 	audio-converter.h 	\
 	audio-info.h			\
 	audio-quantize.h			\
+	audio-resampler.h			\
 	gstaudioringbuffer.h
 
 glib_enum_define = GST_AUDIO
@@ -25,6 +26,8 @@
 
 CLEANFILES = $(BUILT_SOURCES)
 
+EXTRA_DIST += dbesi0.c
+
 libgstaudio_@GST_API_VERSION@_la_SOURCES = \
 	audio.c \
 	audio-format.c \
@@ -33,6 +36,7 @@
 	audio-converter.c \
 	audio-info.c \
 	audio-quantize.c \
+	audio-resampler.c \
 	gstaudioringbuffer.c \
 	gstaudioclock.c \
 	gstaudiocdsrc.c \
@@ -59,6 +63,7 @@
 	audio-converter.h \
 	audio-info.h \
 	audio-quantize.h \
+	audio-resampler.h \
 	gstaudioringbuffer.h \
 	gstaudioclock.h \
 	gstaudiofilter.h \
@@ -76,7 +81,9 @@
 nodist_libgstaudio_@GST_API_VERSION@include_HEADERS = \
 	audio-enumtypes.h
 
-noinst_HEADERS = gstaudioutilsprivate.h
+noinst_HEADERS = \
+	gstaudioutilsprivate.h \
+	audio-resampler-x86.h
 
 libgstaudio_@GST_API_VERSION@_la_CFLAGS = $(GST_PLUGINS_BASE_CFLAGS) $(GST_BASE_CFLAGS) $(GST_CFLAGS) \
 		$(ORC_CFLAGS)
@@ -98,6 +105,7 @@
 GstAudio-@GST_API_VERSION@.gir: $(INTROSPECTION_SCANNER) libgstaudio-@GST_API_VERSION@.la
 	$(AM_V_GEN)PKG_CONFIG_PATH="$(GST_PKG_CONFIG_PATH)" GI_SCANNER_DISABLE_CACHE=yes\
 		GST_PLUGIN_SYSTEM_PATH_1_0="" GST_PLUGIN_PATH_1_0="" GST_REGISTRY_UPDATE=no \
+		CPPFLAGS="$(CPPFLAGS)" CFLAGS="$(CFLAGS)" LDFLAGS="$(LDFLAGS)" CC="$(CC)" PKG_CONFIG="$(PKG_CONFIG)" DLLTOOL="$(DLLTOOL)" \
 		$(INTROSPECTION_SCANNER) -v --namespace GstAudio \
 		--nsversion=@GST_API_VERSION@ \
 		--warn-all \
diff --git a/gst-libs/gst/audio/Makefile.in b/gst-libs/gst/audio/Makefile.in
index 1a54a8f..ef1f312 100644
--- a/gst-libs/gst/audio/Makefile.in
+++ b/gst-libs/gst/audio/Makefile.in
@@ -209,6 +209,7 @@
 	libgstaudio_@GST_API_VERSION@_la-audio-converter.lo \
 	libgstaudio_@GST_API_VERSION@_la-audio-info.lo \
 	libgstaudio_@GST_API_VERSION@_la-audio-quantize.lo \
+	libgstaudio_@GST_API_VERSION@_la-audio-resampler.lo \
 	libgstaudio_@GST_API_VERSION@_la-gstaudioringbuffer.lo \
 	libgstaudio_@GST_API_VERSION@_la-gstaudioclock.lo \
 	libgstaudio_@GST_API_VERSION@_la-gstaudiocdsrc.lo \
@@ -605,7 +606,7 @@
 
 # variables used for enum/marshal generation
 ORC_SOURCE = gstaudiopack
-EXTRA_DIST = $(ORC_SOURCE).orc
+EXTRA_DIST = $(ORC_SOURCE).orc dbesi0.c
 ORC_NODIST_SOURCES = tmp-orc.c $(ORC_SOURCE).h
 BUILT_SOURCES = tmp-orc.c $(ORC_SOURCE).h $(built_sources) \
 	$(built_headers)
@@ -623,6 +624,7 @@
 	audio-converter.h 	\
 	audio-info.h			\
 	audio-quantize.h			\
+	audio-resampler.h			\
 	gstaudioringbuffer.h
 
 glib_enum_define = GST_AUDIO
@@ -642,6 +644,7 @@
 	audio-converter.c \
 	audio-info.c \
 	audio-quantize.c \
+	audio-resampler.c \
 	gstaudioringbuffer.c \
 	gstaudioclock.c \
 	gstaudiocdsrc.c \
@@ -667,6 +670,7 @@
 	audio-converter.h \
 	audio-info.h \
 	audio-quantize.h \
+	audio-resampler.h \
 	gstaudioringbuffer.h \
 	gstaudioclock.h \
 	gstaudiofilter.h \
@@ -684,7 +688,10 @@
 nodist_libgstaudio_@GST_API_VERSION@include_HEADERS = \
 	audio-enumtypes.h
 
-noinst_HEADERS = gstaudioutilsprivate.h
+noinst_HEADERS = \
+	gstaudioutilsprivate.h \
+	audio-resampler-x86.h
+
 libgstaudio_@GST_API_VERSION@_la_CFLAGS = $(GST_PLUGINS_BASE_CFLAGS) $(GST_BASE_CFLAGS) $(GST_CFLAGS) \
 		$(ORC_CFLAGS)
 
@@ -797,6 +804,7 @@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgstaudio_@GST_API_VERSION@_la-audio-format.Plo@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgstaudio_@GST_API_VERSION@_la-audio-info.Plo@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgstaudio_@GST_API_VERSION@_la-audio-quantize.Plo@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgstaudio_@GST_API_VERSION@_la-audio-resampler.Plo@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgstaudio_@GST_API_VERSION@_la-audio.Plo@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgstaudio_@GST_API_VERSION@_la-gstaudiobasesink.Plo@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgstaudio_@GST_API_VERSION@_la-gstaudiobasesrc.Plo@am__quote@
@@ -887,6 +895,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 $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstaudio_@GST_API_VERSION@_la_CFLAGS) $(CFLAGS) -c -o libgstaudio_@GST_API_VERSION@_la-audio-quantize.lo `test -f 'audio-quantize.c' || echo '$(srcdir)/'`audio-quantize.c
 
+libgstaudio_@GST_API_VERSION@_la-audio-resampler.lo: audio-resampler.c
+@am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstaudio_@GST_API_VERSION@_la_CFLAGS) $(CFLAGS) -MT libgstaudio_@GST_API_VERSION@_la-audio-resampler.lo -MD -MP -MF $(DEPDIR)/libgstaudio_@GST_API_VERSION@_la-audio-resampler.Tpo -c -o libgstaudio_@GST_API_VERSION@_la-audio-resampler.lo `test -f 'audio-resampler.c' || echo '$(srcdir)/'`audio-resampler.c
+@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libgstaudio_@GST_API_VERSION@_la-audio-resampler.Tpo $(DEPDIR)/libgstaudio_@GST_API_VERSION@_la-audio-resampler.Plo
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='audio-resampler.c' object='libgstaudio_@GST_API_VERSION@_la-audio-resampler.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 $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstaudio_@GST_API_VERSION@_la_CFLAGS) $(CFLAGS) -c -o libgstaudio_@GST_API_VERSION@_la-audio-resampler.lo `test -f 'audio-resampler.c' || echo '$(srcdir)/'`audio-resampler.c
+
 libgstaudio_@GST_API_VERSION@_la-gstaudioringbuffer.lo: gstaudioringbuffer.c
 @am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstaudio_@GST_API_VERSION@_la_CFLAGS) $(CFLAGS) -MT libgstaudio_@GST_API_VERSION@_la-gstaudioringbuffer.lo -MD -MP -MF $(DEPDIR)/libgstaudio_@GST_API_VERSION@_la-gstaudioringbuffer.Tpo -c -o libgstaudio_@GST_API_VERSION@_la-gstaudioringbuffer.lo `test -f 'gstaudioringbuffer.c' || echo '$(srcdir)/'`gstaudioringbuffer.c
 @am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libgstaudio_@GST_API_VERSION@_la-gstaudioringbuffer.Tpo $(DEPDIR)/libgstaudio_@GST_API_VERSION@_la-gstaudioringbuffer.Plo
@@ -1395,6 +1410,7 @@
 @HAVE_INTROSPECTION_TRUE@GstAudio-@GST_API_VERSION@.gir: $(INTROSPECTION_SCANNER) libgstaudio-@GST_API_VERSION@.la
 @HAVE_INTROSPECTION_TRUE@	$(AM_V_GEN)PKG_CONFIG_PATH="$(GST_PKG_CONFIG_PATH)" GI_SCANNER_DISABLE_CACHE=yes\
 @HAVE_INTROSPECTION_TRUE@		GST_PLUGIN_SYSTEM_PATH_1_0="" GST_PLUGIN_PATH_1_0="" GST_REGISTRY_UPDATE=no \
+@HAVE_INTROSPECTION_TRUE@		CPPFLAGS="$(CPPFLAGS)" CFLAGS="$(CFLAGS)" LDFLAGS="$(LDFLAGS)" CC="$(CC)" PKG_CONFIG="$(PKG_CONFIG)" DLLTOOL="$(DLLTOOL)" \
 @HAVE_INTROSPECTION_TRUE@		$(INTROSPECTION_SCANNER) -v --namespace GstAudio \
 @HAVE_INTROSPECTION_TRUE@		--nsversion=@GST_API_VERSION@ \
 @HAVE_INTROSPECTION_TRUE@		--warn-all \
diff --git a/gst-libs/gst/audio/audio-channels.c b/gst-libs/gst/audio/audio-channels.c
index b358cc2..5ce2f5c 100644
--- a/gst-libs/gst/audio/audio-channels.c
+++ b/gst-libs/gst/audio/audio-channels.c
@@ -524,7 +524,7 @@
  * called as a last resort when the specific channel map is unknown.
  *
  * Returns: a fallback channel-mask for @channels or 0 when there is no
- * mask.
+ * mask and mono.
  *
  * Since: 1.8
  */
@@ -538,3 +538,108 @@
 
   return default_masks[channels - 1];
 }
+
+static const gchar *
+position_to_string (GstAudioChannelPosition pos)
+{
+  switch (pos) {
+    case GST_AUDIO_CHANNEL_POSITION_NONE:
+      return "NONE";
+    case GST_AUDIO_CHANNEL_POSITION_MONO:
+      return "MONO";
+    case GST_AUDIO_CHANNEL_POSITION_INVALID:
+      return "INVALID";
+    case GST_AUDIO_CHANNEL_POSITION_FRONT_LEFT:
+      return "FL";
+    case GST_AUDIO_CHANNEL_POSITION_FRONT_RIGHT:
+      return "FR";
+    case GST_AUDIO_CHANNEL_POSITION_FRONT_CENTER:
+      return "FC";
+    case GST_AUDIO_CHANNEL_POSITION_LFE1:
+      return "LFE1";
+    case GST_AUDIO_CHANNEL_POSITION_REAR_LEFT:
+      return "RL";
+    case GST_AUDIO_CHANNEL_POSITION_REAR_RIGHT:
+      return "RR";
+    case GST_AUDIO_CHANNEL_POSITION_FRONT_LEFT_OF_CENTER:
+      return "FLoC";
+    case GST_AUDIO_CHANNEL_POSITION_FRONT_RIGHT_OF_CENTER:
+      return "FRoC";
+    case GST_AUDIO_CHANNEL_POSITION_REAR_CENTER:
+      return "RC";
+    case GST_AUDIO_CHANNEL_POSITION_LFE2:
+      return "LF2";
+    case GST_AUDIO_CHANNEL_POSITION_SIDE_LEFT:
+      return "SL";
+    case GST_AUDIO_CHANNEL_POSITION_SIDE_RIGHT:
+      return "SR";
+    case GST_AUDIO_CHANNEL_POSITION_TOP_FRONT_LEFT:
+      return "TFL";
+    case GST_AUDIO_CHANNEL_POSITION_TOP_FRONT_RIGHT:
+      return "TFR";
+    case GST_AUDIO_CHANNEL_POSITION_TOP_FRONT_CENTER:
+      return "TFC";
+    case GST_AUDIO_CHANNEL_POSITION_TOP_CENTER:
+      return "TFC";
+    case GST_AUDIO_CHANNEL_POSITION_TOP_REAR_LEFT:
+      return "TRL";
+    case GST_AUDIO_CHANNEL_POSITION_TOP_REAR_RIGHT:
+      return "TRR";
+    case GST_AUDIO_CHANNEL_POSITION_TOP_SIDE_LEFT:
+      return "TSL";
+    case GST_AUDIO_CHANNEL_POSITION_TOP_SIDE_RIGHT:
+      return "TSR";
+    case GST_AUDIO_CHANNEL_POSITION_TOP_REAR_CENTER:
+      return "TRC";
+    case GST_AUDIO_CHANNEL_POSITION_BOTTOM_FRONT_CENTER:
+      return "BFC";
+    case GST_AUDIO_CHANNEL_POSITION_BOTTOM_FRONT_LEFT:
+      return "BFL";
+    case GST_AUDIO_CHANNEL_POSITION_BOTTOM_FRONT_RIGHT:
+      return "BFR";
+    case GST_AUDIO_CHANNEL_POSITION_WIDE_LEFT:
+      return "WL";
+    case GST_AUDIO_CHANNEL_POSITION_WIDE_RIGHT:
+      return "WR";
+    case GST_AUDIO_CHANNEL_POSITION_SURROUND_LEFT:
+      return "SL";
+    case GST_AUDIO_CHANNEL_POSITION_SURROUND_RIGHT:
+      return "SR";
+    default:
+      break;
+  }
+
+  return "UNKNOWN";
+}
+
+/**
+ * gst_audio_channel_positions_to_string:
+ * @position: (array length=channels): The %GstAudioChannelPositions
+ *   to convert.
+ * @channels: The number of channels.
+ *
+ * Converts @position to a human-readable string representation for
+ * debugging purposes.
+ *
+ * Returns: (transfer full): a newly allocated string representing
+ * @position
+ *
+ * Since 1.10
+ */
+gchar *
+gst_audio_channel_positions_to_string (const GstAudioChannelPosition * position,
+    gint channels)
+{
+  guint i;
+  GString *tmp;
+
+  g_return_val_if_fail (channels > 0, FALSE);
+  g_return_val_if_fail (position != NULL, FALSE);
+
+  tmp = g_string_new ("[");
+  for (i = 0; i < channels; i++)
+    g_string_append_printf (tmp, " %s", position_to_string (position[i]));
+  g_string_append (tmp, " ]");
+
+  return g_string_free (tmp, FALSE);
+}
diff --git a/gst-libs/gst/audio/audio-channels.h b/gst-libs/gst/audio/audio-channels.h
index 4aa00de..cd57898 100644
--- a/gst-libs/gst/audio/audio-channels.h
+++ b/gst-libs/gst/audio/audio-channels.h
@@ -162,6 +162,9 @@
                                                   gint *reorder_map);
 guint64        gst_audio_channel_get_fallback_mask (gint channels);
 
+gchar*         gst_audio_channel_positions_to_string (const GstAudioChannelPosition * position,
+                                                      gint channels);
+
 G_END_DECLS
 
 #endif /* __GST_AUDIO_CHANNELS_H__ */
diff --git a/gst-libs/gst/audio/audio-converter.c b/gst-libs/gst/audio/audio-converter.c
index 31f2a0e..1f0b450 100644
--- a/gst-libs/gst/audio/audio-converter.c
+++ b/gst-libs/gst/audio/audio-converter.c
@@ -127,6 +127,10 @@
   GstAudioChannelMixer *mix;
   AudioChain *mix_chain;
 
+  /* resample */
+  GstAudioResampler *resampler;
+  AudioChain *resample_chain;
+
   /* convert out */
   AudioConvertFunc convert_out;
   AudioChain *convert_out_chain;
@@ -264,10 +268,14 @@
   return res;
 }
 
+#define DEFAULT_OPT_RESAMPLER_METHOD GST_AUDIO_RESAMPLER_METHOD_BLACKMAN_NUTTALL
 #define DEFAULT_OPT_DITHER_METHOD GST_AUDIO_DITHER_NONE
 #define DEFAULT_OPT_NOISE_SHAPING_METHOD GST_AUDIO_NOISE_SHAPING_NONE
 #define DEFAULT_OPT_QUANTIZATION 1
 
+#define GET_OPT_RESAMPLER_METHOD(c) get_opt_enum(c, \
+    GST_AUDIO_CONVERTER_OPT_RESAMPLER_METHOD, GST_TYPE_AUDIO_RESAMPLER_METHOD, \
+    DEFAULT_OPT_RESAMPLER_METHOD)
 #define GET_OPT_DITHER_METHOD(c) get_opt_enum(c, \
     GST_AUDIO_CONVERTER_OPT_DITHER_METHOD, GST_TYPE_AUDIO_DITHER_METHOD, \
     DEFAULT_OPT_DITHER_METHOD)
@@ -296,7 +304,7 @@
  *
  * Set @in_rate, @out_rate and @config as extra configuration for @convert.
  *
- * in_rate and @out_rate specify the new sample rates of input and output
+ * @in_rate and @out_rate specify the new sample rates of input and output
  * formats. A value of 0 leaves the sample rate unchanged.
  *
  * @config can be %NULL, in which case, the current configuration is not
@@ -329,6 +337,9 @@
   convert->in.rate = in_rate;
   convert->out.rate = out_rate;
 
+  if (convert->resampler)
+    gst_audio_resampler_update (convert->resampler, in_rate, out_rate, config);
+
   if (config) {
     gst_structure_foreach (config, copy_config, convert);
     gst_structure_free (config);
@@ -385,7 +396,7 @@
     gsize stride = GST_ROUND_UP_N (num_samples * chain->stride, ALIGN);
     /* first part contains the pointers, second part the data, add some extra bytes
      * for alignement */
-    gsize needed = (stride + sizeof (gpointer)) * chain->blocks + ALIGN;
+    gsize needed = (stride + sizeof (gpointer)) * chain->blocks + ALIGN - 1;
 
     GST_DEBUG ("alloc samples %d %" G_GSIZE_FORMAT " %" G_GSIZE_FORMAT,
         chain->stride, num_samples, needed);
@@ -458,8 +469,8 @@
 static gboolean
 do_convert_in (AudioChain * chain, gpointer user_data)
 {
-  GstAudioConverter *convert = user_data;
   gsize num_samples;
+  GstAudioConverter *convert = user_data;
   gpointer *in, *out;
   gint i;
 
@@ -478,8 +489,8 @@
 static gboolean
 do_mix (AudioChain * chain, gpointer user_data)
 {
-  GstAudioConverter *convert = user_data;
   gsize num_samples;
+  GstAudioConverter *convert = user_data;
   gpointer *in, *out;
 
   in = audio_chain_get_samples (chain->prev, &num_samples);
@@ -494,6 +505,28 @@
 }
 
 static gboolean
+do_resample (AudioChain * chain, gpointer user_data)
+{
+  GstAudioConverter *convert = user_data;
+  gpointer *in, *out;
+  gsize in_frames, out_frames;
+
+  in = audio_chain_get_samples (chain->prev, &in_frames);
+  out_frames = convert->out_frames;
+  out = (chain->allow_ip ? in : audio_chain_alloc_samples (chain, out_frames));
+
+  GST_LOG ("resample %p %p,%" G_GSIZE_FORMAT " %" G_GSIZE_FORMAT, in,
+      out, in_frames, out_frames);
+
+  gst_audio_resampler_resample (convert->resampler, in, in_frames, out,
+      out_frames);
+
+  audio_chain_set_samples (chain, out, out_frames);
+
+  return TRUE;
+}
+
+static gboolean
 do_convert_out (AudioChain * chain, gpointer user_data)
 {
   GstAudioConverter *convert = user_data;
@@ -503,7 +536,7 @@
 
   in = audio_chain_get_samples (chain->prev, &num_samples);
   out = (chain->allow_ip ? in : audio_chain_alloc_samples (chain, num_samples));
-  GST_LOG ("convert out %p, %p, %" G_GSIZE_FORMAT, in, out, num_samples);
+  GST_LOG ("convert out %p, %p %" G_GSIZE_FORMAT, in, out, num_samples);
 
   for (i = 0; i < chain->blocks; i++)
     convert->convert_out (out[i], in[i], num_samples * chain->inc);
@@ -522,7 +555,7 @@
 
   in = audio_chain_get_samples (chain->prev, &num_samples);
   out = (chain->allow_ip ? in : audio_chain_alloc_samples (chain, num_samples));
-  GST_LOG ("quantize %p, %p, %" G_GSIZE_FORMAT, in, out, num_samples);
+  GST_LOG ("quantize %p, %p %" G_GSIZE_FORMAT, in, out, num_samples);
 
   gst_audio_quantize_samples (convert->quant, in, out, num_samples);
 
@@ -632,6 +665,42 @@
 }
 
 static AudioChain *
+chain_resample (GstAudioConverter * convert, AudioChain * prev)
+{
+  GstAudioInfo *in = &convert->in;
+  GstAudioInfo *out = &convert->out;
+  GstAudioResamplerMethod method;
+  GstAudioResamplerFlags flags;
+  GstAudioFormat format = convert->current_format;
+  gint channels = convert->current_channels;
+  gboolean variable_rate;
+
+  variable_rate = convert->flags & GST_AUDIO_CONVERTER_FLAG_VARIABLE_RATE;
+
+  if (in->rate != out->rate || variable_rate) {
+    method = GET_OPT_RESAMPLER_METHOD (convert);
+
+    flags = 0;
+    if (convert->current_layout == GST_AUDIO_LAYOUT_NON_INTERLEAVED) {
+      flags |= GST_AUDIO_RESAMPLER_FLAG_NON_INTERLEAVED_IN;
+      flags |= GST_AUDIO_RESAMPLER_FLAG_NON_INTERLEAVED_OUT;
+    }
+    if (variable_rate)
+      flags |= GST_AUDIO_RESAMPLER_FLAG_VARIABLE_RATE;
+
+    convert->resampler =
+        gst_audio_resampler_new (method, flags, format, channels, in->rate,
+        out->rate, convert->config);
+
+    prev = convert->resample_chain = audio_chain_new (prev, convert);
+    prev->allow_ip = FALSE;
+    prev->pass_alloc = FALSE;
+    audio_chain_set_make_func (prev, do_resample, convert, NULL);
+  }
+  return prev;
+}
+
+static AudioChain *
 chain_convert_out (GstAudioConverter * convert, AudioChain * prev)
 {
   gboolean in_int, out_int;
@@ -781,7 +850,6 @@
     for (i = 0; i < chain->blocks; i++)
       gst_audio_format_fill_silence (convert->in.finfo, out[i], samples);
   }
-
   return TRUE;
 }
 
@@ -816,9 +884,20 @@
   return TRUE;
 }
 
+static gboolean
+converter_resample (GstAudioConverter * convert,
+    GstAudioConverterFlags flags, gpointer in[], gsize in_frames,
+    gpointer out[], gsize out_frames)
+{
+  gst_audio_resampler_resample (convert->resampler, in, in_frames, out,
+      out_frames);
+
+  return TRUE;
+}
+
 /**
  * gst_audio_converter_new: (skip)
- * @flags: #GstAudioConverterFlags
+ * @flags: extra #GstAudioConverterFlags
  * @in_info: a source #GstAudioInfo
  * @out_info: a destination #GstAudioInfo
  * @config: (transfer full): a #GstStructure with configuration options
@@ -840,7 +919,6 @@
 
   g_return_val_if_fail (in_info != NULL, FALSE);
   g_return_val_if_fail (out_info != NULL, FALSE);
-  g_return_val_if_fail (in_info->rate == out_info->rate, FALSE);
   g_return_val_if_fail (in_info->layout == GST_AUDIO_LAYOUT_INTERLEAVED, FALSE);
   g_return_val_if_fail (in_info->layout == out_info->layout, FALSE);
 
@@ -868,21 +946,30 @@
   prev = chain_convert_in (convert, prev);
   /* step 3, channel mix */
   prev = chain_mix (convert, prev);
-  /* step 4, optional convert for quantize */
+  /* step 4, resample */
+  prev = chain_resample (convert, prev);
+  /* step 5, optional convert for quantize */
   prev = chain_convert_out (convert, prev);
-  /* step 5, optional quantize */
+  /* step 6, optional quantize */
   prev = chain_quantize (convert, prev);
-  /* step 6, pack */
+  /* step 7, pack */
   convert->pack_chain = chain_pack (convert, prev);
 
+  convert->convert = converter_generic;
+
   /* optimize */
   if (out_info->finfo->format == in_info->finfo->format
       && convert->mix_passthrough) {
-    GST_INFO ("same formats and passthrough mixing -> passthrough");
-    convert->convert = converter_passthrough;
-  } else {
-    GST_INFO ("do full conversion");
-    convert->convert = converter_generic;
+    if (convert->resampler == NULL) {
+      GST_INFO
+          ("same formats, no resampler and passthrough mixing -> passthrough");
+      convert->convert = converter_passthrough;
+    } else {
+      if (is_intermediate_format (in_info->finfo->format)) {
+        GST_INFO ("same formats, and passthrough mixing -> only resampling");
+        convert->convert = converter_resample;
+      }
+    }
   }
 
   setup_allocators (convert);
@@ -914,15 +1001,18 @@
     audio_chain_free (convert->convert_in_chain);
   if (convert->mix_chain)
     audio_chain_free (convert->mix_chain);
+  if (convert->resample_chain)
+    audio_chain_free (convert->resample_chain);
   if (convert->convert_out_chain)
     audio_chain_free (convert->convert_out_chain);
   if (convert->quant_chain)
     audio_chain_free (convert->quant_chain);
-
   if (convert->quant)
     gst_audio_quantize_free (convert->quant);
   if (convert->mix)
     gst_audio_channel_mixer_free (convert->mix);
+  if (convert->resampler)
+    gst_audio_resampler_free (convert->resampler);
   gst_audio_info_init (&convert->in);
   gst_audio_info_init (&convert->out);
 
@@ -945,7 +1035,10 @@
 gst_audio_converter_get_out_frames (GstAudioConverter * convert,
     gsize in_frames)
 {
-  return in_frames;
+  if (convert->resampler)
+    return gst_audio_resampler_get_out_frames (convert->resampler, in_frames);
+  else
+    return in_frames;
 }
 
 /**
@@ -962,7 +1055,10 @@
 gst_audio_converter_get_in_frames (GstAudioConverter * convert,
     gsize out_frames)
 {
-  return out_frames;
+  if (convert->resampler)
+    return gst_audio_resampler_get_in_frames (convert->resampler, out_frames);
+  else
+    return out_frames;
 }
 
 /**
@@ -978,7 +1074,10 @@
 gsize
 gst_audio_converter_get_max_latency (GstAudioConverter * convert)
 {
-  return 0;
+  if (convert->resampler)
+    return gst_audio_resampler_get_max_latency (convert->resampler);
+  else
+    return 0;
 }
 
 /**
@@ -991,6 +1090,8 @@
 void
 gst_audio_converter_reset (GstAudioConverter * convert)
 {
+  if (convert->resampler)
+    gst_audio_resampler_reset (convert->resampler);
   if (convert->quant)
     gst_audio_quantize_reset (convert->quant);
 }
@@ -1031,8 +1132,6 @@
   g_return_val_if_fail (convert != NULL, FALSE);
   g_return_val_if_fail (out != NULL, FALSE);
 
-  in_frames = MIN (in_frames, out_frames);
-
   if (in_frames == 0) {
     GST_LOG ("skipping empty buffer");
     return TRUE;
diff --git a/gst-libs/gst/audio/audio-converter.h b/gst-libs/gst/audio/audio-converter.h
index 6d037db..1f6ddc5 100644
--- a/gst-libs/gst/audio/audio-converter.h
+++ b/gst-libs/gst/audio/audio-converter.h
@@ -29,6 +29,15 @@
 typedef struct _GstAudioConverter GstAudioConverter;
 
 /**
+ * GST_AUDIO_CONVERTER_OPT_RESAMPLER_METHOD:
+ *
+ * #GST_TYPE_AUDIO_RESAMPLER_METHOD, The resampler method to use when
+ * changing sample rates.
+ * Default is #GST_AUDIO_RESAMPLER_METHOD_BLACKMAN_NUTTALL.
+ */
+#define GST_AUDIO_CONVERTER_OPT_RESAMPLER_METHOD   "GstAudioConverter.resampler-method"
+
+/**
  * GST_AUDIO_CONVERTER_OPT_DITHER_METHOD:
  *
  * #GST_TYPE_AUDIO_DITHER_METHOD, The dither method to use when
@@ -94,7 +103,6 @@
 
 gsize                gst_audio_converter_get_max_latency (GstAudioConverter *convert);
 
-
 gboolean             gst_audio_converter_samples         (GstAudioConverter * convert,
                                                           GstAudioConverterFlags flags,
                                                           gpointer in[], gsize in_frames,
diff --git a/gst-libs/gst/audio/audio-resampler-x86.h b/gst-libs/gst/audio/audio-resampler-x86.h
new file mode 100644
index 0000000..c1b73d0
--- /dev/null
+++ b/gst-libs/gst/audio/audio-resampler-x86.h
@@ -0,0 +1,684 @@
+/* GStreamer
+ * Copyright (C) <2016> 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.
+ */
+
+#if defined (HAVE_XMMINTRIN_H) && defined(__SSE__)
+#include <xmmintrin.h>
+
+static inline void
+inner_product_gfloat_full_1_sse (gfloat * o, const gfloat * a,
+    const gfloat * b, gint len, const gfloat * icoeff, gint bstride)
+{
+  gint i = 0;
+  __m128 sum = _mm_setzero_ps ();
+
+  for (; i < len; i += 8) {
+    sum =
+        _mm_add_ps (sum, _mm_mul_ps (_mm_loadu_ps (a + i + 0),
+            _mm_load_ps (b + i + 0)));
+    sum =
+        _mm_add_ps (sum, _mm_mul_ps (_mm_loadu_ps (a + i + 4),
+            _mm_load_ps (b + i + 4)));
+  }
+  sum = _mm_add_ps (sum, _mm_movehl_ps (sum, sum));
+  sum = _mm_add_ss (sum, _mm_shuffle_ps (sum, sum, 0x55));
+  _mm_store_ss (o, sum);
+}
+
+static inline void
+inner_product_gfloat_linear_1_sse (gfloat * o, const gfloat * a,
+    const gfloat * b, gint len, const gfloat * icoeff, gint bstride)
+{
+  gint i = 0;
+  __m128 sum[2], t;
+  const gfloat *c[2] = {(gfloat*)((gint8*)b + 0*bstride),
+                        (gfloat*)((gint8*)b + 1*bstride)};
+
+  sum[0] = sum[1] = _mm_setzero_ps ();
+
+  for (; i < len; i += 8) {
+    t = _mm_loadu_ps (a + i + 0);
+    sum[0] = _mm_add_ps (sum[0], _mm_mul_ps (t, _mm_load_ps (c[0] + i + 0)));
+    sum[1] = _mm_add_ps (sum[1], _mm_mul_ps (t, _mm_load_ps (c[1] + i + 0)));
+    t = _mm_loadu_ps (a + i + 4);
+    sum[0] = _mm_add_ps (sum[0], _mm_mul_ps (t, _mm_load_ps (c[0] + i + 4)));
+    sum[1] = _mm_add_ps (sum[1], _mm_mul_ps (t, _mm_load_ps (c[1] + i + 4)));
+  }
+  sum[0] = _mm_mul_ps (_mm_sub_ps (sum[0], sum[1]), _mm_load1_ps (icoeff));
+  sum[0] = _mm_add_ps (sum[0], sum[1]);
+  sum[0] = _mm_add_ps (sum[0], _mm_movehl_ps (sum[0], sum[0]));
+  sum[0] = _mm_add_ss (sum[0], _mm_shuffle_ps (sum[0], sum[0], 0x55));
+  _mm_store_ss (o, sum[0]);
+}
+
+static inline void
+inner_product_gfloat_cubic_1_sse (gfloat * o, const gfloat * a,
+    const gfloat * b, gint len, const gfloat * icoeff, gint bstride)
+{
+  gint i = 0;
+  __m128 sum[4];
+  __m128 t, f = _mm_loadu_ps(icoeff);
+  const gfloat *c[4] = {(gfloat*)((gint8*)b + 0*bstride),
+                        (gfloat*)((gint8*)b + 1*bstride),
+                        (gfloat*)((gint8*)b + 2*bstride),
+                        (gfloat*)((gint8*)b + 3*bstride)};
+
+  sum[0] = sum[1] = sum[2] = sum[3] = _mm_setzero_ps ();
+
+  for (; i < len; i += 4) {
+    t = _mm_loadu_ps (a + i);
+    sum[0] = _mm_add_ps (sum[0], _mm_mul_ps (t, _mm_load_ps (c[0] + i)));
+    sum[1] = _mm_add_ps (sum[1], _mm_mul_ps (t, _mm_load_ps (c[1] + i)));
+    sum[2] = _mm_add_ps (sum[2], _mm_mul_ps (t, _mm_load_ps (c[2] + i)));
+    sum[3] = _mm_add_ps (sum[3], _mm_mul_ps (t, _mm_load_ps (c[3] + i)));
+  }
+  sum[0] = _mm_mul_ps (sum[0], _mm_shuffle_ps (f, f, 0x00));
+  sum[1] = _mm_mul_ps (sum[1], _mm_shuffle_ps (f, f, 0x55));
+  sum[2] = _mm_mul_ps (sum[2], _mm_shuffle_ps (f, f, 0xaa));
+  sum[3] = _mm_mul_ps (sum[3], _mm_shuffle_ps (f, f, 0xff));
+  sum[0] = _mm_add_ps (sum[0], sum[1]);
+  sum[2] = _mm_add_ps (sum[2], sum[3]);
+  sum[0] = _mm_add_ps (sum[0], sum[2]);
+  sum[0] = _mm_add_ps (sum[0], _mm_movehl_ps (sum[0], sum[0]));
+  sum[0] = _mm_add_ss (sum[0], _mm_shuffle_ps (sum[0], sum[0], 0x55));
+  _mm_store_ss (o, sum[0]);
+}
+
+MAKE_RESAMPLE_FUNC (gfloat, full, 1, sse);
+MAKE_RESAMPLE_FUNC (gfloat, linear, 1, sse);
+MAKE_RESAMPLE_FUNC (gfloat, cubic, 1, sse);
+
+static void
+interpolate_gfloat_linear_sse (gpointer op, const gpointer ap,
+    gint len, const gpointer icp, gint astride)
+{
+  gint i;
+  gfloat *o = op, *a = ap, *ic = icp;
+  __m128 f[2], t1, t2;
+  const gfloat *c[2] = {(gfloat*)((gint8*)a + 0*astride),
+                        (gfloat*)((gint8*)a + 1*astride)};
+
+  f[0] = _mm_load1_ps (ic+0);
+  f[1] = _mm_load1_ps (ic+1);
+
+  for (i = 0; i < len; i += 8) {
+    t1 = _mm_mul_ps (_mm_load_ps (c[0] + i + 0), f[0]);
+    t2 = _mm_mul_ps (_mm_load_ps (c[1] + i + 0), f[1]);
+    _mm_store_ps (o + i + 0, _mm_add_ps (t1, t2));
+
+    t1 = _mm_mul_ps (_mm_load_ps (c[0] + i + 4), f[0]);
+    t2 = _mm_mul_ps (_mm_load_ps (c[1] + i + 4), f[1]);
+    _mm_store_ps (o + i + 4, _mm_add_ps (t1, t2));
+  }
+}
+
+static void
+interpolate_gfloat_cubic_sse (gpointer op, const gpointer ap,
+    gint len, const gpointer icp, gint astride)
+{
+  gint i;
+  gfloat *o = op, *a = ap, *ic = icp;
+  __m128 f[4], t[4];
+  const gfloat *c[4] = {(gfloat*)((gint8*)a + 0*astride),
+                        (gfloat*)((gint8*)a + 1*astride),
+                        (gfloat*)((gint8*)a + 2*astride),
+                        (gfloat*)((gint8*)a + 3*astride)};
+
+  f[0] = _mm_load1_ps (ic+0);
+  f[1] = _mm_load1_ps (ic+1);
+  f[2] = _mm_load1_ps (ic+2);
+  f[3] = _mm_load1_ps (ic+3);
+
+  for (i = 0; i < len; i += 4) {
+    t[0] = _mm_mul_ps (_mm_load_ps (c[0] + i + 0), f[0]);
+    t[1] = _mm_mul_ps (_mm_load_ps (c[1] + i + 0), f[1]);
+    t[2] = _mm_mul_ps (_mm_load_ps (c[2] + i + 0), f[2]);
+    t[3] = _mm_mul_ps (_mm_load_ps (c[3] + i + 0), f[3]);
+    t[0] = _mm_add_ps (t[0], t[1]);
+    t[2] = _mm_add_ps (t[2], t[3]);
+    _mm_store_ps (o + i + 0, _mm_add_ps (t[0], t[2]));
+  }
+}
+
+#endif
+
+#if defined (HAVE_EMMINTRIN_H) && defined(__SSE2__)
+#include <emmintrin.h>
+
+static inline void
+inner_product_gint16_full_1_sse2 (gint16 * o, const gint16 * a,
+    const gint16 * b, gint len, const gint16 * icoeff, gint bstride)
+{
+  gint i;
+  __m128i sum, t;
+
+  sum = _mm_setzero_si128 ();
+
+  for (i = 0; i < len; i += 16) {
+    t = _mm_loadu_si128 ((__m128i *) (a + i));
+    sum = _mm_add_epi32 (sum, _mm_madd_epi16 (t, _mm_load_si128 ((__m128i *) (b + i + 0))));
+
+    t = _mm_loadu_si128 ((__m128i *) (a + i + 8));
+    sum = _mm_add_epi32 (sum, _mm_madd_epi16 (t, _mm_load_si128 ((__m128i *) (b + i + 8))));
+  }
+  sum = _mm_add_epi32 (sum, _mm_shuffle_epi32 (sum, _MM_SHUFFLE (2, 3, 2, 3)));
+  sum = _mm_add_epi32 (sum, _mm_shuffle_epi32 (sum, _MM_SHUFFLE (1, 1, 1, 1)));
+
+  sum = _mm_add_epi32 (sum, _mm_set1_epi32 (1 << (PRECISION_S16 - 1)));
+  sum = _mm_srai_epi32 (sum, PRECISION_S16);
+  sum = _mm_packs_epi32 (sum, sum);
+  *o = _mm_extract_epi16 (sum, 0);
+}
+
+static inline void
+inner_product_gint16_linear_1_sse2 (gint16 * o, const gint16 * a,
+    const gint16 * b, gint len, const gint16 * icoeff, gint bstride)
+{
+  gint i = 0;
+  __m128i sum[2], t;
+  __m128i f = _mm_set_epi64x (0, *((gint64*)icoeff));
+  const gint16 *c[2] = {(gint16*)((gint8*)b + 0*bstride),
+                        (gint16*)((gint8*)b + 1*bstride)};
+
+  sum[0] = sum[1] = _mm_setzero_si128 ();
+  f = _mm_unpacklo_epi16 (f, sum[0]);
+
+  for (; i < len; i += 16) {
+    t = _mm_loadu_si128 ((__m128i *) (a + i + 0));
+    sum[0] = _mm_add_epi32 (sum[0], _mm_madd_epi16 (t, _mm_load_si128 ((__m128i *) (c[0] + i + 0))));
+    sum[1] = _mm_add_epi32 (sum[1], _mm_madd_epi16 (t, _mm_load_si128 ((__m128i *) (c[1] + i + 0))));
+
+    t = _mm_loadu_si128 ((__m128i *) (a + i + 8));
+    sum[0] = _mm_add_epi32 (sum[0], _mm_madd_epi16 (t, _mm_load_si128 ((__m128i *) (c[0] + i + 8))));
+    sum[1] = _mm_add_epi32 (sum[1], _mm_madd_epi16 (t, _mm_load_si128 ((__m128i *) (c[1] + i + 8))));
+  }
+  sum[0] = _mm_srai_epi32 (sum[0], PRECISION_S16);
+  sum[1] = _mm_srai_epi32 (sum[1], PRECISION_S16);
+
+  sum[0] = _mm_madd_epi16 (sum[0], _mm_shuffle_epi32 (f,  _MM_SHUFFLE (0, 0, 0, 0)));
+  sum[1] = _mm_madd_epi16 (sum[1], _mm_shuffle_epi32 (f,  _MM_SHUFFLE (1, 1, 1, 1)));
+  sum[0] = _mm_add_epi32 (sum[0], sum[1]);
+
+  sum[0] = _mm_add_epi32 (sum[0], _mm_shuffle_epi32 (sum[0], _MM_SHUFFLE (2, 3, 2, 3)));
+  sum[0] = _mm_add_epi32 (sum[0], _mm_shuffle_epi32 (sum[0], _MM_SHUFFLE (1, 1, 1, 1)));
+
+  sum[0] = _mm_add_epi32 (sum[0], _mm_set1_epi32 (1 << (PRECISION_S16 - 1)));
+  sum[0] = _mm_srai_epi32 (sum[0], PRECISION_S16);
+  sum[0] = _mm_packs_epi32 (sum[0], sum[0]);
+  *o = _mm_extract_epi16 (sum[0], 0);
+}
+
+static inline void
+inner_product_gint16_cubic_1_sse2 (gint16 * o, const gint16 * a,
+    const gint16 * b, gint len, const gint16 * icoeff, gint bstride)
+{
+  gint i = 0;
+  __m128i sum[4], t[4];
+  __m128i f = _mm_set_epi64x (0, *((long long*)icoeff));
+  const gint16 *c[4] = {(gint16*)((gint8*)b + 0*bstride),
+                        (gint16*)((gint8*)b + 1*bstride),
+                        (gint16*)((gint8*)b + 2*bstride),
+                        (gint16*)((gint8*)b + 3*bstride)};
+
+  sum[0] = sum[1] = sum[2] = sum[3] = _mm_setzero_si128 ();
+  f = _mm_unpacklo_epi16 (f, sum[0]);
+
+  for (; i < len; i += 8) {
+    t[0] = _mm_loadu_si128 ((__m128i *) (a + i));
+    sum[0] = _mm_add_epi32 (sum[0], _mm_madd_epi16 (t[0], _mm_load_si128 ((__m128i *) (c[0] + i))));
+    sum[1] = _mm_add_epi32 (sum[1], _mm_madd_epi16 (t[0], _mm_load_si128 ((__m128i *) (c[1] + i))));
+    sum[2] = _mm_add_epi32 (sum[2], _mm_madd_epi16 (t[0], _mm_load_si128 ((__m128i *) (c[2] + i))));
+    sum[3] = _mm_add_epi32 (sum[3], _mm_madd_epi16 (t[0], _mm_load_si128 ((__m128i *) (c[3] + i))));
+  }
+  t[0] = _mm_unpacklo_epi32 (sum[0], sum[1]);
+  t[1] = _mm_unpacklo_epi32 (sum[2], sum[3]);
+  t[2] = _mm_unpackhi_epi32 (sum[0], sum[1]);
+  t[3] = _mm_unpackhi_epi32 (sum[2], sum[3]);
+
+  sum[0] = _mm_add_epi32 (_mm_unpacklo_epi64(t[0], t[1]), _mm_unpackhi_epi64(t[0], t[1]));
+  sum[2] = _mm_add_epi32 (_mm_unpacklo_epi64(t[2], t[3]), _mm_unpackhi_epi64(t[2], t[3]));
+  sum[0] = _mm_add_epi32 (sum[0], sum[2]);
+
+  sum[0] = _mm_srai_epi32 (sum[0], PRECISION_S16);
+  sum[0] = _mm_madd_epi16 (sum[0], f);
+
+  sum[0] = _mm_add_epi32 (sum[0], _mm_shuffle_epi32 (sum[0], _MM_SHUFFLE (2, 3, 2, 3)));
+  sum[0] = _mm_add_epi32 (sum[0], _mm_shuffle_epi32 (sum[0], _MM_SHUFFLE (1, 1, 1, 1)));
+
+  sum[0] = _mm_add_epi32 (sum[0], _mm_set1_epi32 (1 << (PRECISION_S16 - 1)));
+  sum[0] = _mm_srai_epi32 (sum[0], PRECISION_S16);
+  sum[0] = _mm_packs_epi32 (sum[0], sum[0]);
+  *o = _mm_extract_epi16 (sum[0], 0);
+}
+
+static inline void
+inner_product_gdouble_full_1_sse2 (gdouble * o, const gdouble * a,
+    const gdouble * b, gint len, const gdouble * icoeff, gint bstride)
+{
+  gint i = 0;
+  __m128d sum = _mm_setzero_pd ();
+
+  for (; i < len; i += 8) {
+    sum =
+        _mm_add_pd (sum, _mm_mul_pd (_mm_loadu_pd (a + i + 0),
+            _mm_load_pd (b + i + 0)));
+    sum =
+        _mm_add_pd (sum, _mm_mul_pd (_mm_loadu_pd (a + i + 2),
+            _mm_load_pd (b + i + 2)));
+    sum =
+        _mm_add_pd (sum, _mm_mul_pd (_mm_loadu_pd (a + i + 4),
+            _mm_load_pd (b + i + 4)));
+    sum =
+        _mm_add_pd (sum, _mm_mul_pd (_mm_loadu_pd (a + i + 6),
+            _mm_load_pd (b + i + 6)));
+  }
+  sum = _mm_add_sd (sum, _mm_unpackhi_pd (sum, sum));
+  _mm_store_sd (o, sum);
+}
+
+static inline void
+inner_product_gdouble_linear_1_sse2 (gdouble * o, const gdouble * a,
+    const gdouble * b, gint len, const gdouble * icoeff, gint bstride)
+{
+  gint i = 0;
+  __m128d sum[2], t;
+  const gdouble *c[2] = {(gdouble*)((gint8*)b + 0*bstride),
+                         (gdouble*)((gint8*)b + 1*bstride)};
+
+  sum[0] = sum[1] = _mm_setzero_pd ();
+
+  for (; i < len; i += 4) {
+    t = _mm_loadu_pd (a + i + 0);
+    sum[0] = _mm_add_pd (sum[0], _mm_mul_pd (t, _mm_load_pd (c[0] + i + 0)));
+    sum[1] = _mm_add_pd (sum[1], _mm_mul_pd (t, _mm_load_pd (c[1] + i + 0)));
+    t = _mm_loadu_pd (a + i + 2);
+    sum[0] = _mm_add_pd (sum[0], _mm_mul_pd (t, _mm_load_pd (c[0] + i + 2)));
+    sum[1] = _mm_add_pd (sum[1], _mm_mul_pd (t, _mm_load_pd (c[1] + i + 2)));
+  }
+  sum[0] = _mm_mul_pd (_mm_sub_pd (sum[0], sum[1]), _mm_load1_pd (icoeff));
+  sum[0] = _mm_add_pd (sum[0], sum[1]);
+  sum[0] = _mm_add_sd (sum[0], _mm_unpackhi_pd (sum[0], sum[0]));
+  _mm_store_sd (o, sum[0]);
+}
+
+static inline void
+inner_product_gdouble_cubic_1_sse2 (gdouble * o, const gdouble * a,
+    const gdouble * b, gint len, const gdouble * icoeff, gint bstride)
+{
+  gint i;
+  __m128d f[2], sum[4], t;
+  const gdouble *c[4] = {(gdouble*)((gint8*)b + 0*bstride),
+                         (gdouble*)((gint8*)b + 1*bstride),
+                         (gdouble*)((gint8*)b + 2*bstride),
+                         (gdouble*)((gint8*)b + 3*bstride)};
+
+  f[0] = _mm_loadu_pd (icoeff + 0);
+  f[1] = _mm_loadu_pd (icoeff + 2);
+  sum[0] = sum[1] = sum[2] = sum[3] = _mm_setzero_pd ();
+
+  for (i = 0; i < len; i += 2) {
+    t = _mm_loadu_pd (a + i + 0);
+    sum[0] = _mm_add_pd (sum[0], _mm_mul_pd (t, _mm_load_pd (c[0] + i)));
+    sum[1] = _mm_add_pd (sum[1], _mm_mul_pd (t, _mm_load_pd (c[1] + i)));
+    sum[2] = _mm_add_pd (sum[2], _mm_mul_pd (t, _mm_load_pd (c[2] + i)));
+    sum[3] = _mm_add_pd (sum[3], _mm_mul_pd (t, _mm_load_pd (c[3] + i)));
+  }
+  sum[0] = _mm_mul_pd (sum[0], _mm_shuffle_pd (f[0], f[0], _MM_SHUFFLE2 (0, 0)));
+  sum[1] = _mm_mul_pd (sum[1], _mm_shuffle_pd (f[0], f[0], _MM_SHUFFLE2 (1, 1)));
+  sum[2] = _mm_mul_pd (sum[2], _mm_shuffle_pd (f[1], f[1], _MM_SHUFFLE2 (0, 0)));
+  sum[3] = _mm_mul_pd (sum[3], _mm_shuffle_pd (f[1], f[1], _MM_SHUFFLE2 (1, 1)));
+  sum[0] = _mm_add_pd (sum[0], sum[1]);
+  sum[2] = _mm_add_pd (sum[2], sum[3]);
+  sum[0] = _mm_add_pd (sum[0], sum[2]);
+  sum[0] = _mm_add_sd (sum[0], _mm_unpackhi_pd (sum[0], sum[0]));
+  _mm_store_sd (o, sum[0]);
+}
+
+MAKE_RESAMPLE_FUNC (gint16, full, 1, sse2);
+MAKE_RESAMPLE_FUNC (gint16, linear, 1, sse2);
+MAKE_RESAMPLE_FUNC (gint16, cubic, 1, sse2);
+
+MAKE_RESAMPLE_FUNC (gdouble, full, 1, sse2);
+MAKE_RESAMPLE_FUNC (gdouble, linear, 1, sse2);
+MAKE_RESAMPLE_FUNC (gdouble, cubic, 1, sse2);
+
+static inline void
+interpolate_gint16_linear_sse2 (gpointer op, const gpointer ap,
+    gint len, const gpointer icp, gint astride)
+{
+  gint i = 0;
+  gint16 *o = op, *a = ap, *ic = icp;
+  __m128i ta, tb, t1, t2;
+  __m128i f = _mm_set_epi64x (0, *((gint64*)ic));
+  const gint16 *c[2] = {(gint16*)((gint8*)a + 0*astride),
+                        (gint16*)((gint8*)a + 1*astride)};
+
+  f = _mm_unpacklo_epi32 (f, f);
+  f = _mm_unpacklo_epi64 (f, f);
+
+  for (; i < len; i += 8) {
+    ta = _mm_load_si128 ((__m128i *) (c[0] + i));
+    tb = _mm_load_si128 ((__m128i *) (c[1] + i));
+
+    t1 = _mm_madd_epi16 (_mm_unpacklo_epi16 (ta, tb), f);
+    t2 = _mm_madd_epi16 (_mm_unpackhi_epi16 (ta, tb), f);
+
+    t1 = _mm_add_epi32 (t1, _mm_set1_epi32 (1 << (PRECISION_S16 - 1)));
+    t2 = _mm_add_epi32 (t2, _mm_set1_epi32 (1 << (PRECISION_S16 - 1)));
+
+    t1 = _mm_srai_epi32 (t1, PRECISION_S16);
+    t2 = _mm_srai_epi32 (t2, PRECISION_S16);
+
+    t1 = _mm_packs_epi32 (t1, t2);
+    _mm_store_si128 ((__m128i *) (o + i), t1);
+  }
+}
+
+static inline void
+interpolate_gint16_cubic_sse2 (gpointer op, const gpointer ap,
+    gint len, const gpointer icp, gint astride)
+{
+  gint i = 0;
+  gint16 *o = op, *a = ap, *ic = icp;
+  __m128i ta, tb, tl1, tl2, th1, th2;
+  __m128i f[2];
+  const gint16 *c[4] = {(gint16*)((gint8*)a + 0*astride),
+                        (gint16*)((gint8*)a + 1*astride),
+                        (gint16*)((gint8*)a + 2*astride),
+                        (gint16*)((gint8*)a + 3*astride)};
+
+  f[0] = _mm_set_epi16 (ic[1], ic[0], ic[1], ic[0], ic[1], ic[0], ic[1], ic[0]);
+  f[1] = _mm_set_epi16 (ic[3], ic[2], ic[3], ic[2], ic[3], ic[2], ic[3], ic[2]);
+
+  for (; i < len; i += 8) {
+    ta = _mm_load_si128 ((__m128i *) (c[0] + i));
+    tb = _mm_load_si128 ((__m128i *) (c[1] + i));
+
+    tl1 = _mm_madd_epi16 (_mm_unpacklo_epi16 (ta, tb), f[0]);
+    th1 = _mm_madd_epi16 (_mm_unpackhi_epi16 (ta, tb), f[0]);
+
+    ta = _mm_load_si128 ((__m128i *) (c[2] + i));
+    tb = _mm_load_si128 ((__m128i *) (c[3] + i));
+
+    tl2 = _mm_madd_epi16 (_mm_unpacklo_epi16 (ta, tb), f[1]);
+    th2 = _mm_madd_epi16 (_mm_unpackhi_epi16 (ta, tb), f[1]);
+
+    tl1 = _mm_add_epi32 (tl1, tl2);
+    th1 = _mm_add_epi32 (th1, th2);
+
+    tl1 = _mm_add_epi32 (tl1, _mm_set1_epi32 (1 << (PRECISION_S16 - 1)));
+    th1 = _mm_add_epi32 (th1, _mm_set1_epi32 (1 << (PRECISION_S16 - 1)));
+
+    tl1 = _mm_srai_epi32 (tl1, PRECISION_S16);
+    th1 = _mm_srai_epi32 (th1, PRECISION_S16);
+
+    tl1 = _mm_packs_epi32 (tl1, th1);
+    _mm_store_si128 ((__m128i *) (o + i), tl1);
+  }
+}
+
+static void
+interpolate_gdouble_linear_sse2 (gpointer op, const gpointer ap,
+    gint len, const gpointer icp, gint astride)
+{
+  gint i;
+  gdouble *o = op, *a = ap, *ic = icp;
+  __m128d f[2], t1, t2;
+  const gdouble *c[2] = {(gdouble*)((gint8*)a + 0*astride),
+                         (gdouble*)((gint8*)a + 1*astride)};
+
+  f[0] = _mm_load1_pd (ic+0);
+  f[1] = _mm_load1_pd (ic+1);
+
+  for (i = 0; i < len; i += 4) {
+    t1 = _mm_mul_pd (_mm_load_pd (c[0] + i + 0), f[0]);
+    t2 = _mm_mul_pd (_mm_load_pd (c[1] + i + 0), f[1]);
+    _mm_store_pd (o + i + 0, _mm_add_pd (t1, t2));
+
+    t1 = _mm_mul_pd (_mm_load_pd (c[0] + i + 2), f[0]);
+    t2 = _mm_mul_pd (_mm_load_pd (c[1] + i + 2), f[1]);
+    _mm_store_pd (o + i + 2, _mm_add_pd (t1, t2));
+  }
+}
+
+static void
+interpolate_gdouble_cubic_sse2 (gpointer op, const gpointer ap,
+    gint len, const gpointer icp, gint astride)
+{
+  gint i;
+  gdouble *o = op, *a = ap, *ic = icp;
+  __m128d f[4], t[4];
+  const gdouble *c[4] = {(gdouble*)((gint8*)a + 0*astride),
+                         (gdouble*)((gint8*)a + 1*astride),
+                         (gdouble*)((gint8*)a + 2*astride),
+                         (gdouble*)((gint8*)a + 3*astride)};
+
+  f[0] = _mm_load1_pd (ic+0);
+  f[1] = _mm_load1_pd (ic+1);
+  f[2] = _mm_load1_pd (ic+2);
+  f[3] = _mm_load1_pd (ic+3);
+
+  for (i = 0; i < len; i += 2) {
+    t[0] = _mm_mul_pd (_mm_load_pd (c[0] + i + 0), f[0]);
+    t[1] = _mm_mul_pd (_mm_load_pd (c[1] + i + 0), f[1]);
+    t[2] = _mm_mul_pd (_mm_load_pd (c[2] + i + 0), f[2]);
+    t[3] = _mm_mul_pd (_mm_load_pd (c[3] + i + 0), f[3]);
+    t[0] = _mm_add_pd (t[0], t[1]);
+    t[2] = _mm_add_pd (t[2], t[3]);
+    _mm_store_pd (o + i + 0, _mm_add_pd (t[0], t[2]));
+  }
+}
+
+#endif
+
+#if 0
+#define __SSE4_1__
+#pragma GCC target("sse4.1")
+#endif
+
+#if defined (HAVE_SMMINTRIN_H) && defined(__SSE4_1__)
+#include <smmintrin.h>
+
+static inline void
+inner_product_gint32_full_1_sse41 (gint32 * o, const gint32 * a,
+    const gint32 * b, gint len, const gint32 * icoeff, gint bstride)
+{
+  gint i = 0;
+  __m128i sum, ta, tb;
+  gint64 res;
+
+  sum = _mm_setzero_si128 ();
+
+  for (; i < len; i += 8) {
+    ta = _mm_loadu_si128 ((__m128i *) (a + i));
+    tb = _mm_load_si128 ((__m128i *) (b + i));
+
+    sum =
+        _mm_add_epi64 (sum, _mm_mul_epi32 (_mm_unpacklo_epi32 (ta, ta),
+            _mm_unpacklo_epi32 (tb, tb)));
+    sum =
+        _mm_add_epi64 (sum, _mm_mul_epi32 (_mm_unpackhi_epi32 (ta, ta),
+            _mm_unpackhi_epi32 (tb, tb)));
+
+    ta = _mm_loadu_si128 ((__m128i *) (a + i + 4));
+    tb = _mm_load_si128 ((__m128i *) (b + i + 4));
+
+    sum =
+        _mm_add_epi64 (sum, _mm_mul_epi32 (_mm_unpacklo_epi32 (ta, ta),
+            _mm_unpacklo_epi32 (tb, tb)));
+    sum =
+        _mm_add_epi64 (sum, _mm_mul_epi32 (_mm_unpackhi_epi32 (ta, ta),
+            _mm_unpackhi_epi32 (tb, tb)));
+  }
+  sum = _mm_add_epi64 (sum, _mm_unpackhi_epi64 (sum, sum));
+  res = _mm_cvtsi128_si64 (sum);
+
+  res = (res + (1 << (PRECISION_S32 - 1))) >> PRECISION_S32;
+  *o = CLAMP (res, -(1L << 31), (1L << 31) - 1);
+}
+
+static inline void
+inner_product_gint32_linear_1_sse41 (gint32 * o, const gint32 * a,
+    const gint32 * b, gint len, const gint32 * icoeff, gint bstride)
+{
+  gint i = 0;
+  gint64 res;
+  __m128i sum[2], ta, tb;
+  __m128i f = _mm_loadu_si128 ((__m128i *)icoeff);
+  const gint32 *c[2] = {(gint32*)((gint8*)b + 0*bstride),
+                        (gint32*)((gint8*)b + 1*bstride)};
+
+  sum[0] = sum[1] = _mm_setzero_si128 ();
+
+  for (; i < len; i += 4) {
+    ta = _mm_loadu_si128 ((__m128i *)(a + i));
+
+    tb = _mm_load_si128 ((__m128i *)(c[0] + i));
+    sum[0] = _mm_add_epi64 (sum[0], _mm_mul_epi32 (_mm_unpacklo_epi32 (ta, ta),
+              _mm_unpacklo_epi32 (tb, tb)));
+    sum[0] = _mm_add_epi64 (sum[0], _mm_mul_epi32 (_mm_unpackhi_epi32 (ta, ta),
+              _mm_unpackhi_epi32 (tb, tb)));
+
+    tb = _mm_load_si128 ((__m128i *)(c[1] + i));
+    sum[1] = _mm_add_epi64 (sum[1], _mm_mul_epi32 (_mm_unpacklo_epi32 (ta, ta),
+              _mm_unpacklo_epi32 (tb, tb)));
+    sum[1] = _mm_add_epi64 (sum[1], _mm_mul_epi32 (_mm_unpackhi_epi32 (ta, ta),
+              _mm_unpackhi_epi32 (tb, tb)));
+  }
+  sum[0] = _mm_srli_epi64 (sum[0], PRECISION_S32);
+  sum[1] = _mm_srli_epi64 (sum[1], PRECISION_S32);
+  sum[0] = _mm_mul_epi32 (sum[0], _mm_shuffle_epi32 (f, _MM_SHUFFLE (0, 0, 0, 0)));
+  sum[1] = _mm_mul_epi32 (sum[1], _mm_shuffle_epi32 (f, _MM_SHUFFLE (1, 1, 1, 1)));
+  sum[0] = _mm_add_epi64 (sum[0], sum[1]);
+  sum[0] = _mm_add_epi64 (sum[0], _mm_unpackhi_epi64 (sum[0], sum[0]));
+  res = _mm_cvtsi128_si64 (sum[0]);
+
+  res = (res + (1 << (PRECISION_S32 - 1))) >> PRECISION_S32;
+  *o = CLAMP (res, -(1L << 31), (1L << 31) - 1);
+}
+
+static inline void
+inner_product_gint32_cubic_1_sse41 (gint32 * o, const gint32 * a,
+    const gint32 * b, gint len, const gint32 * icoeff, gint bstride)
+{
+  gint i = 0;
+  gint64 res;
+  __m128i sum[4], ta, tb;
+  __m128i f = _mm_loadu_si128 ((__m128i *)icoeff);
+  const gint32 *c[4] = {(gint32*)((gint8*)b + 0*bstride),
+                        (gint32*)((gint8*)b + 1*bstride),
+                        (gint32*)((gint8*)b + 2*bstride),
+                        (gint32*)((gint8*)b + 3*bstride)};
+
+  sum[0] = sum[1] = sum[2] = sum[3] = _mm_setzero_si128 ();
+
+  for (; i < len; i += 4) {
+    ta = _mm_loadu_si128 ((__m128i *)(a + i));
+
+    tb = _mm_load_si128 ((__m128i *)(c[0] + i));
+    sum[0] = _mm_add_epi64 (sum[0], _mm_mul_epi32 (_mm_unpacklo_epi32 (ta, ta),
+              _mm_unpacklo_epi32 (tb, tb)));
+    sum[0] = _mm_add_epi64 (sum[0], _mm_mul_epi32 (_mm_unpackhi_epi32 (ta, ta),
+              _mm_unpackhi_epi32 (tb, tb)));
+
+    tb = _mm_load_si128 ((__m128i *)(c[1] + i));
+    sum[1] = _mm_add_epi64 (sum[1], _mm_mul_epi32 (_mm_unpacklo_epi32 (ta, ta),
+              _mm_unpacklo_epi32 (tb, tb)));
+    sum[1] = _mm_add_epi64 (sum[1], _mm_mul_epi32 (_mm_unpackhi_epi32 (ta, ta),
+              _mm_unpackhi_epi32 (tb, tb)));
+
+    tb = _mm_load_si128 ((__m128i *)(c[2] + i));
+    sum[2] = _mm_add_epi64 (sum[2], _mm_mul_epi32 (_mm_unpacklo_epi32 (ta, ta),
+              _mm_unpacklo_epi32 (tb, tb)));
+    sum[2] = _mm_add_epi64 (sum[2], _mm_mul_epi32 (_mm_unpackhi_epi32 (ta, ta),
+              _mm_unpackhi_epi32 (tb, tb)));
+
+    tb = _mm_load_si128 ((__m128i *)(c[3] + i));
+    sum[3] = _mm_add_epi64 (sum[3], _mm_mul_epi32 (_mm_unpacklo_epi32 (ta, ta),
+              _mm_unpacklo_epi32 (tb, tb)));
+    sum[3] = _mm_add_epi64 (sum[3], _mm_mul_epi32 (_mm_unpackhi_epi32 (ta, ta),
+              _mm_unpackhi_epi32 (tb, tb)));
+  }
+  sum[0] = _mm_srli_epi64 (sum[0], PRECISION_S32);
+  sum[1] = _mm_srli_epi64 (sum[1], PRECISION_S32);
+  sum[2] = _mm_srli_epi64 (sum[2], PRECISION_S32);
+  sum[3] = _mm_srli_epi64 (sum[3], PRECISION_S32);
+  sum[0] = _mm_mul_epi32 (sum[0], _mm_shuffle_epi32 (f, _MM_SHUFFLE (0, 0, 0, 0)));
+  sum[1] = _mm_mul_epi32 (sum[1], _mm_shuffle_epi32 (f, _MM_SHUFFLE (1, 1, 1, 1)));
+  sum[2] = _mm_mul_epi32 (sum[2], _mm_shuffle_epi32 (f, _MM_SHUFFLE (2, 2, 2, 2)));
+  sum[3] = _mm_mul_epi32 (sum[3], _mm_shuffle_epi32 (f, _MM_SHUFFLE (3, 3, 3, 3)));
+  sum[0] = _mm_add_epi64 (sum[0], sum[1]);
+  sum[2] = _mm_add_epi64 (sum[2], sum[3]);
+  sum[0] = _mm_add_epi64 (sum[0], sum[2]);
+  sum[0] = _mm_add_epi64 (sum[0], _mm_unpackhi_epi64 (sum[0], sum[0]));
+  res = _mm_cvtsi128_si64 (sum[0]);
+
+  res = (res + (1 << (PRECISION_S32 - 1))) >> PRECISION_S32;
+  *o = CLAMP (res, -(1L << 31), (1L << 31) - 1);
+}
+
+MAKE_RESAMPLE_FUNC (gint32, full, 1, sse41);
+MAKE_RESAMPLE_FUNC (gint32, linear, 1, sse41);
+MAKE_RESAMPLE_FUNC (gint32, cubic, 1, sse41);
+#endif
+
+static void
+audio_resampler_check_x86 (const gchar *option)
+{
+  if (!strcmp (option, "sse")) {
+#if defined (HAVE_XMMINTRIN_H) && defined(__SSE__)
+    GST_DEBUG ("enable SSE optimisations");
+    resample_gfloat_full_1 = resample_gfloat_full_1_sse;
+    resample_gfloat_linear_1 = resample_gfloat_linear_1_sse;
+    resample_gfloat_cubic_1 = resample_gfloat_cubic_1_sse;
+
+    interpolate_gfloat_linear = interpolate_gfloat_linear_sse;
+    interpolate_gfloat_cubic = interpolate_gfloat_cubic_sse;
+#else
+    GST_DEBUG ("SSE optimisations not enabled");
+#endif
+  } else if (!strcmp (option, "sse2")) {
+#if defined (HAVE_EMMINTRIN_H) && defined(__SSE2__)
+    GST_DEBUG ("enable SSE2 optimisations");
+    resample_gint16_full_1 = resample_gint16_full_1_sse2;
+    resample_gint16_linear_1 = resample_gint16_linear_1_sse2;
+    resample_gint16_cubic_1 = resample_gint16_cubic_1_sse2;
+
+    interpolate_gint16_linear = interpolate_gint16_linear_sse2;
+    interpolate_gint16_cubic = interpolate_gint16_cubic_sse2;
+
+    resample_gdouble_full_1 = resample_gdouble_full_1_sse2;
+    resample_gdouble_linear_1 = resample_gdouble_linear_1_sse2;
+    resample_gdouble_cubic_1 = resample_gdouble_cubic_1_sse2;
+
+    interpolate_gdouble_linear = interpolate_gdouble_linear_sse2;
+    interpolate_gdouble_cubic = interpolate_gdouble_cubic_sse2;
+#else
+    GST_DEBUG ("SSE2 optimisations not enabled");
+#endif
+  } else if (!strcmp (option, "sse41")) {
+#if defined (HAVE_SMMINTRIN_H) && defined(__SSE4_1__)
+    GST_DEBUG ("enable SSE41 optimisations");
+    resample_gint32_full_1 = resample_gint32_full_1_sse41;
+    resample_gint32_linear_1 = resample_gint32_linear_1_sse41;
+    resample_gint32_cubic_1 = resample_gint32_cubic_1_sse41;
+#else
+    GST_DEBUG ("SSE41 optimisations not enabled");
+#endif
+  }
+}
diff --git a/gst-libs/gst/audio/audio-resampler.c b/gst-libs/gst/audio/audio-resampler.c
new file mode 100644
index 0000000..4e6ef43
--- /dev/null
+++ b/gst-libs/gst/audio/audio-resampler.c
@@ -0,0 +1,1917 @@
+/* GStreamer
+ * Copyright (C) <2015> 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.
+ */
+
+#ifdef HAVE_CONFIG_H
+#  include "config.h"
+#endif
+
+#include <string.h>
+#include <stdio.h>
+#include <math.h>
+
+#ifdef HAVE_ORC
+#include <orc/orc.h>
+#endif
+
+#include "audio-resampler.h"
+
+/* Contains a collection of all things found in other resamplers:
+ * speex (filter construction, optimizations), ffmpeg (fixed phase filter, blackman filter),
+ * SRC (linear interpolation, fixed precomputed tables),...
+ *
+ *  Supports:
+ *   - S16, S32, F32 and F64 formats
+ *   - nearest, linear and cubic interpolation
+ *   - sinc based interpolation with kaiser or blackman-nutall windows
+ *   - fully configurable kaiser parameters
+ *   - dynamic linear or cubic interpolation of filter table, this can
+ *     use less memory but more CPU
+ *   - full filter table, generated from optionally linear or cubic
+ *     interpolation of filter table
+ *   - fixed filter table size with nearest neighbour phase, optionally
+ *     using a precomputed tables
+ *   - dynamic samplerate changes
+ *   - x86 and neon optimizations
+ */
+typedef void (*ConvertTapsFunc) (gdouble * tmp_taps, gpointer taps,
+    gdouble weight, gint n_taps);
+typedef void (*InterpolateFunc) (gpointer o, const gpointer a, gint len,
+    const gpointer icoeff, gint astride);
+typedef void (*ResampleFunc) (GstAudioResampler * resampler, gpointer in[],
+    gsize in_len, gpointer out[], gsize out_len, gsize * consumed);
+typedef void (*DeinterleaveFunc) (GstAudioResampler * resampler,
+    gpointer * sbuf, gpointer in[], gsize in_frames);
+
+#define MEM_ALIGN(m,a) ((gint8 *)((guintptr)((gint8 *)(m) + ((a)-1)) & ~((a)-1)))
+#define ALIGN 16
+#define TAPS_OVERREAD 16
+
+struct _GstAudioResampler
+{
+  GstAudioResamplerMethod method;
+  GstAudioResamplerFlags flags;
+  GstAudioFormat format;
+  GstStructure *options;
+  gint format_index;
+  gint channels;
+  gint in_rate;
+  gint out_rate;
+
+  gint bps;
+  gint ostride;
+
+  GstAudioResamplerFilterMode filter_mode;
+  guint filter_threshold;
+  GstAudioResamplerFilterInterpolation filter_interpolation;
+
+  gdouble cutoff;
+  gdouble kaiser_beta;
+  /* for cubic */
+  gdouble b, c;
+
+  /* temp taps */
+  gpointer tmp_taps;
+
+  /* oversampled main filter table */
+  gint oversample;
+  gint n_taps;
+  gpointer taps;
+  gpointer taps_mem;
+  gsize taps_stride;
+  gint n_phases;
+  gint alloc_taps;
+  gint alloc_phases;
+
+  /* cached taps */
+  gpointer *cached_phases;
+  gpointer cached_taps;
+  gpointer cached_taps_mem;
+  gsize cached_taps_stride;
+
+  ConvertTapsFunc convert_taps;
+  InterpolateFunc interpolate;
+  DeinterleaveFunc deinterleave;
+  ResampleFunc resample;
+
+  gint blocks;
+  gint inc;
+  gint samp_inc;
+  gint samp_frac;
+  gint samp_index;
+  gint samp_phase;
+  gint skip;
+
+  gpointer samples;
+  gsize samples_len;
+  gsize samples_avail;
+  gpointer *sbuf;
+};
+
+GST_DEBUG_CATEGORY_STATIC (audio_resampler_debug);
+#define GST_CAT_DEFAULT audio_resampler_debug
+
+/**
+ * SECTION:gstaudioresampler
+ * @short_description: Utility structure for resampler information
+ *
+ * #GstAudioResampler is a structure which holds the information
+ * required to perform various kinds of resampling filtering.
+ *
+ */
+
+static const gint oversample_qualities[] = {
+  4, 4, 4, 8, 8, 16, 16, 16, 16, 32, 32
+};
+
+typedef struct
+{
+  gdouble cutoff;
+  gdouble downsample_cutoff_factor;
+  gdouble stopband_attenuation;
+  gdouble transition_bandwidth;
+} KaiserQualityMap;
+
+static const KaiserQualityMap kaiser_qualities[] = {
+  {0.860, 0.96511, 60, 0.7},    /* 8 taps */
+  {0.880, 0.96591, 65, 0.29},   /* 16 taps */
+  {0.910, 0.96923, 70, 0.145},  /* 32 taps */
+  {0.920, 0.97600, 80, 0.105},  /* 48 taps */
+  {0.940, 0.97979, 85, 0.087},  /* 64 taps default quality */
+  {0.940, 0.98085, 95, 0.077},  /* 80 taps */
+  {0.945, 0.99471, 100, 0.068}, /* 96 taps */
+  {0.950, 1.0, 105, 0.055},     /* 128 taps */
+  {0.960, 1.0, 110, 0.045},     /* 160 taps */
+  {0.968, 1.0, 115, 0.039},     /* 192 taps */
+  {0.975, 1.0, 120, 0.0305}     /* 256 taps */
+};
+
+typedef struct
+{
+  gint n_taps;
+  gdouble cutoff;
+} BlackmanQualityMap;
+
+static const BlackmanQualityMap blackman_qualities[] = {
+  {8, 0.5,},
+  {16, 0.6,},
+  {24, 0.72,},
+  {32, 0.8,},
+  {48, 0.85,},                  /* default */
+  {64, 0.90,},
+  {80, 0.92,},
+  {96, 0.933,},
+  {128, 0.950,},
+  {148, 0.955,},
+  {160, 0.960,}
+};
+
+#define DEFAULT_RESAMPLER_METHOD GST_AUDIO_RESAMPLER_METHOD_KAISER
+#define DEFAULT_QUALITY GST_AUDIO_RESAMPLER_QUALITY_DEFAULT
+#define DEFAULT_OPT_CUBIC_B 1.0
+#define DEFAULT_OPT_CUBIC_C 0.0
+#define DEFAULT_OPT_FILTER_MODE GST_AUDIO_RESAMPLER_FILTER_MODE_AUTO
+#define DEFAULT_OPT_FILTER_MODE_THRESHOLD 1048576
+#define DEFAULT_OPT_FILTER_INTERPOLATION GST_AUDIO_RESAMPLER_FILTER_INTERPOLATION_CUBIC
+#define DEFAULT_OPT_FILTER_OVERSAMPLE 8
+#define DEFAULT_OPT_MAX_PHASE_ERROR 0.1
+
+static gdouble
+get_opt_double (GstStructure * options, const gchar * name, gdouble def)
+{
+  gdouble res;
+  if (!options || !gst_structure_get_double (options, name, &res))
+    res = def;
+  return res;
+}
+
+static gint
+get_opt_int (GstStructure * options, const gchar * name, gint def)
+{
+  gint res;
+  if (!options || !gst_structure_get_int (options, name, &res))
+    res = def;
+  return res;
+}
+
+static gint
+get_opt_enum (GstStructure * options, const gchar * name, GType type, gint def)
+{
+  gint res;
+  if (!options || !gst_structure_get_enum (options, name, type, &res))
+    res = def;
+  return res;
+}
+
+
+#define GET_OPT_CUTOFF(options,def) get_opt_double(options, \
+    GST_AUDIO_RESAMPLER_OPT_CUTOFF,def)
+#define GET_OPT_DOWN_CUTOFF_FACTOR(options,def) get_opt_double(options, \
+    GST_AUDIO_RESAMPLER_OPT_DOWN_CUTOFF_FACTOR, def)
+#define GET_OPT_STOP_ATTENUATION(options,def) get_opt_double(options, \
+    GST_AUDIO_RESAMPLER_OPT_STOP_ATTENUATION, def)
+#define GET_OPT_TRANSITION_BANDWIDTH(options,def) get_opt_double(options, \
+    GST_AUDIO_RESAMPLER_OPT_TRANSITION_BANDWIDTH, def)
+#define GET_OPT_CUBIC_B(options) get_opt_double(options, \
+    GST_AUDIO_RESAMPLER_OPT_CUBIC_B, DEFAULT_OPT_CUBIC_B)
+#define GET_OPT_CUBIC_C(options) get_opt_double(options, \
+    GST_AUDIO_RESAMPLER_OPT_CUBIC_C, DEFAULT_OPT_CUBIC_C)
+#define GET_OPT_N_TAPS(options,def) get_opt_int(options, \
+    GST_AUDIO_RESAMPLER_OPT_N_TAPS, def)
+#define GET_OPT_FILTER_MODE(options) get_opt_enum(options, \
+    GST_AUDIO_RESAMPLER_OPT_FILTER_MODE, GST_TYPE_AUDIO_RESAMPLER_FILTER_MODE, \
+    DEFAULT_OPT_FILTER_MODE)
+#define GET_OPT_FILTER_MODE_THRESHOLD(options) get_opt_int(options, \
+    GST_AUDIO_RESAMPLER_OPT_FILTER_MODE_THRESHOLD, DEFAULT_OPT_FILTER_MODE_THRESHOLD)
+#define GET_OPT_FILTER_INTERPOLATION(options) get_opt_enum(options, \
+    GST_AUDIO_RESAMPLER_OPT_FILTER_INTERPOLATION, GST_TYPE_AUDIO_RESAMPLER_FILTER_INTERPOLATION, \
+    DEFAULT_OPT_FILTER_INTERPOLATION)
+#define GET_OPT_FILTER_OVERSAMPLE(options) get_opt_int(options, \
+    GST_AUDIO_RESAMPLER_OPT_FILTER_OVERSAMPLE, DEFAULT_OPT_FILTER_OVERSAMPLE)
+#define GET_OPT_MAX_PHASE_ERROR(options) get_opt_double(options, \
+    GST_AUDIO_RESAMPLER_OPT_MAX_PHASE_ERROR, DEFAULT_OPT_MAX_PHASE_ERROR)
+
+#include "dbesi0.c"
+#define bessel dbesi0
+
+static inline gdouble
+get_linear_tap (gdouble x, gint n_taps)
+{
+  gdouble res = GST_ROUND_UP_2 (n_taps) / 2 - fabs (x);
+  return res;
+}
+
+static inline gdouble
+get_cubic_tap (gdouble x, gint n_taps, gdouble b, gdouble c)
+{
+  gdouble res, a, a2, a3;
+
+  a = fabs (x * 4.0) / n_taps;
+  a2 = a * a;
+  a3 = a2 * a;
+
+  if (a <= 1.0)
+    res = ((12.0 - 9.0 * b - 6.0 * c) * a3 +
+        (-18.0 + 12.0 * b + 6.0 * c) * a2 + (6.0 - 2.0 * b)) / 6.0;
+  else if (a <= 2.0)
+    res = ((-b - 6.0 * c) * a3 +
+        (6.0 * b + 30.0 * c) * a2 +
+        (-12.0 * b - 48.0 * c) * a + (8.0 * b + 24.0 * c)) / 6.0;
+  else
+    res = 0.0;
+
+  return res;
+}
+
+static inline gdouble
+get_blackman_nuttall_tap (gdouble x, gint n_taps, gdouble Fc)
+{
+  gdouble s, y, w;
+
+  y = G_PI * x;
+  s = (y == 0.0 ? Fc : sin (y * Fc) / y);
+
+  w = 2.0 * y / n_taps + G_PI;
+  return s * (0.3635819 - 0.4891775 * cos (w) + 0.1365995 * cos (2 * w) -
+      0.0106411 * cos (3 * w));
+}
+
+static inline gdouble
+get_kaiser_tap (gdouble x, gint n_taps, gdouble Fc, gdouble beta)
+{
+  gdouble s, y, w;
+
+  y = G_PI * x;
+  s = (y == 0.0 ? Fc : sin (y * Fc) / y);
+
+  w = 2.0 * x / n_taps;
+  return s * bessel (beta * sqrt (MAX (1 - w * w, 0)));
+}
+
+#define PRECISION_S16 15
+#define PRECISION_S32 31
+
+#define MAKE_CONVERT_TAPS_INT_FUNC(type, precision)                     \
+static void                                                             \
+convert_taps_##type##_c (gdouble *tmp_taps, gpointer taps,              \
+    gdouble weight, gint n_taps)                                        \
+{                                                                       \
+  gint64 one = (1LL << precision) - 1;                                  \
+  type *t = taps;                                                       \
+  gdouble multiplier = one;                                             \
+  gint i, j;                                                            \
+  gdouble offset, l_offset, h_offset;                                   \
+  gboolean exact = FALSE;                                               \
+  /* Round to integer, but with an adjustable bias that we use to */    \
+  /* eliminate the DC error. */                                         \
+  l_offset = 0.0;                                                       \
+  h_offset = 1.0;                                                       \
+  offset = 0.5;                                                         \
+  for (i = 0; i < 32; i++) {                                            \
+    gint64 sum = 0;                                                     \
+    for (j = 0; j < n_taps; j++)                                        \
+      sum += floor (offset + tmp_taps[j] * multiplier / weight);        \
+    if (sum == one) {                                                   \
+      exact = TRUE;                                                     \
+      break;                                                            \
+    }                                                                   \
+    if (l_offset == h_offset)                                           \
+      break;                                                            \
+    if (sum < one) {                                                    \
+      if (offset > l_offset)                                            \
+        l_offset = offset;                                              \
+      offset += (h_offset - l_offset) / 2;                              \
+    } else {                                                            \
+      if (offset < h_offset)                                            \
+        h_offset = offset;                                              \
+      offset -= (h_offset - l_offset) / 2;                              \
+    }                                                                   \
+  }                                                                     \
+  for (j = 0; j < n_taps; j++)                                          \
+    t[j] = floor (offset + tmp_taps[j] * multiplier / weight);          \
+  if (!exact)                                                           \
+    GST_WARNING ("can't find exact taps");                              \
+}
+
+#define MAKE_CONVERT_TAPS_FLOAT_FUNC(type)                              \
+static void                                                             \
+convert_taps_##type##_c (gdouble *tmp_taps, gpointer taps,              \
+    gdouble weight, gint n_taps)                                        \
+{                                                                       \
+  gint i;                                                               \
+  type *t = taps;                                                       \
+  for (i = 0; i < n_taps; i++)                                          \
+    t[i] = tmp_taps[i] / weight;                                        \
+}
+
+MAKE_CONVERT_TAPS_INT_FUNC (gint16, PRECISION_S16);
+MAKE_CONVERT_TAPS_INT_FUNC (gint32, PRECISION_S32);
+MAKE_CONVERT_TAPS_FLOAT_FUNC (gfloat);
+MAKE_CONVERT_TAPS_FLOAT_FUNC (gdouble);
+
+static ConvertTapsFunc convert_taps_funcs[] = {
+  convert_taps_gint16_c,
+  convert_taps_gint32_c,
+  convert_taps_gfloat_c,
+  convert_taps_gdouble_c
+};
+
+#define convert_taps_gint16   convert_taps_funcs[0]
+#define convert_taps_gint32   convert_taps_funcs[1]
+#define convert_taps_gfloat   convert_taps_funcs[2]
+#define convert_taps_gdouble  convert_taps_funcs[3]
+
+static void
+make_taps (GstAudioResampler * resampler, gdouble * res, gdouble x, gint n_taps)
+{
+  gdouble weight = 0.0, *tmp_taps = resampler->tmp_taps;
+  gint i;
+
+  switch (resampler->method) {
+    case GST_AUDIO_RESAMPLER_METHOD_NEAREST:
+      break;
+
+    case GST_AUDIO_RESAMPLER_METHOD_LINEAR:
+      for (i = 0; i < n_taps; i++)
+        weight += tmp_taps[i] = get_linear_tap (x + i, resampler->n_taps);
+      break;
+
+    case GST_AUDIO_RESAMPLER_METHOD_CUBIC:
+      for (i = 0; i < n_taps; i++)
+        weight += tmp_taps[i] = get_cubic_tap (x + i, resampler->n_taps,
+            resampler->b, resampler->c);
+      break;
+
+    case GST_AUDIO_RESAMPLER_METHOD_BLACKMAN_NUTTALL:
+      for (i = 0; i < n_taps; i++)
+        weight += tmp_taps[i] =
+            get_blackman_nuttall_tap (x + i,
+            resampler->n_taps, resampler->cutoff);
+      break;
+
+    case GST_AUDIO_RESAMPLER_METHOD_KAISER:
+      for (i = 0; i < n_taps; i++)
+        weight += tmp_taps[i] =
+            get_kaiser_tap (x + i, resampler->n_taps,
+            resampler->cutoff, resampler->kaiser_beta);
+      break;
+  }
+  resampler->convert_taps (tmp_taps, res, weight, n_taps);
+}
+
+#define MAKE_COEFF_LINEAR_INT_FUNC(type,type2,prec)                     \
+static inline void                                                      \
+make_coeff_##type##_linear (gint num, gint denom, type *icoeff)         \
+{                                                                       \
+  type x = ((gint64)num << prec) / denom;                               \
+  icoeff[0] = icoeff[2] = x;                                            \
+  icoeff[1] = icoeff[3] = (type)(((type2)1 << prec)-1)  - x;            \
+}
+#define MAKE_COEFF_LINEAR_FLOAT_FUNC(type)                              \
+static inline void                                                      \
+make_coeff_##type##_linear (gint num, gint denom, type *icoeff)         \
+{                                                                       \
+  type x = (type)num / denom;                                           \
+  icoeff[0] = icoeff[2] = x;                                            \
+  icoeff[1] = icoeff[3] = (type)1.0 - x;                                \
+}
+MAKE_COEFF_LINEAR_INT_FUNC (gint16, gint32, PRECISION_S16);
+MAKE_COEFF_LINEAR_INT_FUNC (gint32, gint64, PRECISION_S32);
+MAKE_COEFF_LINEAR_FLOAT_FUNC (gfloat);
+MAKE_COEFF_LINEAR_FLOAT_FUNC (gdouble);
+
+#define MAKE_COEFF_CUBIC_INT_FUNC(type,type2,prec)                      \
+static inline void                                                      \
+make_coeff_##type##_cubic (gint num, gint denom, type *icoeff)          \
+{                                                                       \
+  type2 one = ((type2)1 << prec) - 1;                                   \
+  type2 x = ((gint64) num << prec) / denom;                             \
+  type2 x2 = (x * x) >> prec;                                           \
+  type2 x3 = (x2 * x) >> prec;                                          \
+  icoeff[0] = (((x3 - x) << prec) / 6) >> prec;                         \
+  icoeff[1] = x + ((x2 - x3) >> 1);                                     \
+  icoeff[3] = -(((x << prec) / 3) >> prec) +                            \
+            (x2 >> 1) - (((x3 << prec) / 6) >> prec);                   \
+  icoeff[2] = one - icoeff[0] - icoeff[1] - icoeff[3];                  \
+}
+#define MAKE_COEFF_CUBIC_FLOAT_FUNC(type)                               \
+static inline void                                                      \
+make_coeff_##type##_cubic (gint num, gint denom, type *icoeff)          \
+{                                                                       \
+  type x = (type) num / denom, x2 = x * x, x3 = x2 * x;                 \
+  icoeff[0] = 0.16667f * (x3 - x);                                      \
+  icoeff[1] = x + 0.5f * (x2 - x3);                                     \
+  icoeff[3] = -0.33333f * x + 0.5f * x2 - 0.16667f * x3;                \
+  icoeff[2] = (type)1.0 - icoeff[0] - icoeff[1] - icoeff[3];            \
+}
+MAKE_COEFF_CUBIC_INT_FUNC (gint16, gint32, PRECISION_S16);
+MAKE_COEFF_CUBIC_INT_FUNC (gint32, gint64, PRECISION_S32);
+MAKE_COEFF_CUBIC_FLOAT_FUNC (gfloat);
+MAKE_COEFF_CUBIC_FLOAT_FUNC (gdouble);
+
+#define INTERPOLATE_INT_LINEAR_FUNC(type,type2,prec,limit)      \
+static inline void                                              \
+interpolate_##type##_linear_c (gpointer op, const gpointer ap,  \
+    gint len, const gpointer icp, gint astride)                 \
+{                                                               \
+  gint i;                                                       \
+  type *o = op, *a = ap, *ic = icp;                             \
+  type2 tmp, c0 = ic[0];                                        \
+  const type *c[2] = {(type*)((gint8*)a + 0*astride),           \
+                      (type*)((gint8*)a + 1*astride)};          \
+                                                                \
+  for (i = 0; i < len; i++) {                                   \
+    tmp = ((type2)c[0][i] - (type2)c[1][i]) * c0 +              \
+         (((type2)c[1][i]) << (prec));                          \
+    o[i] = (tmp + ((type2)1 << ((prec) - 1))) >> (prec);        \
+  }                                                             \
+}
+#define INTERPOLATE_FLOAT_LINEAR_FUNC(type)                     \
+static inline void                                              \
+interpolate_##type##_linear_c (gpointer op, const gpointer ap,  \
+    gint len, const gpointer icp, gint astride)                 \
+{                                                               \
+  gint i;                                                       \
+  type *o = op, *a = ap, *ic = icp;                             \
+  type c0 = ic[0];                                              \
+  const type *c[2] = {(type*)((gint8*)a + 0*astride),           \
+                      (type*)((gint8*)a + 1*astride)};          \
+                                                                \
+  for (i = 0; i < len; i++) {                                   \
+    o[i] = (c[0][i] - c[1][i]) * c0 + c[1][i];                  \
+  }                                                             \
+}
+
+INTERPOLATE_INT_LINEAR_FUNC (gint16, gint32, PRECISION_S16, (gint32) 1 << 15);
+INTERPOLATE_INT_LINEAR_FUNC (gint32, gint64, PRECISION_S32, (gint64) 1 << 31);
+INTERPOLATE_FLOAT_LINEAR_FUNC (gfloat);
+INTERPOLATE_FLOAT_LINEAR_FUNC (gdouble);
+
+#define INTERPOLATE_INT_CUBIC_FUNC(type,type2,prec,limit)       \
+static inline void                                              \
+interpolate_##type##_cubic_c (gpointer op, const gpointer ap,   \
+    gint len, const gpointer icp, gint astride)                 \
+{                                                               \
+  gint i;                                                       \
+  type *o = op, *a = ap, *ic = icp;                             \
+  type2 tmp, c0 = ic[0], c1 = ic[1], c2 = ic[2], c3 = ic[3];    \
+  const type *c[4] = {(type*)((gint8*)a + 0*astride),           \
+                      (type*)((gint8*)a + 1*astride),           \
+                      (type*)((gint8*)a + 2*astride),           \
+                      (type*)((gint8*)a + 3*astride)};          \
+                                                                \
+  for (i = 0; i < len; i++) {                                   \
+    tmp = (type2)c[0][i] * c0 + (type2)c[1][i] * c1 +           \
+          (type2)c[2][i] * c2 + (type2)c[3][i] * c3;            \
+    tmp = (tmp + ((type2)1 << ((prec) - 1))) >> (prec);         \
+    o[i] = CLAMP (tmp, -(limit), (limit) - 1);                  \
+  }                                                             \
+}
+#define INTERPOLATE_FLOAT_CUBIC_FUNC(type)                      \
+static inline void                                              \
+interpolate_##type##_cubic_c (gpointer op, const gpointer ap,   \
+    gint len, const gpointer icp, gint astride)                 \
+{                                                               \
+  gint i;                                                       \
+  type *o = op, *a = ap, *ic = icp;                             \
+  type c0 = ic[0], c1 = ic[1], c2 = ic[2], c3 = ic[3];          \
+  const type *c[4] = {(type*)((gint8*)a + 0*astride),           \
+                      (type*)((gint8*)a + 1*astride),           \
+                      (type*)((gint8*)a + 2*astride),           \
+                      (type*)((gint8*)a + 3*astride)};          \
+                                                                \
+  for (i = 0; i < len; i++) {                                   \
+    o[i] = c[0][i] * c0 + c[1][i] * c1 +                        \
+           c[2][i] * c2 + c[3][i] * c3;                         \
+  }                                                             \
+}
+
+INTERPOLATE_INT_CUBIC_FUNC (gint16, gint32, PRECISION_S16, (gint32) 1 << 15);
+INTERPOLATE_INT_CUBIC_FUNC (gint32, gint64, PRECISION_S32, (gint64) 1 << 31);
+INTERPOLATE_FLOAT_CUBIC_FUNC (gfloat);
+INTERPOLATE_FLOAT_CUBIC_FUNC (gdouble);
+
+static InterpolateFunc interpolate_funcs[] = {
+  interpolate_gint16_linear_c,
+  interpolate_gint32_linear_c,
+  interpolate_gfloat_linear_c,
+  interpolate_gdouble_linear_c,
+
+  interpolate_gint16_cubic_c,
+  interpolate_gint32_cubic_c,
+  interpolate_gfloat_cubic_c,
+  interpolate_gdouble_cubic_c,
+};
+
+#define interpolate_gint16_linear  interpolate_funcs[0]
+#define interpolate_gint32_linear  interpolate_funcs[1]
+#define interpolate_gfloat_linear  interpolate_funcs[2]
+#define interpolate_gdouble_linear interpolate_funcs[3]
+
+#define interpolate_gint16_cubic   interpolate_funcs[4]
+#define interpolate_gint32_cubic   interpolate_funcs[5]
+#define interpolate_gfloat_cubic   interpolate_funcs[6]
+#define interpolate_gdouble_cubic  interpolate_funcs[7]
+
+#define GET_TAPS_NEAREST_FUNC(type)                                             \
+static inline gpointer                                                          \
+get_taps_##type##_nearest (GstAudioResampler * resampler,                       \
+    gint *samp_index, gint *samp_phase, type icoeff[4])                         \
+{                                                                               \
+  gint out_rate = resampler->out_rate;                                          \
+  *samp_index += resampler->samp_inc;                                           \
+  *samp_phase += resampler->samp_frac;                                          \
+  if (*samp_phase >= out_rate) {                                                \
+    *samp_phase -= out_rate;                                                    \
+    *samp_index += 1;                                                           \
+  }                                                                             \
+  return NULL;                                                                  \
+}
+GET_TAPS_NEAREST_FUNC (gint16);
+GET_TAPS_NEAREST_FUNC (gint32);
+GET_TAPS_NEAREST_FUNC (gfloat);
+GET_TAPS_NEAREST_FUNC (gdouble);
+
+#define get_taps_gint16_nearest get_taps_gint16_nearest
+#define get_taps_gint32_nearest get_taps_gint32_nearest
+#define get_taps_gfloat_nearest get_taps_gfloat_nearest
+#define get_taps_gdouble_nearest get_taps_gdouble_nearest
+
+#define GET_TAPS_FULL_FUNC(type)                                                \
+static inline gpointer                                                          \
+get_taps_##type##_full (GstAudioResampler * resampler,                          \
+    gint *samp_index, gint *samp_phase, type icoeff[4])                         \
+{                                                                               \
+  gpointer res;                                                                 \
+  gint out_rate = resampler->out_rate;                                          \
+  gint n_phases = resampler->n_phases;                                          \
+  gint phase = (n_phases == out_rate ? *samp_phase :                            \
+      ((gint64)*samp_phase * n_phases) / out_rate);                             \
+                                                                                \
+  res = resampler->cached_phases[phase];                                        \
+  if (G_UNLIKELY (res == NULL)) {                                               \
+    res = (gint8 *) resampler->cached_taps +                                    \
+                        phase * resampler->cached_taps_stride;                  \
+    switch (resampler->filter_interpolation) {                                  \
+      case GST_AUDIO_RESAMPLER_FILTER_INTERPOLATION_NONE:                       \
+      {                                                                         \
+        gdouble x;                                                              \
+        gint n_taps = resampler->n_taps;                                        \
+                                                                                \
+        x = 1.0 - n_taps / 2 - (gdouble) phase / n_phases;                      \
+        make_taps (resampler, res, x, n_taps);                                  \
+        break;                                                                  \
+      }                                                                         \
+      default:                                                                  \
+      {                                                                         \
+        gint offset, pos, frac;                                                 \
+        gint oversample = resampler->oversample;                                \
+        gint taps_stride = resampler->taps_stride;                              \
+        gint n_taps = resampler->n_taps;                                        \
+        type ic[4], *taps;                                                      \
+                                                                                \
+        pos = phase * oversample;                                               \
+        offset = (oversample - 1) - pos / n_phases;                             \
+        frac = pos % n_phases;                                                  \
+                                                                                \
+        taps = (type *) ((gint8 *) resampler->taps + offset * taps_stride);     \
+                                                                                \
+        switch (resampler->filter_interpolation) {                              \
+          default:                                                              \
+          case GST_AUDIO_RESAMPLER_FILTER_INTERPOLATION_LINEAR:                 \
+            make_coeff_##type##_linear (frac, n_phases, ic);                    \
+            break;                                                              \
+          case GST_AUDIO_RESAMPLER_FILTER_INTERPOLATION_CUBIC:                  \
+            make_coeff_##type##_cubic (frac, n_phases, ic);                     \
+            break;                                                              \
+        }                                                                       \
+        resampler->interpolate (res, taps, n_taps, ic, taps_stride);            \
+      }                                                                         \
+    }                                                                           \
+    resampler->cached_phases[phase] = res;                                      \
+  }                                                                             \
+  *samp_index += resampler->samp_inc;                                           \
+  *samp_phase += resampler->samp_frac;                                          \
+  if (*samp_phase >= out_rate) {                                                \
+    *samp_phase -= out_rate;                                                    \
+    *samp_index += 1;                                                           \
+  }                                                                             \
+  return res;                                                                   \
+}
+GET_TAPS_FULL_FUNC (gint16);
+GET_TAPS_FULL_FUNC (gint32);
+GET_TAPS_FULL_FUNC (gfloat);
+GET_TAPS_FULL_FUNC (gdouble);
+
+#define GET_TAPS_INTERPOLATE_FUNC(type,inter)                   \
+static inline gpointer                                          \
+get_taps_##type##_##inter (GstAudioResampler * resampler,       \
+    gint *samp_index, gint *samp_phase, type icoeff[4])         \
+{                                                               \
+  gpointer res;                                                 \
+  gint out_rate = resampler->out_rate;                          \
+  gint offset, frac, pos;                                       \
+  gint oversample = resampler->oversample;                      \
+  gint taps_stride = resampler->taps_stride;                    \
+                                                                \
+  pos = *samp_phase * oversample;                               \
+  offset = (oversample - 1) - pos / out_rate;                   \
+  frac = pos % out_rate;                                        \
+                                                                \
+  res = (gint8 *) resampler->taps + offset * taps_stride;       \
+  make_coeff_##type##_##inter (frac, out_rate, icoeff);         \
+                                                                \
+  *samp_index += resampler->samp_inc;                           \
+  *samp_phase += resampler->samp_frac;                          \
+  if (*samp_phase >= out_rate) {                                \
+    *samp_phase -= out_rate;                                    \
+    *samp_index += 1;                                           \
+  }                                                             \
+  return res;                                                   \
+}
+
+GET_TAPS_INTERPOLATE_FUNC (gint16, linear);
+GET_TAPS_INTERPOLATE_FUNC (gint32, linear);
+GET_TAPS_INTERPOLATE_FUNC (gfloat, linear);
+GET_TAPS_INTERPOLATE_FUNC (gdouble, linear);
+
+GET_TAPS_INTERPOLATE_FUNC (gint16, cubic);
+GET_TAPS_INTERPOLATE_FUNC (gint32, cubic);
+GET_TAPS_INTERPOLATE_FUNC (gfloat, cubic);
+GET_TAPS_INTERPOLATE_FUNC (gdouble, cubic);
+
+#define INNER_PRODUCT_NEAREST_FUNC(type)                        \
+static inline void                                              \
+inner_product_##type##_nearest_1_c (type * o, const type * a,   \
+    const type * b, gint len, const type *ic, gint bstride)     \
+{                                                               \
+  *o = *a;                                                      \
+}
+INNER_PRODUCT_NEAREST_FUNC (gint16);
+INNER_PRODUCT_NEAREST_FUNC (gint32);
+INNER_PRODUCT_NEAREST_FUNC (gfloat);
+INNER_PRODUCT_NEAREST_FUNC (gdouble);
+
+#define INNER_PRODUCT_INT_FULL_FUNC(type,type2,prec,limit)      \
+static inline void                                              \
+inner_product_##type##_full_1_c (type * o, const type * a,      \
+    const type * b, gint len, const type *ic, gint bstride)     \
+{                                                               \
+  gint i;                                                       \
+  type2 res[4] = { 0, 0, 0, 0 };                                \
+                                                                \
+  for (i = 0; i < len; i += 4) {                                \
+    res[0] += (type2) a[i + 0] * (type2) b[i + 0];              \
+    res[1] += (type2) a[i + 1] * (type2) b[i + 1];              \
+    res[2] += (type2) a[i + 2] * (type2) b[i + 2];              \
+    res[3] += (type2) a[i + 3] * (type2) b[i + 3];              \
+  }                                                             \
+  res[0] = res[0] + res[1] + res[2] + res[3];                   \
+  res[0] = (res[0] + ((type2)1 << ((prec) - 1))) >> (prec);     \
+  *o = CLAMP (res[0], -(limit), (limit) - 1);                   \
+}
+
+INNER_PRODUCT_INT_FULL_FUNC (gint16, gint32, PRECISION_S16, (gint32) 1 << 15);
+INNER_PRODUCT_INT_FULL_FUNC (gint32, gint64, PRECISION_S32, (gint64) 1 << 31);
+
+#define INNER_PRODUCT_INT_LINEAR_FUNC(type,type2,prec,limit)    \
+static inline void                                              \
+inner_product_##type##_linear_1_c (type * o, const type * a,    \
+    const type * b, gint len, const type *ic, gint bstride)     \
+{                                                               \
+  gint i;                                                       \
+  type2 res[4] = { 0, 0, 0, 0 }, c0 = ic[0];                    \
+  const type *c[2] = {(type*)((gint8*)b + 0*bstride),           \
+                      (type*)((gint8*)b + 1*bstride)};          \
+                                                                \
+  for (i = 0; i < len; i += 2) {                                \
+    res[0] += (type2) a[i + 0] * (type2) c[0][i + 0];           \
+    res[1] += (type2) a[i + 0] * (type2) c[1][i + 0];           \
+    res[2] += (type2) a[i + 1] * (type2) c[0][i + 1];           \
+    res[3] += (type2) a[i + 1] * (type2) c[1][i + 1];           \
+  }                                                             \
+  res[0] = (res[0] + res[2]) >> (prec);                         \
+  res[1] = (res[1] + res[3]) >> (prec);                         \
+  res[0] = ((type2)(type)res[0] - (type2)(type)res[1]) * c0 +   \
+           ((type2)(type)res[1] << (prec));                     \
+  res[0] = (res[0] + ((type2)1 << ((prec) - 1))) >> (prec);     \
+  *o = CLAMP (res[0], -(limit), (limit) - 1);                   \
+}
+
+INNER_PRODUCT_INT_LINEAR_FUNC (gint16, gint32, PRECISION_S16, (gint32) 1 << 15);
+INNER_PRODUCT_INT_LINEAR_FUNC (gint32, gint64, PRECISION_S32, (gint64) 1 << 31);
+
+#define INNER_PRODUCT_INT_CUBIC_FUNC(type,type2,prec,limit)     \
+static inline void                                              \
+inner_product_##type##_cubic_1_c (type * o, const type * a,     \
+    const type * b, gint len, const type *ic, gint bstride)     \
+{                                                               \
+  gint i;                                                       \
+  type2 res[4] = { 0, 0, 0, 0 };                                \
+  const type *c[4] = {(type*)((gint8*)b + 0*bstride),           \
+                      (type*)((gint8*)b + 1*bstride),           \
+                      (type*)((gint8*)b + 2*bstride),           \
+                      (type*)((gint8*)b + 3*bstride)};          \
+                                                                \
+  for (i = 0; i < len; i++) {                                   \
+    res[0] += (type2) a[i] * (type2) c[0][i];                   \
+    res[1] += (type2) a[i] * (type2) c[1][i];                   \
+    res[2] += (type2) a[i] * (type2) c[2][i];                   \
+    res[3] += (type2) a[i] * (type2) c[3][i];                   \
+  }                                                             \
+  res[0] = (type2)(type)(res[0] >> (prec)) * (type2) ic[0] +    \
+           (type2)(type)(res[1] >> (prec)) * (type2) ic[1] +    \
+           (type2)(type)(res[2] >> (prec)) * (type2) ic[2] +    \
+           (type2)(type)(res[3] >> (prec)) * (type2) ic[3];     \
+  res[0] = (res[0] + ((type2)1 << ((prec) - 1))) >> (prec);     \
+  *o = CLAMP (res[0], -(limit), (limit) - 1);                   \
+}
+
+INNER_PRODUCT_INT_CUBIC_FUNC (gint16, gint32, PRECISION_S16, (gint32) 1 << 15);
+INNER_PRODUCT_INT_CUBIC_FUNC (gint32, gint64, PRECISION_S32, (gint64) 1 << 31);
+
+#define INNER_PRODUCT_FLOAT_FULL_FUNC(type)                     \
+static inline void                                              \
+inner_product_##type##_full_1_c (type * o, const type * a,      \
+    const type * b, gint len, const type *ic, gint bstride)     \
+{                                                               \
+  gint i;                                                       \
+  type res[4] = { 0.0, 0.0, 0.0, 0.0 };                         \
+                                                                \
+  for (i = 0; i < len; i += 4) {                                \
+    res[0] += a[i + 0] * b[i + 0];                              \
+    res[1] += a[i + 1] * b[i + 1];                              \
+    res[2] += a[i + 2] * b[i + 2];                              \
+    res[3] += a[i + 3] * b[i + 3];                              \
+  }                                                             \
+  *o = res[0] + res[1] + res[2] + res[3];                       \
+}
+
+INNER_PRODUCT_FLOAT_FULL_FUNC (gfloat);
+INNER_PRODUCT_FLOAT_FULL_FUNC (gdouble);
+
+#define INNER_PRODUCT_FLOAT_LINEAR_FUNC(type)                   \
+static inline void                                              \
+inner_product_##type##_linear_1_c (type * o, const type * a,    \
+    const type * b, gint len, const type *ic, gint bstride)     \
+{                                                               \
+  gint i;                                                       \
+  type res[4] = { 0.0, 0.0, 0.0, 0.0 };                         \
+  const type *c[2] = {(type*)((gint8*)b + 0*bstride),           \
+                      (type*)((gint8*)b + 1*bstride)};          \
+                                                                \
+  for (i = 0; i < len; i += 2) {                                \
+    res[0] += a[i + 0] * c[0][i + 0];                           \
+    res[1] += a[i + 0] * c[1][i + 0];                           \
+    res[2] += a[i + 1] * c[0][i + 1];                           \
+    res[3] += a[i + 1] * c[1][i + 1];                           \
+  }                                                             \
+  res[0] += res[2];                                             \
+  res[1] += res[3];                                             \
+  *o = (res[0] - res[1]) * ic[0] + res[1];                      \
+}
+INNER_PRODUCT_FLOAT_LINEAR_FUNC (gfloat);
+INNER_PRODUCT_FLOAT_LINEAR_FUNC (gdouble);
+
+#define INNER_PRODUCT_FLOAT_CUBIC_FUNC(type)                    \
+static inline void                                              \
+inner_product_##type##_cubic_1_c (type * o, const type * a,     \
+    const type * b, gint len, const type *ic, gint bstride)     \
+{                                                               \
+  gint i;                                                       \
+  type res[4] = { 0.0, 0.0, 0.0, 0.0 };                         \
+  const type *c[4] = {(type*)((gint8*)b + 0*bstride),           \
+                      (type*)((gint8*)b + 1*bstride),           \
+                      (type*)((gint8*)b + 2*bstride),           \
+                      (type*)((gint8*)b + 3*bstride)};          \
+                                                                \
+  for (i = 0; i < len; i++) {                                   \
+    res[0] += a[i] * c[0][i];                                   \
+    res[1] += a[i] * c[1][i];                                   \
+    res[2] += a[i] * c[2][i];                                   \
+    res[3] += a[i] * c[3][i];                                   \
+  }                                                             \
+  *o = res[0] * ic[0] + res[1] * ic[1] +                        \
+       res[2] * ic[2] + res[3] * ic[3];                         \
+}
+INNER_PRODUCT_FLOAT_CUBIC_FUNC (gfloat);
+INNER_PRODUCT_FLOAT_CUBIC_FUNC (gdouble);
+
+#define MAKE_RESAMPLE_FUNC(type,inter,channels,arch)                            \
+static void                                                                     \
+resample_ ##type## _ ##inter## _ ##channels## _ ##arch (GstAudioResampler * resampler,      \
+    gpointer in[], gsize in_len,  gpointer out[], gsize out_len,                \
+    gsize * consumed)                                                           \
+{                                                                               \
+  gint c, di = 0;                                                               \
+  gint n_taps = resampler->n_taps;                                              \
+  gint blocks = resampler->blocks;                                              \
+  gint ostride = resampler->ostride;                                            \
+  gint taps_stride = resampler->taps_stride;                                    \
+  gint samp_index = 0;                                                          \
+  gint samp_phase = 0;                                                          \
+                                                                                \
+  for (c = 0; c < blocks; c++) {                                                \
+    type *ip = in[c];                                                           \
+    type *op = ostride == 1 ? out[c] : (type *)out[0] + c;                      \
+                                                                                \
+    samp_index = resampler->samp_index;                                         \
+    samp_phase = resampler->samp_phase;                                         \
+                                                                                \
+    for (di = 0; di < out_len; di++) {                                          \
+      type *ipp, icoeff[4], *taps;                                              \
+                                                                                \
+      ipp = &ip[samp_index * channels];                                         \
+                                                                                \
+      taps = get_taps_ ##type##_##inter                                         \
+              (resampler, &samp_index, &samp_phase, icoeff);                    \
+      inner_product_ ##type##_##inter##_##channels##_##arch                     \
+              (op, ipp, taps, n_taps, icoeff, taps_stride);                     \
+      op += ostride;                                                            \
+    }                                                                           \
+    if (in_len > samp_index)                                                    \
+      memmove (ip, &ip[samp_index * channels],                                  \
+          (in_len - samp_index) * sizeof(type) * channels);                     \
+  }                                                                             \
+  *consumed = samp_index - resampler->samp_index;                               \
+                                                                                \
+  resampler->samp_index = 0;                                                    \
+  resampler->samp_phase = samp_phase;                                           \
+}
+
+MAKE_RESAMPLE_FUNC (gint16, nearest, 1, c);
+MAKE_RESAMPLE_FUNC (gint32, nearest, 1, c);
+MAKE_RESAMPLE_FUNC (gfloat, nearest, 1, c);
+MAKE_RESAMPLE_FUNC (gdouble, nearest, 1, c);
+
+MAKE_RESAMPLE_FUNC (gint16, full, 1, c);
+MAKE_RESAMPLE_FUNC (gint32, full, 1, c);
+MAKE_RESAMPLE_FUNC (gfloat, full, 1, c);
+MAKE_RESAMPLE_FUNC (gdouble, full, 1, c);
+
+MAKE_RESAMPLE_FUNC (gint16, linear, 1, c);
+MAKE_RESAMPLE_FUNC (gint32, linear, 1, c);
+MAKE_RESAMPLE_FUNC (gfloat, linear, 1, c);
+MAKE_RESAMPLE_FUNC (gdouble, linear, 1, c);
+
+MAKE_RESAMPLE_FUNC (gint16, cubic, 1, c);
+MAKE_RESAMPLE_FUNC (gint32, cubic, 1, c);
+MAKE_RESAMPLE_FUNC (gfloat, cubic, 1, c);
+MAKE_RESAMPLE_FUNC (gdouble, cubic, 1, c);
+
+static ResampleFunc resample_funcs[] = {
+  resample_gint16_nearest_1_c,
+  resample_gint32_nearest_1_c,
+  resample_gfloat_nearest_1_c,
+  resample_gdouble_nearest_1_c,
+
+  resample_gint16_full_1_c,
+  resample_gint32_full_1_c,
+  resample_gfloat_full_1_c,
+  resample_gdouble_full_1_c,
+
+  resample_gint16_linear_1_c,
+  resample_gint32_linear_1_c,
+  resample_gfloat_linear_1_c,
+  resample_gdouble_linear_1_c,
+
+  resample_gint16_cubic_1_c,
+  resample_gint32_cubic_1_c,
+  resample_gfloat_cubic_1_c,
+  resample_gdouble_cubic_1_c,
+};
+
+#define resample_gint16_nearest_1 resample_funcs[0]
+#define resample_gint32_nearest_1 resample_funcs[1]
+#define resample_gfloat_nearest_1 resample_funcs[2]
+#define resample_gdouble_nearest_1 resample_funcs[3]
+
+#define resample_gint16_full_1 resample_funcs[4]
+#define resample_gint32_full_1 resample_funcs[5]
+#define resample_gfloat_full_1 resample_funcs[6]
+#define resample_gdouble_full_1 resample_funcs[7]
+
+#define resample_gint16_linear_1 resample_funcs[8]
+#define resample_gint32_linear_1 resample_funcs[9]
+#define resample_gfloat_linear_1 resample_funcs[10]
+#define resample_gdouble_linear_1 resample_funcs[11]
+
+#define resample_gint16_cubic_1 resample_funcs[12]
+#define resample_gint32_cubic_1 resample_funcs[13]
+#define resample_gfloat_cubic_1 resample_funcs[14]
+#define resample_gdouble_cubic_1 resample_funcs[15]
+
+#if defined HAVE_ORC && !defined DISABLE_ORC
+# if defined (HAVE_ARM_NEON)
+#  define CHECK_NEON
+#  include "audio-resampler-neon.h"
+# endif
+# if defined (__i386__) || defined (__x86_64__)
+#  define CHECK_X86
+#  include "audio-resampler-x86.h"
+# endif
+#endif
+
+static void
+audio_resampler_init (void)
+{
+  static gsize init_gonce = 0;
+
+  if (g_once_init_enter (&init_gonce)) {
+
+    GST_DEBUG_CATEGORY_INIT (audio_resampler_debug, "audio-resampler", 0,
+        "audio-resampler object");
+
+#if defined HAVE_ORC && !defined DISABLE_ORC
+    orc_init ();
+    {
+      OrcTarget *target = orc_target_get_default ();
+      gint i;
+
+      if (target) {
+        const gchar *name;
+        unsigned int flags = orc_target_get_default_flags (target);
+
+        for (i = -1; i < 32; ++i) {
+          if (i == -1) {
+            name = orc_target_get_name (target);
+            GST_DEBUG ("target %s, default flags %08x", name, flags);
+          } else if (flags & (1U << i)) {
+            name = orc_target_get_flag_name (target, i);
+            GST_DEBUG ("target flag %s", name);
+          } else
+            name = NULL;
+
+          if (name) {
+#ifdef CHECK_X86
+            audio_resampler_check_x86 (name);
+#endif
+#ifdef CHECK_NEON
+            audio_resampler_check_neon (name);
+#endif
+          }
+        }
+      }
+    }
+#endif
+    g_once_init_leave (&init_gonce, 1);
+  }
+}
+
+#define MAKE_DEINTERLEAVE_FUNC(type)                                    \
+static void                                                             \
+deinterleave_ ##type (GstAudioResampler * resampler, gpointer sbuf[],   \
+    gpointer in[], gsize in_frames)                                     \
+{                                                                       \
+  gint i, c, channels = resampler->channels;                            \
+  gsize samples_avail = resampler->samples_avail;                       \
+  for (c = 0; c < channels; c++) {                                      \
+    type *s = (type *) sbuf[c] + samples_avail;                         \
+    if (G_UNLIKELY (in == NULL)) {                                      \
+      for (i = 0; i < in_frames; i++)                                   \
+        s[i] = 0;                                                       \
+    } else {                                                            \
+      type *ip = (type *) in[0] + c;                                    \
+      for (i = 0; i < in_frames; i++, ip += channels)                   \
+        s[i] = *ip;                                                     \
+    }                                                                   \
+  }                                                                     \
+}
+
+MAKE_DEINTERLEAVE_FUNC (gint16);
+MAKE_DEINTERLEAVE_FUNC (gint32);
+MAKE_DEINTERLEAVE_FUNC (gfloat);
+MAKE_DEINTERLEAVE_FUNC (gdouble);
+
+static DeinterleaveFunc deinterleave_funcs[] = {
+  deinterleave_gint16,
+  deinterleave_gint32,
+  deinterleave_gfloat,
+  deinterleave_gdouble
+};
+
+static void
+calculate_kaiser_params (GstAudioResampler * resampler)
+{
+  gdouble A, B, dw, tr_bw, Fc;
+  gint n;
+  const KaiserQualityMap *q = &kaiser_qualities[DEFAULT_QUALITY];
+
+  /* default cutoff */
+  Fc = q->cutoff;
+  if (resampler->out_rate < resampler->in_rate)
+    Fc *= q->downsample_cutoff_factor;
+
+  Fc = GET_OPT_CUTOFF (resampler->options, Fc);
+  A = GET_OPT_STOP_ATTENUATION (resampler->options, q->stopband_attenuation);
+  tr_bw =
+      GET_OPT_TRANSITION_BANDWIDTH (resampler->options,
+      q->transition_bandwidth);
+
+  GST_LOG ("Fc %f, A %f, tr_bw %f", Fc, A, tr_bw);
+
+  /* calculate Beta */
+  if (A > 50)
+    B = 0.1102 * (A - 8.7);
+  else if (A >= 21)
+    B = 0.5842 * pow (A - 21, 0.4) + 0.07886 * (A - 21);
+  else
+    B = 0.0;
+  /* calculate transition width in radians */
+  dw = 2 * G_PI * (tr_bw);
+  /* order of the filter */
+  n = (A - 8.0) / (2.285 * dw);
+
+  resampler->kaiser_beta = B;
+  resampler->n_taps = n + 1;
+  resampler->cutoff = Fc;
+
+  GST_LOG ("using Beta %f n_taps %d cutoff %f", resampler->kaiser_beta,
+      resampler->n_taps, resampler->cutoff);
+}
+
+static void
+alloc_taps_mem (GstAudioResampler * resampler, gint bps, gint n_taps,
+    gint n_phases)
+{
+  if (resampler->alloc_taps >= n_taps && resampler->alloc_phases >= n_phases)
+    return;
+
+  GST_DEBUG ("allocate bps %d n_taps %d n_phases %d", bps, n_taps, n_phases);
+
+  resampler->tmp_taps =
+      g_realloc_n (resampler->tmp_taps, n_taps, sizeof (gdouble));
+
+  resampler->taps_stride = GST_ROUND_UP_32 (bps * (n_taps + TAPS_OVERREAD));
+
+  g_free (resampler->taps_mem);
+  resampler->taps_mem =
+      g_malloc0 (n_phases * resampler->taps_stride + ALIGN - 1);
+  resampler->taps = MEM_ALIGN ((gint8 *) resampler->taps_mem, ALIGN);
+  resampler->alloc_taps = n_taps;
+  resampler->alloc_phases = n_phases;
+}
+
+static void
+alloc_cache_mem (GstAudioResampler * resampler, gint bps, gint n_taps,
+    gint n_phases)
+{
+  gsize phases_size;
+
+  resampler->tmp_taps =
+      g_realloc_n (resampler->tmp_taps, n_taps, sizeof (gdouble));
+
+  resampler->cached_taps_stride =
+      GST_ROUND_UP_32 (bps * (n_taps + TAPS_OVERREAD));
+
+  phases_size = sizeof (gpointer) * n_phases;
+
+  g_free (resampler->cached_taps_mem);
+  resampler->cached_taps_mem =
+      g_malloc0 (phases_size + n_phases * resampler->cached_taps_stride +
+      ALIGN - 1);
+  resampler->cached_taps =
+      MEM_ALIGN ((gint8 *) resampler->cached_taps_mem + phases_size, ALIGN);
+  resampler->cached_phases = resampler->cached_taps_mem;
+}
+
+static void
+setup_functions (GstAudioResampler * resampler)
+{
+  gint index, fidx;
+
+  index = resampler->format_index;
+
+  if (resampler->in_rate == resampler->out_rate)
+    resampler->resample = resample_funcs[index];
+  else {
+    switch (resampler->filter_interpolation) {
+      default:
+      case GST_AUDIO_RESAMPLER_FILTER_INTERPOLATION_NONE:
+        fidx = 0;
+        break;
+      case GST_AUDIO_RESAMPLER_FILTER_INTERPOLATION_LINEAR:
+        GST_DEBUG ("using linear interpolation for filter coefficients");
+        fidx = 0;
+        break;
+      case GST_AUDIO_RESAMPLER_FILTER_INTERPOLATION_CUBIC:
+        GST_DEBUG ("using cubic interpolation for filter coefficients");
+        fidx = 4;
+        break;
+    }
+    GST_DEBUG ("using filter interpolate function %d", index + fidx);
+    resampler->interpolate = interpolate_funcs[index + fidx];
+
+    switch (resampler->method) {
+      case GST_AUDIO_RESAMPLER_METHOD_NEAREST:
+        GST_DEBUG ("using nearest filter function");
+        break;
+      default:
+        index += 4;
+        switch (resampler->filter_mode) {
+          default:
+          case GST_AUDIO_RESAMPLER_FILTER_MODE_FULL:
+            GST_DEBUG ("using full filter function");
+            break;
+          case GST_AUDIO_RESAMPLER_FILTER_MODE_INTERPOLATED:
+            index += 4 + fidx;
+            GST_DEBUG ("using interpolated filter function");
+            break;
+        }
+        break;
+    }
+    GST_DEBUG ("using resample function %d", index);
+    resampler->resample = resample_funcs[index];
+  }
+}
+
+static void
+resampler_calculate_taps (GstAudioResampler * resampler)
+{
+  gint bps;
+  gint n_taps, oversample;
+  gint in_rate, out_rate;
+  gboolean scale = TRUE, sinc_table = FALSE;
+  GstAudioResamplerFilterInterpolation filter_interpolation;
+
+  switch (resampler->method) {
+    case GST_AUDIO_RESAMPLER_METHOD_NEAREST:
+      resampler->n_taps = 2;
+      scale = FALSE;
+      break;
+    case GST_AUDIO_RESAMPLER_METHOD_LINEAR:
+      resampler->n_taps = GET_OPT_N_TAPS (resampler->options, 2);
+      break;
+    case GST_AUDIO_RESAMPLER_METHOD_CUBIC:
+      resampler->n_taps = GET_OPT_N_TAPS (resampler->options, 4);
+      resampler->b = GET_OPT_CUBIC_B (resampler->options);
+      resampler->c = GET_OPT_CUBIC_C (resampler->options);;
+      break;
+    case GST_AUDIO_RESAMPLER_METHOD_BLACKMAN_NUTTALL:
+    {
+      const BlackmanQualityMap *q = &blackman_qualities[DEFAULT_QUALITY];
+      resampler->n_taps = GET_OPT_N_TAPS (resampler->options, q->n_taps);
+      resampler->cutoff = GET_OPT_CUTOFF (resampler->options, q->cutoff);
+      sinc_table = TRUE;
+      break;
+    }
+    case GST_AUDIO_RESAMPLER_METHOD_KAISER:
+      calculate_kaiser_params (resampler);
+      sinc_table = TRUE;
+      break;
+  }
+
+  in_rate = resampler->in_rate;
+  out_rate = resampler->out_rate;
+
+  if (out_rate < in_rate && scale) {
+    resampler->cutoff = resampler->cutoff * out_rate / in_rate;
+    resampler->n_taps =
+        gst_util_uint64_scale_int (resampler->n_taps, in_rate, out_rate);
+  }
+
+  if (sinc_table) {
+    resampler->n_taps = GST_ROUND_UP_8 (resampler->n_taps);
+    resampler->filter_mode = GET_OPT_FILTER_MODE (resampler->options);
+    resampler->filter_threshold =
+        GET_OPT_FILTER_MODE_THRESHOLD (resampler->options);
+    filter_interpolation = GET_OPT_FILTER_INTERPOLATION (resampler->options);
+
+  } else {
+    resampler->filter_mode = GST_AUDIO_RESAMPLER_FILTER_MODE_FULL;
+    filter_interpolation = GST_AUDIO_RESAMPLER_FILTER_INTERPOLATION_NONE;
+  }
+
+  /* calculate oversampling for interpolated filter */
+  if (filter_interpolation != GST_AUDIO_RESAMPLER_FILTER_INTERPOLATION_NONE) {
+    gint mult = 2;
+
+    oversample = GET_OPT_FILTER_OVERSAMPLE (resampler->options);
+    while (oversample > 1) {
+      if (mult * out_rate >= in_rate)
+        break;
+
+      mult *= 2;
+      oversample >>= 1;
+    }
+
+    switch (filter_interpolation) {
+      case GST_AUDIO_RESAMPLER_FILTER_INTERPOLATION_LINEAR:
+        oversample *= 11;
+        break;
+      default:
+        break;
+    }
+  } else {
+    oversample = 1;
+  }
+  resampler->oversample = oversample;
+
+  n_taps = resampler->n_taps;
+  bps = resampler->bps;
+
+  GST_LOG ("using n_taps %d cutoff %f oversample %d", n_taps, resampler->cutoff,
+      oversample);
+
+  if (resampler->filter_mode == GST_AUDIO_RESAMPLER_FILTER_MODE_AUTO) {
+    if (out_rate <= oversample
+        && !(resampler->flags & GST_AUDIO_RESAMPLER_FLAG_VARIABLE_RATE)) {
+      /* don't interpolate if we need to calculate at least the same amount
+       * of filter coefficients than the full table case */
+      resampler->filter_mode = GST_AUDIO_RESAMPLER_FILTER_MODE_FULL;
+      GST_DEBUG ("automatically selected full filter, %d <= %d", out_rate,
+          oversample);
+    } else if (bps * n_taps * out_rate < resampler->filter_threshold) {
+      /* switch to full filter when memory is below threshold */
+      resampler->filter_mode = GST_AUDIO_RESAMPLER_FILTER_MODE_FULL;
+      GST_DEBUG ("automatically selected full filter, memory %d <= %d",
+          bps * n_taps * out_rate, resampler->filter_threshold);
+    } else {
+      GST_DEBUG ("automatically selected interpolated filter");
+      resampler->filter_mode = GST_AUDIO_RESAMPLER_FILTER_MODE_INTERPOLATED;
+    }
+  }
+  /* interpolated table but no interpolation given, assume default */
+  if (resampler->filter_mode != GST_AUDIO_RESAMPLER_FILTER_MODE_FULL &&
+      filter_interpolation == GST_AUDIO_RESAMPLER_FILTER_INTERPOLATION_NONE)
+    filter_interpolation = DEFAULT_OPT_FILTER_INTERPOLATION;
+
+  resampler->filter_interpolation = filter_interpolation;
+
+  if (resampler->filter_mode == GST_AUDIO_RESAMPLER_FILTER_MODE_FULL &&
+      resampler->method != GST_AUDIO_RESAMPLER_METHOD_NEAREST) {
+    GST_DEBUG ("setting up filter cache");
+    resampler->n_phases = out_rate;
+    alloc_cache_mem (resampler, bps, n_taps, out_rate);
+  }
+
+  if (resampler->filter_interpolation !=
+      GST_AUDIO_RESAMPLER_FILTER_INTERPOLATION_NONE) {
+    gint i, isize;
+    gdouble x;
+    gpointer taps;
+
+    switch (resampler->filter_interpolation) {
+      default:
+      case GST_AUDIO_RESAMPLER_FILTER_INTERPOLATION_LINEAR:
+        GST_DEBUG ("using linear interpolation to build filter");
+        isize = 2;
+        break;
+      case GST_AUDIO_RESAMPLER_FILTER_INTERPOLATION_CUBIC:
+        GST_DEBUG ("using cubic interpolation to build filter");
+        isize = 4;
+        break;
+    }
+
+    alloc_taps_mem (resampler, bps, n_taps, oversample + isize);
+
+    for (i = 0; i < oversample + isize; i++) {
+      x = -(n_taps / 2) + i / (gdouble) oversample;
+      taps = (gint8 *) resampler->taps + i * resampler->taps_stride;
+      make_taps (resampler, taps, x, n_taps);
+    }
+  }
+}
+
+#define PRINT_TAPS(type,print)                          \
+G_STMT_START {                                          \
+  type sum = 0.0, *taps;                                \
+  type icoeff[4];                                       \
+  gint samp_index = 0, samp_phase = i;                  \
+                                                        \
+  taps = get_taps_##type##_full (resampler, &samp_index,\
+      &samp_phase, icoeff);                             \
+                                                        \
+  for (j = 0; j < n_taps; j++) {                        \
+    type tap = taps[j];                                 \
+    fprintf (stderr, "\t%" print " ", tap);             \
+    sum += tap;                                         \
+  }                                                     \
+  fprintf (stderr, "\t: sum %" print "\n", sum);        \
+} G_STMT_END
+
+static void
+resampler_dump (GstAudioResampler * resampler)
+{
+#if 0
+  gint i, n_taps, out_rate;
+  gint64 a;
+
+  out_rate = resampler->out_rate;
+  n_taps = resampler->n_taps;
+
+  fprintf (stderr, "out size %d, max taps %d\n", out_rate, n_taps);
+
+  a = g_get_monotonic_time ();
+
+  for (i = 0; i < out_rate; i++) {
+    gint j;
+
+    //fprintf (stderr, "%u: %d %d\t ", i, t->sample_inc, t->next_phase);
+    switch (resampler->format) {
+      case GST_AUDIO_FORMAT_F64:
+        PRINT_TAPS (gdouble, "f");
+        break;
+      case GST_AUDIO_FORMAT_F32:
+        PRINT_TAPS (gfloat, "f");
+        break;
+      case GST_AUDIO_FORMAT_S32:
+        PRINT_TAPS (gint32, "d");
+        break;
+      case GST_AUDIO_FORMAT_S16:
+        PRINT_TAPS (gint16, "d");
+        break;
+      default:
+        break;
+    }
+  }
+  fprintf (stderr, "time %" G_GUINT64_FORMAT "\n", g_get_monotonic_time () - a);
+#endif
+}
+
+/**
+ * gst_audio_resampler_options_set_quality:
+ * @method: a #GstAudioResamplerMethod
+ * @quality: the quality
+ * @in_rate: the input rate
+ * @out_rate: the output rate
+ * @options: a #GstStructure
+ *
+ * Set the parameters for resampling from @in_rate to @out_rate using @method
+ * for @quality in @options.
+ */
+void
+gst_audio_resampler_options_set_quality (GstAudioResamplerMethod method,
+    guint quality, gint in_rate, gint out_rate, GstStructure * options)
+{
+  g_return_if_fail (options != NULL);
+  g_return_if_fail (quality <= GST_AUDIO_RESAMPLER_QUALITY_MAX);
+  g_return_if_fail (in_rate > 0 && out_rate > 0);
+
+  switch (method) {
+    case GST_AUDIO_RESAMPLER_METHOD_NEAREST:
+      break;
+    case GST_AUDIO_RESAMPLER_METHOD_LINEAR:
+      gst_structure_set (options,
+          GST_AUDIO_RESAMPLER_OPT_N_TAPS, G_TYPE_INT, 2, NULL);
+      break;
+    case GST_AUDIO_RESAMPLER_METHOD_CUBIC:
+      gst_structure_set (options,
+          GST_AUDIO_RESAMPLER_OPT_N_TAPS, G_TYPE_INT, 4,
+          GST_AUDIO_RESAMPLER_OPT_CUBIC_B, G_TYPE_DOUBLE, DEFAULT_OPT_CUBIC_B,
+          GST_AUDIO_RESAMPLER_OPT_CUBIC_C, G_TYPE_DOUBLE, DEFAULT_OPT_CUBIC_C,
+          NULL);
+      break;
+    case GST_AUDIO_RESAMPLER_METHOD_BLACKMAN_NUTTALL:
+    {
+      const BlackmanQualityMap *map = &blackman_qualities[quality];
+      gst_structure_set (options,
+          GST_AUDIO_RESAMPLER_OPT_N_TAPS, G_TYPE_INT, map->n_taps,
+          GST_AUDIO_RESAMPLER_OPT_CUTOFF, G_TYPE_DOUBLE, map->cutoff, NULL);
+      break;
+    }
+    case GST_AUDIO_RESAMPLER_METHOD_KAISER:
+    {
+      const KaiserQualityMap *map = &kaiser_qualities[quality];
+      gdouble cutoff;
+
+      cutoff = map->cutoff;
+      if (out_rate < in_rate)
+        cutoff *= map->downsample_cutoff_factor;
+
+      gst_structure_set (options,
+          GST_AUDIO_RESAMPLER_OPT_CUTOFF, G_TYPE_DOUBLE, cutoff,
+          GST_AUDIO_RESAMPLER_OPT_STOP_ATTENUATION, G_TYPE_DOUBLE,
+          map->stopband_attenuation,
+          GST_AUDIO_RESAMPLER_OPT_TRANSITION_BANDWIDTH, G_TYPE_DOUBLE,
+          map->transition_bandwidth, NULL);
+      break;
+    }
+  }
+  gst_structure_set (options,
+      GST_AUDIO_RESAMPLER_OPT_FILTER_OVERSAMPLE, G_TYPE_INT,
+      oversample_qualities[quality], NULL);
+}
+
+/**
+ * gst_audio_resampler_new:
+ * @resampler: a #GstAudioResampler
+ * @method: a #GstAudioResamplerMethod
+ * @flags: #GstAudioResamplerFlags
+ * @in_rate: input rate
+ * @out_rate: output rate
+ * @options: extra options
+ *
+ * Make a new resampler.
+ *
+ * Returns: %TRUE on success
+ */
+GstAudioResampler *
+gst_audio_resampler_new (GstAudioResamplerMethod method,
+    GstAudioResamplerFlags flags,
+    GstAudioFormat format, gint channels,
+    gint in_rate, gint out_rate, GstStructure * options)
+{
+  gboolean non_interleaved;
+  GstAudioResampler *resampler;
+  const GstAudioFormatInfo *info;
+  GstStructure *def_options = NULL;
+
+  g_return_val_if_fail (method >= GST_AUDIO_RESAMPLER_METHOD_NEAREST
+      && method <= GST_AUDIO_RESAMPLER_METHOD_KAISER, NULL);
+  g_return_val_if_fail (format == GST_AUDIO_FORMAT_S16 ||
+      format == GST_AUDIO_FORMAT_S32 || format == GST_AUDIO_FORMAT_F32 ||
+      format == GST_AUDIO_FORMAT_F64, NULL);
+  g_return_val_if_fail (channels > 0, NULL);
+  g_return_val_if_fail (in_rate > 0, NULL);
+  g_return_val_if_fail (out_rate > 0, NULL);
+
+  audio_resampler_init ();
+
+  resampler = g_slice_new0 (GstAudioResampler);
+  resampler->method = method;
+  resampler->flags = flags;
+  resampler->format = format;
+  resampler->channels = channels;
+
+  switch (format) {
+    case GST_AUDIO_FORMAT_S16:
+      resampler->format_index = 0;
+      break;
+    case GST_AUDIO_FORMAT_S32:
+      resampler->format_index = 1;
+      break;
+    case GST_AUDIO_FORMAT_F32:
+      resampler->format_index = 2;
+      break;
+    case GST_AUDIO_FORMAT_F64:
+      resampler->format_index = 3;
+      break;
+    default:
+      g_assert_not_reached ();
+      break;
+  }
+
+  info = gst_audio_format_get_info (format);
+  resampler->bps = GST_AUDIO_FORMAT_INFO_WIDTH (info) / 8;
+  resampler->sbuf = g_malloc0 (sizeof (gpointer) * channels);
+
+  non_interleaved =
+      (resampler->flags & GST_AUDIO_RESAMPLER_FLAG_NON_INTERLEAVED_OUT);
+
+  /* we resample each channel separately */
+  resampler->blocks = resampler->channels;
+  resampler->inc = 1;
+  resampler->ostride = non_interleaved ? 1 : resampler->channels;
+  resampler->deinterleave = deinterleave_funcs[resampler->format_index];
+  resampler->convert_taps = convert_taps_funcs[resampler->format_index];
+
+  GST_DEBUG ("method %d, bps %d, channels %d", method, resampler->bps,
+      resampler->channels);
+
+  if (options == NULL) {
+    options = def_options =
+        gst_structure_new_empty ("GstAudioResampler.options");
+    gst_audio_resampler_options_set_quality (DEFAULT_RESAMPLER_METHOD,
+        GST_AUDIO_RESAMPLER_QUALITY_DEFAULT, in_rate, out_rate, options);
+  }
+
+  gst_audio_resampler_update (resampler, in_rate, out_rate, options);
+  gst_audio_resampler_reset (resampler);
+
+  if (def_options)
+    gst_structure_free (def_options);
+
+  return resampler;
+}
+
+/* make the buffers to hold the (deinterleaved) samples */
+static inline gpointer *
+get_sample_bufs (GstAudioResampler * resampler, gsize need)
+{
+  if (G_LIKELY (resampler->samples_len < need)) {
+    gint c, blocks = resampler->blocks;
+    gsize bytes, to_move = 0;
+    gint8 *ptr, *samples;
+
+    GST_LOG ("realloc %d -> %d", (gint) resampler->samples_len, (gint) need);
+
+    bytes = GST_ROUND_UP_N (need * resampler->bps * resampler->inc, ALIGN);
+
+    samples = g_malloc0 (blocks * bytes + ALIGN - 1);
+    ptr = MEM_ALIGN (samples, ALIGN);
+
+    /* if we had some data, move history */
+    if (resampler->samples_len > 0)
+      to_move = resampler->samples_avail * resampler->bps * resampler->inc;
+
+    /* set up new pointers */
+    for (c = 0; c < blocks; c++) {
+      memcpy (ptr + (c * bytes), resampler->sbuf[c], to_move);
+      resampler->sbuf[c] = ptr + (c * bytes);
+    }
+    g_free (resampler->samples);
+    resampler->samples = samples;
+    resampler->samples_len = need;
+  }
+  return resampler->sbuf;
+}
+
+/**
+ * gst_audio_resampler_reset:
+ * @resampler: a #GstAudioResampler
+ *
+ * Reset @resampler to the state it was when it was first created, discarding
+ * all sample history.
+ */
+void
+gst_audio_resampler_reset (GstAudioResampler * resampler)
+{
+  g_return_if_fail (resampler != NULL);
+
+  if (resampler->samples) {
+    gsize bytes;
+    gint c, blocks, bpf;
+
+    bpf = resampler->bps * resampler->inc;
+    bytes = (resampler->n_taps / 2) * bpf;
+    blocks = resampler->blocks;
+
+    for (c = 0; c < blocks; c++)
+      memset (resampler->sbuf[c], 0, bytes);
+  }
+  /* half of the filter is filled with 0 */
+  resampler->samp_index = 0;
+  resampler->samples_avail = resampler->n_taps / 2 - 1;
+}
+
+/**
+ * gst_audio_resampler_update:
+ * @resampler: a #GstAudioResampler
+ * @in_rate: new input rate
+ * @out_rate: new output rate
+ * @options: new options or %NULL
+ *
+ * Update the resampler parameters for @resampler. This function should
+ * not be called concurrently with any other function on @resampler.
+ *
+ * When @in_rate or @out_rate is 0, its value is unchanged.
+ *
+ * When @options is %NULL, the previously configured options are reused.
+ *
+ * Returns: %TRUE if the new parameters could be set
+ */
+gboolean
+gst_audio_resampler_update (GstAudioResampler * resampler,
+    gint in_rate, gint out_rate, GstStructure * options)
+{
+  gint gcd, samp_phase, old_n_taps;
+  gdouble max_error;
+
+  g_return_val_if_fail (resampler != NULL, FALSE);
+
+  if (in_rate <= 0)
+    in_rate = resampler->in_rate;
+  if (out_rate <= 0)
+    out_rate = resampler->out_rate;
+
+  if (resampler->out_rate > 0) {
+    GST_INFO ("old phase %d/%d", resampler->samp_phase, resampler->out_rate);
+    samp_phase =
+        gst_util_uint64_scale_int (resampler->samp_phase, out_rate,
+        resampler->out_rate);
+  } else
+    samp_phase = 0;
+
+  gcd = gst_util_greatest_common_divisor (in_rate, out_rate);
+
+  max_error = GET_OPT_MAX_PHASE_ERROR (resampler->options);
+
+  if (max_error < 1.0e-8) {
+    GST_INFO ("using exact phase divider");
+    gcd = gst_util_greatest_common_divisor (gcd, samp_phase);
+  } else {
+    while (gcd > 1) {
+      gdouble ph1 = (gdouble) samp_phase / out_rate;
+      gint factor = 2;
+
+      /* reduce the factor until we have a phase error of less than 10% */
+      gdouble ph2 = (gdouble) (samp_phase / gcd) / (out_rate / gcd);
+
+      if (fabs (ph1 - ph2) < max_error)
+        break;
+
+      while (gcd % factor != 0)
+        factor++;
+      gcd /= factor;
+
+      GST_INFO ("divide by factor %d, gcd %d", factor, gcd);
+    }
+  }
+
+  GST_INFO ("phase %d out_rate %d, in_rate %d, gcd %d", samp_phase, out_rate,
+      in_rate, gcd);
+
+  resampler->samp_phase = samp_phase /= gcd;
+  resampler->in_rate = in_rate /= gcd;
+  resampler->out_rate = out_rate /= gcd;
+
+  GST_INFO ("new phase %d/%d", resampler->samp_phase, resampler->out_rate);
+
+  resampler->samp_inc = in_rate / out_rate;
+  resampler->samp_frac = in_rate % out_rate;
+
+  if (options) {
+    GST_INFO ("have new options, reconfigure filter");
+
+    if (resampler->options)
+      gst_structure_free (resampler->options);
+    resampler->options = gst_structure_copy (options);
+
+    old_n_taps = resampler->n_taps;
+
+    resampler_calculate_taps (resampler);
+    resampler_dump (resampler);
+
+    if (old_n_taps > 0 && old_n_taps != resampler->n_taps) {
+      gpointer *sbuf;
+      gint i, bpf, bytes, soff, doff, diff;
+
+      sbuf = get_sample_bufs (resampler, resampler->n_taps);
+
+      bpf = resampler->bps * resampler->inc;
+      bytes = resampler->samples_avail * bpf;
+      soff = doff = resampler->samp_index * bpf;
+
+      diff = ((gint) resampler->n_taps - old_n_taps) / 2;
+
+      GST_DEBUG ("taps %d->%d, %d", old_n_taps, resampler->n_taps, diff);
+
+      if (diff < 0) {
+        /* diff < 0, decrease taps, adjust source */
+        soff += -diff * bpf;
+        bytes -= -diff * bpf;
+      } else {
+        /* diff > 0, increase taps, adjust dest */
+        doff += diff * bpf;
+      }
+
+      /* now shrink or enlarge the history buffer, when we enlarge we
+       * just leave the old samples in there. FIXME, probably do something better
+       * like mirror or fill with zeroes. */
+      for (i = 0; i < resampler->blocks; i++)
+        memmove ((gint8 *) sbuf[i] + doff, (gint8 *) sbuf[i] + soff, bytes);
+
+      resampler->samples_avail += diff;
+    }
+  } else if (resampler->filter_mode == GST_AUDIO_RESAMPLER_FILTER_MODE_FULL) {
+    GST_DEBUG ("setting up filter cache");
+    resampler->n_phases = resampler->out_rate;
+    alloc_cache_mem (resampler, resampler->bps, resampler->n_taps,
+        resampler->n_phases);
+  }
+  setup_functions (resampler);
+
+  return TRUE;
+}
+
+/**
+ * gst_audio_resampler_free:
+ * @resampler: a #GstAudioResampler
+ *
+ * Free a previously allocated #GstAudioResampler @resampler.
+ *
+ * Since: 1.6
+ */
+void
+gst_audio_resampler_free (GstAudioResampler * resampler)
+{
+  g_return_if_fail (resampler != NULL);
+
+  g_free (resampler->cached_taps_mem);
+  g_free (resampler->taps_mem);
+  g_free (resampler->tmp_taps);
+  g_free (resampler->samples);
+  g_free (resampler->sbuf);
+  if (resampler->options)
+    gst_structure_free (resampler->options);
+  g_slice_free (GstAudioResampler, resampler);
+}
+
+/**
+ * gst_audio_resampler_get_out_frames:
+ * @resampler: a #GstAudioResampler
+ * @in_frames: number of input frames
+ *
+ * Get the number of output frames that would be currently available when
+ * @in_frames are given to @resampler.
+ *
+ * Returns: The number of frames that would be availabe after giving
+ * @in_frames as input to @resampler.
+ */
+gsize
+gst_audio_resampler_get_out_frames (GstAudioResampler * resampler,
+    gsize in_frames)
+{
+  gsize need, avail, out;
+
+  g_return_val_if_fail (resampler != NULL, 0);
+
+  need = resampler->n_taps + resampler->samp_index + resampler->skip;
+  avail = resampler->samples_avail + in_frames;
+  GST_LOG ("need %d = %d + %d + %d, avail %d = %d + %d", (gint) need,
+      resampler->n_taps, resampler->samp_index, resampler->skip,
+      (gint) avail, (gint) resampler->samples_avail, (gint) in_frames);
+  if (avail < need)
+    return 0;
+
+  out = (avail - need) * resampler->out_rate;
+  if (out < resampler->samp_phase)
+    return 0;
+
+  out = ((out - resampler->samp_phase) / resampler->in_rate) + 1;
+  GST_LOG ("out %d = ((%d * %d - %d) / %d) + 1", (gint) out,
+      (gint) (avail - need), resampler->out_rate, resampler->samp_phase,
+      resampler->in_rate);
+
+  return out;
+}
+
+/**
+ * gst_audio_resampler_get_in_frames:
+ * @resampler: a #GstAudioResampler
+ * @out_frames: number of input frames
+ *
+ * Get the number of input frames that would currently be needed
+ * to produce @out_frames from @resampler.
+ *
+ * Returns: The number of input frames needed for producing
+ * @out_frames of data from @resampler.
+ */
+gsize
+gst_audio_resampler_get_in_frames (GstAudioResampler * resampler,
+    gsize out_frames)
+{
+  gsize in_frames;
+
+  g_return_val_if_fail (resampler != NULL, 0);
+
+  in_frames =
+      (resampler->samp_phase +
+      out_frames * resampler->samp_frac) / resampler->out_rate;
+  in_frames += out_frames * resampler->samp_inc;
+
+  return in_frames;
+}
+
+/**
+ * gst_audio_resampler_get_max_latency:
+ * @resampler: a #GstAudioResampler
+ *
+ * Get the maximum number of input samples that the resampler would
+ * need before producing output.
+ *
+ * Returns: the latency of @resampler as expressed in the number of
+ * frames.
+ */
+gsize
+gst_audio_resampler_get_max_latency (GstAudioResampler * resampler)
+{
+  g_return_val_if_fail (resampler != NULL, 0);
+
+  return resampler->n_taps / 2;
+}
+
+/**
+ * gst_audio_resampler_resample:
+ * @resampler: a #GstAudioResampler
+ * @in: input samples
+ * @in_frames: number of input frames
+ * @out: output samples
+ * @out_frames: number of output frames
+ *
+ * Perform resampling on @in_frames frames in @in and write @out_frames to @out.
+ *
+ * In case the samples are interleaved, @in and @out must point to an
+ * array with a single element pointing to a block of interleaved samples.
+ *
+ * If non-interleaved samples are used, @in and @out must point to an
+ * array with pointers to memory blocks, one for each channel.
+ *
+ * @in may be %NULL, in which case @in_frames of silence samples are pushed
+ * into the resampler.
+ *
+ * This function always produces @out_frames of output and consumes @in_frames of
+ * input. Use gst_audio_resampler_get_out_frames() and
+ * gst_audio_resampler_get_in_frames() to make sure @in_frames and @out_frames
+ * are matching and @in and @out point to enough memory.
+ */
+void
+gst_audio_resampler_resample (GstAudioResampler * resampler,
+    gpointer in[], gsize in_frames, gpointer out[], gsize out_frames)
+{
+  gsize samples_avail;
+  gsize need, consumed;
+  gpointer *sbuf;
+
+  /* do sample skipping */
+  if (G_UNLIKELY (resampler->skip >= in_frames)) {
+    /* we need tp skip all input */
+    resampler->skip -= in_frames;
+    return;
+  }
+  /* skip the last samples by advancing the sample index */
+  resampler->samp_index += resampler->skip;
+
+  samples_avail = resampler->samples_avail;
+
+  /* make sure we have enough space to copy our samples */
+  sbuf = get_sample_bufs (resampler, in_frames + samples_avail);
+
+  /* copy/deinterleave the samples */
+  resampler->deinterleave (resampler, sbuf, in, in_frames);
+
+  /* update new amount of samples in our buffer */
+  resampler->samples_avail = samples_avail += in_frames;
+
+  need = resampler->n_taps + resampler->samp_index;
+  if (G_UNLIKELY (samples_avail < need)) {
+    /* not enough samples to start */
+    return;
+  }
+
+  /* resample all channels */
+  resampler->resample (resampler, sbuf, samples_avail, out, out_frames,
+      &consumed);
+
+  GST_LOG ("in %" G_GSIZE_FORMAT ", avail %" G_GSIZE_FORMAT ", consumed %"
+      G_GSIZE_FORMAT, in_frames, samples_avail, consumed);
+
+  /* update pointers */
+  if (G_LIKELY (consumed > 0)) {
+    gssize left = samples_avail - consumed;
+    if (left > 0) {
+      /* we consumed part of our samples */
+      resampler->samples_avail = left;
+    } else {
+      /* we consumed all our samples, empty our buffers */
+      resampler->samples_avail = 0;
+      resampler->skip = -left;
+    }
+  }
+}
diff --git a/gst-libs/gst/audio/audio-resampler.h b/gst-libs/gst/audio/audio-resampler.h
new file mode 100644
index 0000000..1664e68
--- /dev/null
+++ b/gst-libs/gst/audio/audio-resampler.h
@@ -0,0 +1,235 @@
+/* GStreamer
+ * Copyright (C) <2015> 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_AUDIO_RESAMPLER_H__
+#define __GST_AUDIO_RESAMPLER_H__
+
+#include <gst/gst.h>
+#include <gst/audio/audio.h>
+
+G_BEGIN_DECLS
+
+typedef struct _GstAudioResampler GstAudioResampler;
+
+/**
+ * GST_AUDIO_RESAMPLER_OPT_CUTOFF
+ *
+ * G_TYPE_DOUBLE, Cutoff parameter for the filter. 0.940 is the default.
+ */
+#define GST_AUDIO_RESAMPLER_OPT_CUTOFF      "GstAudioResampler.cutoff"
+/**
+ * GST_AUDIO_RESAMPLER_OPT_STOP_ATTENUTATION
+ *
+ * G_TYPE_DOUBLE, stopband attenuation in debibels. The attenutation
+ * after the stopband for the kaiser window. 85 dB is the default.
+ */
+#define GST_AUDIO_RESAMPLER_OPT_STOP_ATTENUATION "GstAudioResampler.stop-attenutation"
+/**
+ * GST_AUDIO_RESAMPLER_OPT_TRANSITION_BANDWIDTH
+ *
+ * G_TYPE_DOUBLE, transition bandwidth. The width of the
+ * transition band for the kaiser window. 0.087 is the default.
+ */
+#define GST_AUDIO_RESAMPLER_OPT_TRANSITION_BANDWIDTH "GstAudioResampler.transition-bandwidth"
+
+/**
+ * GST_AUDIO_RESAMPLER_OPT_CUBIC_B:
+ *
+ * G_TYPE_DOUBLE, B parameter of the cubic filter.
+ * Values between 0.0 and 2.0 are accepted. 1.0 is the default.
+ *
+ * Below are some values of popular filters:
+ *                    B       C
+ * Hermite           0.0     0.0
+ * Spline            1.0     0.0
+ * Catmull-Rom       0.0     1/2
+ */
+#define GST_AUDIO_RESAMPLER_OPT_CUBIC_B      "GstAudioResampler.cubic-b"
+/**
+ * GST_AUDIO_RESAMPLER_OPT_CUBIC_C:
+ *
+ * G_TYPE_DOUBLE, C parameter of the cubic filter.
+ * Values between 0.0 and 2.0 are accepted. 0.0 is the default.
+ *
+ * See #GST_AUDIO_RESAMPLER_OPT_CUBIC_B for some more common values
+ */
+#define GST_AUDIO_RESAMPLER_OPT_CUBIC_C      "GstAudioResampler.cubic-c"
+
+/**
+ * GST_AUDIO_RESAMPLER_OPT_N_TAPS:
+ *
+ * G_TYPE_INT: the number of taps to use for the filter.
+ * 0 is the default and selects the taps automatically.
+ */
+#define GST_AUDIO_RESAMPLER_OPT_N_TAPS      "GstAudioResampler.n-taps"
+
+/**
+ * GstAudioResamplerFilterMode:
+ * @GST_AUDIO_RESAMPLER_FILTER_MODE_INTERPOLATED: Use interpolated filter tables. This
+ *     uses less memory but more CPU and is slightly less accurate but it allows for more
+ *     efficient variable rate resampling with gst_audio_resampler_update().
+ * @GST_AUDIO_RESAMPLER_FILTER_MODE_FULL: Use full filter table. This uses more memory
+ *     but less CPU.
+ * @GST_AUDIO_RESAMPLER_FILTER_MODE_AUTO: Automatically choose between interpolated
+ *     and full filter tables.
+ *
+ * Select for the filter tables should be set up.
+ */
+typedef enum {
+  GST_AUDIO_RESAMPLER_FILTER_MODE_INTERPOLATED = (0),
+  GST_AUDIO_RESAMPLER_FILTER_MODE_FULL,
+  GST_AUDIO_RESAMPLER_FILTER_MODE_AUTO,
+} GstAudioResamplerFilterMode;
+/**
+ * GST_AUDIO_RESAMPLER_OPT_FILTER_MODE:
+ *
+ * GST_TYPE_AUDIO_RESAMPLER_FILTER_MODE: how the filter tables should be
+ * constructed.
+ * GST_AUDIO_RESAMPLER_FILTER_MODE_AUTO is the default.
+ */
+#define GST_AUDIO_RESAMPLER_OPT_FILTER_MODE      "GstAudioResampler.filter-mode"
+/**
+ * GST_AUDIO_RESAMPLER_OPT_FILTER_MODE_THRESHOLD:
+ *
+ * G_TYPE_UINT: the amount of memory to use for full filter tables before
+ * switching to interpolated filter tables.
+ * 1048576 is the default.
+ */
+#define GST_AUDIO_RESAMPLER_OPT_FILTER_MODE_THRESHOLD "GstAudioResampler.filter-mode-threshold"
+
+/**
+ * GstAudioResamplerFilterInterpolation:
+ * @GST_AUDIO_RESAMPLER_FILTER_INTERPOLATION_NONE: no interpolation
+ * @GST_AUDIO_RESAMPLER_FILTER_INTERPOLATION_LINEAR: linear interpolation of the
+ *   filter coeficients.
+ * @GST_AUDIO_RESAMPLER_FILTER_INTERPOLATION_CUBIC: cubic interpolation of the
+ *   filter coeficients.
+ *
+ * The different filter interpolation methods.
+ */
+typedef enum {
+  GST_AUDIO_RESAMPLER_FILTER_INTERPOLATION_NONE = (0),
+  GST_AUDIO_RESAMPLER_FILTER_INTERPOLATION_LINEAR,
+  GST_AUDIO_RESAMPLER_FILTER_INTERPOLATION_CUBIC,
+} GstAudioResamplerFilterInterpolation;
+/**
+ * GST_AUDIO_RESAMPLER_OPT_FILTER_INTERPOLATION:
+ *
+ * GST_TYPE_AUDIO_RESAMPLER_INTERPOLATION: how the filter coeficients should be
+ *    interpolated.
+ * GST_AUDIO_RESAMPLER_FILTER_INTERPOLATION_CUBIC is default.
+ */
+#define GST_AUDIO_RESAMPLER_OPT_FILTER_INTERPOLATION "GstAudioResampler.filter-interpolation"
+/**
+ * GST_AUDIO_RESAMPLER_OPT_FILTER_OVERSAMPLE
+ *
+ * G_TYPE_UINT, oversampling to use when interpolating filters
+ * 8 is the default.
+ */
+#define GST_AUDIO_RESAMPLER_OPT_FILTER_OVERSAMPLE "GstAudioResampler.filter-oversample"
+
+/**
+ * GST_AUDIO_RESAMPLER_OPT_MAX_PHASE_ERROR:
+ *
+ * G_TYPE_DOUBLE: The maximum allowed phase error when switching sample
+ * rates.
+ * 0.1 is the default.
+ */
+#define GST_AUDIO_RESAMPLER_OPT_MAX_PHASE_ERROR "GstAudioResampler.max-phase-error"
+
+/**
+ * GstAudioResamplerMethod:
+ * @GST_AUDIO_RESAMPLER_METHOD_NEAREST: Duplicates the samples when
+ *    upsampling and drops when downsampling
+ * @GST_AUDIO_RESAMPLER_METHOD_LINEAR: Uses linear interpolation to reconstruct
+ *    missing samples and averaging to downsample
+ * @GST_AUDIO_RESAMPLER_METHOD_CUBIC: Uses cubic interpolation
+ * @GST_AUDIO_RESAMPLER_METHOD_BLACKMAN_NUTTALL: Uses Blackman-Nuttall windowed sinc interpolation
+ * @GST_AUDIO_RESAMPLER_METHOD_KAISER: Uses Kaiser windowed sinc interpolation
+ *
+ * Different subsampling and upsampling methods
+ *
+ * Since: 1.6
+ */
+typedef enum {
+  GST_AUDIO_RESAMPLER_METHOD_NEAREST,
+  GST_AUDIO_RESAMPLER_METHOD_LINEAR,
+  GST_AUDIO_RESAMPLER_METHOD_CUBIC,
+  GST_AUDIO_RESAMPLER_METHOD_BLACKMAN_NUTTALL,
+  GST_AUDIO_RESAMPLER_METHOD_KAISER
+} GstAudioResamplerMethod;
+
+/**
+ * GstAudioResamplerFlags:
+ * @GST_AUDIO_RESAMPLER_FLAG_NONE: no flags
+ * @GST_AUDIO_RESAMPLER_FLAG_NON_INTERLEAVED_IN: input samples are non-interleaved.
+ *    an array of blocks of samples, one for each channel, should be passed to the
+ *    resample function.
+ * @GST_AUDIO_RESAMPLER_FLAG_NON_INTERLEAVED_OUT: output samples are non-interleaved.
+ *    an array of blocks of samples, one for each channel, should be passed to the
+ *    resample function.
+ * @GST_AUDIO_RESAMPLER_FLAG_VARIABLE_RATE: optimize for dynamic updates of the sample
+ *    rates with gst_audio_resampler_update(). This will select an interpolating filter
+ *    when #GST_AUDIO_RESAMPLER_FILTER_MODE_AUTO is configured.
+ *
+ * Different resampler flags.
+ */
+typedef enum {
+  GST_AUDIO_RESAMPLER_FLAG_NONE                 = (0),
+  GST_AUDIO_RESAMPLER_FLAG_NON_INTERLEAVED_IN   = (1 << 0),
+  GST_AUDIO_RESAMPLER_FLAG_NON_INTERLEAVED_OUT  = (1 << 1),
+  GST_AUDIO_RESAMPLER_FLAG_VARIABLE_RATE        = (1 << 2),
+} GstAudioResamplerFlags;
+
+#define GST_AUDIO_RESAMPLER_QUALITY_MIN 0
+#define GST_AUDIO_RESAMPLER_QUALITY_MAX 10
+#define GST_AUDIO_RESAMPLER_QUALITY_DEFAULT 4
+
+void           gst_audio_resampler_options_set_quality   (GstAudioResamplerMethod method,
+                                                          guint quality,
+                                                          gint in_rate, gint out_rate,
+                                                          GstStructure *options);
+
+GstAudioResampler * gst_audio_resampler_new              (GstAudioResamplerMethod method,
+                                                          GstAudioResamplerFlags flags,
+                                                          GstAudioFormat format, gint channels,
+                                                          gint in_rate, gint out_rate,
+                                                          GstStructure *options);
+void                gst_audio_resampler_free             (GstAudioResampler *resampler);
+
+void                gst_audio_resampler_reset            (GstAudioResampler *resampler);
+
+gboolean            gst_audio_resampler_update           (GstAudioResampler *resampler,
+                                                          gint in_rate, gint out_rate,
+                                                          GstStructure *options);
+
+gsize               gst_audio_resampler_get_out_frames   (GstAudioResampler *resampler,
+                                                          gsize in_frames);
+gsize               gst_audio_resampler_get_in_frames    (GstAudioResampler *resampler,
+                                                          gsize out_frames);
+
+gsize               gst_audio_resampler_get_max_latency  (GstAudioResampler *resampler);
+
+void                gst_audio_resampler_resample         (GstAudioResampler * resampler,
+                                                          gpointer in[], gsize in_frames,
+                                                          gpointer out[], gsize out_frames);
+
+G_END_DECLS
+
+#endif /* __GST_AUDIO_RESAMPLER_H__ */
diff --git a/gst-libs/gst/audio/audio.c b/gst-libs/gst/audio/audio.c
index 5f3556f..a005e45 100644
--- a/gst-libs/gst/audio/audio.c
+++ b/gst-libs/gst/audio/audio.c
@@ -75,8 +75,8 @@
  * is not clipped
  */
 GstBuffer *
-gst_audio_buffer_clip (GstBuffer * buffer, GstSegment * segment, gint rate,
-    gint bpf)
+gst_audio_buffer_clip (GstBuffer * buffer, const GstSegment * segment,
+    gint rate, gint bpf)
 {
   GstBuffer *ret;
   GstClockTime timestamp = GST_CLOCK_TIME_NONE, duration = GST_CLOCK_TIME_NONE;
diff --git a/gst-libs/gst/audio/audio.h b/gst-libs/gst/audio/audio.h
index 0aa83bd..ac45b2e 100644
--- a/gst-libs/gst/audio/audio.h
+++ b/gst-libs/gst/audio/audio.h
@@ -30,6 +30,7 @@
 #include <gst/audio/audio-info.h>
 #include <gst/audio/audio-quantize.h>
 #include <gst/audio/audio-converter.h>
+#include <gst/audio/audio-resampler.h>
 
 G_BEGIN_DECLS
 
@@ -87,7 +88,8 @@
  * handling
  */
 
-GstBuffer *    gst_audio_buffer_clip     (GstBuffer *buffer, GstSegment *segment,
+GstBuffer *    gst_audio_buffer_clip     (GstBuffer *buffer,
+                                          const GstSegment *segment,
                                           gint rate, gint bpf);
 
 
diff --git a/gst-libs/gst/audio/dbesi0.c b/gst-libs/gst/audio/dbesi0.c
new file mode 100644
index 0000000..958eba7
--- /dev/null
+++ b/gst-libs/gst/audio/dbesi0.c
@@ -0,0 +1,147 @@
+/*  Copyright(C) 1996 Takuya OOURA
+
+You may use, copy, modify this code for any purpose and
+without fee.
+
+Package home:  http://www.kurims.kyoto-u.ac.jp/~ooura/bessel.html
+*/
+
+/* Bessel I_0(x) function in double precision */
+
+#include <math.h>
+
+static double
+dbesi0 (double x)
+{
+  int k;
+  double w, t, y;
+  static double a[65] = {
+    8.5246820682016865877e-11, 2.5966600546497407288e-9,
+    7.9689994568640180274e-8, 1.9906710409667748239e-6,
+    4.0312469446528002532e-5, 6.4499871606224265421e-4,
+    0.0079012345761930579108, 0.071111111109207045212,
+    0.444444444444724909, 1.7777777777777532045,
+    4.0000000000000011182, 3.99999999999999998,
+    1.0000000000000000001,
+    1.1520919130377195927e-10, 2.2287613013610985225e-9,
+    8.1903951930694585113e-8, 1.9821560631611544984e-6,
+    4.0335461940910133184e-5, 6.4495330974432203401e-4,
+    0.0079013012611467520626, 0.071111038160875566622,
+    0.44444450319062699316, 1.7777777439146450067,
+    4.0000000132337935071, 3.9999999968569015366,
+    1.0000000003426703174,
+    1.5476870780515238488e-10, 1.2685004214732975355e-9,
+    9.2776861851114223267e-8, 1.9063070109379044378e-6,
+    4.0698004389917945832e-5, 6.4370447244298070713e-4,
+    0.0079044749458444976958, 0.071105052411749363882,
+    0.44445280640924755082, 1.7777694934432109713,
+    4.0000055808824003386, 3.9999977081165740932,
+    1.0000004333949319118,
+    2.0675200625006793075e-10, -6.1689554705125681442e-10,
+    1.2436765915401571654e-7, 1.5830429403520613423e-6,
+    4.2947227560776583326e-5, 6.3249861665073441312e-4,
+    0.0079454472840953930811, 0.070994327785661860575,
+    0.44467219586283000332, 1.7774588182255374745,
+    4.0003038986252717972, 3.9998233869142057195,
+    1.0000472932961288324,
+    2.7475684794982708655e-10, -3.8991472076521332023e-9,
+    1.9730170483976049388e-7, 5.9651531561967674521e-7,
+    5.1992971474748995357e-5, 5.7327338675433770752e-4,
+    0.0082293143836530412024, 0.069990934858728039037,
+    0.44726764292723985087, 1.7726685170014087784,
+    4.0062907863712704432, 3.9952750700487845355,
+    1.0016354346654179322
+  };
+  static double b[70] = {
+    6.7852367144945531383e-8, 4.6266061382821826854e-7,
+    6.9703135812354071774e-6, 7.6637663462953234134e-5,
+    7.9113515222612691636e-4, 0.0073401204731103808981,
+    0.060677114958668837046, 0.43994941411651569622,
+    2.7420017097661750609, 14.289661921740860534,
+    59.820609640320710779, 188.78998681199150629,
+    399.8731367825601118, 427.56411572180478514,
+    1.8042097874891098754e-7, 1.2277164312044637357e-6,
+    1.8484393221474274861e-5, 2.0293995900091309208e-4,
+    0.0020918539850246207459, 0.019375315654033949297,
+    0.15985869016767185908, 1.1565260527420641724,
+    7.1896341224206072113, 37.354773811947484532,
+    155.80993164266268457, 489.5211371158540918,
+    1030.9147225169564806, 1093.5883545113746958,
+    4.8017305613187493564e-7, 3.261317843912380074e-6,
+    4.9073137508166159639e-5, 5.3806506676487583755e-4,
+    0.0055387918291051866561, 0.051223717488786549025,
+    0.42190298621367914765, 3.0463625987357355872,
+    18.895299447327733204, 97.915189029455461554,
+    407.13940115493494659, 1274.3088990480582632,
+    2670.9883037012547506, 2815.7166284662544712,
+    1.2789926338424623394e-6, 8.6718263067604918916e-6,
+    1.3041508821299929489e-4, 0.001428224737372747892,
+    0.014684070635768789378, 0.13561403190404185755,
+    1.1152592585977393953, 8.0387088559465389038,
+    49.761318895895479206, 257.2684232313529138,
+    1066.8543146269566231, 3328.3874581009636362,
+    6948.8586598121634874, 7288.4893398212481055,
+    3.409350368197032893e-6, 2.3079025203103376076e-5,
+    3.4691373283901830239e-4, 0.003794994977222908545,
+    0.038974209677945602145, 0.3594948380414878371,
+    2.9522878893539528226, 21.246564609514287056,
+    131.28727387146173141, 677.38107093296675421,
+    2802.3724744545046518, 8718.5731420798254081,
+    18141.348781638832286, 18948.925349296308859
+  };
+  static double c[45] = {
+    2.5568678676452702768e-15, 3.0393953792305924324e-14,
+    6.3343751991094840009e-13, 1.5041298011833009649e-11,
+    4.4569436918556541414e-10, 1.746393051427167951e-8,
+    1.0059224011079852317e-6, 1.0729838945088577089e-4,
+    0.05150322693642527738,
+    5.2527963991711562216e-15, 7.202118481421005641e-15,
+    7.2561421229904797156e-13, 1.482312146673104251e-11,
+    4.4602670450376245434e-10, 1.7463600061788679671e-8,
+    1.005922609132234756e-6, 1.0729838937545111487e-4,
+    0.051503226936437300716,
+    1.3365917359358069908e-14, -1.2932643065888544835e-13,
+    1.7450199447905602915e-12, 1.0419051209056979788e-11,
+    4.58047881980598326e-10, 1.7442405450073548966e-8,
+    1.0059461453281292278e-6, 1.0729837434500161228e-4,
+    0.051503226940658446941,
+    5.3771611477352308649e-14, -1.1396193006413731702e-12,
+    1.2858641335221653409e-11, -5.9802086004570057703e-11,
+    7.3666894305929510222e-10, 1.6731837150730356448e-8,
+    1.0070831435812128922e-6, 1.0729733111203704813e-4,
+    0.051503227360726294675,
+    3.7819492084858931093e-14, -4.8600496888588034879e-13,
+    1.6898350504817224909e-12, 4.5884624327524255865e-11,
+    1.2521615963377513729e-10, 1.8959658437754727957e-8,
+    1.0020716710561353622e-6, 1.073037119856927559e-4,
+    0.05150322383300230775
+  };
+
+  w = fabs (x);
+  if (w < 8.5) {
+    t = w * w * 0.0625;
+    k = 13 * ((int) t);
+    y = (((((((((((a[k] * t + a[k + 1]) * t +
+                                            a[k + 2]) * t + a[k + 3]) * t +
+                                    a[k + 4]) * t + a[k + 5]) * t + a[k +
+                                6]) * t + a[k + 7]) * t + a[k + 8]) * t + a[k +
+                    9]) * t + a[k + 10]) * t + a[k + 11]) * t + a[k + 12];
+  } else if (w < 12.5) {
+    k = (int) w;
+    t = w - k;
+    k = 14 * (k - 8);
+    y = ((((((((((((b[k] * t + b[k + 1]) * t + b[k + 2]) * t + b[k + 3]) * t +
+                                        b[k + 4]) * t + b[k + 5]) * t + b[k +
+                                    6]) * t + b[k + 7]) * t + b[k + 8]) * t +
+                    b[k + 9]) * t + b[k + 10]) * t + b[k + 11]) * t + b[k +
+            12]) * t + b[k + 13];
+  } else {
+    t = 60 / w;
+    k = 9 * ((int) t);
+    y = ((((((((c[k] * t + c[k + 1]) * t +
+                                c[k + 2]) * t + c[k + 3]) * t + c[k + 4]) * t +
+                    c[k + 5]) * t + c[k + 6]) * t + c[k + 7]) * t +
+        c[k + 8]) * sqrt (t) * exp (w);
+  }
+  return y;
+}
diff --git a/gst-libs/gst/audio/gstaudiocdsrc.c b/gst-libs/gst/audio/gstaudiocdsrc.c
index 5c4a056..79b7423 100644
--- a/gst-libs/gst/audio/gstaudiocdsrc.c
+++ b/gst-libs/gst/audio/gstaudiocdsrc.c
@@ -291,8 +291,8 @@
           G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS));
 #endif
 
-  gst_element_class_add_pad_template (element_class,
-      gst_static_pad_template_get (&gst_audio_cd_src_src_template));
+  gst_element_class_add_static_pad_template (element_class,
+      &gst_audio_cd_src_src_template);
 
 #if 0
   element_class->set_index = GST_DEBUG_FUNCPTR (gst_audio_cd_src_set_index);
diff --git a/gst-libs/gst/audio/gstaudiodecoder.c b/gst-libs/gst/audio/gstaudiodecoder.c
index 0083759..e583e2f 100644
--- a/gst-libs/gst/audio/gstaudiodecoder.c
+++ b/gst-libs/gst/audio/gstaudiodecoder.c
@@ -203,6 +203,7 @@
   gboolean do_plc;
   gboolean do_estimate_rate;
   gint max_errors;
+  GstCaps *allocation_caps;
   /* MT-protected (with LOCK) */
   GstClockTime min_latency;
   GstClockTime max_latency;
@@ -241,6 +242,8 @@
   gboolean force;
   /* input_segment are output_segment identical */
   gboolean in_out_segment_sync;
+  /* expecting the buffer with DISCONT flag */
+  gboolean expecting_discont_buf;
 
 
   /* input bps estimatation */
@@ -496,8 +499,10 @@
 
   if (full) {
     dec->priv->active = FALSE;
+    GST_OBJECT_LOCK (dec);
     dec->priv->bytes_in = 0;
     dec->priv->samples_out = 0;
+    GST_OBJECT_UNLOCK (dec);
     dec->priv->agg = -1;
     dec->priv->error_count = 0;
     gst_audio_decoder_clear_queues (dec);
@@ -524,11 +529,14 @@
     if (dec->priv->ctx.allocator)
       gst_object_unref (dec->priv->ctx.allocator);
 
+    GST_OBJECT_LOCK (dec);
     gst_caps_replace (&dec->priv->ctx.input_caps, NULL);
+    gst_caps_replace (&dec->priv->ctx.allocation_caps, NULL);
 
     memset (&dec->priv->ctx, 0, sizeof (dec->priv->ctx));
 
     gst_audio_info_init (&dec->priv->ctx.info);
+    GST_OBJECT_UNLOCK (dec);
     dec->priv->ctx.max_errors = GST_AUDIO_DECODER_MAX_ERRORS;
     dec->priv->ctx.had_output_data = FALSE;
     dec->priv->ctx.had_input_data = FALSE;
@@ -639,6 +647,8 @@
   klass = GST_AUDIO_DECODER_GET_CLASS (dec);
 
   caps = gst_audio_info_to_caps (&dec->priv->ctx.info);
+  if (dec->priv->ctx.allocation_caps == NULL)
+    dec->priv->ctx.allocation_caps = gst_caps_ref (caps);
 
   GST_DEBUG_OBJECT (dec, "setting src caps %" GST_PTR_FORMAT, caps);
 
@@ -673,7 +683,7 @@
     goto done;
   dec->priv->ctx.output_format_changed = FALSE;
 
-  query = gst_query_new_allocation (caps, TRUE);
+  query = gst_query_new_allocation (dec->priv->ctx.allocation_caps, TRUE);
   if (!gst_pad_peer_query (dec->srcpad, query)) {
     GST_DEBUG_OBJECT (dec, "didn't get downstream ALLOCATION hints");
   }
@@ -811,7 +821,9 @@
   }
 
   /* copy the GstAudioInfo */
+  GST_OBJECT_LOCK (dec);
   dec->priv->ctx.info = *info;
+  GST_OBJECT_UNLOCK (dec);
   dec->priv->ctx.output_format_changed = TRUE;
 
 done:
@@ -1382,8 +1394,10 @@
     }
   }
 
+  GST_OBJECT_LOCK (dec);
   priv->samples += samples;
   priv->samples_out += samples;
+  GST_OBJECT_UNLOCK (dec);
 
   /* we got data, so note things are looking up */
   if (G_UNLIKELY (dec->priv->error_count))
@@ -1444,7 +1458,9 @@
         GST_TIME_ARGS (GST_BUFFER_TIMESTAMP (buffer)));
     g_queue_push_tail (&dec->priv->frames, buffer);
     dec->priv->ctx.delay = dec->priv->frames.length;
+    GST_OBJECT_LOCK (dec);
     dec->priv->bytes_in += size;
+    GST_OBJECT_UNLOCK (dec);
   } else {
     GST_LOG_OBJECT (dec, "providing subclass with NULL frame");
   }
@@ -1883,9 +1899,6 @@
 
   dec = GST_AUDIO_DECODER (parent);
 
-  if (G_UNLIKELY (!gst_pad_has_current_caps (pad) && dec->priv->needs_format))
-    goto not_negotiated;
-
   GST_LOG_OBJECT (dec,
       "received buffer of size %" G_GSIZE_FORMAT " with ts %" GST_TIME_FORMAT
       ", duration %" GST_TIME_FORMAT, gst_buffer_get_size (buffer),
@@ -1894,9 +1907,13 @@
 
   GST_AUDIO_DECODER_STREAM_LOCK (dec);
 
+  if (G_UNLIKELY (dec->priv->ctx.input_caps == NULL && dec->priv->needs_format))
+    goto not_negotiated;
+
   dec->priv->ctx.had_input_data = TRUE;
 
-  if (GST_BUFFER_FLAG_IS_SET (buffer, GST_BUFFER_FLAG_DISCONT)) {
+  if (!dec->priv->expecting_discont_buf &&
+      GST_BUFFER_FLAG_IS_SET (buffer, GST_BUFFER_FLAG_DISCONT)) {
     gint64 samples, ts;
 
     /* track present position */
@@ -1917,6 +1934,7 @@
       dec->priv->samples = samples;
     }
   }
+  dec->priv->expecting_discont_buf = FALSE;
 
   if (dec->input_segment.rate > 0.0)
     ret = gst_audio_decoder_chain_forward (dec, buffer);
@@ -1930,6 +1948,7 @@
   /* ERRORS */
 not_negotiated:
   {
+    GST_AUDIO_DECODER_STREAM_UNLOCK (dec);
     GST_ELEMENT_ERROR (dec, CORE, NEGOTIATION, (NULL),
         ("decoder not initialized"));
     gst_buffer_unref (buffer);
@@ -1942,8 +1961,14 @@
 static inline gboolean
 gst_audio_decoder_do_byte (GstAudioDecoder * dec)
 {
-  return dec->priv->ctx.do_estimate_rate && dec->priv->ctx.info.bpf &&
+  gboolean ret;
+
+  GST_OBJECT_LOCK (dec);
+  ret = dec->priv->ctx.do_estimate_rate && dec->priv->ctx.info.bpf &&
       dec->priv->ctx.info.rate <= dec->priv->samples_out;
+  GST_OBJECT_UNLOCK (dec);
+
+  return ret;
 }
 
 /* Must be called holding the GST_AUDIO_DECODER_STREAM_LOCK */
@@ -1957,6 +1982,7 @@
   guint64 channel_mask = 0;
   gint caps_size;
   GstStructure *structure;
+  GstAudioInfo info;
 
   templcaps = gst_pad_get_pad_template_caps (dec->srcpad);
   caps = gst_pad_peer_query_caps (dec->srcpad, templcaps);
@@ -2003,10 +2029,18 @@
 
   for (i = 0; i < caps_size; i++) {
     structure = gst_caps_get_structure (caps, i);
-    gst_structure_fixate_field_nearest_int (structure,
-        "channels", GST_AUDIO_DEF_CHANNELS);
-    gst_structure_fixate_field_nearest_int (structure,
-        "rate", GST_AUDIO_DEF_RATE);
+    if (gst_structure_has_field (structure, "channels"))
+      gst_structure_fixate_field_nearest_int (structure,
+          "channels", GST_AUDIO_DEF_CHANNELS);
+    else
+      gst_structure_set (structure, "channels", G_TYPE_INT,
+          GST_AUDIO_DEF_CHANNELS, NULL);
+    if (gst_structure_has_field (structure, "rate"))
+      gst_structure_fixate_field_nearest_int (structure,
+          "rate", GST_AUDIO_DEF_RATE);
+    else
+      gst_structure_set (structure, "rate", G_TYPE_INT, GST_AUDIO_DEF_RATE,
+          NULL);
   }
   caps = gst_caps_fixate (caps);
   structure = gst_caps_get_structure (caps, 0);
@@ -2024,9 +2058,13 @@
     }
   }
 
-  if (!caps || !gst_audio_info_from_caps (&dec->priv->ctx.info, caps))
+  if (!caps || !gst_audio_info_from_caps (&info, caps))
     goto caps_error;
 
+  GST_OBJECT_LOCK (dec);
+  dec->priv->ctx.info = info;
+  GST_OBJECT_UNLOCK (dec);
+
   GST_INFO_OBJECT (dec,
       "Chose default caps %" GST_PTR_FORMAT " for initial gap", caps);
   gst_caps_unref (caps);
@@ -2090,6 +2128,7 @@
     /* best effort, not much error handling */
     gst_audio_decoder_handle_frame (dec, klass, buf);
     ret = TRUE;
+    dec->priv->expecting_discont_buf = TRUE;
     gst_event_unref (event);
   } else {
     GstFlowReturn flowret;
@@ -2518,77 +2557,6 @@
   return TRUE;
 }
 
-/*
- * gst_audio_encoded_audio_convert:
- * @fmt: audio format of the encoded audio
- * @bytes: number of encoded bytes
- * @samples: number of encoded samples
- * @src_format: source format
- * @src_value: source value
- * @dest_format: destination format
- * @dest_value: destination format
- *
- * Helper function to convert @src_value in @src_format to @dest_value in
- * @dest_format for encoded audio data.  Conversion is possible between
- * BYTE and TIME format by using estimated bitrate based on
- * @samples and @bytes (and @fmt).
- */
-/* FIXME: make gst_audio_encoded_audio_convert() public? */
-static gboolean
-gst_audio_encoded_audio_convert (GstAudioInfo * fmt,
-    gint64 bytes, gint64 samples, GstFormat src_format,
-    gint64 src_value, GstFormat * dest_format, gint64 * dest_value)
-{
-  gboolean res = FALSE;
-
-  g_return_val_if_fail (dest_format != NULL, FALSE);
-  g_return_val_if_fail (dest_value != NULL, FALSE);
-
-  if (G_UNLIKELY (src_format == *dest_format || src_value == 0 ||
-          src_value == -1)) {
-    if (dest_value)
-      *dest_value = src_value;
-    return TRUE;
-  }
-
-  if (samples == 0 || bytes == 0 || fmt->rate == 0) {
-    GST_DEBUG ("not enough metadata yet to convert");
-    goto exit;
-  }
-
-  bytes *= fmt->rate;
-
-  switch (src_format) {
-    case GST_FORMAT_BYTES:
-      switch (*dest_format) {
-        case GST_FORMAT_TIME:
-          *dest_value = gst_util_uint64_scale (src_value,
-              GST_SECOND * samples, bytes);
-          res = TRUE;
-          break;
-        default:
-          res = FALSE;
-      }
-      break;
-    case GST_FORMAT_TIME:
-      switch (*dest_format) {
-        case GST_FORMAT_BYTES:
-          *dest_value = gst_util_uint64_scale (src_value, bytes,
-              samples * GST_SECOND);
-          res = TRUE;
-          break;
-        default:
-          res = FALSE;
-      }
-      break;
-    default:
-      res = FALSE;
-  }
-
-exit:
-  return res;
-}
-
 /**
  * gst_audio_decoder_proxy_getcaps:
  * @decoder: a #GstAudioDecoder
@@ -2651,9 +2619,12 @@
       gint64 src_val, dest_val;
 
       gst_query_parse_convert (query, &src_fmt, &src_val, &dest_fmt, &dest_val);
-      if (!(res = gst_audio_encoded_audio_convert (&dec->priv->ctx.info,
-                  dec->priv->bytes_in, dec->priv->samples_out,
-                  src_fmt, src_val, &dest_fmt, &dest_val)))
+      GST_OBJECT_LOCK (dec);
+      res = __gst_audio_encoded_audio_convert (&dec->priv->ctx.info,
+          dec->priv->bytes_in, dec->priv->samples_out,
+          src_fmt, src_val, &dest_fmt, &dest_val);
+      GST_OBJECT_UNLOCK (dec);
+      if (!res)
         goto error;
       gst_query_set_convert (query, src_fmt, src_val, dest_fmt, dest_val);
       break;
@@ -2832,8 +2803,11 @@
       gint64 src_val, dest_val;
 
       gst_query_parse_convert (query, &src_fmt, &src_val, &dest_fmt, &dest_val);
-      if (!(res = gst_audio_info_convert (&dec->priv->ctx.info,
-                  src_fmt, src_val, dest_fmt, &dest_val)))
+      GST_OBJECT_LOCK (dec);
+      res = gst_audio_info_convert (&dec->priv->ctx.info,
+          src_fmt, src_val, dest_fmt, &dest_val);
+      GST_OBJECT_UNLOCK (dec);
+      if (!res)
         break;
       gst_query_set_convert (query, src_fmt, src_val, dest_fmt, dest_val);
       break;
@@ -3265,6 +3239,27 @@
 }
 
 /**
+ * gst_audio_decoder_set_allocation_caps:
+ * @dec: a #GstAudioDecoder
+ * @allocation_caps: (allow-none): a #GstCaps or %NULL
+ *
+ * Sets a caps in allocation query which are different from the set
+ * pad's caps. Use this function before calling
+ * gst_audio_decoder_negotiate(). Setting to %NULL the allocation
+ * query will use the caps from the pad.
+ *
+ * Since: 1.10
+ */
+void
+gst_audio_decoder_set_allocation_caps (GstAudioDecoder * dec,
+    GstCaps * allocation_caps)
+{
+  g_return_if_fail (GST_IS_AUDIO_DECODER (dec));
+
+  gst_caps_replace (&dec->priv->ctx.allocation_caps, allocation_caps);
+}
+
+/**
  * gst_audio_decoder_set_plc:
  * @dec: a #GstAudioDecoder
  * @enabled: new state
diff --git a/gst-libs/gst/audio/gstaudiodecoder.h b/gst-libs/gst/audio/gstaudiodecoder.h
index f364161..71e0ce7 100644
--- a/gst-libs/gst/audio/gstaudiodecoder.h
+++ b/gst-libs/gst/audio/gstaudiodecoder.h
@@ -360,6 +360,8 @@
                                                      gboolean        * sync,
                                                      gboolean        * eos);
 
+void              gst_audio_decoder_set_allocation_caps (GstAudioDecoder * dec,
+                                                         GstCaps         * allocation_caps);
 
 /* object properties */
 void              gst_audio_decoder_set_plc (GstAudioDecoder * dec,
diff --git a/gst-libs/gst/audio/gstaudioencoder.c b/gst-libs/gst/audio/gstaudioencoder.c
index bdabaab..6b6d9ad 100644
--- a/gst-libs/gst/audio/gstaudioencoder.c
+++ b/gst-libs/gst/audio/gstaudioencoder.c
@@ -194,6 +194,7 @@
 
   /* output */
   GstCaps *caps;
+  GstCaps *allocation_caps;
   gboolean output_caps_changed;
   gint frame_samples_min, frame_samples_max;
   gint frame_max;
@@ -478,8 +479,10 @@
 
   if (full) {
     enc->priv->active = FALSE;
+    GST_OBJECT_LOCK (enc);
     enc->priv->samples_in = 0;
     enc->priv->bytes_out = 0;
+    GST_OBJECT_UNLOCK (enc);
 
     g_list_foreach (enc->priv->ctx.headers, (GFunc) gst_buffer_unref, NULL);
     g_list_free (enc->priv->ctx.headers);
@@ -490,11 +493,14 @@
       gst_object_unref (enc->priv->ctx.allocator);
     enc->priv->ctx.allocator = NULL;
 
+    GST_OBJECT_LOCK (enc);
     gst_caps_replace (&enc->priv->ctx.input_caps, NULL);
     gst_caps_replace (&enc->priv->ctx.caps, NULL);
+    gst_caps_replace (&enc->priv->ctx.allocation_caps, NULL);
 
     memset (&enc->priv->ctx, 0, sizeof (enc->priv->ctx));
     gst_audio_info_init (&enc->priv->ctx.info);
+    GST_OBJECT_UNLOCK (enc);
 
     if (enc->priv->upstream_tags) {
       gst_tag_list_unref (enc->priv->upstream_tags);
@@ -909,7 +915,9 @@
           GST_BUFFER_OFFSET_END (tmpbuf) = priv->bytes_out + size;
         }
 
+        GST_OBJECT_LOCK (enc);
         priv->bytes_out += size;
+        GST_OBJECT_UNLOCK (enc);
 
         gst_pad_push (enc->srcpad, tmpbuf);
       }
@@ -971,7 +979,9 @@
       }
     }
 
+    GST_OBJECT_LOCK (enc);
     priv->bytes_out += size;
+    GST_OBJECT_UNLOCK (enc);
 
     if (G_UNLIKELY (priv->discont)) {
       GST_LOG_OBJECT (enc, "marking discont");
@@ -1116,7 +1126,9 @@
     /* mark this already as consumed,
      * which it should be when subclass gives us data in exchange for samples */
     priv->offset += need;
+    GST_OBJECT_LOCK (enc);
     priv->samples_in += need / ctx->info.bpf;
+    GST_OBJECT_UNLOCK (enc);
 
     /* subclass might not want to be bothered with leftover data,
      * so take care of that here if so, otherwise pass along */
@@ -1428,8 +1440,10 @@
     res = klass->set_format (enc, &state);
 
   if (res) {
+    GST_OBJECT_LOCK (enc);
     ctx->info = state;
     gst_caps_replace (&enc->priv->ctx.input_caps, caps);
+    GST_OBJECT_UNLOCK (enc);
   } else {
     /* invalidate state to ensure no casual carrying on */
     GST_DEBUG_OBJECT (enc, "subclass did not accept format");
@@ -1715,8 +1729,11 @@
       gint64 src_val, dest_val;
 
       gst_query_parse_convert (query, &src_fmt, &src_val, &dest_fmt, &dest_val);
-      if (!(res = gst_audio_info_convert (&enc->priv->ctx.info,
-                  src_fmt, src_val, dest_fmt, &dest_val)))
+      GST_OBJECT_LOCK (enc);
+      res = gst_audio_info_convert (&enc->priv->ctx.info,
+          src_fmt, src_val, dest_fmt, &dest_val);
+      GST_OBJECT_UNLOCK (enc);
+      if (!res)
         goto error;
       gst_query_set_convert (query, src_fmt, src_val, dest_fmt, dest_val);
       res = TRUE;
@@ -1848,77 +1865,6 @@
   return TRUE;
 }
 
-/*
- * gst_audio_encoded_audio_convert:
- * @fmt: audio format of the encoded audio
- * @bytes: number of encoded bytes
- * @samples: number of encoded samples
- * @src_format: source format
- * @src_value: source value
- * @dest_format: destination format
- * @dest_value: destination format
- *
- * Helper function to convert @src_value in @src_format to @dest_value in
- * @dest_format for encoded audio data.  Conversion is possible between
- * BYTE and TIME format by using estimated bitrate based on
- * @samples and @bytes (and @fmt).
- */
-/* FIXME: make gst_audio_encoded_audio_convert() public? */
-static gboolean
-gst_audio_encoded_audio_convert (GstAudioInfo * fmt,
-    gint64 bytes, gint64 samples, GstFormat src_format,
-    gint64 src_value, GstFormat * dest_format, gint64 * dest_value)
-{
-  gboolean res = FALSE;
-
-  g_return_val_if_fail (dest_format != NULL, FALSE);
-  g_return_val_if_fail (dest_value != NULL, FALSE);
-
-  if (G_UNLIKELY (src_format == *dest_format || src_value == 0 ||
-          src_value == -1)) {
-    if (dest_value)
-      *dest_value = src_value;
-    return TRUE;
-  }
-
-  if (samples == 0 || bytes == 0 || fmt->rate == 0) {
-    GST_DEBUG ("not enough metadata yet to convert");
-    goto exit;
-  }
-
-  bytes *= fmt->rate;
-
-  switch (src_format) {
-    case GST_FORMAT_BYTES:
-      switch (*dest_format) {
-        case GST_FORMAT_TIME:
-          *dest_value = gst_util_uint64_scale (src_value,
-              GST_SECOND * samples, bytes);
-          res = TRUE;
-          break;
-        default:
-          res = FALSE;
-      }
-      break;
-    case GST_FORMAT_TIME:
-      switch (*dest_format) {
-        case GST_FORMAT_BYTES:
-          *dest_value = gst_util_uint64_scale (src_value, bytes,
-              samples * GST_SECOND);
-          res = TRUE;
-          break;
-        default:
-          res = FALSE;
-      }
-      break;
-    default:
-      res = FALSE;
-  }
-
-exit:
-  return res;
-}
-
 /* FIXME ? are any of these queries (other than latency) an encoder's business
  * also, the conversion stuff might seem to make sense, but seems to not mind
  * segment stuff etc at all
@@ -1988,9 +1934,12 @@
       gint64 src_val, dest_val;
 
       gst_query_parse_convert (query, &src_fmt, &src_val, &dest_fmt, &dest_val);
-      if (!(res = gst_audio_encoded_audio_convert (&enc->priv->ctx.info,
-                  enc->priv->bytes_out, enc->priv->samples_in, src_fmt, src_val,
-                  &dest_fmt, &dest_val)))
+      GST_OBJECT_LOCK (enc);
+      res = __gst_audio_encoded_audio_convert (&enc->priv->ctx.info,
+          enc->priv->bytes_out, enc->priv->samples_in, src_fmt, src_val,
+          &dest_fmt, &dest_val);
+      GST_OBJECT_UNLOCK (enc);
+      if (!res)
         break;
       gst_query_set_convert (query, src_fmt, src_val, dest_fmt, dest_val);
       break;
@@ -2387,6 +2336,27 @@
 }
 
 /**
+ * gst_audio_encoder_set_allocation_caps:
+ * @enc: a #GstAudioEncoder
+ * @allocation_caps: (allow-none): a #GstCaps or %NULL
+ *
+ * Sets a caps in allocation query which are different from the set
+ * pad's caps. Use this function before calling
+ * gst_audio_encoder_negotiate(). Setting to %NULL the allocation
+ * query will use the caps from the pad.
+ *
+ * Since: 1.10
+ */
+void
+gst_audio_encoder_set_allocation_caps (GstAudioEncoder * enc,
+    GstCaps * allocation_caps)
+{
+  g_return_if_fail (GST_IS_AUDIO_ENCODER (enc));
+
+  gst_caps_replace (&enc->priv->ctx.allocation_caps, allocation_caps);
+}
+
+/**
  * gst_audio_encoder_set_mark_granule:
  * @enc: a #GstAudioEncoder
  * @enabled: new state
@@ -2717,6 +2687,8 @@
   klass = GST_AUDIO_ENCODER_GET_CLASS (enc);
 
   caps = enc->priv->ctx.caps;
+  if (enc->priv->ctx.allocation_caps == NULL)
+    enc->priv->ctx.allocation_caps = gst_caps_ref (caps);
 
   GST_DEBUG_OBJECT (enc, "Setting srcpad caps %" GST_PTR_FORMAT, caps);
 
@@ -2751,7 +2723,7 @@
     goto done;
   enc->priv->ctx.output_caps_changed = FALSE;
 
-  query = gst_query_new_allocation (caps, TRUE);
+  query = gst_query_new_allocation (enc->priv->ctx.allocation_caps, TRUE);
   if (!gst_pad_peer_query (enc->srcpad, query)) {
     GST_DEBUG_OBJECT (enc, "didn't get downstream ALLOCATION hints");
   }
@@ -2837,7 +2809,7 @@
   return ret;
 }
 
-/*
+/**
  * gst_audio_encoder_set_output_format:
  * @enc: a #GstAudioEncoder
  * @caps: (transfer none): #GstCaps
@@ -2845,7 +2817,7 @@
  * Configure output caps on the srcpad of @enc.
  *
  * Returns: %TRUE on success.
- **/
+ */
 gboolean
 gst_audio_encoder_set_output_format (GstAudioEncoder * enc, GstCaps * caps)
 {
diff --git a/gst-libs/gst/audio/gstaudioencoder.h b/gst-libs/gst/audio/gstaudioencoder.h
index 47ca340..a186bd5 100644
--- a/gst-libs/gst/audio/gstaudioencoder.h
+++ b/gst-libs/gst/audio/gstaudioencoder.h
@@ -295,6 +295,9 @@
 void            gst_audio_encoder_set_headers (GstAudioEncoder * enc,
                                                GList           * headers);
 
+void            gst_audio_encoder_set_allocation_caps (GstAudioEncoder * enc,
+                                                       GstCaps         * allocation_caps);
+
 /* object properties */
 
 void            gst_audio_encoder_set_mark_granule (GstAudioEncoder * enc,
diff --git a/gst-libs/gst/audio/gstaudioringbuffer.c b/gst-libs/gst/audio/gstaudioringbuffer.c
index 14f3c22..a8c81a1 100644
--- a/gst-libs/gst/audio/gstaudioringbuffer.c
+++ b/gst-libs/gst/audio/gstaudioringbuffer.c
@@ -1940,6 +1940,23 @@
   g_atomic_int_set (&buf->may_start, allowed);
 }
 
+/* GST_AUDIO_CHANNEL_POSITION_NONE is used for position-less
+ * mutually exclusive channels. In this case we should not attempt
+ * to do any reordering.
+ */
+static gboolean
+position_less_channels (const GstAudioChannelPosition * pos, guint channels)
+{
+  guint i;
+
+  for (i = 0; i < channels; i++) {
+    if (pos[i] != GST_AUDIO_CHANNEL_POSITION_NONE)
+      return FALSE;
+  }
+
+  return TRUE;
+}
+
 /**
  * gst_audio_ring_buffer_set_channel_positions:
  * @buf: the #GstAudioRingBuffer
@@ -1965,6 +1982,11 @@
   if (memcmp (position, to, channels * sizeof (to[0])) == 0)
     return;
 
+  if (position_less_channels (position, channels)) {
+    GST_LOG_OBJECT (buf, "position-less channels, no need to reorder");
+    return;
+  }
+
   buf->need_reorder = FALSE;
   if (!gst_audio_get_channel_reorder_map (channels, position, to,
           buf->channel_reorder_map))
@@ -1972,6 +1994,19 @@
 
   for (i = 0; i < channels; i++) {
     if (buf->channel_reorder_map[i] != i) {
+#ifndef GST_DISABLE_GST_DEBUG
+      {
+        gchar *tmp1, *tmp2;
+
+        tmp1 = gst_audio_channel_positions_to_string (position, channels);
+        tmp2 = gst_audio_channel_positions_to_string (to, channels);
+        GST_LOG_OBJECT (buf, "may have to reorder channels: %s -> %s", tmp1,
+            tmp2);
+        g_free (tmp1);
+        g_free (tmp2);
+      }
+#endif /* GST_DISABLE_GST_DEBUG */
+
       buf->need_reorder = TRUE;
       break;
     }
diff --git a/gst-libs/gst/audio/gstaudioutilsprivate.c b/gst-libs/gst/audio/gstaudioutilsprivate.c
index 870bcd6..27b056b 100644
--- a/gst-libs/gst/audio/gstaudioutilsprivate.c
+++ b/gst-libs/gst/audio/gstaudioutilsprivate.c
@@ -142,3 +142,73 @@
 
   return fcaps;
 }
+
+/**
+ * __gst_audio_encoded_audio_convert:
+ * @fmt: audio format of the encoded audio
+ * @bytes: number of encoded bytes
+ * @samples: number of encoded samples
+ * @src_format: source format
+ * @src_value: source value
+ * @dest_format: destination format
+ * @dest_value: destination format
+ *
+ * Helper function to convert @src_value in @src_format to @dest_value in
+ * @dest_format for encoded audio data.  Conversion is possible between
+ * BYTE and TIME format by using estimated bitrate based on
+ * @samples and @bytes (and @fmt).
+ */
+gboolean
+__gst_audio_encoded_audio_convert (GstAudioInfo * fmt,
+    gint64 bytes, gint64 samples, GstFormat src_format,
+    gint64 src_value, GstFormat * dest_format, gint64 * dest_value)
+{
+  gboolean res = FALSE;
+
+  g_return_val_if_fail (dest_format != NULL, FALSE);
+  g_return_val_if_fail (dest_value != NULL, FALSE);
+
+  if (G_UNLIKELY (src_format == *dest_format || src_value == 0 ||
+          src_value == -1)) {
+    if (dest_value)
+      *dest_value = src_value;
+    return TRUE;
+  }
+
+  if (samples == 0 || bytes == 0 || fmt->rate == 0) {
+    GST_DEBUG ("not enough metadata yet to convert");
+    goto exit;
+  }
+
+  bytes *= fmt->rate;
+
+  switch (src_format) {
+    case GST_FORMAT_BYTES:
+      switch (*dest_format) {
+        case GST_FORMAT_TIME:
+          *dest_value = gst_util_uint64_scale (src_value,
+              GST_SECOND * samples, bytes);
+          res = TRUE;
+          break;
+        default:
+          res = FALSE;
+      }
+      break;
+    case GST_FORMAT_TIME:
+      switch (*dest_format) {
+        case GST_FORMAT_BYTES:
+          *dest_value = gst_util_uint64_scale (src_value, bytes,
+              samples * GST_SECOND);
+          res = TRUE;
+          break;
+        default:
+          res = FALSE;
+      }
+      break;
+    default:
+      res = FALSE;
+  }
+
+exit:
+  return res;
+}
diff --git a/gst-libs/gst/audio/gstaudioutilsprivate.h b/gst-libs/gst/audio/gstaudioutilsprivate.h
index a7cf96b..976765f 100644
--- a/gst-libs/gst/audio/gstaudioutilsprivate.h
+++ b/gst-libs/gst/audio/gstaudioutilsprivate.h
@@ -36,6 +36,12 @@
                                             GstPad * srcpad, GstCaps * initial_caps,
                                             GstCaps * filter);
 
+G_GNUC_INTERNAL
+gboolean __gst_audio_encoded_audio_convert (GstAudioInfo * fmt, gint64 bytes,
+                                            gint64 samples, GstFormat src_format,
+                                            gint64 src_value, GstFormat * dest_format,
+                                            gint64 * dest_value);
+
 G_END_DECLS
 
 #endif
diff --git a/gst-libs/gst/fft/Makefile.am b/gst-libs/gst/fft/Makefile.am
index 3e24aaf..0d70422 100644
--- a/gst-libs/gst/fft/Makefile.am
+++ b/gst-libs/gst/fft/Makefile.am
@@ -54,6 +54,7 @@
 GstFft-@GST_API_VERSION@.gir: $(INTROSPECTION_SCANNER) libgstfft-@GST_API_VERSION@.la
 	$(AM_V_GEN)PKG_CONFIG_PATH="$(GST_PKG_CONFIG_PATH)" GI_SCANNER_DISABLE_CACHE=yes\
 		GST_PLUGIN_SYSTEM_PATH_1_0="" GST_PLUGIN_PATH_1_0="" GST_REGISTRY_UPDATE=no \
+		CPPFLAGS="$(CPPFLAGS)" CFLAGS="$(CFLAGS)" LDFLAGS="$(LDFLAGS)" CC="$(CC)" PKG_CONFIG="$(PKG_CONFIG)" DLLTOOL="$(DLLTOOL)" \
 		$(INTROSPECTION_SCANNER) -v --namespace GstFft \
 		--nsversion=@GST_API_VERSION@ \
 		--identifier-prefix=Gst \
diff --git a/gst-libs/gst/fft/Makefile.in b/gst-libs/gst/fft/Makefile.in
index 0508c73..43b64bb 100644
--- a/gst-libs/gst/fft/Makefile.in
+++ b/gst-libs/gst/fft/Makefile.in
@@ -1103,6 +1103,7 @@
 @HAVE_INTROSPECTION_TRUE@GstFft-@GST_API_VERSION@.gir: $(INTROSPECTION_SCANNER) libgstfft-@GST_API_VERSION@.la
 @HAVE_INTROSPECTION_TRUE@	$(AM_V_GEN)PKG_CONFIG_PATH="$(GST_PKG_CONFIG_PATH)" GI_SCANNER_DISABLE_CACHE=yes\
 @HAVE_INTROSPECTION_TRUE@		GST_PLUGIN_SYSTEM_PATH_1_0="" GST_PLUGIN_PATH_1_0="" GST_REGISTRY_UPDATE=no \
+@HAVE_INTROSPECTION_TRUE@		CPPFLAGS="$(CPPFLAGS)" CFLAGS="$(CFLAGS)" LDFLAGS="$(LDFLAGS)" CC="$(CC)" PKG_CONFIG="$(PKG_CONFIG)" DLLTOOL="$(DLLTOOL)" \
 @HAVE_INTROSPECTION_TRUE@		$(INTROSPECTION_SCANNER) -v --namespace GstFft \
 @HAVE_INTROSPECTION_TRUE@		--nsversion=@GST_API_VERSION@ \
 @HAVE_INTROSPECTION_TRUE@		--identifier-prefix=Gst \
diff --git a/gst-libs/gst/pbutils/Makefile.am b/gst-libs/gst/pbutils/Makefile.am
index 88c79e7..c5a25ca 100644
--- a/gst-libs/gst/pbutils/Makefile.am
+++ b/gst-libs/gst/pbutils/Makefile.am
@@ -76,6 +76,7 @@
 GstPbutils-@GST_API_VERSION@.gir: $(INTROSPECTION_SCANNER) libgstpbutils-@GST_API_VERSION@.la
 	$(AM_V_GEN)PKG_CONFIG_PATH="$(GST_PKG_CONFIG_PATH)" GI_SCANNER_DISABLE_CACHE=yes\
 		GST_PLUGIN_SYSTEM_PATH_1_0="" GST_PLUGIN_PATH_1_0="" GST_REGISTRY_UPDATE=no \
+		CPPFLAGS="$(CPPFLAGS)" CFLAGS="$(CFLAGS)" LDFLAGS="$(LDFLAGS)" CC="$(CC)" PKG_CONFIG="$(PKG_CONFIG)" DLLTOOL="$(DLLTOOL)" \
 		$(INTROSPECTION_SCANNER) -v --namespace GstPbutils \
 		--nsversion=@GST_API_VERSION@ \
 		--identifier-prefix=Gst \
diff --git a/gst-libs/gst/pbutils/Makefile.in b/gst-libs/gst/pbutils/Makefile.in
index 45d10c4..7a62c92 100644
--- a/gst-libs/gst/pbutils/Makefile.in
+++ b/gst-libs/gst/pbutils/Makefile.in
@@ -1210,6 +1210,7 @@
 @HAVE_INTROSPECTION_TRUE@GstPbutils-@GST_API_VERSION@.gir: $(INTROSPECTION_SCANNER) libgstpbutils-@GST_API_VERSION@.la
 @HAVE_INTROSPECTION_TRUE@	$(AM_V_GEN)PKG_CONFIG_PATH="$(GST_PKG_CONFIG_PATH)" GI_SCANNER_DISABLE_CACHE=yes\
 @HAVE_INTROSPECTION_TRUE@		GST_PLUGIN_SYSTEM_PATH_1_0="" GST_PLUGIN_PATH_1_0="" GST_REGISTRY_UPDATE=no \
+@HAVE_INTROSPECTION_TRUE@		CPPFLAGS="$(CPPFLAGS)" CFLAGS="$(CFLAGS)" LDFLAGS="$(LDFLAGS)" CC="$(CC)" PKG_CONFIG="$(PKG_CONFIG)" DLLTOOL="$(DLLTOOL)" \
 @HAVE_INTROSPECTION_TRUE@		$(INTROSPECTION_SCANNER) -v --namespace GstPbutils \
 @HAVE_INTROSPECTION_TRUE@		--nsversion=@GST_API_VERSION@ \
 @HAVE_INTROSPECTION_TRUE@		--identifier-prefix=Gst \
diff --git a/gst-libs/gst/pbutils/codec-utils.c b/gst-libs/gst/pbutils/codec-utils.c
index af1a788..1fe2dc1 100644
--- a/gst-libs/gst/pbutils/codec-utils.c
+++ b/gst-libs/gst/pbutils/codec-utils.c
@@ -110,6 +110,59 @@
 }
 
 /**
+ * gst_codec_utils_aac_get_sample_rate:
+ * @audio_config: a pointer to the AudioSpecificConfig as specified in the
+ *                Elementary Stream Descriptor (esds) in ISO/IEC 14496-1.
+ * @len: Length of @audio_config in bytes
+ *
+ * Translates the sample rate index found in AAC headers to the actual sample
+ * rate.
+ *
+ * Returns: The sample rate if sr_idx is valid, 0 otherwise.
+ *
+ * Since 1.10
+ */
+guint
+gst_codec_utils_aac_get_sample_rate (const guint8 * audio_config, guint len)
+{
+  guint rate_index;
+
+  if (len < 2)
+    return 0;
+
+  rate_index = ((audio_config[0] & 0x7) << 1) | ((audio_config[1] & 0x80) >> 7);
+  return gst_codec_utils_aac_get_sample_rate_from_index (rate_index);
+}
+
+/**
+ * gst_codec_utils_aac_get_channels:
+ * @audio_config: a pointer to the AudioSpecificConfig as specified in the
+ *                Elementary Stream Descriptor (esds) in ISO/IEC 14496-1.
+ *
+ * Returns the channels of the given AAC stream.
+ *
+ * Returns: The channels or 0 if the channel could not be determined.
+ *
+ * Since 1.10
+ */
+guint
+gst_codec_utils_aac_get_channels (const guint8 * audio_config, guint len)
+{
+  guint channels;
+
+  if (len < 2)
+    return 0;
+
+  channels = (audio_config[1] & 0x7f) >> 3;
+  if (channels > 0 && channels < 7)
+    return channels;
+  else if (channels == 7)
+    return 8;
+  else
+    return 0;
+}
+
+/**
  * gst_codec_utils_aac_get_profile:
  * @audio_config: a pointer to the AudioSpecificConfig as specified in the
  *                Elementary Stream Descriptor (esds) in ISO/IEC 14496-1 (see
diff --git a/gst-libs/gst/pbutils/codec-utils.h b/gst-libs/gst/pbutils/codec-utils.h
index e1def83..979abaf 100644
--- a/gst-libs/gst/pbutils/codec-utils.h
+++ b/gst-libs/gst/pbutils/codec-utils.h
@@ -35,6 +35,10 @@
 
 const gchar * gst_codec_utils_aac_get_level   (const guint8 * audio_config, guint len);
 
+guint         gst_codec_utils_aac_get_sample_rate (const guint8 * audio_config, guint len);
+
+guint         gst_codec_utils_aac_get_channels (const guint8 * audio_config, guint len);
+
 gboolean      gst_codec_utils_aac_caps_set_level_and_profile (GstCaps      * caps,
                                                               const guint8 * audio_config,
                                                               guint          len);
diff --git a/gst-libs/gst/pbutils/descriptions.c b/gst-libs/gst/pbutils/descriptions.c
index 83aa413..cdea6b7 100644
--- a/gst-libs/gst/pbutils/descriptions.c
+++ b/gst-libs/gst/pbutils/descriptions.c
@@ -287,6 +287,7 @@
   {"application/x-teletext", "Teletext", 0, ""},
   {"application/x-kate", "Kate", 0, ""},
   {"subtitle/x-kate", N_("Kate subtitle format"), FLAG_SUB, ""},
+  {"application/x-subtitle-vtt", N_("WebVTT subtitle format"), FLAG_SUB, ""},
   {"subpicture/x-dvb", "DVB subtitles", FLAG_SUB, ""},
   {"subpicture/x-pgs", "PGS subtitles", FLAG_SUB, ""},
   {"subpicture/x-xsub", "XSUB subtitles", FLAG_SUB, ""},
diff --git a/gst-libs/gst/pbutils/gstaudiovisualizer.c b/gst-libs/gst/pbutils/gstaudiovisualizer.c
index 39b6b8a..717c2be 100644
--- a/gst-libs/gst/pbutils/gstaudiovisualizer.c
+++ b/gst-libs/gst/pbutils/gstaudiovisualizer.c
@@ -1036,7 +1036,7 @@
   guint64 dist, ts;
   guint avail, sbpf;
   gpointer adata;
-  gint bps, channels, rate;
+  gint bpf, rate;
 
   scope = GST_AUDIO_VISUALIZER (parent);
   klass = GST_AUDIO_VISUALIZER_CLASS (G_OBJECT_GET_CLASS (scope));
@@ -1056,11 +1056,10 @@
     }
   }
 
-  channels = GST_AUDIO_INFO_CHANNELS (&scope->ainfo);
   rate = GST_AUDIO_INFO_RATE (&scope->ainfo);
-  bps = GST_AUDIO_INFO_BPS (&scope->ainfo);
+  bpf = GST_AUDIO_INFO_BPF (&scope->ainfo);
 
-  if (bps == 0) {
+  if (bpf == 0) {
     ret = GST_FLOW_NOT_NEGOTIATED;
     goto beach;
   }
@@ -1070,7 +1069,7 @@
   g_mutex_lock (&scope->priv->config_lock);
 
   /* this is what we want */
-  sbpf = scope->req_spf * channels * sizeof (gint16);
+  sbpf = scope->req_spf * bpf;
 
   inbuf = scope->priv->inbuf;
   /* FIXME: the timestamp in the adapter would be different */
@@ -1087,8 +1086,7 @@
     ts = gst_adapter_prev_pts (scope->priv->adapter, &dist);
     if (GST_CLOCK_TIME_IS_VALID (ts)) {
       /* convert bytes to time */
-      dist /= bps;
-      ts += gst_util_uint64_scale_int (dist, GST_SECOND, rate);
+      ts += gst_util_uint64_scale_int (dist, GST_SECOND, rate * bpf);
     }
 
     /* check for QoS, don't compute buffers that are known to be late */
@@ -1135,7 +1133,7 @@
     ret = default_prepare_output_buffer (scope, &outbuf);
     g_mutex_lock (&scope->priv->config_lock);
     /* recheck as the value could have changed */
-    sbpf = scope->req_spf * channels * sizeof (gint16);
+    sbpf = scope->req_spf * bpf;
 
     /* no buffer allocated, we don't care why. */
     if (ret != GST_FLOW_OK)
@@ -1145,7 +1143,7 @@
     if (GST_CLOCK_TIME_IS_VALID (ts))
       gst_object_sync_values (GST_OBJECT (scope), ts);
 
-    GST_BUFFER_TIMESTAMP (outbuf) = ts;
+    GST_BUFFER_PTS (outbuf) = ts;
     GST_BUFFER_DURATION (outbuf) = scope->priv->frame_duration;
 
     /* this can fail as the data size we need could have changed */
@@ -1193,7 +1191,7 @@
 
   skip:
     /* recheck as the value could have changed */
-    sbpf = scope->req_spf * channels * sizeof (gint16);
+    sbpf = scope->req_spf * bpf;
     GST_LOG_OBJECT (scope, "avail: %u, bpf: %u", avail, sbpf);
     /* we want to take less or more, depending on spf : req_spf */
     if (avail - sbpf >= sbpf) {
diff --git a/gst-libs/gst/pbutils/gstdiscoverer-types.c b/gst-libs/gst/pbutils/gstdiscoverer-types.c
index e743430..60a49cc 100644
--- a/gst-libs/gst/pbutils/gstdiscoverer-types.c
+++ b/gst-libs/gst/pbutils/gstdiscoverer-types.c
@@ -410,6 +410,8 @@
         stream_map);
   }
   ret->duration = ptr->duration;
+  ret->result = ptr->result;
+  ret->seekable = ptr->seekable;
   if (ptr->misc)
     ret->misc = gst_structure_copy (ptr->misc);
 
diff --git a/gst-libs/gst/pbutils/gstdiscoverer.c b/gst-libs/gst/pbutils/gstdiscoverer.c
index af2046a..45de5f5 100644
--- a/gst-libs/gst/pbutils/gstdiscoverer.c
+++ b/gst-libs/gst/pbutils/gstdiscoverer.c
@@ -2200,11 +2200,14 @@
   /* FIXME: implement TOC support */
   GVariant *stream_variant;
   GVariant *variant;
-  GstDiscovererStreamInfo *sinfo = gst_discoverer_info_get_stream_info (info);
+  GstDiscovererStreamInfo *sinfo;
   GVariant *wrapper;
 
   g_return_val_if_fail (GST_IS_DISCOVERER_INFO (info), NULL);
+  g_return_val_if_fail (gst_discoverer_info_get_result (info) ==
+      GST_DISCOVERER_OK, NULL);
 
+  sinfo = gst_discoverer_info_get_stream_info (info);
   stream_variant = gst_discoverer_info_to_variant_recurse (sinfo, flags);
   variant =
       g_variant_new ("(vv)", _serialize_info (info, flags), stream_variant);
diff --git a/gst-libs/gst/riff/Makefile.am b/gst-libs/gst/riff/Makefile.am
index 83d83cb..5fa26e5 100644
--- a/gst-libs/gst/riff/Makefile.am
+++ b/gst-libs/gst/riff/Makefile.am
@@ -34,6 +34,7 @@
 #GstRiff-@GST_API_VERSION@.gir: $(INTROSPECTION_SCANNER) libgstriff-@GST_API_VERSION@.la
 #	$(AM_V_GEN)PKG_CONFIG_PATH="$(GST_PKG_CONFIG_PATH)" GI_SCANNER_DISABLE_CACHE=yes\
 #		GST_PLUGIN_SYSTEM_PATH_1_0="" GST_PLUGIN_PATH_1_0="" GST_REGISTRY_UPDATE=no \
+#		CPPFLAGS="$(CPPFLAGS)" CFLAGS="$(CFLAGS)" LDFLAGS="$(LDFLAGS)" CC="$(CC)" PKG_CONFIG="$(PKG_CONFIG)" DLLTOOL="$(DLLTOOL)" \
 #		$(INTROSPECTION_SCANNER) -v --namespace GstRiff \
 #		--nsversion=@GST_API_VERSION@ \
 #		--strip-prefix=Gst \
diff --git a/gst-libs/gst/riff/Makefile.in b/gst-libs/gst/riff/Makefile.in
index a996d5f..81c6d1d 100644
--- a/gst-libs/gst/riff/Makefile.in
+++ b/gst-libs/gst/riff/Makefile.in
@@ -874,6 +874,7 @@
 #GstRiff-@GST_API_VERSION@.gir: $(INTROSPECTION_SCANNER) libgstriff-@GST_API_VERSION@.la
 #	$(AM_V_GEN)PKG_CONFIG_PATH="$(GST_PKG_CONFIG_PATH)" GI_SCANNER_DISABLE_CACHE=yes\
 #		GST_PLUGIN_SYSTEM_PATH_1_0="" GST_PLUGIN_PATH_1_0="" GST_REGISTRY_UPDATE=no \
+#		CPPFLAGS="$(CPPFLAGS)" CFLAGS="$(CFLAGS)" LDFLAGS="$(LDFLAGS)" CC="$(CC)" PKG_CONFIG="$(PKG_CONFIG)" DLLTOOL="$(DLLTOOL)" \
 #		$(INTROSPECTION_SCANNER) -v --namespace GstRiff \
 #		--nsversion=@GST_API_VERSION@ \
 #		--strip-prefix=Gst \
diff --git a/gst-libs/gst/rtp/Makefile.am b/gst-libs/gst/rtp/Makefile.am
index fed44a8..04b1f90 100644
--- a/gst-libs/gst/rtp/Makefile.am
+++ b/gst-libs/gst/rtp/Makefile.am
@@ -52,6 +52,7 @@
 GstRtp-@GST_API_VERSION@.gir: $(INTROSPECTION_SCANNER) libgstrtp-@GST_API_VERSION@.la
 	$(AM_V_GEN)PKG_CONFIG_PATH="$(GST_PKG_CONFIG_PATH)" GI_SCANNER_DISABLE_CACHE=yes\
 		GST_PLUGIN_SYSTEM_PATH_1_0="" GST_PLUGIN_PATH_1_0="" GST_REGISTRY_UPDATE=no \
+		CPPFLAGS="$(CPPFLAGS)" CFLAGS="$(CFLAGS)" LDFLAGS="$(LDFLAGS)" CC="$(CC)" PKG_CONFIG="$(PKG_CONFIG)" DLLTOOL="$(DLLTOOL)" \
 		$(INTROSPECTION_SCANNER) -v --namespace GstRtp \
 		--nsversion=@GST_API_VERSION@ \
 		--identifier-prefix=Gst \
diff --git a/gst-libs/gst/rtp/Makefile.in b/gst-libs/gst/rtp/Makefile.in
index 23df853..bc1a112 100644
--- a/gst-libs/gst/rtp/Makefile.in
+++ b/gst-libs/gst/rtp/Makefile.in
@@ -1131,6 +1131,7 @@
 @HAVE_INTROSPECTION_TRUE@GstRtp-@GST_API_VERSION@.gir: $(INTROSPECTION_SCANNER) libgstrtp-@GST_API_VERSION@.la
 @HAVE_INTROSPECTION_TRUE@	$(AM_V_GEN)PKG_CONFIG_PATH="$(GST_PKG_CONFIG_PATH)" GI_SCANNER_DISABLE_CACHE=yes\
 @HAVE_INTROSPECTION_TRUE@		GST_PLUGIN_SYSTEM_PATH_1_0="" GST_PLUGIN_PATH_1_0="" GST_REGISTRY_UPDATE=no \
+@HAVE_INTROSPECTION_TRUE@		CPPFLAGS="$(CPPFLAGS)" CFLAGS="$(CFLAGS)" LDFLAGS="$(LDFLAGS)" CC="$(CC)" PKG_CONFIG="$(PKG_CONFIG)" DLLTOOL="$(DLLTOOL)" \
 @HAVE_INTROSPECTION_TRUE@		$(INTROSPECTION_SCANNER) -v --namespace GstRtp \
 @HAVE_INTROSPECTION_TRUE@		--nsversion=@GST_API_VERSION@ \
 @HAVE_INTROSPECTION_TRUE@		--identifier-prefix=Gst \
diff --git a/gst-libs/gst/rtp/gstrtcpbuffer.c b/gst-libs/gst/rtp/gstrtcpbuffer.c
index e5e4ca7..e540576 100644
--- a/gst-libs/gst/rtp/gstrtcpbuffer.c
+++ b/gst-libs/gst/rtp/gstrtcpbuffer.c
@@ -956,6 +956,9 @@
       packet->type == GST_RTCP_TYPE_SR, FALSE);
   g_return_val_if_fail (packet->rtcp != NULL, FALSE);
   g_return_val_if_fail (packet->rtcp->map.flags & GST_MAP_WRITE, FALSE);
+  /* if profile-specific extension is added, fail for now!? */
+  g_return_val_if_fail (gst_rtcp_packet_get_profile_specific_ext_length (packet)
+      == 0, FALSE);
 
   if (packet->count >= GST_RTCP_MAX_RB_COUNT)
     goto no_space;
@@ -1040,6 +1043,156 @@
 
 
 /**
+ * gst_rtcp_packet_set_profile_specific_ext:
+ * @packet: a valid SR or RR #GstRTCPPacket
+ * @data: (array length=len) (transfer none): profile-specific data
+ * @len: length of the profile-specific data in bytes
+ *
+ * Add profile-specific extension @data to @packet. If @packet already
+ * contains profile-specific extension @data will be appended to the existing
+ * extension.
+ *
+ * Returns: %TRUE if the profile specific extension data was added.
+ */
+gboolean
+gst_rtcp_packet_add_profile_specific_ext (GstRTCPPacket * packet,
+    const guint8 * data, guint len)
+{
+  guint8 *bdata;
+  guint maxsize, offset;
+
+  g_return_val_if_fail (packet != NULL, FALSE);
+  g_return_val_if_fail (packet->type == GST_RTCP_TYPE_RR ||
+      packet->type == GST_RTCP_TYPE_SR, FALSE);
+  g_return_val_if_fail (packet->rtcp != NULL, FALSE);
+  g_return_val_if_fail (packet->rtcp->map.flags & GST_MAP_WRITE, FALSE);
+  g_return_val_if_fail ((len & 0x03) == 0, FALSE);
+
+  bdata = packet->rtcp->map.data;
+  maxsize = packet->rtcp->map.maxsize;
+
+  /* skip to the end of the packet */
+  offset = packet->offset + (packet->length << 2) + 4;
+
+  /* we need 'len' free bytes now */
+  if (G_UNLIKELY (offset + len > maxsize))
+    return FALSE;
+
+  memcpy (&bdata[offset], data, len);
+  packet->length += len >> 2;
+  bdata[packet->offset + 2] = (packet->length) >> 8;
+  bdata[packet->offset + 3] = (packet->length) & 0xff;
+  packet->rtcp->map.size += len;
+
+  return TRUE;
+}
+
+/**
+ * gst_rtcp_packet_get_profile_specific_ext_length:
+ * @packet: a valid SR or RR #GstRTCPPacket
+ *
+ * Returns: The number of 32-bit words containing profile-specific extension
+ *          data from @packet.
+ */
+guint16
+gst_rtcp_packet_get_profile_specific_ext_length (GstRTCPPacket * packet)
+{
+  guint pse_offset = 2;
+
+  g_return_val_if_fail (packet != NULL, 0);
+  g_return_val_if_fail (packet->type == GST_RTCP_TYPE_RR ||
+      packet->type == GST_RTCP_TYPE_SR, 0);
+  g_return_val_if_fail (packet->rtcp != NULL, 0);
+  g_return_val_if_fail (packet->rtcp->map.flags & GST_MAP_READ, 0);
+
+  if (packet->type == GST_RTCP_TYPE_SR)
+    pse_offset += 5;
+  pse_offset += (packet->count * 6);
+
+  if (pse_offset <= (packet->length + 1))
+    return packet->length + 1 - pse_offset;
+
+  /* This means that the packet is invalid! */
+  return 0;
+}
+
+/**
+ * gst_rtcp_packet_get_profile_specific_ext:
+ * @packet: a valid SR or RR #GstRTCPPacket
+ * @data: (out) (array length=len) (transfer none): result profile-specific data
+ * @len: (out): result length of the profile-specific data
+ *
+ * Returns: %TRUE if there was valid data.
+ */
+gboolean
+gst_rtcp_packet_get_profile_specific_ext (GstRTCPPacket * packet,
+    guint8 ** data, guint * len)
+{
+  guint16 pse_len;
+
+  g_return_val_if_fail (packet != NULL, FALSE);
+  g_return_val_if_fail (packet->type == GST_RTCP_TYPE_RR ||
+      packet->type == GST_RTCP_TYPE_SR, FALSE);
+  g_return_val_if_fail (packet->rtcp != NULL, FALSE);
+  g_return_val_if_fail (packet->rtcp->map.flags & GST_MAP_READ, FALSE);
+
+  pse_len = gst_rtcp_packet_get_profile_specific_ext_length (packet);
+  if (pse_len > 0) {
+    if (len != NULL)
+      *len = pse_len * sizeof (guint32);
+    if (data != NULL) {
+      *data = packet->rtcp->map.data;
+      *data += packet->offset;
+      *data += ((packet->length + 1 - pse_len) * sizeof (guint32));
+    }
+
+    return TRUE;
+  }
+
+  return FALSE;
+}
+
+/**
+ * gst_rtcp_packet_copy_profile_specific_ext:
+ * @packet: a valid SR or RR #GstRTCPPacket
+ * @data: (out) (array length=len): result profile-specific data
+ * @len: (out): length of the profile-specific extension data
+ *
+ * The profile-specific extension data is copied into a new allocated
+ * memory area @data. This must be freed with g_free() after usage.
+ *
+ * Returns: %TRUE if there was valid data.
+ */
+gboolean
+gst_rtcp_packet_copy_profile_specific_ext (GstRTCPPacket * packet,
+    guint8 ** data, guint * len)
+{
+  guint16 pse_len;
+
+  g_return_val_if_fail (packet != NULL, FALSE);
+  g_return_val_if_fail (packet->type == GST_RTCP_TYPE_RR ||
+      packet->type == GST_RTCP_TYPE_SR, FALSE);
+  g_return_val_if_fail (packet->rtcp != NULL, FALSE);
+  g_return_val_if_fail (packet->rtcp->map.flags & GST_MAP_READ, FALSE);
+
+  pse_len = gst_rtcp_packet_get_profile_specific_ext_length (packet);
+  if (pse_len > 0) {
+    if (len != NULL)
+      *len = pse_len * sizeof (guint32);
+    if (data != NULL) {
+      guint8 *ptr = packet->rtcp->map.data + packet->offset;
+      ptr += ((packet->length + 1 - pse_len) * sizeof (guint32));
+      *data = g_memdup (ptr, pse_len * sizeof (guint32));
+    }
+
+    return TRUE;
+  }
+
+  return FALSE;
+}
+
+
+/**
  * gst_rtcp_packet_sdes_get_item_count:
  * @packet: a valid SDES #GstRTCPPacket
  *
@@ -2158,3 +2311,232 @@
 
   return data + 12;
 }
+
+/**
+ * gst_rtcp_packet_app_set_subtype:
+ * @packet: a valid APP #GstRTCPPacket
+ * @subtype: subtype of the packet
+ *
+ * Set the subtype field of the APP @packet.
+ *
+ * Since: 1.10
+ **/
+void
+gst_rtcp_packet_app_set_subtype (GstRTCPPacket * packet, guint8 subtype)
+{
+  guint8 *data;
+
+  g_return_if_fail (packet != NULL);
+  g_return_if_fail (packet->type == GST_RTCP_TYPE_APP);
+  g_return_if_fail (packet->rtcp != NULL);
+  g_return_if_fail (packet->rtcp->map.flags & GST_MAP_WRITE);
+
+  data = packet->rtcp->map.data + packet->offset;
+  data[0] = (data[0] & 0xe0) | subtype;
+}
+
+/**
+ * gst_rtcp_packet_app_get_subtype:
+ * @packet: a valid APP #GstRTCPPacket
+ *
+ * Get the subtype field of the APP @packet.
+ *
+ * Returns: The subtype.
+ *
+ * Since: 1.10
+ */
+guint8
+gst_rtcp_packet_app_get_subtype (GstRTCPPacket * packet)
+{
+  guint8 *data;
+
+  g_return_val_if_fail (packet != NULL, 0);
+  g_return_val_if_fail (packet->type == GST_RTCP_TYPE_APP, 0);
+  g_return_val_if_fail (packet->rtcp != NULL, 0);
+  g_return_val_if_fail (packet->rtcp->map.flags & GST_MAP_READ, 0);
+
+  data = packet->rtcp->map.data + packet->offset;
+
+  return data[0] & 0x1f;
+}
+
+/**
+ * gst_rtcp_packet_app_set_ssrc:
+ * @packet: a valid APP #GstRTCPPacket
+ * @ssrc: SSRC/CSRC of the packet
+ *
+ * Set the SSRC/CSRC field of the APP @packet.
+ *
+ * Since: 1.10
+ */
+void
+gst_rtcp_packet_app_set_ssrc (GstRTCPPacket * packet, guint32 ssrc)
+{
+  guint8 *data;
+
+  g_return_if_fail (packet != NULL);
+  g_return_if_fail (packet->type == GST_RTCP_TYPE_APP);
+  g_return_if_fail (packet->rtcp != NULL);
+  g_return_if_fail (packet->rtcp->map.flags & GST_MAP_WRITE);
+
+  data = packet->rtcp->map.data + packet->offset + 4;
+  GST_WRITE_UINT32_BE (data, ssrc);
+}
+
+/**
+ * gst_rtcp_packet_app_get_ssrc:
+ * @packet: a valid APP #GstRTCPPacket
+ *
+ * Get the SSRC/CSRC field of the APP @packet.
+ *
+ * Returns: The SSRC/CSRC.
+ *
+ * Since: 1.10
+ */
+guint32
+gst_rtcp_packet_app_get_ssrc (GstRTCPPacket * packet)
+{
+  guint8 *data;
+
+  g_return_val_if_fail (packet != NULL, 0);
+  g_return_val_if_fail (packet->type == GST_RTCP_TYPE_APP, 0);
+  g_return_val_if_fail (packet->rtcp != NULL, 0);
+  g_return_val_if_fail (packet->rtcp->map.flags & GST_MAP_READ, 0);
+
+  data = packet->rtcp->map.data + packet->offset + 4;
+
+  return GST_READ_UINT32_BE (data);
+}
+
+/**
+ * gst_rtcp_packet_app_set_name:
+ * @packet: a valid APP #GstRTCPPacket
+ * @name: 4-byte ASCII name
+ *
+ * Set the name field of the APP @packet.
+ *
+ * Since: 1.10
+ */
+void
+gst_rtcp_packet_app_set_name (GstRTCPPacket * packet, const gchar * name)
+{
+  guint8 *data;
+
+  g_return_if_fail (packet != NULL);
+  g_return_if_fail (packet->type == GST_RTCP_TYPE_APP);
+  g_return_if_fail (packet->rtcp != NULL);
+  g_return_if_fail (packet->rtcp->map.flags & GST_MAP_WRITE);
+
+  data = packet->rtcp->map.data + packet->offset + 8;
+  memcpy (data, name, 4);
+}
+
+/**
+ * gst_rtcp_packet_app_get_name:
+ * @packet: a valid APP #GstRTCPPacket
+ *
+ * Get the name field of the APP @packet.
+ *
+ * Returns: The 4-byte name field, not zero-terminated.
+ *
+ * Since: 1.10
+ */
+const gchar *
+gst_rtcp_packet_app_get_name (GstRTCPPacket * packet)
+{
+  g_return_val_if_fail (packet != NULL, NULL);
+  g_return_val_if_fail (packet->type == GST_RTCP_TYPE_APP, NULL);
+  g_return_val_if_fail (packet->rtcp != NULL, NULL);
+  g_return_val_if_fail (packet->rtcp->map.flags & GST_MAP_READ, NULL);
+
+  return (const gchar *) &packet->rtcp->map.data[packet->offset + 8];
+}
+
+/**
+ * gst_rtcp_packet_app_get_data_length:
+ * @packet: a valid APP #GstRTCPPacket
+ *
+ * Get the length of the application-dependent data attached to an APP
+ * @packet.
+ *
+ * Returns: The length of data in 32-bit words.
+ *
+ * Since: 1.10
+ */
+guint16
+gst_rtcp_packet_app_get_data_length (GstRTCPPacket * packet)
+{
+  guint8 *data;
+
+  g_return_val_if_fail (packet != NULL, 0);
+  g_return_val_if_fail (packet->type == GST_RTCP_TYPE_APP, 0);
+  g_return_val_if_fail (packet->rtcp != NULL, 0);
+  g_return_val_if_fail (packet->rtcp->map.flags & GST_MAP_READ, 0);
+
+  data = packet->rtcp->map.data + packet->offset + 2;
+
+  return GST_READ_UINT16_BE (data) - 2;
+}
+
+/**
+ * gst_rtcp_packet_app_set_data_length:
+ * @packet: a valid APP #GstRTCPPacket
+ * @wordlen: Length of the data in 32-bit words
+ *
+ * Set the length of the application-dependent data attached to an APP
+ * @packet.
+ *
+ * Returns: %TRUE if there was enough space in the packet to add this much
+ * data.
+ *
+ * Since: 1.10
+ */
+gboolean
+gst_rtcp_packet_app_set_data_length (GstRTCPPacket * packet, guint16 wordlen)
+{
+  guint8 *data;
+
+  g_return_val_if_fail (packet != NULL, FALSE);
+  g_return_val_if_fail (packet->type == GST_RTCP_TYPE_APP, FALSE);
+  g_return_val_if_fail (packet->rtcp != NULL, FALSE);
+  g_return_val_if_fail (packet->rtcp->map.flags & GST_MAP_WRITE, FALSE);
+
+  if (packet->rtcp->map.maxsize < packet->offset + ((wordlen + 3) * 4))
+    return FALSE;
+
+  data = packet->rtcp->map.data + packet->offset + 2;
+  wordlen += 2;
+  GST_WRITE_UINT16_BE (data, wordlen);
+
+  packet->rtcp->map.size = packet->offset + ((wordlen + 1) * 4);
+
+  return TRUE;
+}
+
+/**
+ * gst_rtcp_packet_app_get_data:
+ * @packet: a valid APP #GstRTCPPacket
+ *
+ * Get the application-dependent data attached to a RTPFB or PSFB @packet.
+ *
+ * Returns: A pointer to the data
+ *
+ * Since: 1.10
+ */
+guint8 *
+gst_rtcp_packet_app_get_data (GstRTCPPacket * packet)
+{
+  guint8 *data;
+
+  g_return_val_if_fail (packet != NULL, NULL);
+  g_return_val_if_fail (packet->type == GST_RTCP_TYPE_APP, NULL);
+  g_return_val_if_fail (packet->rtcp != NULL, NULL);
+  g_return_val_if_fail (packet->rtcp->map.flags & GST_MAP_READ, NULL);
+
+  data = packet->rtcp->map.data + packet->offset;
+
+  if (GST_READ_UINT16_BE (data + 2) <= 2)
+    return NULL;
+
+  return data + 12;
+}
diff --git a/gst-libs/gst/rtp/gstrtcpbuffer.h b/gst-libs/gst/rtp/gstrtcpbuffer.h
index 328ecdd..c28fb8b 100644
--- a/gst-libs/gst/rtp/gstrtcpbuffer.h
+++ b/gst-libs/gst/rtp/gstrtcpbuffer.h
@@ -279,6 +279,15 @@
                                                        guint32 exthighestseq, guint32 jitter,
                                                        guint32 lsr, guint32 dlsr);
 
+/* profile-specific extensions for SR and RR */
+gboolean        gst_rtcp_packet_add_profile_specific_ext        (GstRTCPPacket * packet,
+                                                                 const guint8 * data, guint len);
+guint16         gst_rtcp_packet_get_profile_specific_ext_length (GstRTCPPacket * packet);
+gboolean        gst_rtcp_packet_get_profile_specific_ext        (GstRTCPPacket * packet,
+                                                                 guint8 ** data, guint * len);
+gboolean        gst_rtcp_packet_copy_profile_specific_ext       (GstRTCPPacket * packet,
+                                                                 guint8 ** data, guint * len);
+
 /* source description packet */
 guint           gst_rtcp_packet_sdes_get_item_count   (GstRTCPPacket *packet);
 gboolean        gst_rtcp_packet_sdes_first_item       (GstRTCPPacket *packet);
@@ -306,6 +315,17 @@
 gchar*          gst_rtcp_packet_bye_get_reason        (GstRTCPPacket *packet);
 gboolean        gst_rtcp_packet_bye_set_reason        (GstRTCPPacket *packet, const gchar *reason);
 
+/* app packets */
+void            gst_rtcp_packet_app_set_subtype       (GstRTCPPacket * packet, guint8 subtype);
+guint8          gst_rtcp_packet_app_get_subtype       (GstRTCPPacket * packet);
+void            gst_rtcp_packet_app_set_ssrc          (GstRTCPPacket * packet, guint32 ssrc);
+guint32         gst_rtcp_packet_app_get_ssrc          (GstRTCPPacket * packet);
+void            gst_rtcp_packet_app_set_name          (GstRTCPPacket * packet, const gchar *name);
+const gchar*    gst_rtcp_packet_app_get_name          (GstRTCPPacket * packet);
+guint16         gst_rtcp_packet_app_get_data_length   (GstRTCPPacket * packet);
+gboolean        gst_rtcp_packet_app_set_data_length   (GstRTCPPacket * packet, guint16 wordlen);
+guint8*         gst_rtcp_packet_app_get_data          (GstRTCPPacket * packet);
+
 /* feedback packets */
 guint32         gst_rtcp_packet_fb_get_sender_ssrc    (GstRTCPPacket *packet);
 void            gst_rtcp_packet_fb_set_sender_ssrc    (GstRTCPPacket *packet, guint32 ssrc);
diff --git a/gst-libs/gst/rtp/gstrtpbasedepayload.c b/gst-libs/gst/rtp/gstrtpbasedepayload.c
index 8a313af..e3a43c2 100644
--- a/gst-libs/gst/rtp/gstrtpbasedepayload.c
+++ b/gst-libs/gst/rtp/gstrtpbasedepayload.c
@@ -46,6 +46,7 @@
   GstClockTime dts;
   GstClockTime duration;
 
+  guint32 last_ssrc;
   guint32 last_seqnum;
   guint32 last_rtptime;
   guint32 next_seqnum;
@@ -356,6 +357,7 @@
   GstRTPBaseDepayloadPrivate *priv;
   GstFlowReturn ret = GST_FLOW_OK;
   GstBuffer *out_buf;
+  guint32 ssrc;
   guint16 seqnum;
   guint32 rtptime;
   gboolean discont, buf_discont;
@@ -380,6 +382,7 @@
   priv->dts = GST_BUFFER_DTS (in);
   priv->duration = GST_BUFFER_DURATION (in);
 
+  ssrc = gst_rtp_buffer_get_ssrc (&rtp);
   seqnum = gst_rtp_buffer_get_seq (&rtp);
   rtptime = gst_rtp_buffer_get_timestamp (&rtp);
 
@@ -396,32 +399,40 @@
    * are strictly increasing, dropping anything that is out of the ordinary. We
    * can only do this when the next_seqnum is known. */
   if (G_LIKELY (priv->next_seqnum != -1)) {
-    gap = gst_rtp_buffer_compare_seqnum (seqnum, priv->next_seqnum);
+    if (ssrc != priv->last_ssrc) {
+      GST_LOG_OBJECT (filter,
+          "New ssrc %u (current ssrc %u), sender restarted",
+          ssrc, priv->last_ssrc);
+      discont = TRUE;
+    } else {
+      gap = gst_rtp_buffer_compare_seqnum (seqnum, priv->next_seqnum);
 
-    /* if we have no gap, all is fine */
-    if (G_UNLIKELY (gap != 0)) {
-      GST_LOG_OBJECT (filter, "got packet %u, expected %u, gap %d", seqnum,
-          priv->next_seqnum, gap);
-      if (gap < 0) {
-        /* seqnum > next_seqnum, we are missing some packets, this is always a
-         * DISCONT. */
-        GST_LOG_OBJECT (filter, "%d missing packets", gap);
-        discont = TRUE;
-      } else {
-        /* seqnum < next_seqnum, we have seen this packet before or the sender
-         * could be restarted. If the packet is not too old, we throw it away as
-         * a duplicate, otherwise we mark discont and continue. 100 misordered
-         * packets is a good threshold. See also RFC 4737. */
-        if (gap < 100)
-          goto dropping;
+      /* if we have no gap, all is fine */
+      if (G_UNLIKELY (gap != 0)) {
+        GST_LOG_OBJECT (filter, "got packet %u, expected %u, gap %d", seqnum,
+            priv->next_seqnum, gap);
+        if (gap < 0) {
+          /* seqnum > next_seqnum, we are missing some packets, this is always a
+           * DISCONT. */
+          GST_LOG_OBJECT (filter, "%d missing packets", gap);
+          discont = TRUE;
+        } else {
+          /* seqnum < next_seqnum, we have seen this packet before or the sender
+           * could be restarted. If the packet is not too old, we throw it away as
+           * a duplicate, otherwise we mark discont and continue. 100 misordered
+           * packets is a good threshold. See also RFC 4737. */
+          if (gap < 100)
+            goto dropping;
 
-        GST_LOG_OBJECT (filter,
-            "%d > 100, packet too old, sender likely restarted", gap);
-        discont = TRUE;
+          GST_LOG_OBJECT (filter,
+              "%d > 100, packet too old, sender likely restarted", gap);
+          discont = TRUE;
+        }
       }
     }
   }
   priv->next_seqnum = (seqnum + 1) & 0xffff;
+  priv->last_ssrc = ssrc;
 
   if (G_UNLIKELY (discont)) {
     priv->discont = TRUE;
@@ -602,6 +613,9 @@
     {
       GST_OBJECT_LOCK (filter);
       gst_event_copy_segment (event, &filter->segment);
+      if (filter->segment.format != GST_FORMAT_TIME)
+        GST_ERROR_OBJECT (filter,
+            "Non-TIME segments are not supported and will likely fail");
       GST_OBJECT_UNLOCK (filter);
 
       /* don't pass the event downstream, we generate our own segment including
@@ -706,8 +720,11 @@
   if (position == -1)
     position = start;
 
-  running_time = gst_segment_to_running_time (&filter->segment,
-      GST_FORMAT_TIME, start);
+  if (G_LIKELY (filter->segment.format == GST_FORMAT_TIME))
+    running_time = gst_segment_to_running_time (&filter->segment,
+        GST_FORMAT_TIME, start);
+  else
+    running_time = 0;
 
   gst_segment_init (&segment, GST_FORMAT_TIME);
   segment.rate = priv->play_speed;
diff --git a/gst-libs/gst/rtsp/Makefile.am b/gst-libs/gst/rtsp/Makefile.am
index 1df45ea..88f0853 100644
--- a/gst-libs/gst/rtsp/Makefile.am
+++ b/gst-libs/gst/rtsp/Makefile.am
@@ -58,6 +58,7 @@
 GstRtsp-@GST_API_VERSION@.gir: $(INTROSPECTION_SCANNER) libgstrtsp-@GST_API_VERSION@.la
 	$(AM_V_GEN)PKG_CONFIG_PATH="$(GST_PKG_CONFIG_PATH)" GI_SCANNER_DISABLE_CACHE=yes\
 		GST_PLUGIN_SYSTEM_PATH_1_0="" GST_PLUGIN_PATH_1_0="" GST_REGISTRY_UPDATE=no \
+		CPPFLAGS="$(CPPFLAGS)" CFLAGS="$(CFLAGS)" LDFLAGS="$(LDFLAGS)" CC="$(CC)" PKG_CONFIG="$(PKG_CONFIG)" DLLTOOL="$(DLLTOOL)" \
 		$(INTROSPECTION_SCANNER) -v --namespace GstRtsp \
 		--nsversion=@GST_API_VERSION@ \
 		--identifier-prefix=Gst \
diff --git a/gst-libs/gst/rtsp/Makefile.in b/gst-libs/gst/rtsp/Makefile.in
index f975d0a..6dcfc3e 100644
--- a/gst-libs/gst/rtsp/Makefile.in
+++ b/gst-libs/gst/rtsp/Makefile.in
@@ -1136,6 +1136,7 @@
 @HAVE_INTROSPECTION_TRUE@GstRtsp-@GST_API_VERSION@.gir: $(INTROSPECTION_SCANNER) libgstrtsp-@GST_API_VERSION@.la
 @HAVE_INTROSPECTION_TRUE@	$(AM_V_GEN)PKG_CONFIG_PATH="$(GST_PKG_CONFIG_PATH)" GI_SCANNER_DISABLE_CACHE=yes\
 @HAVE_INTROSPECTION_TRUE@		GST_PLUGIN_SYSTEM_PATH_1_0="" GST_PLUGIN_PATH_1_0="" GST_REGISTRY_UPDATE=no \
+@HAVE_INTROSPECTION_TRUE@		CPPFLAGS="$(CPPFLAGS)" CFLAGS="$(CFLAGS)" LDFLAGS="$(LDFLAGS)" CC="$(CC)" PKG_CONFIG="$(PKG_CONFIG)" DLLTOOL="$(DLLTOOL)" \
 @HAVE_INTROSPECTION_TRUE@		$(INTROSPECTION_SCANNER) -v --namespace GstRtsp \
 @HAVE_INTROSPECTION_TRUE@		--nsversion=@GST_API_VERSION@ \
 @HAVE_INTROSPECTION_TRUE@		--identifier-prefix=Gst \
diff --git a/gst-libs/gst/sdp/Makefile.am b/gst-libs/gst/sdp/Makefile.am
index 2d35703..6fd9693 100644
--- a/gst-libs/gst/sdp/Makefile.am
+++ b/gst-libs/gst/sdp/Makefile.am
@@ -22,6 +22,7 @@
 GstSdp-@GST_API_VERSION@.gir: $(INTROSPECTION_SCANNER) libgstsdp-@GST_API_VERSION@.la
 	$(AM_V_GEN)PKG_CONFIG_PATH="$(GST_PKG_CONFIG_PATH)" GI_SCANNER_DISABLE_CACHE=yes\
 		GST_PLUGIN_SYSTEM_PATH_1_0="" GST_PLUGIN_PATH_1_0="" GST_REGISTRY_UPDATE=no \
+		CPPFLAGS="$(CPPFLAGS)" CFLAGS="$(CFLAGS)" LDFLAGS="$(LDFLAGS)" CC="$(CC)" PKG_CONFIG="$(PKG_CONFIG)" DLLTOOL="$(DLLTOOL)" \
 		$(INTROSPECTION_SCANNER) -v --namespace GstSdp \
 		--nsversion=@GST_API_VERSION@ \
 		--identifier-prefix=Gst \
diff --git a/gst-libs/gst/sdp/Makefile.in b/gst-libs/gst/sdp/Makefile.in
index 8820791..b612b9b 100644
--- a/gst-libs/gst/sdp/Makefile.in
+++ b/gst-libs/gst/sdp/Makefile.in
@@ -965,6 +965,7 @@
 @HAVE_INTROSPECTION_TRUE@GstSdp-@GST_API_VERSION@.gir: $(INTROSPECTION_SCANNER) libgstsdp-@GST_API_VERSION@.la
 @HAVE_INTROSPECTION_TRUE@	$(AM_V_GEN)PKG_CONFIG_PATH="$(GST_PKG_CONFIG_PATH)" GI_SCANNER_DISABLE_CACHE=yes\
 @HAVE_INTROSPECTION_TRUE@		GST_PLUGIN_SYSTEM_PATH_1_0="" GST_PLUGIN_PATH_1_0="" GST_REGISTRY_UPDATE=no \
+@HAVE_INTROSPECTION_TRUE@		CPPFLAGS="$(CPPFLAGS)" CFLAGS="$(CFLAGS)" LDFLAGS="$(LDFLAGS)" CC="$(CC)" PKG_CONFIG="$(PKG_CONFIG)" DLLTOOL="$(DLLTOOL)" \
 @HAVE_INTROSPECTION_TRUE@		$(INTROSPECTION_SCANNER) -v --namespace GstSdp \
 @HAVE_INTROSPECTION_TRUE@		--nsversion=@GST_API_VERSION@ \
 @HAVE_INTROSPECTION_TRUE@		--identifier-prefix=Gst \
diff --git a/gst-libs/gst/tag/Makefile.am b/gst-libs/gst/tag/Makefile.am
index a26bbde..c0c2d6b 100644
--- a/gst-libs/gst/tag/Makefile.am
+++ b/gst-libs/gst/tag/Makefile.am
@@ -32,6 +32,7 @@
 GstTag-@GST_API_VERSION@.gir: $(INTROSPECTION_SCANNER) libgsttag-@GST_API_VERSION@.la
 	$(AM_V_GEN)PKG_CONFIG_PATH="$(GST_PKG_CONFIG_PATH)" GI_SCANNER_DISABLE_CACHE=yes\
 		GST_PLUGIN_SYSTEM_PATH_1_0="" GST_PLUGIN_PATH_1_0="" GST_REGISTRY_UPDATE=no \
+		CPPFLAGS="$(CPPFLAGS)" CFLAGS="$(CFLAGS)" LDFLAGS="$(LDFLAGS)" CC="$(CC)" PKG_CONFIG="$(PKG_CONFIG)" DLLTOOL="$(DLLTOOL)" \
 		$(INTROSPECTION_SCANNER) -v --namespace GstTag \
 		--nsversion=@GST_API_VERSION@ \
 		--identifier-prefix=Gst \
diff --git a/gst-libs/gst/tag/Makefile.in b/gst-libs/gst/tag/Makefile.in
index 5cd60f8..e9103b5 100644
--- a/gst-libs/gst/tag/Makefile.in
+++ b/gst-libs/gst/tag/Makefile.in
@@ -1174,6 +1174,7 @@
 @HAVE_INTROSPECTION_TRUE@GstTag-@GST_API_VERSION@.gir: $(INTROSPECTION_SCANNER) libgsttag-@GST_API_VERSION@.la
 @HAVE_INTROSPECTION_TRUE@	$(AM_V_GEN)PKG_CONFIG_PATH="$(GST_PKG_CONFIG_PATH)" GI_SCANNER_DISABLE_CACHE=yes\
 @HAVE_INTROSPECTION_TRUE@		GST_PLUGIN_SYSTEM_PATH_1_0="" GST_PLUGIN_PATH_1_0="" GST_REGISTRY_UPDATE=no \
+@HAVE_INTROSPECTION_TRUE@		CPPFLAGS="$(CPPFLAGS)" CFLAGS="$(CFLAGS)" LDFLAGS="$(LDFLAGS)" CC="$(CC)" PKG_CONFIG="$(PKG_CONFIG)" DLLTOOL="$(DLLTOOL)" \
 @HAVE_INTROSPECTION_TRUE@		$(INTROSPECTION_SCANNER) -v --namespace GstTag \
 @HAVE_INTROSPECTION_TRUE@		--nsversion=@GST_API_VERSION@ \
 @HAVE_INTROSPECTION_TRUE@		--identifier-prefix=Gst \
diff --git a/gst-libs/gst/tag/gstexiftag.c b/gst-libs/gst/tag/gstexiftag.c
index 1f0528e..bcdcdde 100644
--- a/gst-libs/gst/tag/gstexiftag.c
+++ b/gst-libs/gst/tag/gstexiftag.c
@@ -311,6 +311,7 @@
 #define EXIF_TAG_EXPOSURE_MODE 0xA402
 #define EXIF_TAG_WHITE_BALANCE 0xA403
 #define EXIF_TAG_DIGITAL_ZOOM_RATIO 0xA404
+#define EXIF_TAG_FOCAL_LENGTH_IN_35_MM_FILM 0xa405
 #define EXIF_TAG_SCENE_CAPTURE_TYPE 0xA406
 #define EXIF_TAG_GAIN_CONTROL 0xA407
 #define EXIF_TAG_CONTRAST 0xA408
@@ -411,6 +412,8 @@
   {GST_TAG_CAPTURING_DIGITAL_ZOOM_RATIO, EXIF_TAG_DIGITAL_ZOOM_RATIO,
         EXIF_TYPE_RATIONAL, 0, NULL,
       NULL},
+  {GST_TAG_CAPTURING_FOCAL_LENGTH_35_MM, EXIF_TAG_FOCAL_LENGTH_IN_35_MM_FILM,
+      EXIF_TYPE_SHORT, 0, NULL, NULL},
   {GST_TAG_CAPTURING_SCENE_CAPTURE_TYPE, EXIF_TAG_SCENE_CAPTURE_TYPE,
         EXIF_TYPE_SHORT, 0, serialize_scene_capture_type,
       deserialize_scene_capture_type},
@@ -1048,6 +1051,9 @@
     case G_TYPE_INT:
       num = g_value_get_int (value);
       break;
+    case G_TYPE_DOUBLE:
+      num = (gint) g_value_get_double (value);
+      break;
     default:
       GST_WARNING ("Conversion from %s to int not supported",
           G_VALUE_TYPE_NAME (value));
@@ -1314,6 +1320,37 @@
 }
 
 static void
+parse_exif_short_tag (GstExifReader * reader, const GstExifTagMatch * tag,
+    guint32 count, guint32 offset, const guint8 * offset_as_data)
+{
+  GType tagtype;
+  guint16 value;
+
+  if (count > 1) {
+    GST_WARNING ("Short tags with more than one value are not supported");
+    return;
+  }
+
+  /* value is encoded into offset */
+  if (reader->byte_order == G_LITTLE_ENDIAN)
+    value = GST_READ_UINT16_LE (offset_as_data);
+  else
+    value = GST_READ_UINT16_BE (offset_as_data);
+
+  tagtype = gst_tag_get_type (tag->gst_tag);
+  if (tagtype == G_TYPE_INT) {
+    gst_tag_list_add (reader->taglist, GST_TAG_MERGE_REPLACE, tag->gst_tag,
+        value, NULL);
+  } else if (tagtype == G_TYPE_DOUBLE) {
+    gst_tag_list_add (reader->taglist, GST_TAG_MERGE_REPLACE, tag->gst_tag,
+        (gdouble) value, NULL);
+  } else {
+    GST_WARNING ("No parsing function associated to %x(%s)", tag->exif_tag,
+        tag->gst_tag);
+  }
+}
+
+static void
 parse_exif_long_tag (GstExifReader * reader, const GstExifTagMatch * tag,
     guint32 count, guint32 offset, const guint8 * offset_as_data)
 {
@@ -1763,6 +1800,10 @@
         parse_exif_long_tag (exif_reader, &tag_map[map_index],
             tagdata.count, tagdata.offset, tagdata.offset_as_data);
         break;
+      case EXIF_TYPE_SHORT:
+        parse_exif_short_tag (exif_reader, &tag_map[map_index],
+            tagdata.count, tagdata.offset, tagdata.offset_as_data);
+        break;
       default:
         GST_WARNING ("Unhandled tag type: %u", tagdata.tag_type);
         break;
@@ -2049,9 +2090,9 @@
 {
   gboolean latitude;
   gdouble value;
-  gint degrees;
-  gint minutes;
-  gint seconds;
+  guint32 degrees;
+  guint32 minutes;
+  guint32 seconds_numerator, seconds_denominator;
   guint32 offset;
 
   latitude = exiftag->exif_tag == EXIF_TAG_GPS_LATITUDE;        /* exif tag for latitude */
@@ -2079,21 +2120,24 @@
   }
 
   /* now write the degrees stuff */
-  GST_LOG ("Converting geo location %lf to degrees", value);
-  degrees = (gint) value;
+  GST_DEBUG ("Converting %lf degrees geo location to HMS", value);
+  degrees = (guint32) value;
   value -= degrees;
-  minutes = (gint) (value * 60);
+  minutes = (guint32) (value * 60);
   value = (value * 60) - minutes;
-  seconds = (gint) (value * 60);
-  GST_LOG ("Converted geo location to %d.%d'%d'' degrees", degrees,
-      minutes, seconds);
+  seconds_denominator = 10000000UL;
+  seconds_numerator = (guint32) (value * 60 * seconds_denominator);
+
+  GST_DEBUG ("Converted rational geo location to %u/%u %u/%u %u/%u degrees ",
+      degrees, 1U, minutes, 1U, seconds_numerator, seconds_denominator);
 
   offset = gst_byte_writer_get_size (&writer->datawriter);
   gst_exif_writer_write_tag_header (writer, exiftag->exif_tag,
       EXIF_TYPE_RATIONAL, 3, offset, NULL);
   gst_exif_writer_write_rational_data (writer, degrees, 1);
   gst_exif_writer_write_rational_data (writer, minutes, 1);
-  gst_exif_writer_write_rational_data (writer, seconds, 1);
+  gst_exif_writer_write_rational_data (writer, seconds_numerator,
+      seconds_denominator);
 }
 
 static gint
@@ -2210,12 +2254,11 @@
   gst_util_fraction_to_double (degrees_n, degrees_d, &degrees);
   gst_util_fraction_to_double (minutes_n, minutes_d, &minutes);
   gst_util_fraction_to_double (seconds_n, seconds_d, &seconds);
-
   minutes += seconds / 60;
   degrees += minutes / 60;
   degrees *= multiplier;
 
-  GST_DEBUG ("Adding %s tag: %lf", exiftag->gst_tag, degrees);
+  GST_DEBUG ("Adding %s tag: %lf degrees", exiftag->gst_tag, degrees);
   gst_tag_list_add (exif_reader->taglist, GST_TAG_MERGE_REPLACE,
       exiftag->gst_tag, degrees, NULL);
 
diff --git a/gst-libs/gst/tag/gsttagdemux.c b/gst-libs/gst/tag/gsttagdemux.c
index b736276..cd94009 100644
--- a/gst-libs/gst/tag/gsttagdemux.c
+++ b/gst-libs/gst/tag/gsttagdemux.c
@@ -228,8 +228,7 @@
 {
   GstElementClass *element_class = GST_ELEMENT_CLASS (klass);
 
-  gst_element_class_add_pad_template (element_class,
-      gst_static_pad_template_get (&src_factory));
+  gst_element_class_add_static_pad_template (element_class, &src_factory);
 
   GST_DEBUG_CATEGORY_INIT (tagdemux_debug, "tagdemux", 0,
       "tag demux base class");
@@ -467,6 +466,10 @@
           gst_buffer_copy_region (buf, GST_BUFFER_COPY_ALL, trim_start,
           out_size);
       g_return_val_if_fail (sub != NULL, FALSE);
+      if (GST_BUFFER_TIMESTAMP_IS_VALID (buf))
+        GST_BUFFER_TIMESTAMP (sub) = GST_BUFFER_TIMESTAMP (buf);
+      if (GST_BUFFER_DURATION_IS_VALID (buf))
+        GST_BUFFER_DURATION (sub) = GST_BUFFER_DURATION (buf);
       gst_buffer_unref (buf);
       *buf_ref = buf = sub;
       *buf_size = out_size;
@@ -623,13 +626,11 @@
 }
 
 static GstFlowReturn
-gst_tag_demux_chain (GstPad * pad, GstObject * parent, GstBuffer * buf)
+gst_tag_demux_chain_buffer (GstTagDemux * demux, GstBuffer * buf,
+    gboolean at_eos)
 {
-  GstTagDemux *demux;
   gsize size;
 
-  demux = GST_TAG_DEMUX (parent);
-
   size = gst_buffer_get_size (buf);
 
   /* Update our segment position info */
@@ -661,7 +662,7 @@
 
       update_collected (demux);
 
-      if (demux->priv->collect_size <
+      if (!at_eos && demux->priv->collect_size <
           TYPE_FIND_MIN_SIZE + demux->priv->strip_start)
         break;                  /* Go get more data first */
 
@@ -742,7 +743,7 @@
           demux->priv->send_tag_event = FALSE;
         }
 
-        GST_LOG_OBJECT (demux, "Pushing buffer %p", outbuf);
+        GST_LOG_OBJECT (demux, "Pushing buffer %" GST_PTR_FORMAT, outbuf);
 
         return gst_pad_push (demux->priv->srcpad, outbuf);
       }
@@ -751,6 +752,12 @@
   return GST_FLOW_OK;
 }
 
+static GstFlowReturn
+gst_tag_demux_chain (GstPad * pad, GstObject * parent, GstBuffer * buf)
+{
+  return gst_tag_demux_chain_buffer (GST_TAG_DEMUX (parent), buf, FALSE);
+}
+
 static gboolean
 gst_tag_demux_sink_event (GstPad * pad, GstObject * parent, GstEvent * event)
 {
@@ -761,10 +768,15 @@
 
   switch (GST_EVENT_TYPE (event)) {
     case GST_EVENT_EOS:
-      /* FIXME, detect this differently */
-      if (demux->priv->srcpad == NULL) {
-        GST_WARNING_OBJECT (demux, "EOS before we found a type");
-        GST_ELEMENT_ERROR (demux, STREAM, TYPE_NOT_FOUND, (NULL), (NULL));
+      if (!gst_pad_has_current_caps (demux->priv->srcpad)) {
+        GST_INFO_OBJECT (demux, "EOS before we found a type");
+
+        /* push final buffer with eos indication to force typefinding */
+        gst_tag_demux_chain_buffer (demux, gst_buffer_new (), TRUE);
+
+        if (!gst_pad_has_current_caps (demux->priv->srcpad)) {
+          GST_ELEMENT_ERROR (demux, STREAM, TYPE_NOT_FOUND, (NULL), (NULL));
+        }
       }
       ret = gst_pad_event_default (pad, parent, event);
       break;
diff --git a/gst-libs/gst/tag/tag.h b/gst-libs/gst/tag/tag.h
index 48631d3..7ca444f 100644
--- a/gst-libs/gst/tag/tag.h
+++ b/gst-libs/gst/tag/tag.h
@@ -152,6 +152,15 @@
 #define GST_TAG_CAPTURING_FOCAL_LENGTH         "capturing-focal-length"
 
 /**
+ * GST_TAG_CAPTURING_FOCAL_LENGTH_35_MM:
+ *
+ * 35 mm equivalent focal length used when capturing an image, in mm. (double)
+ *
+ * Since: 1.10
+ */
+#define GST_TAG_CAPTURING_FOCAL_LENGTH_35_MM   "capturing-focal-length-35mm"
+
+/**
  * GST_TAG_CAPTURING_DIGITAL_ZOOM_RATIO:
  *
  * Digital zoom ratio used when capturing an image. (double)
diff --git a/gst-libs/gst/tag/tags.c b/gst-libs/gst/tag/tags.c
index 1931d18..5a0214d 100644
--- a/gst-libs/gst/tag/tags.c
+++ b/gst-libs/gst/tag/tags.c
@@ -118,6 +118,12 @@
       G_TYPE_DOUBLE, _("capturing focal length"),
       _("Focal length of the lens used capturing the image, in mm"), NULL);
 
+  gst_tag_register_static (GST_TAG_CAPTURING_FOCAL_LENGTH_35_MM,
+      GST_TAG_FLAG_META, G_TYPE_DOUBLE,
+      _("capturing 35 mm equivalent focal length"),
+      _("35 mm equivalent focal length of the lens used capturing the image, "
+          "in mm"), NULL);
+
   gst_tag_register_static (GST_TAG_CAPTURING_DIGITAL_ZOOM_RATIO,
       GST_TAG_FLAG_META, G_TYPE_DOUBLE, _("capturing digital zoom ratio"),
       _("Digital zoom ratio used when capturing an image"), NULL);
diff --git a/gst-libs/gst/video/Makefile.am b/gst-libs/gst/video/Makefile.am
index 91b72ff..93bcbd4 100644
--- a/gst-libs/gst/video/Makefile.am
+++ b/gst-libs/gst/video/Makefile.am
@@ -103,6 +103,7 @@
 GstVideo-@GST_API_VERSION@.gir: $(INTROSPECTION_SCANNER) libgstvideo-@GST_API_VERSION@.la
 	$(AM_V_GEN)PKG_CONFIG_PATH="$(GST_PKG_CONFIG_PATH)" GI_SCANNER_DISABLE_CACHE=yes\
 		GST_PLUGIN_SYSTEM_PATH_1_0="" GST_PLUGIN_PATH_1_0="" GST_REGISTRY_UPDATE=no \
+		CPPFLAGS="$(CPPFLAGS)" CFLAGS="$(CFLAGS)" LDFLAGS="$(LDFLAGS)" CC="$(CC)" PKG_CONFIG="$(PKG_CONFIG)" DLLTOOL="$(DLLTOOL)" \
 		$(INTROSPECTION_SCANNER) -v --namespace GstVideo \
 		--nsversion=@GST_API_VERSION@ \
 		--identifier-prefix=Gst \
diff --git a/gst-libs/gst/video/Makefile.in b/gst-libs/gst/video/Makefile.in
index 3720c35..2a6d511 100644
--- a/gst-libs/gst/video/Makefile.in
+++ b/gst-libs/gst/video/Makefile.in
@@ -1480,6 +1480,7 @@
 @HAVE_INTROSPECTION_TRUE@GstVideo-@GST_API_VERSION@.gir: $(INTROSPECTION_SCANNER) libgstvideo-@GST_API_VERSION@.la
 @HAVE_INTROSPECTION_TRUE@	$(AM_V_GEN)PKG_CONFIG_PATH="$(GST_PKG_CONFIG_PATH)" GI_SCANNER_DISABLE_CACHE=yes\
 @HAVE_INTROSPECTION_TRUE@		GST_PLUGIN_SYSTEM_PATH_1_0="" GST_PLUGIN_PATH_1_0="" GST_REGISTRY_UPDATE=no \
+@HAVE_INTROSPECTION_TRUE@		CPPFLAGS="$(CPPFLAGS)" CFLAGS="$(CFLAGS)" LDFLAGS="$(LDFLAGS)" CC="$(CC)" PKG_CONFIG="$(PKG_CONFIG)" DLLTOOL="$(DLLTOOL)" \
 @HAVE_INTROSPECTION_TRUE@		$(INTROSPECTION_SCANNER) -v --namespace GstVideo \
 @HAVE_INTROSPECTION_TRUE@		--nsversion=@GST_API_VERSION@ \
 @HAVE_INTROSPECTION_TRUE@		--identifier-prefix=Gst \
diff --git a/gst-libs/gst/video/gstvideoaffinetransformationmeta.h b/gst-libs/gst/video/gstvideoaffinetransformationmeta.h
index 3838a01..f1ee629 100644
--- a/gst-libs/gst/video/gstvideoaffinetransformationmeta.h
+++ b/gst-libs/gst/video/gstvideoaffinetransformationmeta.h
@@ -45,6 +45,13 @@
  * matrix. The transformation matrix can be composed with
  * gst_video_affine_transformation_meta_apply_matrix().
  *
+ * The vertices operated on are all in the range 0 to 1, not in
+ * Normalized Device Coordinates (-1 to +1). Transforming points in this space
+ * are assumed to have an origin at (0.5, 0.5, 0.5) in a left-handed coordinate
+ * system with the x-axis moving horizontally (positive values to the right),
+ * the y-axis moving vertically (positive values up the screen) and the z-axis
+ * perpendicular to the screen (positive values into the screen).
+ *
  * Since: 1.8
  */
 
diff --git a/gst-libs/gst/video/gstvideodecoder.c b/gst-libs/gst/video/gstvideodecoder.c
index d13484a..06c0043 100644
--- a/gst-libs/gst/video/gstvideodecoder.c
+++ b/gst-libs/gst/video/gstvideodecoder.c
@@ -216,7 +216,7 @@
  *   gather queue:  9  8  7
  *                        D
  *
- * Whe buffer 4 is received (with a DISCONT), we flush the gather queue like
+ * When buffer 4 is received (with a DISCONT), we flush the gather queue like
  * this:
  *
  *   while (gather)
@@ -602,117 +602,6 @@
   gst_video_decoder_reset (decoder, TRUE, TRUE);
 }
 
-static gboolean
-gst_video_rawvideo_convert (GstVideoCodecState * state,
-    GstFormat src_format, gint64 src_value,
-    GstFormat * dest_format, gint64 * dest_value)
-{
-  gboolean res = FALSE;
-  guint vidsize;
-  guint fps_n, fps_d;
-
-  g_return_val_if_fail (dest_format != NULL, FALSE);
-  g_return_val_if_fail (dest_value != NULL, FALSE);
-
-  if (src_format == *dest_format || src_value == 0 || src_value == -1) {
-    *dest_value = src_value;
-    return TRUE;
-  }
-
-  vidsize = GST_VIDEO_INFO_SIZE (&state->info);
-  fps_n = GST_VIDEO_INFO_FPS_N (&state->info);
-  fps_d = GST_VIDEO_INFO_FPS_D (&state->info);
-
-  if (src_format == GST_FORMAT_BYTES &&
-      *dest_format == GST_FORMAT_DEFAULT && vidsize) {
-    /* convert bytes to frames */
-    *dest_value = gst_util_uint64_scale_int (src_value, 1, vidsize);
-    res = TRUE;
-  } else if (src_format == GST_FORMAT_DEFAULT &&
-      *dest_format == GST_FORMAT_BYTES && vidsize) {
-    /* convert bytes to frames */
-    *dest_value = src_value * vidsize;
-    res = TRUE;
-  } else if (src_format == GST_FORMAT_DEFAULT &&
-      *dest_format == GST_FORMAT_TIME && fps_n) {
-    /* convert frames to time */
-    *dest_value = gst_util_uint64_scale (src_value, GST_SECOND * fps_d, fps_n);
-    res = TRUE;
-  } else if (src_format == GST_FORMAT_TIME &&
-      *dest_format == GST_FORMAT_DEFAULT && fps_d) {
-    /* convert time to frames */
-    *dest_value = gst_util_uint64_scale (src_value, fps_n, GST_SECOND * fps_d);
-    res = TRUE;
-  } else if (src_format == GST_FORMAT_TIME &&
-      *dest_format == GST_FORMAT_BYTES && fps_d && vidsize) {
-    /* convert time to bytes */
-    *dest_value = gst_util_uint64_scale (src_value,
-        fps_n * (guint64) vidsize, GST_SECOND * fps_d);
-    res = TRUE;
-  } else if (src_format == GST_FORMAT_BYTES &&
-      *dest_format == GST_FORMAT_TIME && fps_n && vidsize) {
-    /* convert bytes to time */
-    *dest_value = gst_util_uint64_scale (src_value,
-        GST_SECOND * fps_d, fps_n * (guint64) vidsize);
-    res = TRUE;
-  }
-
-  return res;
-}
-
-static gboolean
-gst_video_encoded_video_convert (gint64 bytes, gint64 time,
-    GstFormat src_format, gint64 src_value, GstFormat * dest_format,
-    gint64 * dest_value)
-{
-  gboolean res = FALSE;
-
-  g_return_val_if_fail (dest_format != NULL, FALSE);
-  g_return_val_if_fail (dest_value != NULL, FALSE);
-
-  if (G_UNLIKELY (src_format == *dest_format || src_value == 0 ||
-          src_value == -1)) {
-    if (dest_value)
-      *dest_value = src_value;
-    return TRUE;
-  }
-
-  if (bytes <= 0 || time <= 0) {
-    GST_DEBUG ("not enough metadata yet to convert");
-    goto exit;
-  }
-
-  switch (src_format) {
-    case GST_FORMAT_BYTES:
-      switch (*dest_format) {
-        case GST_FORMAT_TIME:
-          *dest_value = gst_util_uint64_scale (src_value, time, bytes);
-          res = TRUE;
-          break;
-        default:
-          res = FALSE;
-      }
-      break;
-    case GST_FORMAT_TIME:
-      switch (*dest_format) {
-        case GST_FORMAT_BYTES:
-          *dest_value = gst_util_uint64_scale (src_value, bytes, time);
-          res = TRUE;
-          break;
-        default:
-          res = FALSE;
-      }
-      break;
-    default:
-      GST_DEBUG ("unhandled conversion from %d to %d", src_format,
-          *dest_format);
-      res = FALSE;
-  }
-
-exit:
-  return res;
-}
-
 static GstVideoCodecState *
 _new_input_state (GstCaps * caps)
 {
@@ -1031,6 +920,7 @@
   }
 }
 
+/* This function has to be called with the stream lock taken. */
 static GstFlowReturn
 gst_video_decoder_drain_out (GstVideoDecoder * dec, gboolean at_eos)
 {
@@ -1038,8 +928,6 @@
   GstVideoDecoderPrivate *priv = dec->priv;
   GstFlowReturn ret = GST_FLOW_OK;
 
-  GST_VIDEO_DECODER_STREAM_LOCK (dec);
-
   if (dec->input_segment.rate > 0.0) {
     /* Forward mode, if unpacketized, give the child class
      * a final chance to flush out packets */
@@ -1062,8 +950,6 @@
     ret = gst_video_decoder_flush_parse (dec, TRUE);
   }
 
-  GST_VIDEO_DECODER_STREAM_UNLOCK (dec);
-
   return ret;
 }
 
@@ -1152,16 +1038,29 @@
   for (i = 0; i < caps_size; i++) {
     structure = gst_caps_get_structure (caps, i);
     /* Random 1280x720@30 for fixation */
-    gst_structure_fixate_field_nearest_int (structure, "width", 1280);
-    gst_structure_fixate_field_nearest_int (structure, "height", 720);
-    gst_structure_fixate_field_nearest_fraction (structure, "framerate", 30, 1);
-    if (gst_structure_has_field (structure, "pixel-aspect-ratio")) {
+    if (gst_structure_has_field (structure, "width"))
+      gst_structure_fixate_field_nearest_int (structure, "width", 1280);
+    else
+      gst_structure_set (structure, "width", G_TYPE_INT, 1280, NULL);
+
+    if (gst_structure_has_field (structure, "height"))
+      gst_structure_fixate_field_nearest_int (structure, "height", 720);
+    else
+      gst_structure_set (structure, "height", G_TYPE_INT, 720, NULL);
+
+    if (gst_structure_has_field (structure, "framerate"))
+      gst_structure_fixate_field_nearest_fraction (structure, "framerate", 30,
+          1);
+    else
+      gst_structure_set (structure, "framerate", GST_TYPE_FRACTION, 30, 1,
+          NULL);
+
+    if (gst_structure_has_field (structure, "pixel-aspect-ratio"))
       gst_structure_fixate_field_nearest_fraction (structure,
           "pixel-aspect-ratio", 1, 1);
-    } else {
+    else
       gst_structure_set (structure, "pixel-aspect-ratio", GST_TYPE_FRACTION,
           1, 1, NULL);
-    }
   }
   caps = gst_caps_fixate (caps);
   structure = gst_caps_get_structure (caps, 0);
@@ -1202,11 +1101,11 @@
     {
       GstFlowReturn flow_ret = GST_FLOW_OK;
 
+      GST_VIDEO_DECODER_STREAM_LOCK (decoder);
       flow_ret = gst_video_decoder_drain_out (decoder, FALSE);
       ret = (flow_ret == GST_FLOW_OK);
 
       GST_DEBUG_OBJECT (decoder, "received STREAM_START. Clearing taglist");
-      GST_VIDEO_DECODER_STREAM_LOCK (decoder);
       /* Flush upstream tags after a STREAM_START */
       if (priv->upstream_tags) {
         gst_tag_list_unref (priv->upstream_tags);
@@ -1236,7 +1135,9 @@
     {
       GstFlowReturn flow_ret = GST_FLOW_OK;
 
+      GST_VIDEO_DECODER_STREAM_LOCK (decoder);
       flow_ret = gst_video_decoder_drain_out (decoder, TRUE);
+      GST_VIDEO_DECODER_STREAM_UNLOCK (decoder);
       ret = (flow_ret == GST_FLOW_OK);
 
       /* Forward SEGMENT_DONE immediately. This is required
@@ -1255,7 +1156,9 @@
     {
       GstFlowReturn flow_ret = GST_FLOW_OK;
 
+      GST_VIDEO_DECODER_STREAM_LOCK (decoder);
       flow_ret = gst_video_decoder_drain_out (decoder, TRUE);
+      GST_VIDEO_DECODER_STREAM_UNLOCK (decoder);
       ret = (flow_ret == GST_FLOW_OK);
 
       /* Error out even if EOS was ok when we had input, but no output */
@@ -1283,11 +1186,11 @@
       GList *events;
       GList *frame_events;
 
+      GST_VIDEO_DECODER_STREAM_LOCK (decoder);
       flow_ret = gst_video_decoder_drain_out (decoder, FALSE);
       ret = (flow_ret == GST_FLOW_OK);
 
       /* Ensure we have caps before forwarding the event */
-      GST_VIDEO_DECODER_STREAM_LOCK (decoder);
       if (!decoder->priv->output_state) {
         if (!gst_video_decoder_negotiate_default_caps (decoder)) {
           GST_VIDEO_DECODER_STREAM_UNLOCK (decoder);
@@ -1335,7 +1238,9 @@
       if (gst_video_event_parse_still_frame (event, &in_still)) {
         if (in_still) {
           GST_DEBUG_OBJECT (decoder, "draining current data for still-frame");
+          GST_VIDEO_DECODER_STREAM_LOCK (decoder);
           flow_ret = gst_video_decoder_drain_out (decoder, FALSE);
+          GST_VIDEO_DECODER_STREAM_UNLOCK (decoder);
           ret = (flow_ret == GST_FLOW_OK);
         }
         /* Forward STILL_FRAME immediately. Everything is drained after
@@ -1496,8 +1401,14 @@
 static inline gboolean
 gst_video_decoder_do_byte (GstVideoDecoder * dec)
 {
-  return dec->priv->do_estimate_rate && (dec->priv->bytes_out > 0)
+  gboolean ret;
+
+  GST_OBJECT_LOCK (dec);
+  ret = dec->priv->do_estimate_rate && (dec->priv->bytes_out > 0)
       && (dec->priv->time > GST_SECOND);
+  GST_OBJECT_UNLOCK (dec);
+
+  return ret;
 }
 
 static gboolean
@@ -1753,7 +1664,7 @@
       gst_query_parse_convert (query, &src_fmt, &src_val, &dest_fmt, &dest_val);
       GST_OBJECT_LOCK (dec);
       if (dec->priv->output_state != NULL)
-        res = gst_video_rawvideo_convert (dec->priv->output_state,
+        res = __gst_video_rawvideo_convert (dec->priv->output_state,
             src_fmt, src_val, &dest_fmt, &dest_val);
       else
         res = FALSE;
@@ -1877,11 +1788,11 @@
       gint64 src_val, dest_val;
 
       gst_query_parse_convert (query, &src_fmt, &src_val, &dest_fmt, &dest_val);
-      GST_VIDEO_DECODER_STREAM_LOCK (decoder);
+      GST_OBJECT_LOCK (decoder);
       res =
-          gst_video_encoded_video_convert (priv->bytes_out, priv->time, src_fmt,
-          src_val, &dest_fmt, &dest_val);
-      GST_VIDEO_DECODER_STREAM_UNLOCK (decoder);
+          __gst_video_encoded_video_convert (priv->bytes_out, priv->time,
+          src_fmt, src_val, &dest_fmt, &dest_val);
+      GST_OBJECT_UNLOCK (decoder);
       if (!res)
         goto error;
       gst_query_set_convert (query, src_fmt, src_val, dest_fmt, dest_val);
@@ -1975,6 +1886,7 @@
   GstClockTime pts;
   GstClockTime dts;
   GstClockTime duration;
+  guint flags;
 };
 
 static void
@@ -2001,6 +1913,7 @@
   ts->pts = GST_BUFFER_PTS (buffer);
   ts->dts = GST_BUFFER_DTS (buffer);
   ts->duration = GST_BUFFER_DURATION (buffer);
+  ts->flags = GST_BUFFER_FLAGS (buffer);
 
   priv->timestamps = g_list_append (priv->timestamps, ts);
 }
@@ -2008,7 +1921,7 @@
 static void
 gst_video_decoder_get_timestamp_at_offset (GstVideoDecoder *
     decoder, guint64 offset, GstClockTime * pts, GstClockTime * dts,
-    GstClockTime * duration)
+    GstClockTime * duration, guint * flags)
 {
 #ifndef GST_DISABLE_GST_DEBUG
   guint64 got_offset = 0;
@@ -2019,6 +1932,7 @@
   *pts = GST_CLOCK_TIME_NONE;
   *dts = GST_CLOCK_TIME_NONE;
   *duration = GST_CLOCK_TIME_NONE;
+  *flags = 0;
 
   g = decoder->priv->timestamps;
   while (g) {
@@ -2030,6 +1944,7 @@
       *pts = ts->pts;
       *dts = ts->dts;
       *duration = ts->duration;
+      *flags = ts->flags;
       g = g->next;
       decoder->priv->timestamps = g_list_remove (decoder->priv->timestamps, ts);
       timestamp_free (ts);
@@ -2160,8 +2075,10 @@
   g_list_free_full (priv->timestamps, (GDestroyNotify) timestamp_free);
   priv->timestamps = NULL;
 
+  GST_OBJECT_LOCK (decoder);
   priv->bytes_out = 0;
   priv->time = 0;
+  GST_OBJECT_UNLOCK (decoder);
 
   GST_VIDEO_DECODER_STREAM_UNLOCK (decoder);
 }
@@ -2179,6 +2096,12 @@
 
   g_return_val_if_fail (priv->packetized || klass->parse, GST_FLOW_ERROR);
 
+  /* Draining on DISCONT is handled in chain_reverse() for reverse playback,
+   * and this function would only be called to get everything collected GOP
+   * by GOP in the parse_gather list */
+  if (decoder->input_segment.rate > 0.0 && GST_BUFFER_IS_DISCONT (buf))
+    ret = gst_video_decoder_drain_out (decoder, FALSE);
+
   if (priv->current_frame == NULL)
     priv->current_frame = gst_video_decoder_new_frame (decoder);
 
@@ -2188,7 +2111,9 @@
   priv->input_offset += gst_buffer_get_size (buf);
 
   if (priv->packetized) {
+    gboolean was_keyframe = FALSE;
     if (!GST_BUFFER_FLAG_IS_SET (buf, GST_BUFFER_FLAG_DELTA_UNIT)) {
+      was_keyframe = TRUE;
       GST_VIDEO_CODEC_FRAME_SET_SYNC_POINT (priv->current_frame);
     }
 
@@ -2201,6 +2126,16 @@
       ret = gst_video_decoder_decode_frame (decoder, priv->current_frame);
     }
     priv->current_frame = NULL;
+    /* If in trick mode and it was a keyframe, drain decoder to avoid extra
+     * latency. Only do this for forwards playback as reverse playback handles
+     * draining on keyframes in flush_parse(), and would otherwise call back
+     * from drain_out() to here causing an infinite loop.
+     * Also this function is only called for reverse playback to gather frames
+     * GOP by GOP, and does not do any actual decoding. That would be done by
+     * flush_decode() */
+    if (was_keyframe && decoder->input_segment.rate > 0.0
+        && (decoder->output_segment.flags & GST_SEEK_FLAG_TRICKMODE_KEY_UNITS))
+      gst_video_decoder_drain_out (decoder, FALSE);
   } else {
     gst_adapter_push (priv->input_adapter, buf);
 
@@ -3071,7 +3006,6 @@
 
   if (priv->discont) {
     GST_BUFFER_FLAG_SET (output_buffer, GST_BUFFER_FLAG_DISCONT);
-    priv->discont = FALSE;
   }
 
   if (decoder_class->transform_meta) {
@@ -3189,7 +3123,33 @@
     goto done;
   }
 
+  /* Is buffer too late (QoS) ? */
+  if (GST_CLOCK_TIME_IS_VALID (priv->earliest_time)
+      && GST_CLOCK_TIME_IS_VALID (cstart)) {
+    GstClockTime deadline =
+        gst_segment_to_running_time (segment, GST_FORMAT_TIME, cstart);
+    if (GST_CLOCK_TIME_IS_VALID (deadline) && deadline < priv->earliest_time) {
+      GST_DEBUG_OBJECT (decoder,
+          "Dropping frame due to QoS. start:%" GST_TIME_FORMAT " deadline:%"
+          GST_TIME_FORMAT " earliest_time:%" GST_TIME_FORMAT,
+          GST_TIME_ARGS (start), GST_TIME_ARGS (deadline),
+          GST_TIME_ARGS (priv->earliest_time));
+      gst_buffer_unref (buf);
+      priv->discont = TRUE;
+      goto done;
+    }
+  }
+
+  /* Set DISCONT flag here ! */
+
+  if (priv->discont) {
+    GST_DEBUG_OBJECT (decoder, "Setting discont on output buffer");
+    GST_BUFFER_FLAG_SET (buf, GST_BUFFER_FLAG_DISCONT);
+    priv->discont = FALSE;
+  }
+
   /* update rate estimate */
+  GST_OBJECT_LOCK (decoder);
   priv->bytes_out += gst_buffer_get_size (buf);
   if (GST_CLOCK_TIME_IS_VALID (duration)) {
     priv->time += duration;
@@ -3200,6 +3160,7 @@
     /* better none than nothing valid */
     priv->time = GST_CLOCK_TIME_NONE;
   }
+  GST_OBJECT_UNLOCK (decoder);
 
   GST_DEBUG_OBJECT (decoder, "pushing buffer %p of size %" G_GSIZE_FORMAT ", "
       "PTS %" GST_TIME_FORMAT ", dur %" GST_TIME_FORMAT, buf,
@@ -3313,6 +3274,7 @@
   GstBuffer *buffer;
   int n_available;
   GstClockTime pts, dts, duration;
+  guint flags;
   GstFlowReturn ret = GST_FLOW_OK;
 
   GST_LOG_OBJECT (decoder, "have_frame");
@@ -3329,11 +3291,16 @@
   priv->current_frame->input_buffer = buffer;
 
   gst_video_decoder_get_timestamp_at_offset (decoder,
-      priv->frame_offset, &pts, &dts, &duration);
+      priv->frame_offset, &pts, &dts, &duration, &flags);
 
   GST_BUFFER_PTS (buffer) = pts;
   GST_BUFFER_DTS (buffer) = dts;
   GST_BUFFER_DURATION (buffer) = duration;
+  GST_BUFFER_FLAGS (buffer) = flags;
+
+  if (!GST_BUFFER_FLAG_IS_SET (buffer, GST_BUFFER_FLAG_DELTA_UNIT)) {
+    GST_VIDEO_CODEC_FRAME_SET_SYNC_POINT (priv->current_frame);
+  }
 
   GST_LOG_OBJECT (decoder, "collected frame size %d, "
       "PTS %" GST_TIME_FORMAT ", DTS %" GST_TIME_FORMAT ", dur %"
@@ -3341,7 +3308,7 @@
       GST_TIME_ARGS (duration));
 
   /* In reverse playback, just capture and queue frames for later processing */
-  if (decoder->output_segment.rate < 0.0) {
+  if (decoder->input_segment.rate < 0.0) {
     priv->parse_gather =
         g_list_prepend (priv->parse_gather, priv->current_frame);
   } else {
@@ -3397,9 +3364,9 @@
   frame->abidata.ABI.ts = frame->dts;
   frame->abidata.ABI.ts2 = frame->pts;
 
-  GST_LOG_OBJECT (decoder, "PTS %" GST_TIME_FORMAT ", DTS %" GST_TIME_FORMAT,
-      GST_TIME_ARGS (frame->pts), GST_TIME_ARGS (frame->dts));
-  GST_LOG_OBJECT (decoder, "dist %d", frame->distance_from_sync);
+  GST_LOG_OBJECT (decoder, "PTS %" GST_TIME_FORMAT ", DTS %" GST_TIME_FORMAT
+      ", dist %d", GST_TIME_ARGS (frame->pts), GST_TIME_ARGS (frame->dts),
+      frame->distance_from_sync);
 
   gst_video_codec_frame_ref (frame);
   priv->frames = g_list_append (priv->frames, frame);
@@ -3797,6 +3764,8 @@
 
   if (state->caps == NULL)
     state->caps = gst_video_info_to_caps (&state->info);
+  if (state->allocation_caps == NULL)
+    state->allocation_caps = gst_caps_ref (state->caps);
 
   GST_DEBUG_OBJECT (decoder, "setting caps %" GST_PTR_FORMAT, state->caps);
 
@@ -3845,7 +3814,7 @@
     goto done;
   decoder->priv->output_state_changed = FALSE;
   /* Negotiate pool */
-  ret = gst_video_decoder_negotiate_pool (decoder, state->caps);
+  ret = gst_video_decoder_negotiate_pool (decoder, state->allocation_caps);
 
 done:
   return ret;
diff --git a/gst-libs/gst/video/gstvideodecoder.h b/gst-libs/gst/video/gstvideodecoder.h
index 34fa113..02e6753 100644
--- a/gst-libs/gst/video/gstvideodecoder.h
+++ b/gst-libs/gst/video/gstvideodecoder.h
@@ -40,7 +40,7 @@
   (G_TYPE_INSTANCE_GET_CLASS((obj),GST_TYPE_VIDEO_DECODER,GstVideoDecoderClass))
 #define GST_IS_VIDEO_DECODER(obj) \
   (G_TYPE_CHECK_INSTANCE_TYPE((obj),GST_TYPE_VIDEO_DECODER))
-#define GST_IS_VIDEO_DECODER_CLASS(obj) \
+#define GST_IS_VIDEO_DECODER_CLASS(klass) \
   (G_TYPE_CHECK_CLASS_TYPE((klass),GST_TYPE_VIDEO_DECODER))
 #define GST_VIDEO_DECODER_CAST(obj) ((GstVideoDecoder *)(obj))
 
diff --git a/gst-libs/gst/video/gstvideoencoder.c b/gst-libs/gst/video/gstvideoencoder.c
index a13d4ed..6765e28 100644
--- a/gst-libs/gst/video/gstvideoencoder.c
+++ b/gst-libs/gst/video/gstvideoencoder.c
@@ -355,8 +355,10 @@
 
   priv->drained = TRUE;
 
+  GST_OBJECT_LOCK (encoder);
   priv->bytes = 0;
   priv->time = 0;
+  GST_OBJECT_UNLOCK (encoder);
 
   priv->time_adjustment = GST_CLOCK_TIME_NONE;
 
@@ -483,59 +485,6 @@
   gst_video_encoder_reset (encoder, TRUE);
 }
 
-static gboolean
-gst_video_encoded_video_convert (gint64 bytes, gint64 time,
-    GstFormat src_format, gint64 src_value, GstFormat * dest_format,
-    gint64 * dest_value)
-{
-  gboolean res = FALSE;
-
-  g_return_val_if_fail (dest_format != NULL, FALSE);
-  g_return_val_if_fail (dest_value != NULL, FALSE);
-
-  if (G_UNLIKELY (src_format == *dest_format || src_value == 0 ||
-          src_value == -1)) {
-    if (dest_value)
-      *dest_value = src_value;
-    return TRUE;
-  }
-
-  if (bytes <= 0 || time <= 0) {
-    GST_DEBUG ("not enough metadata yet to convert");
-    goto exit;
-  }
-
-  switch (src_format) {
-    case GST_FORMAT_BYTES:
-      switch (*dest_format) {
-        case GST_FORMAT_TIME:
-          *dest_value = gst_util_uint64_scale (src_value, time, bytes);
-          res = TRUE;
-          break;
-        default:
-          res = FALSE;
-      }
-      break;
-    case GST_FORMAT_TIME:
-      switch (*dest_format) {
-        case GST_FORMAT_BYTES:
-          *dest_value = gst_util_uint64_scale (src_value, bytes, time);
-          res = TRUE;
-          break;
-        default:
-          res = FALSE;
-      }
-      break;
-    default:
-      GST_DEBUG ("unhandled conversion from %d to %d", src_format,
-          *dest_format);
-      res = FALSE;
-  }
-
-exit:
-  return res;
-}
-
 /**
  * gst_video_encoder_set_headers:
  * @encoder: a #GstVideoEncoder
@@ -836,6 +785,26 @@
       res = TRUE;
       break;
     }
+    case GST_QUERY_CONVERT:
+    {
+      GstFormat src_fmt, dest_fmt;
+      gint64 src_val, dest_val;
+
+      GST_DEBUG_OBJECT (encoder, "convert query");
+
+      gst_query_parse_convert (query, &src_fmt, &src_val, &dest_fmt, &dest_val);
+      GST_OBJECT_LOCK (encoder);
+      if (encoder->priv->input_state != NULL)
+        res = __gst_video_rawvideo_convert (encoder->priv->input_state,
+            src_fmt, src_val, &dest_fmt, &dest_val);
+      else
+        res = FALSE;
+      GST_OBJECT_UNLOCK (encoder);
+      if (!res)
+        goto error;
+      gst_query_set_convert (query, src_fmt, src_val, dest_fmt, dest_val);
+      break;
+    }
     case GST_QUERY_ALLOCATION:
     {
       GstVideoEncoderClass *klass = GST_VIDEO_ENCODER_GET_CLASS (encoder);
@@ -849,6 +818,10 @@
       break;
   }
   return res;
+
+error:
+  GST_DEBUG_OBJECT (encoder, "query failed");
+  return res;
 }
 
 static gboolean
@@ -1266,9 +1239,11 @@
       gint64 src_val, dest_val;
 
       gst_query_parse_convert (query, &src_fmt, &src_val, &dest_fmt, &dest_val);
+      GST_OBJECT_LOCK (enc);
       res =
-          gst_video_encoded_video_convert (priv->bytes, priv->time, src_fmt,
+          __gst_video_encoded_video_convert (priv->bytes, priv->time, src_fmt,
           src_val, &dest_fmt, &dest_val);
+      GST_OBJECT_UNLOCK (enc);
       if (!res)
         goto error;
       gst_query_set_convert (query, src_fmt, src_val, dest_fmt, dest_val);
@@ -1630,6 +1605,9 @@
     encoder->priv->output_state_changed = FALSE;
   }
 
+  if (state->allocation_caps == NULL)
+    state->allocation_caps = gst_caps_ref (state->caps);
+
   /* Push all pending pre-caps events of the oldest frame before
    * setting caps */
   frame = encoder->priv->frames ? encoder->priv->frames->data : NULL;
@@ -1668,7 +1646,7 @@
   if (!ret)
     goto done;
 
-  query = gst_query_new_allocation (state->caps, TRUE);
+  query = gst_query_new_allocation (state->allocation_caps, TRUE);
   if (!gst_pad_peer_query (encoder->srcpad, query)) {
     GST_DEBUG_OBJECT (encoder, "didn't get downstream ALLOCATION hints");
   }
@@ -2122,6 +2100,7 @@
   GST_BUFFER_DTS (frame->output_buffer) = frame->dts;
   GST_BUFFER_DURATION (frame->output_buffer) = frame->duration;
 
+  GST_OBJECT_LOCK (encoder);
   /* update rate estimate */
   priv->bytes += gst_buffer_get_size (frame->output_buffer);
   if (GST_CLOCK_TIME_IS_VALID (frame->duration)) {
@@ -2130,6 +2109,7 @@
     /* better none than nothing valid */
     priv->time = GST_CLOCK_TIME_NONE;
   }
+  GST_OBJECT_UNLOCK (encoder);
 
   if (G_UNLIKELY (send_headers || priv->new_headers)) {
     GList *tmp, *copy = NULL;
@@ -2148,7 +2128,9 @@
     for (tmp = priv->headers; tmp; tmp = tmp->next) {
       GstBuffer *tmpbuf = GST_BUFFER (tmp->data);
 
+      GST_OBJECT_LOCK (encoder);
       priv->bytes += gst_buffer_get_size (tmpbuf);
+      GST_OBJECT_UNLOCK (encoder);
       if (G_UNLIKELY (discont)) {
         GST_LOG_OBJECT (encoder, "marking discont");
         GST_BUFFER_FLAG_SET (tmpbuf, GST_BUFFER_FLAG_DISCONT);
diff --git a/gst-libs/gst/video/gstvideoencoder.h b/gst-libs/gst/video/gstvideoencoder.h
index 171d3c9..9282b1c 100644
--- a/gst-libs/gst/video/gstvideoencoder.h
+++ b/gst-libs/gst/video/gstvideoencoder.h
@@ -39,7 +39,7 @@
   (G_TYPE_INSTANCE_GET_CLASS((obj),GST_TYPE_VIDEO_ENCODER,GstVideoEncoderClass))
 #define GST_IS_VIDEO_ENCODER(obj) \
   (G_TYPE_CHECK_INSTANCE_TYPE((obj),GST_TYPE_VIDEO_ENCODER))
-#define GST_IS_VIDEO_ENCODER_CLASS(obj) \
+#define GST_IS_VIDEO_ENCODER_CLASS(klass) \
   (G_TYPE_CHECK_CLASS_TYPE((klass),GST_TYPE_VIDEO_ENCODER))
 #define GST_VIDEO_ENCODER_CAST(enc) ((GstVideoEncoder*)enc)
 
diff --git a/gst-libs/gst/video/gstvideometa.c b/gst-libs/gst/video/gstvideometa.c
index 30c259c..ae3e43f 100644
--- a/gst-libs/gst/video/gstvideometa.c
+++ b/gst-libs/gst/video/gstvideometa.c
@@ -43,6 +43,24 @@
 #endif /* GST_DISABLE_GST_DEBUG */
 
 static gboolean
+gst_video_meta_init (GstMeta * meta, gpointer params, GstBuffer * buffer)
+{
+  GstVideoMeta *emeta = (GstVideoMeta *) meta;
+
+  emeta->buffer = NULL;
+  emeta->flags = GST_VIDEO_FRAME_FLAG_NONE;
+  emeta->format = GST_VIDEO_FORMAT_UNKNOWN;
+  emeta->id = 0;
+  emeta->width = emeta->height = emeta->n_planes = 0;
+  memset (emeta->offset, 0, sizeof (emeta->offset));
+  memset (emeta->stride, 0, sizeof (emeta->stride));
+  emeta->map = NULL;
+  emeta->unmap = NULL;
+
+  return TRUE;
+}
+
+static gboolean
 gst_video_meta_transform (GstBuffer * dest, GstMeta * meta,
     GstBuffer * buffer, GQuark type, gpointer data)
 {
@@ -113,7 +131,7 @@
   if (g_once_init_enter (&video_meta_info)) {
     const GstMetaInfo *meta =
         gst_meta_register (GST_VIDEO_META_API_TYPE, "GstVideoMeta",
-        sizeof (GstVideoMeta), (GstMetaInitFunction) NULL,
+        sizeof (GstVideoMeta), (GstMetaInitFunction) gst_video_meta_init,
         (GstMetaFreeFunction) NULL, gst_video_meta_transform);
     g_once_init_leave (&video_meta_info, meta);
   }
@@ -425,6 +443,15 @@
   return type;
 }
 
+static gboolean
+gst_video_crop_meta_init (GstMeta * meta, gpointer params, GstBuffer * buffer)
+{
+  GstVideoCropMeta *emeta = (GstVideoCropMeta *) meta;
+  emeta->x = emeta->y = emeta->width = emeta->height = 0;
+
+  return TRUE;
+}
+
 const GstMetaInfo *
 gst_video_crop_meta_get_info (void)
 {
@@ -433,7 +460,8 @@
   if (g_once_init_enter (&video_crop_meta_info)) {
     const GstMetaInfo *meta =
         gst_meta_register (GST_VIDEO_CROP_META_API_TYPE, "GstVideoCropMeta",
-        sizeof (GstVideoCropMeta), (GstMetaInitFunction) NULL,
+        sizeof (GstVideoCropMeta),
+        (GstMetaInitFunction) gst_video_crop_meta_init,
         (GstMetaFreeFunction) NULL, gst_video_crop_meta_transform);
     g_once_init_leave (&video_crop_meta_info, meta);
   }
@@ -474,6 +502,25 @@
   return type;
 }
 
+static gboolean
+gst_video_gl_texture_upload_meta_init (GstMeta * meta, gpointer params,
+    GstBuffer * buffer)
+{
+  GstVideoGLTextureUploadMeta *vmeta = (GstVideoGLTextureUploadMeta *) meta;
+
+  vmeta->texture_orientation =
+      GST_VIDEO_GL_TEXTURE_ORIENTATION_X_NORMAL_Y_NORMAL;
+  vmeta->n_textures = 0;
+  memset (vmeta->texture_type, 0, sizeof (vmeta->texture_type));
+  vmeta->buffer = NULL;
+  vmeta->upload = NULL;
+  vmeta->user_data = NULL;
+  vmeta->user_data_copy = NULL;
+  vmeta->user_data_free = NULL;
+
+  return TRUE;
+}
+
 static void
 gst_video_gl_texture_upload_meta_free (GstMeta * meta, GstBuffer * buffer)
 {
@@ -532,7 +579,7 @@
         gst_meta_register (GST_VIDEO_GL_TEXTURE_UPLOAD_META_API_TYPE,
         "GstVideoGLTextureUploadMeta",
         sizeof (GstVideoGLTextureUploadMeta),
-        NULL,
+        gst_video_gl_texture_upload_meta_init,
         gst_video_gl_texture_upload_meta_free,
         gst_video_gl_texture_upload_meta_transform);
     g_once_init_leave (&info, meta);
@@ -682,6 +729,7 @@
     GstBuffer * buffer)
 {
   GstVideoRegionOfInterestMeta *emeta = (GstVideoRegionOfInterestMeta *) meta;
+  emeta->roi_type = 0;
   emeta->id = 0;
   emeta->parent_id = 0;
   emeta->x = emeta->y = emeta->w = emeta->h = 0;
diff --git a/gst-libs/gst/video/gstvideoutils.c b/gst-libs/gst/video/gstvideoutils.c
index b3decaf..8a3a230 100644
--- a/gst-libs/gst/video/gstvideoutils.c
+++ b/gst-libs/gst/video/gstvideoutils.c
@@ -162,6 +162,8 @@
 
   if (state->caps)
     gst_caps_unref (state->caps);
+  if (state->allocation_caps)
+    gst_caps_unref (state->allocation_caps);
   if (state->codec_data)
     gst_buffer_unref (state->codec_data);
   g_slice_free (GstVideoCodecState, state);
diff --git a/gst-libs/gst/video/gstvideoutils.h b/gst-libs/gst/video/gstvideoutils.h
index deea0ee..f7aed89 100644
--- a/gst-libs/gst/video/gstvideoutils.h
+++ b/gst-libs/gst/video/gstvideoutils.h
@@ -41,9 +41,11 @@
 /**
  * GstVideoCodecState:
  * @info: The #GstVideoInfo describing the stream
- * @caps: The #GstCaps
+ * @caps: The #GstCaps used in the caps negotiation of the pad.
  * @codec_data: a #GstBuffer corresponding to the
  *     'codec_data' field of a stream, or NULL.
+ * @allocation_caps: The #GstCaps for allocation query and pool
+ *     negotiation. Since: 1.10
  *
  * Structure representing the state of an incoming or outgoing video
  * stream for encoders and decoders.
@@ -67,8 +69,10 @@
 
   GstBuffer *codec_data;
 
+  GstCaps *allocation_caps;
+
   /*< private >*/
-  void         *padding[GST_PADDING_LARGE];
+  void         *padding[GST_PADDING_LARGE - 1];
 };
 
 /**
diff --git a/gst-libs/gst/video/gstvideoutilsprivate.c b/gst-libs/gst/video/gstvideoutilsprivate.c
index 652c60d..e5e7c2d 100644
--- a/gst-libs/gst/video/gstvideoutilsprivate.c
+++ b/gst-libs/gst/video/gstvideoutilsprivate.c
@@ -144,3 +144,114 @@
 
   return fcaps;
 }
+
+gboolean
+__gst_video_rawvideo_convert (GstVideoCodecState * state,
+    GstFormat src_format, gint64 src_value,
+    GstFormat * dest_format, gint64 * dest_value)
+{
+  gboolean res = FALSE;
+  guint vidsize;
+  guint fps_n, fps_d;
+
+  g_return_val_if_fail (dest_format != NULL, FALSE);
+  g_return_val_if_fail (dest_value != NULL, FALSE);
+
+  if (src_format == *dest_format || src_value == 0 || src_value == -1) {
+    *dest_value = src_value;
+    return TRUE;
+  }
+
+  vidsize = GST_VIDEO_INFO_SIZE (&state->info);
+  fps_n = GST_VIDEO_INFO_FPS_N (&state->info);
+  fps_d = GST_VIDEO_INFO_FPS_D (&state->info);
+
+  if (src_format == GST_FORMAT_BYTES &&
+      *dest_format == GST_FORMAT_DEFAULT && vidsize) {
+    /* convert bytes to frames */
+    *dest_value = gst_util_uint64_scale_int (src_value, 1, vidsize);
+    res = TRUE;
+  } else if (src_format == GST_FORMAT_DEFAULT &&
+      *dest_format == GST_FORMAT_BYTES && vidsize) {
+    /* convert bytes to frames */
+    *dest_value = src_value * vidsize;
+    res = TRUE;
+  } else if (src_format == GST_FORMAT_DEFAULT &&
+      *dest_format == GST_FORMAT_TIME && fps_n) {
+    /* convert frames to time */
+    *dest_value = gst_util_uint64_scale (src_value, GST_SECOND * fps_d, fps_n);
+    res = TRUE;
+  } else if (src_format == GST_FORMAT_TIME &&
+      *dest_format == GST_FORMAT_DEFAULT && fps_d) {
+    /* convert time to frames */
+    *dest_value = gst_util_uint64_scale (src_value, fps_n, GST_SECOND * fps_d);
+    res = TRUE;
+  } else if (src_format == GST_FORMAT_TIME &&
+      *dest_format == GST_FORMAT_BYTES && fps_d && vidsize) {
+    /* convert time to bytes */
+    *dest_value = gst_util_uint64_scale (src_value,
+        fps_n * (guint64) vidsize, GST_SECOND * fps_d);
+    res = TRUE;
+  } else if (src_format == GST_FORMAT_BYTES &&
+      *dest_format == GST_FORMAT_TIME && fps_n && vidsize) {
+    /* convert bytes to time */
+    *dest_value = gst_util_uint64_scale (src_value,
+        GST_SECOND * fps_d, fps_n * (guint64) vidsize);
+    res = TRUE;
+  }
+
+  return res;
+}
+
+gboolean
+__gst_video_encoded_video_convert (gint64 bytes, gint64 time,
+    GstFormat src_format, gint64 src_value, GstFormat * dest_format,
+    gint64 * dest_value)
+{
+  gboolean res = FALSE;
+
+  g_return_val_if_fail (dest_format != NULL, FALSE);
+  g_return_val_if_fail (dest_value != NULL, FALSE);
+
+  if (G_UNLIKELY (src_format == *dest_format || src_value == 0 ||
+          src_value == -1)) {
+    if (dest_value)
+      *dest_value = src_value;
+    return TRUE;
+  }
+
+  if (bytes <= 0 || time <= 0) {
+    GST_DEBUG ("not enough metadata yet to convert");
+    goto exit;
+  }
+
+  switch (src_format) {
+    case GST_FORMAT_BYTES:
+      switch (*dest_format) {
+        case GST_FORMAT_TIME:
+          *dest_value = gst_util_uint64_scale (src_value, time, bytes);
+          res = TRUE;
+          break;
+        default:
+          res = FALSE;
+      }
+      break;
+    case GST_FORMAT_TIME:
+      switch (*dest_format) {
+        case GST_FORMAT_BYTES:
+          *dest_value = gst_util_uint64_scale (src_value, bytes, time);
+          res = TRUE;
+          break;
+        default:
+          res = FALSE;
+      }
+      break;
+    default:
+      GST_DEBUG ("unhandled conversion from %d to %d", src_format,
+          *dest_format);
+      res = FALSE;
+  }
+
+exit:
+  return res;
+}
diff --git a/gst-libs/gst/video/gstvideoutilsprivate.h b/gst-libs/gst/video/gstvideoutilsprivate.h
index a968790..bee1106 100644
--- a/gst-libs/gst/video/gstvideoutilsprivate.h
+++ b/gst-libs/gst/video/gstvideoutilsprivate.h
@@ -36,6 +36,16 @@
                                             GstPad * srcpad, GstCaps * initial_caps,
                                             GstCaps * filter);
 
+G_GNUC_INTERNAL
+gboolean __gst_video_encoded_video_convert (gint64 bytes, gint64 time,
+                                            GstFormat src_format, gint64 src_value,
+                                            GstFormat * dest_format, gint64 * dest_value);
+
+G_GNUC_INTERNAL
+gboolean __gst_video_rawvideo_convert (GstVideoCodecState * state, GstFormat src_format,
+                                       gint64 src_value, GstFormat * dest_format,
+                                       gint64 * dest_value);
+
 G_END_DECLS
 
 #endif
diff --git a/gst-libs/gst/video/video-converter.c b/gst-libs/gst/video/video-converter.c
index f29278d..de9bab4 100644
--- a/gst-libs/gst/video/video-converter.c
+++ b/gst-libs/gst/video/video-converter.c
@@ -395,8 +395,6 @@
       g_ptr_array_remove_range (cache->lines, 0, to_remove);
     }
     cache->first += to_remove;
-    if (cache->first < in_line)
-      cache->first = in_line;
   } else if (in_line < cache->first) {
     gst_line_cache_clear (cache);
     cache->first = in_line;
@@ -1457,7 +1455,7 @@
         taps, convert->in_height, convert->out_height, convert->config);
 
     gst_video_scaler_get_coeff (convert->v_scaler_i, 0, NULL, &taps_i);
-    backlog = BACKLOG;
+    backlog = taps_i;
   }
   convert->v_scaler_p =
       gst_video_scaler_new (method, 0, taps, convert->in_height,
@@ -1909,8 +1907,8 @@
     if (!cache->pass_alloc) {
       /* can't pass allocator, make new temp line allocator */
       user_data =
-          converter_alloc_new (sizeof (guint16) * width * 4, n_lines + BACKLOG,
-          convert, NULL);
+          converter_alloc_new (sizeof (guint16) * width * 4,
+          n_lines + cache->backlog, convert, NULL);
       notify = (GDestroyNotify) converter_alloc_free;
       alloc_line = get_temp_line;
       alloc_writable = FALSE;
@@ -3599,9 +3597,93 @@
     sv = FRAME_GET_V_LINE (src, (i + convert->in_y) >> 1);
     sv += (convert->in_x >> 1);
 
+#if G_BYTE_ORDER == G_LITTLE_ENDIAN
     video_orc_convert_I420_BGRA (d, sy, su, sv,
         data->im[0][0], data->im[0][2],
         data->im[2][1], data->im[1][1], data->im[1][2], width);
+#else
+    video_orc_convert_I420_ARGB (d, sy, su, sv,
+        data->im[0][0], data->im[0][2],
+        data->im[2][1], data->im[1][1], data->im[1][2], width);
+#endif
+  }
+  convert_fill_border (convert, dest);
+}
+
+static void
+convert_I420_ARGB (GstVideoConverter * convert, const GstVideoFrame * src,
+    GstVideoFrame * dest)
+{
+  int i;
+  gint width = convert->in_width;
+  gint height = convert->in_height;
+  MatrixData *data = &convert->convert_matrix;
+
+  for (i = 0; i < height; i++) {
+    guint8 *sy, *su, *sv, *d;
+
+    d = FRAME_GET_LINE (dest, i + convert->out_y);
+    d += (convert->out_x * 4);
+    sy = FRAME_GET_Y_LINE (src, i + convert->in_y);
+    sy += convert->in_x;
+    su = FRAME_GET_U_LINE (src, (i + convert->in_y) >> 1);
+    su += (convert->in_x >> 1);
+    sv = FRAME_GET_V_LINE (src, (i + convert->in_y) >> 1);
+    sv += (convert->in_x >> 1);
+
+#if G_BYTE_ORDER == G_LITTLE_ENDIAN
+    video_orc_convert_I420_ARGB (d, sy, su, sv,
+        data->im[0][0], data->im[0][2],
+        data->im[2][1], data->im[1][1], data->im[1][2], width);
+#else
+    video_orc_convert_I420_BGRA (d, sy, su, sv,
+        data->im[0][0], data->im[0][2],
+        data->im[2][1], data->im[1][1], data->im[1][2], width);
+#endif
+  }
+  convert_fill_border (convert, dest);
+}
+
+static void
+convert_I420_pack_ARGB (GstVideoConverter * convert, const GstVideoFrame * src,
+    GstVideoFrame * dest)
+{
+  int i;
+  gint width = convert->in_width;
+  gint height = convert->in_height;
+  MatrixData *data = &convert->convert_matrix;
+  gpointer tmp = convert->tmpline;
+  gpointer d[GST_VIDEO_MAX_PLANES];
+  gint pstride = GST_VIDEO_FORMAT_INFO_PSTRIDE (dest->info.finfo, 0);
+
+  d[0] = FRAME_GET_LINE (dest, 0);
+  d[0] = (guint8 *) d[0] + convert->out_x * pstride;
+
+  for (i = 0; i < height; i++) {
+    guint8 *sy, *su, *sv;
+
+    sy = FRAME_GET_Y_LINE (src, i + convert->in_y);
+    sy += convert->in_x;
+    su = FRAME_GET_U_LINE (src, (i + convert->in_y) >> 1);
+    su += (convert->in_x >> 1);
+    sv = FRAME_GET_V_LINE (src, (i + convert->in_y) >> 1);
+    sv += (convert->in_x >> 1);
+
+#if G_BYTE_ORDER == G_LITTLE_ENDIAN
+    video_orc_convert_I420_ARGB (tmp, sy, su, sv,
+        data->im[0][0], data->im[0][2],
+        data->im[2][1], data->im[1][1], data->im[1][2], width);
+#else
+    video_orc_convert_I420_BGRA (tmp, sy, su, sv,
+        data->im[0][0], data->im[0][2],
+        data->im[2][1], data->im[1][1], data->im[1][2], width);
+#endif
+    dest->info.finfo->pack_func (dest->info.finfo,
+        (GST_VIDEO_FRAME_IS_INTERLACED (dest) ?
+            GST_VIDEO_PACK_FLAG_INTERLACED :
+            GST_VIDEO_PACK_FLAG_NONE),
+        tmp, 0, d, dest->info.stride,
+        dest->info.chroma_site, i + convert->out_y, width);
   }
   convert_fill_border (convert, dest);
 }
@@ -3968,6 +4050,7 @@
     case GST_VIDEO_FORMAT_RGB:
     case GST_VIDEO_FORMAT_BGR:
     case GST_VIDEO_FORMAT_v308:
+    case GST_VIDEO_FORMAT_IYU2:
     case GST_VIDEO_FORMAT_ARGB64:
     case GST_VIDEO_FORMAT_AYUV64:
       res = format;
@@ -4008,6 +4091,8 @@
     case GST_VIDEO_FORMAT_A422_10LE:
     case GST_VIDEO_FORMAT_A444_10BE:
     case GST_VIDEO_FORMAT_A444_10LE:
+    case GST_VIDEO_FORMAT_P010_10BE:
+    case GST_VIDEO_FORMAT_P010_10LE:
       res = format;
       g_assert_not_reached ();
       break;
@@ -4609,6 +4694,7 @@
       FALSE, FALSE, FALSE, 0, 0, convert_AYUV_ABGR},    /* alias */
   {GST_VIDEO_FORMAT_AYUV, GST_VIDEO_FORMAT_RGBx, TRUE, TRUE, TRUE, TRUE, TRUE,
       FALSE, FALSE, FALSE, 0, 0, convert_AYUV_RGBA},    /* alias */
+#endif
 
   {GST_VIDEO_FORMAT_I420, GST_VIDEO_FORMAT_BGRA, FALSE, TRUE, TRUE, TRUE,
       TRUE, FALSE, FALSE, FALSE, 0, 0, convert_I420_BGRA},
@@ -4618,7 +4704,57 @@
       TRUE, FALSE, FALSE, FALSE, 0, 0, convert_I420_BGRA},
   {GST_VIDEO_FORMAT_YV12, GST_VIDEO_FORMAT_BGRx, FALSE, TRUE, TRUE, TRUE,
       TRUE, FALSE, FALSE, FALSE, 0, 0, convert_I420_BGRA},
-#endif
+
+  {GST_VIDEO_FORMAT_I420, GST_VIDEO_FORMAT_ARGB, FALSE, TRUE, TRUE, TRUE,
+      TRUE, FALSE, FALSE, FALSE, 0, 0, convert_I420_ARGB},
+  {GST_VIDEO_FORMAT_I420, GST_VIDEO_FORMAT_xRGB, FALSE, TRUE, TRUE, TRUE,
+      TRUE, FALSE, FALSE, FALSE, 0, 0, convert_I420_ARGB},
+  {GST_VIDEO_FORMAT_YV12, GST_VIDEO_FORMAT_ARGB, FALSE, TRUE, TRUE, TRUE,
+      TRUE, FALSE, FALSE, FALSE, 0, 0, convert_I420_ARGB},
+  {GST_VIDEO_FORMAT_YV12, GST_VIDEO_FORMAT_xRGB, FALSE, TRUE, TRUE, TRUE,
+      TRUE, FALSE, FALSE, FALSE, 0, 0, convert_I420_ARGB},
+
+  {GST_VIDEO_FORMAT_I420, GST_VIDEO_FORMAT_ABGR, FALSE, TRUE, TRUE, TRUE,
+      TRUE, FALSE, FALSE, FALSE, 0, 0, convert_I420_pack_ARGB},
+  {GST_VIDEO_FORMAT_I420, GST_VIDEO_FORMAT_xBGR, FALSE, TRUE, TRUE, TRUE,
+      TRUE, FALSE, FALSE, FALSE, 0, 0, convert_I420_pack_ARGB},
+  {GST_VIDEO_FORMAT_I420, GST_VIDEO_FORMAT_RGBA, FALSE, TRUE, TRUE, TRUE,
+      TRUE, FALSE, FALSE, FALSE, 0, 0, convert_I420_pack_ARGB},
+  {GST_VIDEO_FORMAT_I420, GST_VIDEO_FORMAT_RGBx, FALSE, TRUE, TRUE, TRUE,
+      TRUE, FALSE, FALSE, FALSE, 0, 0, convert_I420_pack_ARGB},
+  {GST_VIDEO_FORMAT_I420, GST_VIDEO_FORMAT_RGB, FALSE, TRUE, TRUE, TRUE,
+      TRUE, FALSE, FALSE, FALSE, 0, 0, convert_I420_pack_ARGB},
+  {GST_VIDEO_FORMAT_I420, GST_VIDEO_FORMAT_BGR, FALSE, TRUE, TRUE, TRUE,
+      TRUE, FALSE, FALSE, FALSE, 0, 0, convert_I420_pack_ARGB},
+  {GST_VIDEO_FORMAT_I420, GST_VIDEO_FORMAT_RGB15, FALSE, TRUE, TRUE, TRUE,
+      TRUE, FALSE, FALSE, FALSE, 0, 0, convert_I420_pack_ARGB},
+  {GST_VIDEO_FORMAT_I420, GST_VIDEO_FORMAT_BGR15, FALSE, TRUE, TRUE, TRUE,
+      TRUE, FALSE, FALSE, FALSE, 0, 0, convert_I420_pack_ARGB},
+  {GST_VIDEO_FORMAT_I420, GST_VIDEO_FORMAT_RGB16, FALSE, TRUE, TRUE, TRUE,
+      TRUE, FALSE, FALSE, FALSE, 0, 0, convert_I420_pack_ARGB},
+  {GST_VIDEO_FORMAT_I420, GST_VIDEO_FORMAT_BGR16, FALSE, TRUE, TRUE, TRUE,
+      TRUE, FALSE, FALSE, FALSE, 0, 0, convert_I420_pack_ARGB},
+
+  {GST_VIDEO_FORMAT_YV12, GST_VIDEO_FORMAT_ABGR, FALSE, TRUE, TRUE, TRUE,
+      TRUE, FALSE, FALSE, FALSE, 0, 0, convert_I420_pack_ARGB},
+  {GST_VIDEO_FORMAT_YV12, GST_VIDEO_FORMAT_xBGR, FALSE, TRUE, TRUE, TRUE,
+      TRUE, FALSE, FALSE, FALSE, 0, 0, convert_I420_pack_ARGB},
+  {GST_VIDEO_FORMAT_YV12, GST_VIDEO_FORMAT_RGBA, FALSE, TRUE, TRUE, TRUE,
+      TRUE, FALSE, FALSE, FALSE, 0, 0, convert_I420_pack_ARGB},
+  {GST_VIDEO_FORMAT_YV12, GST_VIDEO_FORMAT_RGBx, FALSE, TRUE, TRUE, TRUE,
+      TRUE, FALSE, FALSE, FALSE, 0, 0, convert_I420_pack_ARGB},
+  {GST_VIDEO_FORMAT_YV12, GST_VIDEO_FORMAT_RGB, FALSE, TRUE, TRUE, TRUE,
+      TRUE, FALSE, FALSE, FALSE, 0, 0, convert_I420_pack_ARGB},
+  {GST_VIDEO_FORMAT_YV12, GST_VIDEO_FORMAT_BGR, FALSE, TRUE, TRUE, TRUE,
+      TRUE, FALSE, FALSE, FALSE, 0, 0, convert_I420_pack_ARGB},
+  {GST_VIDEO_FORMAT_YV12, GST_VIDEO_FORMAT_RGB15, FALSE, TRUE, TRUE, TRUE,
+      TRUE, FALSE, FALSE, FALSE, 0, 0, convert_I420_pack_ARGB},
+  {GST_VIDEO_FORMAT_YV12, GST_VIDEO_FORMAT_BGR15, FALSE, TRUE, TRUE, TRUE,
+      TRUE, FALSE, FALSE, FALSE, 0, 0, convert_I420_pack_ARGB},
+  {GST_VIDEO_FORMAT_YV12, GST_VIDEO_FORMAT_RGB16, FALSE, TRUE, TRUE, TRUE,
+      TRUE, FALSE, FALSE, FALSE, 0, 0, convert_I420_pack_ARGB},
+  {GST_VIDEO_FORMAT_YV12, GST_VIDEO_FORMAT_BGR16, FALSE, TRUE, TRUE, TRUE,
+      TRUE, FALSE, FALSE, FALSE, 0, 0, convert_I420_pack_ARGB},
 
   /* scalers */
   {GST_VIDEO_FORMAT_GBR, GST_VIDEO_FORMAT_GBR, TRUE, FALSE, FALSE, TRUE,
@@ -4642,6 +4778,8 @@
       FALSE, FALSE, FALSE, 0, 0, convert_scale_planes},
   {GST_VIDEO_FORMAT_v308, GST_VIDEO_FORMAT_v308, TRUE, FALSE, FALSE, TRUE, TRUE,
       FALSE, FALSE, FALSE, 0, 0, convert_scale_planes},
+  {GST_VIDEO_FORMAT_IYU2, GST_VIDEO_FORMAT_IYU2, TRUE, FALSE, FALSE, TRUE, TRUE,
+      FALSE, FALSE, FALSE, 0, 0, convert_scale_planes},
 
   {GST_VIDEO_FORMAT_ARGB, GST_VIDEO_FORMAT_ARGB, TRUE, FALSE, FALSE, TRUE, TRUE,
       TRUE, FALSE, FALSE, 0, 0, convert_scale_planes},
diff --git a/gst-libs/gst/video/video-format.c b/gst-libs/gst/video/video-format.c
index cff8189..1369d6a 100644
--- a/gst-libs/gst/video/video-format.c
+++ b/gst-libs/gst/video/video-format.c
@@ -416,6 +416,43 @@
   }
 }
 
+#define PACK_IYU2 GST_VIDEO_FORMAT_AYUV, unpack_IYU2, 1, pack_IYU2
+static void
+unpack_IYU2 (const GstVideoFormatInfo * info, GstVideoPackFlags flags,
+    gpointer dest, const gpointer data[GST_VIDEO_MAX_PLANES],
+    const gint stride[GST_VIDEO_MAX_PLANES], gint x, gint y, gint width)
+{
+  int i;
+  const guint8 *restrict s = GET_LINE (y);
+  guint8 *restrict d = dest;
+
+  s += x * 3;
+
+  for (i = 0; i < width; i++) {
+    d[i * 4 + 0] = 0xff;
+    d[i * 4 + 1] = s[i * 3 + 1];
+    d[i * 4 + 2] = s[i * 3 + 0];
+    d[i * 4 + 3] = s[i * 3 + 2];
+  }
+}
+
+static void
+pack_IYU2 (const GstVideoFormatInfo * info, GstVideoPackFlags flags,
+    const gpointer src, gint sstride, gpointer data[GST_VIDEO_MAX_PLANES],
+    const gint stride[GST_VIDEO_MAX_PLANES], GstVideoChromaSite chroma_site,
+    gint y, gint width)
+{
+  int i;
+  guint8 *restrict d = GET_LINE (y);
+  const guint8 *restrict s = src;
+
+  for (i = 0; i < width; i++) {
+    d[i * 3 + 0] = s[i * 4 + 2];
+    d[i * 3 + 1] = s[i * 4 + 1];
+    d[i * 3 + 2] = s[i * 4 + 3];
+  }
+}
+
 #define PACK_AYUV GST_VIDEO_FORMAT_AYUV, unpack_copy4, 1, pack_copy4
 #define PACK_ARGB GST_VIDEO_FORMAT_ARGB, unpack_copy4, 1, pack_copy4
 static void
@@ -3306,6 +3343,252 @@
   }
 }
 
+#define PACK_P010_10BE GST_VIDEO_FORMAT_AYUV64, unpack_P010_10BE, 1, pack_P010_10BE
+static void
+unpack_P010_10BE (const GstVideoFormatInfo * info, GstVideoPackFlags flags,
+    gpointer dest, const gpointer data[GST_VIDEO_MAX_PLANES],
+    const gint stride[GST_VIDEO_MAX_PLANES], gint x, gint y, gint width)
+{
+  int i;
+  gint uv = GET_UV_420 (y, flags);
+  const guint16 *restrict sy = GET_PLANE_LINE (0, y);
+  const guint16 *restrict suv = GET_PLANE_LINE (1, uv);
+  guint16 *restrict d = dest, Y0, Y1, U, V;
+
+  sy += x;
+  suv += (x & ~1);
+
+  if (x & 1) {
+    Y0 = GST_READ_UINT16_BE (sy);
+    U = GST_READ_UINT16_BE (suv);
+    V = GST_READ_UINT16_BE (suv + 1);
+
+    if (!(flags & GST_VIDEO_PACK_FLAG_TRUNCATE_RANGE)) {
+      Y0 |= (Y0 >> 10);
+      U |= (U >> 10);
+      V |= (V >> 10);
+    }
+
+    d[0] = 0xffff;
+    d[1] = Y0;
+    d[2] = U;
+    d[3] = V;
+    width--;
+    d += 4;
+    sy += 1;
+    suv += 2;
+  }
+
+  for (i = 0; i < width / 2; i++) {
+    Y0 = GST_READ_UINT16_BE (sy + 2 * i);
+    Y1 = GST_READ_UINT16_BE (sy + 2 * i + 1);
+    U = GST_READ_UINT16_BE (suv + 2 * i);
+    V = GST_READ_UINT16_BE (suv + 2 * i + 1);
+
+    if (!(flags & GST_VIDEO_PACK_FLAG_TRUNCATE_RANGE)) {
+      Y0 |= (Y0 >> 10);
+      Y1 |= (Y1 >> 10);
+      U |= (U >> 10);
+      V |= (V >> 10);
+    }
+
+    d[i * 8 + 0] = 0xffff;
+    d[i * 8 + 1] = Y0;
+    d[i * 8 + 2] = U;
+    d[i * 8 + 3] = V;
+    d[i * 8 + 4] = 0xffff;
+    d[i * 8 + 5] = Y1;
+    d[i * 8 + 6] = U;
+    d[i * 8 + 7] = V;
+  }
+
+  if (width & 1) {
+    gint i = width - 1;
+
+    Y0 = GST_READ_UINT16_BE (sy + i);
+    U = GST_READ_UINT16_BE (suv + i);
+    V = GST_READ_UINT16_BE (suv + i + 1);
+
+    if (!(flags & GST_VIDEO_PACK_FLAG_TRUNCATE_RANGE)) {
+      Y0 |= (Y0 >> 10);
+      U |= (U >> 10);
+      V |= (V >> 10);
+    }
+
+    d[i * 4 + 0] = 0xffff;
+    d[i * 4 + 1] = Y0;
+    d[i * 4 + 2] = U;
+    d[i * 4 + 3] = V;
+  }
+}
+
+static void
+pack_P010_10BE (const GstVideoFormatInfo * info, GstVideoPackFlags flags,
+    const gpointer src, gint sstride, gpointer data[GST_VIDEO_MAX_PLANES],
+    const gint stride[GST_VIDEO_MAX_PLANES], GstVideoChromaSite chroma_site,
+    gint y, gint width)
+{
+  int i;
+  gint uv = GET_UV_420 (y, flags);
+  guint16 *restrict dy = GET_PLANE_LINE (0, y);
+  guint16 *restrict duv = GET_PLANE_LINE (1, uv);
+  guint16 Y0, Y1, U, V;
+  const guint16 *restrict s = src;
+
+  if (IS_CHROMA_LINE_420 (y, flags)) {
+    for (i = 0; i < width / 2; i++) {
+      Y0 = s[i * 8 + 1] & 0xffc0;
+      Y1 = s[i * 8 + 5] & 0xffc0;
+      U = s[i * 8 + 2] & 0xffc0;
+      V = s[i * 8 + 3] & 0xffc0;
+
+      GST_WRITE_UINT16_BE (dy + i * 2 + 0, Y0);
+      GST_WRITE_UINT16_BE (dy + i * 2 + 1, Y1);
+      GST_WRITE_UINT16_BE (duv + i * 2 + 0, U);
+      GST_WRITE_UINT16_BE (duv + i * 2 + 1, V);
+    }
+    if (width & 1) {
+      gint i = width - 1;
+
+      Y0 = s[i * 4 + 1] & 0xffc0;
+      U = s[i * 4 + 2] & 0xffc0;
+      V = s[i * 4 + 3] & 0xffc0;
+
+      GST_WRITE_UINT16_BE (dy + i, Y0);
+      GST_WRITE_UINT16_BE (duv + i + 0, U);
+      GST_WRITE_UINT16_BE (duv + i + 1, V);
+    }
+  } else {
+    for (i = 0; i < width; i++) {
+      Y0 = s[i * 4 + 1] & 0xffc0;
+      GST_WRITE_UINT16_BE (dy + i, Y0);
+    }
+  }
+}
+
+#define PACK_P010_10LE GST_VIDEO_FORMAT_AYUV64, unpack_P010_10LE, 1, pack_P010_10LE
+static void
+unpack_P010_10LE (const GstVideoFormatInfo * info, GstVideoPackFlags flags,
+    gpointer dest, const gpointer data[GST_VIDEO_MAX_PLANES],
+    const gint stride[GST_VIDEO_MAX_PLANES], gint x, gint y, gint width)
+{
+  int i;
+  gint uv = GET_UV_420 (y, flags);
+  const guint16 *restrict sy = GET_PLANE_LINE (0, y);
+  const guint16 *restrict suv = GET_PLANE_LINE (1, uv);
+  guint16 *restrict d = dest, Y0, Y1, U, V;
+
+  sy += x;
+  suv += (x & ~1);
+
+  if (x & 1) {
+    Y0 = GST_READ_UINT16_LE (sy);
+    U = GST_READ_UINT16_LE (suv);
+    V = GST_READ_UINT16_LE (suv + 1);
+
+    if (!(flags & GST_VIDEO_PACK_FLAG_TRUNCATE_RANGE)) {
+      Y0 |= (Y0 >> 10);
+      U |= (U >> 10);
+      V |= (V >> 10);
+    }
+
+    d[0] = 0xffff;
+    d[1] = Y0;
+    d[2] = U;
+    d[3] = V;
+    width--;
+    d += 4;
+    sy += 1;
+    suv += 2;
+  }
+
+  for (i = 0; i < width / 2; i++) {
+    Y0 = GST_READ_UINT16_LE (sy + 2 * i);
+    Y1 = GST_READ_UINT16_LE (sy + 2 * i + 1);
+    U = GST_READ_UINT16_LE (suv + 2 * i);
+    V = GST_READ_UINT16_LE (suv + 2 * i + 1);
+
+    if (!(flags & GST_VIDEO_PACK_FLAG_TRUNCATE_RANGE)) {
+      Y0 |= (Y0 >> 10);
+      Y1 |= (Y1 >> 10);
+      U |= (U >> 10);
+      V |= (V >> 10);
+    }
+
+    d[i * 8 + 0] = 0xffff;
+    d[i * 8 + 1] = Y0;
+    d[i * 8 + 2] = U;
+    d[i * 8 + 3] = V;
+    d[i * 8 + 4] = 0xffff;
+    d[i * 8 + 5] = Y1;
+    d[i * 8 + 6] = U;
+    d[i * 8 + 7] = V;
+  }
+
+  if (width & 1) {
+    gint i = width - 1;
+
+    Y0 = GST_READ_UINT16_LE (sy + i);
+    U = GST_READ_UINT16_LE (suv + i);
+    V = GST_READ_UINT16_LE (suv + i + 1);
+
+    if (!(flags & GST_VIDEO_PACK_FLAG_TRUNCATE_RANGE)) {
+      Y0 |= (Y0 >> 10);
+      U |= (U >> 10);
+      V |= (V >> 10);
+    }
+
+    d[i * 4 + 0] = 0xffff;
+    d[i * 4 + 1] = Y0;
+    d[i * 4 + 2] = U;
+    d[i * 4 + 3] = V;
+  }
+}
+
+static void
+pack_P010_10LE (const GstVideoFormatInfo * info, GstVideoPackFlags flags,
+    const gpointer src, gint sstride, gpointer data[GST_VIDEO_MAX_PLANES],
+    const gint stride[GST_VIDEO_MAX_PLANES], GstVideoChromaSite chroma_site,
+    gint y, gint width)
+{
+  int i;
+  gint uv = GET_UV_420 (y, flags);
+  guint16 *restrict dy = GET_PLANE_LINE (0, y);
+  guint16 *restrict duv = GET_PLANE_LINE (1, uv);
+  guint16 Y0, Y1, U, V;
+  const guint16 *restrict s = src;
+
+  if (IS_CHROMA_LINE_420 (y, flags)) {
+    for (i = 0; i < width / 2; i++) {
+      Y0 = s[i * 8 + 1] & 0xffc0;
+      Y1 = s[i * 8 + 5] & 0xffc0;
+      U = s[i * 8 + 2] & 0xffc0;
+      V = s[i * 8 + 3] & 0xffc0;
+
+      GST_WRITE_UINT16_LE (dy + i * 2 + 0, Y0);
+      GST_WRITE_UINT16_LE (dy + i * 2 + 1, Y1);
+      GST_WRITE_UINT16_LE (duv + i * 2 + 0, U);
+      GST_WRITE_UINT16_LE (duv + i * 2 + 1, V);
+    }
+    if (width & 1) {
+      gint i = width - 1;
+
+      Y0 = s[i * 4 + 1] & 0xffc0;
+      U = s[i * 4 + 2] & 0xffc0;
+      V = s[i * 4 + 3] & 0xffc0;
+
+      GST_WRITE_UINT16_LE (dy + i, Y0);
+      GST_WRITE_UINT16_LE (duv + i + 0, U);
+      GST_WRITE_UINT16_LE (duv + i + 1, V);
+    }
+  } else {
+    for (i = 0; i < width; i++) {
+      Y0 = s[i * 4 + 1] & 0xffc0;
+      GST_WRITE_UINT16_LE (dy + i, Y0);
+    }
+  }
+}
+
 typedef struct
 {
   guint32 fourcc;
@@ -3321,6 +3604,7 @@
 #define DPTH8880         8, 4, { 0, 0, 0, 0 }, { 8, 8, 8, 0 }
 #define DPTH10_10_10     10, 3, { 0, 0, 0, 0 }, { 10, 10, 10, 0 }
 #define DPTH10_10_10_10  10, 4, { 0, 0, 0, 0 }, { 10, 10, 10, 10 }
+#define DPTH10_10_10_HI  16, 3, { 6, 6, 6, 0 }, { 10, 10, 10, 0 }
 #define DPTH16           16, 1, { 0, 0, 0, 0 }, { 16, 0, 0, 0 }
 #define DPTH16_16_16     16, 3, { 0, 0, 0, 0 }, { 16, 16, 16, 0 }
 #define DPTH16_16_16_16  16, 4, { 0, 0, 0, 0 }, { 16, 16, 16, 16 }
@@ -3574,6 +3858,12 @@
       PSTR2222, PLANE0123, OFFS0, SUB4444, PACK_A444_10LE),
   MAKE_YUV_FORMAT (NV61, "raw video", GST_MAKE_FOURCC ('N', 'V', '6', '1'),
       DPTH888, PSTR122, PLANE011, OFFS010, SUB422, PACK_NV61),
+  MAKE_YUV_FORMAT (P010_10BE, "raw video", 0x00000000, DPTH10_10_10_HI,
+      PSTR244, PLANE011, OFFS001, SUB420, PACK_P010_10BE),
+  MAKE_YUV_LE_FORMAT (P010_10LE, "raw video", 0x00000000, DPTH10_10_10_HI,
+      PSTR244, PLANE011, OFFS001, SUB420, PACK_P010_10LE),
+  MAKE_YUV_FORMAT (IYU2, "raw video", GST_MAKE_FOURCC ('I', 'Y', 'U', '2'),
+      DPTH888, PSTR333, PLANE0, OFFS102, SUB444, PACK_IYU2),
 };
 
 static GstVideoFormat
@@ -3784,6 +4074,8 @@
       return GST_VIDEO_FORMAT_NV24;
     case GST_MAKE_FOURCC ('v', '3', '0', '8'):
       return GST_VIDEO_FORMAT_v308;
+    case GST_MAKE_FOURCC ('I', 'Y', 'U', '2'):
+      return GST_VIDEO_FORMAT_IYU2;
     case GST_MAKE_FOURCC ('Y', '8', '0', '0'):
     case GST_MAKE_FOURCC ('Y', '8', ' ', ' '):
     case GST_MAKE_FOURCC ('G', 'R', 'E', 'Y'):
diff --git a/gst-libs/gst/video/video-format.h b/gst-libs/gst/video/video-format.h
index 86fe297..e7f83d8 100644
--- a/gst-libs/gst/video/video-format.h
+++ b/gst-libs/gst/video/video-format.h
@@ -60,7 +60,8 @@
  * @GST_VIDEO_FORMAT_GRAY8: 8-bit grayscale
  * @GST_VIDEO_FORMAT_GRAY16_BE: 16-bit grayscale, most significant byte first
  * @GST_VIDEO_FORMAT_GRAY16_LE: 16-bit grayscale, least significant byte first
- * @GST_VIDEO_FORMAT_v308: packed 4:4:4 YUV
+ * @GST_VIDEO_FORMAT_v308: packed 4:4:4 YUV (Y-U-V ...)
+ * @GST_VIDEO_FORMAT_IYU2: packed 4:4:4 YUV (U-Y-V ...) (Since 1.10)
  * @GST_VIDEO_FORMAT_RGB16: rgb 5-6-5 bits per component
  * @GST_VIDEO_FORMAT_BGR16: reverse rgb 5-6-5 bits per component
  * @GST_VIDEO_FORMAT_RGB15: rgb 5-5-5 bits per component
@@ -93,6 +94,8 @@
  * @GST_VIDEO_FORMAT_A422_10LE: planar 4:4:2:2 YUV, 10 bits per channel
  * @GST_VIDEO_FORMAT_A444_10BE: planar 4:4:4:4 YUV, 10 bits per channel
  * @GST_VIDEO_FORMAT_A444_10LE: planar 4:4:4:4 YUV, 10 bits per channel
+ * @GST_VIDEO_FORMAT_P010_10BE: planar 4:2:0 YUV with interleaved UV plane, 10 bits per channel
+ * @GST_VIDEO_FORMAT_P010_10LE: planar 4:2:0 YUV with interleaved UV plane, 10 bits per channel
  *
  * Enum value describing the most common video formats.
  */
@@ -158,6 +161,9 @@
   GST_VIDEO_FORMAT_A444_10BE,
   GST_VIDEO_FORMAT_A444_10LE,
   GST_VIDEO_FORMAT_NV61,
+  GST_VIDEO_FORMAT_P010_10BE,
+  GST_VIDEO_FORMAT_P010_10LE,
+  GST_VIDEO_FORMAT_IYU2,
 } GstVideoFormat;
 
 #define GST_VIDEO_MAX_PLANES 4
@@ -397,7 +403,7 @@
 #define GST_VIDEO_FORMAT_INFO_DEPTH(info,c)      ((info)->depth[c])
 /**
  * GST_VIDEO_FORMAT_INFO_PSTRIDE:
- * @info: a #GstVideoInfo
+ * @info: a #GstVideoFormatInfo
  * @c: the component index
  *
  * pixel stride for the given component. This is the amount of bytes to the
@@ -412,7 +418,7 @@
 #define GST_VIDEO_FORMAT_INFO_PSTRIDE(info,c)    ((info)->pixel_stride[c])
 /**
  * GST_VIDEO_FORMAT_INFO_N_PLANES:
- * @info: a #GstVideoInfo
+ * @info: a #GstVideoFormatInfo
  *
  * Number of planes. This is the number of planes the pixel layout is
  * organized in in memory. The number of planes can be less than the
@@ -425,7 +431,7 @@
 #define GST_VIDEO_FORMAT_INFO_N_PLANES(info)     ((info)->n_planes)
 /**
  * GST_VIDEO_FORMAT_INFO_PLANE:
- * @info: a #GstVideoInfo
+ * @info: a #GstVideoFormatInfo
  * @c: the component index
  *
  * Plane number where the given component can be found. A plane may
@@ -446,7 +452,7 @@
   (((guint8*)(planes)[(info)->plane[comp]]) + (info)->poffset[comp])
 /**
  * GST_VIDEO_FORMAT_INFO_STRIDE:
- * @info: a #GstVideoInfo
+ * @info: a #GstVideoFormatInfo
  * @strides: an array of strides
  * @comp: the component index
  *
@@ -493,10 +499,10 @@
 #define GST_VIDEO_FORMATS_ALL "{ 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, " \
+    "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 }"
+    "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 }"
 
 /**
  * GST_VIDEO_CAPS_MAKE:
diff --git a/gst-libs/gst/video/video-frame.c b/gst-libs/gst/video/video-frame.c
index 66e1fa9..cc5073c 100644
--- a/gst-libs/gst/video/video-frame.c
+++ b/gst-libs/gst/video/video-frame.c
@@ -202,7 +202,7 @@
  *   if (gst_video_frame_map (&amp;vframe, video_info, video_buffer)) {
  *     guint8 *pixels = GST_VIDEO_FRAME_PLANE_DATA (vframe, 0);
  *     guint stride = GST_VIDEO_FRAME_PLANE_STRIDE (vframe, 0);
- *     guint pixel_stride = GST_VIDEO_FRAME_PLANE_PSTRIDE (vframe, 0);
+ *     guint pixel_stride = GST_VIDEO_FRAME_COMP_PSTRIDE (vframe, 0);
  *
  *     for (h = 0; h < height; ++h) {
  *       for (w = 0; w < width; ++w) {
diff --git a/gst-libs/gst/video/video-info.c b/gst-libs/gst/video/video-info.c
index cb9c777..57b9db7 100644
--- a/gst-libs/gst/video/video-info.c
+++ b/gst-libs/gst/video/video-info.c
@@ -644,6 +644,7 @@
     case GST_VIDEO_FORMAT_RGB:
     case GST_VIDEO_FORMAT_BGR:
     case GST_VIDEO_FORMAT_v308:
+    case GST_VIDEO_FORMAT_IYU2:
       info->stride[0] = GST_ROUND_UP_4 (width * 3);
       info->offset[0] = 0;
       info->size = info->stride[0] * height;
@@ -878,6 +879,15 @@
       info->offset[3] = info->offset[1] * 3;
       info->size = info->stride[0] * height * 4;
       break;
+    case GST_VIDEO_FORMAT_P010_10LE:
+    case GST_VIDEO_FORMAT_P010_10BE:
+      info->stride[0] = GST_ROUND_UP_4 (width * 2);
+      info->stride[1] = info->stride[0];
+      info->offset[0] = 0;
+      info->offset[1] = info->stride[0] * GST_ROUND_UP_2 (height);
+      cr_h = GST_ROUND_UP_2 (height) / 2;
+      info->size = info->offset[1] + info->stride[0] * cr_h;
+      break;
 
     case GST_VIDEO_FORMAT_ENCODED:
       break;
diff --git a/gst-libs/gst/video/video-multiview.c b/gst-libs/gst/video/video-multiview.c
index 2b2a5bc..12774b0 100644
--- a/gst-libs/gst/video/video-multiview.c
+++ b/gst-libs/gst/video/video-multiview.c
@@ -418,6 +418,16 @@
   return type;
 }
 
+static gboolean
+gst_video_multiview_meta_init (GstVideoMultiviewMeta * mview_meta,
+    gpointer params, GstBuffer * buffer)
+{
+  mview_meta->n_views = 0;
+  mview_meta->view_info = NULL;
+
+  return TRUE;
+}
+
 static void
 gst_video_multiview_meta_free (GstVideoMultiviewMeta * mview_meta,
     GstBuffer * buffer)
@@ -436,7 +446,7 @@
         gst_meta_register (GST_VIDEO_MULTIVIEW_META_API_TYPE,
         "GstVideoMultiviewMeta",
         sizeof (GstVideoMultiviewMeta),
-        (GstMetaInitFunction) NULL,
+        (GstMetaInitFunction) gst_video_multiview_meta_init,
         (GstMetaFreeFunction) gst_video_multiview_meta_free,
         NULL);
     g_once_init_leave (&video_meta_info, meta);
diff --git a/gst-libs/gst/video/video-orc-dist.c b/gst-libs/gst/video/video-orc-dist.c
index 09aeca2..1f72291 100644
--- a/gst-libs/gst/video/video-orc-dist.c
+++ b/gst-libs/gst/video/video-orc-dist.c
@@ -333,6 +333,10 @@
     const guint8 * ORC_RESTRICT s1, const guint8 * ORC_RESTRICT s2,
     const guint8 * ORC_RESTRICT s3, int p1, int p2, int p3, int p4, int p5,
     int n);
+void video_orc_convert_I420_ARGB (guint8 * ORC_RESTRICT d1,
+    const guint8 * ORC_RESTRICT s1, const guint8 * ORC_RESTRICT s2,
+    const guint8 * ORC_RESTRICT s3, int p1, int p2, int p3, int p4, int p5,
+    int n);
 void video_orc_matrix8 (guint8 * ORC_RESTRICT d1,
     const guint8 * ORC_RESTRICT s1, orc_int64 p1, orc_int64 p2, orc_int64 p3,
     orc_int64 p4, int n);
@@ -21911,15 +21915,15 @@
         1, 9, 27, 118, 105, 100, 101, 111, 95, 111, 114, 99, 95, 99, 111, 110,
         118, 101, 114, 116, 95, 73, 52, 50, 48, 95, 66, 71, 82, 65, 11, 4,
         4, 12, 1, 1, 12, 1, 1, 12, 1, 1, 14, 1, 128, 0, 0, 0,
-        14, 1, 127, 0, 0, 0, 16, 2, 16, 2, 16, 2, 16, 2, 16, 2,
-        20, 2, 20, 2, 20, 2, 20, 2, 20, 2, 20, 2, 20, 1, 20, 1,
-        20, 1, 20, 4, 65, 38, 4, 16, 151, 32, 38, 45, 38, 5, 65, 38,
-        38, 16, 151, 33, 38, 45, 38, 6, 65, 38, 38, 16, 151, 34, 38, 90,
-        32, 32, 24, 90, 35, 34, 25, 70, 35, 32, 35, 159, 38, 35, 196, 35,
-        38, 17, 90, 37, 33, 26, 70, 37, 32, 37, 159, 40, 37, 90, 36, 33,
-        27, 70, 36, 32, 36, 90, 32, 34, 28, 70, 36, 36, 32, 159, 39, 36,
-        196, 37, 40, 39, 195, 41, 37, 35, 21, 2, 33, 0, 41, 16, 2, 0,
-
+        14, 4, 128, 0, 0, 0, 14, 1, 127, 0, 0, 0, 16, 2, 16, 2,
+        16, 2, 16, 2, 16, 2, 20, 2, 20, 2, 20, 2, 20, 2, 20, 2,
+        20, 2, 20, 1, 20, 1, 20, 1, 20, 4, 65, 38, 4, 16, 151, 32,
+        38, 45, 38, 5, 65, 38, 38, 16, 151, 33, 38, 45, 38, 6, 65, 38,
+        38, 16, 151, 34, 38, 90, 32, 32, 24, 90, 35, 34, 25, 70, 35, 32,
+        35, 159, 38, 35, 196, 35, 38, 18, 90, 37, 33, 26, 70, 37, 32, 37,
+        159, 40, 37, 90, 36, 33, 27, 70, 36, 32, 36, 90, 32, 34, 28, 70,
+        36, 36, 32, 159, 39, 36, 196, 37, 40, 39, 195, 41, 37, 35, 21, 2,
+        33, 0, 41, 17, 2, 0,
       };
       p = orc_program_new_from_static_bytecode (bc);
       orc_program_set_backup_function (p, _backup_video_orc_convert_I420_BGRA);
@@ -21932,7 +21936,8 @@
       orc_program_add_source (p, 1, "s2");
       orc_program_add_source (p, 1, "s3");
       orc_program_add_constant (p, 1, 0x00000080, "c1");
-      orc_program_add_constant (p, 1, 0x0000007f, "c2");
+      orc_program_add_constant (p, 4, 0x00000080, "c2");
+      orc_program_add_constant (p, 1, 0x0000007f, "c3");
       orc_program_add_parameter (p, 2, "p1");
       orc_program_add_parameter (p, 2, "p2");
       orc_program_add_parameter (p, 2, "p3");
@@ -21973,7 +21978,7 @@
           ORC_VAR_D1);
       orc_program_append_2 (p, "convssswb", 0, ORC_VAR_T7, ORC_VAR_T4,
           ORC_VAR_D1, ORC_VAR_D1);
-      orc_program_append_2 (p, "mergebw", 0, ORC_VAR_T4, ORC_VAR_T7, ORC_VAR_C2,
+      orc_program_append_2 (p, "mergebw", 0, ORC_VAR_T4, ORC_VAR_T7, ORC_VAR_C3,
           ORC_VAR_D1);
       orc_program_append_2 (p, "mulhsw", 0, ORC_VAR_T6, ORC_VAR_T2, ORC_VAR_P3,
           ORC_VAR_D1);
@@ -21995,7 +22000,459 @@
           ORC_VAR_D1);
       orc_program_append_2 (p, "mergewl", 0, ORC_VAR_T10, ORC_VAR_T6,
           ORC_VAR_T4, ORC_VAR_D1);
-      orc_program_append_2 (p, "addb", 2, ORC_VAR_D1, ORC_VAR_T10, ORC_VAR_C1,
+      orc_program_append_2 (p, "addb", 2, ORC_VAR_D1, ORC_VAR_T10, ORC_VAR_C2,
+          ORC_VAR_D1);
+#endif
+
+      orc_program_compile (p);
+      c = orc_program_take_code (p);
+      orc_program_free (p);
+    }
+    p_inited = TRUE;
+    orc_once_mutex_unlock ();
+  }
+  ex->arrays[ORC_VAR_A2] = c;
+  ex->program = 0;
+
+  ex->n = n;
+  ex->arrays[ORC_VAR_D1] = d1;
+  ex->arrays[ORC_VAR_S1] = (void *) s1;
+  ex->arrays[ORC_VAR_S2] = (void *) s2;
+  ex->arrays[ORC_VAR_S3] = (void *) s3;
+  ex->params[ORC_VAR_P1] = p1;
+  ex->params[ORC_VAR_P2] = p2;
+  ex->params[ORC_VAR_P3] = p3;
+  ex->params[ORC_VAR_P4] = p4;
+  ex->params[ORC_VAR_P5] = p5;
+
+  func = c->exec;
+  func (ex);
+}
+#endif
+
+
+/* video_orc_convert_I420_ARGB */
+#ifdef DISABLE_ORC
+void
+video_orc_convert_I420_ARGB (guint8 * ORC_RESTRICT d1,
+    const guint8 * ORC_RESTRICT s1, const guint8 * ORC_RESTRICT s2,
+    const guint8 * ORC_RESTRICT s3, int p1, int p2, int p3, int p4, int p5,
+    int n)
+{
+  int i;
+  orc_union32 *ORC_RESTRICT ptr0;
+  const orc_int8 *ORC_RESTRICT ptr4;
+  const orc_int8 *ORC_RESTRICT ptr5;
+  const orc_int8 *ORC_RESTRICT ptr6;
+  orc_int8 var42;
+#if defined(__APPLE__) && __GNUC__ == 4 && __GNUC_MINOR__ == 2 && defined (__i386__)
+  volatile orc_int8 var43;
+#else
+  orc_int8 var43;
+#endif
+  orc_union16 var44;
+  orc_union16 var45;
+#if defined(__APPLE__) && __GNUC__ == 4 && __GNUC_MINOR__ == 2 && defined (__i386__)
+  volatile orc_int8 var46;
+#else
+  orc_int8 var46;
+#endif
+  orc_union16 var47;
+  orc_union16 var48;
+  orc_union16 var49;
+#if defined(__APPLE__) && __GNUC__ == 4 && __GNUC_MINOR__ == 2 && defined (__i386__)
+  volatile orc_union32 var50;
+#else
+  orc_union32 var50;
+#endif
+  orc_union32 var51;
+  orc_int8 var52;
+  orc_union16 var53;
+  orc_int8 var54;
+  orc_int8 var55;
+  orc_union16 var56;
+  orc_int8 var57;
+  orc_int8 var58;
+  orc_union16 var59;
+  orc_union16 var60;
+  orc_union16 var61;
+  orc_union16 var62;
+  orc_int8 var63;
+  orc_union16 var64;
+  orc_union16 var65;
+  orc_union16 var66;
+  orc_int8 var67;
+  orc_union16 var68;
+  orc_union16 var69;
+  orc_union16 var70;
+  orc_union16 var71;
+  orc_int8 var72;
+  orc_union16 var73;
+  orc_union32 var74;
+
+  ptr0 = (orc_union32 *) d1;
+  ptr4 = (orc_int8 *) s1;
+  ptr5 = (orc_int8 *) s2;
+  ptr6 = (orc_int8 *) s3;
+
+  /* 1: loadpb */
+  var43 = (int) 0x00000080;     /* 128 or 6.32404e-322f */
+  /* 10: loadpw */
+  var44.i = p1;
+  /* 12: loadpw */
+  var45.i = p2;
+  /* 16: loadpb */
+  var46 = (int) 0x0000007f;     /* 127 or 6.27463e-322f */
+  /* 18: loadpw */
+  var47.i = p3;
+  /* 22: loadpw */
+  var48.i = p4;
+  /* 25: loadpw */
+  var49.i = p5;
+  /* 31: loadpb */
+  var50.x4[0] = (int) 0x00000080;       /* 128 or 6.32404e-322f */
+  var50.x4[1] = (int) 0x00000080;       /* 128 or 6.32404e-322f */
+  var50.x4[2] = (int) 0x00000080;       /* 128 or 6.32404e-322f */
+  var50.x4[3] = (int) 0x00000080;       /* 128 or 6.32404e-322f */
+
+  for (i = 0; i < n; i++) {
+    /* 0: loadb */
+    var42 = ptr4[i];
+    /* 2: subb */
+    var52 = var42 - var43;
+    /* 3: splatbw */
+    var53.i = ((var52 & 0xff) << 8) | (var52 & 0xff);
+    /* 4: loadupdb */
+    var54 = ptr5[i >> 1];
+    /* 5: subb */
+    var55 = var54 - var43;
+    /* 6: splatbw */
+    var56.i = ((var55 & 0xff) << 8) | (var55 & 0xff);
+    /* 7: loadupdb */
+    var57 = ptr6[i >> 1];
+    /* 8: subb */
+    var58 = var57 - var43;
+    /* 9: splatbw */
+    var59.i = ((var58 & 0xff) << 8) | (var58 & 0xff);
+    /* 11: mulhsw */
+    var60.i = (var53.i * var44.i) >> 16;
+    /* 13: mulhsw */
+    var61.i = (var59.i * var45.i) >> 16;
+    /* 14: addw */
+    var62.i = var60.i + var61.i;
+    /* 15: convssswb */
+    var63 = ORC_CLAMP_SB (var62.i);
+    /* 17: mergebw */
+    {
+      orc_union16 _dest;
+      _dest.x2[0] = var46;
+      _dest.x2[1] = var63;
+      var64.i = _dest.i;
+    }
+    /* 19: mulhsw */
+    var65.i = (var56.i * var47.i) >> 16;
+    /* 20: addw */
+    var66.i = var60.i + var65.i;
+    /* 21: convssswb */
+    var67 = ORC_CLAMP_SB (var66.i);
+    /* 23: mulhsw */
+    var68.i = (var56.i * var48.i) >> 16;
+    /* 24: addw */
+    var69.i = var60.i + var68.i;
+    /* 26: mulhsw */
+    var70.i = (var59.i * var49.i) >> 16;
+    /* 27: addw */
+    var71.i = var69.i + var70.i;
+    /* 28: convssswb */
+    var72 = ORC_CLAMP_SB (var71.i);
+    /* 29: mergebw */
+    {
+      orc_union16 _dest;
+      _dest.x2[0] = var72;
+      _dest.x2[1] = var67;
+      var73.i = _dest.i;
+    }
+    /* 30: mergewl */
+    {
+      orc_union32 _dest;
+      _dest.x2[0] = var64.i;
+      _dest.x2[1] = var73.i;
+      var74.i = _dest.i;
+    }
+    /* 32: addb */
+    var51.x4[0] = var74.x4[0] + var50.x4[0];
+    var51.x4[1] = var74.x4[1] + var50.x4[1];
+    var51.x4[2] = var74.x4[2] + var50.x4[2];
+    var51.x4[3] = var74.x4[3] + var50.x4[3];
+    /* 33: storel */
+    ptr0[i] = var51;
+  }
+
+}
+
+#else
+static void
+_backup_video_orc_convert_I420_ARGB (OrcExecutor * ORC_RESTRICT ex)
+{
+  int i;
+  int n = ex->n;
+  orc_union32 *ORC_RESTRICT ptr0;
+  const orc_int8 *ORC_RESTRICT ptr4;
+  const orc_int8 *ORC_RESTRICT ptr5;
+  const orc_int8 *ORC_RESTRICT ptr6;
+  orc_int8 var42;
+#if defined(__APPLE__) && __GNUC__ == 4 && __GNUC_MINOR__ == 2 && defined (__i386__)
+  volatile orc_int8 var43;
+#else
+  orc_int8 var43;
+#endif
+  orc_union16 var44;
+  orc_union16 var45;
+#if defined(__APPLE__) && __GNUC__ == 4 && __GNUC_MINOR__ == 2 && defined (__i386__)
+  volatile orc_int8 var46;
+#else
+  orc_int8 var46;
+#endif
+  orc_union16 var47;
+  orc_union16 var48;
+  orc_union16 var49;
+#if defined(__APPLE__) && __GNUC__ == 4 && __GNUC_MINOR__ == 2 && defined (__i386__)
+  volatile orc_union32 var50;
+#else
+  orc_union32 var50;
+#endif
+  orc_union32 var51;
+  orc_int8 var52;
+  orc_union16 var53;
+  orc_int8 var54;
+  orc_int8 var55;
+  orc_union16 var56;
+  orc_int8 var57;
+  orc_int8 var58;
+  orc_union16 var59;
+  orc_union16 var60;
+  orc_union16 var61;
+  orc_union16 var62;
+  orc_int8 var63;
+  orc_union16 var64;
+  orc_union16 var65;
+  orc_union16 var66;
+  orc_int8 var67;
+  orc_union16 var68;
+  orc_union16 var69;
+  orc_union16 var70;
+  orc_union16 var71;
+  orc_int8 var72;
+  orc_union16 var73;
+  orc_union32 var74;
+
+  ptr0 = (orc_union32 *) ex->arrays[0];
+  ptr4 = (orc_int8 *) ex->arrays[4];
+  ptr5 = (orc_int8 *) ex->arrays[5];
+  ptr6 = (orc_int8 *) ex->arrays[6];
+
+  /* 1: loadpb */
+  var43 = (int) 0x00000080;     /* 128 or 6.32404e-322f */
+  /* 10: loadpw */
+  var44.i = ex->params[24];
+  /* 12: loadpw */
+  var45.i = ex->params[25];
+  /* 16: loadpb */
+  var46 = (int) 0x0000007f;     /* 127 or 6.27463e-322f */
+  /* 18: loadpw */
+  var47.i = ex->params[26];
+  /* 22: loadpw */
+  var48.i = ex->params[27];
+  /* 25: loadpw */
+  var49.i = ex->params[28];
+  /* 31: loadpb */
+  var50.x4[0] = (int) 0x00000080;       /* 128 or 6.32404e-322f */
+  var50.x4[1] = (int) 0x00000080;       /* 128 or 6.32404e-322f */
+  var50.x4[2] = (int) 0x00000080;       /* 128 or 6.32404e-322f */
+  var50.x4[3] = (int) 0x00000080;       /* 128 or 6.32404e-322f */
+
+  for (i = 0; i < n; i++) {
+    /* 0: loadb */
+    var42 = ptr4[i];
+    /* 2: subb */
+    var52 = var42 - var43;
+    /* 3: splatbw */
+    var53.i = ((var52 & 0xff) << 8) | (var52 & 0xff);
+    /* 4: loadupdb */
+    var54 = ptr5[i >> 1];
+    /* 5: subb */
+    var55 = var54 - var43;
+    /* 6: splatbw */
+    var56.i = ((var55 & 0xff) << 8) | (var55 & 0xff);
+    /* 7: loadupdb */
+    var57 = ptr6[i >> 1];
+    /* 8: subb */
+    var58 = var57 - var43;
+    /* 9: splatbw */
+    var59.i = ((var58 & 0xff) << 8) | (var58 & 0xff);
+    /* 11: mulhsw */
+    var60.i = (var53.i * var44.i) >> 16;
+    /* 13: mulhsw */
+    var61.i = (var59.i * var45.i) >> 16;
+    /* 14: addw */
+    var62.i = var60.i + var61.i;
+    /* 15: convssswb */
+    var63 = ORC_CLAMP_SB (var62.i);
+    /* 17: mergebw */
+    {
+      orc_union16 _dest;
+      _dest.x2[0] = var46;
+      _dest.x2[1] = var63;
+      var64.i = _dest.i;
+    }
+    /* 19: mulhsw */
+    var65.i = (var56.i * var47.i) >> 16;
+    /* 20: addw */
+    var66.i = var60.i + var65.i;
+    /* 21: convssswb */
+    var67 = ORC_CLAMP_SB (var66.i);
+    /* 23: mulhsw */
+    var68.i = (var56.i * var48.i) >> 16;
+    /* 24: addw */
+    var69.i = var60.i + var68.i;
+    /* 26: mulhsw */
+    var70.i = (var59.i * var49.i) >> 16;
+    /* 27: addw */
+    var71.i = var69.i + var70.i;
+    /* 28: convssswb */
+    var72 = ORC_CLAMP_SB (var71.i);
+    /* 29: mergebw */
+    {
+      orc_union16 _dest;
+      _dest.x2[0] = var72;
+      _dest.x2[1] = var67;
+      var73.i = _dest.i;
+    }
+    /* 30: mergewl */
+    {
+      orc_union32 _dest;
+      _dest.x2[0] = var64.i;
+      _dest.x2[1] = var73.i;
+      var74.i = _dest.i;
+    }
+    /* 32: addb */
+    var51.x4[0] = var74.x4[0] + var50.x4[0];
+    var51.x4[1] = var74.x4[1] + var50.x4[1];
+    var51.x4[2] = var74.x4[2] + var50.x4[2];
+    var51.x4[3] = var74.x4[3] + var50.x4[3];
+    /* 33: storel */
+    ptr0[i] = var51;
+  }
+
+}
+
+void
+video_orc_convert_I420_ARGB (guint8 * ORC_RESTRICT d1,
+    const guint8 * ORC_RESTRICT s1, const guint8 * ORC_RESTRICT s2,
+    const guint8 * ORC_RESTRICT s3, int p1, int p2, int p3, int p4, int p5,
+    int n)
+{
+  OrcExecutor _ex, *ex = &_ex;
+  static volatile int p_inited = 0;
+  static OrcCode *c = 0;
+  void (*func) (OrcExecutor *);
+
+  if (!p_inited) {
+    orc_once_mutex_lock ();
+    if (!p_inited) {
+      OrcProgram *p;
+
+#if 1
+      static const orc_uint8 bc[] = {
+        1, 9, 27, 118, 105, 100, 101, 111, 95, 111, 114, 99, 95, 99, 111, 110,
+        118, 101, 114, 116, 95, 73, 52, 50, 48, 95, 65, 82, 71, 66, 11, 4,
+        4, 12, 1, 1, 12, 1, 1, 12, 1, 1, 14, 1, 128, 0, 0, 0,
+        14, 4, 128, 0, 0, 0, 14, 1, 127, 0, 0, 0, 16, 2, 16, 2,
+        16, 2, 16, 2, 16, 2, 20, 2, 20, 2, 20, 2, 20, 2, 20, 2,
+        20, 2, 20, 1, 20, 1, 20, 1, 20, 4, 65, 38, 4, 16, 151, 32,
+        38, 45, 38, 5, 65, 38, 38, 16, 151, 33, 38, 45, 38, 6, 65, 38,
+        38, 16, 151, 34, 38, 90, 32, 32, 24, 90, 35, 34, 25, 70, 35, 32,
+        35, 159, 38, 35, 196, 35, 18, 38, 90, 37, 33, 26, 70, 37, 32, 37,
+        159, 40, 37, 90, 36, 33, 27, 70, 36, 32, 36, 90, 32, 34, 28, 70,
+        36, 36, 32, 159, 39, 36, 196, 37, 39, 40, 195, 41, 35, 37, 21, 2,
+        33, 0, 41, 17, 2, 0,
+      };
+      p = orc_program_new_from_static_bytecode (bc);
+      orc_program_set_backup_function (p, _backup_video_orc_convert_I420_ARGB);
+#else
+      p = orc_program_new ();
+      orc_program_set_name (p, "video_orc_convert_I420_ARGB");
+      orc_program_set_backup_function (p, _backup_video_orc_convert_I420_ARGB);
+      orc_program_add_destination (p, 4, "d1");
+      orc_program_add_source (p, 1, "s1");
+      orc_program_add_source (p, 1, "s2");
+      orc_program_add_source (p, 1, "s3");
+      orc_program_add_constant (p, 1, 0x00000080, "c1");
+      orc_program_add_constant (p, 4, 0x00000080, "c2");
+      orc_program_add_constant (p, 1, 0x0000007f, "c3");
+      orc_program_add_parameter (p, 2, "p1");
+      orc_program_add_parameter (p, 2, "p2");
+      orc_program_add_parameter (p, 2, "p3");
+      orc_program_add_parameter (p, 2, "p4");
+      orc_program_add_parameter (p, 2, "p5");
+      orc_program_add_temporary (p, 2, "t1");
+      orc_program_add_temporary (p, 2, "t2");
+      orc_program_add_temporary (p, 2, "t3");
+      orc_program_add_temporary (p, 2, "t4");
+      orc_program_add_temporary (p, 2, "t5");
+      orc_program_add_temporary (p, 2, "t6");
+      orc_program_add_temporary (p, 1, "t7");
+      orc_program_add_temporary (p, 1, "t8");
+      orc_program_add_temporary (p, 1, "t9");
+      orc_program_add_temporary (p, 4, "t10");
+
+      orc_program_append_2 (p, "subb", 0, ORC_VAR_T7, ORC_VAR_S1, ORC_VAR_C1,
+          ORC_VAR_D1);
+      orc_program_append_2 (p, "splatbw", 0, ORC_VAR_T1, ORC_VAR_T7, ORC_VAR_D1,
+          ORC_VAR_D1);
+      orc_program_append_2 (p, "loadupdb", 0, ORC_VAR_T7, ORC_VAR_S2,
+          ORC_VAR_D1, ORC_VAR_D1);
+      orc_program_append_2 (p, "subb", 0, ORC_VAR_T7, ORC_VAR_T7, ORC_VAR_C1,
+          ORC_VAR_D1);
+      orc_program_append_2 (p, "splatbw", 0, ORC_VAR_T2, ORC_VAR_T7, ORC_VAR_D1,
+          ORC_VAR_D1);
+      orc_program_append_2 (p, "loadupdb", 0, ORC_VAR_T7, ORC_VAR_S3,
+          ORC_VAR_D1, ORC_VAR_D1);
+      orc_program_append_2 (p, "subb", 0, ORC_VAR_T7, ORC_VAR_T7, ORC_VAR_C1,
+          ORC_VAR_D1);
+      orc_program_append_2 (p, "splatbw", 0, ORC_VAR_T3, ORC_VAR_T7, ORC_VAR_D1,
+          ORC_VAR_D1);
+      orc_program_append_2 (p, "mulhsw", 0, ORC_VAR_T1, ORC_VAR_T1, ORC_VAR_P1,
+          ORC_VAR_D1);
+      orc_program_append_2 (p, "mulhsw", 0, ORC_VAR_T4, ORC_VAR_T3, ORC_VAR_P2,
+          ORC_VAR_D1);
+      orc_program_append_2 (p, "addw", 0, ORC_VAR_T4, ORC_VAR_T1, ORC_VAR_T4,
+          ORC_VAR_D1);
+      orc_program_append_2 (p, "convssswb", 0, ORC_VAR_T7, ORC_VAR_T4,
+          ORC_VAR_D1, ORC_VAR_D1);
+      orc_program_append_2 (p, "mergebw", 0, ORC_VAR_T4, ORC_VAR_C3, ORC_VAR_T7,
+          ORC_VAR_D1);
+      orc_program_append_2 (p, "mulhsw", 0, ORC_VAR_T6, ORC_VAR_T2, ORC_VAR_P3,
+          ORC_VAR_D1);
+      orc_program_append_2 (p, "addw", 0, ORC_VAR_T6, ORC_VAR_T1, ORC_VAR_T6,
+          ORC_VAR_D1);
+      orc_program_append_2 (p, "convssswb", 0, ORC_VAR_T9, ORC_VAR_T6,
+          ORC_VAR_D1, ORC_VAR_D1);
+      orc_program_append_2 (p, "mulhsw", 0, ORC_VAR_T5, ORC_VAR_T2, ORC_VAR_P4,
+          ORC_VAR_D1);
+      orc_program_append_2 (p, "addw", 0, ORC_VAR_T5, ORC_VAR_T1, ORC_VAR_T5,
+          ORC_VAR_D1);
+      orc_program_append_2 (p, "mulhsw", 0, ORC_VAR_T1, ORC_VAR_T3, ORC_VAR_P5,
+          ORC_VAR_D1);
+      orc_program_append_2 (p, "addw", 0, ORC_VAR_T5, ORC_VAR_T5, ORC_VAR_T1,
+          ORC_VAR_D1);
+      orc_program_append_2 (p, "convssswb", 0, ORC_VAR_T8, ORC_VAR_T5,
+          ORC_VAR_D1, ORC_VAR_D1);
+      orc_program_append_2 (p, "mergebw", 0, ORC_VAR_T6, ORC_VAR_T8, ORC_VAR_T9,
+          ORC_VAR_D1);
+      orc_program_append_2 (p, "mergewl", 0, ORC_VAR_T10, ORC_VAR_T4,
+          ORC_VAR_T6, ORC_VAR_D1);
+      orc_program_append_2 (p, "addb", 2, ORC_VAR_D1, ORC_VAR_T10, ORC_VAR_C2,
           ORC_VAR_D1);
 #endif
 
diff --git a/gst-libs/gst/video/video-orc-dist.h b/gst-libs/gst/video/video-orc-dist.h
index c2fef7d..d6a2aa6 100644
--- a/gst-libs/gst/video/video-orc-dist.h
+++ b/gst-libs/gst/video/video-orc-dist.h
@@ -177,6 +177,7 @@
 void video_orc_convert_AYUV_ABGR (guint8 * ORC_RESTRICT d1, int d1_stride, const guint8 * ORC_RESTRICT s1, int s1_stride, int p1, int p2, int p3, int p4, int p5, int n, int m);
 void video_orc_convert_AYUV_RGBA (guint8 * ORC_RESTRICT d1, int d1_stride, const guint8 * ORC_RESTRICT s1, int s1_stride, int p1, int p2, int p3, int p4, int p5, int n, int m);
 void video_orc_convert_I420_BGRA (guint8 * ORC_RESTRICT d1, const guint8 * ORC_RESTRICT s1, const guint8 * ORC_RESTRICT s2, const guint8 * ORC_RESTRICT s3, int p1, int p2, int p3, int p4, int p5, int n);
+void video_orc_convert_I420_ARGB (guint8 * ORC_RESTRICT d1, const guint8 * ORC_RESTRICT s1, const guint8 * ORC_RESTRICT s2, const guint8 * ORC_RESTRICT s3, int p1, int p2, int p3, int p4, int p5, int n);
 void video_orc_matrix8 (guint8 * ORC_RESTRICT d1, const guint8 * ORC_RESTRICT s1, orc_int64 p1, orc_int64 p2, orc_int64 p3, orc_int64 p4, int n);
 void _custom_video_orc_matrix8 (guint8 * ORC_RESTRICT d1, const guint8 * ORC_RESTRICT s1, orc_int64 p1, orc_int64 p2, orc_int64 p3, orc_int64 p4, int n);
 void video_orc_resample_h_near_u32_lq (guint32 * ORC_RESTRICT d1, const guint32 * ORC_RESTRICT s1, int p1, int p2, int n);
diff --git a/gst-libs/gst/video/video-orc.orc b/gst-libs/gst/video/video-orc.orc
index 60d7c95..5af6c90 100644
--- a/gst-libs/gst/video/video-orc.orc
+++ b/gst-libs/gst/video/video-orc.orc
@@ -1663,6 +1663,7 @@
 .temp 1 b
 .temp 4 x
 .const 1 c128 128
+.const 4 c4128 128
 
 subb r, y, c128
 splatbw wy, r
@@ -1693,7 +1694,61 @@
 
 mergebw wb, b, g
 mergewl x, wb, wr
-x4 addb argb, x, c128
+x4 addb argb, x, c4128
+
+.function video_orc_convert_I420_ARGB
+.dest 4 argb guint8
+.source 1 y guint8
+.source 1 u guint8
+.source 1 v guint8
+.param 2 p1
+.param 2 p2
+.param 2 p3
+.param 2 p4
+.param 2 p5
+.temp 2 wy
+.temp 2 wu
+.temp 2 wv
+.temp 2 wr
+.temp 2 wg
+.temp 2 wb
+.temp 1 r
+.temp 1 g
+.temp 1 b
+.temp 4 x
+.const 1 c128 128
+.const 4 c4128 128
+
+subb r, y, c128
+splatbw wy, r
+loadupdb r, u
+subb r, r, c128
+splatbw wu, r
+loadupdb r, v
+subb r, r, c128
+splatbw wv, r
+
+mulhsw wy, wy, p1
+
+mulhsw wr, wv, p2
+addw wr, wy, wr
+convssswb r, wr
+mergebw wr, 127, r
+
+mulhsw wb, wu, p3
+addw wb, wy, wb
+convssswb b, wb
+
+mulhsw wg, wu, p4
+addw wg, wy, wg
+mulhsw wy, wv, p5
+addw wg, wg, wy
+
+convssswb g, wg
+
+mergebw wb, g, b
+mergewl x, wr, wb
+x4 addb argb, x, c4128
 
 .function video_orc_matrix8
 .backup _custom_video_orc_matrix8
diff --git a/gst-libs/gst/video/video-overlay-composition.c b/gst-libs/gst/video/video-overlay-composition.c
index b256b99..12e7e07 100644
--- a/gst-libs/gst/video/video-overlay-composition.c
+++ b/gst-libs/gst/video/video-overlay-composition.c
@@ -186,6 +186,19 @@
   return (guint) g_atomic_int_add (&seqnum, 1);
 }
 
+static gboolean
+gst_video_overlay_composition_meta_init (GstMeta * meta, gpointer params,
+    GstBuffer * buf)
+{
+  GstVideoOverlayCompositionMeta *ometa;
+
+  ometa = (GstVideoOverlayCompositionMeta *) meta;
+
+  ometa->overlay = NULL;
+
+  return TRUE;
+}
+
 static void
 gst_video_overlay_composition_meta_free (GstMeta * meta, GstBuffer * buf)
 {
@@ -251,7 +264,8 @@
     const GstMetaInfo *meta =
         gst_meta_register (GST_VIDEO_OVERLAY_COMPOSITION_META_API_TYPE,
         "GstVideoOverlayCompositionMeta",
-        sizeof (GstVideoOverlayCompositionMeta), (GstMetaInitFunction) NULL,
+        sizeof (GstVideoOverlayCompositionMeta),
+        (GstMetaInitFunction) gst_video_overlay_composition_meta_init,
         (GstMetaFreeFunction) gst_video_overlay_composition_meta_free,
         (GstMetaTransformFunction)
         gst_video_overlay_composition_meta_transform);
diff --git a/gst-libs/gst/video/video-resampler.c b/gst-libs/gst/video/video-resampler.c
index 07dddc9..0848961 100644
--- a/gst-libs/gst/video/video-resampler.c
+++ b/gst-libs/gst/video/video-resampler.c
@@ -410,6 +410,8 @@
     params.dx = ceil (2.0 * params.envelope / params.fx);
     n_taps = CLAMP (params.dx, 0, max_taps);
   }
+  if (flags & GST_VIDEO_RESAMPLER_FLAG_HALF_TAPS && n_taps > 3)
+    n_taps /= 2;
   params.fx = 2.0 * params.envelope / n_taps;
   params.ex = 2.0 / n_taps;
 
diff --git a/gst-libs/gst/video/video-resampler.h b/gst-libs/gst/video/video-resampler.h
index 699f382..3338046 100644
--- a/gst-libs/gst/video/video-resampler.h
+++ b/gst-libs/gst/video/video-resampler.h
@@ -116,6 +116,9 @@
 /**
  * GstVideoResamplerFlags:
  * @GST_VIDEO_RESAMPLER_FLAG_NONE: no flags
+ * @GST_VIDEO_RESAMPLER_FLAG_HALF_TAPS: when no taps are given, half the
+ *              number of calculated taps. This can be used when making scalers
+ *              for the different fields of an interlaced picture. Since 1.10
  *
  * Different resampler flags.
  *
@@ -123,6 +126,7 @@
  */
 typedef enum {
   GST_VIDEO_RESAMPLER_FLAG_NONE                 = (0),
+  GST_VIDEO_RESAMPLER_FLAG_HALF_TAPS            = (1 << 0),
 } GstVideoResamplerFlags;
 
 /**
diff --git a/gst-libs/gst/video/video-scaler.c b/gst-libs/gst/video/video-scaler.c
index 18bd09c..d1b4b27 100644
--- a/gst-libs/gst/video/video-scaler.c
+++ b/gst-libs/gst/video/video-scaler.c
@@ -185,6 +185,8 @@
 #endif
 }
 
+#define INTERLACE_SHIFT 0.5
+
 /**
  * gst_video_scaler_new: (skip)
  * @method: a #GstVideoResamplerMethod
@@ -221,14 +223,18 @@
 
   if (flags & GST_VIDEO_SCALER_FLAG_INTERLACED) {
     GstVideoResampler tresamp, bresamp;
+    gdouble shift;
 
-    gst_video_resampler_init (&tresamp, method, 0, (out_size + 1) / 2, n_taps,
-        -0.5, (in_size + 1) / 2, (out_size + 1) / 2, options);
+    shift = (INTERLACE_SHIFT * out_size) / in_size;
+
+    gst_video_resampler_init (&tresamp, method,
+        GST_VIDEO_RESAMPLER_FLAG_HALF_TAPS, (out_size + 1) / 2, n_taps, shift,
+        (in_size + 1) / 2, (out_size + 1) / 2, options);
 
     n_taps = tresamp.max_taps;
 
     gst_video_resampler_init (&bresamp, method, 0, out_size - tresamp.out_size,
-        n_taps, 0.5, in_size - tresamp.in_size,
+        n_taps, -shift, in_size - tresamp.in_size,
         out_size - tresamp.out_size, options);
 
     resampler_zip (&scale->resampler, &tresamp, &bresamp);
@@ -1212,6 +1218,7 @@
     case GST_VIDEO_FORMAT_RGB:
     case GST_VIDEO_FORMAT_BGR:
     case GST_VIDEO_FORMAT_v308:
+    case GST_VIDEO_FORMAT_IYU2:
       bits = 8;
       *n_elems = 3;
       break;
diff --git a/gst-plugins-base.doap b/gst-plugins-base.doap
index d1c80ec..38c70c9 100644
--- a/gst-plugins-base.doap
+++ b/gst-plugins-base.doap
@@ -36,21 +36,11 @@
 
  <release>
   <Version>
-   <revision>1.8.2</revision>
-   <branch>1.8</branch>
+   <revision>1.9.1</revision>
+   <branch>master</branch>
    <name></name>
-   <created>2016-06-09</created>
-   <file-release rdf:resource="http://gstreamer.freedesktop.org/src/gst-plugins-base/gst-plugins-base-1.8.2.tar.xz" />
-  </Version>
- </release>
-
- <release>
-  <Version>
-   <revision>1.8.1</revision>
-   <branch>1.8</branch>
-   <name></name>
-   <created>2016-04-20</created>
-   <file-release rdf:resource="http://gstreamer.freedesktop.org/src/gst-plugins-base/gst-plugins-base-1.8.1.tar.xz" />
+   <created>2016-06-06</created>
+   <file-release rdf:resource="http://gstreamer.freedesktop.org/src/gst-plugins-base/gst-plugins-base-1.9.1.tar.xz" />
   </Version>
  </release>
 
diff --git a/gst-plugins-base.spec b/gst-plugins-base.spec
index 37df1f5..ec7cc2f 100644
--- a/gst-plugins-base.spec
+++ b/gst-plugins-base.spec
@@ -4,7 +4,7 @@
 %define gst_minver  0.11.0
 
 Name: 		%{gstreamer}-plugins-base
-Version: 	1.8.2
+Version: 	1.9.1
 Release: 	1.gst
 Summary: 	GStreamer streaming media framework plug-ins
 
diff --git a/gst/adder/gstadder.c b/gst/adder/gstadder.c
index 0f297d0..fe2d21a 100644
--- a/gst/adder/gstadder.c
+++ b/gst/adder/gstadder.c
@@ -856,13 +856,12 @@
           "object.", GST_TYPE_CAPS,
           G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS));
 
-  gst_element_class_add_pad_template (gstelement_class,
-      gst_static_pad_template_get (&gst_adder_src_template));
-  gst_element_class_add_pad_template (gstelement_class,
-      gst_static_pad_template_get (&gst_adder_sink_template));
+  gst_element_class_add_static_pad_template (gstelement_class,
+      &gst_adder_src_template);
+  gst_element_class_add_static_pad_template (gstelement_class,
+      &gst_adder_sink_template);
   gst_element_class_set_static_metadata (gstelement_class, "Adder",
-      "Generic/Audio",
-      "Add N audio channels together",
+      "Generic/Audio", "Add N audio channels together",
       "Thomas Vander Stichele <thomas at apestaart dot org>");
 
   gstelement_class->request_new_pad =
diff --git a/gst/audioconvert/gstaudioconvert.c b/gst/audioconvert/gstaudioconvert.c
index a3a8fad..d320af4 100644
--- a/gst/audioconvert/gstaudioconvert.c
+++ b/gst/audioconvert/gstaudioconvert.c
@@ -158,13 +158,13 @@
           GST_TYPE_AUDIO_NOISE_SHAPING_METHOD, GST_AUDIO_NOISE_SHAPING_NONE,
           G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS));
 
-  gst_element_class_add_pad_template (element_class,
-      gst_static_pad_template_get (&gst_audio_convert_src_template));
-  gst_element_class_add_pad_template (element_class,
-      gst_static_pad_template_get (&gst_audio_convert_sink_template));
-  gst_element_class_set_static_metadata (element_class,
-      "Audio converter", "Filter/Converter/Audio",
-      "Convert audio to different formats", "Benjamin Otte <otte@gnome.org>");
+  gst_element_class_add_static_pad_template (element_class,
+      &gst_audio_convert_src_template);
+  gst_element_class_add_static_pad_template (element_class,
+      &gst_audio_convert_sink_template);
+  gst_element_class_set_static_metadata (element_class, "Audio converter",
+      "Filter/Converter/Audio", "Convert audio to different formats",
+      "Benjamin Otte <otte@gnome.org>");
 
   basetransform_class->get_unit_size =
       GST_DEBUG_FUNCPTR (gst_audio_convert_get_unit_size);
@@ -575,12 +575,12 @@
    * one reason or another, so just pick a default layout (we could be smarter
    * and try to add/remove channels from the input layout, or pick a default
    * layout based on LFE-presence in input layout, but let's save that for
-   * another day) */
-  if (out_chans > 0
+   * another day). For mono, no mask is required and the fallback mask is 0 */
+  if (out_chans > 1
       && (out_mask = gst_audio_channel_get_fallback_mask (out_chans))) {
     GST_DEBUG_OBJECT (base, "using default channel layout as fallback");
     gst_structure_set (outs, "channel-mask", GST_TYPE_BITMASK, out_mask, NULL);
-  } else {
+  } else if (out_chans > 1) {
     GST_ERROR_OBJECT (base, "Have no default layout for %d channels",
         out_chans);
   }
diff --git a/gst/audiorate/gstaudiorate.c b/gst/audiorate/gstaudiorate.c
index 1927ec3..ad8720c 100644
--- a/gst/audiorate/gstaudiorate.c
+++ b/gst/audiorate/gstaudiorate.c
@@ -190,10 +190,10 @@
       "Drops/duplicates/adjusts timestamps on audio samples to make a perfect stream",
       "Wim Taymans <wim@fluendo.com>");
 
-  gst_element_class_add_pad_template (element_class,
-      gst_static_pad_template_get (&gst_audio_rate_sink_template));
-  gst_element_class_add_pad_template (element_class,
-      gst_static_pad_template_get (&gst_audio_rate_src_template));
+  gst_element_class_add_static_pad_template (element_class,
+      &gst_audio_rate_sink_template);
+  gst_element_class_add_static_pad_template (element_class,
+      &gst_audio_rate_src_template);
 
   element_class->change_state = gst_audio_rate_change_state;
 }
diff --git a/gst/audioresample/Makefile.am b/gst/audioresample/Makefile.am
index 728700d..6d83a39 100644
--- a/gst/audioresample/Makefile.am
+++ b/gst/audioresample/Makefile.am
@@ -1,44 +1,23 @@
 plugin_LTLIBRARIES = libgstaudioresample.la
 
-# FIXME: we still link against orc if it's there, even if --disable-orc was used
-if HAVE_ORC
-ORC_TEST_LIBS = -lorc-test-0.4
-else
-ORC_TEST_LIBS = 
-endif
-
 libgstaudioresample_la_SOURCES = \
-	gstaudioresample.c \
-	speex_resampler_int.c \
-	speex_resampler_float.c \
-	speex_resampler_double.c
+	gstaudioresample.c 
+
+nodist_libgstaudioresample_la_SOURCES = $(BUILT_SOURCES)
 
 libgstaudioresample_la_CFLAGS = \
 	$(GST_PLUGINS_BASE_CFLAGS) \
 	$(GST_BASE_CFLAGS) \
-	$(GST_CFLAGS) \
-	$(ORC_CFLAGS)
+	$(GST_CFLAGS)
 
 libgstaudioresample_la_LIBADD = \
 	$(top_builddir)/gst-libs/gst/audio/libgstaudio-@GST_API_VERSION@.la \
 	$(GST_BASE_LIBS) \
 	$(GST_LIBS) \
-	$(ORC_LIBS) $(ORC_TEST_LIBS) \
 	$(LIBM)
 
 libgstaudioresample_la_LDFLAGS = $(GST_PLUGIN_LDFLAGS)
 libgstaudioresample_la_LIBTOOLFLAGS = $(GST_PLUGIN_LIBTOOLFLAGS)
 
 noinst_HEADERS = \
-	arch.h \
-	fixed_arm4.h \
-	fixed_arm5e.h \
-	fixed_bfin.h \
-	fixed_debug.h \
-	fixed_generic.h \
-	gstaudioresample.h \
-	resample.c \
-	resample_sse.h \
-	resample_neon.h \
-	speex_resampler.h \
-	speex_resampler_wrapper.h
+	gstaudioresample.h
diff --git a/gst/audioresample/Makefile.in b/gst/audioresample/Makefile.in
index 2dd5ba7..fd9586e 100644
--- a/gst/audioresample/Makefile.in
+++ b/gst/audioresample/Makefile.in
@@ -164,14 +164,12 @@
 am__DEPENDENCIES_1 =
 libgstaudioresample_la_DEPENDENCIES = $(top_builddir)/gst-libs/gst/audio/libgstaudio-@GST_API_VERSION@.la \
 	$(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1) \
-	$(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1) \
 	$(am__DEPENDENCIES_1)
 am_libgstaudioresample_la_OBJECTS =  \
-	libgstaudioresample_la-gstaudioresample.lo \
-	libgstaudioresample_la-speex_resampler_int.lo \
-	libgstaudioresample_la-speex_resampler_float.lo \
-	libgstaudioresample_la-speex_resampler_double.lo
-libgstaudioresample_la_OBJECTS = $(am_libgstaudioresample_la_OBJECTS)
+	libgstaudioresample_la-gstaudioresample.lo
+nodist_libgstaudioresample_la_OBJECTS =
+libgstaudioresample_la_OBJECTS = $(am_libgstaudioresample_la_OBJECTS) \
+	$(nodist_libgstaudioresample_la_OBJECTS)
 AM_V_lt = $(am__v_lt_@AM_V@)
 am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@)
 am__v_lt_0 = --silent
@@ -214,7 +212,8 @@
 am__v_CCLD_ = $(am__v_CCLD_@AM_DEFAULT_V@)
 am__v_CCLD_0 = @echo "  CCLD    " $@;
 am__v_CCLD_1 = 
-SOURCES = $(libgstaudioresample_la_SOURCES)
+SOURCES = $(libgstaudioresample_la_SOURCES) \
+	$(nodist_libgstaudioresample_la_SOURCES)
 DIST_SOURCES = $(libgstaudioresample_la_SOURCES)
 am__can_run_installinfo = \
   case $$AM_UPDATE_INFO_DIR in \
@@ -241,7 +240,7 @@
   done | $(am__uniquify_input)`
 ETAGS = etags
 CTAGS = ctags
-am__DIST_COMMON = $(srcdir)/Makefile.in $(top_srcdir)/depcomp README
+am__DIST_COMMON = $(srcdir)/Makefile.in $(top_srcdir)/depcomp
 DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
 ACLOCAL = @ACLOCAL@
 ACLOCAL_AMFLAGS = @ACLOCAL_AMFLAGS@
@@ -538,44 +537,25 @@
 top_builddir = @top_builddir@
 top_srcdir = @top_srcdir@
 plugin_LTLIBRARIES = libgstaudioresample.la
-@HAVE_ORC_FALSE@ORC_TEST_LIBS = 
-
-# FIXME: we still link against orc if it's there, even if --disable-orc was used
-@HAVE_ORC_TRUE@ORC_TEST_LIBS = -lorc-test-0.4
 libgstaudioresample_la_SOURCES = \
-	gstaudioresample.c \
-	speex_resampler_int.c \
-	speex_resampler_float.c \
-	speex_resampler_double.c
+	gstaudioresample.c 
 
+nodist_libgstaudioresample_la_SOURCES = $(BUILT_SOURCES)
 libgstaudioresample_la_CFLAGS = \
 	$(GST_PLUGINS_BASE_CFLAGS) \
 	$(GST_BASE_CFLAGS) \
-	$(GST_CFLAGS) \
-	$(ORC_CFLAGS)
+	$(GST_CFLAGS)
 
 libgstaudioresample_la_LIBADD = \
 	$(top_builddir)/gst-libs/gst/audio/libgstaudio-@GST_API_VERSION@.la \
 	$(GST_BASE_LIBS) \
 	$(GST_LIBS) \
-	$(ORC_LIBS) $(ORC_TEST_LIBS) \
 	$(LIBM)
 
 libgstaudioresample_la_LDFLAGS = $(GST_PLUGIN_LDFLAGS)
 libgstaudioresample_la_LIBTOOLFLAGS = $(GST_PLUGIN_LIBTOOLFLAGS)
 noinst_HEADERS = \
-	arch.h \
-	fixed_arm4.h \
-	fixed_arm5e.h \
-	fixed_bfin.h \
-	fixed_debug.h \
-	fixed_generic.h \
-	gstaudioresample.h \
-	resample.c \
-	resample_sse.h \
-	resample_neon.h \
-	speex_resampler.h \
-	speex_resampler_wrapper.h
+	gstaudioresample.h
 
 all: all-am
 
@@ -656,9 +636,6 @@
 	-rm -f *.tab.c
 
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgstaudioresample_la-gstaudioresample.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgstaudioresample_la-speex_resampler_double.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgstaudioresample_la-speex_resampler_float.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgstaudioresample_la-speex_resampler_int.Plo@am__quote@
 
 .c.o:
 @am__fastdepCC_TRUE@	$(AM_V_CC)depbase=`echo $@ | sed 's|[^/]*$$|$(DEPDIR)/&|;s|\.o$$||'`;\
@@ -691,27 +668,6 @@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
 @am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstaudioresample_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstaudioresample_la_CFLAGS) $(CFLAGS) -c -o libgstaudioresample_la-gstaudioresample.lo `test -f 'gstaudioresample.c' || echo '$(srcdir)/'`gstaudioresample.c
 
-libgstaudioresample_la-speex_resampler_int.lo: speex_resampler_int.c
-@am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstaudioresample_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstaudioresample_la_CFLAGS) $(CFLAGS) -MT libgstaudioresample_la-speex_resampler_int.lo -MD -MP -MF $(DEPDIR)/libgstaudioresample_la-speex_resampler_int.Tpo -c -o libgstaudioresample_la-speex_resampler_int.lo `test -f 'speex_resampler_int.c' || echo '$(srcdir)/'`speex_resampler_int.c
-@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libgstaudioresample_la-speex_resampler_int.Tpo $(DEPDIR)/libgstaudioresample_la-speex_resampler_int.Plo
-@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='speex_resampler_int.c' object='libgstaudioresample_la-speex_resampler_int.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 $(libgstaudioresample_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstaudioresample_la_CFLAGS) $(CFLAGS) -c -o libgstaudioresample_la-speex_resampler_int.lo `test -f 'speex_resampler_int.c' || echo '$(srcdir)/'`speex_resampler_int.c
-
-libgstaudioresample_la-speex_resampler_float.lo: speex_resampler_float.c
-@am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstaudioresample_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstaudioresample_la_CFLAGS) $(CFLAGS) -MT libgstaudioresample_la-speex_resampler_float.lo -MD -MP -MF $(DEPDIR)/libgstaudioresample_la-speex_resampler_float.Tpo -c -o libgstaudioresample_la-speex_resampler_float.lo `test -f 'speex_resampler_float.c' || echo '$(srcdir)/'`speex_resampler_float.c
-@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libgstaudioresample_la-speex_resampler_float.Tpo $(DEPDIR)/libgstaudioresample_la-speex_resampler_float.Plo
-@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='speex_resampler_float.c' object='libgstaudioresample_la-speex_resampler_float.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 $(libgstaudioresample_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstaudioresample_la_CFLAGS) $(CFLAGS) -c -o libgstaudioresample_la-speex_resampler_float.lo `test -f 'speex_resampler_float.c' || echo '$(srcdir)/'`speex_resampler_float.c
-
-libgstaudioresample_la-speex_resampler_double.lo: speex_resampler_double.c
-@am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstaudioresample_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstaudioresample_la_CFLAGS) $(CFLAGS) -MT libgstaudioresample_la-speex_resampler_double.lo -MD -MP -MF $(DEPDIR)/libgstaudioresample_la-speex_resampler_double.Tpo -c -o libgstaudioresample_la-speex_resampler_double.lo `test -f 'speex_resampler_double.c' || echo '$(srcdir)/'`speex_resampler_double.c
-@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libgstaudioresample_la-speex_resampler_double.Tpo $(DEPDIR)/libgstaudioresample_la-speex_resampler_double.Plo
-@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='speex_resampler_double.c' object='libgstaudioresample_la-speex_resampler_double.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 $(libgstaudioresample_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstaudioresample_la_CFLAGS) $(CFLAGS) -c -o libgstaudioresample_la-speex_resampler_double.lo `test -f 'speex_resampler_double.c' || echo '$(srcdir)/'`speex_resampler_double.c
-
 mostlyclean-libtool:
 	-rm -f *.lo
 
diff --git a/gst/audioresample/README b/gst/audioresample/README
deleted file mode 100644
index faab16f..0000000
--- a/gst/audioresample/README
+++ /dev/null
@@ -1,347 +0,0 @@
- arch.h            
- fixed_arm4.h      
- fixed_arm5e.h     
- fixed_bfin.h      
- fixed_debug.h     
- fixed_generic.h   
- resample.c        
- speex_resampler.h 
-
-are taken from http://git.xiph.org/speex.git/ as of 2009-11-10.
-
-The only changes are:
-
-diff -Naur old/arch.h new/arch.h
---- old/arch.h	2009-11-10 12:18:29.000000000 +0100
-+++ new/arch.h	2009-11-10 12:19:09.000000000 +0100
-@@ -78,7 +78,10 @@
- #include "../include/speex/speex_types.h"
- #endif
- 
-+#ifndef ABS
- #define ABS(x) ((x) < 0 ? (-(x)) : (x))      /**< Absolute integer value. */
-+#endif
-+
- #define ABS16(x) ((x) < 0 ? (-(x)) : (x))    /**< Absolute 16-bit value.  */
- #define MIN16(a,b) ((a) < (b) ? (a) : (b))   /**< Maximum 16-bit value.   */
- #define MAX16(a,b) ((a) > (b) ? (a) : (b))   /**< Maximum 16-bit value.   */
-@@ -134,6 +137,28 @@
- 
- #else
- 
-+#ifdef DOUBLE_PRECISION
-+typedef double spx_mem_t;
-+typedef double spx_coef_t;
-+typedef double spx_lsp_t;
-+typedef double spx_sig_t;
-+typedef double spx_word16_t;
-+typedef double spx_word32_t;
-+
-+#define Q15ONE 1.0
-+#define LPC_SCALING  1.
-+#define SIG_SCALING  1.
-+#define LSP_SCALING  1.
-+#define GAMMA_SCALING 1.
-+#define GAIN_SCALING 1.
-+#define GAIN_SCALING_1 1.
-+
-+
-+#define VERY_SMALL 1e-20
-+#define VERY_LARGE32 1e20
-+#define VERY_LARGE16 1e20
-+#define Q15_ONE ((spx_word16_t)1.)
-+#else /* !DOUBLE_PRECISION */
- typedef float spx_mem_t;
- typedef float spx_coef_t;
- typedef float spx_lsp_t;
-@@ -154,6 +179,7 @@
- #define VERY_LARGE32 1e15f
- #define VERY_LARGE16 1e15f
- #define Q15_ONE ((spx_word16_t)1.f)
-+#endif /* DOUBLE_PRECISION */
- 
- #define QCONST16(x,bits) (x)
- #define QCONST32(x,bits) (x)
-diff -Naur old/resample.c new/resample.c
---- old/resample.c	2009-11-10 12:18:51.000000000 +0100
-+++ new/resample.c	2009-11-10 12:19:09.000000000 +0100
-@@ -63,22 +63,27 @@
- 
- #ifdef OUTSIDE_SPEEX
- #include <stdlib.h>
--static void *
-+
-+#include <glib.h>
-+
-+#define EXPORT G_GNUC_INTERNAL
-+
-+static inline void *
- speex_alloc (int size)
- {
--  return calloc (size, 1);
-+  return g_malloc0 (size);
- }
- 
--static void *
-+static inline void *
- speex_realloc (void *ptr, int size)
- {
--  return realloc (ptr, size);
-+  return g_realloc (ptr, size);
- }
- 
--static void
-+static inline void
- speex_free (void *ptr)
- {
--  free (ptr);
-+  g_free (ptr);
- }
- 
- #include "speex_resampler.h"
-@@ -90,7 +95,6 @@
- #include "os_support.h"
- #endif /* OUTSIDE_SPEEX */
- 
--#include "stack_alloc.h"
- #include <math.h>
- 
- #ifndef M_PI
-@@ -263,10 +267,17 @@
- };
- 
- /*8,24,40,56,80,104,128,160,200,256,320*/
-+#ifdef DOUBLE_PRECISION
-+static double
-+compute_func (double x, struct FuncDef *func)
-+{
-+  double y, frac;
-+#else
- static double
- compute_func (float x, struct FuncDef *func)
- {
-   float y, frac;
-+#endif
-   double interp[4];
-   int ind;
-   y = x * func->oversample;
-@@ -317,11 +328,19 @@
- }
- #else
- /* The slow way of computing a sinc for the table. Should improve that some day */
-+#ifdef DOUBLE_PRECISION
-+static spx_word16_t
-+sinc (double cutoff, double x, int N, struct FuncDef *window_func)
-+{
-+  /*fprintf (stderr, "%f ", x); */
-+  double xx = x * cutoff;
-+#else
- static spx_word16_t
- sinc (float cutoff, float x, int N, struct FuncDef *window_func)
- {
-   /*fprintf (stderr, "%f ", x); */
-   float xx = x * cutoff;
-+#endif
-   if (fabs (x) < 1e-6)
-     return cutoff;
-   else if (fabs (x) > .5 * N)
-@@ -372,6 +391,7 @@
- }
- #endif
- 
-+#ifndef DOUBLE_PRECISION
- static int
- resampler_basic_direct_single (SpeexResamplerState * st,
-     spx_uint32_t channel_index, const spx_word16_t * in, spx_uint32_t * in_len,
-@@ -428,6 +448,7 @@
-   st->samp_frac_num[channel_index] = samp_frac_num;
-   return out_sample;
- }
-+#endif
- 
- #ifdef FIXED_POINT
- #else
-@@ -483,6 +504,7 @@
- }
- #endif
- 
-+#ifndef DOUBLE_PRECISION
- static int
- resampler_basic_interpolate_single (SpeexResamplerState * st,
-     spx_uint32_t channel_index, const spx_word16_t * in, spx_uint32_t * in_len,
-@@ -562,6 +584,7 @@
-   st->samp_frac_num[channel_index] = samp_frac_num;
-   return out_sample;
- }
-+#endif
- 
- #ifdef FIXED_POINT
- #else
-@@ -592,10 +615,16 @@
-         PDIV32 (SHL32 ((samp_frac_num * st->oversample) % st->den_rate, 15),
-         st->den_rate);
- #else
-+#ifdef DOUBLE_PRECISION
-+    const spx_word16_t frac =
-+        ((double) ((samp_frac_num * st->oversample) % st->den_rate)) /
-+        st->den_rate;
-+#else
-     const spx_word16_t frac =
-         ((float) ((samp_frac_num * st->oversample) % st->den_rate)) /
-         st->den_rate;
- #endif
-+#endif
-     spx_word16_t interp[4];
- 
- 
-@@ -696,20 +725,27 @@
-       spx_int32_t j;
-       for (j = 0; j < st->filt_len; j++) {
-         st->sinc_table[i * st->filt_len + j] =
--            sinc (st->cutoff,
--            ((j - (spx_int32_t) st->filt_len / 2 + 1) -
-+            sinc (st->cutoff, ((j - (spx_int32_t) st->filt_len / 2 + 1) -
-+#ifdef DOUBLE_PRECISION
-+                ((double) i) / st->den_rate), st->filt_len,
-+#else
-                 ((float) i) / st->den_rate), st->filt_len,
-+#endif
-             quality_map[st->quality].window_func);
-       }
-     }
- #ifdef FIXED_POINT
-     st->resampler_ptr = resampler_basic_direct_single;
- #else
-+#ifdef DOUBLE_PRECISION
-+    st->resampler_ptr = resampler_basic_direct_double;
-+#else
-     if (st->quality > 8)
-       st->resampler_ptr = resampler_basic_direct_double;
-     else
-       st->resampler_ptr = resampler_basic_direct_single;
- #endif
-+#endif
-     /*fprintf (stderr, "resampler uses direct sinc table and normalised cutoff %f\n", cutoff); */
-   } else {
-     spx_int32_t i;
-@@ -725,16 +761,24 @@
-     }
-     for (i = -4; i < (spx_int32_t) (st->oversample * st->filt_len + 4); i++)
-       st->sinc_table[i + 4] =
-+#ifdef DOUBLE_PRECISION
-+          sinc (st->cutoff, (i / (double) st->oversample - st->filt_len / 2),
-+#else
-           sinc (st->cutoff, (i / (float) st->oversample - st->filt_len / 2),
-+#endif
-           st->filt_len, quality_map[st->quality].window_func);
- #ifdef FIXED_POINT
-     st->resampler_ptr = resampler_basic_interpolate_single;
- #else
-+#ifdef DOUBLE_PRECISION
-+    st->resampler_ptr = resampler_basic_interpolate_double;
-+#else
-     if (st->quality > 8)
-       st->resampler_ptr = resampler_basic_interpolate_double;
-     else
-       st->resampler_ptr = resampler_basic_interpolate_single;
- #endif
-+#endif
-     /*fprintf (stderr, "resampler uses interpolated sinc table and normalised cutoff %f\n", cutoff); */
-   }
-   st->int_advance = st->num_rate / st->den_rate;
-@@ -964,11 +1008,18 @@
-     spx_uint32_t channel_index, const spx_int16_t * in, spx_uint32_t * in_len,
-     spx_int16_t * out, spx_uint32_t * out_len)
- #else
-+#ifdef DOUBLE_PRECISION
-+EXPORT int
-+speex_resampler_process_float (SpeexResamplerState * st,
-+    spx_uint32_t channel_index, const double *in, spx_uint32_t * in_len,
-+    double *out, spx_uint32_t * out_len)
-+#else
- EXPORT int
- speex_resampler_process_float (SpeexResamplerState * st,
-     spx_uint32_t channel_index, const float *in, spx_uint32_t * in_len,
-     float *out, spx_uint32_t * out_len)
- #endif
-+#endif
- {
-   int j;
-   spx_uint32_t ilen = *in_len;
-@@ -1086,9 +1137,16 @@
-   return RESAMPLER_ERR_SUCCESS;
- }
- 
-+#ifdef DOUBLE_PRECISION
-+EXPORT int
-+speex_resampler_process_interleaved_float (SpeexResamplerState * st,
-+    const double *in, spx_uint32_t * in_len, double *out,
-+    spx_uint32_t * out_len)
-+#else
- EXPORT int
- speex_resampler_process_interleaved_float (SpeexResamplerState * st,
-     const float *in, spx_uint32_t * in_len, float *out, spx_uint32_t * out_len)
-+#endif
- {
-   spx_uint32_t i;
-   int istride_save, ostride_save;
-diff -Naur old/speex_resampler.h new/speex_resampler.h
---- old/speex_resampler.h	2009-11-10 12:18:09.000000000 +0100
-+++ new/speex_resampler.h	2009-11-10 12:19:09.000000000 +0100
-@@ -77,10 +77,10 @@
- #define speex_resampler_reset_mem CAT_PREFIX(RANDOM_PREFIX,_resampler_reset_mem)
- #define speex_resampler_strerror CAT_PREFIX(RANDOM_PREFIX,_resampler_strerror)
- 
--#define spx_int16_t short
--#define spx_int32_t int
--#define spx_uint16_t unsigned short
--#define spx_uint32_t unsigned int
-+#define spx_int16_t gint16
-+#define spx_int32_t gint32
-+#define spx_uint16_t guint16
-+#define spx_uint32_t guint32
-       
- #else /* OUTSIDE_SPEEX */
- 
-@@ -166,12 +166,21 @@
-  * @param out Output buffer
-  * @param out_len Size of the output buffer. Returns the number of samples written
-  */
-+#ifdef DOUBLE_PRECISION
-+int speex_resampler_process_float(SpeexResamplerState *st, 
-+                                   spx_uint32_t channel_index, 
-+                                   const double *in, 
-+                                   spx_uint32_t *in_len, 
-+                                   double *out, 
-+                                   spx_uint32_t *out_len);
-+#else
- int speex_resampler_process_float(SpeexResamplerState *st, 
-                                    spx_uint32_t channel_index, 
-                                    const float *in, 
-                                    spx_uint32_t *in_len, 
-                                    float *out, 
-                                    spx_uint32_t *out_len);
-+#endif
- 
- /** Resample an int array. The input and output buffers must *not* overlap.
-  * @param st Resampler state
-@@ -199,11 +208,19 @@
-  * @param out_len Size of the output buffer. Returns the number of samples written.
-  * This is all per-channel.
-  */
-+#ifdef DOUBLE_PRECISION
-+int speex_resampler_process_interleaved_float(SpeexResamplerState *st, 
-+                                               const double *in, 
-+                                               spx_uint32_t *in_len, 
-+                                               double *out, 
-+                                               spx_uint32_t *out_len);
-+#else
- int speex_resampler_process_interleaved_float(SpeexResamplerState *st, 
-                                                const float *in, 
-                                                spx_uint32_t *in_len, 
-                                                float *out, 
-                                                spx_uint32_t *out_len);
-+#endif
- 
- /** Resample an interleaved int array. The input and output buffers must *not* overlap.
-  * @param st Resampler state
diff --git a/gst/audioresample/arch.h b/gst/audioresample/arch.h
deleted file mode 100644
index 4e77e6e..0000000
--- a/gst/audioresample/arch.h
+++ /dev/null
@@ -1,266 +0,0 @@
-/* Copyright (C) 2003 Jean-Marc Valin */
-/**
-   @file arch.h
-   @brief Various architecture definitions Speex
-*/
-/*
-   Redistribution and use in source and binary forms, with or without
-   modification, are permitted provided that the following conditions
-   are met:
-   
-   - Redistributions of source code must retain the above copyright
-   notice, this list of conditions and the following disclaimer.
-   
-   - Redistributions in binary form must reproduce the above copyright
-   notice, this list of conditions and the following disclaimer in the
-   documentation and/or other materials provided with the distribution.
-   
-   - Neither the name of the Xiph.org Foundation nor the names of its
-   contributors may be used to endorse or promote products derived from
-   this software without specific prior written permission.
-   
-   THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-   ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-   LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-   A PARTICULAR PURPOSE ARE DISCLAIMED.  IN NO EVENT SHALL THE FOUNDATION OR
-   CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
-   EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
-   PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
-   PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
-   LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
-   NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
-   SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-*/
-
-#ifndef ARCH_H
-#define ARCH_H
-
-#ifndef SPEEX_VERSION
-#define SPEEX_MAJOR_VERSION 1         /**< Major Speex version. */
-#define SPEEX_MINOR_VERSION 1         /**< Minor Speex version. */
-#define SPEEX_MICRO_VERSION 15        /**< Micro Speex version. */
-#define SPEEX_EXTRA_VERSION ""        /**< Extra Speex version. */
-#define SPEEX_VERSION "speex-1.2beta3"  /**< Speex version string. */
-#endif
-
-/* A couple test to catch stupid option combinations */
-#ifdef FIXED_POINT
-
-#ifdef FLOATING_POINT
-#error You cannot compile as floating point and fixed point at the same time
-#endif
-#ifdef _USE_SSE
-#error SSE is only for floating-point
-#endif
-#if ((defined (ARM4_ASM)||defined (ARM4_ASM)) && defined(BFIN_ASM)) || (defined (ARM4_ASM)&&defined(ARM5E_ASM))
-#error Make up your mind. What CPU do you have?
-#endif
-#ifdef VORBIS_PSYCHO
-#error Vorbis-psy model currently not implemented in fixed-point
-#endif
-
-#else
-
-#ifndef FLOATING_POINT
-#error You now need to define either FIXED_POINT or FLOATING_POINT
-#endif
-#if defined (ARM4_ASM) || defined(ARM5E_ASM) || defined(BFIN_ASM)
-#error I suppose you can have a [ARM4/ARM5E/Blackfin] that has float instructions?
-#endif
-#ifdef FIXED_POINT_DEBUG
-#error "Don't you think enabling fixed-point is a good thing to do if you want to debug that?"
-#endif
-
-
-#endif
-
-#ifndef OUTSIDE_SPEEX
-#include "../include/speex/speex_types.h"
-#endif
-
-#ifndef ABS
-#define ABS(x) ((x) < 0 ? (-(x)) : (x))      /**< Absolute integer value. */
-#endif
-
-#define ABS16(x) ((x) < 0 ? (-(x)) : (x))    /**< Absolute 16-bit value.  */
-#define MIN16(a,b) ((a) < (b) ? (a) : (b))   /**< Maximum 16-bit value.   */
-#define MAX16(a,b) ((a) > (b) ? (a) : (b))   /**< Maximum 16-bit value.   */
-#define ABS32(x) ((x) < 0 ? (-(x)) : (x))    /**< Absolute 32-bit value.  */
-#define MIN32(a,b) ((a) < (b) ? (a) : (b))   /**< Maximum 32-bit value.   */
-#define MAX32(a,b) ((a) > (b) ? (a) : (b))   /**< Maximum 32-bit value.   */
-
-#ifdef FIXED_POINT
-
-typedef spx_int16_t spx_word16_t;
-typedef spx_int32_t spx_word32_t;
-typedef spx_word32_t spx_mem_t;
-typedef spx_word16_t spx_coef_t;
-typedef spx_word16_t spx_lsp_t;
-typedef spx_word32_t spx_sig_t;
-
-#define Q15ONE 32767
-
-#define LPC_SCALING  8192
-#define SIG_SCALING  16384
-#define LSP_SCALING  8192.
-#define GAMMA_SCALING 32768.
-#define GAIN_SCALING 64
-#define GAIN_SCALING_1 0.015625
-
-#define LPC_SHIFT    13
-#define LSP_SHIFT    13
-#define SIG_SHIFT    14
-#define GAIN_SHIFT   6
-
-#define VERY_SMALL 0
-#define VERY_LARGE32 ((spx_word32_t)2147483647)
-#define VERY_LARGE16 ((spx_word16_t)32767)
-#define Q15_ONE ((spx_word16_t)32767)
-
-
-#ifdef FIXED_DEBUG
-#include "fixed_debug.h"
-#else
-
-#include "fixed_generic.h"
-
-#ifdef ARM5E_ASM
-#include "fixed_arm5e.h"
-#elif defined (ARM4_ASM)
-#include "fixed_arm4.h"
-#elif defined (BFIN_ASM)
-#include "fixed_bfin.h"
-#endif
-
-#endif
-
-
-#else
-
-#ifdef DOUBLE_PRECISION
-typedef double spx_mem_t;
-typedef double spx_coef_t;
-typedef double spx_lsp_t;
-typedef double spx_sig_t;
-typedef double spx_word16_t;
-typedef double spx_word32_t;
-
-#define Q15ONE 1.0
-#define LPC_SCALING  1.
-#define SIG_SCALING  1.
-#define LSP_SCALING  1.
-#define GAMMA_SCALING 1.
-#define GAIN_SCALING 1.
-#define GAIN_SCALING_1 1.
-
-
-#define VERY_SMALL 1e-20
-#define VERY_LARGE32 1e20
-#define VERY_LARGE16 1e20
-#define Q15_ONE ((spx_word16_t)1.)
-#else /* !DOUBLE_PRECISION */
-typedef float spx_mem_t;
-typedef float spx_coef_t;
-typedef float spx_lsp_t;
-typedef float spx_sig_t;
-typedef float spx_word16_t;
-typedef float spx_word32_t;
-
-#define Q15ONE 1.0f
-#define LPC_SCALING  1.f
-#define SIG_SCALING  1.f
-#define LSP_SCALING  1.f
-#define GAMMA_SCALING 1.f
-#define GAIN_SCALING 1.f
-#define GAIN_SCALING_1 1.f
-
-
-#define VERY_SMALL 1e-15f
-#define VERY_LARGE32 1e15f
-#define VERY_LARGE16 1e15f
-#define Q15_ONE ((spx_word16_t)1.f)
-#endif /* DOUBLE_PRECISION */
-
-#define QCONST16(x,bits) (x)
-#define QCONST32(x,bits) (x)
-
-#define NEG16(x) (-(x))
-#define NEG32(x) (-(x))
-#define EXTRACT16(x) (x)
-#define EXTEND32(x) (x)
-#define SHR16(a,shift) (a)
-#define SHL16(a,shift) (a)
-#define SHR32(a,shift) (a)
-#define SHL32(a,shift) (a)
-#define PSHR16(a,shift) (a)
-#define PSHR32(a,shift) (a)
-#define VSHR32(a,shift) (a)
-#define SATURATE16(x,a) (x)
-#define SATURATE32(x,a) (x)
-#define SATURATE32PSHR(x,shift,a) (x)
-
-#define PSHR(a,shift)       (a)
-#define SHR(a,shift)       (a)
-#define SHL(a,shift)       (a)
-#define SATURATE(x,a) (x)
-
-#define ADD16(a,b) ((a)+(b))
-#define SUB16(a,b) ((a)-(b))
-#define ADD32(a,b) ((a)+(b))
-#define SUB32(a,b) ((a)-(b))
-#define MULT16_16_16(a,b)     ((a)*(b))
-#define MULT16_16(a,b)     ((spx_word32_t)(a)*(spx_word32_t)(b))
-#define MAC16_16(c,a,b)     ((c)+(spx_word32_t)(a)*(spx_word32_t)(b))
-
-#define MULT16_32_Q11(a,b)     ((a)*(b))
-#define MULT16_32_Q13(a,b)     ((a)*(b))
-#define MULT16_32_Q14(a,b)     ((a)*(b))
-#define MULT16_32_Q15(a,b)     ((a)*(b))
-#define MULT16_32_P15(a,b)     ((a)*(b))
-
-#define MAC16_32_Q11(c,a,b)     ((c)+(a)*(b))
-#define MAC16_32_Q15(c,a,b)     ((c)+(a)*(b))
-
-#define MAC16_16_Q11(c,a,b)     ((c)+(a)*(b))
-#define MAC16_16_Q13(c,a,b)     ((c)+(a)*(b))
-#define MAC16_16_P13(c,a,b)     ((c)+(a)*(b))
-#define MULT16_16_Q11_32(a,b)     ((a)*(b))
-#define MULT16_16_Q13(a,b)     ((a)*(b))
-#define MULT16_16_Q14(a,b)     ((a)*(b))
-#define MULT16_16_Q15(a,b)     ((a)*(b))
-#define MULT16_16_P15(a,b)     ((a)*(b))
-#define MULT16_16_P13(a,b)     ((a)*(b))
-#define MULT16_16_P14(a,b)     ((a)*(b))
-
-#define DIV32_16(a,b)     (((spx_word32_t)(a))/(spx_word16_t)(b))
-#define PDIV32_16(a,b)     (((spx_word32_t)(a))/(spx_word16_t)(b))
-#define DIV32(a,b)     (((spx_word32_t)(a))/(spx_word32_t)(b))
-#define PDIV32(a,b)     (((spx_word32_t)(a))/(spx_word32_t)(b))
-
-
-#endif
-
-
-#if defined (CONFIG_TI_C54X) || defined (CONFIG_TI_C55X)
-
-/* 2 on TI C5x DSP */
-#define BYTES_PER_CHAR 2 
-#define BITS_PER_CHAR 16
-#define LOG2_BITS_PER_CHAR 4
-
-#else 
-
-#define BYTES_PER_CHAR 1
-#define BITS_PER_CHAR 8
-#define LOG2_BITS_PER_CHAR 3
-
-#endif
-
-
-
-#ifdef FIXED_DEBUG
-extern long long spx_mips;
-#endif
-
-
-#endif
diff --git a/gst/audioresample/fixed_arm4.h b/gst/audioresample/fixed_arm4.h
deleted file mode 100644
index b6981ca..0000000
--- a/gst/audioresample/fixed_arm4.h
+++ /dev/null
@@ -1,148 +0,0 @@
-/* Copyright (C) 2004 Jean-Marc Valin */
-/**
-   @file fixed_arm4.h
-   @brief ARM4 fixed-point operations
-*/
-/*
-   Redistribution and use in source and binary forms, with or without
-   modification, are permitted provided that the following conditions
-   are met:
-   
-   - Redistributions of source code must retain the above copyright
-   notice, this list of conditions and the following disclaimer.
-   
-   - Redistributions in binary form must reproduce the above copyright
-   notice, this list of conditions and the following disclaimer in the
-   documentation and/or other materials provided with the distribution.
-   
-   - Neither the name of the Xiph.org Foundation nor the names of its
-   contributors may be used to endorse or promote products derived from
-   this software without specific prior written permission.
-   
-   THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-   ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-   LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-   A PARTICULAR PURPOSE ARE DISCLAIMED.  IN NO EVENT SHALL THE FOUNDATION OR
-   CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
-   EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
-   PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
-   PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
-   LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
-   NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
-   SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-*/
-
-#ifndef FIXED_ARM4_H
-#define FIXED_ARM4_H
-
-#undef MULT16_32_Q14
-static inline spx_word32_t MULT16_32_Q14(spx_word16_t x, spx_word32_t y) {
-  int res;
-  int dummy;
-  asm (
-        "smull  %0,%1,%2,%3 \n\t"
-        "mov %0, %0, lsr #14 \n\t"
-        "add %0, %0, %1, lsl #18 \n\t"
-   : "=&r"(res), "=&r" (dummy)
-   : "r"(y),"r"((int)x));
-  return(res);
-}
-
-#undef MULT16_32_Q15
-static inline spx_word32_t MULT16_32_Q15(spx_word16_t x, spx_word32_t y) {
-  int res;
-  int dummy;
-  asm (
-        "smull  %0,%1,%2,%3 \n\t"
-        "mov %0, %0, lsr #15 \n\t"
-        "add %0, %0, %1, lsl #17 \n\t"
-   : "=&r"(res), "=&r" (dummy)
-   : "r"(y),"r"((int)x));
-  return(res);
-}
-
-#undef DIV32_16
-static inline short DIV32_16(int a, int b)
-{
-   int res=0;
-   int dead1, dead2, dead3, dead4, dead5;
-   __asm__ __volatile__ (
-         "\teor %5, %0, %1\n"
-         "\tmovs %4, %0\n"
-         "\trsbmi %0, %0, #0 \n"
-         "\tmovs %4, %1\n"
-         "\trsbmi %1, %1, #0 \n"
-         "\tmov %4, #1\n"
-
-         "\tsubs %3, %0, %1, asl #14 \n"
-         "\tmovpl %0, %3 \n"
-         "\torrpl %2, %2, %4, asl #14 \n"
-
-         "\tsubs %3, %0, %1, asl #13 \n"
-         "\tmovpl %0, %3 \n"
-         "\torrpl %2, %2, %4, asl #13 \n"
-
-         "\tsubs %3, %0, %1, asl #12 \n"
-         "\tmovpl %0, %3 \n"
-         "\torrpl %2, %2, %4, asl #12 \n"
-
-         "\tsubs %3, %0, %1, asl #11 \n"
-         "\tmovpl %0, %3 \n"
-         "\torrpl %2, %2, %4, asl #11 \n"
-
-         "\tsubs %3, %0, %1, asl #10 \n"
-         "\tmovpl %0, %3 \n"
-         "\torrpl %2, %2, %4, asl #10 \n"
-
-         "\tsubs %3, %0, %1, asl #9 \n"
-         "\tmovpl %0, %3 \n"
-         "\torrpl %2, %2, %4, asl #9 \n"
-
-         "\tsubs %3, %0, %1, asl #8 \n"
-         "\tmovpl %0, %3 \n"
-         "\torrpl %2, %2, %4, asl #8 \n"
-
-         "\tsubs %3, %0, %1, asl #7 \n"
-         "\tmovpl %0, %3 \n"
-         "\torrpl %2, %2, %4, asl #7 \n"
-
-         "\tsubs %3, %0, %1, asl #6 \n"
-         "\tmovpl %0, %3 \n"
-         "\torrpl %2, %2, %4, asl #6 \n"
-         
-         "\tsubs %3, %0, %1, asl #5 \n"
-         "\tmovpl %0, %3 \n"
-         "\torrpl %2, %2, %4, asl #5 \n"
-
-         "\tsubs %3, %0, %1, asl #4 \n"
-         "\tmovpl %0, %3 \n"
-         "\torrpl %2, %2, %4, asl #4 \n"
-
-         "\tsubs %3, %0, %1, asl #3 \n"
-         "\tmovpl %0, %3 \n"
-         "\torrpl %2, %2, %4, asl #3 \n"
-
-         "\tsubs %3, %0, %1, asl #2 \n"
-         "\tmovpl %0, %3 \n"
-         "\torrpl %2, %2, %4, asl #2 \n"
-
-         "\tsubs %3, %0, %1, asl #1 \n"
-         "\tmovpl %0, %3 \n"
-         "\torrpl %2, %2, %4, asl #1 \n"
-
-         "\tsubs %3, %0, %1 \n"
-         "\tmovpl %0, %3 \n"
-         "\torrpl %2, %2, %4 \n"
-
-         "\tmovs %5, %5, lsr #31 \n"
-         "\trsbne %2, %2, #0 \n"
-   : "=r" (dead1), "=r" (dead2), "=r" (res),
-   "=r" (dead3), "=r" (dead4), "=r" (dead5)
-   : "0" (a), "1" (b), "2" (res)
-   : "cc"
-                        );
-   return res;
-}
-
-
-#endif
diff --git a/gst/audioresample/fixed_arm5e.h b/gst/audioresample/fixed_arm5e.h
deleted file mode 100644
index 9b4861c..0000000
--- a/gst/audioresample/fixed_arm5e.h
+++ /dev/null
@@ -1,178 +0,0 @@
-/* Copyright (C) 2003 Jean-Marc Valin */
-/**
-   @file fixed_arm5e.h
-   @brief ARM-tuned fixed-point operations
-*/
-/*
-   Redistribution and use in source and binary forms, with or without
-   modification, are permitted provided that the following conditions
-   are met:
-   
-   - Redistributions of source code must retain the above copyright
-   notice, this list of conditions and the following disclaimer.
-   
-   - Redistributions in binary form must reproduce the above copyright
-   notice, this list of conditions and the following disclaimer in the
-   documentation and/or other materials provided with the distribution.
-   
-   - Neither the name of the Xiph.org Foundation nor the names of its
-   contributors may be used to endorse or promote products derived from
-   this software without specific prior written permission.
-   
-   THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-   ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-   LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-   A PARTICULAR PURPOSE ARE DISCLAIMED.  IN NO EVENT SHALL THE FOUNDATION OR
-   CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
-   EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
-   PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
-   PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
-   LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
-   NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
-   SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-*/
-
-#ifndef FIXED_ARM5E_H
-#define FIXED_ARM5E_H
-
-#undef MULT16_16
-static inline spx_word32_t MULT16_16(spx_word16_t x, spx_word16_t y) {
-  int res;
-  asm ("smulbb  %0,%1,%2;\n"
-              : "=&r"(res)
-              : "%r"(x),"r"(y));
-  return(res);
-}
-
-#undef MAC16_16
-static inline spx_word32_t MAC16_16(spx_word32_t a, spx_word16_t x, spx_word32_t y) {
-  int res;
-  asm ("smlabb  %0,%1,%2,%3;\n"
-              : "=&r"(res)
-               : "%r"(x),"r"(y),"r"(a));
-  return(res);
-}
-
-#undef MULT16_32_Q15
-static inline spx_word32_t MULT16_32_Q15(spx_word16_t x, spx_word32_t y) {
-  int res;
-  asm ("smulwb  %0,%1,%2;\n"
-              : "=&r"(res)
-               : "%r"(y<<1),"r"(x));
-  return(res);
-}
-
-#undef MAC16_32_Q15
-static inline spx_word32_t MAC16_32_Q15(spx_word32_t a, spx_word16_t x, spx_word32_t y) {
-  int res;
-  asm ("smlawb  %0,%1,%2,%3;\n"
-              : "=&r"(res)
-               : "%r"(y<<1),"r"(x),"r"(a));
-  return(res);
-}
-
-#undef MULT16_32_Q11
-static inline spx_word32_t MULT16_32_Q11(spx_word16_t x, spx_word32_t y) {
-  int res;
-  asm ("smulwb  %0,%1,%2;\n"
-              : "=&r"(res)
-               : "%r"(y<<5),"r"(x));
-  return(res);
-}
-
-#undef MAC16_32_Q11
-static inline spx_word32_t MAC16_32_Q11(spx_word32_t a, spx_word16_t x, spx_word32_t y) {
-  int res;
-  asm ("smlawb  %0,%1,%2,%3;\n"
-              : "=&r"(res)
-               : "%r"(y<<5),"r"(x),"r"(a));
-  return(res);
-}
-
-#undef DIV32_16
-static inline short DIV32_16(int a, int b)
-{
-   int res=0;
-   int dead1, dead2, dead3, dead4, dead5;
-   __asm__ __volatile__ (
-         "\teor %5, %0, %1\n"
-         "\tmovs %4, %0\n"
-         "\trsbmi %0, %0, #0 \n"
-         "\tmovs %4, %1\n"
-         "\trsbmi %1, %1, #0 \n"
-         "\tmov %4, #1\n"
-
-         "\tsubs %3, %0, %1, asl #14 \n"
-         "\torrpl %2, %2, %4, asl #14 \n"
-         "\tmovpl %0, %3 \n"
-
-         "\tsubs %3, %0, %1, asl #13 \n"
-         "\torrpl %2, %2, %4, asl #13 \n"
-         "\tmovpl %0, %3 \n"
-
-         "\tsubs %3, %0, %1, asl #12 \n"
-         "\torrpl %2, %2, %4, asl #12 \n"
-         "\tmovpl %0, %3 \n"
-
-         "\tsubs %3, %0, %1, asl #11 \n"
-         "\torrpl %2, %2, %4, asl #11 \n"
-         "\tmovpl %0, %3 \n"
-
-         "\tsubs %3, %0, %1, asl #10 \n"
-         "\torrpl %2, %2, %4, asl #10 \n"
-         "\tmovpl %0, %3 \n"
-
-         "\tsubs %3, %0, %1, asl #9 \n"
-         "\torrpl %2, %2, %4, asl #9 \n"
-         "\tmovpl %0, %3 \n"
-
-         "\tsubs %3, %0, %1, asl #8 \n"
-         "\torrpl %2, %2, %4, asl #8 \n"
-         "\tmovpl %0, %3 \n"
-
-         "\tsubs %3, %0, %1, asl #7 \n"
-         "\torrpl %2, %2, %4, asl #7 \n"
-         "\tmovpl %0, %3 \n"
-
-         "\tsubs %3, %0, %1, asl #6 \n"
-         "\torrpl %2, %2, %4, asl #6 \n"
-         "\tmovpl %0, %3 \n"
-
-         "\tsubs %3, %0, %1, asl #5 \n"
-         "\torrpl %2, %2, %4, asl #5 \n"
-         "\tmovpl %0, %3 \n"
-
-         "\tsubs %3, %0, %1, asl #4 \n"
-         "\torrpl %2, %2, %4, asl #4 \n"
-         "\tmovpl %0, %3 \n"
-
-         "\tsubs %3, %0, %1, asl #3 \n"
-         "\torrpl %2, %2, %4, asl #3 \n"
-         "\tmovpl %0, %3 \n"
-
-         "\tsubs %3, %0, %1, asl #2 \n"
-         "\torrpl %2, %2, %4, asl #2 \n"
-         "\tmovpl %0, %3 \n"
-
-         "\tsubs %3, %0, %1, asl #1 \n"
-         "\torrpl %2, %2, %4, asl #1 \n"
-         "\tmovpl %0, %3 \n"
-
-         "\tsubs %3, %0, %1 \n"
-         "\torrpl %2, %2, %4 \n"
-         "\tmovpl %0, %3 \n"
-         
-         "\tmovs %5, %5, lsr #31 \n"
-         "\trsbne %2, %2, #0 \n"
-   : "=r" (dead1), "=r" (dead2), "=r" (res),
-   "=r" (dead3), "=r" (dead4), "=r" (dead5)
-   : "0" (a), "1" (b), "2" (res)
-   : "memory", "cc"
-                        );
-   return res;
-}
-
-
-
-
-#endif
diff --git a/gst/audioresample/fixed_bfin.h b/gst/audioresample/fixed_bfin.h
deleted file mode 100644
index 9eb21e3..0000000
--- a/gst/audioresample/fixed_bfin.h
+++ /dev/null
@@ -1,176 +0,0 @@
-/* Copyright (C) 2005 Analog Devices
-   Author: Jean-Marc Valin */
-/**
-   @file fixed_bfin.h
-   @brief Blackfin fixed-point operations
-*/
-/*
-   Redistribution and use in source and binary forms, with or without
-   modification, are permitted provided that the following conditions
-   are met:
-   
-   - Redistributions of source code must retain the above copyright
-   notice, this list of conditions and the following disclaimer.
-   
-   - Redistributions in binary form must reproduce the above copyright
-   notice, this list of conditions and the following disclaimer in the
-   documentation and/or other materials provided with the distribution.
-   
-   - Neither the name of the Xiph.org Foundation nor the names of its
-   contributors may be used to endorse or promote products derived from
-   this software without specific prior written permission.
-   
-   THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-   ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-   LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-   A PARTICULAR PURPOSE ARE DISCLAIMED.  IN NO EVENT SHALL THE FOUNDATION OR
-   CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
-   EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
-   PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
-   PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
-   LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
-   NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
-   SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-*/
-
-#ifndef FIXED_BFIN_H
-#define FIXED_BFIN_H
-
-#include "bfin.h"
-
-#undef PDIV32_16
-static inline spx_word16_t PDIV32_16(spx_word32_t a, spx_word16_t b)
-{
-   spx_word32_t res, bb;
-   bb = b;
-   a += b>>1;
-   __asm__  (
-         "P0 = 15;\n\t"
-         "R0 = %1;\n\t"
-         "R1 = %2;\n\t"
-         //"R0 = R0 + R1;\n\t"
-         "R0 <<= 1;\n\t"
-         "DIVS (R0, R1);\n\t"
-         "LOOP divide%= LC0 = P0;\n\t"
-         "LOOP_BEGIN divide%=;\n\t"
-            "DIVQ (R0, R1);\n\t"
-         "LOOP_END divide%=;\n\t"
-         "R0 = R0.L;\n\t"
-         "%0 = R0;\n\t"
-   : "=m" (res)
-   : "m" (a), "m" (bb)
-   : "P0", "R0", "R1", "ASTAT" BFIN_HWLOOP0_REGS);
-   return res;
-}
-
-#undef DIV32_16
-static inline spx_word16_t DIV32_16(spx_word32_t a, spx_word16_t b)
-{
-   spx_word32_t res, bb;
-   bb = b;
-   /* Make the roundinf consistent with the C version 
-      (do we need to do that?)*/
-   if (a<0) 
-      a += (b-1);
-   __asm__  (
-         "P0 = 15;\n\t"
-         "R0 = %1;\n\t"
-         "R1 = %2;\n\t"
-         "R0 <<= 1;\n\t"
-         "DIVS (R0, R1);\n\t"
-         "LOOP divide%= LC0 = P0;\n\t"
-         "LOOP_BEGIN divide%=;\n\t"
-            "DIVQ (R0, R1);\n\t"
-         "LOOP_END divide%=;\n\t"
-         "R0 = R0.L;\n\t"
-         "%0 = R0;\n\t"
-   : "=m" (res)
-   : "m" (a), "m" (bb)
-   : "P0", "R0", "R1", "ASTAT" BFIN_HWLOOP0_REGS);
-   return res;
-}
-
-#undef MAX16
-static inline spx_word16_t MAX16(spx_word16_t a, spx_word16_t b)
-{
-   spx_word32_t res;
-   __asm__  (
-         "%1 = %1.L (X);\n\t"
-         "%2 = %2.L (X);\n\t"
-         "%0 = MAX(%1,%2);"
-   : "=d" (res)
-   : "%d" (a), "d" (b)
-   : "ASTAT"
-   );
-   return res;
-}
-
-#undef MULT16_32_Q15
-static inline spx_word32_t MULT16_32_Q15(spx_word16_t a, spx_word32_t b)
-{
-   spx_word32_t res;
-   __asm__
-   (
-         "A1 = %2.L*%1.L (M);\n\t"
-         "A1 = A1 >>> 15;\n\t"
-         "%0 = (A1 += %2.L*%1.H) ;\n\t"
-   : "=&W" (res), "=&d" (b)
-   : "d" (a), "1" (b)
-   : "A1", "ASTAT"
-   );
-   return res;
-}
-
-#undef MAC16_32_Q15
-static inline spx_word32_t MAC16_32_Q15(spx_word32_t c, spx_word16_t a, spx_word32_t b)
-{
-   spx_word32_t res;
-   __asm__
-         (
-         "A1 = %2.L*%1.L (M);\n\t"
-         "A1 = A1 >>> 15;\n\t"
-         "%0 = (A1 += %2.L*%1.H);\n\t"
-         "%0 = %0 + %4;\n\t"
-   : "=&W" (res), "=&d" (b)
-   : "d" (a), "1" (b), "d" (c)
-   : "A1", "ASTAT"
-         );
-   return res;
-}
-
-#undef MULT16_32_Q14
-static inline spx_word32_t MULT16_32_Q14(spx_word16_t a, spx_word32_t b)
-{
-   spx_word32_t res;
-   __asm__
-         (
-         "%2 <<= 1;\n\t"
-         "A1 = %1.L*%2.L (M);\n\t"
-         "A1 = A1 >>> 15;\n\t"
-         "%0 = (A1 += %1.L*%2.H);\n\t"
-   : "=W" (res), "=d" (a), "=d" (b)
-   : "1" (a), "2" (b)
-   : "A1", "ASTAT"
-         );
-   return res;
-}
-
-#undef MAC16_32_Q14
-static inline spx_word32_t MAC16_32_Q14(spx_word32_t c, spx_word16_t a, spx_word32_t b)
-{
-   spx_word32_t res;
-   __asm__
-         (
-         "%1 <<= 1;\n\t"
-         "A1 = %2.L*%1.L (M);\n\t"
-         "A1 = A1 >>> 15;\n\t"
-         "%0 = (A1 += %2.L*%1.H);\n\t"
-         "%0 = %0 + %4;\n\t"
-   : "=&W" (res), "=&d" (b)
-   : "d" (a), "1" (b), "d" (c)
-   : "A1", "ASTAT"
-         );
-   return res;
-}
-
-#endif
diff --git a/gst/audioresample/fixed_debug.h b/gst/audioresample/fixed_debug.h
deleted file mode 100644
index 54f3866..0000000
--- a/gst/audioresample/fixed_debug.h
+++ /dev/null
@@ -1,487 +0,0 @@
-/* Copyright (C) 2003 Jean-Marc Valin */
-/**
-   @file fixed_debug.h
-   @brief Fixed-point operations with debugging
-*/
-/*
-   Redistribution and use in source and binary forms, with or without
-   modification, are permitted provided that the following conditions
-   are met:
-   
-   - Redistributions of source code must retain the above copyright
-   notice, this list of conditions and the following disclaimer.
-   
-   - Redistributions in binary form must reproduce the above copyright
-   notice, this list of conditions and the following disclaimer in the
-   documentation and/or other materials provided with the distribution.
-   
-   - Neither the name of the Xiph.org Foundation nor the names of its
-   contributors may be used to endorse or promote products derived from
-   this software without specific prior written permission.
-   
-   THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-   ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-   LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-   A PARTICULAR PURPOSE ARE DISCLAIMED.  IN NO EVENT SHALL THE FOUNDATION OR
-   CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
-   EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
-   PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
-   PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
-   LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
-   NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
-   SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-*/
-
-#ifndef FIXED_DEBUG_H
-#define FIXED_DEBUG_H
-
-#include <stdio.h>
-
-extern long long spx_mips;
-#define MIPS_INC spx_mips++,
-
-#define QCONST16(x,bits) ((spx_word16_t)(.5+(x)*(((spx_word32_t)1)<<(bits))))
-#define QCONST32(x,bits) ((spx_word32_t)(.5+(x)*(((spx_word32_t)1)<<(bits))))
-
-
-#define VERIFY_SHORT(x) ((x)<=32767&&(x)>=-32768)
-#define VERIFY_INT(x) ((x)<=2147483647LL&&(x)>=-2147483648LL)
-
-static inline short NEG16(int x)
-{
-   int res;
-   if (!VERIFY_SHORT(x))
-   {
-      fprintf (stderr, "NEG16: input is not short: %d\n", (int)x);
-   }
-   res = -x;
-   if (!VERIFY_SHORT(res))
-      fprintf (stderr, "NEG16: output is not short: %d\n", (int)res);
-   spx_mips++;
-   return res;
-}
-static inline int NEG32(long long x)
-{
-   long long res;
-   if (!VERIFY_INT(x))
-   {
-      fprintf (stderr, "NEG16: input is not int: %d\n", (int)x);
-   }
-   res = -x;
-   if (!VERIFY_INT(res))
-      fprintf (stderr, "NEG16: output is not int: %d\n", (int)res);
-   spx_mips++;
-   return res;
-}
-
-#define EXTRACT16(x) _EXTRACT16(x, __FILE__, __LINE__)
-static inline short _EXTRACT16(int x, char *file, int line)
-{
-   int res;
-   if (!VERIFY_SHORT(x))
-   {
-      fprintf (stderr, "EXTRACT16: input is not short: %d in %s: line %d\n", x, file, line);
-   }
-   res = x;
-   spx_mips++;
-   return res;
-}
-
-#define EXTEND32(x) _EXTEND32(x, __FILE__, __LINE__)
-static inline int _EXTEND32(int x, char *file, int line)
-{
-   int res;
-   if (!VERIFY_SHORT(x))
-   {
-      fprintf (stderr, "EXTEND32: input is not short: %d in %s: line %d\n", x, file, line);
-   }
-   res = x;
-   spx_mips++;
-   return res;
-}
-
-#define SHR16(a, shift) _SHR16(a, shift, __FILE__, __LINE__)
-static inline short _SHR16(int a, int shift, char *file, int line) 
-{
-   int res;
-   if (!VERIFY_SHORT(a) || !VERIFY_SHORT(shift))
-   {
-      fprintf (stderr, "SHR16: inputs are not short: %d >> %d in %s: line %d\n", a, shift, file, line);
-   }
-   res = a>>shift;
-   if (!VERIFY_SHORT(res))
-      fprintf (stderr, "SHR16: output is not short: %d in %s: line %d\n", res, file, line);
-   spx_mips++;
-   return res;
-}
-#define SHL16(a, shift) _SHL16(a, shift, __FILE__, __LINE__)
-static inline short _SHL16(int a, int shift, char *file, int line) 
-{
-   int res;
-   if (!VERIFY_SHORT(a) || !VERIFY_SHORT(shift))
-   {
-      fprintf (stderr, "SHL16: inputs are not short: %d %d in %s: line %d\n", a, shift, file, line);
-   }
-   res = a<<shift;
-   if (!VERIFY_SHORT(res))
-      fprintf (stderr, "SHL16: output is not short: %d in %s: line %d\n", res, file, line);
-   spx_mips++;
-   return res;
-}
-
-static inline int SHR32(long long a, int shift) 
-{
-   long long  res;
-   if (!VERIFY_INT(a) || !VERIFY_SHORT(shift))
-   {
-      fprintf (stderr, "SHR32: inputs are not int: %d %d\n", (int)a, shift);
-   }
-   res = a>>shift;
-   if (!VERIFY_INT(res))
-   {
-      fprintf (stderr, "SHR32: output is not int: %d\n", (int)res);
-   }
-   spx_mips++;
-   return res;
-}
-static inline int SHL32(long long a, int shift) 
-{
-   long long  res;
-   if (!VERIFY_INT(a) || !VERIFY_SHORT(shift))
-   {
-      fprintf (stderr, "SHL32: inputs are not int: %d %d\n", (int)a, shift);
-   }
-   res = a<<shift;
-   if (!VERIFY_INT(res))
-   {
-      fprintf (stderr, "SHL32: output is not int: %d\n", (int)res);
-   }
-   spx_mips++;
-   return res;
-}
-
-#define PSHR16(a,shift) (SHR16(ADD16((a),((1<<((shift))>>1))),shift))
-#define PSHR32(a,shift) (SHR32(ADD32((a),((EXTEND32(1)<<((shift))>>1))),shift))
-#define VSHR32(a, shift) (((shift)>0) ? SHR32(a, shift) : SHL32(a, -(shift)))
-
-#define SATURATE16(x,a) (((x)>(a) ? (a) : (x)<-(a) ? -(a) : (x)))
-#define SATURATE32(x,a) (((x)>(a) ? (a) : (x)<-(a) ? -(a) : (x)))
-
-//#define SHR(a,shift) ((a) >> (shift))
-//#define SHL(a,shift) ((a) << (shift))
-
-#define ADD16(a, b) _ADD16(a, b, __FILE__, __LINE__)
-static inline short _ADD16(int a, int b, char *file, int line) 
-{
-   int res;
-   if (!VERIFY_SHORT(a) || !VERIFY_SHORT(b))
-   {
-      fprintf (stderr, "ADD16: inputs are not short: %d %d in %s: line %d\n", a, b, file, line);
-   }
-   res = a+b;
-   if (!VERIFY_SHORT(res))
-   {
-      fprintf (stderr, "ADD16: output is not short: %d+%d=%d in %s: line %d\n", a,b,res, file, line);
-   }
-   spx_mips++;
-   return res;
-}
-
-#define SUB16(a, b) _SUB16(a, b, __FILE__, __LINE__)
-static inline short _SUB16(int a, int b, char *file, int line) 
-{
-   int res;
-   if (!VERIFY_SHORT(a) || !VERIFY_SHORT(b))
-   {
-      fprintf (stderr, "SUB16: inputs are not short: %d %d in %s: line %d\n", a, b, file, line);
-   }
-   res = a-b;
-   if (!VERIFY_SHORT(res))
-      fprintf (stderr, "SUB16: output is not short: %d in %s: line %d\n", res, file, line);
-   spx_mips++;
-   return res;
-}
-
-#define ADD32(a, b) _ADD32(a, b, __FILE__, __LINE__)
-static inline int _ADD32(long long a, long long b, char *file, int line) 
-{
-   long long res;
-   if (!VERIFY_INT(a) || !VERIFY_INT(b))
-   {
-      fprintf (stderr, "ADD32: inputs are not int: %d %d in %s: line %d\n", (int)a, (int)b, file, line);
-   }
-   res = a+b;
-   if (!VERIFY_INT(res))
-   {
-      fprintf (stderr, "ADD32: output is not int: %d in %s: line %d\n", (int)res, file, line);
-   }
-   spx_mips++;
-   return res;
-}
-
-static inline int SUB32(long long a, long long b) 
-{
-   long long res;
-   if (!VERIFY_INT(a) || !VERIFY_INT(b))
-   {
-      fprintf (stderr, "SUB32: inputs are not int: %d %d\n", (int)a, (int)b);
-   }
-   res = a-b;
-   if (!VERIFY_INT(res))
-      fprintf (stderr, "SUB32: output is not int: %d\n", (int)res);
-   spx_mips++;
-   return res;
-}
-
-#define ADD64(a,b) (MIPS_INC(a)+(b))
-
-/* result fits in 16 bits */
-static inline short MULT16_16_16(int a, int b) 
-{
-   int res;
-   if (!VERIFY_SHORT(a) || !VERIFY_SHORT(b))
-   {
-      fprintf (stderr, "MULT16_16_16: inputs are not short: %d %d\n", a, b);
-   }
-   res = a*b;
-   if (!VERIFY_SHORT(res))
-      fprintf (stderr, "MULT16_16_16: output is not short: %d\n", res);
-   spx_mips++;
-   return res;
-}
-
-#define MULT16_16(a, b) _MULT16_16(a, b, __FILE__, __LINE__)
-static inline int _MULT16_16(int a, int b, char *file, int line) 
-{
-   long long res;
-   if (!VERIFY_SHORT(a) || !VERIFY_SHORT(b))
-   {
-      fprintf (stderr, "MULT16_16: inputs are not short: %d %d in %s: line %d\n", a, b, file, line);
-   }
-   res = ((long long)a)*b;
-   if (!VERIFY_INT(res))
-      fprintf (stderr, "MULT16_16: output is not int: %d in %s: line %d\n", (int)res, file, line);
-   spx_mips++;
-   return res;
-}
-
-#define MAC16_16(c,a,b)     (spx_mips--,ADD32((c),MULT16_16((a),(b))))
-#define MAC16_16_Q11(c,a,b)     (EXTRACT16(ADD16((c),EXTRACT16(SHR32(MULT16_16((a),(b)),11)))))
-#define MAC16_16_Q13(c,a,b)     (EXTRACT16(ADD16((c),EXTRACT16(SHR32(MULT16_16((a),(b)),13)))))
-#define MAC16_16_P13(c,a,b)     (EXTRACT16(ADD32((c),SHR32(ADD32(4096,MULT16_16((a),(b))),13))))
-
-
-#define MULT16_32_QX(a, b, Q) _MULT16_32_QX(a, b, Q, __FILE__, __LINE__)
-static inline int _MULT16_32_QX(int a, long long b, int Q, char *file, int line)
-{
-   long long res;
-   if (!VERIFY_SHORT(a) || !VERIFY_INT(b))
-   {
-      fprintf (stderr, "MULT16_32_Q%d: inputs are not short+int: %d %d in %s: line %d\n", Q, (int)a, (int)b, file, line);
-   }
-   if (ABS32(b)>=(EXTEND32(1)<<(15+Q)))
-      fprintf (stderr, "MULT16_32_Q%d: second operand too large: %d %d in %s: line %d\n", Q, (int)a, (int)b, file, line);      
-   res = (((long long)a)*(long long)b) >> Q;
-   if (!VERIFY_INT(res))
-      fprintf (stderr, "MULT16_32_Q%d: output is not int: %d*%d=%d in %s: line %d\n", Q, (int)a, (int)b,(int)res, file, line);
-   spx_mips+=5;
-   return res;
-}
-
-static inline int MULT16_32_PX(int a, long long b, int Q)
-{
-   long long res;
-   if (!VERIFY_SHORT(a) || !VERIFY_INT(b))
-   {
-      fprintf (stderr, "MULT16_32_P%d: inputs are not short+int: %d %d\n", Q, (int)a, (int)b);
-   }
-   if (ABS32(b)>=(EXTEND32(1)<<(15+Q)))
-      fprintf (stderr, "MULT16_32_Q%d: second operand too large: %d %d\n", Q, (int)a, (int)b);      
-   res = ((((long long)a)*(long long)b) + ((EXTEND32(1)<<Q)>>1))>> Q;
-   if (!VERIFY_INT(res))
-      fprintf (stderr, "MULT16_32_P%d: output is not int: %d*%d=%d\n", Q, (int)a, (int)b,(int)res);
-   spx_mips+=5;
-   return res;
-}
-
-
-#define MULT16_32_Q11(a,b) MULT16_32_QX(a,b,11)
-#define MAC16_32_Q11(c,a,b) ADD32((c),MULT16_32_Q11((a),(b)))
-#define MULT16_32_Q12(a,b) MULT16_32_QX(a,b,12)
-#define MULT16_32_Q13(a,b) MULT16_32_QX(a,b,13)
-#define MULT16_32_Q14(a,b) MULT16_32_QX(a,b,14)
-#define MULT16_32_Q15(a,b) MULT16_32_QX(a,b,15)
-#define MULT16_32_P15(a,b) MULT16_32_PX(a,b,15)
-#define MAC16_32_Q15(c,a,b) ADD32((c),MULT16_32_Q15((a),(b)))
-
-static inline int SATURATE(int a, int b)
-{
-   if (a>b)
-      a=b;
-   if (a<-b)
-      a = -b;
-   return a;
-}
-
-static inline int MULT16_16_Q11_32(int a, int b) 
-{
-   long long res;
-   if (!VERIFY_SHORT(a) || !VERIFY_SHORT(b))
-   {
-      fprintf (stderr, "MULT16_16_Q11: inputs are not short: %d %d\n", a, b);
-   }
-   res = ((long long)a)*b;
-   res >>= 11;
-   if (!VERIFY_INT(res))
-      fprintf (stderr, "MULT16_16_Q11: output is not short: %d*%d=%d\n", (int)a, (int)b, (int)res);
-   spx_mips+=3;
-   return res;
-}
-static inline short MULT16_16_Q13(int a, int b) 
-{
-   long long res;
-   if (!VERIFY_SHORT(a) || !VERIFY_SHORT(b))
-   {
-      fprintf (stderr, "MULT16_16_Q13: inputs are not short: %d %d\n", a, b);
-   }
-   res = ((long long)a)*b;
-   res >>= 13;
-   if (!VERIFY_SHORT(res))
-      fprintf (stderr, "MULT16_16_Q13: output is not short: %d*%d=%d\n", a, b, (int)res);
-   spx_mips+=3;
-   return res;
-}
-static inline short MULT16_16_Q14(int a, int b) 
-{
-   long long res;
-   if (!VERIFY_SHORT(a) || !VERIFY_SHORT(b))
-   {
-      fprintf (stderr, "MULT16_16_Q14: inputs are not short: %d %d\n", a, b);
-   }
-   res = ((long long)a)*b;
-   res >>= 14;
-   if (!VERIFY_SHORT(res))
-      fprintf (stderr, "MULT16_16_Q14: output is not short: %d\n", (int)res);
-   spx_mips+=3;
-   return res;
-}
-static inline short MULT16_16_Q15(int a, int b) 
-{
-   long long res;
-   if (!VERIFY_SHORT(a) || !VERIFY_SHORT(b))
-   {
-      fprintf (stderr, "MULT16_16_Q15: inputs are not short: %d %d\n", a, b);
-   }
-   res = ((long long)a)*b;
-   res >>= 15;
-   if (!VERIFY_SHORT(res))
-   {
-      fprintf (stderr, "MULT16_16_Q15: output is not short: %d\n", (int)res);
-   }
-   spx_mips+=3;
-   return res;
-}
-
-static inline short MULT16_16_P13(int a, int b) 
-{
-   long long res;
-   if (!VERIFY_SHORT(a) || !VERIFY_SHORT(b))
-   {
-      fprintf (stderr, "MULT16_16_P13: inputs are not short: %d %d\n", a, b);
-   }
-   res = ((long long)a)*b;
-   res += 4096;
-   if (!VERIFY_INT(res))
-      fprintf (stderr, "MULT16_16_P13: overflow: %d*%d=%d\n", a, b, (int)res);
-   res >>= 13;
-   if (!VERIFY_SHORT(res))
-      fprintf (stderr, "MULT16_16_P13: output is not short: %d*%d=%d\n", a, b, (int)res);
-   spx_mips+=4;
-   return res;
-}
-static inline short MULT16_16_P14(int a, int b) 
-{
-   long long res;
-   if (!VERIFY_SHORT(a) || !VERIFY_SHORT(b))
-   {
-      fprintf (stderr, "MULT16_16_P14: inputs are not short: %d %d\n", a, b);
-   }
-   res = ((long long)a)*b;
-   res += 8192;
-   if (!VERIFY_INT(res))
-      fprintf (stderr, "MULT16_16_P14: overflow: %d*%d=%d\n", a, b, (int)res);
-   res >>= 14;
-   if (!VERIFY_SHORT(res))
-      fprintf (stderr, "MULT16_16_P14: output is not short: %d*%d=%d\n", a, b, (int)res);
-   spx_mips+=4;
-   return res;
-}
-static inline short MULT16_16_P15(int a, int b) 
-{
-   long long res;
-   if (!VERIFY_SHORT(a) || !VERIFY_SHORT(b))
-   {
-      fprintf (stderr, "MULT16_16_P15: inputs are not short: %d %d\n", a, b);
-   }
-   res = ((long long)a)*b;
-   res += 16384;
-   if (!VERIFY_INT(res))
-      fprintf (stderr, "MULT16_16_P15: overflow: %d*%d=%d\n", a, b, (int)res);
-   res >>= 15;
-   if (!VERIFY_SHORT(res))
-      fprintf (stderr, "MULT16_16_P15: output is not short: %d*%d=%d\n", a, b, (int)res);
-   spx_mips+=4;
-   return res;
-}
-
-#define DIV32_16(a, b) _DIV32_16(a, b, __FILE__, __LINE__)
-
-static inline int _DIV32_16(long long a, long long b, char *file, int line) 
-{
-   long long res;
-   if (b==0)
-   {
-      fprintf(stderr, "DIV32_16: divide by zero: %d/%d in %s: line %d\n", (int)a, (int)b, file, line);
-      return 0;
-   }
-   if (!VERIFY_INT(a) || !VERIFY_SHORT(b))
-   {
-      fprintf (stderr, "DIV32_16: inputs are not int/short: %d %d in %s: line %d\n", (int)a, (int)b, file, line);
-   }
-   res = a/b;
-   if (!VERIFY_SHORT(res))
-   {
-      fprintf (stderr, "DIV32_16: output is not short: %d / %d = %d in %s: line %d\n", (int)a,(int)b,(int)res, file, line);
-      if (res>32767)
-         res = 32767;
-      if (res<-32768)
-         res = -32768;
-   }
-   spx_mips+=20;
-   return res;
-}
-
-#define DIV32(a, b) _DIV32(a, b, __FILE__, __LINE__)
-static inline int _DIV32(long long a, long long b, char *file, int line) 
-{
-   long long res;
-   if (b==0)
-   {
-      fprintf(stderr, "DIV32: divide by zero: %d/%d in %s: line %d\n", (int)a, (int)b, file, line);
-      return 0;
-   }
-
-   if (!VERIFY_INT(a) || !VERIFY_INT(b))
-   {
-      fprintf (stderr, "DIV32: inputs are not int/short: %d %d in %s: line %d\n", (int)a, (int)b, file, line);
-   }
-   res = a/b;
-   if (!VERIFY_INT(res))
-      fprintf (stderr, "DIV32: output is not int: %d in %s: line %d\n", (int)res, file, line);
-   spx_mips+=36;
-   return res;
-}
-#define PDIV32(a,b) DIV32(ADD32((a),(b)>>1),b)
-#define PDIV32_16(a,b) DIV32_16(ADD32((a),(b)>>1),b)
-
-#endif
diff --git a/gst/audioresample/fixed_generic.h b/gst/audioresample/fixed_generic.h
deleted file mode 100644
index 6991352..0000000
--- a/gst/audioresample/fixed_generic.h
+++ /dev/null
@@ -1,110 +0,0 @@
-/* Copyright (C) 2003 Jean-Marc Valin */
-/**
-   @file fixed_generic.h
-   @brief Generic fixed-point operations
-*/
-/*
-   Redistribution and use in source and binary forms, with or without
-   modification, are permitted provided that the following conditions
-   are met:
-   
-   - Redistributions of source code must retain the above copyright
-   notice, this list of conditions and the following disclaimer.
-   
-   - Redistributions in binary form must reproduce the above copyright
-   notice, this list of conditions and the following disclaimer in the
-   documentation and/or other materials provided with the distribution.
-   
-   - Neither the name of the Xiph.org Foundation nor the names of its
-   contributors may be used to endorse or promote products derived from
-   this software without specific prior written permission.
-   
-   THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-   ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-   LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-   A PARTICULAR PURPOSE ARE DISCLAIMED.  IN NO EVENT SHALL THE FOUNDATION OR
-   CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
-   EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
-   PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
-   PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
-   LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
-   NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
-   SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-*/
-
-#ifndef FIXED_GENERIC_H
-#define FIXED_GENERIC_H
-
-#define QCONST16(x,bits) ((spx_word16_t)(.5+(x)*(((spx_word32_t)1)<<(bits))))
-#define QCONST32(x,bits) ((spx_word32_t)(.5+(x)*(((spx_word32_t)1)<<(bits))))
-
-#define NEG16(x) (-(x))
-#define NEG32(x) (-(x))
-#define EXTRACT16(x) ((spx_word16_t)(x))
-#define EXTEND32(x) ((spx_word32_t)(x))
-#define SHR16(a,shift) ((a) >> (shift))
-#define SHL16(a,shift) ((a) << (shift))
-#define SHR32(a,shift) ((a) >> (shift))
-#define SHL32(a,shift) ((a) << (shift))
-#define PSHR16(a,shift) (SHR16((a)+((1<<((shift))>>1)),shift))
-#define PSHR32(a,shift) (SHR32((a)+((EXTEND32(1)<<((shift))>>1)),shift))
-#define VSHR32(a, shift) (((shift)>0) ? SHR32(a, shift) : SHL32(a, -(shift)))
-#define SATURATE16(x,a) (((x)>(a) ? (a) : (x)<-(a) ? -(a) : (x)))
-#define SATURATE32(x,a) (((x)>(a) ? (a) : (x)<-(a) ? -(a) : (x)))
- 
-#define SATURATE32PSHR(x,shift,a) (((x)>=(SHL32(a,shift))) ? (a) : \
-                                   (x)<=-(SHL32(a,shift)) ? -(a) : \
-                                   (PSHR32(x, shift)))
-
-#define SHR(a,shift) ((a) >> (shift))
-#define SHL(a,shift) ((spx_word32_t)(a) << (shift))
-#define PSHR(a,shift) (SHR((a)+((EXTEND32(1)<<((shift))>>1)),shift))
-#define SATURATE(x,a) (((x)>(a) ? (a) : (x)<-(a) ? -(a) : (x)))
-
-
-#define ADD16(a,b) ((spx_word16_t)((spx_word16_t)(a)+(spx_word16_t)(b)))
-#define SUB16(a,b) ((spx_word16_t)(a)-(spx_word16_t)(b))
-#define ADD32(a,b) ((spx_word32_t)(a)+(spx_word32_t)(b))
-#define SUB32(a,b) ((spx_word32_t)(a)-(spx_word32_t)(b))
-
-
-/* result fits in 16 bits */
-#define MULT16_16_16(a,b)     ((((spx_word16_t)(a))*((spx_word16_t)(b))))
-
-/* (spx_word32_t)(spx_word16_t) gives TI compiler a hint that it's 16x16->32 multiply */
-#define MULT16_16(a,b)     (((spx_word32_t)(spx_word16_t)(a))*((spx_word32_t)(spx_word16_t)(b)))
-
-#define MAC16_16(c,a,b) (ADD32((c),MULT16_16((a),(b))))
-#define MULT16_32_Q12(a,b) ADD32(MULT16_16((a),SHR((b),12)), SHR(MULT16_16((a),((b)&0x00000fff)),12))
-#define MULT16_32_Q13(a,b) ADD32(MULT16_16((a),SHR((b),13)), SHR(MULT16_16((a),((b)&0x00001fff)),13))
-#define MULT16_32_Q14(a,b) ADD32(MULT16_16((a),SHR((b),14)), SHR(MULT16_16((a),((b)&0x00003fff)),14))
-
-#define MULT16_32_Q11(a,b) ADD32(MULT16_16((a),SHR((b),11)), SHR(MULT16_16((a),((b)&0x000007ff)),11))
-#define MAC16_32_Q11(c,a,b) ADD32(c,ADD32(MULT16_16((a),SHR((b),11)), SHR(MULT16_16((a),((b)&0x000007ff)),11)))
-
-#define MULT16_32_P15(a,b) ADD32(MULT16_16((a),SHR((b),15)), PSHR(MULT16_16((a),((b)&0x00007fff)),15))
-#define MULT16_32_Q15(a,b) ADD32(MULT16_16((a),SHR((b),15)), SHR(MULT16_16((a),((b)&0x00007fff)),15))
-#define MAC16_32_Q15(c,a,b) ADD32(c,ADD32(MULT16_16((a),SHR((b),15)), SHR(MULT16_16((a),((b)&0x00007fff)),15)))
-
-
-#define MAC16_16_Q11(c,a,b)     (ADD32((c),SHR(MULT16_16((a),(b)),11)))
-#define MAC16_16_Q13(c,a,b)     (ADD32((c),SHR(MULT16_16((a),(b)),13)))
-#define MAC16_16_P13(c,a,b)     (ADD32((c),SHR(ADD32(4096,MULT16_16((a),(b))),13)))
-
-#define MULT16_16_Q11_32(a,b) (SHR(MULT16_16((a),(b)),11))
-#define MULT16_16_Q13(a,b) (SHR(MULT16_16((a),(b)),13))
-#define MULT16_16_Q14(a,b) (SHR(MULT16_16((a),(b)),14))
-#define MULT16_16_Q15(a,b) (SHR(MULT16_16((a),(b)),15))
-
-#define MULT16_16_P13(a,b) (SHR(ADD32(4096,MULT16_16((a),(b))),13))
-#define MULT16_16_P14(a,b) (SHR(ADD32(8192,MULT16_16((a),(b))),14))
-#define MULT16_16_P15(a,b) (SHR(ADD32(16384,MULT16_16((a),(b))),15))
-
-#define MUL_16_32_R15(a,bh,bl) ADD32(MULT16_16((a),(bh)), SHR(MULT16_16((a),(bl)),15))
-
-#define DIV32_16(a,b) ((spx_word16_t)(((spx_word32_t)(a))/((spx_word16_t)(b))))
-#define PDIV32_16(a,b) ((spx_word16_t)(((spx_word32_t)(a)+((spx_word16_t)(b)>>1))/((spx_word16_t)(b))))
-#define DIV32(a,b) (((spx_word32_t)(a))/((spx_word32_t)(b)))
-#define PDIV32(a,b) (((spx_word32_t)(a)+((spx_word16_t)(b)>>1))/((spx_word32_t)(b)))
-
-#endif
diff --git a/gst/audioresample/gstaudioresample.c b/gst/audioresample/gstaudioresample.c
index 7155c3c..a7ba000 100644
--- a/gst/audioresample/gstaudioresample.c
+++ b/gst/audioresample/gstaudioresample.c
@@ -59,46 +59,33 @@
 #include <gst/audio/audio.h>
 #include <gst/base/gstbasetransform.h>
 
-#ifndef DISABLE_ORC
-#include <orc/orc.h>
-#include <orc-test/orctest.h>
-#include <orc-test/orcprofile.h>
-#endif
-
 GST_DEBUG_CATEGORY (audio_resample_debug);
 #define GST_CAT_DEFAULT audio_resample_debug
-#if !defined(AUDIORESAMPLE_FORMAT_AUTO) || defined(DISABLE_ORC)
+#if !defined(AUDIORESAMPLE_FORMAT_AUTO)
 GST_DEBUG_CATEGORY_STATIC (GST_CAT_PERFORMANCE);
 #endif
 
-#define GST_TYPE_SPEEX_RESAMPLER_SINC_FILTER_MODE (speex_resampler_sinc_filter_mode_get_type ())
+#undef USE_SPEEX
+
+#define DEFAULT_QUALITY GST_AUDIO_RESAMPLER_QUALITY_DEFAULT
+#define DEFAULT_RESAMPLE_METHOD GST_AUDIO_RESAMPLER_METHOD_KAISER
+#define DEFAULT_SINC_FILTER_MODE GST_AUDIO_RESAMPLER_FILTER_MODE_AUTO
+#define DEFAULT_SINC_FILTER_AUTO_THRESHOLD (1*1048576)
+#define DEFAULT_SINC_FILTER_INTERPOLATION GST_AUDIO_RESAMPLER_FILTER_INTERPOLATION_CUBIC
 
 enum
 {
   PROP_0,
   PROP_QUALITY,
+  PROP_RESAMPLE_METHOD,
   PROP_SINC_FILTER_MODE,
-  PROP_SINC_FILTER_AUTO_THRESHOLD
+  PROP_SINC_FILTER_AUTO_THRESHOLD,
+  PROP_SINC_FILTER_INTERPOLATION
 };
 
-#if G_BYTE_ORDER == G_LITTLE_ENDIAN
 #define SUPPORTED_CAPS \
-  GST_AUDIO_CAPS_MAKE ("{ F32LE, F64LE, S32LE, S24LE, S16LE, S8 }") \
+  GST_AUDIO_CAPS_MAKE (GST_AUDIO_FORMATS_ALL) \
   ", layout = (string) { interleaved, non-interleaved }"
-#else
-#define SUPPORTED_CAPS \
-  GST_AUDIO_CAPS_MAKE ("{ F32BE, F64BE, S32BE, S24BE, S16BE, S8 }") \
-  ", layout = (string) { interleaved, non-interleaved }"
-#endif
-
-/* If TRUE integer arithmetic resampling is faster and will be used if appropriate */
-#if defined AUDIORESAMPLE_FORMAT_INT
-static gboolean gst_audio_resample_use_int = TRUE;
-#elif defined AUDIORESAMPLE_FORMAT_FLOAT
-static gboolean gst_audio_resample_use_int = FALSE;
-#else
-static gboolean gst_audio_resample_use_int = FALSE;
-#endif
 
 static GstStaticPadTemplate gst_audio_resample_sink_template =
 GST_STATIC_PAD_TEMPLATE ("sink",
@@ -117,8 +104,6 @@
 static void gst_audio_resample_get_property (GObject * object,
     guint prop_id, GValue * value, GParamSpec * pspec);
 
-static GType speex_resampler_sinc_filter_mode_get_type (void);
-
 /* vmethods */
 static gboolean gst_audio_resample_get_unit_size (GstBaseTransform * base,
     GstCaps * caps, gsize * size);
@@ -159,15 +144,20 @@
   g_object_class_install_property (gobject_class, PROP_QUALITY,
       g_param_spec_int ("quality", "Quality", "Resample quality with 0 being "
           "the lowest and 10 being the best",
-          SPEEX_RESAMPLER_QUALITY_MIN, SPEEX_RESAMPLER_QUALITY_MAX,
-          SPEEX_RESAMPLER_QUALITY_DEFAULT,
+          GST_AUDIO_RESAMPLER_QUALITY_MIN, GST_AUDIO_RESAMPLER_QUALITY_MAX,
+          DEFAULT_QUALITY,
           G_PARAM_READWRITE | G_PARAM_CONSTRUCT | G_PARAM_STATIC_STRINGS));
 
+  g_object_class_install_property (gobject_class, PROP_RESAMPLE_METHOD,
+      g_param_spec_enum ("resample-method", "Resample method to use",
+          "What resample method to use",
+          GST_TYPE_AUDIO_RESAMPLER_METHOD,
+          DEFAULT_RESAMPLE_METHOD, G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS));
   g_object_class_install_property (gobject_class, PROP_SINC_FILTER_MODE,
       g_param_spec_enum ("sinc-filter-mode", "Sinc filter table mode",
           "What sinc filter table mode to use",
-          GST_TYPE_SPEEX_RESAMPLER_SINC_FILTER_MODE,
-          SPEEX_RESAMPLER_SINC_FILTER_DEFAULT,
+          GST_TYPE_AUDIO_RESAMPLER_FILTER_MODE,
+          DEFAULT_SINC_FILTER_MODE,
           G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS));
 
   g_object_class_install_property (gobject_class,
@@ -175,13 +165,21 @@
       g_param_spec_uint ("sinc-filter-auto-threshold",
           "Sinc filter auto mode threshold",
           "Memory usage threshold to use if sinc filter mode is AUTO, given in bytes",
-          0, G_MAXUINT, SPEEX_RESAMPLER_SINC_FILTER_AUTO_THRESHOLD_DEFAULT,
+          0, G_MAXUINT, DEFAULT_SINC_FILTER_AUTO_THRESHOLD,
+          G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS));
+  g_object_class_install_property (gobject_class,
+      PROP_SINC_FILTER_INTERPOLATION,
+      g_param_spec_enum ("sinc-filter-interpolation",
+          "Sinc filter interpolation",
+          "How to interpolate the sinc filter table",
+          GST_TYPE_AUDIO_RESAMPLER_FILTER_INTERPOLATION,
+          DEFAULT_SINC_FILTER_INTERPOLATION,
           G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS));
 
-  gst_element_class_add_pad_template (gstelement_class,
-      gst_static_pad_template_get (&gst_audio_resample_src_template));
-  gst_element_class_add_pad_template (gstelement_class,
-      gst_static_pad_template_get (&gst_audio_resample_sink_template));
+  gst_element_class_add_static_pad_template (gstelement_class,
+      &gst_audio_resample_src_template);
+  gst_element_class_add_static_pad_template (gstelement_class,
+      &gst_audio_resample_sink_template);
 
   gst_element_class_set_static_metadata (gstelement_class, "Audio resampler",
       "Filter/Converter/Audio", "Resamples audio",
@@ -218,10 +216,11 @@
 {
   GstBaseTransform *trans = GST_BASE_TRANSFORM (resample);
 
-  resample->quality = SPEEX_RESAMPLER_QUALITY_DEFAULT;
-  resample->sinc_filter_mode = SPEEX_RESAMPLER_SINC_FILTER_DEFAULT;
-  resample->sinc_filter_auto_threshold =
-      SPEEX_RESAMPLER_SINC_FILTER_AUTO_THRESHOLD_DEFAULT;
+  resample->method = DEFAULT_RESAMPLE_METHOD;
+  resample->quality = DEFAULT_QUALITY;
+  resample->sinc_filter_mode = DEFAULT_SINC_FILTER_MODE;
+  resample->sinc_filter_auto_threshold = DEFAULT_SINC_FILTER_AUTO_THRESHOLD;
+  resample->sinc_filter_interpolation = DEFAULT_SINC_FILTER_INTERPOLATION;
 
   gst_base_transform_set_gap_aware (trans, TRUE);
   gst_pad_set_query_function (trans->srcpad, gst_audio_resample_query);
@@ -243,11 +242,6 @@
   resample->samples_in = 0;
   resample->samples_out = 0;
 
-  resample->tmp_in = NULL;
-  resample->tmp_in_size = 0;
-  resample->tmp_out = NULL;
-  resample->tmp_out_size = 0;
-
   return TRUE;
 }
 
@@ -256,21 +250,10 @@
 {
   GstAudioResample *resample = GST_AUDIO_RESAMPLE (base);
 
-  if (resample->state) {
-    resample->funcs->destroy (resample->state);
-    resample->state = NULL;
+  if (resample->converter) {
+    gst_audio_converter_free (resample->converter);
+    resample->converter = NULL;
   }
-
-  resample->funcs = NULL;
-
-  g_free (resample->tmp_in);
-  resample->tmp_in = NULL;
-  resample->tmp_in_size = 0;
-
-  g_free (resample->tmp_out);
-  resample->tmp_out = NULL;
-  resample->tmp_out_size = 0;
-
   return TRUE;
 }
 
@@ -370,134 +353,99 @@
   return othercaps;
 }
 
-static const SpeexResampleFuncs *
-gst_audio_resample_get_funcs (gint width, gboolean fp)
+static GstStructure *
+make_options (GstAudioResample * resample, GstAudioInfo * in,
+    GstAudioInfo * out)
 {
-  const SpeexResampleFuncs *funcs = NULL;
+  GstStructure *options;
 
-  if (gst_audio_resample_use_int && (width == 8 || width == 16) && !fp)
-    funcs = &int_funcs;
-  else if ((!gst_audio_resample_use_int && (width == 8 || width == 16) && !fp)
-      || (width == 32 && fp))
-    funcs = &float_funcs;
-  else if ((width == 64 && fp) || ((width == 32 || width == 24) && !fp))
-    funcs = &double_funcs;
-  else
-    g_assert_not_reached ();
+  options = gst_structure_new_empty ("resampler-options");
+  if (in != NULL && out != NULL)
+    gst_audio_resampler_options_set_quality (resample->method,
+        resample->quality, in->rate, out->rate, options);
 
-  return funcs;
-}
+  gst_structure_set (options,
+      GST_AUDIO_CONVERTER_OPT_RESAMPLER_METHOD, GST_TYPE_AUDIO_RESAMPLER_METHOD,
+      resample->method,
+      GST_AUDIO_RESAMPLER_OPT_FILTER_MODE, GST_TYPE_AUDIO_RESAMPLER_FILTER_MODE,
+      resample->sinc_filter_mode, GST_AUDIO_RESAMPLER_OPT_FILTER_MODE_THRESHOLD,
+      G_TYPE_UINT, resample->sinc_filter_auto_threshold,
+      GST_AUDIO_RESAMPLER_OPT_FILTER_INTERPOLATION,
+      GST_TYPE_AUDIO_RESAMPLER_FILTER_INTERPOLATION,
+      resample->sinc_filter_interpolation, NULL);
 
-static SpeexResamplerState *
-gst_audio_resample_init_state (GstAudioResample * resample, gint width,
-    gint channels, gint inrate, gint outrate, gint quality, gboolean fp,
-    SpeexResamplerSincFilterMode sinc_filter_mode,
-    guint32 sinc_filter_auto_threshold)
-{
-  SpeexResamplerState *ret = NULL;
-  gint err = RESAMPLER_ERR_SUCCESS;
-  const SpeexResampleFuncs *funcs = gst_audio_resample_get_funcs (width, fp);
-
-  ret = funcs->init (channels, inrate, outrate, quality,
-      sinc_filter_mode, sinc_filter_auto_threshold, &err);
-
-  if (G_UNLIKELY (err != RESAMPLER_ERR_SUCCESS)) {
-    GST_ERROR_OBJECT (resample, "Failed to create resampler state: %s",
-        funcs->strerror (err));
-    return NULL;
-  }
-
-  if (sinc_filter_mode == SPEEX_RESAMPLER_SINC_FILTER_AUTO) {
-    GST_INFO_OBJECT (resample, "Using the %s sinc filter table",
-        funcs->get_sinc_filter_mode (ret) ? "full" : "interpolated");
-  }
-
-  funcs->skip_zeros (ret);
-
-  return ret;
+  return options;
 }
 
 static gboolean
-gst_audio_resample_update_state (GstAudioResample * resample, gint width,
-    gint channels, gint inrate, gint outrate, gint quality, gboolean fp,
-    SpeexResamplerSincFilterMode sinc_filter_mode,
-    guint32 sinc_filter_auto_threshold)
+gst_audio_resample_update_state (GstAudioResample * resample, GstAudioInfo * in,
+    GstAudioInfo * out)
 {
-  gboolean ret = TRUE;
   gboolean updated_latency = FALSE;
+  gsize old_latency = -1;
+  GstStructure *options;
 
-  updated_latency = (resample->inrate != inrate
-      || quality != resample->quality) && resample->state != NULL;
+  if (resample->converter == NULL && in == NULL && out == NULL)
+    return TRUE;
 
-  if (resample->state == NULL) {
-    ret = TRUE;
-  } else if (resample->channels != channels || fp != resample->fp
-      || width != resample->width
-      || sinc_filter_mode != resample->sinc_filter_mode
-      || sinc_filter_auto_threshold != resample->sinc_filter_auto_threshold) {
-    resample->funcs->destroy (resample->state);
-    resample->state =
-        gst_audio_resample_init_state (resample, width, channels, inrate,
-        outrate, quality, fp, sinc_filter_mode, sinc_filter_auto_threshold);
+  options = make_options (resample, in, out);
 
-    resample->funcs = gst_audio_resample_get_funcs (width, fp);
-    ret = (resample->state != NULL);
-  } else if (resample->inrate != inrate || resample->outrate != outrate) {
-    gint err = RESAMPLER_ERR_SUCCESS;
+  if (resample->converter)
+    old_latency = gst_audio_converter_get_max_latency (resample->converter);
 
-    err = resample->funcs->set_rate (resample->state, inrate, outrate);
-
-    if (G_UNLIKELY (err != RESAMPLER_ERR_SUCCESS))
-      GST_ERROR_OBJECT (resample, "Failed to update rate: %s",
-          resample->funcs->strerror (err));
-
-    ret = (err == RESAMPLER_ERR_SUCCESS);
-  } else if (quality != resample->quality) {
-    gint err = RESAMPLER_ERR_SUCCESS;
-
-    err = resample->funcs->set_quality (resample->state, quality);
-
-    if (G_UNLIKELY (err != RESAMPLER_ERR_SUCCESS))
-      GST_ERROR_OBJECT (resample, "Failed to update quality: %s",
-          resample->funcs->strerror (err));
-
-    ret = (err == RESAMPLER_ERR_SUCCESS);
+  /* if channels and layout changed, destroy existing resampler */
+  if (in != NULL && (in->finfo != resample->in.finfo ||
+          in->channels != resample->in.channels ||
+          in->layout != resample->in.layout) && resample->converter) {
+    gst_audio_converter_free (resample->converter);
+    resample->converter = NULL;
   }
+  if (resample->converter == NULL) {
+    resample->converter =
+        gst_audio_converter_new (GST_AUDIO_CONVERTER_FLAG_VARIABLE_RATE, in,
+        out, options);
+    if (resample->converter == NULL)
+      goto resampler_failed;
+  } else if (in && out) {
+    gboolean ret;
 
-  resample->width = width;
-  resample->channels = channels;
-  resample->fp = fp;
-  resample->quality = quality;
-  resample->inrate = inrate;
-  resample->outrate = outrate;
-  resample->sinc_filter_mode = sinc_filter_mode;
-  resample->sinc_filter_auto_threshold = sinc_filter_auto_threshold;
+    ret =
+        gst_audio_converter_update_config (resample->converter, in->rate,
+        out->rate, options);
+    if (!ret)
+      goto update_failed;
+  } else {
+    gst_structure_free (options);
+  }
+  if (old_latency != -1)
+    updated_latency =
+        old_latency !=
+        gst_audio_converter_get_max_latency (resample->converter);
 
   if (updated_latency)
     gst_element_post_message (GST_ELEMENT (resample),
         gst_message_new_latency (GST_OBJECT (resample)));
 
-  return ret;
+  return TRUE;
+
+  /* ERRORS */
+resampler_failed:
+  {
+    GST_ERROR_OBJECT (resample, "failed to create resampler");
+    return FALSE;
+  }
+update_failed:
+  {
+    GST_ERROR_OBJECT (resample, "failed to update resampler");
+    return FALSE;
+  }
 }
 
 static void
 gst_audio_resample_reset_state (GstAudioResample * resample)
 {
-  if (resample->state)
-    resample->funcs->reset_mem (resample->state);
-}
-
-static gint
-_gcd (gint a, gint b)
-{
-  while (b != 0) {
-    int temp = a;
-
-    a = b;
-    b = temp % b;
-  }
-
-  return ABS (a);
+  if (resample->converter)
+    gst_audio_converter_reset (resample->converter);
 }
 
 static gboolean
@@ -505,43 +453,27 @@
     GstPadDirection direction, GstCaps * caps, gsize size, GstCaps * othercaps,
     gsize * othersize)
 {
+  GstAudioResample *resample = GST_AUDIO_RESAMPLE (base);
   gboolean ret = TRUE;
-  GstAudioInfo in, out;
-  guint32 ratio_den, ratio_num;
-  gint inrate, outrate, gcd;
   gint bpf;
 
   GST_LOG_OBJECT (base, "asked to transform size %" G_GSIZE_FORMAT
       " in direction %s", size, direction == GST_PAD_SINK ? "SINK" : "SRC");
 
-  /* Get sample width -> bytes_per_samp, channels, inrate, outrate */
-  ret = gst_audio_info_from_caps (&in, caps);
-  ret &= gst_audio_info_from_caps (&out, othercaps);
-  if (G_UNLIKELY (!ret)) {
-    GST_ERROR_OBJECT (base, "Wrong caps");
-    return FALSE;
-  }
   /* Number of samples in either buffer is size / (width*channels) ->
    * calculate the factor */
-  bpf = GST_AUDIO_INFO_BPF (&in);
-  inrate = GST_AUDIO_INFO_RATE (&in);
-  outrate = GST_AUDIO_INFO_RATE (&out);
+  bpf = GST_AUDIO_INFO_BPF (&resample->in);
 
   /* Convert source buffer size to samples */
   size /= bpf;
 
-  /* Simplify the conversion ratio factors */
-  gcd = _gcd (inrate, outrate);
-  ratio_num = inrate / gcd;
-  ratio_den = outrate / gcd;
-
   if (direction == GST_PAD_SINK) {
-    /* asked to convert size of an incoming buffer. Round up the output size */
-    *othersize = gst_util_uint64_scale_int_ceil (size, ratio_den, ratio_num);
+    /* asked to convert size of an incoming buffer */
+    *othersize = gst_audio_converter_get_out_frames (resample->converter, size);
     *othersize *= bpf;
   } else {
-    /* asked to convert size of an outgoing buffer. Round down the input size */
-    *othersize = gst_util_uint64_scale_int (size, ratio_num, ratio_den);
+    /* asked to convert size of an outgoing buffer */
+    *othersize = gst_audio_converter_get_in_frames (resample->converter, size);
     *othersize *= bpf;
   }
 
@@ -556,9 +488,6 @@
 gst_audio_resample_set_caps (GstBaseTransform * base, GstCaps * incaps,
     GstCaps * outcaps)
 {
-  gboolean ret;
-  gint width, inrate, outrate, channels;
-  gboolean fp;
   GstAudioResample *resample = GST_AUDIO_RESAMPLE (base);
   GstAudioInfo in, out;
 
@@ -571,21 +500,10 @@
     goto invalid_outcaps;
 
   /* FIXME do some checks */
+  gst_audio_resample_update_state (resample, &in, &out);
 
-  /* take new values */
-  width = GST_AUDIO_FORMAT_INFO_WIDTH (in.finfo);
-  channels = GST_AUDIO_INFO_CHANNELS (&in);
-  inrate = GST_AUDIO_INFO_RATE (&in);
-  outrate = GST_AUDIO_INFO_RATE (&out);
-  fp = GST_AUDIO_FORMAT_INFO_IS_FLOAT (in.finfo);
-
-  ret =
-      gst_audio_resample_update_state (resample, width, channels, inrate,
-      outrate, resample->quality, fp, resample->sinc_filter_mode,
-      resample->sinc_filter_auto_threshold);
-
-  if (G_UNLIKELY (!ret))
-    return FALSE;
+  resample->in = in;
+  resample->out = out;
 
   return TRUE;
 
@@ -602,209 +520,24 @@
   }
 }
 
-#define GST_MAXINT24 (8388607)
-#define GST_MININT24 (-8388608)
-
-#if (G_BYTE_ORDER == G_LITTLE_ENDIAN)
-#define GST_READ_UINT24 GST_READ_UINT24_LE
-#define GST_WRITE_UINT24 GST_WRITE_UINT24_LE
-#else
-#define GST_READ_UINT24 GST_READ_UINT24_BE
-#define GST_WRITE_UINT24 GST_WRITE_UINT24_BE
-#endif
-
-static void
-gst_audio_resample_convert_buffer (GstAudioResample * resample,
-    const guint8 * in, guint8 * out, guint len, gboolean inverse)
-{
-  len *= resample->channels;
-
-  if (inverse) {
-    if (gst_audio_resample_use_int && resample->width == 8 && !resample->fp) {
-      gint8 *o = (gint8 *) out;
-      gint16 *i = (gint16 *) in;
-      gint32 tmp;
-
-      while (len) {
-        tmp = *i + (G_MAXINT8 >> 1);
-        *o = CLAMP (tmp >> 8, G_MININT8, G_MAXINT8);
-        o++;
-        i++;
-        len--;
-      }
-    } else if (!gst_audio_resample_use_int && resample->width == 8
-        && !resample->fp) {
-      gint8 *o = (gint8 *) out;
-      gfloat *i = (gfloat *) in;
-      gfloat tmp;
-
-      while (len) {
-        tmp = *i;
-        *o = (gint8) CLAMP (tmp * G_MAXINT8 + 0.5, G_MININT8, G_MAXINT8);
-        o++;
-        i++;
-        len--;
-      }
-    } else if (!gst_audio_resample_use_int && resample->width == 16
-        && !resample->fp) {
-      gint16 *o = (gint16 *) out;
-      gfloat *i = (gfloat *) in;
-      gfloat tmp;
-
-      while (len) {
-        tmp = *i;
-        *o = (gint16) CLAMP (tmp * G_MAXINT16 + 0.5, G_MININT16, G_MAXINT16);
-        o++;
-        i++;
-        len--;
-      }
-    } else if (resample->width == 24 && !resample->fp) {
-      guint8 *o = (guint8 *) out;
-      gdouble *i = (gdouble *) in;
-      gdouble tmp;
-
-      while (len) {
-        tmp = *i;
-        GST_WRITE_UINT24 (o, (gint32) CLAMP (tmp * GST_MAXINT24 + 0.5,
-                GST_MININT24, GST_MAXINT24));
-        o += 3;
-        i++;
-        len--;
-      }
-    } else if (resample->width == 32 && !resample->fp) {
-      gint32 *o = (gint32 *) out;
-      gdouble *i = (gdouble *) in;
-      gdouble tmp;
-
-      while (len) {
-        tmp = *i;
-        *o = (gint32) CLAMP (tmp * G_MAXINT32 + 0.5, G_MININT32, G_MAXINT32);
-        o++;
-        i++;
-        len--;
-      }
-    } else {
-      g_assert_not_reached ();
-    }
-  } else {
-    if (gst_audio_resample_use_int && resample->width == 8 && !resample->fp) {
-      gint8 *i = (gint8 *) in;
-      gint16 *o = (gint16 *) out;
-      gint32 tmp;
-
-      while (len) {
-        tmp = *i;
-        *o = tmp << 8;
-        o++;
-        i++;
-        len--;
-      }
-    } else if (!gst_audio_resample_use_int && resample->width == 8
-        && !resample->fp) {
-      gint8 *i = (gint8 *) in;
-      gfloat *o = (gfloat *) out;
-      gfloat tmp;
-
-      while (len) {
-        tmp = *i;
-        *o = tmp / G_MAXINT8;
-        o++;
-        i++;
-        len--;
-      }
-    } else if (!gst_audio_resample_use_int && resample->width == 16
-        && !resample->fp) {
-      gint16 *i = (gint16 *) in;
-      gfloat *o = (gfloat *) out;
-      gfloat tmp;
-
-      while (len) {
-        tmp = *i;
-        *o = tmp / G_MAXINT16;
-        o++;
-        i++;
-        len--;
-      }
-    } else if (resample->width == 24 && !resample->fp) {
-      guint8 *i = (guint8 *) in;
-      gdouble *o = (gdouble *) out;
-      gdouble tmp;
-      guint32 tmp2;
-
-      while (len) {
-        tmp2 = GST_READ_UINT24 (i);
-        if (tmp2 & 0x00800000)
-          tmp2 |= 0xff000000;
-        tmp = (gint32) tmp2;
-        *o = tmp / GST_MAXINT24;
-        o++;
-        i += 3;
-        len--;
-      }
-    } else if (resample->width == 32 && !resample->fp) {
-      gint32 *i = (gint32 *) in;
-      gdouble *o = (gdouble *) out;
-      gdouble tmp;
-
-      while (len) {
-        tmp = *i;
-        *o = tmp / G_MAXINT32;
-        o++;
-        i++;
-        len--;
-      }
-    } else {
-      g_assert_not_reached ();
-    }
-  }
-}
-
-static guint8 *
-gst_audio_resample_workspace_realloc (guint8 ** workspace, guint * size,
-    guint new_size)
-{
-  guint8 *new;
-  if (new_size <= *size)
-    /* no need to resize */
-    return *workspace;
-  new = g_realloc (*workspace, new_size);
-  if (!new)
-    /* failure (re)allocating memeory */
-    return NULL;
-  /* success */
-  *workspace = new;
-  *size = new_size;
-  return *workspace;
-}
-
 /* Push history_len zeros into the filter, but discard the output. */
 static void
 gst_audio_resample_dump_drain (GstAudioResample * resample, guint history_len)
 {
-  gint outsize;
-  guint in_len G_GNUC_UNUSED, in_processed;
-  guint out_len, out_processed;
-  guint num, den;
-  gpointer buf;
+  gsize out_len, outsize;
+  gpointer out[1];
 
-  g_assert (resample->state != NULL);
-
-  resample->funcs->get_ratio (resample->state, &num, &den);
-
-  in_len = in_processed = history_len;
-  out_processed = out_len =
-      gst_util_uint64_scale_int_ceil (history_len, den, num);
-  outsize = out_len * resample->channels * (resample->funcs->width / 8);
-
+  out_len =
+      gst_audio_converter_get_out_frames (resample->converter, history_len);
   if (out_len == 0)
     return;
 
-  buf = g_malloc (outsize);
-  resample->funcs->process (resample->state, NULL, &in_processed, buf,
-      &out_processed);
-  g_free (buf);
+  outsize = out_len * resample->out.bpf;
 
-  g_assert (in_len == in_processed);
+  out[0] = g_malloc (outsize);
+  gst_audio_converter_samples (resample->converter, 0, NULL, history_len,
+      out, out_len);
+  g_free (out[0]);
 }
 
 static void
@@ -813,77 +546,40 @@
   GstBuffer *outbuf;
   GstFlowReturn res;
   gint outsize;
-  guint in_len, in_processed;
-  guint out_len, out_processed;
-  gint err;
-  guint num, den;
+  gsize out_len;
   GstMapInfo map;
+  gpointer out[1];
 
-  g_assert (resample->state != NULL);
+  g_assert (resample->converter != NULL);
 
   /* Don't drain samples if we were reset. */
   if (!GST_CLOCK_TIME_IS_VALID (resample->t0))
     return;
 
-  resample->funcs->get_ratio (resample->state, &num, &den);
-
-  in_len = in_processed = history_len;
-  out_len = out_processed =
-      gst_util_uint64_scale_int_ceil (history_len, den, num);
-  outsize = out_len * resample->channels * (resample->width / 8);
-
+  out_len =
+      gst_audio_converter_get_out_frames (resample->converter, history_len);
   if (out_len == 0)
     return;
 
+  outsize = out_len * resample->in.bpf;
   outbuf = gst_buffer_new_and_alloc (outsize);
 
   gst_buffer_map (outbuf, &map, GST_MAP_WRITE);
 
-  if (resample->funcs->width != resample->width) {
-    /* need to convert data format;  allocate workspace */
-    if (!gst_audio_resample_workspace_realloc (&resample->tmp_out,
-            &resample->tmp_out_size, (resample->funcs->width / 8) * out_len *
-            resample->channels)) {
-      GST_ERROR_OBJECT (resample, "failed to allocate workspace");
-      return;
-    }
+  out[0] = map.data;
+  gst_audio_converter_samples (resample->converter, 0, NULL, history_len,
+      out, out_len);
 
-    /* process */
-    err = resample->funcs->process (resample->state, NULL, &in_processed,
-        resample->tmp_out, &out_processed);
-
-    /* convert output format */
-    gst_audio_resample_convert_buffer (resample, resample->tmp_out,
-        map.data, out_processed, TRUE);
-  } else {
-    /* don't need to convert data format;  process */
-    err = resample->funcs->process (resample->state, NULL, &in_processed,
-        map.data, &out_processed);
-  }
-
-  /* If we wrote more than allocated something is really wrong now
-   * and we should better abort immediately */
-  g_assert (out_len >= out_processed);
-
-  outsize = out_processed * resample->channels * (resample->width / 8);
   gst_buffer_unmap (outbuf, &map);
-  gst_buffer_resize (outbuf, 0, outsize);
-
-  if (G_UNLIKELY (err != RESAMPLER_ERR_SUCCESS)) {
-    GST_WARNING_OBJECT (resample, "Failed to process drain: %s",
-        resample->funcs->strerror (err));
-    gst_buffer_unref (outbuf);
-    return;
-  }
 
   /* time */
   if (GST_CLOCK_TIME_IS_VALID (resample->t0)) {
     GST_BUFFER_TIMESTAMP (outbuf) = resample->t0 +
         gst_util_uint64_scale_int_round (resample->samples_out, GST_SECOND,
-        resample->outrate);
+        resample->out.rate);
     GST_BUFFER_DURATION (outbuf) = resample->t0 +
-        gst_util_uint64_scale_int_round (resample->samples_out + out_processed,
-        GST_SECOND, resample->outrate) - GST_BUFFER_TIMESTAMP (outbuf);
+        gst_util_uint64_scale_int_round (resample->samples_out + out_len,
+        GST_SECOND, resample->out.rate) - GST_BUFFER_TIMESTAMP (outbuf);
   } else {
     GST_BUFFER_TIMESTAMP (outbuf) = GST_CLOCK_TIME_NONE;
     GST_BUFFER_DURATION (outbuf) = GST_CLOCK_TIME_NONE;
@@ -891,21 +587,15 @@
   /* offset */
   if (resample->out_offset0 != GST_BUFFER_OFFSET_NONE) {
     GST_BUFFER_OFFSET (outbuf) = resample->out_offset0 + resample->samples_out;
-    GST_BUFFER_OFFSET_END (outbuf) = GST_BUFFER_OFFSET (outbuf) + out_processed;
+    GST_BUFFER_OFFSET_END (outbuf) = GST_BUFFER_OFFSET (outbuf) + out_len;
   } else {
     GST_BUFFER_OFFSET (outbuf) = GST_BUFFER_OFFSET_NONE;
     GST_BUFFER_OFFSET_END (outbuf) = GST_BUFFER_OFFSET_NONE;
   }
   /* move along */
-  resample->samples_out += out_processed;
+  resample->samples_out += out_len;
   resample->samples_in += history_len;
 
-  if (G_UNLIKELY (out_processed == 0 && in_len * den > num)) {
-    GST_WARNING_OBJECT (resample, "Failed to get drain, dropping buffer");
-    gst_buffer_unref (outbuf);
-    return;
-  }
-
   GST_LOG_OBJECT (resample,
       "Pushing drain buffer of %u bytes with timestamp %" GST_TIME_FORMAT
       " duration %" GST_TIME_FORMAT " offset %" G_GUINT64_FORMAT " offset_end %"
@@ -931,8 +621,6 @@
   switch (GST_EVENT_TYPE (event)) {
     case GST_EVENT_FLUSH_STOP:
       gst_audio_resample_reset_state (resample);
-      if (resample->state)
-        resample->funcs->skip_zeros (resample->state);
       resample->num_gap_samples = 0;
       resample->num_nongap_samples = 0;
       resample->t0 = GST_CLOCK_TIME_NONE;
@@ -943,13 +631,12 @@
       resample->need_discont = TRUE;
       break;
     case GST_EVENT_SEGMENT:
-      if (resample->state) {
-        guint latency = resample->funcs->get_input_latency (resample->state);
+      if (resample->converter) {
+        gsize latency =
+            gst_audio_converter_get_max_latency (resample->converter);
         gst_audio_resample_push_drain (resample, latency);
       }
       gst_audio_resample_reset_state (resample);
-      if (resample->state)
-        resample->funcs->skip_zeros (resample->state);
       resample->num_gap_samples = 0;
       resample->num_nongap_samples = 0;
       resample->t0 = GST_CLOCK_TIME_NONE;
@@ -960,8 +647,9 @@
       resample->need_discont = TRUE;
       break;
     case GST_EVENT_EOS:
-      if (resample->state) {
-        guint latency = resample->funcs->get_input_latency (resample->state);
+      if (resample->converter) {
+        gsize latency =
+            gst_audio_converter_get_max_latency (resample->converter);
         gst_audio_resample_push_drain (resample, latency);
       }
       gst_audio_resample_reset_state (resample);
@@ -991,7 +679,7 @@
   /* convert the inbound timestamp to an offset. */
   offset =
       gst_util_uint64_scale_int_round (GST_BUFFER_TIMESTAMP (buf) -
-      resample->t0, resample->inrate, GST_SECOND);
+      resample->t0, resample->in.rate, GST_SECOND);
 
   /* many elements generate imperfect streams due to rounding errors, so we
    * permit a small error (up to one sample) without triggering a filter
@@ -999,14 +687,14 @@
   /* allow even up to more samples, since sink is not so strict anyway,
    * so give that one a chance to handle this as configured */
   delta = ABS ((gint64) (offset - resample->samples_in));
-  if (delta <= (resample->inrate >> 5))
+  if (delta <= (resample->in.rate >> 5))
     return FALSE;
 
   GST_WARNING_OBJECT (resample,
       "encountered timestamp discontinuity of %" G_GUINT64_FORMAT " samples = %"
       GST_TIME_FORMAT, delta,
       GST_TIME_ARGS (gst_util_uint64_scale_int_round (delta, GST_SECOND,
-              resample->inrate)));
+              resample->in.rate)));
   return TRUE;
 }
 
@@ -1016,21 +704,22 @@
 {
   GstMapInfo in_map, out_map;
   gsize outsize;
-  guint32 in_len, in_processed;
-  guint32 out_len, out_processed;
-  guint filt_len = resample->funcs->get_filt_len (resample->state);
+  guint32 in_len;
+  guint32 out_len;
+  guint filt_len =
+      gst_audio_converter_get_max_latency (resample->converter) * 2;
+  gboolean inbuf_writable;
 
-  gst_buffer_map (inbuf, &in_map, GST_MAP_READ);
+  inbuf_writable = gst_buffer_is_writable (inbuf)
+      && gst_buffer_n_memory (inbuf) == 1
+      && gst_memory_is_writable (gst_buffer_peek_memory (inbuf, 0));
+
+  gst_buffer_map (inbuf, &in_map,
+      inbuf_writable ? GST_MAP_READWRITE : GST_MAP_READ);
   gst_buffer_map (outbuf, &out_map, GST_MAP_WRITE);
 
-  in_len = in_map.size / resample->channels;
-  out_len = out_map.size / resample->channels;
-
-  in_len /= (resample->width / 8);
-  out_len /= (resample->width / 8);
-
-  in_processed = in_len;
-  out_processed = out_len;
+  in_len = in_map.size / resample->in.bpf;
+  out_len = out_map.size / resample->out.bpf;
 
   if (GST_BUFFER_FLAG_IS_SET (inbuf, GST_BUFFER_FLAG_GAP)) {
     resample->num_nongap_samples = 0;
@@ -1048,27 +737,28 @@
 
     {
       guint num, den;
-      resample->funcs->get_ratio (resample->state, &num, &den);
+
+      num = resample->in.rate;
+      den = resample->out.rate;
+
       if (resample->samples_in + in_len >= filt_len / 2)
-        out_processed =
+        out_len =
             gst_util_uint64_scale_int_ceil (resample->samples_in + in_len -
             filt_len / 2, den, num) - resample->samples_out;
       else
-        out_processed = 0;
+        out_len = 0;
 
       memset (out_map.data, 0, out_map.size);
       GST_BUFFER_FLAG_SET (outbuf, GST_BUFFER_FLAG_GAP);
       resample->num_gap_samples += in_len;
-      in_processed = in_len;
     }
   } else {                      /* not a gap */
-
-    gint err;
-
     if (resample->num_gap_samples > filt_len) {
       /* push in enough zeros to restore the filter to the right offset */
-      guint num, den;
-      resample->funcs->get_ratio (resample->state, &num, &den);
+      guint num;
+
+      num = resample->in.rate;
+
       gst_audio_resample_dump_drain (resample,
           (resample->num_gap_samples - filt_len) % num);
     }
@@ -1078,65 +768,30 @@
       if (resample->num_nongap_samples > filt_len)
         resample->num_nongap_samples = filt_len;
     }
-
-    if (resample->funcs->width != resample->width) {
-      /* need to convert data format for processing;  ensure we have enough
-       * workspace available */
-      if (!gst_audio_resample_workspace_realloc (&resample->tmp_in,
-              &resample->tmp_in_size, in_len * resample->channels *
-              (resample->funcs->width / 8)) ||
-          !gst_audio_resample_workspace_realloc (&resample->tmp_out,
-              &resample->tmp_out_size, out_len * resample->channels *
-              (resample->funcs->width / 8))) {
-        GST_ERROR_OBJECT (resample, "failed to allocate workspace");
-        gst_buffer_unmap (inbuf, &in_map);
-        gst_buffer_unmap (outbuf, &out_map);
-        return GST_FLOW_ERROR;
-      }
-
-      /* convert input */
-      gst_audio_resample_convert_buffer (resample, in_map.data,
-          resample->tmp_in, in_len, FALSE);
-
+    {
       /* process */
-      err = resample->funcs->process (resample->state,
-          resample->tmp_in, &in_processed, resample->tmp_out, &out_processed);
+      gpointer in[1], out[1];
+      GstAudioConverterFlags flags;
 
-      /* convert output */
-      gst_audio_resample_convert_buffer (resample, resample->tmp_out,
-          out_map.data, out_processed, TRUE);
-    } else {
-      /* no format conversion required;  process */
-      err = resample->funcs->process (resample->state,
-          in_map.data, &in_processed, out_map.data, &out_processed);
+      flags = 0;
+      if (inbuf_writable)
+        flags |= GST_AUDIO_CONVERTER_FLAG_IN_WRITABLE;
+
+      in[0] = in_map.data;
+      out[0] = out_map.data;
+      gst_audio_converter_samples (resample->converter, flags, in, in_len,
+          out, out_len);
     }
-
-    if (G_UNLIKELY (err != RESAMPLER_ERR_SUCCESS)) {
-      GST_ERROR_OBJECT (resample, "Failed to convert data: %s",
-          resample->funcs->strerror (err));
-      gst_buffer_unmap (inbuf, &in_map);
-      gst_buffer_unmap (outbuf, &out_map);
-      return GST_FLOW_ERROR;
-    }
-  }
-
-  /* If we wrote more than allocated something is really wrong now and we
-   * should better abort immediately */
-  g_assert (out_len >= out_processed);
-
-  if (G_UNLIKELY (in_len != in_processed)) {
-    GST_WARNING_OBJECT (resample, "converted %d of %d input samples",
-        in_processed, in_len);
   }
 
   /* time */
   if (GST_CLOCK_TIME_IS_VALID (resample->t0)) {
     GST_BUFFER_TIMESTAMP (outbuf) = resample->t0 +
         gst_util_uint64_scale_int_round (resample->samples_out, GST_SECOND,
-        resample->outrate);
+        resample->out.rate);
     GST_BUFFER_DURATION (outbuf) = resample->t0 +
-        gst_util_uint64_scale_int_round (resample->samples_out + out_processed,
-        GST_SECOND, resample->outrate) - GST_BUFFER_TIMESTAMP (outbuf);
+        gst_util_uint64_scale_int_round (resample->samples_out + out_len,
+        GST_SECOND, resample->out.rate) - GST_BUFFER_TIMESTAMP (outbuf);
   } else {
     GST_BUFFER_TIMESTAMP (outbuf) = GST_CLOCK_TIME_NONE;
     GST_BUFFER_DURATION (outbuf) = GST_CLOCK_TIME_NONE;
@@ -1144,31 +799,33 @@
   /* offset */
   if (resample->out_offset0 != GST_BUFFER_OFFSET_NONE) {
     GST_BUFFER_OFFSET (outbuf) = resample->out_offset0 + resample->samples_out;
-    GST_BUFFER_OFFSET_END (outbuf) = GST_BUFFER_OFFSET (outbuf) + out_processed;
+    GST_BUFFER_OFFSET_END (outbuf) = GST_BUFFER_OFFSET (outbuf) + out_len;
   } else {
     GST_BUFFER_OFFSET (outbuf) = GST_BUFFER_OFFSET_NONE;
     GST_BUFFER_OFFSET_END (outbuf) = GST_BUFFER_OFFSET_NONE;
   }
   /* move along */
-  resample->samples_out += out_processed;
+  resample->samples_out += out_len;
   resample->samples_in += in_len;
 
   gst_buffer_unmap (inbuf, &in_map);
   gst_buffer_unmap (outbuf, &out_map);
 
-  outsize = out_processed * resample->channels * (resample->width / 8);
-  gst_buffer_resize (outbuf, 0, outsize);
+  outsize = out_len * resample->in.bpf;
 
   GST_LOG_OBJECT (resample,
       "Converted to buffer of %" G_GUINT32_FORMAT
       " samples (%" G_GSIZE_FORMAT " bytes) with timestamp %" GST_TIME_FORMAT
       ", duration %" GST_TIME_FORMAT ", offset %" G_GUINT64_FORMAT
-      ", offset_end %" G_GUINT64_FORMAT, out_processed, outsize,
+      ", offset_end %" G_GUINT64_FORMAT, out_len, outsize,
       GST_TIME_ARGS (GST_BUFFER_TIMESTAMP (outbuf)),
       GST_TIME_ARGS (GST_BUFFER_DURATION (outbuf)),
       GST_BUFFER_OFFSET (outbuf), GST_BUFFER_OFFSET_END (outbuf));
 
-  return GST_FLOW_OK;
+  if (outsize == 0)
+    return GST_BASE_TRANSFORM_FLOW_DROPPED;
+  else
+    return GST_FLOW_OK;
 }
 
 static GstFlowReturn
@@ -1178,18 +835,6 @@
   GstAudioResample *resample = GST_AUDIO_RESAMPLE (base);
   GstFlowReturn ret;
 
-  if (resample->state == NULL) {
-    if (G_UNLIKELY (!(resample->state =
-                gst_audio_resample_init_state (resample, resample->width,
-                    resample->channels, resample->inrate, resample->outrate,
-                    resample->quality, resample->fp, resample->sinc_filter_mode,
-                    resample->sinc_filter_auto_threshold))))
-      return GST_FLOW_ERROR;
-
-    resample->funcs =
-        gst_audio_resample_get_funcs (resample->width, resample->fp);
-  }
-
   GST_LOG_OBJECT (resample, "transforming buffer of %" G_GSIZE_FORMAT " bytes,"
       " ts %" GST_TIME_FORMAT ", duration %" GST_TIME_FORMAT ", offset %"
       G_GINT64_FORMAT ", offset_end %" G_GINT64_FORMAT,
@@ -1207,7 +852,6 @@
 
   /* handle discontinuity */
   if (G_UNLIKELY (resample->need_discont)) {
-    resample->funcs->skip_zeros (resample->state);
     resample->num_gap_samples = 0;
     resample->num_nongap_samples = 0;
     /* reset */
@@ -1225,7 +869,7 @@
       resample->in_offset0 = GST_BUFFER_OFFSET (inbuf);
       resample->out_offset0 =
           gst_util_uint64_scale_int_round (resample->in_offset0,
-          resample->outrate, resample->inrate);
+          resample->out.rate, resample->in.rate);
     } else {
       GST_DEBUG_OBJECT (resample, "... but new offset is invalid");
       resample->in_offset0 = GST_BUFFER_OFFSET_NONE;
@@ -1279,8 +923,8 @@
 
   if (base->segment.format == GST_FORMAT_TIME) {
     input =
-        gst_audio_buffer_clip (input, &base->segment, resample->inrate,
-        resample->channels * resample->width);
+        gst_audio_buffer_clip (input, &base->segment, resample->in.rate,
+        resample->in.bpf);
 
     if (!input)
       return GST_FLOW_OK;
@@ -1305,12 +949,12 @@
       GstClockTime min, max;
       gboolean live;
       guint64 latency;
-      gint rate = resample->inrate;
+      gint rate = resample->in.rate;
       gint resampler_latency;
 
-      if (resample->state)
+      if (resample->converter)
         resampler_latency =
-            resample->funcs->get_input_latency (resample->state);
+            gst_audio_converter_get_max_latency (resample->converter);
       else
         resampler_latency = 0;
 
@@ -1360,43 +1004,35 @@
     const GValue * value, GParamSpec * pspec)
 {
   GstAudioResample *resample;
-  gint quality;
 
   resample = GST_AUDIO_RESAMPLE (object);
 
   switch (prop_id) {
     case PROP_QUALITY:
       /* FIXME locking! */
-      quality = g_value_get_int (value);
-      GST_DEBUG_OBJECT (resample, "new quality %d", quality);
-
-      gst_audio_resample_update_state (resample, resample->width,
-          resample->channels, resample->inrate, resample->outrate,
-          quality, resample->fp, resample->sinc_filter_mode,
-          resample->sinc_filter_auto_threshold);
+      resample->quality = g_value_get_int (value);
+      GST_DEBUG_OBJECT (resample, "new quality %d", resample->quality);
+      gst_audio_resample_update_state (resample, NULL, NULL);
       break;
-    case PROP_SINC_FILTER_MODE:{
+    case PROP_RESAMPLE_METHOD:
+      resample->method = g_value_get_enum (value);
+      gst_audio_resample_update_state (resample, NULL, NULL);
+      break;
+    case PROP_SINC_FILTER_MODE:
       /* FIXME locking! */
-      SpeexResamplerSincFilterMode sinc_filter_mode = g_value_get_enum (value);
-
-      gst_audio_resample_update_state (resample, resample->width,
-          resample->channels, resample->inrate, resample->outrate,
-          resample->quality, resample->fp, sinc_filter_mode,
-          resample->sinc_filter_auto_threshold);
-
+      resample->sinc_filter_mode = g_value_get_enum (value);
+      gst_audio_resample_update_state (resample, NULL, NULL);
       break;
-    }
-    case PROP_SINC_FILTER_AUTO_THRESHOLD:{
+    case PROP_SINC_FILTER_AUTO_THRESHOLD:
       /* FIXME locking! */
-      guint32 sinc_filter_auto_threshold = g_value_get_uint (value);
-
-      gst_audio_resample_update_state (resample, resample->width,
-          resample->channels, resample->inrate, resample->outrate,
-          resample->quality, resample->fp, resample->sinc_filter_mode,
-          sinc_filter_auto_threshold);
-
+      resample->sinc_filter_auto_threshold = g_value_get_uint (value);
+      gst_audio_resample_update_state (resample, NULL, NULL);
       break;
-    }
+    case PROP_SINC_FILTER_INTERPOLATION:
+      /* FIXME locking! */
+      resample->sinc_filter_interpolation = g_value_get_enum (value);
+      gst_audio_resample_update_state (resample, NULL, NULL);
+      break;
     default:
       G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec);
       break;
@@ -1415,177 +1051,30 @@
     case PROP_QUALITY:
       g_value_set_int (value, resample->quality);
       break;
+    case PROP_RESAMPLE_METHOD:
+      g_value_set_enum (value, resample->method);
+      break;
     case PROP_SINC_FILTER_MODE:
       g_value_set_enum (value, resample->sinc_filter_mode);
       break;
     case PROP_SINC_FILTER_AUTO_THRESHOLD:
       g_value_set_uint (value, resample->sinc_filter_auto_threshold);
       break;
+    case PROP_SINC_FILTER_INTERPOLATION:
+      g_value_set_enum (value, resample->sinc_filter_interpolation);
+      break;
     default:
       G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec);
       break;
   }
 }
 
-static GType
-speex_resampler_sinc_filter_mode_get_type (void)
-{
-  static GType speex_resampler_sinc_filter_mode_type = 0;
-
-  if (!speex_resampler_sinc_filter_mode_type) {
-    static const GEnumValue sinc_filter_modes[] = {
-      {SPEEX_RESAMPLER_SINC_FILTER_INTERPOLATED, "Use interpolated sinc table",
-          "interpolated"},
-      {SPEEX_RESAMPLER_SINC_FILTER_FULL, "Use full sinc table", "full"},
-      {SPEEX_RESAMPLER_SINC_FILTER_AUTO,
-          "Use full table if table size below threshold", "auto"},
-      {0, NULL, NULL},
-    };
-
-    speex_resampler_sinc_filter_mode_type =
-        g_enum_register_static ("SpeexResamplerSincFilterMode",
-        sinc_filter_modes);
-  }
-
-  return speex_resampler_sinc_filter_mode_type;
-}
-
-/* FIXME: should have a benchmark fallback for the case where orc is disabled */
-#if defined(AUDIORESAMPLE_FORMAT_AUTO) && !defined(DISABLE_ORC)
-
-#define BENCHMARK_SIZE 512
-
-static gboolean
-_benchmark_int_float (SpeexResamplerState * st)
-{
-  gint16 in[BENCHMARK_SIZE] = { 0, }, G_GNUC_UNUSED out[BENCHMARK_SIZE / 2];
-  gfloat in_tmp[BENCHMARK_SIZE], out_tmp[BENCHMARK_SIZE / 2];
-  gint i;
-  guint32 inlen = BENCHMARK_SIZE, outlen = BENCHMARK_SIZE / 2;
-
-  for (i = 0; i < BENCHMARK_SIZE; i++) {
-    gfloat tmp = in[i];
-    in_tmp[i] = tmp / G_MAXINT16;
-  }
-
-  resample_float_resampler_process_interleaved_float (st,
-      (const guint8 *) in_tmp, &inlen, (guint8 *) out_tmp, &outlen);
-
-  if (outlen == 0) {
-    GST_ERROR ("Failed to use float resampler");
-    return FALSE;
-  }
-
-  for (i = 0; i < outlen; i++) {
-    gfloat tmp = out_tmp[i];
-    out[i] = CLAMP (tmp * G_MAXINT16 + 0.5, G_MININT16, G_MAXINT16);
-  }
-
-  return TRUE;
-}
-
-static gboolean
-_benchmark_int_int (SpeexResamplerState * st)
-{
-  gint16 in[BENCHMARK_SIZE] = { 0, }, out[BENCHMARK_SIZE / 2];
-  guint32 inlen = BENCHMARK_SIZE, outlen = BENCHMARK_SIZE / 2;
-
-  resample_int_resampler_process_interleaved_int (st, (const guint8 *) in,
-      &inlen, (guint8 *) out, &outlen);
-
-  if (outlen == 0) {
-    GST_ERROR ("Failed to use int resampler");
-    return FALSE;
-  }
-
-  return TRUE;
-}
-
-static gboolean
-_benchmark_integer_resampling (void)
-{
-  OrcProfile a, b;
-  gdouble av, bv;
-  SpeexResamplerState *sta, *stb;
-  int i;
-
-  orc_profile_init (&a);
-  orc_profile_init (&b);
-
-  sta = resample_float_resampler_init (1, 48000, 24000, 4,
-      SPEEX_RESAMPLER_SINC_FILTER_INTERPOLATED,
-      SPEEX_RESAMPLER_SINC_FILTER_AUTO_THRESHOLD_DEFAULT, NULL);
-  if (sta == NULL) {
-    GST_ERROR ("Failed to create float resampler state");
-    return FALSE;
-  }
-
-  stb = resample_int_resampler_init (1, 48000, 24000, 4,
-      SPEEX_RESAMPLER_SINC_FILTER_INTERPOLATED,
-      SPEEX_RESAMPLER_SINC_FILTER_AUTO_THRESHOLD_DEFAULT, NULL);
-  if (stb == NULL) {
-    resample_float_resampler_destroy (sta);
-    GST_ERROR ("Failed to create int resampler state");
-    return FALSE;
-  }
-
-  /* Benchmark */
-  for (i = 0; i < 10; i++) {
-    orc_profile_start (&a);
-    if (!_benchmark_int_float (sta))
-      goto error;
-    orc_profile_stop (&a);
-  }
-
-  /* Benchmark */
-  for (i = 0; i < 10; i++) {
-    orc_profile_start (&b);
-    if (!_benchmark_int_int (stb))
-      goto error;
-    orc_profile_stop (&b);
-  }
-
-  /* Handle results */
-  orc_profile_get_ave_std (&a, &av, NULL);
-  orc_profile_get_ave_std (&b, &bv, NULL);
-
-  /* Remember benchmark result in global variable */
-  gst_audio_resample_use_int = (av > bv);
-  resample_float_resampler_destroy (sta);
-  resample_int_resampler_destroy (stb);
-
-  if (av > bv)
-    GST_INFO ("Using integer resampler if appropriate: %lf < %lf", bv, av);
-  else
-    GST_INFO ("Using float resampler for everything: %lf <= %lf", av, bv);
-
-  return TRUE;
-
-error:
-  resample_float_resampler_destroy (sta);
-  resample_int_resampler_destroy (stb);
-
-  return FALSE;
-}
-#endif /* defined(AUDIORESAMPLE_FORMAT_AUTO) && !defined(DISABLE_ORC) */
-
 static gboolean
 plugin_init (GstPlugin * plugin)
 {
   GST_DEBUG_CATEGORY_INIT (audio_resample_debug, "audioresample", 0,
       "audio resampling element");
 
-#if defined(AUDIORESAMPLE_FORMAT_AUTO) && !defined(DISABLE_ORC)
-  if (!_benchmark_integer_resampling ())
-    return FALSE;
-#else
-  GST_WARNING ("Orc disabled, can't benchmark int vs. float resampler");
-  {
-    GST_DEBUG_CATEGORY_GET (GST_CAT_PERFORMANCE, "GST_PERFORMANCE");
-    GST_CAT_WARNING (GST_CAT_PERFORMANCE, "orc disabled, no benchmarking done");
-  }
-#endif
-
   if (!gst_element_register (plugin, "audioresample", GST_RANK_PRIMARY,
           GST_TYPE_AUDIO_RESAMPLE)) {
     return FALSE;
diff --git a/gst/audioresample/gstaudioresample.h b/gst/audioresample/gstaudioresample.h
index 726236a..6092493 100644
--- a/gst/audioresample/gstaudioresample.h
+++ b/gst/audioresample/gstaudioresample.h
@@ -26,8 +26,6 @@
 #include <gst/base/gstbasetransform.h>
 #include <gst/audio/audio.h>
 
-#include "speex_resampler_wrapper.h"
-
 G_BEGIN_DECLS
 
 #define GST_TYPE_AUDIO_RESAMPLE \
@@ -60,31 +58,21 @@
   guint64 out_offset0;
   guint64 samples_in;
   guint64 samples_out;
-  
+
   guint64 num_gap_samples;
   guint64 num_nongap_samples;
 
   /* properties */
+  GstAudioResamplerMethod method;
   gint quality;
+  GstAudioResamplerFilterMode sinc_filter_mode;
+  guint32 sinc_filter_auto_threshold;
+  GstAudioResamplerFilterInterpolation sinc_filter_interpolation;
 
   /* state */
-  gboolean fp;
-  gint width;
-  gint channels;
-  gint inrate;
-  gint outrate;
-
-  SpeexResamplerSincFilterMode sinc_filter_mode;
-  guint32 sinc_filter_auto_threshold;
-
-  guint8 *tmp_in;
-  guint tmp_in_size;
-
-  guint8 *tmp_out;
-  guint tmp_out_size;
-
-  SpeexResamplerState *state;
-  const SpeexResampleFuncs *funcs;
+  GstAudioInfo in;
+  GstAudioInfo out;
+  GstAudioConverter *converter;
 };
 
 struct _GstAudioResampleClass {
diff --git a/gst/audioresample/resample.c b/gst/audioresample/resample.c
deleted file mode 100644
index c375535..0000000
--- a/gst/audioresample/resample.c
+++ /dev/null
@@ -1,1516 +0,0 @@
-/* Copyright (C) 2007-2008 Jean-Marc Valin
-   Copyright (C) 2008      Thorvald Natvig
-      
-   File: resample.c
-   Arbitrary resampling code
-
-   Redistribution and use in source and binary forms, with or without
-   modification, are permitted provided that the following conditions are
-   met:
-
-   1. Redistributions of source code must retain the above copyright notice,
-   this list of conditions and the following disclaimer.
-
-   2. Redistributions in binary form must reproduce the above copyright
-   notice, this list of conditions and the following disclaimer in the
-   documentation and/or other materials provided with the distribution.
-
-   3. The name of the author may not be used to endorse or promote products
-   derived from this software without specific prior written permission.
-
-   THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
-   IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
-   OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
-   DISCLAIMED. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT,
-   INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
-   (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
-   SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
-   HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
-   STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN
-   ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-   POSSIBILITY OF SUCH DAMAGE.
-*/
-
-/*
-   The design goals of this code are:
-      - Very fast algorithm
-      - SIMD-friendly algorithm
-      - Low memory requirement
-      - Good *perceptual* quality (and not best SNR)
-
-   Warning: This resampler is relatively new. Although I think I got rid of 
-   all the major bugs and I don't expect the API to change anymore, there
-   may be something I've missed. So use with caution.
-
-   This algorithm is based on this original resampling algorithm:
-   Smith, Julius O. Digital Audio Resampling Home Page
-   Center for Computer Research in Music and Acoustics (CCRMA), 
-   Stanford University, 2007.
-   Web published at http://www-ccrma.stanford.edu/~jos/resample/.
-
-   There is one main difference, though. This resampler uses cubic 
-   interpolation instead of linear interpolation in the above paper. This
-   makes the table much smaller and makes it possible to compute that table
-   on a per-stream basis. In turn, being able to tweak the table for each 
-   stream makes it possible to both reduce complexity on simple ratios 
-   (e.g. 2/3), and get rid of the rounding operations in the inner loop. 
-   The latter both reduces CPU time and makes the algorithm more SIMD-friendly.
-*/
-
-#ifdef HAVE_CONFIG_H
-#include "config.h"
-#endif
-
-#ifdef OUTSIDE_SPEEX
-#include <stdlib.h>
-
-#ifdef HAVE_STRING_H
-#include <string.h>
-#endif
-
-#include <glib.h>
-
-#ifdef HAVE_ORC
-#include <orc/orc.h>
-#endif
-
-#define EXPORT G_GNUC_INTERNAL
-
-#ifdef _USE_SSE
-#if !defined(__SSE__) || !defined(HAVE_XMMINTRIN_H)
-#undef _USE_SSE
-#endif
-#endif
-
-#ifdef _USE_SSE2
-#if !defined(__SSE2__) || !defined(HAVE_EMMINTRIN_H)
-#undef _USE_SSE2
-#endif
-#endif
-
-#ifdef _USE_NEON
-#ifndef HAVE_ARM_NEON
-#undef _USE_NEON
-#endif
-#endif
-
-static inline void *
-speex_alloc (int size)
-{
-  return g_malloc0 (size);
-}
-
-static inline void *
-speex_realloc (void *ptr, int size)
-{
-  return g_realloc (ptr, size);
-}
-
-static inline void
-speex_free (void *ptr)
-{
-  g_free (ptr);
-}
-
-#include "speex_resampler.h"
-#include "arch.h"
-#else /* OUTSIDE_SPEEX */
-
-#include "../include/speex/speex_resampler.h"
-#include "arch.h"
-#include "os_support.h"
-#endif /* OUTSIDE_SPEEX */
-
-#include <math.h>
-
-#ifdef FIXED_POINT
-#define WORD2INT(x) ((x) < -32767 ? -32768 : ((x) > 32766 ? 32767 : (x)))
-#else
-#define WORD2INT(x) ((x) < -32767.5f ? -32768 : ((x) > 32766.5f ? 32767 : floor(.5+(x))))
-#endif
-
-#define IMAX(a,b) ((a) > (b) ? (a) : (b))
-#define IMIN(a,b) ((a) < (b) ? (a) : (b))
-
-#ifndef NULL
-#define NULL 0
-#endif
-
-#if defined _USE_SSE || defined _USE_SSE2
-#include "resample_sse.h"
-#endif
-
-#ifdef _USE_NEON
-#include "resample_neon.h"
-#endif
-
-/* Numer of elements to allocate on the stack */
-#ifdef VAR_ARRAYS
-#define FIXED_STACK_ALLOC 8192
-#else
-#define FIXED_STACK_ALLOC 1024
-#endif
-
-/* Allow selecting SSE or not when compiled with SSE support */
-#ifdef _USE_SSE
-#define SSE_FALLBACK(macro) \
-  if (st->use_sse) goto sse_##macro##_sse; {
-#define SSE_IMPLEMENTATION(macro) \
-  goto sse_##macro##_end; } sse_##macro##_sse: {
-#define SSE_END(macro) sse_##macro##_end:; }
-#else
-#define SSE_FALLBACK(macro)
-#endif
-
-#ifdef _USE_SSE2
-#define SSE2_FALLBACK(macro) \
-  if (st->use_sse2) goto sse2_##macro##_sse2; {
-#define SSE2_IMPLEMENTATION(macro) \
-  goto sse2_##macro##_end; } sse2_##macro##_sse2: {
-#define SSE2_END(macro) sse2_##macro##_end:; }
-#else
-#define SSE2_FALLBACK(macro)
-#endif
-
-#ifdef _USE_NEON
-#define NEON_FALLBACK(macro) \
-  if (st->use_neon) goto neon_##macro##_neon; {
-#define NEON_IMPLEMENTATION(macro) \
-  goto neon_##macro##_end; } neon_##macro##_neon: {
-#define NEON_END(macro) neon_##macro##_end:; }
-#else
-#define NEON_FALLBACK(macro)
-#endif
-
-
-typedef int (*resampler_basic_func) (SpeexResamplerState *, spx_uint32_t,
-    const spx_word16_t *, spx_uint32_t *, spx_word16_t *, spx_uint32_t *);
-
-struct SpeexResamplerState_
-{
-  spx_uint32_t in_rate;
-  spx_uint32_t out_rate;
-  spx_uint32_t num_rate;
-  spx_uint32_t den_rate;
-
-  int quality;
-  spx_uint32_t nb_channels;
-  spx_uint32_t filt_len;
-  spx_uint32_t mem_alloc_size;
-  spx_uint32_t buffer_size;
-  int int_advance;
-  int frac_advance;
-  float cutoff;
-  spx_uint32_t oversample;
-  int initialised;
-  int started;
-  int use_full_sinc_table;
-
-  /* These are per-channel */
-  spx_int32_t *last_sample;
-  spx_uint32_t *samp_frac_num;
-  spx_uint32_t *magic_samples;
-
-  spx_word16_t *mem;
-  spx_word16_t *sinc_table;
-  spx_uint32_t sinc_table_length;
-  resampler_basic_func resampler_ptr;
-
-  int in_stride;
-  int out_stride;
-
-  int use_sse:1;
-  int use_sse2:1;
-  int use_neon:1;
-};
-
-static const double kaiser12_table[68] = {
-  0.99859849, 1.00000000, 0.99859849, 0.99440475, 0.98745105, 0.97779076,
-  0.96549770, 0.95066529, 0.93340547, 0.91384741, 0.89213598, 0.86843014,
-  0.84290116, 0.81573067, 0.78710866, 0.75723148, 0.72629970, 0.69451601,
-  0.66208321, 0.62920216, 0.59606986, 0.56287762, 0.52980938, 0.49704014,
-  0.46473455, 0.43304576, 0.40211431, 0.37206735, 0.34301800, 0.31506490,
-  0.28829195, 0.26276832, 0.23854851, 0.21567274, 0.19416736, 0.17404546,
-  0.15530766, 0.13794294, 0.12192957, 0.10723616, 0.09382272, 0.08164178,
-  0.07063950, 0.06075685, 0.05193064, 0.04409466, 0.03718069, 0.03111947,
-  0.02584161, 0.02127838, 0.01736250, 0.01402878, 0.01121463, 0.00886058,
-  0.00691064, 0.00531256, 0.00401805, 0.00298291, 0.00216702, 0.00153438,
-  0.00105297, 0.00069463, 0.00043489, 0.00025272, 0.00013031, 0.0000527734,
-  0.00001000, 0.00000000
-};
-
-/*
-static const double kaiser12_table[36] = {
-   0.99440475, 1.00000000, 0.99440475, 0.97779076, 0.95066529, 0.91384741,
-   0.86843014, 0.81573067, 0.75723148, 0.69451601, 0.62920216, 0.56287762,
-   0.49704014, 0.43304576, 0.37206735, 0.31506490, 0.26276832, 0.21567274,
-   0.17404546, 0.13794294, 0.10723616, 0.08164178, 0.06075685, 0.04409466,
-   0.03111947, 0.02127838, 0.01402878, 0.00886058, 0.00531256, 0.00298291,
-   0.00153438, 0.00069463, 0.00025272, 0.0000527734, 0.00000500, 0.00000000};
-*/
-static const double kaiser10_table[36] = {
-  0.99537781, 1.00000000, 0.99537781, 0.98162644, 0.95908712, 0.92831446,
-  0.89005583, 0.84522401, 0.79486424, 0.74011713, 0.68217934, 0.62226347,
-  0.56155915, 0.50119680, 0.44221549, 0.38553619, 0.33194107, 0.28205962,
-  0.23636152, 0.19515633, 0.15859932, 0.12670280, 0.09935205, 0.07632451,
-  0.05731132, 0.04193980, 0.02979584, 0.02044510, 0.01345224, 0.00839739,
-  0.00488951, 0.00257636, 0.00115101, 0.00035515, 0.00000000, 0.00000000
-};
-
-static const double kaiser8_table[36] = {
-  0.99635258, 1.00000000, 0.99635258, 0.98548012, 0.96759014, 0.94302200,
-  0.91223751, 0.87580811, 0.83439927, 0.78875245, 0.73966538, 0.68797126,
-  0.63451750, 0.58014482, 0.52566725, 0.47185369, 0.41941150, 0.36897272,
-  0.32108304, 0.27619388, 0.23465776, 0.19672670, 0.16255380, 0.13219758,
-  0.10562887, 0.08273982, 0.06335451, 0.04724088, 0.03412321, 0.02369490,
-  0.01563093, 0.00959968, 0.00527363, 0.00233883, 0.00050000, 0.00000000
-};
-
-static const double kaiser6_table[36] = {
-  0.99733006, 1.00000000, 0.99733006, 0.98935595, 0.97618418, 0.95799003,
-  0.93501423, 0.90755855, 0.87598009, 0.84068475, 0.80211977, 0.76076565,
-  0.71712752, 0.67172623, 0.62508937, 0.57774224, 0.53019925, 0.48295561,
-  0.43647969, 0.39120616, 0.34752997, 0.30580127, 0.26632152, 0.22934058,
-  0.19505503, 0.16360756, 0.13508755, 0.10953262, 0.08693120, 0.06722600,
-  0.05031820, 0.03607231, 0.02432151, 0.01487334, 0.00752000, 0.00000000
-};
-
-struct FuncDef
-{
-  const double *table;
-  int oversample;
-};
-
-static struct FuncDef _KAISER12 = { kaiser12_table, 64 };
-
-#define KAISER12 (&_KAISER12)
-/*static struct FuncDef _KAISER12 = {kaiser12_table, 32};
-#define KAISER12 (&_KAISER12)*/
-static struct FuncDef _KAISER10 = { kaiser10_table, 32 };
-
-#define KAISER10 (&_KAISER10)
-static struct FuncDef _KAISER8 = { kaiser8_table, 32 };
-
-#define KAISER8 (&_KAISER8)
-static struct FuncDef _KAISER6 = { kaiser6_table, 32 };
-
-#define KAISER6 (&_KAISER6)
-
-struct QualityMapping
-{
-  int base_length;
-  int oversample;
-  float downsample_bandwidth;
-  float upsample_bandwidth;
-  struct FuncDef *window_func;
-};
-
-
-/* This table maps conversion quality to internal parameters. There are two
-   reasons that explain why the up-sampling bandwidth is larger than the 
-   down-sampling bandwidth:
-   1) When up-sampling, we can assume that the spectrum is already attenuated
-      close to the Nyquist rate (from an A/D or a previous resampling filter)
-   2) Any aliasing that occurs very close to the Nyquist rate will be masked
-      by the sinusoids/noise just below the Nyquist rate (guaranteed only for
-      up-sampling).
-*/
-static const struct QualityMapping quality_map[11] = {
-  {8, 4, 0.830f, 0.860f, KAISER6},      /* Q0 */
-  {16, 4, 0.850f, 0.880f, KAISER6},     /* Q1 */
-  {32, 4, 0.882f, 0.910f, KAISER6},     /* Q2 *//* 82.3% cutoff ( ~60 dB stop) 6  */
-  {48, 8, 0.895f, 0.917f, KAISER8},     /* Q3 *//* 84.9% cutoff ( ~80 dB stop) 8  */
-  {64, 8, 0.921f, 0.940f, KAISER8},     /* Q4 *//* 88.7% cutoff ( ~80 dB stop) 8  */
-  {80, 16, 0.922f, 0.940f, KAISER10},   /* Q5 *//* 89.1% cutoff (~100 dB stop) 10 */
-  {96, 16, 0.940f, 0.945f, KAISER10},   /* Q6 *//* 91.5% cutoff (~100 dB stop) 10 */
-  {128, 16, 0.950f, 0.950f, KAISER10},  /* Q7 *//* 93.1% cutoff (~100 dB stop) 10 */
-  {160, 16, 0.960f, 0.960f, KAISER10},  /* Q8 *//* 94.5% cutoff (~100 dB stop) 10 */
-  {192, 32, 0.968f, 0.968f, KAISER12},  /* Q9 *//* 95.5% cutoff (~100 dB stop) 10 */
-  {256, 32, 0.975f, 0.975f, KAISER12},  /* Q10 *//* 96.6% cutoff (~100 dB stop) 10 */
-};
-
-/*8,24,40,56,80,104,128,160,200,256,320*/
-#ifdef DOUBLE_PRECISION
-static double
-compute_func (double x, struct FuncDef *func)
-{
-  double y, frac;
-#else
-static double
-compute_func (float x, struct FuncDef *func)
-{
-  float y, frac;
-#endif
-  double interp[4];
-  int ind;
-  y = x * func->oversample;
-  ind = (int) floor (y);
-  frac = (y - ind);
-  /* CSE with handle the repeated powers */
-  interp[3] = -0.1666666667 * frac + 0.1666666667 * (frac * frac * frac);
-  interp[2] = frac + 0.5 * (frac * frac) - 0.5 * (frac * frac * frac);
-  /*interp[2] = 1.f - 0.5f*frac - frac*frac + 0.5f*frac*frac*frac; */
-  interp[0] =
-      -0.3333333333 * frac + 0.5 * (frac * frac) -
-      0.1666666667 * (frac * frac * frac);
-  /* Just to make sure we don't have rounding problems */
-  interp[1] = 1.f - interp[3] - interp[2] - interp[0];
-
-  /*sum = frac*accum[1] + (1-frac)*accum[2]; */
-  return interp[0] * func->table[ind] + interp[1] * func->table[ind + 1] +
-      interp[2] * func->table[ind + 2] + interp[3] * func->table[ind + 3];
-}
-
-#if 0
-#include <stdio.h>
-int
-main (int argc, char **argv)
-{
-  int i;
-  for (i = 0; i < 256; i++) {
-    printf ("%f\n", compute_func (i / 256., KAISER12));
-  }
-  return 0;
-}
-#endif
-
-#ifdef FIXED_POINT
-/* The slow way of computing a sinc for the table. Should improve that some day */
-static spx_word16_t
-sinc (float cutoff, float x, int N, struct FuncDef *window_func)
-{
-  /*fprintf (stderr, "%f ", x); */
-  float xx = x * cutoff;
-  if (fabs (x) < 1e-6f)
-    return WORD2INT (32768. * cutoff);
-  else if (fabs (x) > .5f * N)
-    return 0;
-  /*FIXME: Can it really be any slower than this? */
-  return WORD2INT (32768. * cutoff * sin (G_PI * xx) / (G_PI * xx) *
-      compute_func (fabs (2. * x / N), window_func));
-}
-#else
-/* The slow way of computing a sinc for the table. Should improve that some day */
-#ifdef DOUBLE_PRECISION
-static spx_word16_t
-sinc (double cutoff, double x, int N, struct FuncDef *window_func)
-{
-  /*fprintf (stderr, "%f ", x); */
-  double xx = x * cutoff;
-#else
-static spx_word16_t
-sinc (float cutoff, float x, int N, struct FuncDef *window_func)
-{
-  /*fprintf (stderr, "%f ", x); */
-  float xx = x * cutoff;
-#endif
-  if (fabs (x) < 1e-6)
-    return cutoff;
-  else if (fabs (x) > .5 * N)
-    return 0;
-  /*FIXME: Can it really be any slower than this? */
-  return cutoff * sin (G_PI * xx) / (G_PI * xx) * compute_func (fabs (2. * x /
-          N), window_func);
-}
-#endif
-
-#ifdef FIXED_POINT
-static void
-cubic_coef (spx_word16_t x, spx_word16_t interp[4])
-{
-  /* Compute interpolation coefficients. I'm not sure whether this corresponds to cubic interpolation
-     but I know it's MMSE-optimal on a sinc */
-  spx_word16_t x2, x3;
-  x2 = MULT16_16_P15 (x, x);
-  x3 = MULT16_16_P15 (x, x2);
-  interp[0] =
-      PSHR32 (MULT16_16 (QCONST16 (-0.16667f, 15),
-          x) + MULT16_16 (QCONST16 (0.16667f, 15), x3), 15);
-  interp[1] =
-      EXTRACT16 (EXTEND32 (x) + SHR32 (SUB32 (EXTEND32 (x2), EXTEND32 (x3)),
-          1));
-  interp[3] =
-      PSHR32 (MULT16_16 (QCONST16 (-0.33333f, 15),
-          x) + MULT16_16 (QCONST16 (.5f, 15),
-          x2) - MULT16_16 (QCONST16 (0.16667f, 15), x3), 15);
-  /* Just to make sure we don't have rounding problems */
-  interp[2] = Q15_ONE - interp[0] - interp[1] - interp[3];
-  if (interp[2] < 32767)
-    interp[2] += 1;
-}
-#else
-static void
-cubic_coef (spx_word16_t frac, spx_word16_t interp[4])
-{
-  /* Compute interpolation coefficients. I'm not sure whether this corresponds to cubic interpolation
-     but I know it's MMSE-optimal on a sinc */
-  interp[0] = -0.16667f * frac + 0.16667f * frac * frac * frac;
-  interp[1] = frac + 0.5f * frac * frac - 0.5f * frac * frac * frac;
-  /*interp[2] = 1.f - 0.5f*frac - frac*frac + 0.5f*frac*frac*frac; */
-  interp[3] =
-      -0.33333f * frac + 0.5f * frac * frac - 0.16667f * frac * frac * frac;
-  /* Just to make sure we don't have rounding problems */
-  interp[2] = 1. - interp[0] - interp[1] - interp[3];
-}
-#endif
-
-#ifndef DOUBLE_PRECISION
-static int
-resampler_basic_direct_single (SpeexResamplerState * st,
-    spx_uint32_t channel_index, const spx_word16_t * in, spx_uint32_t * in_len,
-    spx_word16_t * out, spx_uint32_t * out_len)
-{
-  const int N = st->filt_len;
-  int out_sample = 0;
-  int last_sample = st->last_sample[channel_index];
-  spx_uint32_t samp_frac_num = st->samp_frac_num[channel_index];
-  const spx_word16_t *sinc_table = st->sinc_table;
-  const int out_stride = st->out_stride;
-  const int int_advance = st->int_advance;
-  const int frac_advance = st->frac_advance;
-  const spx_uint32_t den_rate = st->den_rate;
-  spx_word32_t sum;
-  int j;
-
-  while (!(last_sample >= (spx_int32_t) * in_len
-          || out_sample >= (spx_int32_t) * out_len)) {
-    const spx_word16_t *sinc = &sinc_table[samp_frac_num * N];
-    const spx_word16_t *iptr = &in[last_sample];
-
-    SSE_FALLBACK (INNER_PRODUCT_SINGLE)
-        NEON_FALLBACK (INNER_PRODUCT_SINGLE)
-        sum = 0;
-    for (j = 0; j < N; j++)
-      sum += MULT16_16 (sinc[j], iptr[j]);
-
-/*    This code is slower on most DSPs which have only 2 accumulators.
-      Plus this forces truncation to 32 bits and you lose the HW guard bits.
-      I think we can trust the compiler and let it vectorize and/or unroll itself.
-      spx_word32_t accum[4] = {0,0,0,0};
-      for(j=0;j<N;j+=4) {
-        accum[0] += MULT16_16(sinc[j], iptr[j]);
-        accum[1] += MULT16_16(sinc[j+1], iptr[j+1]);
-        accum[2] += MULT16_16(sinc[j+2], iptr[j+2]);
-        accum[3] += MULT16_16(sinc[j+3], iptr[j+3]);
-      }
-      sum = accum[0] + accum[1] + accum[2] + accum[3];
-*/
-#if defined(OVERRIDE_INNER_PRODUCT_SINGLE) && defined(_USE_NEON)
-    NEON_IMPLEMENTATION (INNER_PRODUCT_SINGLE)
-        sum = inner_product_single (sinc, iptr, N);
-    NEON_END (INNER_PRODUCT_SINGLE)
-#elif defined(OVERRIDE_INNER_PRODUCT_SINGLE) && defined(_USE_SSE)
-    SSE_IMPLEMENTATION (INNER_PRODUCT_SINGLE)
-        sum = inner_product_single (sinc, iptr, N);
-    SSE_END (INNER_PRODUCT_SINGLE)
-#endif
-        out[out_stride * out_sample++] = SATURATE32PSHR (sum, 15, 32767);
-    last_sample += int_advance;
-    samp_frac_num += frac_advance;
-    if (samp_frac_num >= den_rate) {
-      samp_frac_num -= den_rate;
-      last_sample++;
-    }
-  }
-
-  st->last_sample[channel_index] = last_sample;
-  st->samp_frac_num[channel_index] = samp_frac_num;
-  return out_sample;
-}
-#endif
-
-#ifdef FIXED_POINT
-#else
-/* This is the same as the previous function, except with a double-precision accumulator */
-static int
-resampler_basic_direct_double (SpeexResamplerState * st,
-    spx_uint32_t channel_index, const spx_word16_t * in, spx_uint32_t * in_len,
-    spx_word16_t * out, spx_uint32_t * out_len)
-{
-  const int N = st->filt_len;
-  int out_sample = 0;
-  int last_sample = st->last_sample[channel_index];
-  spx_uint32_t samp_frac_num = st->samp_frac_num[channel_index];
-  const spx_word16_t *sinc_table = st->sinc_table;
-  const int out_stride = st->out_stride;
-  const int int_advance = st->int_advance;
-  const int frac_advance = st->frac_advance;
-  const spx_uint32_t den_rate = st->den_rate;
-  double sum;
-  int j;
-
-  while (!(last_sample >= (spx_int32_t) * in_len
-          || out_sample >= (spx_int32_t) * out_len)) {
-    const spx_word16_t *sinc = &sinc_table[samp_frac_num * N];
-    const spx_word16_t *iptr = &in[last_sample];
-
-    SSE2_FALLBACK (INNER_PRODUCT_DOUBLE)
-    double accum[4] = { 0, 0, 0, 0 };
-
-    for (j = 0; j < N; j += 4) {
-      accum[0] += sinc[j] * iptr[j];
-      accum[1] += sinc[j + 1] * iptr[j + 1];
-      accum[2] += sinc[j + 2] * iptr[j + 2];
-      accum[3] += sinc[j + 3] * iptr[j + 3];
-    }
-    sum = accum[0] + accum[1] + accum[2] + accum[3];
-#if defined(OVERRIDE_INNER_PRODUCT_DOUBLE) && defined(_USE_SSE2)
-    SSE2_IMPLEMENTATION (INNER_PRODUCT_DOUBLE)
-        sum = inner_product_double (sinc, iptr, N);
-    SSE2_END (INNER_PRODUCT_DOUBLE)
-#endif
-        out[out_stride * out_sample++] = PSHR32 (sum, 15);
-    last_sample += int_advance;
-    samp_frac_num += frac_advance;
-    if (samp_frac_num >= den_rate) {
-      samp_frac_num -= den_rate;
-      last_sample++;
-    }
-  }
-
-  st->last_sample[channel_index] = last_sample;
-  st->samp_frac_num[channel_index] = samp_frac_num;
-  return out_sample;
-}
-#endif
-
-#ifndef DOUBLE_PRECISION
-static int
-resampler_basic_interpolate_single (SpeexResamplerState * st,
-    spx_uint32_t channel_index, const spx_word16_t * in, spx_uint32_t * in_len,
-    spx_word16_t * out, spx_uint32_t * out_len)
-{
-  const int N = st->filt_len;
-  int out_sample = 0;
-  int last_sample = st->last_sample[channel_index];
-  spx_uint32_t samp_frac_num = st->samp_frac_num[channel_index];
-  const int out_stride = st->out_stride;
-  const int int_advance = st->int_advance;
-  const int frac_advance = st->frac_advance;
-  const spx_uint32_t den_rate = st->den_rate;
-  int j;
-  spx_word32_t sum;
-
-  while (!(last_sample >= (spx_int32_t) * in_len
-          || out_sample >= (spx_int32_t) * out_len)) {
-    const spx_word16_t *iptr = &in[last_sample];
-
-    const int offset = samp_frac_num * st->oversample / st->den_rate;
-#ifdef FIXED_POINT
-    const spx_word16_t frac =
-        ((((gint64) samp_frac_num * (gint64) st->oversample) % st->den_rate)
-        << 15) / st->den_rate;
-#else
-    const spx_word16_t frac =
-        ((float) ((samp_frac_num * st->oversample) % st->den_rate)) /
-        st->den_rate;
-#endif
-    spx_word16_t interp[4];
-
-
-    SSE_FALLBACK (INTERPOLATE_PRODUCT_SINGLE)
-    spx_word32_t accum[4] = { 0, 0, 0, 0 };
-
-    for (j = 0; j < N; j++) {
-      const spx_word16_t curr_in = iptr[j];
-      accum[0] +=
-          MULT16_16 (curr_in,
-          st->sinc_table[4 + (j + 1) * st->oversample - offset - 2]);
-      accum[1] +=
-          MULT16_16 (curr_in,
-          st->sinc_table[4 + (j + 1) * st->oversample - offset - 1]);
-      accum[2] +=
-          MULT16_16 (curr_in,
-          st->sinc_table[4 + (j + 1) * st->oversample - offset]);
-      accum[3] +=
-          MULT16_16 (curr_in,
-          st->sinc_table[4 + (j + 1) * st->oversample - offset + 1]);
-    }
-
-    cubic_coef (frac, interp);
-    sum =
-        MULT16_32_Q15 (interp[0], SHR32 (accum[0],
-            1)) + MULT16_32_Q15 (interp[1], SHR32 (accum[1],
-            1)) + MULT16_32_Q15 (interp[2], SHR32 (accum[2],
-            1)) + MULT16_32_Q15 (interp[3], SHR32 (accum[3], 1));
-#if defined(OVERRIDE_INTERPOLATE_PRODUCT_SINGLE) && defined(_USE_SSE)
-    SSE_IMPLEMENTATION (INTERPOLATE_PRODUCT_SINGLE)
-        cubic_coef (frac, interp);
-    sum =
-        interpolate_product_single (iptr,
-        st->sinc_table + st->oversample + 4 - offset - 2, N, st->oversample,
-        interp);
-    SSE_END (INTERPOLATE_PRODUCT_SINGLE)
-#endif
-        out[out_stride * out_sample++] = SATURATE32PSHR (sum, 14, 32767);
-    last_sample += int_advance;
-    samp_frac_num += frac_advance;
-    if (samp_frac_num >= den_rate) {
-      samp_frac_num -= den_rate;
-      last_sample++;
-    }
-  }
-
-  st->last_sample[channel_index] = last_sample;
-  st->samp_frac_num[channel_index] = samp_frac_num;
-  return out_sample;
-}
-#endif
-
-#ifdef FIXED_POINT
-#else
-/* This is the same as the previous function, except with a double-precision accumulator */
-static int
-resampler_basic_interpolate_double (SpeexResamplerState * st,
-    spx_uint32_t channel_index, const spx_word16_t * in, spx_uint32_t * in_len,
-    spx_word16_t * out, spx_uint32_t * out_len)
-{
-  const int N = st->filt_len;
-  int out_sample = 0;
-  int last_sample = st->last_sample[channel_index];
-  spx_uint32_t samp_frac_num = st->samp_frac_num[channel_index];
-  const int out_stride = st->out_stride;
-  const int int_advance = st->int_advance;
-  const int frac_advance = st->frac_advance;
-  const spx_uint32_t den_rate = st->den_rate;
-  int j;
-  spx_word32_t sum;
-
-  while (!(last_sample >= (spx_int32_t) * in_len
-          || out_sample >= (spx_int32_t) * out_len)) {
-    const spx_word16_t *iptr = &in[last_sample];
-
-    const int offset = samp_frac_num * st->oversample / st->den_rate;
-#ifdef FIXED_POINT
-    const spx_word16_t frac =
-        PDIV32 (SHL32 ((samp_frac_num * st->oversample) % st->den_rate, 15),
-        st->den_rate);
-#else
-#ifdef DOUBLE_PRECISION
-    const spx_word16_t frac =
-        ((double) ((samp_frac_num * st->oversample) % st->den_rate)) /
-        st->den_rate;
-#else
-    const spx_word16_t frac =
-        ((float) ((samp_frac_num * st->oversample) % st->den_rate)) /
-        st->den_rate;
-#endif
-#endif
-    spx_word16_t interp[4];
-
-
-    SSE2_FALLBACK (INTERPOLATE_PRODUCT_DOUBLE)
-    double accum[4] = { 0, 0, 0, 0 };
-
-    for (j = 0; j < N; j++) {
-      const double curr_in = iptr[j];
-      accum[0] +=
-          MULT16_16 (curr_in,
-          st->sinc_table[4 + (j + 1) * st->oversample - offset - 2]);
-      accum[1] +=
-          MULT16_16 (curr_in,
-          st->sinc_table[4 + (j + 1) * st->oversample - offset - 1]);
-      accum[2] +=
-          MULT16_16 (curr_in,
-          st->sinc_table[4 + (j + 1) * st->oversample - offset]);
-      accum[3] +=
-          MULT16_16 (curr_in,
-          st->sinc_table[4 + (j + 1) * st->oversample - offset + 1]);
-    }
-
-    cubic_coef (frac, interp);
-    sum =
-        MULT16_32_Q15 (interp[0], accum[0]) + MULT16_32_Q15 (interp[1],
-        accum[1]) + MULT16_32_Q15 (interp[2],
-        accum[2]) + MULT16_32_Q15 (interp[3], accum[3]);
-#if defined(OVERRIDE_INTERPOLATE_PRODUCT_DOUBLE) && defined(_USE_SSE2)
-    SSE2_IMPLEMENTATION (INTERPOLATE_PRODUCT_DOUBLE)
-        cubic_coef (frac, interp);
-    sum =
-        interpolate_product_double (iptr,
-        st->sinc_table + st->oversample + 4 - offset - 2, N, st->oversample,
-        interp);
-    SSE2_END (INTERPOLATE_PRODUCT_DOUBLE)
-#endif
-        out[out_stride * out_sample++] = PSHR32 (sum, 15);
-    last_sample += int_advance;
-    samp_frac_num += frac_advance;
-    if (samp_frac_num >= den_rate) {
-      samp_frac_num -= den_rate;
-      last_sample++;
-    }
-  }
-
-  st->last_sample[channel_index] = last_sample;
-  st->samp_frac_num[channel_index] = samp_frac_num;
-  return out_sample;
-}
-#endif
-
-static void
-update_filter (SpeexResamplerState * st)
-{
-  spx_uint32_t old_length;
-
-  old_length = st->filt_len;
-  st->oversample = quality_map[st->quality].oversample;
-  st->filt_len = quality_map[st->quality].base_length;
-
-  if (st->num_rate > st->den_rate) {
-    /* down-sampling */
-    st->cutoff =
-        quality_map[st->quality].downsample_bandwidth * st->den_rate /
-        st->num_rate;
-    /* FIXME: divide the numerator and denominator by a certain amount if they're too large */
-    st->filt_len = st->filt_len * st->num_rate / st->den_rate;
-    /* Round down to make sure we have a multiple of 4 */
-    st->filt_len &= (~0x3);
-    if (2 * st->den_rate < st->num_rate)
-      st->oversample >>= 1;
-    if (4 * st->den_rate < st->num_rate)
-      st->oversample >>= 1;
-    if (8 * st->den_rate < st->num_rate)
-      st->oversample >>= 1;
-    if (16 * st->den_rate < st->num_rate)
-      st->oversample >>= 1;
-    if (st->oversample < 1)
-      st->oversample = 1;
-  } else {
-    /* up-sampling */
-    st->cutoff = quality_map[st->quality].upsample_bandwidth;
-  }
-
-  /* Choose the resampling type that requires the least amount of memory */
-  /* Or if the full sinc table is explicitely requested, use that */
-  if (st->use_full_sinc_table || (st->den_rate <= st->oversample)) {
-    spx_uint32_t i;
-    if (!st->sinc_table)
-      st->sinc_table =
-          (spx_word16_t *) speex_alloc (st->filt_len * st->den_rate *
-          sizeof (spx_word16_t));
-    else if (st->sinc_table_length < st->filt_len * st->den_rate) {
-      st->sinc_table =
-          (spx_word16_t *) speex_realloc (st->sinc_table,
-          st->filt_len * st->den_rate * sizeof (spx_word16_t));
-      st->sinc_table_length = st->filt_len * st->den_rate;
-    }
-    for (i = 0; i < st->den_rate; i++) {
-      spx_int32_t j;
-      for (j = 0; j < st->filt_len; j++) {
-        st->sinc_table[i * st->filt_len + j] =
-            sinc (st->cutoff, ((j - (spx_int32_t) st->filt_len / 2 + 1) -
-#ifdef DOUBLE_PRECISION
-                ((double) i) / st->den_rate), st->filt_len,
-#else
-                ((float) i) / st->den_rate), st->filt_len,
-#endif
-            quality_map[st->quality].window_func);
-      }
-    }
-#ifdef FIXED_POINT
-    st->resampler_ptr = resampler_basic_direct_single;
-#else
-#ifdef DOUBLE_PRECISION
-    st->resampler_ptr = resampler_basic_direct_double;
-#else
-    if (st->quality > 8)
-      st->resampler_ptr = resampler_basic_direct_double;
-    else
-      st->resampler_ptr = resampler_basic_direct_single;
-#endif
-#endif
-    /*fprintf (stderr, "resampler uses direct sinc table and normalised cutoff %f\n", cutoff); */
-  } else {
-    spx_int32_t i;
-    if (!st->sinc_table)
-      st->sinc_table =
-          (spx_word16_t *) speex_alloc ((st->filt_len * st->oversample +
-              8) * sizeof (spx_word16_t));
-    else if (st->sinc_table_length < st->filt_len * st->oversample + 8) {
-      st->sinc_table =
-          (spx_word16_t *) speex_realloc (st->sinc_table,
-          (st->filt_len * st->oversample + 8) * sizeof (spx_word16_t));
-      st->sinc_table_length = st->filt_len * st->oversample + 8;
-    }
-    for (i = -4; i < (spx_int32_t) (st->oversample * st->filt_len + 4); i++)
-      st->sinc_table[i + 4] =
-#ifdef DOUBLE_PRECISION
-          sinc (st->cutoff, (i / (double) st->oversample - st->filt_len / 2),
-#else
-          sinc (st->cutoff, (i / (float) st->oversample - st->filt_len / 2),
-#endif
-          st->filt_len, quality_map[st->quality].window_func);
-#ifdef FIXED_POINT
-    st->resampler_ptr = resampler_basic_interpolate_single;
-#else
-#ifdef DOUBLE_PRECISION
-    st->resampler_ptr = resampler_basic_interpolate_double;
-#else
-    if (st->quality > 8)
-      st->resampler_ptr = resampler_basic_interpolate_double;
-    else
-      st->resampler_ptr = resampler_basic_interpolate_single;
-#endif
-#endif
-    /*fprintf (stderr, "resampler uses interpolated sinc table and normalised cutoff %f\n", cutoff); */
-  }
-  st->int_advance = st->num_rate / st->den_rate;
-  st->frac_advance = st->num_rate % st->den_rate;
-
-
-  /* Here's the place where we update the filter memory to take into account
-     the change in filter length. It's probably the messiest part of the code
-     due to handling of lots of corner cases. */
-  if (!st->mem) {
-    spx_uint32_t i;
-    st->mem_alloc_size = st->filt_len - 1 + st->buffer_size;
-    st->mem =
-        (spx_word16_t *) speex_alloc (st->nb_channels * st->mem_alloc_size *
-        sizeof (spx_word16_t));
-    for (i = 0; i < st->nb_channels * st->mem_alloc_size; i++)
-      st->mem[i] = 0;
-    /*speex_warning("init filter"); */
-  } else if (!st->started) {
-    spx_uint32_t i;
-    st->mem_alloc_size = st->filt_len - 1 + st->buffer_size;
-    st->mem =
-        (spx_word16_t *) speex_realloc (st->mem,
-        st->nb_channels * st->mem_alloc_size * sizeof (spx_word16_t));
-    for (i = 0; i < st->nb_channels * st->mem_alloc_size; i++)
-      st->mem[i] = 0;
-    /*speex_warning("reinit filter"); */
-  } else if (st->filt_len > old_length) {
-    spx_int32_t i;
-    /* Increase the filter length */
-    /*speex_warning("increase filter size"); */
-    int old_alloc_size = st->mem_alloc_size;
-    if ((st->filt_len - 1 + st->buffer_size) > st->mem_alloc_size) {
-      st->mem_alloc_size = st->filt_len - 1 + st->buffer_size;
-      st->mem =
-          (spx_word16_t *) speex_realloc (st->mem,
-          st->nb_channels * st->mem_alloc_size * sizeof (spx_word16_t));
-    }
-    for (i = st->nb_channels - 1; i >= 0; i--) {
-      spx_int32_t j;
-      spx_uint32_t olen = old_length;
-      /*if (st->magic_samples[i]) */
-      {
-        /* Try and remove the magic samples as if nothing had happened */
-
-        /* FIXME: This is wrong but for now we need it to avoid going over the array bounds */
-        olen = old_length + 2 * st->magic_samples[i];
-        for (j = old_length - 2 + st->magic_samples[i]; j >= 0; j--)
-          st->mem[i * st->mem_alloc_size + j + st->magic_samples[i]] =
-              st->mem[i * old_alloc_size + j];
-        for (j = 0; j < st->magic_samples[i]; j++)
-          st->mem[i * st->mem_alloc_size + j] = 0;
-        st->magic_samples[i] = 0;
-      }
-      if (st->filt_len > olen) {
-        /* If the new filter length is still bigger than the "augmented" length */
-        /* Copy data going backward */
-        for (j = 0; j < olen - 1; j++)
-          st->mem[i * st->mem_alloc_size + (st->filt_len - 2 - j)] =
-              st->mem[i * st->mem_alloc_size + (olen - 2 - j)];
-        /* Then put zeros for lack of anything better */
-        for (; j < st->filt_len - 1; j++)
-          st->mem[i * st->mem_alloc_size + (st->filt_len - 2 - j)] = 0;
-        /* Adjust last_sample */
-        st->last_sample[i] += (st->filt_len - olen) / 2;
-      } else {
-        /* Put back some of the magic! */
-        st->magic_samples[i] = (olen - st->filt_len) / 2;
-        for (j = 0; j < st->filt_len - 1 + st->magic_samples[i]; j++)
-          st->mem[i * st->mem_alloc_size + j] =
-              st->mem[i * st->mem_alloc_size + j + st->magic_samples[i]];
-      }
-    }
-  } else if (st->filt_len < old_length) {
-    spx_uint32_t i;
-    /* Reduce filter length, this a bit tricky. We need to store some of the memory as "magic"
-       samples so they can be used directly as input the next time(s) */
-    for (i = 0; i < st->nb_channels; i++) {
-      spx_uint32_t j;
-      spx_uint32_t old_magic = st->magic_samples[i];
-      st->magic_samples[i] = (old_length - st->filt_len) / 2;
-      /* We must copy some of the memory that's no longer used */
-      /* Copy data going backward */
-      for (j = 0; j < st->filt_len - 1 + st->magic_samples[i] + old_magic; j++)
-        st->mem[i * st->mem_alloc_size + j] =
-            st->mem[i * st->mem_alloc_size + j + st->magic_samples[i]];
-      st->magic_samples[i] += old_magic;
-    }
-  }
-
-}
-
-EXPORT SpeexResamplerState *
-speex_resampler_init (spx_uint32_t nb_channels, spx_uint32_t in_rate,
-    spx_uint32_t out_rate, int quality,
-    SpeexResamplerSincFilterMode sinc_filter_mode,
-    spx_uint32_t sinc_filter_auto_threshold, int *err)
-{
-  return speex_resampler_init_frac (nb_channels, in_rate, out_rate, in_rate,
-      out_rate, quality, sinc_filter_mode, sinc_filter_auto_threshold, err);
-}
-
-#if defined HAVE_ORC && !defined DISABLE_ORC
-static void
-check_insn_set (SpeexResamplerState * st, const char *name)
-{
-  if (!name)
-    return;
-#ifdef _USE_SSE
-  if (!strcmp (name, "sse"))
-    st->use_sse = 1;
-#endif
-#ifdef _USE_SSE2
-  if (!strcmp (name, "sse2"))
-    st->use_sse = st->use_sse2 = 1;
-#endif
-#ifdef _USE_NEON
-  if (!strcmp (name, "neon"))
-    st->use_neon = 1;
-#endif
-}
-#endif
-
-EXPORT SpeexResamplerState *
-speex_resampler_init_frac (spx_uint32_t nb_channels, spx_uint32_t ratio_num,
-    spx_uint32_t ratio_den, spx_uint32_t in_rate, spx_uint32_t out_rate,
-    int quality, SpeexResamplerSincFilterMode sinc_filter_mode,
-    spx_uint32_t sinc_filter_auto_threshold, int *err)
-{
-  spx_uint32_t i;
-  SpeexResamplerState *st;
-  int use_full_sinc_table = 0;
-  if (quality > 10 || quality < 0) {
-    if (err)
-      *err = RESAMPLER_ERR_INVALID_ARG;
-    return NULL;
-  }
-  if (ratio_den == 0) {
-    if (err)
-      *err = RESAMPLER_ERR_INVALID_ARG;
-    return NULL;
-  }
-  switch (sinc_filter_mode) {
-    case RESAMPLER_SINC_FILTER_INTERPOLATED:
-      use_full_sinc_table = 0;
-      break;
-    case RESAMPLER_SINC_FILTER_FULL:
-      use_full_sinc_table = 1;
-      break;
-    case RESAMPLER_SINC_FILTER_AUTO:
-      /* Handled below */
-      break;
-    default:
-      if (err)
-        *err = RESAMPLER_ERR_INVALID_ARG;
-      return NULL;
-  }
-
-  st = (SpeexResamplerState *) speex_alloc (sizeof (SpeexResamplerState));
-  st->initialised = 0;
-  st->started = 0;
-  st->in_rate = 0;
-  st->out_rate = 0;
-  st->num_rate = 0;
-  st->den_rate = 0;
-  st->quality = -1;
-  st->sinc_table_length = 0;
-  st->mem_alloc_size = 0;
-  st->filt_len = 0;
-  st->mem = 0;
-  st->resampler_ptr = 0;
-  st->use_full_sinc_table = use_full_sinc_table;
-
-  st->cutoff = 1.f;
-  st->nb_channels = nb_channels;
-  st->in_stride = 1;
-  st->out_stride = 1;
-
-#ifdef FIXED_POINT
-  st->buffer_size = 160;
-#else
-  st->buffer_size = 160;
-#endif
-
-  st->use_sse = st->use_sse2 = 0;
-  st->use_neon = 0;
-#if defined HAVE_ORC && !defined DISABLE_ORC
-  orc_init ();
-  {
-    OrcTarget *target = orc_target_get_default ();
-    if (target) {
-      unsigned int flags = orc_target_get_default_flags (target);
-      check_insn_set (st, orc_target_get_name (target));
-      for (i = 0; i < 32; ++i) {
-        if (flags & (1U << i)) {
-          check_insn_set (st, orc_target_get_flag_name (target, i));
-        }
-      }
-    }
-  }
-#endif
-
-  /* Per channel data */
-  st->last_sample = (spx_int32_t *) speex_alloc (nb_channels * sizeof (int));
-  st->magic_samples = (spx_uint32_t *) speex_alloc (nb_channels * sizeof (int));
-  st->samp_frac_num = (spx_uint32_t *) speex_alloc (nb_channels * sizeof (int));
-  for (i = 0; i < nb_channels; i++) {
-    st->last_sample[i] = 0;
-    st->magic_samples[i] = 0;
-    st->samp_frac_num[i] = 0;
-  }
-
-  speex_resampler_set_quality (st, quality);
-  speex_resampler_set_rate_frac (st, ratio_num, ratio_den, in_rate, out_rate);
-
-  if (sinc_filter_mode == RESAMPLER_SINC_FILTER_AUTO) {
-    /*
-       Estimate how big the filter table would become if the full mode were to be used
-       calculations used correspond to the ones in update_filter()
-       if the size is bigger than the threshold, use interpolated sinc instead
-     */
-    spx_uint32_t base_filter_length = st->filt_len =
-        quality_map[st->quality].base_length;
-    spx_uint32_t filter_table_size =
-        base_filter_length * st->den_rate * sizeof (spx_uint16_t);
-    st->use_full_sinc_table =
-        (filter_table_size > sinc_filter_auto_threshold) ? 0 : 1;
-  }
-
-  update_filter (st);
-
-  st->initialised = 1;
-  if (err)
-    *err = RESAMPLER_ERR_SUCCESS;
-
-  return st;
-}
-
-EXPORT void
-speex_resampler_destroy (SpeexResamplerState * st)
-{
-  speex_free (st->mem);
-  speex_free (st->sinc_table);
-  speex_free (st->last_sample);
-  speex_free (st->magic_samples);
-  speex_free (st->samp_frac_num);
-  speex_free (st);
-}
-
-static int
-speex_resampler_process_native (SpeexResamplerState * st,
-    spx_uint32_t channel_index, spx_uint32_t * in_len, spx_word16_t * out,
-    spx_uint32_t * out_len)
-{
-  int j = 0;
-  const int N = st->filt_len;
-  int out_sample = 0;
-  spx_word16_t *mem = st->mem + channel_index * st->mem_alloc_size;
-  spx_uint32_t ilen;
-
-  st->started = 1;
-
-  /* Call the right resampler through the function ptr */
-  out_sample = st->resampler_ptr (st, channel_index, mem, in_len, out, out_len);
-
-  if (st->last_sample[channel_index] < (spx_int32_t) * in_len)
-    *in_len = st->last_sample[channel_index];
-  *out_len = out_sample;
-  st->last_sample[channel_index] -= *in_len;
-
-  ilen = *in_len;
-
-  for (j = 0; j < N - 1; ++j)
-    mem[j] = mem[j + ilen];
-
-  return RESAMPLER_ERR_SUCCESS;
-}
-
-static int
-speex_resampler_magic (SpeexResamplerState * st, spx_uint32_t channel_index,
-    spx_word16_t ** out, spx_uint32_t out_len)
-{
-  spx_uint32_t tmp_in_len = st->magic_samples[channel_index];
-  spx_word16_t *mem = st->mem + channel_index * st->mem_alloc_size;
-  const int N = st->filt_len;
-
-  speex_resampler_process_native (st, channel_index, &tmp_in_len, *out,
-      &out_len);
-
-  st->magic_samples[channel_index] -= tmp_in_len;
-
-  /* If we couldn't process all "magic" input samples, save the rest for next time */
-  if (st->magic_samples[channel_index]) {
-    spx_uint32_t i;
-    for (i = 0; i < st->magic_samples[channel_index]; i++)
-      mem[N - 1 + i] = mem[N - 1 + i + tmp_in_len];
-  }
-  *out += out_len * st->out_stride;
-  return out_len;
-}
-
-#ifdef FIXED_POINT
-EXPORT int
-speex_resampler_process_int (SpeexResamplerState * st,
-    spx_uint32_t channel_index, const spx_int16_t * in, spx_uint32_t * in_len,
-    spx_int16_t * out, spx_uint32_t * out_len)
-#else
-#ifdef DOUBLE_PRECISION
-EXPORT int
-speex_resampler_process_float (SpeexResamplerState * st,
-    spx_uint32_t channel_index, const double *in, spx_uint32_t * in_len,
-    double *out, spx_uint32_t * out_len)
-#else
-EXPORT int
-speex_resampler_process_float (SpeexResamplerState * st,
-    spx_uint32_t channel_index, const float *in, spx_uint32_t * in_len,
-    float *out, spx_uint32_t * out_len)
-#endif
-#endif
-{
-  int j;
-  spx_uint32_t ilen = *in_len;
-  spx_uint32_t olen = *out_len;
-  spx_word16_t *x = st->mem + channel_index * st->mem_alloc_size;
-  const int filt_offs = st->filt_len - 1;
-  const spx_uint32_t xlen = st->mem_alloc_size - filt_offs;
-  const int istride = st->in_stride;
-
-  if (st->magic_samples[channel_index])
-    olen -= speex_resampler_magic (st, channel_index, &out, olen);
-  if (!st->magic_samples[channel_index]) {
-    while (ilen) {
-      spx_uint32_t ichunk = (ilen > xlen) ? xlen : ilen;
-      spx_uint32_t ochunk = olen;
-
-      if (in) {
-        for (j = 0; j < ichunk; ++j)
-          x[j + filt_offs] = in[j * istride];
-      } else {
-        for (j = 0; j < ichunk; ++j)
-          x[j + filt_offs] = 0;
-      }
-      speex_resampler_process_native (st, channel_index, &ichunk, out, &ochunk);
-      ilen -= ichunk;
-      olen -= ochunk;
-      out += ochunk * st->out_stride;
-      if (in)
-        in += ichunk * istride;
-      if (olen == 0 && ichunk == 0)
-        break;
-    }
-  }
-  *in_len -= ilen;
-  *out_len -= olen;
-  return RESAMPLER_ERR_SUCCESS;
-}
-
-#ifdef FIXED_POINT
-EXPORT int
-speex_resampler_process_float (SpeexResamplerState * st,
-    spx_uint32_t channel_index, const float *in, spx_uint32_t * in_len,
-    float *out, spx_uint32_t * out_len)
-#else
-EXPORT int
-speex_resampler_process_int (SpeexResamplerState * st,
-    spx_uint32_t channel_index, const spx_int16_t * in, spx_uint32_t * in_len,
-    spx_int16_t * out, spx_uint32_t * out_len)
-#endif
-{
-  int j;
-  const int istride_save = st->in_stride;
-  const int ostride_save = st->out_stride;
-  spx_uint32_t ilen = *in_len;
-  spx_uint32_t olen = *out_len;
-  spx_word16_t *x = st->mem + channel_index * st->mem_alloc_size;
-  const spx_uint32_t xlen = st->mem_alloc_size - (st->filt_len - 1);
-#ifdef VAR_ARRAYS
-  const unsigned int ylen =
-      (olen < FIXED_STACK_ALLOC) ? olen : FIXED_STACK_ALLOC;
-  VARDECL (spx_word16_t * ystack);
-  ALLOC (ystack, ylen, spx_word16_t);
-#else
-  const unsigned int ylen = FIXED_STACK_ALLOC;
-  spx_word16_t ystack[FIXED_STACK_ALLOC];
-#endif
-
-  st->out_stride = 1;
-
-  while (ilen) {
-    spx_word16_t *y = ystack;
-    spx_uint32_t ichunk = (ilen > xlen) ? xlen : ilen;
-    spx_uint32_t ochunk = (olen > ylen) ? ylen : olen;
-    spx_uint32_t omagic = 0;
-
-    if (st->magic_samples[channel_index]) {
-      omagic = speex_resampler_magic (st, channel_index, &y, ochunk);
-      ochunk -= omagic;
-      olen -= omagic;
-    }
-    if (!st->magic_samples[channel_index]) {
-      if (in) {
-        for (j = 0; j < ichunk; ++j)
-#ifdef FIXED_POINT
-          x[j + st->filt_len - 1] = WORD2INT (in[j * istride_save]);
-#else
-          x[j + st->filt_len - 1] = in[j * istride_save];
-#endif
-      } else {
-        for (j = 0; j < ichunk; ++j)
-          x[j + st->filt_len - 1] = 0;
-      }
-
-      speex_resampler_process_native (st, channel_index, &ichunk, y, &ochunk);
-    } else {
-      ichunk = 0;
-      ochunk = 0;
-    }
-
-    for (j = 0; j < ochunk + omagic; ++j)
-#ifdef FIXED_POINT
-      out[j * ostride_save] = ystack[j];
-#else
-      out[j * ostride_save] = WORD2INT (ystack[j]);
-#endif
-
-    ilen -= ichunk;
-    olen -= ochunk;
-    out += (ochunk + omagic) * ostride_save;
-    if (in)
-      in += ichunk * istride_save;
-    if (olen == 0 && ichunk == 0)
-      break;
-  }
-  st->out_stride = ostride_save;
-  *in_len -= ilen;
-  *out_len -= olen;
-
-  return RESAMPLER_ERR_SUCCESS;
-}
-
-#ifdef DOUBLE_PRECISION
-EXPORT int
-speex_resampler_process_interleaved_float (SpeexResamplerState * st,
-    const double *in, spx_uint32_t * in_len, double *out,
-    spx_uint32_t * out_len)
-#else
-EXPORT int
-speex_resampler_process_interleaved_float (SpeexResamplerState * st,
-    const float *in, spx_uint32_t * in_len, float *out, spx_uint32_t * out_len)
-#endif
-{
-  spx_uint32_t i;
-  int istride_save, ostride_save;
-  spx_uint32_t bak_len = *out_len;
-  istride_save = st->in_stride;
-  ostride_save = st->out_stride;
-  st->in_stride = st->out_stride = st->nb_channels;
-  for (i = 0; i < st->nb_channels; i++) {
-    *out_len = bak_len;
-    if (in != NULL)
-      speex_resampler_process_float (st, i, in + i, in_len, out + i, out_len);
-    else
-      speex_resampler_process_float (st, i, NULL, in_len, out + i, out_len);
-  }
-  st->in_stride = istride_save;
-  st->out_stride = ostride_save;
-  return RESAMPLER_ERR_SUCCESS;
-}
-
-EXPORT int
-speex_resampler_process_interleaved_int (SpeexResamplerState * st,
-    const spx_int16_t * in, spx_uint32_t * in_len, spx_int16_t * out,
-    spx_uint32_t * out_len)
-{
-  spx_uint32_t i;
-  int istride_save, ostride_save;
-  spx_uint32_t bak_len = *out_len;
-  istride_save = st->in_stride;
-  ostride_save = st->out_stride;
-  st->in_stride = st->out_stride = st->nb_channels;
-  for (i = 0; i < st->nb_channels; i++) {
-    *out_len = bak_len;
-    if (in != NULL)
-      speex_resampler_process_int (st, i, in + i, in_len, out + i, out_len);
-    else
-      speex_resampler_process_int (st, i, NULL, in_len, out + i, out_len);
-  }
-  st->in_stride = istride_save;
-  st->out_stride = ostride_save;
-  return RESAMPLER_ERR_SUCCESS;
-}
-
-EXPORT int
-speex_resampler_set_rate (SpeexResamplerState * st, spx_uint32_t in_rate,
-    spx_uint32_t out_rate)
-{
-  return speex_resampler_set_rate_frac (st, in_rate, out_rate, in_rate,
-      out_rate);
-}
-
-EXPORT void
-speex_resampler_get_rate (SpeexResamplerState * st, spx_uint32_t * in_rate,
-    spx_uint32_t * out_rate)
-{
-  *in_rate = st->in_rate;
-  *out_rate = st->out_rate;
-}
-
-EXPORT int
-speex_resampler_set_rate_frac (SpeexResamplerState * st, spx_uint32_t ratio_num,
-    spx_uint32_t ratio_den, spx_uint32_t in_rate, spx_uint32_t out_rate)
-{
-  spx_uint32_t fact;
-  spx_uint32_t old_den;
-  spx_uint32_t i;
-  if (st->in_rate == in_rate && st->out_rate == out_rate
-      && st->num_rate == ratio_num && st->den_rate == ratio_den)
-    return RESAMPLER_ERR_SUCCESS;
-
-  old_den = st->den_rate;
-  st->in_rate = in_rate;
-  st->out_rate = out_rate;
-  st->num_rate = ratio_num;
-  st->den_rate = ratio_den;
-  /* FIXME: This is terribly inefficient, but who cares (at least for now)? */
-  for (fact = 2; fact <= IMIN (st->num_rate, st->den_rate); fact++) {
-    while ((st->num_rate % fact == 0) && (st->den_rate % fact == 0)) {
-      st->num_rate /= fact;
-      st->den_rate /= fact;
-    }
-  }
-
-  if (old_den > 0) {
-    for (i = 0; i < st->nb_channels; i++) {
-      st->samp_frac_num[i] =
-          (gint64) st->samp_frac_num[i] * (gint64) st->den_rate / old_den;
-      /* Safety net */
-      if (st->samp_frac_num[i] >= st->den_rate)
-        st->samp_frac_num[i] = st->den_rate - 1;
-    }
-  }
-
-  if (st->initialised)
-    update_filter (st);
-  return RESAMPLER_ERR_SUCCESS;
-}
-
-EXPORT void
-speex_resampler_get_ratio (SpeexResamplerState * st, spx_uint32_t * ratio_num,
-    spx_uint32_t * ratio_den)
-{
-  *ratio_num = st->num_rate;
-  *ratio_den = st->den_rate;
-}
-
-EXPORT int
-speex_resampler_set_quality (SpeexResamplerState * st, int quality)
-{
-  if (quality > 10 || quality < 0)
-    return RESAMPLER_ERR_INVALID_ARG;
-  if (st->quality == quality)
-    return RESAMPLER_ERR_SUCCESS;
-  st->quality = quality;
-  if (st->initialised)
-    update_filter (st);
-  return RESAMPLER_ERR_SUCCESS;
-}
-
-EXPORT void
-speex_resampler_get_quality (SpeexResamplerState * st, int *quality)
-{
-  *quality = st->quality;
-}
-
-EXPORT void
-speex_resampler_set_input_stride (SpeexResamplerState * st, spx_uint32_t stride)
-{
-  st->in_stride = stride;
-}
-
-EXPORT void
-speex_resampler_get_input_stride (SpeexResamplerState * st,
-    spx_uint32_t * stride)
-{
-  *stride = st->in_stride;
-}
-
-EXPORT void
-speex_resampler_set_output_stride (SpeexResamplerState * st,
-    spx_uint32_t stride)
-{
-  st->out_stride = stride;
-}
-
-EXPORT void
-speex_resampler_get_output_stride (SpeexResamplerState * st,
-    spx_uint32_t * stride)
-{
-  *stride = st->out_stride;
-}
-
-EXPORT int
-speex_resampler_get_input_latency (SpeexResamplerState * st)
-{
-  return st->filt_len / 2;
-}
-
-EXPORT int
-speex_resampler_get_output_latency (SpeexResamplerState * st)
-{
-  return ((st->filt_len / 2) * st->den_rate +
-      (st->num_rate >> 1)) / st->num_rate;
-}
-
-EXPORT int
-speex_resampler_get_filt_len (SpeexResamplerState * st)
-{
-  return st->filt_len;
-}
-
-EXPORT int
-speex_resampler_get_sinc_filter_mode (SpeexResamplerState * st)
-{
-  return st->use_full_sinc_table;
-}
-
-EXPORT int
-speex_resampler_skip_zeros (SpeexResamplerState * st)
-{
-  spx_uint32_t i;
-  for (i = 0; i < st->nb_channels; i++)
-    st->last_sample[i] = st->filt_len / 2;
-  return RESAMPLER_ERR_SUCCESS;
-}
-
-EXPORT int
-speex_resampler_reset_mem (SpeexResamplerState * st)
-{
-  spx_uint32_t i;
-  for (i = 0; i < st->nb_channels * (st->filt_len - 1); i++)
-    st->mem[i] = 0;
-  return RESAMPLER_ERR_SUCCESS;
-}
-
-EXPORT const char *
-speex_resampler_strerror (int err)
-{
-  switch (err) {
-    case RESAMPLER_ERR_SUCCESS:
-      return "Success.";
-    case RESAMPLER_ERR_ALLOC_FAILED:
-      return "Memory allocation failed.";
-    case RESAMPLER_ERR_BAD_STATE:
-      return "Bad resampler state.";
-    case RESAMPLER_ERR_INVALID_ARG:
-      return "Invalid argument.";
-    case RESAMPLER_ERR_PTR_OVERLAP:
-      return "Input and output buffers overlap.";
-    default:
-      return "Unknown error. Bad error code or strange version mismatch.";
-  }
-}
diff --git a/gst/audioresample/resample_neon.h b/gst/audioresample/resample_neon.h
deleted file mode 100644
index 478488f..0000000
--- a/gst/audioresample/resample_neon.h
+++ /dev/null
@@ -1,202 +0,0 @@
-/* Copyright (C) 2007-2008 Jean-Marc Valin
- * Copyright (C) 2008 Thorvald Natvig
- * Copyright (C) 2011 Texas Instruments
- *               author Jyri Sarha
- */
-/**
-   @file resample_neon.h
-   @brief Resampler functions (NEON version)
-*/
-/*
-   Redistribution and use in source and binary forms, with or without
-   modification, are permitted provided that the following conditions
-   are met:
-
-   - Redistributions of source code must retain the above copyright
-   notice, this list of conditions and the following disclaimer.
-
-   - Redistributions in binary form must reproduce the above copyright
-   notice, this list of conditions and the following disclaimer in the
-   documentation and/or other materials provided with the distribution.
-
-   - Neither the name of the Xiph.org Foundation nor the names of its
-   contributors may be used to endorse or promote products derived from
-   this software without specific prior written permission.
-
-   THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-   ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-   LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-   A PARTICULAR PURPOSE ARE DISCLAIMED.  IN NO EVENT SHALL THE FOUNDATION OR
-   CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
-   EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
-   PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
-   PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
-   LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
-   NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
-   SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-*/
-
-#include <arm_neon.h>
-
-#ifdef FIXED_POINT
-#ifdef __thumb2__ 
-static inline int32_t saturate_32bit_to_16bit(int32_t a) {
-    int32_t ret;
-    asm ("ssat %[ret], #16, %[a]"
-         : [ret] "=&r" (ret)
-         : [a] "r" (a)
-         : );
-    return ret;
-}
-#else
-static inline int32_t saturate_32bit_to_16bit(int32_t a) {
-    int32_t ret;
-    asm ("vmov.s32 d0[0], %[a]\n"
-         "vqmovn.s32 d0, q0\n"
-         "vmov.s16 %[ret], d0[0]\n"
-         : [ret] "=&r" (ret)
-         : [a] "r" (a)
-         : "q0");
-    return ret;
-}
-#endif
-#undef WORD2INT
-#define WORD2INT(x) (saturate_32bit_to_16bit(x))
-
-#define OVERRIDE_INNER_PRODUCT_SINGLE
-/* Only works when len % 4 == 0 */
-static inline int32_t inner_product_single(const int16_t *a, const int16_t *b, unsigned int len)
-{
-    int32_t ret;
-    uint32_t remainder = len % 16;
-    len = len - remainder;
-
-    asm volatile ("	 cmp %[len], #0\n"
-		  "	 bne 1f\n"
-		  "	 vld1.16 {d16}, [%[b]]!\n"
-		  "	 vld1.16 {d20}, [%[a]]!\n"
-		  "	 subs %[remainder], %[remainder], #4\n"
-		  "	 vmull.s16 q0, d16, d20\n"
-		  "      beq 5f\n" 
-		  "	 b 4f\n"
-		  "1:"
-		  "	 vld1.16 {d16, d17, d18, d19}, [%[b]]!\n"
-		  "	 vld1.16 {d20, d21, d22, d23}, [%[a]]!\n"
-		  "	 subs %[len], %[len], #16\n"
-		  "	 vmull.s16 q0, d16, d20\n"
-		  "	 vmlal.s16 q0, d17, d21\n"
-		  "	 vmlal.s16 q0, d18, d22\n"
-		  "	 vmlal.s16 q0, d19, d23\n"
-		  "	 beq 3f\n"
-		  "2:"
-		  "	 vld1.16 {d16, d17, d18, d19}, [%[b]]!\n"
-		  "	 vld1.16 {d20, d21, d22, d23}, [%[a]]!\n"
-		  "	 subs %[len], %[len], #16\n"
-		  "	 vmlal.s16 q0, d16, d20\n"
-		  "	 vmlal.s16 q0, d17, d21\n"
-		  "	 vmlal.s16 q0, d18, d22\n"
-		  "	 vmlal.s16 q0, d19, d23\n"
-		  "	 bne 2b\n"
-		  "3:"
-		  "	 cmp %[remainder], #0\n"
-		  "	 beq 5f\n"
-		  "4:"
-		  "	 vld1.16 {d16}, [%[b]]!\n"
-		  "	 vld1.16 {d20}, [%[a]]!\n"
-		  "	 subs %[remainder], %[remainder], #4\n"
-		  "	 vmlal.s16 q0, d16, d20\n"
-		  "	 bne 4b\n"
-		  "5:"
-		  "	 vaddl.s32 q0, d0, d1\n"
-		  "	 vadd.s64 d0, d0, d1\n"
-		  "	 vqmovn.s64 d0, q0\n"
-		  "	 vqrshrn.s32 d0, q0, #15\n"
-		  "	 vmov.s16 %[ret], d0[0]\n"
-		  : [ret] "=&r" (ret), [a] "+r" (a), [b] "+r" (b),
-		    [len] "+r" (len), [remainder] "+r" (remainder)
-		  :
-		  : "cc", "q0",
-		    "d16", "d17", "d18", "d19",
-		    "d20", "d21", "d22", "d23");
-
-    return ret;
-}
-#elif defined(FLOATING_POINT)
-
-static inline int32_t saturate_float_to_16bit(float a) {
-    int32_t ret;
-    asm ("vmov.f32 d0[0], %[a]\n"
-         "vcvt.s32.f32 d0, d0, #15\n"
-         "vqrshrn.s32 d0, q0, #15\n"
-         "vmov.s16 %[ret], d0[0]\n"
-         : [ret] "=&r" (ret)
-         : [a] "r" (a)
-         : "q0");
-    return ret;
-}
-#undef WORD2INT
-#define WORD2INT(x) (saturate_float_to_16bit(x))
-
-#define OVERRIDE_INNER_PRODUCT_SINGLE
-/* Only works when len % 4 == 0 */
-static inline float inner_product_single(const float *a, const float *b, unsigned int len)
-{
-    float ret;
-    uint32_t remainder = len % 16;
-    len = len - remainder;
-
-    asm volatile ("	 cmp %[len], #0\n"
-		  "	 bne 1f\n"
-		  "	 vld1.32 {q4}, [%[b]]!\n"
-		  "	 vld1.32 {q8}, [%[a]]!\n"
-		  "	 subs %[remainder], %[remainder], #4\n"
-		  "	 vmul.f32 q0, q4, q8\n"
-		  "      bne 4f\n" 
-		  "	 b 5f\n"
-		  "1:"
-		  "	 vld1.32 {q4, q5}, [%[b]]!\n"
-		  "	 vld1.32 {q8, q9}, [%[a]]!\n"
-		  "	 vld1.32 {q6, q7}, [%[b]]!\n"
-		  "	 vld1.32 {q10, q11}, [%[a]]!\n"
-		  "	 subs %[len], %[len], #16\n"
-		  "	 vmul.f32 q0, q4, q8\n"
-		  "	 vmul.f32 q1, q5, q9\n"
-		  "	 vmul.f32 q2, q6, q10\n"
-		  "	 vmul.f32 q3, q7, q11\n"
-		  "	 beq 3f\n"
-		  "2:"
-		  "	 vld1.32 {q4, q5}, [%[b]]!\n"
-		  "	 vld1.32 {q8, q9}, [%[a]]!\n"
-		  "	 vld1.32 {q6, q7}, [%[b]]!\n"
-		  "	 vld1.32 {q10, q11}, [%[a]]!\n"
-		  "	 subs %[len], %[len], #16\n"
-		  "	 vmla.f32 q0, q4, q8\n"
-		  "	 vmla.f32 q1, q5, q9\n"
-		  "	 vmla.f32 q2, q6, q10\n"
-		  "	 vmla.f32 q3, q7, q11\n"
-		  "	 bne 2b\n"
-		  "3:"
-		  "	 vadd.f32 q4, q0, q1\n"
-		  "	 vadd.f32 q5, q2, q3\n"
-		  "	 cmp %[remainder], #0\n"
-		  "	 vadd.f32 q0, q4, q5\n"
-		  "	 beq 5f\n"
-		  "4:"
-		  "	 vld1.32 {q6}, [%[b]]!\n"
-		  "	 vld1.32 {q10}, [%[a]]!\n"
-		  "	 subs %[remainder], %[remainder], #4\n"
-		  "	 vmla.f32 q0, q6, q10\n"
-		  "	 bne 4b\n"
-		  "5:"
-		  "	 vadd.f32 d0, d0, d1\n"
-		  "	 vpadd.f32 d0, d0, d0\n"
-		  "	 vmov.f32 %[ret], d0[0]\n"
-		  : [ret] "=&r" (ret), [a] "+r" (a), [b] "+r" (b),
-		    [len] "+l" (len), [remainder] "+l" (remainder)
-		  :
-		  : "cc", "q0", "q1", "q2", "q3", "q4", "q5", "q6", "q7", "q8",
-                    "q9", "q10", "q11");
-    return ret;
-}
-#endif
-
diff --git a/gst/audioresample/resample_sse.h b/gst/audioresample/resample_sse.h
deleted file mode 100644
index 55d1f40..0000000
--- a/gst/audioresample/resample_sse.h
+++ /dev/null
@@ -1,229 +0,0 @@
-/* Copyright (C) 2007-2008 Jean-Marc Valin
- * Copyright (C) 2008 Thorvald Natvig
- */
-/**
-   @file resample_sse.h
-   @brief Resampler functions (SSE version)
-*/
-/*
-   Redistribution and use in source and binary forms, with or without
-   modification, are permitted provided that the following conditions
-   are met:
-   
-   - Redistributions of source code must retain the above copyright
-   notice, this list of conditions and the following disclaimer.
-   
-   - Redistributions in binary form must reproduce the above copyright
-   notice, this list of conditions and the following disclaimer in the
-   documentation and/or other materials provided with the distribution.
-   
-   - Neither the name of the Xiph.org Foundation nor the names of its
-   contributors may be used to endorse or promote products derived from
-   this software without specific prior written permission.
-   
-   THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-   ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-   LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-   A PARTICULAR PURPOSE ARE DISCLAIMED.  IN NO EVENT SHALL THE FOUNDATION OR
-   CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
-   EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
-   PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
-   PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
-   LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
-   NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
-   SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-*/
-
-#ifdef HAVE_XMMINTRIN_H
-#include <xmmintrin.h>
-#endif
-
-#define OVERRIDE_INNER_PRODUCT_SINGLE
-static inline float inner_product_single(const float *a, const float *b, unsigned int len)
-{
-   int i = 0;
-   float ret = 0;
-   __m128 sum = _mm_setzero_ps();
-
-   if (len > 7)
-   {
-      for (;i<len-7;i+=8)
-      {
-         sum = _mm_add_ps(sum, _mm_mul_ps(_mm_loadu_ps(a+i), _mm_loadu_ps(b+i)));
-         sum = _mm_add_ps(sum, _mm_mul_ps(_mm_loadu_ps(a+i+4), _mm_loadu_ps(b+i+4)));
-      }
-      sum = _mm_add_ps(sum, _mm_movehl_ps(sum, sum));
-      sum = _mm_add_ss(sum, _mm_shuffle_ps(sum, sum, 0x55));
-      _mm_store_ss(&ret, sum);
-   }
-
-   for (; i < len; i++)
-     ret += a[i] * b[i];
-
-   return ret;
-}
-
-#define OVERRIDE_INTERPOLATE_PRODUCT_SINGLE
-static inline float interpolate_product_single(const float *a, const float *b, unsigned int len, const spx_uint32_t oversample, float *frac) {
-  int i = 0;
-  float ret = 0;
-  __m128 sum = _mm_setzero_ps();
-  __m128 f = _mm_loadu_ps(frac);
-
-  if (len > 1)
-  {
-     for(;i<len-1;i+=2)
-     {
-        sum = _mm_add_ps(sum, _mm_mul_ps(_mm_load1_ps(a+i), _mm_loadu_ps(b+i*oversample)));
-        sum = _mm_add_ps(sum, _mm_mul_ps(_mm_load1_ps(a+i+1), _mm_loadu_ps(b+(i+1)*oversample)));
-     }
-
-     sum = _mm_mul_ps(f, sum);
-     sum = _mm_add_ps(sum, _mm_movehl_ps(sum, sum));
-     sum = _mm_add_ss(sum, _mm_shuffle_ps(sum, sum, 0x55));
-     _mm_store_ss(&ret, sum);
-  }
-
-  if (i == len-1)
-    ret += a[i] * (frac[0]*b[i*oversample] + frac[1]*b[i*oversample + 1] + frac[2]*b[i*oversample + 2] + frac[3]*b[i*oversample + 3]);
-
-  return ret;
-}
-
-#ifdef _USE_SSE2
-#ifdef HAVE_EMMINTRIN_H
-#include <emmintrin.h>
-#endif
-#define OVERRIDE_INNER_PRODUCT_DOUBLE
-
-#ifdef DOUBLE_PRECISION
-static inline double inner_product_double(const double *a, const double *b, unsigned int len)
-{
-   int i = 0;
-   double ret = 0;
-   __m128d sum = _mm_setzero_pd();
-
-   if (len > 3)
-   {
-      for (;i<len-3;i+=4)
-      {
-         sum = _mm_add_pd(sum, _mm_mul_pd(_mm_loadu_pd(a+i), _mm_loadu_pd(b+i)));
-         sum = _mm_add_pd(sum, _mm_mul_pd(_mm_loadu_pd(a+i+2), _mm_loadu_pd(b+i+2)));
-      }
-      sum = _mm_add_sd(sum, _mm_unpackhi_pd(sum, sum));
-      _mm_store_sd(&ret, sum);
-   }
-
-   for (; i < len; i++)
-     ret += a[i] * b[i];
-
-   return ret;
-}
-#else
-static inline double inner_product_double(const float *a, const float *b, unsigned int len)
-{
-   int i = 0;
-   double ret = 0;
-   __m128d sum = _mm_setzero_pd();
-   __m128 t;
-
-   if (len > 7)
-   {
-      for (;i<len-7;i+=8)
-      {
-         t = _mm_mul_ps(_mm_loadu_ps(a+i), _mm_loadu_ps(b+i));
-         sum = _mm_add_pd(sum, _mm_cvtps_pd(t));
-         sum = _mm_add_pd(sum, _mm_cvtps_pd(_mm_movehl_ps(t, t)));
-
-         t = _mm_mul_ps(_mm_loadu_ps(a+i+4), _mm_loadu_ps(b+i+4));
-         sum = _mm_add_pd(sum, _mm_cvtps_pd(t));
-         sum = _mm_add_pd(sum, _mm_cvtps_pd(_mm_movehl_ps(t, t)));
-      }
-      sum = _mm_add_sd(sum, _mm_unpackhi_pd(sum, sum));
-      _mm_store_sd(&ret, sum);
-   }
-
-   for (; i < len; i++)
-     ret += a[i] * b[i];
-
-   return ret;
-}
-#endif
-
-
-#define OVERRIDE_INTERPOLATE_PRODUCT_DOUBLE
-
-#ifdef DOUBLE_PRECISION
-static inline double interpolate_product_double(const double *a, const double *b, unsigned int len, const spx_uint32_t oversample, double *frac) {
-  int i = 0;
-  double ret = 0;
-  __m128d sum;
-  __m128d sum1 = _mm_setzero_pd();
-  __m128d sum2 = _mm_setzero_pd();
-  __m128d f1 = _mm_loadu_pd(frac);
-  __m128d f2 = _mm_loadu_pd(frac+2);
-  __m128d t;
-  
-  if (len > 1)
-  {
-     for(;i<len-1;i+=2)
-     {
-       t = _mm_load1_pd(a+i);
-       sum1 = _mm_add_pd(sum1, _mm_mul_pd(t, _mm_loadu_pd(b+i*oversample)));
-       sum2 = _mm_add_pd(sum2, _mm_mul_pd(t, _mm_loadu_pd(b+i*oversample+2)));
-
-       t = _mm_load1_pd(a+i+1);
-       sum1 = _mm_add_pd(sum1, _mm_mul_pd(t, _mm_loadu_pd(b+(i+1)*oversample)));
-       sum2 = _mm_add_pd(sum2, _mm_mul_pd(t, _mm_loadu_pd(b+(i+1)*oversample+2)));
-     }
-     sum1 = _mm_mul_pd(f1, sum1);
-     sum2 = _mm_mul_pd(f2, sum2);
-     sum = _mm_add_pd(sum1, sum2);
-     sum = _mm_add_sd(sum, _mm_unpackhi_pd(sum, sum));
-     _mm_store_sd(&ret, sum);
-  }
-
-  if (i == len-1)
-    ret += a[i] * (frac[0]*b[i*oversample] + frac[1]*b[i*oversample + 1] + frac[2]*b[i*oversample + 2] + frac[3]*b[i*oversample + 3]);
-
-  return ret;
-}
-#else
-static inline double interpolate_product_double(const float *a, const float *b, unsigned int len, const spx_uint32_t oversample, float *frac) {
-  int i = 0;
-  double ret = 0;
-  __m128d sum;
-  __m128d sum1 = _mm_setzero_pd();
-  __m128d sum2 = _mm_setzero_pd();
-  __m128 f = _mm_loadu_ps(frac);
-  __m128d f1 = _mm_cvtps_pd(f);
-  __m128d f2 = _mm_cvtps_pd(_mm_movehl_ps(f,f));
-  __m128 t;
-
-  if (len > 1)
-  {
-     for(;i<len-1;i+=2)
-     {
-        t = _mm_mul_ps(_mm_load1_ps(a+i), _mm_loadu_ps(b+i*oversample));
-        sum1 = _mm_add_pd(sum1, _mm_cvtps_pd(t));
-        sum2 = _mm_add_pd(sum2, _mm_cvtps_pd(_mm_movehl_ps(t, t)));
-
-        t = _mm_mul_ps(_mm_load1_ps(a+i+1), _mm_loadu_ps(b+(i+1)*oversample));
-        sum1 = _mm_add_pd(sum1, _mm_cvtps_pd(t));
-        sum2 = _mm_add_pd(sum2, _mm_cvtps_pd(_mm_movehl_ps(t, t)));
-     }
-     sum1 = _mm_mul_pd(f1, sum1);
-     sum2 = _mm_mul_pd(f2, sum2);
-     sum = _mm_add_pd(sum1, sum2);
-     sum = _mm_add_sd(sum, _mm_unpackhi_pd(sum, sum));
-     _mm_store_sd(&ret, sum);
-  }
-
-  if (i == len-1)
-    ret += a[i] * (frac[0]*b[i*oversample] + frac[1]*b[i*oversample + 1] + frac[2]*b[i*oversample + 2] + frac[3]*b[i*oversample + 3]);
-
-  return ret;
-}
-#endif
-
-#endif
diff --git a/gst/audioresample/speex_resampler.h b/gst/audioresample/speex_resampler.h
deleted file mode 100644
index b9aaa2c..0000000
--- a/gst/audioresample/speex_resampler.h
+++ /dev/null
@@ -1,403 +0,0 @@
-/* Copyright (C) 2007 Jean-Marc Valin
-      
-   File: speex_resampler.h
-   Resampling code
-      
-   The design goals of this code are:
-      - Very fast algorithm
-      - Low memory requirement
-      - Good *perceptual* quality (and not best SNR)
-
-   Redistribution and use in source and binary forms, with or without
-   modification, are permitted provided that the following conditions are
-   met:
-
-   1. Redistributions of source code must retain the above copyright notice,
-   this list of conditions and the following disclaimer.
-
-   2. Redistributions in binary form must reproduce the above copyright
-   notice, this list of conditions and the following disclaimer in the
-   documentation and/or other materials provided with the distribution.
-
-   3. The name of the author may not be used to endorse or promote products
-   derived from this software without specific prior written permission.
-
-   THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
-   IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
-   OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
-   DISCLAIMED. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT,
-   INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
-   (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
-   SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
-   HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
-   STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN
-   ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-   POSSIBILITY OF SUCH DAMAGE.
-*/
-
-
-#ifndef SPEEX_RESAMPLER_H
-#define SPEEX_RESAMPLER_H
-
-#ifdef OUTSIDE_SPEEX
-
-/********* WARNING: MENTAL SANITY ENDS HERE *************/
-
-/* If the resampler is defined outside of Speex, we change the symbol names so that 
-   there won't be any clash if linking with Speex later on. */
-
-/* #define RANDOM_PREFIX your software name here */
-#ifndef RANDOM_PREFIX
-#error "Please define RANDOM_PREFIX (above) to something specific to your project to prevent symbol name clashes"
-#endif
-
-#define CAT_PREFIX2(a,b) a ## b
-#define CAT_PREFIX(a,b) CAT_PREFIX2(a, b)
-      
-#define speex_resampler_init CAT_PREFIX(RANDOM_PREFIX,_resampler_init)
-#define speex_resampler_init_frac CAT_PREFIX(RANDOM_PREFIX,_resampler_init_frac)
-#define speex_resampler_destroy CAT_PREFIX(RANDOM_PREFIX,_resampler_destroy)
-#define speex_resampler_process_float CAT_PREFIX(RANDOM_PREFIX,_resampler_process_float)
-#define speex_resampler_process_int CAT_PREFIX(RANDOM_PREFIX,_resampler_process_int)
-#define speex_resampler_process_interleaved_float CAT_PREFIX(RANDOM_PREFIX,_resampler_process_interleaved_float)
-#define speex_resampler_process_interleaved_int CAT_PREFIX(RANDOM_PREFIX,_resampler_process_interleaved_int)
-#define speex_resampler_set_rate CAT_PREFIX(RANDOM_PREFIX,_resampler_set_rate)
-#define speex_resampler_get_rate CAT_PREFIX(RANDOM_PREFIX,_resampler_get_rate)
-#define speex_resampler_set_rate_frac CAT_PREFIX(RANDOM_PREFIX,_resampler_set_rate_frac)
-#define speex_resampler_get_ratio CAT_PREFIX(RANDOM_PREFIX,_resampler_get_ratio)
-#define speex_resampler_set_quality CAT_PREFIX(RANDOM_PREFIX,_resampler_set_quality)
-#define speex_resampler_get_quality CAT_PREFIX(RANDOM_PREFIX,_resampler_get_quality)
-#define speex_resampler_set_input_stride CAT_PREFIX(RANDOM_PREFIX,_resampler_set_input_stride)
-#define speex_resampler_get_input_stride CAT_PREFIX(RANDOM_PREFIX,_resampler_get_input_stride)
-#define speex_resampler_set_output_stride CAT_PREFIX(RANDOM_PREFIX,_resampler_set_output_stride)
-#define speex_resampler_get_output_stride CAT_PREFIX(RANDOM_PREFIX,_resampler_get_output_stride)
-#define speex_resampler_get_input_latency CAT_PREFIX(RANDOM_PREFIX,_resampler_get_input_latency)
-#define speex_resampler_get_output_latency CAT_PREFIX(RANDOM_PREFIX,_resampler_get_output_latency)
-#define speex_resampler_get_filt_len CAT_PREFIX(RANDOM_PREFIX,_resampler_get_filt_len)
-#define speex_resampler_get_sinc_filter_mode CAT_PREFIX(RANDOM_PREFIX,_resampler_get_sinc_filter_mode)
-#define speex_resampler_skip_zeros CAT_PREFIX(RANDOM_PREFIX,_resampler_skip_zeros)
-#define speex_resampler_reset_mem CAT_PREFIX(RANDOM_PREFIX,_resampler_reset_mem)
-#define speex_resampler_strerror CAT_PREFIX(RANDOM_PREFIX,_resampler_strerror)
-
-#define spx_int16_t gint16
-#define spx_int32_t gint32
-#define spx_uint16_t guint16
-#define spx_uint32_t guint32
-      
-#else /* OUTSIDE_SPEEX */
-
-#ifdef _BUILD_SPEEX
-# include "speex_types.h"
-#else
-# include <speex/speex_types.h>
-#endif
-
-#endif /* OUTSIDE_SPEEX */
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-#define SPEEX_RESAMPLER_QUALITY_MAX 10
-#define SPEEX_RESAMPLER_QUALITY_MIN 0
-#define SPEEX_RESAMPLER_QUALITY_DEFAULT 4
-#define SPEEX_RESAMPLER_QUALITY_VOIP 3
-#define SPEEX_RESAMPLER_QUALITY_DESKTOP 5
-
-enum {
-   RESAMPLER_ERR_SUCCESS         = 0,
-   RESAMPLER_ERR_ALLOC_FAILED    = 1,
-   RESAMPLER_ERR_BAD_STATE       = 2,
-   RESAMPLER_ERR_INVALID_ARG     = 3,
-   RESAMPLER_ERR_PTR_OVERLAP     = 4,
-   
-   RESAMPLER_ERR_MAX_ERROR
-};
-
-typedef enum {
-   RESAMPLER_SINC_FILTER_INTERPOLATED   = 0,
-   RESAMPLER_SINC_FILTER_FULL           = 1,
-   RESAMPLER_SINC_FILTER_AUTO           = 2
-} SpeexResamplerSincFilterMode;
-
-#define RESAMPLER_SINC_FILTER_DEFAULT RESAMPLER_SINC_FILTER_INTERPOLATED
-#define RESAMPLER_SINC_FILTER_AUTO_THRESHOLD_DEFAULT (1 * 1048576)
-
-struct SpeexResamplerState_;
-typedef struct SpeexResamplerState_ SpeexResamplerState;
-
-/** Create a new resampler with integer input and output rates.
- * @param nb_channels Number of channels to be processed
- * @param in_rate Input sampling rate (integer number of Hz).
- * @param out_rate Output sampling rate (integer number of Hz).
- * @param quality Resampling quality between 0 and 10, where 0 has poor quality
- * and 10 has very high quality.
- * @param sinc_filter_mode Sinc filter table mode to use
- * @param sinc_filter_auto_threshold Threshold to use if sinc filter mode is auto, in bytes
- * @return Newly created resampler state
- * @retval NULL Error: not enough memory
- *
- * If a full filter table would be larger than the auto threshold, and sinc_filter_mode is AUTO,
- * the resample uses the interpolated mode instead
- *
- * @note A full sinc table can significantly improve the resampler's performance, but calculating the table
- * takes longer, as opposed to the interpolated variant
- */
-SpeexResamplerState *speex_resampler_init(spx_uint32_t nb_channels, 
-                                          spx_uint32_t in_rate, 
-                                          spx_uint32_t out_rate, 
-                                          int quality,
-                                          SpeexResamplerSincFilterMode sinc_filter_mode,
-                                          spx_uint32_t sinc_filter_auto_threshold,
-                                          int *err);
-
-/** Create a new resampler with fractional input/output rates. The sampling 
- * rate ratio is an arbitrary rational number with both the numerator and 
- * denominator being 32-bit integers.
- * @param nb_channels Number of channels to be processed
- * @param ratio_num Numerator of the sampling rate ratio
- * @param ratio_den Denominator of the sampling rate ratio
- * @param in_rate Input sampling rate rounded to the nearest integer (in Hz).
- * @param out_rate Output sampling rate rounded to the nearest integer (in Hz).
- * @param quality Resampling quality between 0 and 10, where 0 has poor quality
- * and 10 has very high quality.
- * @param sinc_filter_mode Sinc filter table mode to use
- * @param sinc_filter_auto_threshold Threshold to use if sinc filter mode is auto, in bytes
- * @return Newly created resampler state
- * @retval NULL Error: not enough memory
- *
- * If a full filter table would be larger than the auto threshold, and sinc_filter_mode is AUTO,
- * the resample uses the interpolated mode instead
- *
- * @note A full sinc table can significantly improve the resampler's performance, but calculating the table
- * takes longer, as opposed to the interpolated variant
- */
-SpeexResamplerState *speex_resampler_init_frac(spx_uint32_t nb_channels, 
-                                               spx_uint32_t ratio_num, 
-                                               spx_uint32_t ratio_den, 
-                                               spx_uint32_t in_rate, 
-                                               spx_uint32_t out_rate, 
-                                               int quality,
-                                               SpeexResamplerSincFilterMode sinc_filter_mode,
-                                               spx_uint32_t sinc_filter_auto_threshold,
-                                               int *err);
-
-/** Destroy a resampler state.
- * @param st Resampler state
- */
-void speex_resampler_destroy(SpeexResamplerState *st);
-
-/** Resample a float array. The input and output buffers must *not* overlap.
- * @param st Resampler state
- * @param channel_index Index of the channel to process for the multi-channel 
- * base (0 otherwise)
- * @param in Input buffer
- * @param in_len Number of input samples in the input buffer. Returns the 
- * number of samples processed
- * @param out Output buffer
- * @param out_len Size of the output buffer. Returns the number of samples written
- */
-#ifdef DOUBLE_PRECISION
-int speex_resampler_process_float(SpeexResamplerState *st, 
-                                   spx_uint32_t channel_index, 
-                                   const double *in, 
-                                   spx_uint32_t *in_len, 
-                                   double *out, 
-                                   spx_uint32_t *out_len);
-#else
-int speex_resampler_process_float(SpeexResamplerState *st, 
-                                   spx_uint32_t channel_index, 
-                                   const float *in, 
-                                   spx_uint32_t *in_len, 
-                                   float *out, 
-                                   spx_uint32_t *out_len);
-#endif
-
-/** Resample an int array. The input and output buffers must *not* overlap.
- * @param st Resampler state
- * @param channel_index Index of the channel to process for the multi-channel 
- * base (0 otherwise)
- * @param in Input buffer
- * @param in_len Number of input samples in the input buffer. Returns the number
- * of samples processed
- * @param out Output buffer
- * @param out_len Size of the output buffer. Returns the number of samples written
- */
-int speex_resampler_process_int(SpeexResamplerState *st, 
-                                 spx_uint32_t channel_index, 
-                                 const spx_int16_t *in, 
-                                 spx_uint32_t *in_len, 
-                                 spx_int16_t *out, 
-                                 spx_uint32_t *out_len);
-
-/** Resample an interleaved float array. The input and output buffers must *not* overlap.
- * @param st Resampler state
- * @param in Input buffer
- * @param in_len Number of input samples in the input buffer. Returns the number
- * of samples processed. This is all per-channel.
- * @param out Output buffer
- * @param out_len Size of the output buffer. Returns the number of samples written.
- * This is all per-channel.
- */
-#ifdef DOUBLE_PRECISION
-int speex_resampler_process_interleaved_float(SpeexResamplerState *st, 
-                                               const double *in, 
-                                               spx_uint32_t *in_len, 
-                                               double *out, 
-                                               spx_uint32_t *out_len);
-#else
-int speex_resampler_process_interleaved_float(SpeexResamplerState *st, 
-                                               const float *in, 
-                                               spx_uint32_t *in_len, 
-                                               float *out, 
-                                               spx_uint32_t *out_len);
-#endif
-
-/** Resample an interleaved int array. The input and output buffers must *not* overlap.
- * @param st Resampler state
- * @param in Input buffer
- * @param in_len Number of input samples in the input buffer. Returns the number
- * of samples processed. This is all per-channel.
- * @param out Output buffer
- * @param out_len Size of the output buffer. Returns the number of samples written.
- * This is all per-channel.
- */
-int speex_resampler_process_interleaved_int(SpeexResamplerState *st, 
-                                             const spx_int16_t *in, 
-                                             spx_uint32_t *in_len, 
-                                             spx_int16_t *out, 
-                                             spx_uint32_t *out_len);
-
-/** Set (change) the input/output sampling rates (integer value).
- * @param st Resampler state
- * @param in_rate Input sampling rate (integer number of Hz).
- * @param out_rate Output sampling rate (integer number of Hz).
- */
-int speex_resampler_set_rate(SpeexResamplerState *st, 
-                              spx_uint32_t in_rate, 
-                              spx_uint32_t out_rate);
-
-/** Get the current input/output sampling rates (integer value).
- * @param st Resampler state
- * @param in_rate Input sampling rate (integer number of Hz) copied.
- * @param out_rate Output sampling rate (integer number of Hz) copied.
- */
-void speex_resampler_get_rate(SpeexResamplerState *st, 
-                              spx_uint32_t *in_rate, 
-                              spx_uint32_t *out_rate);
-
-/** Set (change) the input/output sampling rates and resampling ratio 
- * (fractional values in Hz supported).
- * @param st Resampler state
- * @param ratio_num Numerator of the sampling rate ratio
- * @param ratio_den Denominator of the sampling rate ratio
- * @param in_rate Input sampling rate rounded to the nearest integer (in Hz).
- * @param out_rate Output sampling rate rounded to the nearest integer (in Hz).
- */
-int speex_resampler_set_rate_frac(SpeexResamplerState *st, 
-                                   spx_uint32_t ratio_num, 
-                                   spx_uint32_t ratio_den, 
-                                   spx_uint32_t in_rate, 
-                                   spx_uint32_t out_rate);
-
-/** Get the current resampling ratio. This will be reduced to the least
- * common denominator.
- * @param st Resampler state
- * @param ratio_num Numerator of the sampling rate ratio copied
- * @param ratio_den Denominator of the sampling rate ratio copied
- */
-void speex_resampler_get_ratio(SpeexResamplerState *st, 
-                               spx_uint32_t *ratio_num, 
-                               spx_uint32_t *ratio_den);
-
-/** Set (change) the conversion quality.
- * @param st Resampler state
- * @param quality Resampling quality between 0 and 10, where 0 has poor 
- * quality and 10 has very high quality.
- */
-int speex_resampler_set_quality(SpeexResamplerState *st, 
-                                 int quality);
-
-/** Get the conversion quality.
- * @param st Resampler state
- * @param quality Resampling quality between 0 and 10, where 0 has poor 
- * quality and 10 has very high quality.
- */
-void speex_resampler_get_quality(SpeexResamplerState *st, 
-                                 int *quality);
-
-/** Set (change) the input stride.
- * @param st Resampler state
- * @param stride Input stride
- */
-void speex_resampler_set_input_stride(SpeexResamplerState *st, 
-                                      spx_uint32_t stride);
-
-/** Get the input stride.
- * @param st Resampler state
- * @param stride Input stride copied
- */
-void speex_resampler_get_input_stride(SpeexResamplerState *st, 
-                                      spx_uint32_t *stride);
-
-/** Set (change) the output stride.
- * @param st Resampler state
- * @param stride Output stride
- */
-void speex_resampler_set_output_stride(SpeexResamplerState *st, 
-                                      spx_uint32_t stride);
-
-/** Get the output stride.
- * @param st Resampler state copied
- * @param stride Output stride
- */
-void speex_resampler_get_output_stride(SpeexResamplerState *st, 
-                                      spx_uint32_t *stride);
-
-/** Get the latency introduced by the resampler measured in input samples.
- * @param st Resampler state
- */
-int speex_resampler_get_input_latency(SpeexResamplerState *st);
-
-/** Get the latency introduced by the resampler measured in output samples.
- * @param st Resampler state
- */
-int speex_resampler_get_output_latency(SpeexResamplerState *st);
-
-/** Get the length of the filter in input samples.
- * @param st Resampler state
- */
-int speex_resampler_get_filt_len(SpeexResamplerState *st);
-
-/** Returns 1 if the full sinc filter table is used, 0 if the interpolated one is used
- * @param st Resampler state
- * @return Sinc filter mode
- */
-int speex_resampler_get_sinc_filter_mode(SpeexResamplerState *st);
-
-/** Make sure that the first samples to go out of the resamplers don't have 
- * leading zeros. This is only useful before starting to use a newly created 
- * resampler. It is recommended to use that when resampling an audio file, as
- * it will generate a file with the same length. For real-time processing,
- * it is probably easier not to use this call (so that the output duration
- * is the same for the first frame).
- * @param st Resampler state
- */
-int speex_resampler_skip_zeros(SpeexResamplerState *st);
-
-/** Reset a resampler so a new (unrelated) stream can be processed.
- * @param st Resampler state
- */
-int speex_resampler_reset_mem(SpeexResamplerState *st);
-
-/** Returns the English meaning for an error code
- * @param err Error code
- * @return English string
- */
-const char *speex_resampler_strerror(int err);
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif
diff --git a/gst/audioresample/speex_resampler_double.c b/gst/audioresample/speex_resampler_double.c
deleted file mode 100644
index 6c5d63c..0000000
--- a/gst/audioresample/speex_resampler_double.c
+++ /dev/null
@@ -1,26 +0,0 @@
-/* GStreamer
- * Copyright (C) 2007-2008 Sebastian Dröge <sebastian.droege@collabora.co.uk>
- *
- * 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.
- */
-
-#define _USE_SSE2
-#define FLOATING_POINT
-#define DOUBLE_PRECISION
-#define OUTSIDE_SPEEX
-#define RANDOM_PREFIX resample_double
-
-#include "resample.c"
diff --git a/gst/audioresample/speex_resampler_float.c b/gst/audioresample/speex_resampler_float.c
deleted file mode 100644
index 4f11197..0000000
--- a/gst/audioresample/speex_resampler_float.c
+++ /dev/null
@@ -1,27 +0,0 @@
-/* GStreamer
- * Copyright (C) 2007-2008 Sebastian Dröge <sebastian.droege@collabora.co.uk>
- *
- * 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.
- */
-
-#define _USE_SSE
-#define _USE_SSE2
-#define _USE_NEON
-#define FLOATING_POINT
-#define OUTSIDE_SPEEX
-#define RANDOM_PREFIX resample_float
-
-#include "resample.c"
diff --git a/gst/audioresample/speex_resampler_int.c b/gst/audioresample/speex_resampler_int.c
deleted file mode 100644
index beeb045..0000000
--- a/gst/audioresample/speex_resampler_int.c
+++ /dev/null
@@ -1,26 +0,0 @@
-/* GStreamer
- * Copyright (C) 2007-2008 Sebastian Dröge <sebastian.droege@collabora.co.uk>
- *
- * 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.
- */
-
-#define FIXED_POINT 1
-#define OUTSIDE_SPEEX 1
-/* disabled, 16-bit integer NEON support seems broken */
-/* #define _USE_NEON */
-#define RANDOM_PREFIX resample_int
-
-#include "resample.c"
diff --git a/gst/audioresample/speex_resampler_wrapper.h b/gst/audioresample/speex_resampler_wrapper.h
deleted file mode 100644
index cd13a88..0000000
--- a/gst/audioresample/speex_resampler_wrapper.h
+++ /dev/null
@@ -1,192 +0,0 @@
-/* GStreamer
- * Copyright (C) 2007-2008 Sebastian Dröge <sebastian.droege@collabora.co.uk>
- *
- * 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 __SPEEX_RESAMPLER_WRAPPER_H__
-#define __SPEEX_RESAMPLER_WRAPPER_H__
-
-#define SPEEX_RESAMPLER_QUALITY_MAX 10
-#define SPEEX_RESAMPLER_QUALITY_MIN 0
-#define SPEEX_RESAMPLER_QUALITY_DEFAULT 4
-#define SPEEX_RESAMPLER_QUALITY_VOIP 3
-#define SPEEX_RESAMPLER_QUALITY_DESKTOP 5
-
-#define SPEEX_RESAMPLER_SINC_FILTER_DEFAULT SPEEX_RESAMPLER_SINC_FILTER_AUTO
-#define SPEEX_RESAMPLER_SINC_FILTER_AUTO_THRESHOLD_DEFAULT (1 * 1048576)
-
-enum
-{
-  RESAMPLER_ERR_SUCCESS = 0,
-  RESAMPLER_ERR_ALLOC_FAILED = 1,
-  RESAMPLER_ERR_BAD_STATE = 2,
-  RESAMPLER_ERR_INVALID_ARG = 3,
-  RESAMPLER_ERR_PTR_OVERLAP = 4,
-
-  RESAMPLER_ERR_MAX_ERROR
-};
-
-typedef enum {
-  SPEEX_RESAMPLER_SINC_FILTER_INTERPOLATED   = 0,
-  SPEEX_RESAMPLER_SINC_FILTER_FULL           = 1,
-  SPEEX_RESAMPLER_SINC_FILTER_AUTO           = 2
-} SpeexResamplerSincFilterMode;
-
-typedef struct SpeexResamplerState_ SpeexResamplerState;
-
-typedef struct {
-  SpeexResamplerState *(*init) (guint32 nb_channels,
-    guint32 in_rate, guint32 out_rate, gint quality,
-    SpeexResamplerSincFilterMode sinc_filter_mode,
-    guint32 sinc_filter_auto_threshold, gint * err);
-  void (*destroy) (SpeexResamplerState * st);
-  int (*process) (SpeexResamplerState *
-    st, const guint8 * in, guint32 * in_len, guint8 * out, guint32 * out_len);
-  int (*set_rate) (SpeexResamplerState * st,
-    guint32 in_rate, guint32 out_rate);
-  void (*get_rate) (SpeexResamplerState * st,
-    guint32 * in_rate, guint32 * out_rate);
-  void (*get_ratio) (SpeexResamplerState * st,
-    guint32 * ratio_num, guint32 * ratio_den);
-  int (*get_input_latency) (SpeexResamplerState * st);
-  int (*get_filt_len) (SpeexResamplerState * st);
-  int (*get_sinc_filter_mode) (SpeexResamplerState * st);
-  int (*set_quality) (SpeexResamplerState * st, gint quality);
-  int (*reset_mem) (SpeexResamplerState * st);
-  int (*skip_zeros) (SpeexResamplerState * st);
-  const char * (*strerror) (gint err);
-  unsigned int width;
-} SpeexResampleFuncs;
-
-SpeexResamplerState *resample_float_resampler_init (guint32 nb_channels,
-    guint32 in_rate, guint32 out_rate, gint quality,
-    SpeexResamplerSincFilterMode sinc_filter_mode,
-    guint32 sinc_filter_auto_threshold, gint * err);
-void resample_float_resampler_destroy (SpeexResamplerState * st);
-int resample_float_resampler_process_interleaved_float (SpeexResamplerState *
-    st, const guint8 * in, guint32 * in_len, guint8 * out, guint32 * out_len);
-int resample_float_resampler_set_rate (SpeexResamplerState * st,
-    guint32 in_rate, guint32 out_rate);
-void resample_float_resampler_get_rate (SpeexResamplerState * st,
-    guint32 * in_rate, guint32 * out_rate);
-void resample_float_resampler_get_ratio (SpeexResamplerState * st,
-    guint32 * ratio_num, guint32 * ratio_den);
-int resample_float_resampler_get_input_latency (SpeexResamplerState * st);
-int resample_float_resampler_get_filt_len (SpeexResamplerState * st);
-int resample_float_resampler_get_sinc_filter_mode (SpeexResamplerState * st);
-int resample_float_resampler_set_quality (SpeexResamplerState * st, gint quality);
-int resample_float_resampler_reset_mem (SpeexResamplerState * st);
-int resample_float_resampler_skip_zeros (SpeexResamplerState * st);
-const char * resample_float_resampler_strerror (gint err);
-
-static const SpeexResampleFuncs float_funcs =
-{
-  resample_float_resampler_init,
-  resample_float_resampler_destroy,
-  resample_float_resampler_process_interleaved_float,
-  resample_float_resampler_set_rate,
-  resample_float_resampler_get_rate,
-  resample_float_resampler_get_ratio,
-  resample_float_resampler_get_input_latency,
-  resample_float_resampler_get_filt_len,
-  resample_float_resampler_get_sinc_filter_mode,
-  resample_float_resampler_set_quality,
-  resample_float_resampler_reset_mem,
-  resample_float_resampler_skip_zeros,
-  resample_float_resampler_strerror,
-  32
-};
-
-SpeexResamplerState *resample_double_resampler_init (guint32 nb_channels,
-    guint32 in_rate, guint32 out_rate, gint quality,
-    SpeexResamplerSincFilterMode sinc_filter_mode,
-    guint32 sinc_filter_auto_threshold, gint * err);
-void resample_double_resampler_destroy (SpeexResamplerState * st);
-int resample_double_resampler_process_interleaved_float (SpeexResamplerState *
-    st, const guint8 * in, guint32 * in_len, guint8 * out, guint32 * out_len);
-int resample_double_resampler_set_rate (SpeexResamplerState * st,
-    guint32 in_rate, guint32 out_rate);
-void resample_double_resampler_get_rate (SpeexResamplerState * st,
-    guint32 * in_rate, guint32 * out_rate);
-void resample_double_resampler_get_ratio (SpeexResamplerState * st,
-    guint32 * ratio_num, guint32 * ratio_den);
-int resample_double_resampler_get_input_latency (SpeexResamplerState * st);
-int resample_double_resampler_get_filt_len (SpeexResamplerState * st);
-int resample_double_resampler_get_sinc_filter_mode (SpeexResamplerState * st);
-int resample_double_resampler_set_quality (SpeexResamplerState * st, gint quality);
-int resample_double_resampler_reset_mem (SpeexResamplerState * st);
-int resample_double_resampler_skip_zeros (SpeexResamplerState * st);
-const char * resample_double_resampler_strerror (gint err);
-
-static const SpeexResampleFuncs double_funcs =
-{
-  resample_double_resampler_init,
-  resample_double_resampler_destroy,
-  resample_double_resampler_process_interleaved_float,
-  resample_double_resampler_set_rate,
-  resample_double_resampler_get_rate,
-  resample_double_resampler_get_ratio,
-  resample_double_resampler_get_input_latency,
-  resample_double_resampler_get_filt_len,
-  resample_double_resampler_get_sinc_filter_mode,
-  resample_double_resampler_set_quality,
-  resample_double_resampler_reset_mem,
-  resample_double_resampler_skip_zeros,
-  resample_double_resampler_strerror,
-  64
-};
-
-SpeexResamplerState *resample_int_resampler_init (guint32 nb_channels,
-    guint32 in_rate, guint32 out_rate, gint quality,
-    SpeexResamplerSincFilterMode sinc_filter_mode,
-    guint32 sinc_filter_auto_threshold, gint * err);
-void resample_int_resampler_destroy (SpeexResamplerState * st);
-int resample_int_resampler_process_interleaved_int (SpeexResamplerState *
-    st, const guint8 * in, guint32 * in_len, guint8 * out, guint32 * out_len);
-int resample_int_resampler_set_rate (SpeexResamplerState * st,
-    guint32 in_rate, guint32 out_rate);
-void resample_int_resampler_get_rate (SpeexResamplerState * st,
-    guint32 * in_rate, guint32 * out_rate);
-void resample_int_resampler_get_ratio (SpeexResamplerState * st,
-    guint32 * ratio_num, guint32 * ratio_den);
-int resample_int_resampler_get_input_latency (SpeexResamplerState * st);
-int resample_int_resampler_get_filt_len (SpeexResamplerState * st);
-int resample_int_resampler_get_sinc_filter_mode (SpeexResamplerState * st);
-int resample_int_resampler_set_quality (SpeexResamplerState * st, gint quality);
-int resample_int_resampler_reset_mem (SpeexResamplerState * st);
-int resample_int_resampler_skip_zeros (SpeexResamplerState * st);
-const char * resample_int_resampler_strerror (gint err);
-
-static const SpeexResampleFuncs int_funcs =
-{
-  resample_int_resampler_init,
-  resample_int_resampler_destroy,
-  resample_int_resampler_process_interleaved_int,
-  resample_int_resampler_set_rate,
-  resample_int_resampler_get_rate,
-  resample_int_resampler_get_ratio,
-  resample_int_resampler_get_input_latency,
-  resample_int_resampler_get_filt_len,
-  resample_int_resampler_get_sinc_filter_mode,
-  resample_int_resampler_set_quality,
-  resample_int_resampler_reset_mem,
-  resample_int_resampler_skip_zeros,
-  resample_int_resampler_strerror,
-  16
-};
-
-#endif /* __SPEEX_RESAMPLER_WRAPPER_H__ */
diff --git a/gst/audiotestsrc/gstaudiotestsrc.c b/gst/audiotestsrc/gstaudiotestsrc.c
index 15cb4a3..1c3b5bc 100644
--- a/gst/audiotestsrc/gstaudiotestsrc.c
+++ b/gst/audiotestsrc/gstaudiotestsrc.c
@@ -207,10 +207,10 @@
           "Can activate in pull mode", DEFAULT_CAN_ACTIVATE_PULL,
           G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS));
 
-  gst_element_class_add_pad_template (gstelement_class,
-      gst_static_pad_template_get (&gst_audio_test_src_src_template));
-  gst_element_class_set_static_metadata (gstelement_class,
-      "Audio test source", "Source/Audio",
+  gst_element_class_add_static_pad_template (gstelement_class,
+      &gst_audio_test_src_src_template);
+  gst_element_class_set_static_metadata (gstelement_class, "Audio test source",
+      "Source/Audio",
       "Creates audio test signals of given frequency and volume",
       "Stefan Kost <ensonic@users.sf.net>");
 
diff --git a/gst/encoding/gstencodebin.c b/gst/encoding/gstencodebin.c
index 55dab2f..1f5de54 100644
--- a/gst/encoding/gstencodebin.c
+++ b/gst/encoding/gstencodebin.c
@@ -431,16 +431,15 @@
   klass->request_pad = gst_encode_bin_request_pad_signal;
   klass->request_profile_pad = gst_encode_bin_request_profile_pad_signal;
 
-  gst_element_class_add_pad_template (gstelement_klass,
-      gst_static_pad_template_get (&muxer_src_template));
-  gst_element_class_add_pad_template (gstelement_klass,
-      gst_static_pad_template_get (&video_sink_template));
-  gst_element_class_add_pad_template (gstelement_klass,
-      gst_static_pad_template_get (&audio_sink_template));
-  /* gst_element_class_add_pad_template (gstelement_klass, */
-  /*     gst_static_pad_template_get (&text_sink_template)); */
-  gst_element_class_add_pad_template (gstelement_klass,
-      gst_static_pad_template_get (&private_sink_template));
+  gst_element_class_add_static_pad_template (gstelement_klass,
+      &muxer_src_template);
+  gst_element_class_add_static_pad_template (gstelement_klass,
+      &video_sink_template);
+  gst_element_class_add_static_pad_template (gstelement_klass,
+      &audio_sink_template);
+  /* gst_element_class_add_static_pad_template (gstelement_klass, &text_sink_template); */
+  gst_element_class_add_static_pad_template (gstelement_klass,
+      &private_sink_template);
 
   gstelement_klass->change_state =
       GST_DEBUG_FUNCPTR (gst_encode_bin_change_state);
diff --git a/gst/encoding/gstsmartencoder.c b/gst/encoding/gstsmartencoder.c
index 69ab7d6..a950edf 100644
--- a/gst/encoding/gstsmartencoder.c
+++ b/gst/encoding/gstsmartencoder.c
@@ -100,10 +100,8 @@
 
   gst_smart_encoder_parent_class = g_type_class_peek_parent (klass);
 
-  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, "Smart Video Encoder",
       "Codec/Recoder/Video",
diff --git a/gst/encoding/gststreamcombiner.c b/gst/encoding/gststreamcombiner.c
index 42c959d..008b08d 100644
--- a/gst/encoding/gststreamcombiner.c
+++ b/gst/encoding/gststreamcombiner.c
@@ -77,10 +77,8 @@
   GST_DEBUG_CATEGORY_INIT (gst_stream_combiner_debug, "streamcombiner", 0,
       "Stream Combiner");
 
-  gst_element_class_add_pad_template (gstelement_klass,
-      gst_static_pad_template_get (&src_template));
-  gst_element_class_add_pad_template (gstelement_klass,
-      gst_static_pad_template_get (&sink_template));
+  gst_element_class_add_static_pad_template (gstelement_klass, &src_template);
+  gst_element_class_add_static_pad_template (gstelement_klass, &sink_template);
 
   gstelement_klass->request_new_pad =
       GST_DEBUG_FUNCPTR (gst_stream_combiner_request_new_pad);
diff --git a/gst/encoding/gststreamsplitter.c b/gst/encoding/gststreamsplitter.c
index 6bf3894..f8ad794 100644
--- a/gst/encoding/gststreamsplitter.c
+++ b/gst/encoding/gststreamsplitter.c
@@ -66,10 +66,8 @@
   GST_DEBUG_CATEGORY_INIT (gst_stream_splitter_debug, "streamsplitter", 0,
       "Stream Splitter");
 
-  gst_element_class_add_pad_template (gstelement_klass,
-      gst_static_pad_template_get (&src_template));
-  gst_element_class_add_pad_template (gstelement_klass,
-      gst_static_pad_template_get (&sink_template));
+  gst_element_class_add_static_pad_template (gstelement_klass, &src_template);
+  gst_element_class_add_static_pad_template (gstelement_klass, &sink_template);
 
   gstelement_klass->request_new_pad =
       GST_DEBUG_FUNCPTR (gst_stream_splitter_request_new_pad);
@@ -157,8 +155,7 @@
   for (tmp = events; tmp; tmp = tmp->next) {
     if (GST_EVENT_TYPE (tmp->data) != GST_EVENT_EOS &&
         GST_EVENT_TYPE (tmp->data) != GST_EVENT_SEGMENT &&
-        GST_EVENT_IS_STICKY (tmp->data) &&
-        pad != NULL) {
+        GST_EVENT_IS_STICKY (tmp->data) && pad != NULL) {
       gst_pad_store_sticky_event (pad, GST_EVENT_CAST (tmp->data));
     }
     gst_event_unref (tmp->data);
diff --git a/gst/gio/gstgiobasesink.c b/gst/gio/gstgiobasesink.c
index 3dbec56..caacba5 100644
--- a/gst/gio/gstgiobasesink.c
+++ b/gst/gio/gstgiobasesink.c
@@ -59,8 +59,7 @@
 
   gobject_class->finalize = gst_gio_base_sink_finalize;
 
-  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);
 
   gstbasesink_class->start = GST_DEBUG_FUNCPTR (gst_gio_base_sink_start);
   gstbasesink_class->stop = GST_DEBUG_FUNCPTR (gst_gio_base_sink_stop);
diff --git a/gst/gio/gstgiobasesrc.c b/gst/gio/gstgiobasesrc.c
index 213ede6..b4fddc1 100644
--- a/gst/gio/gstgiobasesrc.c
+++ b/gst/gio/gstgiobasesrc.c
@@ -64,8 +64,7 @@
 
   gobject_class->finalize = gst_gio_base_src_finalize;
 
-  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);
 
   gstbasesrc_class->start = GST_DEBUG_FUNCPTR (gst_gio_base_src_start);
   gstbasesrc_class->stop = GST_DEBUG_FUNCPTR (gst_gio_base_src_stop);
diff --git a/gst/playback/Makefile.am b/gst/playback/Makefile.am
index 081b224..9603dab 100644
--- a/gst/playback/Makefile.am
+++ b/gst/playback/Makefile.am
@@ -4,9 +4,13 @@
 
 libgstplayback_la_SOURCES = \
 	gstdecodebin2.c \
+	gstdecodebin3.c \
 	gsturidecodebin.c \
+	gsturisourcebin.c \
+	gstparsebin.c \
 	gstplayback.c \
 	gstplaybin2.c \
+	gstplaybin3.c \
 	gstplaysink.c \
 	gstplay-enum.c \
 	gstsubtitleoverlay.c \
@@ -26,7 +30,10 @@
 	$(GST_LIBS)
 libgstplayback_la_LIBTOOLFLAGS = $(GST_PLUGIN_LIBTOOLFLAGS)
 
+# FIXME: gstdecodebin3-parse.c isn't really a header,
+# but for now it's included into gstdecodebin3.c directly
 noinst_HEADERS = \
+        gstdecodebin3-parse.c \
 	gstplayback.h \
 	gstplaysink.h \
 	gstplay-enum.h \
diff --git a/gst/playback/Makefile.in b/gst/playback/Makefile.in
index f5bd2a0..8ae0fd4 100644
--- a/gst/playback/Makefile.in
+++ b/gst/playback/Makefile.in
@@ -167,9 +167,13 @@
 	$(top_builddir)/gst-libs/gst/video/libgstvideo-@GST_API_VERSION@.la \
 	$(am__DEPENDENCIES_1)
 am_libgstplayback_la_OBJECTS = libgstplayback_la-gstdecodebin2.lo \
+	libgstplayback_la-gstdecodebin3.lo \
 	libgstplayback_la-gsturidecodebin.lo \
+	libgstplayback_la-gsturisourcebin.lo \
+	libgstplayback_la-gstparsebin.lo \
 	libgstplayback_la-gstplayback.lo \
 	libgstplayback_la-gstplaybin2.lo \
+	libgstplayback_la-gstplaybin3.lo \
 	libgstplayback_la-gstplaysink.lo \
 	libgstplayback_la-gstplay-enum.lo \
 	libgstplayback_la-gstsubtitleoverlay.lo \
@@ -551,9 +555,13 @@
 csp_cflags = -DCOLORSPACE=\"videoconvert\"
 libgstplayback_la_SOURCES = \
 	gstdecodebin2.c \
+	gstdecodebin3.c \
 	gsturidecodebin.c \
+	gsturisourcebin.c \
+	gstparsebin.c \
 	gstplayback.c \
 	gstplaybin2.c \
+	gstplaybin3.c \
 	gstplaysink.c \
 	gstplay-enum.c \
 	gstsubtitleoverlay.c \
@@ -573,7 +581,11 @@
 	$(GST_LIBS)
 
 libgstplayback_la_LIBTOOLFLAGS = $(GST_PLUGIN_LIBTOOLFLAGS)
+
+# FIXME: gstdecodebin3-parse.c isn't really a header,
+# but for now it's included into gstdecodebin3.c directly
 noinst_HEADERS = \
+        gstdecodebin3-parse.c \
 	gstplayback.h \
 	gstplaysink.h \
 	gstplay-enum.h \
@@ -667,10 +679,13 @@
 	-rm -f *.tab.c
 
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgstplayback_la-gstdecodebin2.Plo@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgstplayback_la-gstdecodebin3.Plo@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgstplayback_la-gstparsebin.Plo@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgstplayback_la-gstplay-enum.Plo@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgstplayback_la-gstplayback.Plo@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgstplayback_la-gstplaybackutils.Plo@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgstplayback_la-gstplaybin2.Plo@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgstplayback_la-gstplaybin3.Plo@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgstplayback_la-gstplaysink.Plo@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgstplayback_la-gstplaysinkaudioconvert.Plo@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgstplayback_la-gstplaysinkconvertbin.Plo@am__quote@
@@ -678,6 +693,7 @@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgstplayback_la-gststreamsynchronizer.Plo@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgstplayback_la-gstsubtitleoverlay.Plo@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgstplayback_la-gsturidecodebin.Plo@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgstplayback_la-gsturisourcebin.Plo@am__quote@
 
 .c.o:
 @am__fastdepCC_TRUE@	$(AM_V_CC)depbase=`echo $@ | sed 's|[^/]*$$|$(DEPDIR)/&|;s|\.o$$||'`;\
@@ -710,6 +726,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 $(libgstplayback_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstplayback_la_CFLAGS) $(CFLAGS) -c -o libgstplayback_la-gstdecodebin2.lo `test -f 'gstdecodebin2.c' || echo '$(srcdir)/'`gstdecodebin2.c
 
+libgstplayback_la-gstdecodebin3.lo: gstdecodebin3.c
+@am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstplayback_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstplayback_la_CFLAGS) $(CFLAGS) -MT libgstplayback_la-gstdecodebin3.lo -MD -MP -MF $(DEPDIR)/libgstplayback_la-gstdecodebin3.Tpo -c -o libgstplayback_la-gstdecodebin3.lo `test -f 'gstdecodebin3.c' || echo '$(srcdir)/'`gstdecodebin3.c
+@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libgstplayback_la-gstdecodebin3.Tpo $(DEPDIR)/libgstplayback_la-gstdecodebin3.Plo
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='gstdecodebin3.c' object='libgstplayback_la-gstdecodebin3.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 $(libgstplayback_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstplayback_la_CFLAGS) $(CFLAGS) -c -o libgstplayback_la-gstdecodebin3.lo `test -f 'gstdecodebin3.c' || echo '$(srcdir)/'`gstdecodebin3.c
+
 libgstplayback_la-gsturidecodebin.lo: gsturidecodebin.c
 @am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstplayback_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstplayback_la_CFLAGS) $(CFLAGS) -MT libgstplayback_la-gsturidecodebin.lo -MD -MP -MF $(DEPDIR)/libgstplayback_la-gsturidecodebin.Tpo -c -o libgstplayback_la-gsturidecodebin.lo `test -f 'gsturidecodebin.c' || echo '$(srcdir)/'`gsturidecodebin.c
 @am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libgstplayback_la-gsturidecodebin.Tpo $(DEPDIR)/libgstplayback_la-gsturidecodebin.Plo
@@ -717,6 +740,20 @@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
 @am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstplayback_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstplayback_la_CFLAGS) $(CFLAGS) -c -o libgstplayback_la-gsturidecodebin.lo `test -f 'gsturidecodebin.c' || echo '$(srcdir)/'`gsturidecodebin.c
 
+libgstplayback_la-gsturisourcebin.lo: gsturisourcebin.c
+@am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstplayback_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstplayback_la_CFLAGS) $(CFLAGS) -MT libgstplayback_la-gsturisourcebin.lo -MD -MP -MF $(DEPDIR)/libgstplayback_la-gsturisourcebin.Tpo -c -o libgstplayback_la-gsturisourcebin.lo `test -f 'gsturisourcebin.c' || echo '$(srcdir)/'`gsturisourcebin.c
+@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libgstplayback_la-gsturisourcebin.Tpo $(DEPDIR)/libgstplayback_la-gsturisourcebin.Plo
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='gsturisourcebin.c' object='libgstplayback_la-gsturisourcebin.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 $(libgstplayback_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstplayback_la_CFLAGS) $(CFLAGS) -c -o libgstplayback_la-gsturisourcebin.lo `test -f 'gsturisourcebin.c' || echo '$(srcdir)/'`gsturisourcebin.c
+
+libgstplayback_la-gstparsebin.lo: gstparsebin.c
+@am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstplayback_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstplayback_la_CFLAGS) $(CFLAGS) -MT libgstplayback_la-gstparsebin.lo -MD -MP -MF $(DEPDIR)/libgstplayback_la-gstparsebin.Tpo -c -o libgstplayback_la-gstparsebin.lo `test -f 'gstparsebin.c' || echo '$(srcdir)/'`gstparsebin.c
+@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libgstplayback_la-gstparsebin.Tpo $(DEPDIR)/libgstplayback_la-gstparsebin.Plo
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='gstparsebin.c' object='libgstplayback_la-gstparsebin.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 $(libgstplayback_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstplayback_la_CFLAGS) $(CFLAGS) -c -o libgstplayback_la-gstparsebin.lo `test -f 'gstparsebin.c' || echo '$(srcdir)/'`gstparsebin.c
+
 libgstplayback_la-gstplayback.lo: gstplayback.c
 @am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstplayback_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstplayback_la_CFLAGS) $(CFLAGS) -MT libgstplayback_la-gstplayback.lo -MD -MP -MF $(DEPDIR)/libgstplayback_la-gstplayback.Tpo -c -o libgstplayback_la-gstplayback.lo `test -f 'gstplayback.c' || echo '$(srcdir)/'`gstplayback.c
 @am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libgstplayback_la-gstplayback.Tpo $(DEPDIR)/libgstplayback_la-gstplayback.Plo
@@ -731,6 +768,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 $(libgstplayback_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstplayback_la_CFLAGS) $(CFLAGS) -c -o libgstplayback_la-gstplaybin2.lo `test -f 'gstplaybin2.c' || echo '$(srcdir)/'`gstplaybin2.c
 
+libgstplayback_la-gstplaybin3.lo: gstplaybin3.c
+@am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstplayback_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstplayback_la_CFLAGS) $(CFLAGS) -MT libgstplayback_la-gstplaybin3.lo -MD -MP -MF $(DEPDIR)/libgstplayback_la-gstplaybin3.Tpo -c -o libgstplayback_la-gstplaybin3.lo `test -f 'gstplaybin3.c' || echo '$(srcdir)/'`gstplaybin3.c
+@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libgstplayback_la-gstplaybin3.Tpo $(DEPDIR)/libgstplayback_la-gstplaybin3.Plo
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='gstplaybin3.c' object='libgstplayback_la-gstplaybin3.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 $(libgstplayback_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstplayback_la_CFLAGS) $(CFLAGS) -c -o libgstplayback_la-gstplaybin3.lo `test -f 'gstplaybin3.c' || echo '$(srcdir)/'`gstplaybin3.c
+
 libgstplayback_la-gstplaysink.lo: gstplaysink.c
 @am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstplayback_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstplayback_la_CFLAGS) $(CFLAGS) -MT libgstplayback_la-gstplaysink.lo -MD -MP -MF $(DEPDIR)/libgstplayback_la-gstplaysink.Tpo -c -o libgstplayback_la-gstplaysink.lo `test -f 'gstplaysink.c' || echo '$(srcdir)/'`gstplaysink.c
 @am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libgstplayback_la-gstplaysink.Tpo $(DEPDIR)/libgstplayback_la-gstplaysink.Plo
diff --git a/gst/playback/gstdecodebin2.c b/gst/playback/gstdecodebin2.c
index 7eb89da..a34efee 100644
--- a/gst/playback/gstdecodebin2.c
+++ b/gst/playback/gstdecodebin2.c
@@ -553,6 +553,7 @@
 static void gst_decode_pad_set_blocked (GstDecodePad * dpad, gboolean blocked);
 static gboolean gst_decode_pad_query (GstPad * pad, GstObject * parent,
     GstQuery * query);
+static gboolean gst_decode_pad_is_exposable (GstDecodePad * endpad);
 
 static void gst_pending_pad_free (GstPendingPad * ppad);
 static GstPadProbeReturn pad_event_cb (GstPad * pad, GstPadProbeInfo * info,
@@ -999,10 +1000,10 @@
   klass->autoplug_select = GST_DEBUG_FUNCPTR (gst_decode_bin_autoplug_select);
   klass->autoplug_query = GST_DEBUG_FUNCPTR (gst_decode_bin_autoplug_query);
 
-  gst_element_class_add_pad_template (gstelement_klass,
-      gst_static_pad_template_get (&decoder_bin_sink_template));
-  gst_element_class_add_pad_template (gstelement_klass,
-      gst_static_pad_template_get (&decoder_bin_src_template));
+  gst_element_class_add_static_pad_template (gstelement_klass,
+      &decoder_bin_sink_template);
+  gst_element_class_add_static_pad_template (gstelement_klass,
+      &decoder_bin_src_template);
 
   gst_element_class_set_static_metadata (gstelement_klass,
       "Decoder Bin", "Generic/Bin/Decoder",
@@ -1739,12 +1740,10 @@
   if (is_parser_converter) {
     GstCaps *filter_caps;
     gint i;
+    GstElement *capsfilter;
     GstPad *p;
     GstDecodeElement *delem;
 
-    g_assert (chain->elements != NULL);
-    delem = (GstDecodeElement *) chain->elements->data;
-
     filter_caps = gst_caps_new_empty ();
     for (i = 0; i < factories->n_values; i++) {
       GstElementFactory *factory =
@@ -1778,17 +1777,28 @@
     /* Append the parser caps to prevent any not-negotiated errors */
     filter_caps = gst_caps_merge (filter_caps, gst_caps_ref (caps));
 
-    delem->capsfilter = gst_element_factory_make ("capsfilter", NULL);
-    g_object_set (G_OBJECT (delem->capsfilter), "caps", filter_caps, NULL);
+    if (chain->elements) {
+      delem = (GstDecodeElement *) chain->elements->data;
+      capsfilter = delem->capsfilter =
+          gst_element_factory_make ("capsfilter", NULL);
+    } else {
+      delem = g_slice_new0 (GstDecodeElement);
+      capsfilter = delem->element =
+          gst_element_factory_make ("capsfilter", NULL);
+      delem->capsfilter = NULL;
+      chain->elements = g_list_prepend (chain->elements, delem);
+    }
+
+    g_object_set (G_OBJECT (capsfilter), "caps", filter_caps, NULL);
     gst_caps_unref (filter_caps);
-    gst_element_set_state (delem->capsfilter, GST_STATE_PAUSED);
-    gst_bin_add (GST_BIN_CAST (dbin), gst_object_ref (delem->capsfilter));
+    gst_element_set_state (capsfilter, GST_STATE_PAUSED);
+    gst_bin_add (GST_BIN_CAST (dbin), gst_object_ref (capsfilter));
 
     decode_pad_set_target (dpad, NULL);
-    p = gst_element_get_static_pad (delem->capsfilter, "sink");
+    p = gst_element_get_static_pad (capsfilter, "sink");
     gst_pad_link_full (pad, p, GST_PAD_LINK_CHECK_NOTHING);
     gst_object_unref (p);
-    p = gst_element_get_static_pad (delem->capsfilter, "src");
+    p = gst_element_get_static_pad (capsfilter, "src");
     decode_pad_set_target (dpad, p);
     pad = p;
 
@@ -2132,7 +2142,8 @@
     gboolean subtitle;
     GList *to_connect = NULL;
     GList *to_expose = NULL;
-    gboolean is_parser_converter = FALSE;
+    gboolean is_parser = FALSE;
+    gboolean is_decoder = FALSE;
 
     /* Set dpad target to pad again, it might've been unset
      * below but we came back here because something failed
@@ -2198,10 +2209,10 @@
      * parser is the only one that does not change the data. A
      * valid example for this would be multiple id3demux in a row.
      */
-    is_parser_converter = strstr (gst_element_factory_get_metadata (factory,
+    is_parser = strstr (gst_element_factory_get_metadata (factory,
             GST_ELEMENT_METADATA_KLASS), "Parser") != NULL;
 
-    if (is_parser_converter) {
+    if (is_parser) {
       gboolean skip = FALSE;
       GList *l;
 
@@ -2394,6 +2405,23 @@
         chain->demuxer = TRUE;
     }
 
+    /* If we are configured to use buffering and there is no demuxer in the
+     * chain, we still want a multiqueue, otherwise we will ignore the
+     * use-buffering property. In that case, we will insert a multiqueue after
+     * the parser or decoder - not elsewhere, otherwise we won't have
+     * timestamps.
+     */
+    is_decoder = strstr (gst_element_factory_get_metadata (factory,
+            GST_ELEMENT_METADATA_KLASS), "Decoder") != NULL;
+
+    if (!chain->parent && (is_parser || is_decoder) && dbin->use_buffering) {
+      chain->demuxer = TRUE;
+      if (is_decoder) {
+        GST_WARNING_OBJECT (dbin,
+            "Buffering messages used for decoded and non-parsed data");
+      }
+    }
+
     CHAIN_MUTEX_UNLOCK (chain);
 
     /* Set connection-speed property if needed */
@@ -2797,14 +2825,11 @@
   query = gst_query_new_seeking (GST_FORMAT_BYTES);
   if (!gst_pad_peer_query (pad, query)) {
     GST_DEBUG_OBJECT (dbin, "seeking query failed");
-    gst_query_unref (query);
-    return FALSE;
+    goto done;
   }
 
   gst_query_parse_seeking (query, NULL, &seekable, &start, &stop);
 
-  gst_query_unref (query);
-
   /* try harder to query upstream size if we didn't get it the first time */
   if (seekable && stop == -1) {
     GST_DEBUG_OBJECT (dbin, "doing duration query to fix up unset stop");
@@ -2815,10 +2840,13 @@
    * practice even if it technically may be seekable */
   if (seekable && (start != 0 || stop <= start)) {
     GST_DEBUG_OBJECT (dbin, "seekable but unknown start/stop -> disable");
-    return FALSE;
+    seekable = FALSE;
+  } else {
+    GST_DEBUG_OBJECT (dbin, "upstream seekable: %d", seekable);
   }
 
-  GST_DEBUG_OBJECT (dbin, "upstream seekable: %d", seekable);
+done:
+  gst_query_unref (query);
   return seekable;
 }
 
@@ -3922,7 +3950,7 @@
     goto out;
   }
 
-  if (chain->endpad && (chain->endpad->blocked || chain->endpad->exposed)) {
+  if (chain->endpad && gst_decode_pad_is_exposable (chain->endpad)) {
     complete = TRUE;
     goto out;
   }
@@ -4728,7 +4756,7 @@
   }
 
   if (chain->endpad) {
-    if (!chain->endpad->blocked && !chain->endpad->exposed)
+    if (!gst_decode_pad_is_exposable (chain->endpad) && !chain->endpad->exposed)
       return FALSE;
     *endpads = g_list_prepend (*endpads, gst_object_ref (chain->endpad));
     return TRUE;
@@ -5034,6 +5062,15 @@
   return ret;
 }
 
+static gboolean
+gst_decode_pad_is_exposable (GstDecodePad * endpad)
+{
+  if (endpad->blocked || endpad->exposed)
+    return TRUE;
+
+  return gst_pad_has_current_caps (GST_PAD_CAST (endpad));
+}
+
 /*gst_decode_pad_new:
  *
  * Creates a new GstDecodePad for the given pad.
diff --git a/gst/playback/gstdecodebin3-parse.c b/gst/playback/gstdecodebin3-parse.c
new file mode 100644
index 0000000..0f1a17d
--- /dev/null
+++ b/gst/playback/gstdecodebin3-parse.c
@@ -0,0 +1,551 @@
+/* GStreamer
+ *
+ * Copyright (C) <2015> Centricular Ltd
+ *  @author: Edward Hervey <edward@centricular.com>
+ *  @author: Jan Schmidt <jan@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.
+ */
+
+#if 0
+/* Not needed for now - we're including gstdecodebin3-parse.c into gstdecodebin3.c */
+#ifdef HAVE_CONFIG_H
+#include "config.h"
+#endif
+
+#include <glib.h>
+#include <glib-object.h>
+#include <glib/gprintf.h>
+#include <gst/gst.h>
+#include <gst/pbutils/pbutils.h>
+
+#include "gstplayback.h"
+#endif
+
+/* Streams that come from demuxers (input/upstream) */
+/* FIXME : All this is hardcoded. Switch to tree of chains */
+struct _DecodebinInputStream
+{
+  GstDecodebin3 *dbin;
+  GstStream *pending_stream;    /* Extra ref */
+  GstStream *active_stream;
+
+  DecodebinInput *input;
+
+  GstPad *srcpad;               /* From demuxer */
+
+  /* id of the pad event probe */
+  gulong output_event_probe_id;
+
+  /* id of the buffer blocking probe on the input (demuxer src) pad */
+  gulong input_buffer_probe_id;
+
+  /* Whether we saw an EOS on input. This should be treated accordingly
+   * when the stream is no longer used */
+  gboolean saw_eos;
+  /* TRUE if the EOS being pushed is only for draining and does not represent
+   * the full media EOS */
+  gboolean drain_eos;
+};
+
+static void parsebin_pad_added_cb (GstElement * demux, GstPad * pad,
+    DecodebinInput * input);
+static void parsebin_pad_removed_cb (GstElement * demux, GstPad * pad,
+    DecodebinInput * input);
+
+static gboolean
+pending_pads_are_eos (DecodebinInput * input)
+{
+  GList *tmp;
+
+  for (tmp = input->pending_pads; tmp; tmp = tmp->next) {
+    PendingPad *ppad = (PendingPad *) tmp->data;
+    if (ppad->saw_eos == FALSE)
+      return FALSE;
+  }
+
+  return TRUE;
+}
+
+static gboolean
+all_inputs_are_eos (GstDecodebin3 * dbin)
+{
+  GList *tmp;
+  /* First check input streams */
+  for (tmp = dbin->input_streams; tmp; tmp = tmp->next) {
+    DecodebinInputStream *input = (DecodebinInputStream *) tmp->data;
+    if (input->saw_eos == FALSE)
+      return FALSE;
+  }
+
+  /* Check pending pads */
+  if (!pending_pads_are_eos (dbin->main_input))
+    return FALSE;
+  for (tmp = dbin->other_inputs; tmp; tmp = tmp->next)
+    if (!pending_pads_are_eos ((DecodebinInput *) tmp->data))
+      return FALSE;
+
+  GST_DEBUG_OBJECT (dbin, "All streams are EOS");
+  return TRUE;
+}
+
+static void
+check_all_streams_for_eos (GstDecodebin3 * dbin)
+{
+  GList *tmp;
+
+  if (!all_inputs_are_eos (dbin))
+    return;
+
+  /* We know all streams are EOS, properly clean up everything */
+  for (tmp = dbin->input_streams; tmp; tmp = tmp->next) {
+    DecodebinInputStream *input = (DecodebinInputStream *) tmp->data;
+    GstPad *peer = gst_pad_get_peer (input->srcpad);
+
+    /* Send EOS and then remove elements */
+    if (peer) {
+      gst_pad_send_event (peer, gst_event_new_eos ());
+      gst_object_unref (peer);
+    }
+    GST_FIXME_OBJECT (input->srcpad, "Remove input stream");
+  }
+}
+
+/* Get the intersection of parser caps and available (sorted) decoders */
+static GstCaps *
+get_parser_caps_filter (GstDecodebin3 * dbin, GstCaps * caps)
+{
+  GList *tmp;
+  GstCaps *filter_caps = gst_caps_new_empty ();
+
+  g_mutex_lock (&dbin->factories_lock);
+  gst_decode_bin_update_factories_list (dbin);
+  for (tmp = dbin->decoder_factories; tmp; tmp = tmp->next) {
+    GstElementFactory *factory = (GstElementFactory *) tmp->data;
+    GstCaps *tcaps, *intersection;
+    const GList *tmps;
+
+    GST_LOG ("Trying factory %s",
+        gst_plugin_feature_get_name (GST_PLUGIN_FEATURE (factory)));
+    for (tmps = gst_element_factory_get_static_pad_templates (factory); tmps;
+        tmps = tmps->next) {
+      GstStaticPadTemplate *st = (GstStaticPadTemplate *) tmps->data;
+      if (st->direction != GST_PAD_SINK || st->presence != GST_PAD_ALWAYS)
+        continue;
+      tcaps = gst_static_pad_template_get_caps (st);
+      intersection =
+          gst_caps_intersect_full (tcaps, caps, GST_CAPS_INTERSECT_FIRST);
+      filter_caps = gst_caps_merge (filter_caps, intersection);
+      gst_caps_unref (tcaps);
+    }
+  }
+  g_mutex_unlock (&dbin->factories_lock);
+  GST_DEBUG_OBJECT (dbin, "Got filter caps %" GST_PTR_FORMAT, filter_caps);
+  return filter_caps;
+}
+
+static gboolean
+check_parser_caps_filter (GstDecodebin3 * dbin, GstCaps * caps)
+{
+  GList *tmp;
+  gboolean res = FALSE;
+
+  g_mutex_lock (&dbin->factories_lock);
+  gst_decode_bin_update_factories_list (dbin);
+  for (tmp = dbin->decoder_factories; tmp; tmp = tmp->next) {
+    GstElementFactory *factory = (GstElementFactory *) tmp->data;
+    GstCaps *tcaps;
+    const GList *tmps;
+
+    GST_LOG ("Trying factory %s",
+        gst_plugin_feature_get_name (GST_PLUGIN_FEATURE (factory)));
+    for (tmps = gst_element_factory_get_static_pad_templates (factory); tmps;
+        tmps = tmps->next) {
+      GstStaticPadTemplate *st = (GstStaticPadTemplate *) tmps->data;
+      if (st->direction != GST_PAD_SINK || st->presence != GST_PAD_ALWAYS)
+        continue;
+      tcaps = gst_static_pad_template_get_caps (st);
+      if (gst_caps_can_intersect (tcaps, caps)) {
+        res = TRUE;
+        gst_caps_unref (tcaps);
+        goto beach;
+      }
+      gst_caps_unref (tcaps);
+    }
+  }
+beach:
+  g_mutex_unlock (&dbin->factories_lock);
+  GST_DEBUG_OBJECT (dbin, "Can intersect : %d", res);
+  return res;
+}
+
+/* Probe on the output of a parser chain (the last
+ * src pad) */
+static GstPadProbeReturn
+parse_chain_output_probe (GstPad * pad, GstPadProbeInfo * info,
+    DecodebinInputStream * input)
+{
+  GstPadProbeReturn ret = GST_PAD_PROBE_OK;
+
+  if (GST_IS_EVENT (GST_PAD_PROBE_INFO_DATA (info))) {
+    GstEvent *ev = GST_PAD_PROBE_INFO_EVENT (info);
+
+    GST_DEBUG_OBJECT (pad, "Got event %s", GST_EVENT_TYPE_NAME (ev));
+    switch (GST_EVENT_TYPE (ev)) {
+      case GST_EVENT_STREAM_START:
+      {
+        GstStream *stream = NULL;
+        guint group_id = G_MAXUINT32;
+        gst_event_parse_group_id (ev, &group_id);
+        GST_DEBUG_OBJECT (pad, "Got stream-start, group_id:%d, input %p",
+            group_id, input->input);
+        if (set_input_group_id (input->input, &group_id)) {
+          ev = gst_event_make_writable (ev);
+          gst_event_set_group_id (ev, group_id);
+          GST_PAD_PROBE_INFO_DATA (info) = ev;
+        }
+        input->saw_eos = FALSE;
+
+        gst_event_parse_stream (ev, &stream);
+        /* FIXME : Would we ever end up with a stream already set on the input ?? */
+        if (stream) {
+          if (input->active_stream != stream) {
+            MultiQueueSlot *slot;
+            if (input->active_stream)
+              gst_object_unref (input->active_stream);
+            input->active_stream = stream;
+            /* We have the beginning of a stream, get a multiqueue slot and link to it */
+            slot = get_slot_for_input (input->dbin, input);
+            link_input_to_slot (input, slot);
+          } else
+            gst_object_unref (stream);
+        }
+      }
+        break;
+      case GST_EVENT_CAPS:
+      {
+        GstCaps *caps = NULL;
+        gst_event_parse_caps (ev, &caps);
+        GST_DEBUG_OBJECT (pad, "caps %" GST_PTR_FORMAT, caps);
+        if (caps && input->active_stream)
+          gst_stream_set_caps (input->active_stream, caps);
+      }
+        break;
+      case GST_EVENT_EOS:
+        /* FIXME : Make sure this makes sense ... */
+        if (TRUE) {
+          GST_DEBUG_OBJECT (pad, "real input pad, marking as EOS");
+          input->saw_eos = TRUE;
+          check_all_streams_for_eos (input->dbin);
+          ret = GST_PAD_PROBE_DROP;
+        } else {
+          MultiQueueSlot *slot = get_slot_for_input (input->dbin, input);
+
+          slot->drain_eos = input->drain_eos;
+
+          if (input->drain_eos) {
+            GST_DEBUG_OBJECT (pad,
+                "Got EOS at end of input stream (drain_eos:%d) Dropping.",
+                input->drain_eos);
+            ret = GST_PAD_PROBE_DROP;
+          } else {
+            GST_DEBUG_OBJECT (pad,
+                "Got EOS at end of input stream (drain_eos:%d) Passing.",
+                input->drain_eos);
+          }
+        }
+        break;
+      default:
+        break;
+    }
+  } else if (GST_IS_QUERY (GST_PAD_PROBE_INFO_DATA (info))) {
+    GstQuery *q = GST_PAD_PROBE_INFO_QUERY (info);
+    GST_DEBUG_OBJECT (pad, "Seeing query %s", GST_QUERY_TYPE_NAME (q));
+    /* If we have a parser, we want to reply to the caps query */
+    /* FIXME: Set a flag when the input stream is created for
+     * streams where we shouldn't reply to these queries */
+    if (GST_QUERY_TYPE (q) == GST_QUERY_CAPS
+        && (info->type & GST_PAD_PROBE_TYPE_PULL)) {
+      GstCaps *filter = NULL;
+      GstCaps *allowed;
+      gst_query_parse_caps (q, &filter);
+      allowed = get_parser_caps_filter (input->dbin, filter);
+      GST_DEBUG_OBJECT (pad,
+          "Intercepting caps query, setting %" GST_PTR_FORMAT, allowed);
+      gst_query_set_caps_result (q, allowed);
+      gst_caps_unref (allowed);
+      ret = GST_PAD_PROBE_HANDLED;
+    } else if (GST_QUERY_TYPE (q) == GST_QUERY_ACCEPT_CAPS) {
+      GstCaps *prop = NULL;
+      gst_query_parse_accept_caps (q, &prop);
+      /* Fast check against target caps */
+      if (gst_caps_can_intersect (prop, input->dbin->caps))
+        gst_query_set_accept_caps_result (q, TRUE);
+      else {
+        gboolean accepted = check_parser_caps_filter (input->dbin, prop);
+        /* check against caps filter */
+        gst_query_set_accept_caps_result (q, accepted);
+        GST_DEBUG_OBJECT (pad, "ACCEPT_CAPS query, returning %d", accepted);
+      }
+      ret = GST_PAD_PROBE_HANDLED;
+    }
+  }
+
+  return ret;
+}
+
+static DecodebinInputStream *
+create_input_stream (GstDecodebin3 * dbin, GstStream * stream, GstPad * pad,
+    DecodebinInput * input)
+{
+  DecodebinInputStream *res = g_new0 (DecodebinInputStream, 1);
+
+  GST_DEBUG_OBJECT (pad, "Creating input stream for stream %p %s (input:%p)",
+      stream, gst_stream_get_stream_id (stream), input);
+
+  res->dbin = dbin;
+  res->input = input;
+  res->pending_stream = gst_object_ref (stream);
+  res->srcpad = pad;
+
+  /* Put probe on output source pad (for detecting EOS/STREAM_START) */
+  res->output_event_probe_id =
+      gst_pad_add_probe (pad,
+      GST_PAD_PROBE_TYPE_EVENT_DOWNSTREAM | GST_PAD_PROBE_TYPE_QUERY_DOWNSTREAM,
+      (GstPadProbeCallback) parse_chain_output_probe, res, NULL);
+
+  /* Add to list of current input streams */
+  dbin->input_streams = g_list_append (dbin->input_streams, res);
+  GST_DEBUG_OBJECT (pad, "Done creating input stream");
+
+  return res;
+}
+
+static void
+remove_input_stream (GstDecodebin3 * dbin, DecodebinInputStream * stream)
+{
+  MultiQueueSlot *slot;
+
+  GST_DEBUG_OBJECT (dbin, "Removing input stream %p (%s)", stream,
+      stream->active_stream ? gst_stream_get_stream_id (stream->active_stream) :
+      "<NONE>");
+
+  /* Unlink from slot */
+  if (stream->srcpad) {
+    GstPad *peer;
+    peer = gst_pad_get_peer (stream->srcpad);
+    if (peer) {
+      gst_pad_unlink (stream->srcpad, peer);
+      gst_object_unref (peer);
+    }
+  }
+
+  slot = get_slot_for_input (dbin, stream);
+  if (slot) {
+    slot->pending_stream = NULL;
+    slot->input = NULL;
+    GST_DEBUG_OBJECT (dbin, "slot %p cleared", slot);
+  }
+
+  dbin->input_streams = g_list_remove (dbin->input_streams, stream);
+
+  g_free (stream);
+}
+
+
+/* FIXME : HACK, REMOVE, USE INPUT CHAINS */
+static GstPadProbeReturn
+parsebin_buffer_probe (GstPad * pad, GstPadProbeInfo * info,
+    DecodebinInput * input)
+{
+  GstDecodebin3 *dbin = input->dbin;
+  GList *tmp;
+
+  GST_FIXME_OBJECT (dbin, "Need a lock !");
+
+  GST_DEBUG_OBJECT (pad, "Got a buffer ! UNBLOCK !");
+
+  /* Any data out the demuxer means it's not creating pads
+   * any more right now */
+
+  /* 1. Re-use existing streams if/when possible */
+  GST_FIXME_OBJECT (dbin, "Re-use existing input streams if/when possible");
+
+  /* 2. Remove unused streams (push EOS) */
+  GST_DEBUG_OBJECT (dbin, "Removing unused streams");
+  tmp = dbin->input_streams;
+  while (tmp != NULL) {
+    DecodebinInputStream *input_stream = (DecodebinInputStream *) tmp->data;
+    GList *next = tmp->next;
+
+    GST_DEBUG_OBJECT (dbin, "Checking input stream %p", input_stream);
+    if (input_stream->input_buffer_probe_id) {
+      GST_DEBUG_OBJECT (dbin,
+          "Removing pad block on input %p pad %" GST_PTR_FORMAT, input_stream,
+          input_stream->srcpad);
+      gst_pad_remove_probe (input_stream->srcpad,
+          input_stream->input_buffer_probe_id);
+    }
+    input_stream->input_buffer_probe_id = 0;
+
+    if (input_stream->saw_eos) {
+      remove_input_stream (dbin, input_stream);
+      tmp = dbin->input_streams;
+    } else
+      tmp = next;
+  }
+
+  GST_DEBUG_OBJECT (dbin, "Creating new streams (if needed)");
+  /* 3. Create new streams */
+  for (tmp = input->pending_pads; tmp; tmp = tmp->next) {
+    GstStream *stream;
+    PendingPad *ppad = (PendingPad *) tmp->data;
+
+    stream = gst_pad_get_stream (ppad->pad);
+    if (stream == NULL) {
+      GST_ERROR_OBJECT (dbin, "No stream for pad ????");
+    } else {
+      MultiQueueSlot *slot;
+      DecodebinInputStream *input_stream;
+      /* The remaining pads in pending_pads are the ones that require a new
+       * input stream */
+      input_stream = create_input_stream (dbin, stream, ppad->pad, ppad->input);
+      /* See if we can link it straight away */
+      input_stream->active_stream = stream;
+      slot = get_slot_for_input (dbin, input_stream);
+      link_input_to_slot (input_stream, slot);
+      /* Remove the buffer and event probe */
+      gst_pad_remove_probe (ppad->pad, ppad->buffer_probe);
+      gst_pad_remove_probe (ppad->pad, ppad->event_probe);
+      g_free (ppad);
+    }
+  }
+
+  g_list_free (input->pending_pads);
+  input->pending_pads = NULL;
+
+  /* Weed out unused multiqueue slots */
+  for (tmp = dbin->slots; tmp; tmp = tmp->next) {
+    MultiQueueSlot *slot = (MultiQueueSlot *) tmp->data;
+    GST_LOG_OBJECT (dbin, "Slot %d input:%p drain_eos:%d",
+        slot->id, slot->input, slot->drain_eos);
+    if (slot->input == NULL) {
+      GST_DEBUG_OBJECT (slot->sink_pad, "Sending EOS to unused slot");
+      gst_pad_send_event (slot->sink_pad, gst_event_new_eos ());
+    }
+  }
+
+  return GST_PAD_PROBE_OK;
+}
+
+static GstPadProbeReturn
+parsebin_pending_event_probe (GstPad * pad, GstPadProbeInfo * info,
+    PendingPad * ppad)
+{
+  GstDecodebin3 *dbin = ppad->dbin;
+  /* We drop all events by default */
+  GstPadProbeReturn ret = GST_PAD_PROBE_DROP;
+  GstEvent *ev = GST_PAD_PROBE_INFO_EVENT (info);
+
+  GST_DEBUG_OBJECT (pad, "Got event %p %s", ev, GST_EVENT_TYPE_NAME (ev));
+  switch (GST_EVENT_TYPE (ev)) {
+    case GST_EVENT_EOS:
+    {
+      GST_DEBUG_OBJECT (pad, "Pending pad marked as EOS, removing");
+      ppad->input->pending_pads =
+          g_list_remove (ppad->input->pending_pads, ppad);
+      gst_pad_remove_probe (ppad->pad, ppad->buffer_probe);
+      gst_pad_remove_probe (ppad->pad, ppad->event_probe);
+      g_free (ppad);
+
+      check_all_streams_for_eos (dbin);
+    }
+      break;
+    default:
+      break;
+  }
+
+  return ret;
+}
+
+static void
+parsebin_pad_added_cb (GstElement * demux, GstPad * pad, DecodebinInput * input)
+{
+  GstDecodebin3 *dbin = input->dbin;
+  PendingPad *ppad;
+  GList *tmp;
+
+  GST_DEBUG_OBJECT (dbin, "New pad %s:%s (input:%p)", GST_DEBUG_PAD_NAME (pad),
+      input);
+
+  ppad = g_new0 (PendingPad, 1);
+  ppad->dbin = dbin;
+  ppad->input = input;
+  ppad->pad = pad;
+
+  ppad->event_probe =
+      gst_pad_add_probe (pad, GST_PAD_PROBE_TYPE_EVENT_DOWNSTREAM,
+      (GstPadProbeCallback) parsebin_pending_event_probe, ppad, NULL);
+  ppad->buffer_probe =
+      gst_pad_add_probe (pad,
+      GST_PAD_PROBE_TYPE_BLOCK | GST_PAD_PROBE_TYPE_BUFFER,
+      (GstPadProbeCallback) parsebin_buffer_probe, input, NULL);
+
+  input->pending_pads = g_list_append (input->pending_pads, ppad);
+
+  /* FIXME : ONLY DO FOR THIS PARSEBIN/INPUT ! */
+  /* Check if all existing input streams have a buffer probe set */
+  for (tmp = dbin->input_streams; tmp; tmp = tmp->next) {
+    DecodebinInputStream *input_stream = (DecodebinInputStream *) tmp->data;
+    if (input_stream->input_buffer_probe_id == 0) {
+      GST_DEBUG_OBJECT (input_stream->srcpad, "Adding blocking buffer probe");
+      input_stream->input_buffer_probe_id =
+          gst_pad_add_probe (input_stream->srcpad,
+          GST_PAD_PROBE_TYPE_BLOCK | GST_PAD_PROBE_TYPE_BUFFER,
+          (GstPadProbeCallback) parsebin_buffer_probe, input_stream->input,
+          NULL);
+    }
+  }
+}
+
+static void
+parsebin_pad_removed_cb (GstElement * demux, GstPad * pad, DecodebinInput * inp)
+{
+  GstDecodebin3 *dbin = inp->dbin;
+  DecodebinInputStream *input = NULL;
+  GList *tmp;
+  GST_DEBUG_OBJECT (pad, "removed");
+
+  for (tmp = dbin->input_streams; tmp; tmp = tmp->next) {
+    DecodebinInputStream *cand = (DecodebinInputStream *) tmp->data;
+    if (cand->srcpad == pad)
+      input = cand;
+  }
+  /* If there are no pending pads, this means we will definitely not need this
+   * stream anymore */
+  if (input) {
+    GST_DEBUG_OBJECT (pad, "stream %p", input);
+    if (inp->pending_pads == NULL) {
+      GST_DEBUG_OBJECT (pad, "Remove input stream %p", input);
+      remove_input_stream (dbin, input);
+    } else {
+      input->srcpad = NULL;
+      if (input->input_buffer_probe_id)
+        gst_pad_remove_probe (pad, input->input_buffer_probe_id);
+      input->input_buffer_probe_id = 0;
+    }
+  }
+}
diff --git a/gst/playback/gstdecodebin3.c b/gst/playback/gstdecodebin3.c
new file mode 100644
index 0000000..1cdcc83
--- /dev/null
+++ b/gst/playback/gstdecodebin3.c
@@ -0,0 +1,2438 @@
+/* GStreamer
+ *
+ * Copyright (C) <2015> Centricular Ltd
+ *  @author: Edward Hervey <edward@centricular.com>
+ *  @author: Jan Schmidt <jan@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
+
+#include <glib.h>
+#include <glib-object.h>
+#include <glib/gprintf.h>
+#include <gst/gst.h>
+#include <gst/pbutils/pbutils.h>
+
+#include "gstplayback.h"
+#include "gstplay-enum.h"
+#include "gstrawcaps.h"
+
+
+/**
+ * Global design
+ *
+ * 1) From sink pad to elementary streams (GstParseBin)
+ * 
+ * The input sink pads are fed to GstParseBin. GstParseBin will feed them
+ * through typefind. When the caps are detected (or changed) we recursively
+ * figure out which demuxer, parser or depayloader is needed until we get to
+ * elementary streams.
+ *
+ * All elementary streams (whether decoded or not, whether exposed or not) are
+ * fed through multiqueue. There is only *one* multiqueue in decodebin3.
+ *
+ * => MultiQueue is the cornerstone.
+ * => No buffering before multiqueue
+ *
+ * 2) Elementary streams
+ *
+ * After GstParseBin, there are 3 main components:
+ *  1) Input Streams (provided by GstParseBin)
+ *  2) Multiqueue slots
+ *  3) Output Streams
+ *
+ * Input Streams correspond to the stream coming from GstParseBin and that gets
+ * fed into a multiqueue slot.
+ *
+ * Output Streams correspond to the combination of a (optional) decoder and an
+ * output ghostpad. Output Streams can be moved from one multiqueue slot to
+ * another, can reconfigure itself (different decoders), and can be
+ * added/removed depending on the configuration (all streams outputted, only one
+ * of each type, ...).
+ *
+ * Multiqueue slots correspond to a pair of sink/src pad from multiqueue. For
+ * each 'active' Input Stream there is a corresponding slot.
+ * Slots might have different streams on input and output (due to internal
+ * buffering).
+ *
+ * Due to internal queuing/buffering/..., all those components (might) behave
+ * asynchronously. Therefore probes will be used on each component source pad to
+ * detect various key-points:
+ *  * EOS :
+ *     the stream is done => Mark that component as done, optionally freeing/removing it
+ *  * STREAM_START :
+ *     a new stream is starting => link it further if needed
+ *
+ *
+ * 3) Gradual replacement
+ *
+ * If the caps change at any point in decodebin (input sink pad, demuxer output,
+ * multiqueue output, ..), we gradually replace (if needed) the following elements.
+ *
+ * This is handled by the probes in various locations:
+ *  a) typefind output
+ *  b) multiqueue input (source pad of Input Streams)
+ *  c) multiqueue output (source pad of Multiqueue Slots)
+ *  d) final output (target of source ghostpads)
+ *
+ * When CAPS event arrive at those points, one of three things can happen:
+ * a) There is no elements downstream yet, just create/link-to following elements
+ * b) There are downstream elements, do a ACCEPT_CAPS query
+ *  b.1) The new CAPS are accepted, keep current configuration
+ *  b.2) The new CAPS are not accepted, remove following elements then do a)
+ *
+ *
+ *
+ *    Components:
+ *
+ *                                                   MultiQ     Output
+ *                     Input(s)                      Slots      Streams
+ *  /-------------------------------------------\   /-----\  /------------- \
+ *
+ * +-------------------------------------------------------------------------+
+ * |                                                                         |
+ * | +---------------------------------------------+                         |
+ * | |   GstParseBin(s)                            |                         |
+ * | |                +--------------+             |  +-----+                |
+ * | |                |              |---[parser]-[|--| Mul |---[ decoder ]-[|
+ * |]--[ typefind ]---|  demuxer(s)  |------------[|  | ti  |                |
+ * | |                |  (if needed) |---[parser]-[|--| qu  |                |
+ * | |                |              |---[parser]-[|--| eu  |---[ decoder ]-[|
+ * | |                +--------------+             |  +------             ^  |
+ * | +---------------------------------------------+        ^             |  |
+ * |                                               ^        |             |  |
+ * +-----------------------------------------------+--------+-------------+--+
+ *                                                 |        |             |
+ *                                                 |        |             |
+ *                                       Probes  --/--------/-------------/
+ *
+ * ATOMIC SWITCHING
+ *
+ * We want to ensure we re-use decoders when switching streams. This takes place
+ * at the multiqueue output level.
+ *
+ * MAIN CONCEPTS
+ *  1) Activating a stream (i.e. linking a slot to an output) is only done within
+ *    the streaming thread in the multiqueue_src_probe() and only if the
+      stream is in the REQUESTED selection.
+ *  2) Deactivating a stream (i.e. unlinking a slot from an output) is also done
+ *    within the stream thread, but only in a purposefully called IDLE probe
+ *    that calls reassign_slot().
+ *
+ * Based on those two principles, 3 "selection" of streams (stream-id) are used:
+ * 1) requested_selection
+ *    All streams within that list should be activated
+ * 2) active_selection
+ *    List of streams that are exposed by decodebin
+ * 3) to_activate
+ *    List of streams that will be moved to requested_selection in the
+ *    reassign_slot() method (i.e. once a stream was deactivated, and the output
+ *    was retargetted)
+ */
+
+
+GST_DEBUG_CATEGORY_STATIC (decodebin3_debug);
+#define GST_CAT_DEFAULT decodebin3_debug
+
+#define GST_TYPE_DECODEBIN3	 (gst_decodebin3_get_type ())
+
+#define EXTRA_DEBUG 1
+
+typedef struct _GstDecodebin3 GstDecodebin3;
+typedef struct _GstDecodebin3Class GstDecodebin3Class;
+
+typedef struct _DecodebinInputStream DecodebinInputStream;
+typedef struct _DecodebinInput DecodebinInput;
+typedef struct _DecodebinOutputStream DecodebinOutputStream;
+
+struct _GstDecodebin3
+{
+  GstBin bin;
+
+  /* input_lock protects the following variables */
+  GMutex input_lock;
+  /* Main input (static sink pad) */
+  DecodebinInput *main_input;
+  /* Supplementary input (request sink pads) */
+  GList *other_inputs;
+  /* counter for input */
+  guint32 input_counter;
+  /* Current stream group_id (default : G_MAXUINT32) */
+  /* FIXME : Needs to be resetted appropriately (when upstream changes ?) */
+  guint32 current_group_id;
+  /* End of variables protected by input_lock */
+
+  GstElement *multiqueue;
+
+  /* FIXME : Mutex for protecting values below */
+  GstStreamCollection *collection;      /* Active collection */
+
+  GList *input_streams;         /* List of DecodebinInputStream for active collection */
+  GList *output_streams;        /* List of DecodebinOutputStream used for output */
+  GList *slots;                 /* List of MultiQueueSlot */
+  guint slot_id;
+
+  /* selection_lock protects access to following variables */
+  GMutex selection_lock;
+  /* requested selection of stream-id to activate post-multiqueue */
+  GList *requested_selection;
+  /* list of stream-id currently activated in output */
+  GList *active_selection;
+  /* List of stream-id that need to be activated (after a stream switch for ex) */
+  GList *to_activate;
+  /* Pending select streams event */
+  guint32 select_streams_seqnum;
+  /* pending list of streams to select (from downstream) */
+  GList *pending_select_streams;
+  /* TRUE if requested_selection was updated, will become FALSE once
+   * it has fully transitioned to active */
+  gboolean selection_updated;
+  /* End of variables protected by selection_lock */
+
+  /* List of pending collections.
+   * FIXME : Is this really needed ? */
+  GList *pending_collection;
+
+
+  /* Factories */
+  GMutex factories_lock;
+  guint32 factories_cookie;
+  /* All DECODABLE factories */
+  GList *factories;
+  /* Only DECODER factories */
+  GList *decoder_factories;
+  /* DECODABLE but not DECODER factories */
+  GList *decodable_factories;
+
+  /* counters for pads */
+  guint32 apadcount, vpadcount, tpadcount, opadcount;
+
+  /* Properties */
+  GstCaps *caps;
+};
+
+struct _GstDecodebin3Class
+{
+  GstBinClass class;
+
+    gint (*select_stream) (GstDecodebin3 * dbin,
+      GstStreamCollection * collection, GstStream * stream);
+};
+
+/* Input of decodebin, controls input pad and parsebin */
+struct _DecodebinInput
+{
+  GstDecodebin3 *dbin;
+
+  gboolean is_main;
+
+  GstPad *ghost_sink;
+  GstPad *parsebin_sink;
+
+  GstStreamCollection *collection;      /* Active collection */
+
+  guint group_id;
+
+  GstElement *parsebin;
+
+  gulong pad_added_sigid;
+  gulong pad_removed_sigid;
+
+  /* HACK : Remove these fields */
+  /* List of PendingPad structures */
+  GList *pending_pads;
+};
+
+/* Multiqueue Slots */
+typedef struct _MultiQueueSlot
+{
+  guint id;
+
+  GstDecodebin3 *dbin;
+  /* Type of stream handled by this slot */
+  GstStreamType type;
+
+  /* Linked input and output */
+  DecodebinInputStream *input;
+
+  /* pending => last stream received on sink pad */
+  GstStream *pending_stream;
+  /* active => last stream outputted on source pad */
+  GstStream *active_stream;
+
+  GstPad *sink_pad, *src_pad;
+
+  /* id of the MQ src_pad event probe */
+  gulong probe_id;
+
+  gboolean drain_eos;
+
+  DecodebinOutputStream *output;
+} MultiQueueSlot;
+
+/* Streams that are exposed downstream (i.e. output) */
+struct _DecodebinOutputStream
+{
+  GstDecodebin3 *dbin;
+  /* The type of stream handled by this output stream */
+  GstStreamType type;
+
+  /* The slot to which this output stream is currently connected to */
+  MultiQueueSlot *slot;
+
+  GstElement *decoder;          /* Optional */
+  GstPad *decoder_sink, *decoder_src;
+  gboolean linked;
+
+  /* ghostpad */
+  GstPad *src_pad;
+  /* Flag if ghost pad is exposed */
+  gboolean src_exposed;
+
+  /* keyframe dropping probe */
+  gulong drop_probe_id;
+};
+
+/* Pending pads from parsebin */
+typedef struct _PendingPad
+{
+  GstDecodebin3 *dbin;
+  DecodebinInput *input;
+  GstPad *pad;
+
+  gulong buffer_probe;
+  gulong event_probe;
+  gboolean saw_eos;
+} PendingPad;
+
+/* properties */
+#define DEFAULT_CAPS (gst_static_caps_get (&default_raw_caps))
+
+enum
+{
+  PROP_0,
+  PROP_CAPS
+};
+
+/* signals */
+enum
+{
+  SIGNAL_SELECT_STREAM,
+  LAST_SIGNAL
+};
+static guint gst_decodebin3_signals[LAST_SIGNAL] = { 0 };
+
+#define SELECTION_LOCK(dbin) G_STMT_START {				\
+    GST_LOG_OBJECT (dbin,						\
+		    "selection locking from thread %p",			\
+		    g_thread_self ());					\
+    g_mutex_lock (&dbin->selection_lock);				\
+    GST_LOG_OBJECT (dbin,						\
+		    "selection locked from thread %p",			\
+		    g_thread_self ());					\
+  } G_STMT_END
+
+#define SELECTION_UNLOCK(dbin) G_STMT_START {				\
+    GST_LOG_OBJECT (dbin,						\
+		    "selection unlocking from thread %p",		\
+		    g_thread_self ());					\
+    g_mutex_unlock (&dbin->selection_lock);				\
+  } G_STMT_END
+
+#define INPUT_LOCK(dbin) G_STMT_START {				\
+    GST_LOG_OBJECT (dbin,						\
+		    "input locking from thread %p",			\
+		    g_thread_self ());					\
+    g_mutex_lock (&dbin->input_lock);				\
+    GST_LOG_OBJECT (dbin,						\
+		    "input locked from thread %p",			\
+		    g_thread_self ());					\
+  } G_STMT_END
+
+#define INPUT_UNLOCK(dbin) G_STMT_START {				\
+    GST_LOG_OBJECT (dbin,						\
+		    "input unlocking from thread %p",		\
+		    g_thread_self ());					\
+    g_mutex_unlock (&dbin->input_lock);				\
+  } G_STMT_END
+
+GType gst_decodebin3_get_type (void);
+#define gst_decodebin3_parent_class parent_class
+G_DEFINE_TYPE (GstDecodebin3, gst_decodebin3, GST_TYPE_BIN);
+
+static GstStaticCaps default_raw_caps = GST_STATIC_CAPS (DEFAULT_RAW_CAPS);
+
+static GstStaticPadTemplate sink_template = GST_STATIC_PAD_TEMPLATE ("sink",
+    GST_PAD_SINK,
+    GST_PAD_ALWAYS,
+    GST_STATIC_CAPS_ANY);
+
+static GstStaticPadTemplate request_sink_template =
+GST_STATIC_PAD_TEMPLATE ("sink_%u",
+    GST_PAD_SINK,
+    GST_PAD_REQUEST,
+    GST_STATIC_CAPS_ANY);
+
+static GstStaticPadTemplate video_src_template =
+GST_STATIC_PAD_TEMPLATE ("video_%u",
+    GST_PAD_SRC,
+    GST_PAD_SOMETIMES,
+    GST_STATIC_CAPS_ANY);
+
+static GstStaticPadTemplate audio_src_template =
+GST_STATIC_PAD_TEMPLATE ("audio_%u",
+    GST_PAD_SRC,
+    GST_PAD_SOMETIMES,
+    GST_STATIC_CAPS_ANY);
+
+static GstStaticPadTemplate text_src_template =
+GST_STATIC_PAD_TEMPLATE ("text_%u",
+    GST_PAD_SRC,
+    GST_PAD_SOMETIMES,
+    GST_STATIC_CAPS_ANY);
+
+static GstStaticPadTemplate src_template = GST_STATIC_PAD_TEMPLATE ("src_%u",
+    GST_PAD_SRC,
+    GST_PAD_SOMETIMES,
+    GST_STATIC_CAPS_ANY);
+
+
+static void gst_decodebin3_dispose (GObject * object);
+static void gst_decodebin3_set_property (GObject * object, guint prop_id,
+    const GValue * value, GParamSpec * pspec);
+static void gst_decodebin3_get_property (GObject * object, guint prop_id,
+    GValue * value, GParamSpec * pspec);
+
+static gboolean parsebin_autoplug_continue_cb (GstElement *
+    parsebin, GstPad * pad, GstCaps * caps, GstDecodebin3 * dbin);
+
+static gint
+gst_decodebin3_select_stream (GstDecodebin3 * dbin,
+    GstStreamCollection * collection, GstStream * stream)
+{
+  GST_LOG_OBJECT (dbin, "default select-stream, returning -1");
+
+  return -1;
+}
+
+static GstPad *gst_decodebin3_request_new_pad (GstElement * element,
+    GstPadTemplate * temp, const gchar * name, const GstCaps * caps);
+static void gst_decodebin3_handle_message (GstBin * bin, GstMessage * message);
+static GstStateChangeReturn gst_decodebin3_change_state (GstElement * element,
+    GstStateChange transition);
+static gboolean gst_decodebin3_send_event (GstElement * element,
+    GstEvent * event);
+
+static void gst_decode_bin_update_factories_list (GstDecodebin3 * dbin);
+#if 0
+static gboolean have_factory (GstDecodebin3 * dbin, GstCaps * caps,
+    GstElementFactoryListType ftype);
+#endif
+
+static void free_input (GstDecodebin3 * dbin, DecodebinInput * input);
+static DecodebinInput *create_new_input (GstDecodebin3 * dbin, gboolean main);
+static gboolean set_input_group_id (DecodebinInput * input, guint32 * group_id);
+
+static void reconfigure_output_stream (DecodebinOutputStream * output,
+    MultiQueueSlot * slot);
+static void free_output_stream (GstDecodebin3 * dbin,
+    DecodebinOutputStream * output);
+static DecodebinOutputStream *create_output_stream (GstDecodebin3 * dbin,
+    GstStreamType type);
+
+static GstPadProbeReturn slot_unassign_probe (GstPad * pad,
+    GstPadProbeInfo * info, MultiQueueSlot * slot);
+static gboolean reassign_slot (GstDecodebin3 * dbin, MultiQueueSlot * slot);
+static MultiQueueSlot *get_slot_for_input (GstDecodebin3 * dbin,
+    DecodebinInputStream * input);
+static void link_input_to_slot (DecodebinInputStream * input,
+    MultiQueueSlot * slot);
+static void free_multiqueue_slot (GstDecodebin3 * dbin, MultiQueueSlot * slot);
+
+/* FIXME: Really make all the parser stuff a self-contained helper object */
+#include "gstdecodebin3-parse.c"
+
+static gboolean
+_gst_int_accumulator (GSignalInvocationHint * ihint,
+    GValue * return_accu, const GValue * handler_return, gpointer dummy)
+{
+  gint res = g_value_get_int (handler_return);
+
+  if (!(ihint->run_type & G_SIGNAL_RUN_CLEANUP))
+    g_value_set_int (return_accu, res);
+
+  if (res == -1)
+    return TRUE;
+
+  return FALSE;
+}
+
+static void
+gst_decodebin3_class_init (GstDecodebin3Class * klass)
+{
+  GObjectClass *gobject_klass = (GObjectClass *) klass;
+  GstElementClass *element_class = (GstElementClass *) klass;
+  GstBinClass *bin_klass = (GstBinClass *) klass;
+
+  gobject_klass->dispose = gst_decodebin3_dispose;
+  gobject_klass->set_property = gst_decodebin3_set_property;
+  gobject_klass->get_property = gst_decodebin3_get_property;
+
+  /* FIXME : ADD PROPERTIES ! */
+  g_object_class_install_property (gobject_klass, PROP_CAPS,
+      g_param_spec_boxed ("caps", "Caps",
+          "The caps on which to stop decoding. (NULL = default)",
+          GST_TYPE_CAPS, G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS));
+
+  /* FIXME : ADD SIGNALS ! */
+  /**
+   * GstDecodebin3::select-stream
+   * @decodebin: a #GstDecodebin3
+   * @collection: a #GstStreamCollection
+   * @stream: a #GstStream
+   *
+   * This signal is emitted whenever @decodebin needs to decide whether
+   * to expose a @stream of a given @collection.
+   *
+   * Returns: 1 if the stream should be selected, 0 if it shouldn't be selected.
+   * A value of -1 (default) lets @decodebin decide what to do with the stream.
+   * */
+  gst_decodebin3_signals[SIGNAL_SELECT_STREAM] =
+      g_signal_new ("select-stream", G_TYPE_FROM_CLASS (klass),
+      G_SIGNAL_RUN_LAST, G_STRUCT_OFFSET (GstDecodebin3Class, select_stream),
+      _gst_int_accumulator, NULL, g_cclosure_marshal_generic,
+      G_TYPE_INT, 2, GST_TYPE_STREAM_COLLECTION, GST_TYPE_STREAM);
+
+
+  element_class->request_new_pad =
+      GST_DEBUG_FUNCPTR (gst_decodebin3_request_new_pad);
+  element_class->change_state = GST_DEBUG_FUNCPTR (gst_decodebin3_change_state);
+  element_class->send_event = GST_DEBUG_FUNCPTR (gst_decodebin3_send_event);
+
+  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 (&request_sink_template));
+  gst_element_class_add_pad_template (element_class,
+      gst_static_pad_template_get (&video_src_template));
+  gst_element_class_add_pad_template (element_class,
+      gst_static_pad_template_get (&audio_src_template));
+  gst_element_class_add_pad_template (element_class,
+      gst_static_pad_template_get (&text_src_template));
+  gst_element_class_add_pad_template (element_class,
+      gst_static_pad_template_get (&src_template));
+
+  gst_element_class_set_static_metadata (element_class,
+      "Decoder Bin 3", "Generic/Bin/Decoder",
+      "Autoplug and decode to raw media",
+      "Edward Hervey <edward@centricular.com>");
+
+  bin_klass->handle_message = gst_decodebin3_handle_message;
+
+  klass->select_stream = gst_decodebin3_select_stream;
+}
+
+static void
+gst_decodebin3_init (GstDecodebin3 * dbin)
+{
+  /* Create main input */
+  dbin->main_input = create_new_input (dbin, TRUE);
+
+  dbin->multiqueue = gst_element_factory_make ("multiqueue", NULL);
+  g_object_set (dbin->multiqueue, "sync-by-running-time", TRUE,
+      "max-size-buffers", 0, "use-interleave", TRUE, NULL);
+  gst_bin_add ((GstBin *) dbin, dbin->multiqueue);
+
+  dbin->current_group_id = G_MAXUINT32;
+
+  g_mutex_init (&dbin->factories_lock);
+  g_mutex_init (&dbin->selection_lock);
+  g_mutex_init (&dbin->input_lock);
+
+  dbin->caps = gst_static_caps_get (&default_raw_caps);
+}
+
+static void
+gst_decodebin3_dispose (GObject * object)
+{
+  GstDecodebin3 *dbin = (GstDecodebin3 *) object;
+
+  if (dbin->factories)
+    gst_plugin_feature_list_free (dbin->factories);
+  if (dbin->decoder_factories)
+    g_list_free (dbin->decoder_factories);
+  if (dbin->decodable_factories)
+    g_list_free (dbin->decodable_factories);
+  g_list_free (dbin->requested_selection);
+  g_list_free (dbin->active_selection);
+  g_list_free (dbin->to_activate);
+  g_list_free (dbin->pending_select_streams);
+
+  free_input (dbin, dbin->main_input);
+  /* FIXME : GO OVER INPUTS */
+
+  G_OBJECT_CLASS (parent_class)->dispose (object);
+}
+
+static void
+gst_decodebin3_set_property (GObject * object, guint prop_id,
+    const GValue * value, GParamSpec * pspec)
+{
+  GstDecodebin3 *dbin = (GstDecodebin3 *) object;
+
+  /* FIXME : IMPLEMENT */
+  switch (prop_id) {
+    case PROP_CAPS:
+      GST_OBJECT_LOCK (dbin);
+      if (dbin->caps)
+        gst_caps_unref (dbin->caps);
+      dbin->caps = g_value_dup_boxed (value);
+      GST_OBJECT_UNLOCK (dbin);
+      break;
+    default:
+      G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec);
+      break;
+  }
+}
+
+static void
+gst_decodebin3_get_property (GObject * object, guint prop_id, GValue * value,
+    GParamSpec * pspec)
+{
+  GstDecodebin3 *dbin = (GstDecodebin3 *) object;
+
+  /* FIXME : IMPLEMENT */
+  switch (prop_id) {
+    case PROP_CAPS:
+      GST_OBJECT_LOCK (dbin);
+      g_value_set_boxed (value, dbin->caps);
+      GST_OBJECT_UNLOCK (dbin);
+      break;
+    default:
+      G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec);
+      break;
+  }
+}
+
+static gboolean
+parsebin_autoplug_continue_cb (GstElement * parsebin, GstPad * pad,
+    GstCaps * caps, GstDecodebin3 * dbin)
+{
+  GST_DEBUG_OBJECT (pad, "caps %" GST_PTR_FORMAT, caps);
+
+  /* If it matches our target caps, expose it */
+  if (gst_caps_can_intersect (caps, dbin->caps))
+    return FALSE;
+
+  return TRUE;
+}
+
+/* This method should be called whenever a STREAM_START event
+ * comes out of a given parsebin.
+ * The caller shall replace the group_id if the function returns TRUE */
+static gboolean
+set_input_group_id (DecodebinInput * input, guint32 * group_id)
+{
+  GstDecodebin3 *dbin = input->dbin;
+
+  if (input->group_id != *group_id) {
+    if (input->group_id != G_MAXUINT32)
+      GST_WARNING_OBJECT (dbin,
+          "Group id changed (%" G_GUINT32_FORMAT " -> %" G_GUINT32_FORMAT
+          ") on input %p ", input->group_id, *group_id, input);
+    input->group_id = *group_id;
+  }
+
+  if (*group_id != dbin->current_group_id) {
+    if (dbin->current_group_id == G_MAXUINT32) {
+      GST_DEBUG_OBJECT (dbin, "Setting current group id to %" G_GUINT32_FORMAT,
+          *group_id);
+      dbin->current_group_id = *group_id;
+    }
+    *group_id = dbin->current_group_id;
+    return TRUE;
+  }
+
+  return FALSE;
+}
+
+/* Call with INPUT_LOCK taken */
+static gboolean
+ensure_input_parsebin (GstDecodebin3 * dbin, DecodebinInput * input)
+{
+  gboolean set_state = FALSE;
+
+  if (input->parsebin == NULL) {
+    input->parsebin = gst_element_factory_make ("parsebin", NULL);
+    if (input->parsebin == NULL)
+      goto no_parsebin;
+    input->parsebin = gst_object_ref (input->parsebin);
+    input->parsebin_sink = gst_element_get_static_pad (input->parsebin, "sink");
+    input->pad_added_sigid =
+        g_signal_connect (input->parsebin, "pad-added",
+        (GCallback) parsebin_pad_added_cb, input);
+    input->pad_removed_sigid =
+        g_signal_connect (input->parsebin, "pad-removed",
+        (GCallback) parsebin_pad_removed_cb, input);
+    g_signal_connect (input->parsebin, "autoplug-continue",
+        (GCallback) parsebin_autoplug_continue_cb, dbin);
+  }
+
+  if (GST_OBJECT_PARENT (GST_OBJECT (input->parsebin)) != GST_OBJECT (dbin)) {
+    gst_bin_add (GST_BIN (dbin), input->parsebin);
+    set_state = TRUE;
+  }
+
+  gst_ghost_pad_set_target (GST_GHOST_PAD (input->ghost_sink),
+      input->parsebin_sink);
+  if (set_state)
+    gst_element_sync_state_with_parent (input->parsebin);
+
+  return TRUE;
+
+  /* ERRORS */
+no_parsebin:
+  {
+    gst_element_post_message ((GstElement *) dbin,
+        gst_missing_element_message_new ((GstElement *) dbin, "parsebin"));
+    return FALSE;
+  }
+}
+
+static GstPadLinkReturn
+gst_decodebin3_input_pad_link (GstPad * pad, GstObject * parent, GstPad * peer)
+{
+  GstDecodebin3 *dbin = (GstDecodebin3 *) parent;
+  GstPadLinkReturn res = GST_PAD_LINK_OK;
+  DecodebinInput *input;
+
+  GST_LOG_OBJECT (parent, "Got link on input pad %" GST_PTR_FORMAT
+      ". Creating parsebin if needed", pad);
+
+  if ((input = g_object_get_data (G_OBJECT (pad), "decodebin.input")) == NULL)
+    goto fail;
+
+  INPUT_LOCK (dbin);
+  if (!ensure_input_parsebin (dbin, input))
+    res = GST_PAD_LINK_REFUSED;
+  INPUT_UNLOCK (dbin);
+
+  return res;
+fail:
+  GST_ERROR_OBJECT (parent, "Failed to retrieve input state from ghost pad");
+  return GST_PAD_LINK_REFUSED;
+}
+
+static void
+gst_decodebin3_input_pad_unlink (GstPad * pad, GstObject * parent)
+{
+  GstDecodebin3 *dbin = (GstDecodebin3 *) parent;
+  DecodebinInput *input;
+
+  GST_LOG_OBJECT (parent, "Got unlink on input pad %" GST_PTR_FORMAT
+      ". Removing parsebin.", pad);
+
+  if ((input = g_object_get_data (G_OBJECT (pad), "decodebin.input")) == NULL)
+    goto fail;
+
+  INPUT_LOCK (dbin);
+  if (input->parsebin == NULL) {
+    INPUT_UNLOCK (dbin);
+    return;
+  }
+
+  if (GST_OBJECT_PARENT (GST_OBJECT (input->parsebin)) == GST_OBJECT (dbin)) {
+    gst_bin_remove (GST_BIN (dbin), input->parsebin);
+    gst_element_set_state (input->parsebin, GST_STATE_NULL);
+  }
+  INPUT_UNLOCK (dbin);
+  return;
+
+fail:
+  GST_ERROR_OBJECT (parent, "Failed to retrieve input state from ghost pad");
+  return;
+}
+
+static void
+free_input (GstDecodebin3 * dbin, DecodebinInput * input)
+{
+  GST_DEBUG ("Freeing input %p", input);
+  gst_ghost_pad_set_target (GST_GHOST_PAD (input->ghost_sink), NULL);
+  gst_element_remove_pad (GST_ELEMENT (dbin), input->ghost_sink);
+  if (input->parsebin) {
+    g_signal_handler_disconnect (input->parsebin, input->pad_removed_sigid);
+    g_signal_handler_disconnect (input->parsebin, input->pad_added_sigid);
+    gst_element_set_state (input->parsebin, GST_STATE_NULL);
+    gst_object_unref (input->parsebin);
+    gst_object_unref (input->parsebin_sink);
+  }
+  g_free (input);
+}
+
+/* Call with INPUT_LOCK taken */
+static DecodebinInput *
+create_new_input (GstDecodebin3 * dbin, gboolean main)
+{
+  DecodebinInput *input;
+
+  input = g_new0 (DecodebinInput, 1);
+  input->dbin = dbin;
+  input->is_main = main;
+  input->group_id = G_MAXUINT32;
+  if (main)
+    input->ghost_sink = gst_ghost_pad_new_no_target ("sink", GST_PAD_SINK);
+  else {
+    gchar *pad_name = g_strdup_printf ("sink_%u", dbin->input_counter++);
+    input->ghost_sink = gst_ghost_pad_new_no_target (pad_name, GST_PAD_SINK);
+    g_free (pad_name);
+  }
+  g_object_set_data (G_OBJECT (input->ghost_sink), "decodebin.input", input);
+  gst_pad_set_link_function (input->ghost_sink, gst_decodebin3_input_pad_link);
+  gst_pad_set_unlink_function (input->ghost_sink,
+      gst_decodebin3_input_pad_unlink);
+
+  gst_pad_set_active (input->ghost_sink, TRUE);
+  gst_element_add_pad ((GstElement *) dbin, input->ghost_sink);
+
+  return input;
+
+}
+
+static GstPad *
+gst_decodebin3_request_new_pad (GstElement * element, GstPadTemplate * temp,
+    const gchar * name, const GstCaps * caps)
+{
+  GstDecodebin3 *dbin = (GstDecodebin3 *) element;
+  DecodebinInput *input;
+  GstPad *res = NULL;
+
+  /* We are ignoring names for the time being, not sure it makes any sense
+   * within the context of decodebin3 ... */
+  INPUT_LOCK (dbin);
+  input = create_new_input (dbin, FALSE);
+  if (input) {
+    dbin->other_inputs = g_list_append (dbin->other_inputs, input);
+    res = input->ghost_sink;
+  }
+  INPUT_UNLOCK (dbin);
+
+  return res;
+}
+
+/* Must be called with factories lock! */
+static void
+gst_decode_bin_update_factories_list (GstDecodebin3 * dbin)
+{
+  guint cookie;
+
+  cookie = gst_registry_get_feature_list_cookie (gst_registry_get ());
+  if (!dbin->factories || dbin->factories_cookie != cookie) {
+    GList *tmp;
+    if (dbin->factories)
+      gst_plugin_feature_list_free (dbin->factories);
+    if (dbin->decoder_factories)
+      g_list_free (dbin->decoder_factories);
+    if (dbin->decodable_factories)
+      g_list_free (dbin->decodable_factories);
+    dbin->factories =
+        gst_element_factory_list_get_elements
+        (GST_ELEMENT_FACTORY_TYPE_DECODABLE, GST_RANK_MARGINAL);
+    dbin->factories =
+        g_list_sort (dbin->factories, gst_plugin_feature_rank_compare_func);
+    dbin->factories_cookie = cookie;
+
+    /* Filter decoder and other decodables */
+    dbin->decoder_factories = NULL;
+    dbin->decodable_factories = NULL;
+    for (tmp = dbin->factories; tmp; tmp = tmp->next) {
+      GstElementFactory *fact = (GstElementFactory *) tmp->data;
+      if (gst_element_factory_list_is_type (fact,
+              GST_ELEMENT_FACTORY_TYPE_DECODER))
+        dbin->decoder_factories = g_list_append (dbin->decoder_factories, fact);
+      else
+        dbin->decodable_factories =
+            g_list_append (dbin->decodable_factories, fact);
+    }
+  }
+}
+
+/* Must be called with appropriate lock if list is a protected variable */
+static gboolean
+stream_in_list (GList * list, const gchar * sid)
+{
+  GList *tmp;
+
+#if EXTRA_DEBUG
+  for (tmp = list; tmp; tmp = tmp->next) {
+    gchar *osid = (gchar *) tmp->data;
+    GST_DEBUG ("Checking %s against %s", sid, osid);
+  }
+#endif
+
+  for (tmp = list; tmp; tmp = tmp->next) {
+    gchar *osid = (gchar *) tmp->data;
+    if (!g_strcmp0 (sid, osid))
+      return TRUE;
+  }
+
+  return FALSE;
+}
+
+static void
+update_requested_selection (GstDecodebin3 * dbin,
+    GstStreamCollection * collection)
+{
+  guint i, nb;
+  GList *tmp = NULL;
+  GstStreamType used_types = 0;
+
+  nb = gst_stream_collection_get_size (collection);
+
+  /* 1. Is there a pending SELECT_STREAMS we can return straight away since
+   *  the switch handler will take care of the pending selection */
+  SELECTION_LOCK (dbin);
+  if (dbin->pending_select_streams) {
+    GST_DEBUG_OBJECT (dbin,
+        "No need to create pending selection, SELECT_STREAMS underway");
+    goto beach;
+  }
+
+  /* 2. If not, are we in EXPOSE_ALL_MODE ? If so, match everything */
+  GST_FIXME_OBJECT (dbin, "Implement EXPOSE_ALL_MODE");
+
+  /* 3. If not, check if we already have some of the streams in the
+   * existing active/requested selection */
+  for (i = 0; i < nb; i++) {
+    GstStream *stream = gst_stream_collection_get_stream (collection, i);
+    const gchar *sid = gst_stream_get_stream_id (stream);
+    gint request = -1;
+    /* Fire select-stream signal to see if outside components want to
+     * hint at which streams should be selected */
+    g_signal_emit (G_OBJECT (dbin),
+        gst_decodebin3_signals[SIGNAL_SELECT_STREAM], 0, collection, stream,
+        &request);
+    GST_DEBUG_OBJECT (dbin, "stream %s , request:%d", sid, request);
+    if (request == 1 || (request == -1
+            && (stream_in_list (dbin->requested_selection, sid)
+                || stream_in_list (dbin->active_selection, sid)))) {
+      GstStreamType curtype = gst_stream_get_stream_type (stream);
+      if (request == 1)
+        GST_DEBUG_OBJECT (dbin,
+            "Using stream requested by 'select-stream' signal : %s", sid);
+      else
+        GST_DEBUG_OBJECT (dbin,
+            "Re-using stream already present in requested or active selection : %s",
+            sid);
+      tmp = g_list_append (tmp, (gchar *) sid);
+      used_types |= curtype;
+    }
+  }
+
+  /* 4. If not, match one stream of each type */
+  for (i = 0; i < nb; i++) {
+    GstStream *stream = gst_stream_collection_get_stream (collection, i);
+    GstStreamType curtype = gst_stream_get_stream_type (stream);
+    if (!(used_types & curtype)) {
+      const gchar *sid = gst_stream_get_stream_id (stream);
+      GST_DEBUG_OBJECT (dbin, "Selecting stream '%s' of type %s",
+          sid, gst_stream_type_get_name (curtype));
+      tmp = g_list_append (tmp, (gchar *) sid);
+      used_types |= curtype;
+    }
+  }
+
+beach:
+  /* Finally set the requested selection */
+  if (tmp) {
+    if (dbin->requested_selection) {
+      GST_FIXME_OBJECT (dbin,
+          "Replacing non-NULL requested_selection, what should we do ??");
+      g_list_free (dbin->requested_selection);
+    }
+    dbin->requested_selection = tmp;
+    dbin->selection_updated = TRUE;
+  }
+  SELECTION_UNLOCK (dbin);
+}
+
+/* Call with INPUT_LOCK taken */
+static GstStreamCollection *
+get_merged_collection (GstDecodebin3 * dbin)
+{
+  gboolean needs_merge = FALSE;
+  GstStreamCollection *res = NULL;
+  GList *tmp;
+  guint i, nb_stream;
+
+  /* First check if we need to do a merge or just return the only collection */
+  res = dbin->main_input->collection;
+
+  for (tmp = dbin->other_inputs; tmp; tmp = tmp->next) {
+    DecodebinInput *input = (DecodebinInput *) tmp->data;
+    if (input->collection) {
+      if (res) {
+        needs_merge = TRUE;
+        break;
+      }
+      res = input->collection;
+    }
+  }
+
+  if (!needs_merge) {
+    GST_DEBUG_OBJECT (dbin, "No need to merge, returning %p", res);
+    return res;
+  }
+
+  /* We really need to create a new collection */
+  /* FIXME : Some numbering scheme maybe ?? */
+  res = gst_stream_collection_new ("decodebin3");
+  if (dbin->main_input->collection) {
+    nb_stream = gst_stream_collection_get_size (dbin->main_input->collection);
+    GST_DEBUG_OBJECT (dbin, "main input %p %d", dbin->main_input, nb_stream);
+    for (i = 0; i < nb_stream; i++) {
+      GstStream *stream =
+          gst_stream_collection_get_stream (dbin->main_input->collection, i);
+      gst_stream_collection_add_stream (res, stream);
+    }
+  }
+
+  for (tmp = dbin->other_inputs; tmp; tmp = tmp->next) {
+    DecodebinInput *input = (DecodebinInput *) tmp->data;
+    GST_DEBUG_OBJECT (dbin, "input %p , collection %p", input,
+        input->collection);
+    if (input->collection) {
+      nb_stream = gst_stream_collection_get_size (input->collection);
+      GST_DEBUG_OBJECT (dbin, "nb_stream : %d", nb_stream);
+      for (i = 0; i < nb_stream; i++) {
+        GstStream *stream =
+            gst_stream_collection_get_stream (input->collection, i);
+        gst_stream_collection_add_stream (res, stream);
+      }
+    }
+  }
+
+  return res;
+}
+
+/* Call with INPUT_LOCK taken */
+static DecodebinInput *
+find_message_parsebin (GstDecodebin3 * dbin, GstElement * child)
+{
+  DecodebinInput *input = NULL;
+  GstElement *parent = gst_object_ref (child);
+  GList *tmp;
+
+  do {
+    GstElement *next_parent;
+
+    GST_DEBUG_OBJECT (dbin, "parent %s",
+        parent ? GST_ELEMENT_NAME (parent) : "<NONE>");
+
+    if (parent == dbin->main_input->parsebin) {
+      input = dbin->main_input;
+      break;
+    }
+    for (tmp = dbin->other_inputs; tmp; tmp = tmp->next) {
+      DecodebinInput *cur = (DecodebinInput *) tmp->data;
+      if (parent == cur->parsebin) {
+        input = cur;
+        break;
+      }
+    }
+    next_parent = (GstElement *) gst_element_get_parent (parent);
+    gst_object_unref (parent);
+    parent = next_parent;
+
+  } while (parent && parent != (GstElement *) dbin);
+
+  if (parent)
+    gst_object_unref (parent);
+
+  return input;
+}
+
+static gboolean
+stream_in_collection (GstDecodebin3 * dbin, gchar * sid)
+{
+  guint i, len;
+
+  if (dbin->collection == NULL)
+    return FALSE;
+  len = gst_stream_collection_get_size (dbin->collection);
+  for (i = 0; i < len; i++) {
+    GstStream *stream = gst_stream_collection_get_stream (dbin->collection, i);
+    const gchar *osid = gst_stream_get_stream_id (stream);
+    if (!g_strcmp0 (sid, osid))
+      return TRUE;
+  }
+
+  return FALSE;
+}
+
+/* Call with INPUT_LOCK taken */
+static void
+handle_stream_collection (GstDecodebin3 * dbin,
+    GstStreamCollection * collection, GstElement * child)
+{
+#ifndef GST_DISABLE_GST_DEBUG
+  const gchar *upstream_id;
+  guint i;
+#endif
+  DecodebinInput *input = find_message_parsebin (dbin, child);
+
+  if (!input) {
+    GST_DEBUG_OBJECT (dbin,
+        "Couldn't find corresponding input, most likely shutting down");
+    return;
+  }
+
+  /* Replace collection in input */
+  if (input->collection)
+    gst_object_unref (input->collection);
+  input->collection = collection;
+  GST_DEBUG_OBJECT (dbin, "Setting collection %p on input %p", collection,
+      input);
+
+  /* Merge collection if needed */
+  collection = get_merged_collection (dbin);
+
+#ifndef GST_DISABLE_GST_DEBUG
+  /* Just some debugging */
+  upstream_id = gst_stream_collection_get_upstream_id (collection);
+  GST_DEBUG ("Received Stream Collection. Upstream_id : %s", upstream_id);
+  GST_DEBUG ("From input %p", input);
+  GST_DEBUG ("  %d streams", gst_stream_collection_get_size (collection));
+  for (i = 0; i < gst_stream_collection_get_size (collection); i++) {
+    GstStream *stream = gst_stream_collection_get_stream (collection, i);
+    const GstTagList *taglist;
+    const GstCaps *caps;
+
+    GST_DEBUG ("   Stream '%s'", gst_stream_get_stream_id (stream));
+    GST_DEBUG ("     type  : %s",
+        gst_stream_type_get_name (gst_stream_get_stream_type (stream)));
+    GST_DEBUG ("     flags : 0x%x", gst_stream_get_stream_flags (stream));
+    taglist = gst_stream_get_tags (stream);
+    GST_DEBUG ("     tags  : %" GST_PTR_FORMAT, taglist);
+    caps = gst_stream_get_caps (stream);
+    GST_DEBUG ("     caps  : %" GST_PTR_FORMAT, caps);
+  }
+#endif
+
+  /* Store collection for later usage */
+  if (dbin->collection == NULL) {
+    dbin->collection = collection;
+  } else {
+    /* We need to check who emitted this collection (the owner).
+     * If we already had a collection from that user, this one is an update,
+     * that is to say that we need to figure out how we are going to re-use
+     * the streams/slot */
+    GST_FIXME_OBJECT (dbin, "New collection but already had one ...");
+    /* FIXME : When do we switch from pending collection to active collection ?
+     * When all streams from active collection are drained in multiqueue output ? */
+    gst_object_unref (dbin->collection);
+    dbin->collection = collection;
+    /* dbin->pending_collection = */
+    /*     g_list_append (dbin->pending_collection, collection); */
+  }
+}
+
+static void
+gst_decodebin3_handle_message (GstBin * bin, GstMessage * message)
+{
+  GstDecodebin3 *dbin = (GstDecodebin3 *) bin;
+  gboolean posting_collection = FALSE;
+
+  GST_DEBUG_OBJECT (bin, "Got Message %s", GST_MESSAGE_TYPE_NAME (message));
+
+  switch (GST_MESSAGE_TYPE (message)) {
+    case GST_MESSAGE_STREAM_COLLECTION:
+    {
+      GstStreamCollection *collection = NULL;
+      gst_message_parse_stream_collection (message, &collection);
+      if (collection) {
+        INPUT_LOCK (dbin);
+        handle_stream_collection (dbin, collection,
+            (GstElement *) GST_MESSAGE_SRC (message));
+        posting_collection = TRUE;
+        INPUT_UNLOCK (dbin);
+      }
+      if (dbin->collection && collection != dbin->collection) {
+        /* Replace collection message, we most likely aggregated it */
+        GstMessage *new_msg;
+        new_msg =
+            gst_message_new_stream_collection ((GstObject *) dbin,
+            dbin->collection);
+        gst_message_unref (message);
+        message = new_msg;
+      }
+      break;
+    }
+    default:
+      break;
+  }
+
+  GST_BIN_CLASS (parent_class)->handle_message (bin, message);
+
+  if (posting_collection) {
+    /* Figure out a selection for that collection */
+    update_requested_selection (dbin, dbin->collection);
+  }
+}
+
+static DecodebinOutputStream *
+find_free_compatible_output (GstDecodebin3 * dbin, GstStream * stream)
+{
+  GList *tmp;
+  GstStreamType stype = gst_stream_get_stream_type (stream);
+
+  for (tmp = dbin->output_streams; tmp; tmp = tmp->next) {
+    DecodebinOutputStream *output = (DecodebinOutputStream *) tmp->data;
+    if (output->type == stype && output->slot && output->slot->active_stream) {
+      GstStream *tstream = output->slot->active_stream;
+      if (!stream_in_list (dbin->requested_selection,
+              (gchar *) gst_stream_get_stream_id (tstream))) {
+        return output;
+      }
+    }
+  }
+
+  return NULL;
+}
+
+/* Give a certain slot, figure out if it should be linked to an
+ * output stream
+ * CALL WITH SELECTION LOCK TAKEN !*/
+static DecodebinOutputStream *
+get_output_for_slot (MultiQueueSlot * slot)
+{
+  GstDecodebin3 *dbin = slot->dbin;
+  DecodebinOutputStream *output = NULL;
+  const gchar *stream_id;
+  const GstCaps *caps;
+
+  /* If we already have a configured output, just use it */
+  if (slot->output != NULL)
+    return slot->output;
+
+  /*
+   * FIXME
+   * 
+   * This method needs to be split into multiple parts
+   *
+   * 1) Figure out whether stream should be exposed or not
+   *   This is based on autoplug-continue, EXPOSE_ALL_MODE, or presence
+   *   in the default stream attribution
+   *
+   * 2) Figure out whether an output stream should be created, whether
+   *   we can re-use the output stream already linked to the slot, or
+   *   whether we need to get re-assigned another (currently used) output
+   *   stream.
+   */
+
+  stream_id = gst_stream_get_stream_id (slot->active_stream);
+  caps = gst_stream_get_caps (slot->active_stream);
+  GST_DEBUG_OBJECT (dbin, "stream %s , %" GST_PTR_FORMAT, stream_id, caps);
+
+  /* 0. Emit autoplug-continue signal for pending caps ? */
+  GST_FIXME_OBJECT (dbin, "emit autoplug-continue");
+
+  /* 1. if in EXPOSE_ALL_MODE, just accept */
+  GST_FIXME_OBJECT (dbin, "Handle EXPOSE_ALL_MODE");
+
+#if 0
+  /* FIXME : The idea around this was to avoid activating a stream for
+   *     which we have no decoder. Unfortunately it is way too
+   *     expensive. Need to figure out a better solution */
+  /* 2. Is there a potential decoder (if one is required) */
+  if (!gst_caps_can_intersect (caps, dbin->caps)
+      && !have_factory (dbin, (GstCaps *) caps,
+          GST_ELEMENT_FACTORY_TYPE_DECODER)) {
+    GST_WARNING_OBJECT (dbin, "Don't have a decoder for %" GST_PTR_FORMAT,
+        caps);
+    SELECTION_UNLOCK (dbin);
+    gst_element_post_message (GST_ELEMENT_CAST (dbin),
+        gst_missing_decoder_message_new (GST_ELEMENT_CAST (dbin), caps));
+    SELECTION_LOCK (dbin);
+    return NULL;
+  }
+#endif
+
+  /* 3. In default mode check if we should expose */
+  if (stream_in_list (dbin->requested_selection, stream_id)) {
+    /* Check if we can steal an existing output stream we could re-use.
+     * that is:
+     * * an output stream whose slot->stream is not in requested
+     * * and is of the same type as this stream
+     */
+    output = find_free_compatible_output (dbin, slot->active_stream);
+    if (output) {
+      /* Move this output from its current slot to this slot */
+      dbin->to_activate =
+          g_list_append (dbin->to_activate, (gchar *) stream_id);
+      dbin->requested_selection =
+          g_list_remove (dbin->requested_selection, stream_id);
+      SELECTION_UNLOCK (dbin);
+      gst_pad_add_probe (output->slot->src_pad, GST_PAD_PROBE_TYPE_IDLE,
+          (GstPadProbeCallback) slot_unassign_probe, output->slot, NULL);
+      SELECTION_LOCK (dbin);
+      return NULL;
+    }
+
+    output = create_output_stream (dbin, slot->type);
+    output->slot = slot;
+    GST_DEBUG ("Linking slot %p to new output %p", slot, output);
+    slot->output = output;
+    dbin->active_selection =
+        g_list_append (dbin->active_selection, (gchar *) stream_id);
+  } else
+    GST_DEBUG ("Not creating any output for slot %p", slot);
+
+  return output;
+}
+
+/* Returns SELECTED_STREAMS message if active_selection is equal to
+ * requested_selection, else NULL.
+ * Must be called with LOCK taken */
+static GstMessage *
+is_selection_done (GstDecodebin3 * dbin)
+{
+  GList *tmp;
+  GstMessage *msg;
+
+  if (!dbin->selection_updated)
+    return NULL;
+
+  GST_LOG_OBJECT (dbin, "Checking");
+
+  if (dbin->to_activate != NULL) {
+    GST_DEBUG ("Still have streams to activate");
+    return NULL;
+  }
+  for (tmp = dbin->requested_selection; tmp; tmp = tmp->next) {
+    GST_DEBUG ("Checking requested stream %s", (gchar *) tmp->data);
+    if (!stream_in_list (dbin->active_selection, (gchar *) tmp->data)) {
+      GST_DEBUG ("Not in active selection, returning");
+      return NULL;
+    }
+  }
+
+  GST_DEBUG_OBJECT (dbin, "Selection active, creating message");
+
+  /* We are completely active */
+  msg = gst_message_new_streams_selected ((GstObject *) dbin, dbin->collection);
+  GST_MESSAGE_SEQNUM (msg) = dbin->select_streams_seqnum;
+  for (tmp = dbin->output_streams; tmp; tmp = tmp->next) {
+    DecodebinOutputStream *output = (DecodebinOutputStream *) tmp->data;
+    if (output->slot) {
+      GST_DEBUG_OBJECT (dbin, "Adding stream %s",
+          gst_stream_get_stream_id (output->slot->active_stream));
+
+      gst_message_streams_selected_add (msg, output->slot->active_stream);
+    } else
+      GST_WARNING_OBJECT (dbin, "No valid slot for output %p", output);
+  }
+  dbin->selection_updated = FALSE;
+  return msg;
+}
+
+static GstPadProbeReturn
+multiqueue_src_probe (GstPad * pad, GstPadProbeInfo * info,
+    MultiQueueSlot * slot)
+{
+  GstPadProbeReturn ret = GST_PAD_PROBE_OK;
+  GstDecodebin3 *dbin = slot->dbin;
+
+  if (GST_IS_EVENT (GST_PAD_PROBE_INFO_DATA (info))) {
+    GstEvent *ev = GST_PAD_PROBE_INFO_EVENT (info);
+
+    GST_DEBUG_OBJECT (pad, "Got event %p %s", ev, GST_EVENT_TYPE_NAME (ev));
+    switch (GST_EVENT_TYPE (ev)) {
+      case GST_EVENT_STREAM_START:
+      {
+        GstStream *stream = NULL;
+        const gchar *stream_id;
+
+        gst_event_parse_stream (ev, &stream);
+        if (stream == NULL) {
+          GST_ERROR_OBJECT (pad,
+              "Got a STREAM_START event without a GstStream");
+          break;
+        }
+        stream_id = gst_stream_get_stream_id (stream);
+        GST_DEBUG_OBJECT (pad, "Stream Start '%s'", stream_id);
+        if (slot->active_stream == NULL) {
+          slot->active_stream = stream;
+        } else if (slot->active_stream != stream) {
+          GST_FIXME_OBJECT (pad, "Handle stream changes (%s => %s) !",
+              gst_stream_get_stream_id (slot->active_stream),
+              gst_stream_get_stream_id (stream));
+          gst_object_unref (slot->active_stream);
+          slot->active_stream = stream;
+        } else
+          gst_object_unref (stream);
+#if 0                           /* Disabled because stream-start is pushed for every buffer on every unlinked pad */
+        {
+          gboolean is_active, is_requested;
+          /* Quick check to see if we're in the current selection */
+          /* FIXME : Re-check all slot<=>output mappings based on requested_selection */
+          SELECTION_LOCK (dbin);
+          GST_DEBUG_OBJECT (dbin, "Checking active selection");
+          is_active = stream_in_list (dbin->active_selection, stream_id);
+          GST_DEBUG_OBJECT (dbin, "Checking requested selection");
+          is_requested = stream_in_list (dbin->requested_selection, stream_id);
+          SELECTION_UNLOCK (dbin);
+          if (is_active)
+            GST_DEBUG_OBJECT (pad, "Slot in ACTIVE selection (output:%p)",
+                slot->output);
+          if (is_requested)
+            GST_DEBUG_OBJECT (pad, "Slot in REQUESTED selection (output:%p)",
+                slot->output);
+          else if (slot->output) {
+            GST_DEBUG_OBJECT (pad,
+                "Slot needs to be deactivated ? It's no longer in requested selection");
+          } else if (!is_active)
+            GST_DEBUG_OBJECT (pad,
+                "Slot in neither active nor requested selection");
+        }
+#endif
+      }
+        break;
+      case GST_EVENT_CAPS:
+      {
+        /* Configure the output slot if needed */
+        DecodebinOutputStream *output;
+        GstMessage *msg = NULL;
+        SELECTION_LOCK (dbin);
+        output = get_output_for_slot (slot);
+        if (output) {
+          reconfigure_output_stream (output, slot);
+          msg = is_selection_done (dbin);
+        }
+        SELECTION_UNLOCK (dbin);
+        if (msg)
+          gst_element_post_message ((GstElement *) slot->dbin, msg);
+      }
+        break;
+      case GST_EVENT_EOS:
+        /* FIXME : Figure out */
+        GST_FIXME_OBJECT (pad, "EOS on multiqueue source pad. input:%p",
+            slot->input);
+        if (slot->input == NULL) {
+          GstPad *peer;
+          GST_DEBUG_OBJECT (pad,
+              "last EOS for input, forwarding and removing slot");
+          peer = gst_pad_get_peer (pad);
+          if (peer) {
+            gst_pad_send_event (peer, ev);
+            gst_object_unref (peer);
+          }
+          SELECTION_LOCK (dbin);
+          /* FIXME : Shouldn't we try to re-assign the output instead of just
+           * removing it ? */
+          /* Remove the output */
+          if (slot->output) {
+            DecodebinOutputStream *output = slot->output;
+            dbin->output_streams = g_list_remove (dbin->output_streams, output);
+            free_output_stream (dbin, output);
+          }
+          SELECTION_UNLOCK (dbin);
+          ret = GST_PAD_PROBE_HANDLED;
+        }
+        break;
+      default:
+        break;
+    }
+  } else if (GST_IS_QUERY (GST_PAD_PROBE_INFO_DATA (info))) {
+    GstQuery *query = GST_PAD_PROBE_INFO_QUERY (info);
+    switch (GST_QUERY_TYPE (query)) {
+      case GST_QUERY_CAPS:
+      {
+        GST_DEBUG_OBJECT (pad, "Intercepting CAPS query");
+        gst_query_set_caps_result (query, gst_caps_new_any ());
+        ret = GST_PAD_PROBE_HANDLED;
+      }
+        break;
+
+      case GST_QUERY_ACCEPT_CAPS:
+      {
+        GST_DEBUG_OBJECT (pad, "Intercepting Accept Caps query");
+        /* If the current decoder doesn't accept caps, we'll reconfigure
+         * on the actual caps event. So accept any caps. */
+        gst_query_set_accept_caps_result (query, TRUE);
+        ret = GST_PAD_PROBE_HANDLED;
+      }
+      default:
+        break;
+    }
+  }
+
+  return ret;
+}
+
+/* Create a new multiqueue slot for the given type
+ *
+ * It is up to the caller to know whether that slot is needed or not
+ * (and release it when no longer needed) */
+static MultiQueueSlot *
+create_new_slot (GstDecodebin3 * dbin, GstStreamType type)
+{
+  MultiQueueSlot *slot;
+  GstIterator *it = NULL;
+  GValue item = { 0, };
+
+  GST_DEBUG_OBJECT (dbin, "Creating new slot for type %s",
+      gst_stream_type_get_name (type));
+  slot = g_new0 (MultiQueueSlot, 1);
+  slot->dbin = dbin;
+  slot->id = dbin->slot_id++;
+  slot->type = type;
+  slot->sink_pad = gst_element_get_request_pad (dbin->multiqueue, "sink_%u");
+  if (slot->sink_pad == NULL)
+    goto fail;
+  it = gst_pad_iterate_internal_links (slot->sink_pad);
+  if (!it || (gst_iterator_next (it, &item)) != GST_ITERATOR_OK
+      || ((slot->src_pad = g_value_dup_object (&item)) == NULL)) {
+    GST_ERROR ("Couldn't get srcpad from multiqueue for sink pad %s:%s",
+        GST_DEBUG_PAD_NAME (slot->src_pad));
+    goto fail;
+  }
+  gst_iterator_free (it);
+  g_value_reset (&item);
+
+  g_object_set (slot->sink_pad, "group-id", (guint) type, NULL);
+
+  /* Add event probe */
+  slot->probe_id =
+      gst_pad_add_probe (slot->src_pad,
+      GST_PAD_PROBE_TYPE_EVENT_DOWNSTREAM | GST_PAD_PROBE_TYPE_QUERY_DOWNSTREAM,
+      (GstPadProbeCallback) multiqueue_src_probe, slot, NULL);
+
+  GST_DEBUG ("Created new slot %u (%p) (%s:%s)", slot->id, slot,
+      GST_DEBUG_PAD_NAME (slot->src_pad));
+  dbin->slots = g_list_append (dbin->slots, slot);
+  return slot;
+
+  /* ERRORS */
+fail:
+  {
+    if (slot->sink_pad)
+      gst_element_release_request_pad (dbin->multiqueue, slot->sink_pad);
+    g_free (slot);
+    return NULL;
+  }
+}
+
+static MultiQueueSlot *
+get_slot_for_input (GstDecodebin3 * dbin, DecodebinInputStream * input)
+{
+  GList *tmp;
+  MultiQueueSlot *empty_slot = NULL;
+  GstStreamType input_type = 0;
+  gchar *stream_id = NULL;
+
+  GST_DEBUG_OBJECT (dbin, "input %p (stream %p %s)",
+      input, input->active_stream,
+      input->
+      active_stream ? gst_stream_get_stream_id (input->active_stream) : "");
+
+  if (input->active_stream) {
+    input_type = gst_stream_get_stream_type (input->active_stream);
+    stream_id = (gchar *) gst_stream_get_stream_id (input->active_stream);
+  }
+
+  /* Go over existing slots and check if there is already one for it */
+  for (tmp = dbin->slots; tmp; tmp = tmp->next) {
+    MultiQueueSlot *slot = (MultiQueueSlot *) tmp->data;
+    /* Already used input, return that one */
+    if (slot->input == input) {
+      GST_DEBUG_OBJECT (dbin, "Returning already specified slot %d", slot->id);
+      return slot;
+    }
+  }
+
+  /* Go amongst all unused slots of the right type and try to find a candidate */
+  for (tmp = dbin->slots; tmp; tmp = tmp->next) {
+    MultiQueueSlot *slot = (MultiQueueSlot *) tmp->data;
+    if (slot->input == NULL && input_type == slot->type) {
+      /* Remember this empty slot for later */
+      empty_slot = slot;
+      /* Check if available slot is of the same stream_id */
+      GST_LOG_OBJECT (dbin, "Checking candidate slot %d (active_stream:%p)",
+          slot->id, slot->active_stream);
+      if (stream_id && slot->active_stream) {
+        gchar *ostream_id =
+            (gchar *) gst_stream_get_stream_id (slot->active_stream);
+        GST_DEBUG_OBJECT (dbin, "Checking slot %d %s against %s", slot->id,
+            ostream_id, stream_id);
+        if (!g_strcmp0 (stream_id, ostream_id))
+          break;
+      }
+    }
+  }
+
+  if (empty_slot) {
+    GST_DEBUG_OBJECT (dbin, "Re-using existing unused slot %d", empty_slot->id);
+    empty_slot->input = input;
+    return empty_slot;
+  }
+
+  if (input_type)
+    return create_new_slot (dbin, input_type);
+
+  return NULL;
+}
+
+static void
+link_input_to_slot (DecodebinInputStream * input, MultiQueueSlot * slot)
+{
+  GstEvent *event;
+  if (slot->input != NULL && slot->input != input) {
+    GST_ERROR_OBJECT (slot->dbin,
+        "Trying to link input to an already used slot");
+    return;
+  }
+  gst_pad_link_full (input->srcpad, slot->sink_pad, GST_PAD_LINK_CHECK_NOTHING);
+  slot->pending_stream = input->active_stream;
+  slot->input = input;
+  event = gst_pad_get_sticky_event (input->srcpad, GST_EVENT_STREAM_START, 0);
+  if (event)
+    gst_pad_send_event (slot->sink_pad, event);
+}
+
+#if 0
+static gboolean
+have_factory (GstDecodebin3 * dbin, GstCaps * caps,
+    GstElementFactoryListType ftype)
+{
+  gboolean ret = FALSE;
+  GList *res;
+
+  g_mutex_lock (&dbin->factories_lock);
+  gst_decode_bin_update_factories_list (dbin);
+  if (ftype == GST_ELEMENT_FACTORY_TYPE_DECODER)
+    res =
+        gst_element_factory_list_filter (dbin->decoder_factories,
+        caps, GST_PAD_SINK, TRUE);
+  else
+    res =
+        gst_element_factory_list_filter (dbin->decodable_factories,
+        caps, GST_PAD_SINK, TRUE);
+  g_mutex_unlock (&dbin->factories_lock);
+
+  if (res) {
+    ret = TRUE;
+    gst_plugin_feature_list_free (res);
+  }
+
+  return ret;
+}
+#endif
+
+static GstElement *
+create_element (GstDecodebin3 * dbin, GstStream * stream,
+    GstElementFactoryListType ftype)
+{
+  GList *res;
+  GstElement *element = NULL;
+
+  g_mutex_lock (&dbin->factories_lock);
+  gst_decode_bin_update_factories_list (dbin);
+  if (ftype == GST_ELEMENT_FACTORY_TYPE_DECODER)
+    res =
+        gst_element_factory_list_filter (dbin->decoder_factories,
+        gst_stream_get_caps (stream), GST_PAD_SINK, TRUE);
+  else
+    res =
+        gst_element_factory_list_filter (dbin->decodable_factories,
+        gst_stream_get_caps (stream), GST_PAD_SINK, TRUE);
+  g_mutex_unlock (&dbin->factories_lock);
+
+  if (res) {
+    element =
+        gst_element_factory_create ((GstElementFactory *) res->data, NULL);
+    GST_DEBUG ("Created element '%s'", GST_ELEMENT_NAME (element));
+    gst_plugin_feature_list_free (res);
+  } else {
+    GST_DEBUG ("Could not find an element for caps %" GST_PTR_FORMAT,
+        gst_stream_get_caps (stream));
+  }
+
+  return element;
+}
+
+/* FIXME : VERY NAIVE. ASSUMING FIRST ONE WILL WORK */
+static GstElement *
+create_decoder (GstDecodebin3 * dbin, GstStream * stream)
+{
+  return create_element (dbin, stream, GST_ELEMENT_FACTORY_TYPE_DECODER);
+}
+
+static GstPadProbeReturn
+keyframe_waiter_probe (GstPad * pad, GstPadProbeInfo * info,
+    DecodebinOutputStream * output)
+{
+  GstBuffer *buf = GST_PAD_PROBE_INFO_BUFFER (info);
+  /* If we have a keyframe, remove the probe and let all data through */
+  /* FIXME : HANDLE HEADER BUFFER ?? */
+  if (!GST_BUFFER_FLAG_IS_SET (buf, GST_BUFFER_FLAG_DELTA_UNIT) ||
+      GST_BUFFER_FLAG_IS_SET (buf, GST_BUFFER_FLAG_HEADER)) {
+    GST_DEBUG_OBJECT (pad,
+        "Buffer is keyframe or header, letting through and removing probe");
+    output->drop_probe_id = 0;
+    return GST_PAD_PROBE_REMOVE;
+  }
+  GST_DEBUG_OBJECT (pad, "Buffer is not a keyframe, dropping");
+  return GST_PAD_PROBE_DROP;
+}
+
+static void
+reconfigure_output_stream (DecodebinOutputStream * output,
+    MultiQueueSlot * slot)
+{
+  GstDecodebin3 *dbin = output->dbin;
+  GstCaps *new_caps = (GstCaps *) gst_stream_get_caps (slot->active_stream);
+  gboolean needs_decoder;
+
+  needs_decoder = gst_caps_can_intersect (new_caps, dbin->caps) != TRUE;
+
+  GST_DEBUG_OBJECT (dbin,
+      "Reconfiguring output %p to slot %p, needs_decoder:%d", output, slot,
+      needs_decoder);
+
+  /* FIXME : Maybe make the output un-hook itself automatically ? */
+  if (output->slot != NULL && output->slot != slot) {
+    GST_WARNING_OBJECT (dbin,
+        "Output still linked to another slot (%p)", output->slot);
+    return;
+  }
+
+  /* Check if existing config is reusable as-is by checking if
+   * the existing decoder accepts the new caps, if not delete
+   * it and create a new one */
+  if (output->decoder) {
+    gboolean can_reuse_decoder;
+
+    if (needs_decoder) {
+      GstQuery *q = gst_query_new_accept_caps (new_caps);
+      can_reuse_decoder = gst_pad_query (output->decoder_sink, q);
+    } else
+      can_reuse_decoder = FALSE;
+
+    if (can_reuse_decoder) {
+      if (output->type == GST_STREAM_TYPE_VIDEO && output->drop_probe_id == 0) {
+        GST_DEBUG_OBJECT (dbin, "Adding keyframe-waiter probe");
+        output->drop_probe_id =
+            gst_pad_add_probe (slot->src_pad, GST_PAD_PROBE_TYPE_BUFFER,
+            (GstPadProbeCallback) keyframe_waiter_probe, output, NULL);
+      }
+      GST_DEBUG_OBJECT (dbin, "Reusing existing decoder for slot %p", slot);
+      if (output->linked == FALSE) {
+        gst_pad_link_full (slot->src_pad, output->decoder_sink,
+            GST_PAD_LINK_CHECK_NOTHING);
+        output->linked = TRUE;
+      }
+      return;
+    }
+
+    GST_DEBUG_OBJECT (dbin, "Removing old decoder for slot %p", slot);
+
+    if (output->linked)
+      gst_pad_unlink (slot->src_pad, output->decoder_sink);
+    output->linked = FALSE;
+    if (output->drop_probe_id) {
+      gst_pad_remove_probe (slot->src_pad, output->drop_probe_id);
+      output->drop_probe_id = 0;
+    }
+
+    if (!gst_ghost_pad_set_target ((GstGhostPad *) output->src_pad, NULL)) {
+      GST_ERROR_OBJECT (dbin, "Could not release decoder pad");
+      goto cleanup;
+    }
+
+    gst_object_replace ((GstObject **) & output->decoder_sink, NULL);
+    gst_object_replace ((GstObject **) & output->decoder_src, NULL);
+
+    gst_element_set_locked_state (output->decoder, TRUE);
+    gst_element_set_state (output->decoder, GST_STATE_NULL);
+
+    gst_bin_remove ((GstBin *) dbin, output->decoder);
+    output->decoder = NULL;
+  }
+
+  /* If a decoder is required, create one */
+  if (needs_decoder) {
+    /* If we don't have a decoder yet, instantiate one */
+    output->decoder = create_decoder (dbin, slot->active_stream);
+    if (output->decoder == NULL) {
+      SELECTION_UNLOCK (dbin);
+      /* FIXME : Should we be smarter if there's a missing decoder ?
+       * Should we deactivate that stream ? */
+      gst_element_post_message (GST_ELEMENT_CAST (dbin),
+          gst_missing_decoder_message_new (GST_ELEMENT_CAST (dbin),
+              gst_stream_get_caps (slot->active_stream)));
+      SELECTION_LOCK (dbin);
+      goto cleanup;
+    }
+    if (!gst_bin_add ((GstBin *) dbin, output->decoder)) {
+      GST_ERROR_OBJECT (dbin, "could not add decoder to pipeline");
+      goto cleanup;
+    }
+    output->decoder_sink = gst_element_get_static_pad (output->decoder, "sink");
+    output->decoder_src = gst_element_get_static_pad (output->decoder, "src");
+    if (output->type == GST_STREAM_TYPE_VIDEO) {
+      GST_DEBUG_OBJECT (dbin, "Adding keyframe-waiter probe");
+      output->drop_probe_id =
+          gst_pad_add_probe (slot->src_pad, GST_PAD_PROBE_TYPE_BUFFER,
+          (GstPadProbeCallback) keyframe_waiter_probe, output, NULL);
+    }
+    if (gst_pad_link_full (slot->src_pad, output->decoder_sink,
+            GST_PAD_LINK_CHECK_NOTHING) != GST_PAD_LINK_OK) {
+      GST_ERROR_OBJECT (dbin, "could not link to %s:%s",
+          GST_DEBUG_PAD_NAME (output->decoder_sink));
+      goto cleanup;
+    }
+  } else {
+    output->decoder_src = gst_object_ref (slot->src_pad);
+    output->decoder_sink = NULL;
+  }
+  output->linked = TRUE;
+  if (!gst_ghost_pad_set_target ((GstGhostPad *) output->src_pad,
+          output->decoder_src)) {
+    GST_ERROR_OBJECT (dbin, "Could not expose decoder pad");
+    goto cleanup;
+  }
+  if (output->src_exposed == FALSE) {
+    output->src_exposed = TRUE;
+    gst_element_add_pad (GST_ELEMENT_CAST (dbin), output->src_pad);
+  }
+
+  if (output->decoder)
+    gst_element_sync_state_with_parent (output->decoder);
+
+  output->slot = slot;
+  return;
+
+cleanup:
+  {
+    GST_DEBUG_OBJECT (dbin, "Cleanup");
+    if (output->decoder_sink) {
+      gst_object_unref (output->decoder_sink);
+      output->decoder_sink = NULL;
+    }
+    if (output->decoder_src) {
+      gst_object_unref (output->decoder_src);
+      output->decoder_src = NULL;
+    }
+    if (output->decoder) {
+      gst_element_set_state (output->decoder, GST_STATE_NULL);
+      gst_bin_remove ((GstBin *) dbin, output->decoder);
+      output->decoder = NULL;
+    }
+  }
+}
+
+static GstPadProbeReturn
+idle_reconfigure (GstPad * pad, GstPadProbeInfo * info, MultiQueueSlot * slot)
+{
+  GstMessage *msg = NULL;
+  DecodebinOutputStream *output;
+
+  SELECTION_LOCK (slot->dbin);
+  output = get_output_for_slot (slot);
+
+  GST_DEBUG_OBJECT (pad, "output : %p", output);
+
+  if (output) {
+    reconfigure_output_stream (output, slot);
+    msg = is_selection_done (slot->dbin);
+  }
+  SELECTION_UNLOCK (slot->dbin);
+  if (msg)
+    gst_element_post_message ((GstElement *) slot->dbin, msg);
+
+  return GST_PAD_PROBE_REMOVE;
+}
+
+static MultiQueueSlot *
+find_slot_for_stream_id (GstDecodebin3 * dbin, const gchar * sid)
+{
+  GList *tmp;
+
+  for (tmp = dbin->slots; tmp; tmp = tmp->next) {
+    MultiQueueSlot *slot = (MultiQueueSlot *) tmp->data;
+    const gchar *stream_id;
+    if (slot->active_stream) {
+      stream_id = gst_stream_get_stream_id (slot->active_stream);
+      if (!g_strcmp0 (sid, stream_id))
+        return slot;
+    }
+    if (slot->pending_stream && slot->pending_stream != slot->active_stream) {
+      stream_id = gst_stream_get_stream_id (slot->pending_stream);
+      if (!g_strcmp0 (sid, stream_id))
+        return slot;
+    }
+  }
+
+  return NULL;
+}
+
+/* This function handles the reassignment of a slot. Call this from
+ * the streaming thread of a slot. */
+static gboolean
+reassign_slot (GstDecodebin3 * dbin, MultiQueueSlot * slot)
+{
+  DecodebinOutputStream *output;
+  MultiQueueSlot *target_slot = NULL;
+  GList *tmp;
+  const gchar *sid, *tsid;
+
+  SELECTION_LOCK (dbin);
+  output = slot->output;
+
+  if (G_UNLIKELY (slot->active_stream == NULL)) {
+    GST_DEBUG_OBJECT (slot->src_pad,
+        "Called on inactive slot (active_stream == NULL)");
+    SELECTION_UNLOCK (dbin);
+    return FALSE;
+  }
+
+  if (G_UNLIKELY (output == NULL)) {
+    GST_DEBUG_OBJECT (slot->src_pad,
+        "Slot doesn't have any output to be removed");
+    SELECTION_UNLOCK (dbin);
+    return FALSE;
+  }
+
+  sid = gst_stream_get_stream_id (slot->active_stream);
+  GST_DEBUG_OBJECT (slot->src_pad, "slot %s %p", sid, slot);
+
+  /* Recheck whether this stream is still in the list of streams to deactivate */
+  if (stream_in_list (dbin->requested_selection, sid)) {
+    /* Stream is in the list of requested streams, don't remove */
+    SELECTION_UNLOCK (dbin);
+    GST_DEBUG_OBJECT (slot->src_pad,
+        "Stream '%s' doesn't need to be deactivated", sid);
+    return FALSE;
+  }
+
+  /* Unlink slot from output */
+  /* FIXME : Handle flushing ? */
+  /* FIXME : Handle outputs without decoders */
+  GST_DEBUG_OBJECT (slot->src_pad, "Unlinking from decoder %p",
+      output->decoder_sink);
+  if (output->decoder_sink)
+    gst_pad_unlink (slot->src_pad, output->decoder_sink);
+  output->linked = FALSE;
+  slot->output = NULL;
+  output->slot = NULL;
+  /* Remove sid from active selection */
+  for (tmp = dbin->active_selection; tmp; tmp = tmp->next)
+    if (!g_strcmp0 (sid, tmp->data)) {
+      dbin->active_selection = g_list_delete_link (dbin->active_selection, tmp);
+      break;
+    }
+
+  /* Can we re-assign this output to a requested stream ? */
+  GST_DEBUG_OBJECT (slot->src_pad, "Attempting to re-assing output stream");
+  for (tmp = dbin->to_activate; tmp; tmp = tmp->next) {
+    MultiQueueSlot *tslot = find_slot_for_stream_id (dbin, tmp->data);
+    GST_LOG_OBJECT (tslot->src_pad, "Checking slot %p (output:%p , stream:%s)",
+        tslot, tslot->output, gst_stream_get_stream_id (tslot->active_stream));
+    if (tslot && tslot->type == output->type && tslot->output == NULL) {
+      GST_DEBUG_OBJECT (tslot->src_pad, "Using as reassigned slot");
+      target_slot = tslot;
+      tsid = tmp->data;
+      /* Pass target stream id to requested selection */
+      dbin->requested_selection =
+          g_list_append (dbin->requested_selection, tmp->data);
+      dbin->to_activate = g_list_remove (dbin->to_activate, tmp->data);
+      break;
+    }
+  }
+
+  if (target_slot) {
+    GST_DEBUG_OBJECT (slot->src_pad, "Assigning output to slot %p '%s'",
+        target_slot, tsid);
+    target_slot->output = output;
+    output->slot = target_slot;
+    dbin->active_selection =
+        g_list_append (dbin->active_selection, (gchar *) tsid);
+    SELECTION_UNLOCK (dbin);
+
+    /* Wakeup the target slot so that it retries to send events/buffers
+     * thereby triggering the output reconfiguration codepath */
+    gst_pad_add_probe (target_slot->src_pad, GST_PAD_PROBE_TYPE_IDLE,
+        (GstPadProbeCallback) idle_reconfigure, target_slot, NULL);
+    /* gst_pad_send_event (target_slot->src_pad, gst_event_new_reconfigure ()); */
+  } else {
+    SELECTION_UNLOCK (dbin);
+    /* FIXME : Remove output if no longer needed ? The tricky part is knowing
+     * if it's really no longer needed or not */
+    GST_FIXME_OBJECT (slot->src_pad, "Remove unused output stream ?");
+  }
+
+  return TRUE;
+}
+
+/* Idle probe called when a slot should be unassigned from its output stream.
+ * This is needed to ensure nothing is flowing when unlinking the slot.
+ *
+ * Also, this method will search for a pending stream which could re-use
+ * the output stream. */
+static GstPadProbeReturn
+slot_unassign_probe (GstPad * pad, GstPadProbeInfo * info,
+    MultiQueueSlot * slot)
+{
+  GstDecodebin3 *dbin = slot->dbin;
+
+  reassign_slot (dbin, slot);
+
+  return GST_PAD_PROBE_REMOVE;
+}
+
+static gboolean
+handle_stream_switch (GstDecodebin3 * dbin, GList * select_streams,
+    guint32 seqnum)
+{
+  gboolean ret = TRUE;
+  GList *tmp;
+  /* List of slots to (de)activate. */
+  GList *to_deactivate = NULL;
+  GList *to_activate = NULL;
+  /* List of unknown stream id, most likely means the event
+   * should be sent upstream so that elements can expose the requested stream */
+  GList *unknown = NULL;
+  GList *to_reassign = NULL;
+  GList *future_request_streams = NULL;
+  GList *pending_streams = NULL;
+  GList *slots_to_reassign = NULL;
+
+  SELECTION_LOCK (dbin);
+  if (G_UNLIKELY (seqnum != dbin->select_streams_seqnum)) {
+    GST_DEBUG_OBJECT (dbin, "New SELECT_STREAMS has arrived in the meantime");
+    SELECTION_UNLOCK (dbin);
+    return TRUE;
+  }
+  /* Remove pending select_streams */
+  g_list_free (dbin->pending_select_streams);
+  dbin->pending_select_streams = NULL;
+
+  /* COMPARE the requested streams to the active and requested streams
+   * on multiqueue. */
+
+  /* First check the slots to activate and which ones are unknown */
+  for (tmp = select_streams; tmp; tmp = tmp->next) {
+    const gchar *sid = (const gchar *) tmp->data;
+    MultiQueueSlot *slot;
+    GST_DEBUG_OBJECT (dbin, "Checking stream '%s'", sid);
+    slot = find_slot_for_stream_id (dbin, sid);
+    /* Find the corresponding slot */
+    if (slot == NULL) {
+      if (stream_in_collection (dbin, (gchar *) sid)) {
+        pending_streams = g_list_append (pending_streams, (gchar *) sid);
+      } else {
+        GST_DEBUG_OBJECT (dbin, "We don't have a slot for stream '%s'", sid);
+        unknown = g_list_append (unknown, (gchar *) sid);
+      }
+    } else if (slot->output == NULL) {
+      GST_DEBUG_OBJECT (dbin, "We need to activate slot %p for stream '%s')",
+          slot, sid);
+      to_activate = g_list_append (to_activate, slot);
+    } else {
+      GST_DEBUG_OBJECT (dbin,
+          "Stream '%s' from slot %p is already active on output %p", sid, slot,
+          slot->output);
+      future_request_streams =
+          g_list_append (future_request_streams, (gchar *) sid);
+    }
+  }
+
+  for (tmp = dbin->slots; tmp; tmp = tmp->next) {
+    MultiQueueSlot *slot = (MultiQueueSlot *) tmp->data;
+    /* For slots that have an output, check if it's part of the streams to
+     * be active */
+    if (slot->output) {
+      gboolean slot_to_deactivate = TRUE;
+
+      if (slot->active_stream) {
+        if (stream_in_list (select_streams,
+                gst_stream_get_stream_id (slot->active_stream)))
+          slot_to_deactivate = FALSE;
+      }
+      if (slot_to_deactivate && slot->pending_stream
+          && slot->pending_stream != slot->active_stream) {
+        if (stream_in_list (select_streams,
+                gst_stream_get_stream_id (slot->pending_stream)))
+          slot_to_deactivate = FALSE;
+      }
+      if (slot_to_deactivate) {
+        GST_DEBUG_OBJECT (dbin,
+            "Slot %p (%s) should be deactivated, no longer used", slot,
+            gst_stream_get_stream_id (slot->active_stream));
+        to_deactivate = g_list_append (to_deactivate, slot);
+      }
+    }
+  }
+
+  if (to_deactivate != NULL) {
+    GST_DEBUG_OBJECT (dbin, "Check if we can reassign slots");
+    /* We need to compare what needs to be activated and deactivated in order
+     * to determine whether there are outputs that can be transferred */
+    /* Take the stream-id of the slots that are to be activated, for which there
+     * is a slot of the same type that needs to be deactivated */
+    tmp = to_deactivate;
+    while (tmp) {
+      MultiQueueSlot *slot_to_deactivate = (MultiQueueSlot *) tmp->data;
+      gboolean removeit = FALSE;
+      GList *tmp2, *next;
+      GST_DEBUG_OBJECT (dbin,
+          "Checking if slot to deactivate (%p) has a candidate slot to activate",
+          slot_to_deactivate);
+      for (tmp2 = to_activate; tmp2; tmp2 = tmp2->next) {
+        MultiQueueSlot *slot_to_activate = (MultiQueueSlot *) tmp2->data;
+        GST_DEBUG_OBJECT (dbin, "Comparing to slot %p", slot_to_activate);
+        if (slot_to_activate->type == slot_to_deactivate->type) {
+          GST_DEBUG_OBJECT (dbin, "Re-using");
+          to_reassign = g_list_append (to_reassign, (gchar *)
+              gst_stream_get_stream_id (slot_to_activate->active_stream));
+          slots_to_reassign =
+              g_list_append (slots_to_reassign, slot_to_deactivate);
+          to_activate = g_list_remove (to_activate, slot_to_activate);
+          removeit = TRUE;
+          break;
+        }
+      }
+      next = tmp->next;
+      if (removeit)
+        to_deactivate = g_list_delete_link (to_deactivate, tmp);
+      tmp = next;
+    }
+  }
+
+  for (tmp = to_deactivate; tmp; tmp = tmp->next) {
+    MultiQueueSlot *slot = (MultiQueueSlot *) tmp->data;
+    GST_DEBUG_OBJECT (dbin,
+        "Really need to deactivate slot %p, but no available alternative",
+        slot);
+  }
+
+  /* The only slots left to activate are the ones that won't be reassigned and
+   * therefore really need to have a new output created */
+  for (tmp = to_activate; tmp; tmp = tmp->next) {
+    MultiQueueSlot *slot = (MultiQueueSlot *) tmp->data;
+    if (slot->active_stream)
+      future_request_streams =
+          g_list_append (future_request_streams,
+          (gchar *) gst_stream_get_stream_id (slot->active_stream));
+    else if (slot->pending_stream)
+      future_request_streams =
+          g_list_append (future_request_streams,
+          (gchar *) gst_stream_get_stream_id (slot->pending_stream));
+    else
+      GST_ERROR_OBJECT (dbin, "No stream for slot %p !!", slot);
+  }
+
+  if (to_activate == NULL && pending_streams != NULL) {
+    GST_DEBUG_OBJECT (dbin, "Stream switch requested for future collection");
+    if (dbin->requested_selection)
+      g_list_free (dbin->requested_selection);
+    dbin->requested_selection = select_streams;
+    g_list_free (to_deactivate);
+    g_list_free (pending_streams);
+    to_deactivate = NULL;
+  } else {
+    if (dbin->requested_selection)
+      g_list_free (dbin->requested_selection);
+    dbin->requested_selection = future_request_streams;
+    dbin->requested_selection =
+        g_list_concat (dbin->requested_selection, pending_streams);
+    if (dbin->to_activate)
+      g_list_free (dbin->to_activate);
+    dbin->to_activate = to_reassign;
+  }
+
+  dbin->selection_updated = TRUE;
+  SELECTION_UNLOCK (dbin);
+
+  if (unknown)
+    GST_FIXME_OBJECT (dbin, "Got request for an unknown stream");
+
+  /* For all streams to deactivate, add an idle probe where we will do
+   * the unassignment and switch over */
+  for (tmp = slots_to_reassign; tmp; tmp = tmp->next) {
+    MultiQueueSlot *slot = (MultiQueueSlot *) tmp->data;
+    gst_pad_add_probe (slot->src_pad, GST_PAD_PROBE_TYPE_IDLE,
+        (GstPadProbeCallback) slot_unassign_probe, slot, NULL);
+  }
+
+  return ret;
+}
+
+static GstPadProbeReturn
+ghost_pad_event_probe (GstPad * pad, GstPadProbeInfo * info,
+    DecodebinOutputStream * output)
+{
+  GstPadProbeReturn ret = GST_PAD_PROBE_OK;
+  GstDecodebin3 *dbin = output->dbin;
+  GstEvent *event = GST_PAD_PROBE_INFO_EVENT (info);
+
+  GST_DEBUG_OBJECT (pad, "Got event %p %s", event, GST_EVENT_TYPE_NAME (event));
+
+  switch (GST_EVENT_TYPE (event)) {
+    case GST_EVENT_SELECT_STREAMS:
+    {
+      GstPad *peer;
+      GList *streams = NULL;
+      guint32 seqnum = gst_event_get_seqnum (event);
+
+      SELECTION_LOCK (dbin);
+      if (seqnum == dbin->select_streams_seqnum) {
+        SELECTION_UNLOCK (dbin);
+        GST_DEBUG_OBJECT (pad,
+            "Already handled/handling that SELECT_STREAMS event");
+        break;
+      }
+      dbin->select_streams_seqnum = seqnum;
+      if (dbin->pending_select_streams != NULL) {
+        GST_LOG_OBJECT (dbin, "Replacing pending select streams");
+        g_list_free (dbin->pending_select_streams);
+        dbin->pending_select_streams = NULL;
+      }
+      gst_event_parse_select_streams (event, &streams);
+      dbin->pending_select_streams = g_list_copy (streams);
+      SELECTION_UNLOCK (dbin);
+
+      /* Send event upstream */
+      if ((peer = gst_pad_get_peer (pad))) {
+        gst_pad_send_event (peer, event);
+        gst_object_unref (peer);
+      }
+      /* Finally handle the switch */
+      if (streams)
+        handle_stream_switch (dbin, streams, seqnum);
+      ret = GST_PAD_PROBE_HANDLED;
+    }
+      break;
+    default:
+      break;
+  }
+
+  return ret;
+}
+
+static gboolean
+gst_decodebin3_send_event (GstElement * element, GstEvent * event)
+{
+  GST_DEBUG_OBJECT (element, "event %s", GST_EVENT_TYPE_NAME (event));
+  if (GST_EVENT_TYPE (event) == GST_EVENT_SELECT_STREAMS) {
+    GstDecodebin3 *dbin = (GstDecodebin3 *) element;
+    GList *streams = NULL;
+    guint32 seqnum = gst_event_get_seqnum (event);
+
+    SELECTION_LOCK (dbin);
+    if (seqnum == dbin->select_streams_seqnum) {
+      SELECTION_UNLOCK (dbin);
+      GST_DEBUG_OBJECT (dbin,
+          "Already handled/handling that SELECT_STREAMS event");
+      return TRUE;
+    }
+    dbin->select_streams_seqnum = seqnum;
+    if (dbin->pending_select_streams != NULL) {
+      GST_LOG_OBJECT (dbin, "Replacing pending select streams");
+      g_list_free (dbin->pending_select_streams);
+      dbin->pending_select_streams = NULL;
+    }
+    gst_event_parse_select_streams (event, &streams);
+    dbin->pending_select_streams = g_list_copy (streams);
+    SELECTION_UNLOCK (dbin);
+
+    /* FIXME : We don't have an upstream ?? */
+#if 0
+    /* Send event upstream */
+    if ((peer = gst_pad_get_peer (pad))) {
+      gst_pad_send_event (peer, event);
+      gst_object_unref (peer);
+    }
+#endif
+    /* Finally handle the switch */
+    if (streams)
+      handle_stream_switch (dbin, streams, seqnum);
+
+    return TRUE;
+  }
+  return GST_ELEMENT_CLASS (parent_class)->send_event (element, event);
+}
+
+
+static void
+free_multiqueue_slot (GstDecodebin3 * dbin, MultiQueueSlot * slot)
+{
+  if (slot->probe_id)
+    gst_pad_remove_probe (slot->src_pad, slot->probe_id);
+  if (slot->input) {
+    if (slot->input->srcpad)
+      gst_pad_unlink (slot->input->srcpad, slot->sink_pad);
+  }
+
+  gst_element_release_request_pad (dbin->multiqueue, slot->sink_pad);
+  gst_object_replace ((GstObject **) & slot->sink_pad, NULL);
+  gst_object_replace ((GstObject **) & slot->src_pad, NULL);
+  g_free (slot);
+}
+
+/* Create a DecodebinOutputStream for a given type
+ * Note: It will be empty initially, it needs to be configured
+ * afterwards */
+static DecodebinOutputStream *
+create_output_stream (GstDecodebin3 * dbin, GstStreamType type)
+{
+  DecodebinOutputStream *res = g_new0 (DecodebinOutputStream, 1);
+  gchar *pad_name;
+  const gchar *prefix;
+  GstStaticPadTemplate *templ;
+  GstPadTemplate *ptmpl;
+  guint32 *counter;
+  GstPad *internal_pad;
+
+  GST_DEBUG_OBJECT (dbin, "Created new output stream %p for type %s",
+      res, gst_stream_type_get_name (type));
+
+  res->type = type;
+  res->dbin = dbin;
+
+  switch (type) {
+    case GST_STREAM_TYPE_VIDEO:
+      templ = &video_src_template;
+      counter = &dbin->vpadcount;
+      prefix = "video";
+      break;
+    case GST_STREAM_TYPE_AUDIO:
+      templ = &audio_src_template;
+      counter = &dbin->apadcount;
+      prefix = "audio";
+      break;
+    case GST_STREAM_TYPE_TEXT:
+      templ = &text_src_template;
+      counter = &dbin->tpadcount;
+      prefix = "text";
+      break;
+    default:
+      templ = &src_template;
+      counter = &dbin->opadcount;
+      prefix = "src";
+      break;
+  }
+
+  pad_name = g_strdup_printf ("%s_%u", prefix, *counter);
+  *counter += 1;
+  ptmpl = gst_static_pad_template_get (templ);
+  res->src_pad = gst_ghost_pad_new_no_target_from_template (pad_name, ptmpl);
+  gst_object_unref (ptmpl);
+  g_free (pad_name);
+  gst_pad_set_active (res->src_pad, TRUE);
+  /* Put an event probe on the internal proxy pad to detect upstream
+   * events */
+  internal_pad =
+      (GstPad *) gst_proxy_pad_get_internal ((GstProxyPad *) res->src_pad);
+  gst_pad_add_probe (internal_pad, GST_PAD_PROBE_TYPE_EVENT_UPSTREAM,
+      (GstPadProbeCallback) ghost_pad_event_probe, res, NULL);
+  gst_object_unref (internal_pad);
+
+  dbin->output_streams = g_list_append (dbin->output_streams, res);
+
+  return res;
+}
+
+static void
+free_output_stream (GstDecodebin3 * dbin, DecodebinOutputStream * output)
+{
+  if (output->slot) {
+    if (output->decoder_sink && output->decoder)
+      gst_pad_unlink (output->slot->src_pad, output->decoder_sink);
+
+    output->slot->output = NULL;
+    output->slot = NULL;
+  }
+  gst_object_replace ((GstObject **) & output->decoder_sink, NULL);
+  gst_ghost_pad_set_target ((GstGhostPad *) output->src_pad, NULL);
+  gst_object_replace ((GstObject **) & output->decoder_src, NULL);
+  if (output->src_exposed) {
+    gst_element_remove_pad ((GstElement *) dbin, output->src_pad);
+  }
+  if (output->decoder) {
+    gst_element_set_locked_state (output->decoder, TRUE);
+    gst_element_set_state (output->decoder, GST_STATE_NULL);
+    gst_bin_remove ((GstBin *) dbin, output->decoder);
+  }
+  g_free (output);
+}
+
+static GstStateChangeReturn
+gst_decodebin3_change_state (GstElement * element, GstStateChange transition)
+{
+  GstDecodebin3 *dbin = (GstDecodebin3 *) element;
+  GstStateChangeReturn ret;
+
+  /* Upwards */
+  switch (transition) {
+    default:
+      break;
+  }
+  ret = GST_ELEMENT_CLASS (parent_class)->change_state (element, transition);
+  if (ret == GST_STATE_CHANGE_FAILURE)
+    goto beach;
+
+  switch (transition) {
+    case GST_STATE_CHANGE_PAUSED_TO_READY:
+    {
+      GList *tmp;
+
+      /* Free output streams */
+      for (tmp = dbin->output_streams; tmp; tmp = tmp->next) {
+        DecodebinOutputStream *output = (DecodebinOutputStream *) tmp->data;
+        free_output_stream (dbin, output);
+      }
+      g_list_free (dbin->output_streams);
+      dbin->output_streams = NULL;
+      /* Free multiqueue slots */
+      for (tmp = dbin->slots; tmp; tmp = tmp->next) {
+        MultiQueueSlot *slot = (MultiQueueSlot *) tmp->data;
+        free_multiqueue_slot (dbin, slot);
+      }
+      g_list_free (dbin->slots);
+      dbin->slots = NULL;
+      /* Free inputs */
+    }
+      break;
+    default:
+      break;
+  }
+beach:
+  return ret;
+}
+
+gboolean
+gst_decodebin3_plugin_init (GstPlugin * plugin)
+{
+  GST_DEBUG_CATEGORY_INIT (decodebin3_debug, "decodebin3", 0, "decoder bin");
+
+  return gst_element_register (plugin, "decodebin3", GST_RANK_NONE,
+      GST_TYPE_DECODEBIN3);
+}
diff --git a/gst/playback/gstparsebin.c b/gst/playback/gstparsebin.c
new file mode 100644
index 0000000..6096887
--- /dev/null
+++ b/gst/playback/gstparsebin.c
@@ -0,0 +1,4396 @@
+/* GStreamer
+ * Copyright (C) <2006> Edward Hervey <edward@fluendo.com>
+ * Copyright (C) <2009> Sebastian Dröge <sebastian.droege@collabora.co.uk>
+ * Copyright (C) <2011> Hewlett-Packard Development Company, L.P.
+ *   Author: Sebastian Dröge <sebastian.droege@collabora.co.uk>, Collabora Ltd.
+ * Copyright (C) <2013> Collabora Ltd.
+ *   Author: Sebastian Dröge <sebastian.droege@collabora.co.uk>
+ * Copyright (C) <2015-2016> Centricular Ltd
+ *  @author: Edward Hervey <edward@centricular.com>
+ *  @author: Jan Schmidt <jan@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.
+ */
+
+/**
+ * SECTION:element-ParseBin
+ *
+ * #GstBin that auto-magically constructs a parsing pipeline
+ * using available parsers and demuxers via auto-plugging.
+ *
+ */
+
+/* Implementation notes:
+ *
+ * The following section describes how ParseBin works internally.
+ *
+ * The first part of ParseBin is its typefind element, which tries
+ * to determine the media type of the input stream. If the type is found
+ * autoplugging starts.
+ *
+ * ParseBin internally organizes the elements it autoplugged into
+ * GstParseChains and GstParseGroups. A parse chain is a single chain
+ * of parsing, this
+ * means that if ParseBin ever autoplugs an element with two+ srcpads
+ * (e.g. a demuxer) this will end the chain and everything following this
+ * demuxer will be put into parse groups below the chain. Otherwise,
+ * if an element has a single srcpad that outputs raw data the parse chain
+ * is ended too and a GstParsePad is stored and blocked.
+ *
+ * A parse group combines a number of chains that are created by a
+ * demuxer element.
+ *
+ * This continues until the top-level parse chain is complete. A parse
+ * chain is complete if it either ends with a blocked elementary stream,
+ * if autoplugging stopped because no suitable plugins could be found
+ * or if the active group is complete. A parse group on the other hand
+ * is complete if all child chains are complete.
+ *
+ * If this happens at some point, all end pads of all active groups are exposed.
+ * For this ParseBin adds the end pads, and then unblocks them. Now playback starts.
+ *
+ * If one of the chains that end on a endpad receives EOS ParseBin checks
+ * if all chains and groups are drained. In that case everything goes into EOS.
+ * If there is a chain where the active group is drained but there exist next
+ * groups, the active group is hidden (endpads are removed) and the next group
+ * is exposed. This means that in some cases more pads may be created even
+ * after the initial no-more-pads signal. This happens for example with
+ * so-called "chained oggs", most commonly found among ogg/vorbis internet
+ * radio streams.
+ *
+ * Note 1: If we're talking about blocked endpads this really means that the
+ * *target* pads of the endpads are blocked. Pads that are exposed to the outside
+ * should never ever be blocked!
+ *
+ * Note 2: If a group is complete and the parent's chain demuxer adds new pads
+ * but never signaled no-more-pads this additional pads will be ignored!
+ *
+ */
+
+/* FIXME 0.11: suppress warnings for deprecated API such as GValueArray
+ * with newer GLib versions (>= 2.31.0) */
+#define GLIB_DISABLE_DEPRECATION_WARNINGS
+
+#ifdef HAVE_CONFIG_H
+#include "config.h"
+#endif
+
+#include <gst/gst-i18n-plugin.h>
+
+#include <string.h>
+#include <gst/gst.h>
+#include <gst/pbutils/pbutils.h>
+
+#include "gstplay-enum.h"
+#include "gstplayback.h"
+
+/* Also used by gsturidecodebin.c */
+gint _parse_bin_compare_factories_func (gconstpointer p1, gconstpointer p2);
+
+/* generic templates */
+static GstStaticPadTemplate decoder_bin_sink_template =
+GST_STATIC_PAD_TEMPLATE ("sink",
+    GST_PAD_SINK,
+    GST_PAD_ALWAYS,
+    GST_STATIC_CAPS_ANY);
+
+static GstStaticPadTemplate decoder_bin_src_template =
+GST_STATIC_PAD_TEMPLATE ("src_%u",
+    GST_PAD_SRC,
+    GST_PAD_SOMETIMES,
+    GST_STATIC_CAPS_ANY);
+
+GST_DEBUG_CATEGORY_STATIC (gst_parse_bin_debug);
+#define GST_CAT_DEFAULT gst_parse_bin_debug
+
+typedef struct _GstPendingPad GstPendingPad;
+typedef struct _GstParseElement GstParseElement;
+typedef struct _GstParseChain GstParseChain;
+typedef struct _GstParseGroup GstParseGroup;
+typedef struct _GstParsePad GstParsePad;
+typedef GstGhostPadClass GstParsePadClass;
+typedef struct _GstParseBin GstParseBin;
+typedef struct _GstParseBinClass GstParseBinClass;
+
+#define GST_TYPE_PARSE_BIN             (gst_parse_bin_get_type())
+#define GST_PARSE_BIN_CAST(obj)        ((GstParseBin*)(obj))
+#define GST_PARSE_BIN(obj)             (G_TYPE_CHECK_INSTANCE_CAST((obj),GST_TYPE_PARSE_BIN,GstParseBin))
+#define GST_PARSE_BIN_CLASS(klass)     (G_TYPE_CHECK_CLASS_CAST((klass),GST_TYPE_PARSE_BIN,GstParseBinClass))
+#define GST_IS_parse_bin(obj)          (G_TYPE_CHECK_INSTANCE_TYPE((obj),GST_TYPE_PARSE_BIN))
+#define GST_IS_parse_bin_CLASS(klass)  (G_TYPE_CHECK_CLASS_TYPE((klass),GST_TYPE_PARSE_BIN))
+
+/**
+ *  GstParseBin:
+ *
+ *  The opaque #GstParseBin data structure
+ */
+struct _GstParseBin
+{
+  GstBin bin;                   /* we extend GstBin */
+
+  /* properties */
+  gchar *encoding;              /* encoding of subtitles */
+  guint64 connection_speed;
+
+  GstElement *typefind;         /* this holds the typefind object */
+
+  GMutex expose_lock;           /* Protects exposal and removal of groups */
+  GstParseChain *parse_chain;   /* Top level parse chain */
+  guint nbpads;                 /* unique identifier for source pads */
+
+  GMutex factories_lock;
+  guint32 factories_cookie;     /* Cookie from last time when factories was updated */
+  GList *factories;             /* factories we can use for selecting elements */
+
+  GMutex subtitle_lock;         /* Protects changes to subtitles and encoding */
+  GList *subtitles;             /* List of elements with subtitle-encoding,
+                                 * protected by above mutex! */
+
+  gboolean have_type;           /* if we received the have_type signal */
+  guint have_type_id;           /* signal id for have-type from typefind */
+
+  gboolean async_pending;       /* async-start has been emitted */
+
+  GMutex dyn_lock;              /* lock protecting pad blocking */
+  gboolean shutdown;            /* if we are shutting down */
+  GList *blocked_pads;          /* pads that have set to block */
+
+  gboolean expose_allstreams;   /* Whether to expose unknow type streams or not */
+
+  GList *filtered;              /* elements for which error messages are filtered */
+  GList *filtered_errors;       /* filtered error messages */
+};
+
+struct _GstParseBinClass
+{
+  GstBinClass parent_class;
+
+  /* signal fired when we found a pad that we cannot decode */
+  void (*unknown_type) (GstElement * element, GstPad * pad, GstCaps * caps);
+
+  /* signal fired to know if we continue trying to decode the given caps */
+    gboolean (*autoplug_continue) (GstElement * element, GstPad * pad,
+      GstCaps * caps);
+  /* signal fired to get a list of factories to try to autoplug */
+  GValueArray *(*autoplug_factories) (GstElement * element, GstPad * pad,
+      GstCaps * caps);
+  /* signal fired to sort the factories */
+  GValueArray *(*autoplug_sort) (GstElement * element, GstPad * pad,
+      GstCaps * caps, GValueArray * factories);
+  /* signal fired to select from the proposed list of factories */
+    GstAutoplugSelectResult (*autoplug_select) (GstElement * element,
+      GstPad * pad, GstCaps * caps, GstElementFactory * factory);
+  /* signal fired when a autoplugged element that is not linked downstream
+   * or exposed wants to query something */
+    gboolean (*autoplug_query) (GstElement * element, GstPad * pad,
+      GstQuery * query);
+
+  /* fired when the last group is drained */
+  void (*drained) (GstElement * element);
+};
+
+/* signals */
+enum
+{
+  SIGNAL_UNKNOWN_TYPE,
+  SIGNAL_AUTOPLUG_CONTINUE,
+  SIGNAL_AUTOPLUG_FACTORIES,
+  SIGNAL_AUTOPLUG_SELECT,
+  SIGNAL_AUTOPLUG_SORT,
+  SIGNAL_AUTOPLUG_QUERY,
+  SIGNAL_DRAINED,
+  LAST_SIGNAL
+};
+
+#define DEFAULT_SUBTITLE_ENCODING NULL
+#define DEFAULT_USE_BUFFERING     FALSE
+#define DEFAULT_LOW_PERCENT       10
+#define DEFAULT_HIGH_PERCENT      99
+/* by default we use the automatic values above */
+#define DEFAULT_EXPOSE_ALL_STREAMS  TRUE
+#define DEFAULT_CONNECTION_SPEED    0
+
+/* Properties */
+enum
+{
+  PROP_0,
+  PROP_SUBTITLE_ENCODING,
+  PROP_SINK_CAPS,
+  PROP_EXPOSE_ALL_STREAMS,
+  PROP_CONNECTION_SPEED
+};
+
+static GstBinClass *parent_class;
+static guint gst_parse_bin_signals[LAST_SIGNAL] = { 0 };
+
+static void do_async_start (GstParseBin * parsebin);
+static void do_async_done (GstParseBin * parsebin);
+
+static void type_found (GstElement * typefind, guint probability,
+    GstCaps * caps, GstParseBin * parse_bin);
+
+static gboolean gst_parse_bin_autoplug_continue (GstElement * element,
+    GstPad * pad, GstCaps * caps);
+static GValueArray *gst_parse_bin_autoplug_factories (GstElement *
+    element, GstPad * pad, GstCaps * caps);
+static GValueArray *gst_parse_bin_autoplug_sort (GstElement * element,
+    GstPad * pad, GstCaps * caps, GValueArray * factories);
+static GstAutoplugSelectResult gst_parse_bin_autoplug_select (GstElement *
+    element, GstPad * pad, GstCaps * caps, GstElementFactory * factory);
+static gboolean gst_parse_bin_autoplug_query (GstElement * element,
+    GstPad * pad, GstQuery * query);
+
+static void gst_parse_bin_set_property (GObject * object, guint prop_id,
+    const GValue * value, GParamSpec * pspec);
+static void gst_parse_bin_get_property (GObject * object, guint prop_id,
+    GValue * value, GParamSpec * pspec);
+static void caps_notify_cb (GstPad * pad, GParamSpec * unused,
+    GstParseChain * chain);
+
+static GstStateChangeReturn gst_parse_bin_change_state (GstElement * element,
+    GstStateChange transition);
+static void gst_parse_bin_handle_message (GstBin * bin, GstMessage * message);
+static void gst_parse_pad_update_caps (GstParsePad * parsepad, GstCaps * caps);
+static void gst_parse_pad_update_tags (GstParsePad * parsepad,
+    GstTagList * tags);
+static GstEvent *gst_parse_pad_stream_start_event (GstParsePad * parsepad,
+    GstEvent * event);
+static void gst_parse_pad_update_stream_collection (GstParsePad * parsepad,
+    GstStreamCollection * collection);
+
+static GstCaps *get_pad_caps (GstPad * pad);
+
+#define EXPOSE_LOCK(parsebin) G_STMT_START {				\
+    GST_LOG_OBJECT (parsebin,						\
+		    "expose locking from thread %p",			\
+		    g_thread_self ());					\
+    g_mutex_lock (&GST_PARSE_BIN_CAST(parsebin)->expose_lock);		\
+    GST_LOG_OBJECT (parsebin,						\
+		    "expose locked from thread %p",			\
+		    g_thread_self ());					\
+} G_STMT_END
+
+#define EXPOSE_UNLOCK(parsebin) G_STMT_START {				\
+    GST_LOG_OBJECT (parsebin,						\
+		    "expose unlocking from thread %p",			\
+		    g_thread_self ());					\
+    g_mutex_unlock (&GST_PARSE_BIN_CAST(parsebin)->expose_lock);		\
+} G_STMT_END
+
+#define DYN_LOCK(parsebin) G_STMT_START {			\
+    GST_LOG_OBJECT (parsebin,						\
+		    "dynlocking from thread %p",			\
+		    g_thread_self ());					\
+    g_mutex_lock (&GST_PARSE_BIN_CAST(parsebin)->dyn_lock);			\
+    GST_LOG_OBJECT (parsebin,						\
+		    "dynlocked from thread %p",				\
+		    g_thread_self ());					\
+} G_STMT_END
+
+#define DYN_UNLOCK(parsebin) G_STMT_START {			\
+    GST_LOG_OBJECT (parsebin,						\
+		    "dynunlocking from thread %p",			\
+		    g_thread_self ());					\
+    g_mutex_unlock (&GST_PARSE_BIN_CAST(parsebin)->dyn_lock);		\
+} G_STMT_END
+
+#define SUBTITLE_LOCK(parsebin) G_STMT_START {				\
+    GST_LOG_OBJECT (parsebin,						\
+		    "subtitle locking from thread %p",			\
+		    g_thread_self ());					\
+    g_mutex_lock (&GST_PARSE_BIN_CAST(parsebin)->subtitle_lock);		\
+    GST_LOG_OBJECT (parsebin,						\
+		    "subtitle lock from thread %p",			\
+		    g_thread_self ());					\
+} G_STMT_END
+
+#define SUBTITLE_UNLOCK(parsebin) G_STMT_START {				\
+    GST_LOG_OBJECT (parsebin,						\
+		    "subtitle unlocking from thread %p",		\
+		    g_thread_self ());					\
+    g_mutex_unlock (&GST_PARSE_BIN_CAST(parsebin)->subtitle_lock);		\
+} G_STMT_END
+
+struct _GstPendingPad
+{
+  GstPad *pad;
+  GstParseChain *chain;
+  gulong event_probe_id;
+  gulong notify_caps_id;
+};
+
+struct _GstParseElement
+{
+  GstElement *element;
+  GstElement *capsfilter;       /* Optional capsfilter for Parser/Convert */
+  gulong pad_added_id;
+  gulong pad_removed_id;
+  gulong no_more_pads_id;
+};
+
+/* GstParseGroup
+ *
+ * Streams belonging to the same group/chain of a media file
+ *
+ * When changing something here lock the parent chain!
+ */
+struct _GstParseGroup
+{
+  GstParseBin *parsebin;
+  GstParseChain *parent;
+
+  gboolean no_more_pads;        /* TRUE if the demuxer signaled no-more-pads */
+  gboolean drained;             /* TRUE if the all children are drained */
+
+  GList *children;              /* List of GstParseChains in this group */
+};
+
+struct _GstParseChain
+{
+  GstParseGroup *parent;
+  GstParseBin *parsebin;
+
+  GMutex lock;                  /* Protects this chain and its groups */
+
+  GstPad *pad;                  /* srcpad that caused creation of this chain */
+  GstCaps *start_caps;          /* The initial caps of this chain */
+
+  gboolean drained;             /* TRUE if the all children are drained */
+  gboolean demuxer;             /* TRUE if elements->data is a demuxer */
+  gboolean parsed;              /* TRUE if any elements are a parser */
+  GList *elements;              /* All elements in this group, first
+                                   is the latest and most downstream element */
+
+  /* Note: there are only groups if the last element of this chain
+   * is a demuxer, otherwise the chain will end with an endpad.
+   * The other way around this means, that endpad only exists if this
+   * chain doesn't end with a demuxer! */
+
+  GstParseGroup *active_group;  /* Currently active group */
+  GList *next_groups;           /* head is newest group, tail is next group.
+                                   a new group will be created only if the head
+                                   group had no-more-pads. If it's only exposed
+                                   all new pads will be ignored! */
+  GList *pending_pads;          /* Pads that have no fixed caps yet */
+
+  GstParsePad *current_pad;     /* Current ending pad of the chain that can't
+                                 * be exposed yet but would be the same as endpad
+                                 * once it can be exposed */
+  GstParsePad *endpad;          /* Pad of this chain that could be exposed */
+  gboolean deadend;             /* This chain is incomplete and can't be completed,
+                                   e.g. no suitable decoder could be found
+                                   e.g. stream got EOS without buffers
+                                 */
+  gchar *deadend_details;
+  GstCaps *endcaps;             /* Caps that were used when linking to the endpad
+                                   or that resulted in the deadend
+                                 */
+
+  /* FIXME: This should be done directly via a thread! */
+  GList *old_groups;            /* Groups that should be freed later */
+};
+
+static void gst_parse_chain_free (GstParseChain * chain);
+static GstParseChain *gst_parse_chain_new (GstParseBin * parsebin,
+    GstParseGroup * group, GstPad * pad, GstCaps * start_caps);
+static void gst_parse_group_hide (GstParseGroup * group);
+static void gst_parse_group_free (GstParseGroup * group);
+static GstParseGroup *gst_parse_group_new (GstParseBin * parsebin,
+    GstParseChain * chain);
+static gboolean gst_parse_chain_is_complete (GstParseChain * chain);
+static gboolean gst_parse_chain_expose (GstParseChain * chain,
+    GList ** endpads, gboolean * missing_plugin,
+    GString * missing_plugin_details, gboolean * last_group,
+    gboolean * uncollected_streams);
+static void build_fallback_collection (GstParseChain * chain,
+    GstStreamCollection * collection);
+static gboolean gst_parse_chain_is_drained (GstParseChain * chain);
+static gboolean gst_parse_group_is_complete (GstParseGroup * group);
+static gboolean gst_parse_group_is_drained (GstParseGroup * group);
+
+static gboolean gst_parse_bin_expose (GstParseBin * parsebin);
+
+#define CHAIN_MUTEX_LOCK(chain) G_STMT_START {				\
+    GST_LOG_OBJECT (chain->parsebin,					\
+		    "locking chain %p from thread %p",			\
+		    chain, g_thread_self ());				\
+    g_mutex_lock (&chain->lock);						\
+    GST_LOG_OBJECT (chain->parsebin,					\
+		    "locked chain %p from thread %p",			\
+		    chain, g_thread_self ());				\
+} G_STMT_END
+
+#define CHAIN_MUTEX_UNLOCK(chain) G_STMT_START {                        \
+    GST_LOG_OBJECT (chain->parsebin,					\
+		    "unlocking chain %p from thread %p",		\
+		    chain, g_thread_self ());				\
+    g_mutex_unlock (&chain->lock);					\
+} G_STMT_END
+
+/* GstParsePad
+ *
+ * GstPad private used for source pads of chains
+ */
+struct _GstParsePad
+{
+  GstGhostPad parent;
+  GstParseBin *parsebin;
+  GstParseChain *chain;
+
+  gboolean blocked;             /* the *target* pad is blocked */
+  gboolean exposed;             /* the pad is exposed */
+  gboolean drained;             /* an EOS has been seen on the pad */
+
+  gulong block_id;
+
+  gboolean in_a_fallback_collection;
+  GstStreamCollection *active_collection;
+  GstStream *active_stream;
+};
+
+GType gst_parse_pad_get_type (void);
+G_DEFINE_TYPE (GstParsePad, gst_parse_pad, GST_TYPE_GHOST_PAD);
+#define GST_TYPE_PARSE_PAD (gst_parse_pad_get_type ())
+#define GST_PARSE_PAD(obj) (G_TYPE_CHECK_INSTANCE_CAST((obj),GST_TYPE_PARSE_PAD,GstParsePad))
+
+static GstParsePad *gst_parse_pad_new (GstParseBin * parsebin,
+    GstParseChain * chain);
+static void gst_parse_pad_activate (GstParsePad * parsepad,
+    GstParseChain * chain);
+static void gst_parse_pad_unblock (GstParsePad * parsepad);
+static void gst_parse_pad_set_blocked (GstParsePad * parsepad,
+    gboolean blocked);
+static gboolean gst_parse_pad_query (GstPad * pad, GstObject * parent,
+    GstQuery * query);
+static GstPadProbeReturn
+gst_parse_pad_event (GstPad * pad, GstPadProbeInfo * info, gpointer user_data);
+
+
+static void gst_pending_pad_free (GstPendingPad * ppad);
+static GstPadProbeReturn pad_event_cb (GstPad * pad, GstPadProbeInfo * info,
+    gpointer data);
+
+/********************************
+ * Standard GObject boilerplate *
+ ********************************/
+
+static void gst_parse_bin_class_init (GstParseBinClass * klass);
+static void gst_parse_bin_init (GstParseBin * parse_bin);
+static void gst_parse_bin_dispose (GObject * object);
+static void gst_parse_bin_finalize (GObject * object);
+
+static GType
+gst_parse_bin_get_type (void)
+{
+  static GType gst_parse_bin_type = 0;
+
+  if (!gst_parse_bin_type) {
+    static const GTypeInfo gst_parse_bin_info = {
+      sizeof (GstParseBinClass),
+      NULL,
+      NULL,
+      (GClassInitFunc) gst_parse_bin_class_init,
+      NULL,
+      NULL,
+      sizeof (GstParseBin),
+      0,
+      (GInstanceInitFunc) gst_parse_bin_init,
+      NULL
+    };
+
+    gst_parse_bin_type =
+        g_type_register_static (GST_TYPE_BIN, "GstParseBin",
+        &gst_parse_bin_info, 0);
+  }
+
+  return gst_parse_bin_type;
+}
+
+static gboolean
+_gst_boolean_accumulator (GSignalInvocationHint * ihint,
+    GValue * return_accu, const GValue * handler_return, gpointer dummy)
+{
+  gboolean myboolean;
+
+  myboolean = g_value_get_boolean (handler_return);
+  if (!(ihint->run_type & G_SIGNAL_RUN_CLEANUP))
+    g_value_set_boolean (return_accu, myboolean);
+
+  /* stop emission if FALSE */
+  return myboolean;
+}
+
+static gboolean
+_gst_boolean_or_accumulator (GSignalInvocationHint * ihint,
+    GValue * return_accu, const GValue * handler_return, gpointer dummy)
+{
+  gboolean myboolean;
+  gboolean retboolean;
+
+  myboolean = g_value_get_boolean (handler_return);
+  retboolean = g_value_get_boolean (return_accu);
+
+  if (!(ihint->run_type & G_SIGNAL_RUN_CLEANUP))
+    g_value_set_boolean (return_accu, myboolean || retboolean);
+
+  return TRUE;
+}
+
+/* we collect the first result */
+static gboolean
+_gst_array_accumulator (GSignalInvocationHint * ihint,
+    GValue * return_accu, const GValue * handler_return, gpointer dummy)
+{
+  gpointer array;
+
+  array = g_value_get_boxed (handler_return);
+  if (!(ihint->run_type & G_SIGNAL_RUN_CLEANUP))
+    g_value_set_boxed (return_accu, array);
+
+  return FALSE;
+}
+
+static gboolean
+_gst_select_accumulator (GSignalInvocationHint * ihint,
+    GValue * return_accu, const GValue * handler_return, gpointer dummy)
+{
+  GstAutoplugSelectResult res;
+
+  res = g_value_get_enum (handler_return);
+  if (!(ihint->run_type & G_SIGNAL_RUN_CLEANUP))
+    g_value_set_enum (return_accu, res);
+
+  /* Call the next handler in the chain (if any) when the current callback
+   * returns TRY. This makes it possible to register separate autoplug-select
+   * handlers that implement different TRY/EXPOSE/SKIP strategies.
+   */
+  if (res == GST_AUTOPLUG_SELECT_TRY)
+    return TRUE;
+
+  return FALSE;
+}
+
+static gboolean
+_gst_array_hasvalue_accumulator (GSignalInvocationHint * ihint,
+    GValue * return_accu, const GValue * handler_return, gpointer dummy)
+{
+  gpointer array;
+
+  array = g_value_get_boxed (handler_return);
+  if (!(ihint->run_type & G_SIGNAL_RUN_CLEANUP))
+    g_value_set_boxed (return_accu, array);
+
+  if (array != NULL)
+    return FALSE;
+
+  return TRUE;
+}
+
+static void
+gst_parse_bin_class_init (GstParseBinClass * klass)
+{
+  GObjectClass *gobject_klass;
+  GstElementClass *gstelement_klass;
+  GstBinClass *gstbin_klass;
+
+  gobject_klass = (GObjectClass *) klass;
+  gstelement_klass = (GstElementClass *) klass;
+  gstbin_klass = (GstBinClass *) klass;
+
+  parent_class = g_type_class_peek_parent (klass);
+
+  gobject_klass->dispose = gst_parse_bin_dispose;
+  gobject_klass->finalize = gst_parse_bin_finalize;
+  gobject_klass->set_property = gst_parse_bin_set_property;
+  gobject_klass->get_property = gst_parse_bin_get_property;
+
+  /**
+   * GstParseBin::unknown-type:
+   * @bin: The ParseBin.
+   * @pad: The new pad containing caps that cannot be resolved to a 'final'
+   *       stream type.
+   * @caps: The #GstCaps of the pad that cannot be resolved.
+   *
+   * This signal is emitted when a pad for which there is no further possible
+   * decoding is added to the ParseBin.
+   */
+  gst_parse_bin_signals[SIGNAL_UNKNOWN_TYPE] =
+      g_signal_new ("unknown-type", G_TYPE_FROM_CLASS (klass),
+      G_SIGNAL_RUN_LAST, G_STRUCT_OFFSET (GstParseBinClass, unknown_type),
+      NULL, NULL, g_cclosure_marshal_generic, G_TYPE_NONE, 2,
+      GST_TYPE_PAD, GST_TYPE_CAPS);
+
+  /**
+   * GstParseBin::autoplug-continue:
+   * @bin: The ParseBin.
+   * @pad: The #GstPad.
+   * @caps: The #GstCaps found.
+   *
+   * This signal is emitted whenever ParseBin finds a new stream. It is
+   * emitted before looking for any elements that can handle that stream.
+   *
+   * <note>
+   *   Invocation of signal handlers stops after the first signal handler
+   *   returns #FALSE. Signal handlers are invoked in the order they were
+   *   connected in.
+   * </note>
+   *
+   * Returns: #TRUE if you wish ParseBin to look for elements that can
+   * handle the given @caps. If #FALSE, those caps will be considered as
+   * final and the pad will be exposed as such (see 'pad-added' signal of
+   * #GstElement).
+   */
+  gst_parse_bin_signals[SIGNAL_AUTOPLUG_CONTINUE] =
+      g_signal_new ("autoplug-continue", G_TYPE_FROM_CLASS (klass),
+      G_SIGNAL_RUN_LAST, G_STRUCT_OFFSET (GstParseBinClass, autoplug_continue),
+      _gst_boolean_accumulator, NULL, g_cclosure_marshal_generic,
+      G_TYPE_BOOLEAN, 2, GST_TYPE_PAD, GST_TYPE_CAPS);
+
+  /**
+   * GstParseBin::autoplug-factories:
+   * @bin: The ParseBin.
+   * @pad: The #GstPad.
+   * @caps: The #GstCaps found.
+   *
+   * This function is emited when an array of possible factories for @caps on
+   * @pad is needed. ParseBin will by default return an array with all
+   * compatible factories, sorted by rank.
+   *
+   * If this function returns NULL, @pad will be exposed as a final caps.
+   *
+   * If this function returns an empty array, the pad will be considered as
+   * having an unhandled type media type.
+   *
+   * <note>
+   *   Only the signal handler that is connected first will ever by invoked.
+   *   Don't connect signal handlers with the #G_CONNECT_AFTER flag to this
+   *   signal, they will never be invoked!
+   * </note>
+   *
+   * Returns: a #GValueArray* with a list of factories to try. The factories are
+   * by default tried in the returned order or based on the index returned by
+   * "autoplug-select".
+   */
+  gst_parse_bin_signals[SIGNAL_AUTOPLUG_FACTORIES] =
+      g_signal_new ("autoplug-factories", G_TYPE_FROM_CLASS (klass),
+      G_SIGNAL_RUN_LAST, G_STRUCT_OFFSET (GstParseBinClass,
+          autoplug_factories), _gst_array_accumulator, NULL,
+      g_cclosure_marshal_generic, G_TYPE_VALUE_ARRAY, 2,
+      GST_TYPE_PAD, GST_TYPE_CAPS);
+
+  /**
+   * GstParseBin::autoplug-sort:
+   * @bin: The ParseBin.
+   * @pad: The #GstPad.
+   * @caps: The #GstCaps.
+   * @factories: A #GValueArray of possible #GstElementFactory to use.
+   *
+   * Once ParseBin has found the possible #GstElementFactory objects to try
+   * for @caps on @pad, this signal is emited. The purpose of the signal is for
+   * the application to perform additional sorting or filtering on the element
+   * factory array.
+   *
+   * The callee should copy and modify @factories or return #NULL if the
+   * order should not change.
+   *
+   * <note>
+   *   Invocation of signal handlers stops after one signal handler has
+   *   returned something else than #NULL. Signal handlers are invoked in
+   *   the order they were connected in.
+   *   Don't connect signal handlers with the #G_CONNECT_AFTER flag to this
+   *   signal, they will never be invoked!
+   * </note>
+   *
+   * Returns: A new sorted array of #GstElementFactory objects.
+   */
+  gst_parse_bin_signals[SIGNAL_AUTOPLUG_SORT] =
+      g_signal_new ("autoplug-sort", G_TYPE_FROM_CLASS (klass),
+      G_SIGNAL_RUN_LAST, G_STRUCT_OFFSET (GstParseBinClass, autoplug_sort),
+      _gst_array_hasvalue_accumulator, NULL,
+      g_cclosure_marshal_generic, G_TYPE_VALUE_ARRAY, 3, GST_TYPE_PAD,
+      GST_TYPE_CAPS, G_TYPE_VALUE_ARRAY | G_SIGNAL_TYPE_STATIC_SCOPE);
+
+  /**
+   * GstParseBin::autoplug-select:
+   * @bin: The ParseBin.
+   * @pad: The #GstPad.
+   * @caps: The #GstCaps.
+   * @factory: A #GstElementFactory to use.
+   *
+   * This signal is emitted once ParseBin has found all the possible
+   * #GstElementFactory that can be used to handle the given @caps. For each of
+   * those factories, this signal is emitted.
+   *
+   * The signal handler should return a #GST_TYPE_AUTOPLUG_SELECT_RESULT enum
+   * value indicating what ParseBin should do next.
+   *
+   * A value of #GST_AUTOPLUG_SELECT_TRY will try to autoplug an element from
+   * @factory.
+   *
+   * A value of #GST_AUTOPLUG_SELECT_EXPOSE will expose @pad without plugging
+   * any element to it.
+   *
+   * A value of #GST_AUTOPLUG_SELECT_SKIP will skip @factory and move to the
+   * next factory.
+   *
+   * <note>
+   *   The signal handler will not be invoked if any of the previously
+   *   registered signal handlers (if any) return a value other than
+   *   GST_AUTOPLUG_SELECT_TRY. Which also means that if you return
+   *   GST_AUTOPLUG_SELECT_TRY from one signal handler, handlers that get
+   *   registered next (again, if any) can override that decision.
+   * </note>
+   *
+   * Returns: a #GST_TYPE_AUTOPLUG_SELECT_RESULT that indicates the required
+   * operation. the default handler will always return
+   * #GST_AUTOPLUG_SELECT_TRY.
+   */
+  gst_parse_bin_signals[SIGNAL_AUTOPLUG_SELECT] =
+      g_signal_new ("autoplug-select", G_TYPE_FROM_CLASS (klass),
+      G_SIGNAL_RUN_LAST, G_STRUCT_OFFSET (GstParseBinClass, autoplug_select),
+      _gst_select_accumulator, NULL,
+      g_cclosure_marshal_generic,
+      GST_TYPE_AUTOPLUG_SELECT_RESULT, 3, GST_TYPE_PAD, GST_TYPE_CAPS,
+      GST_TYPE_ELEMENT_FACTORY);
+
+  /**
+   * GstParseBin::autoplug-query:
+   * @bin: The ParseBin.
+   * @child: The child element doing the query
+   * @pad: The #GstPad.
+   * @element: The #GstElement.
+   * @query: The #GstQuery.
+   *
+   * This signal is emitted whenever an autoplugged element that is
+   * not linked downstream yet and not exposed does a query. It can
+   * be used to tell the element about the downstream supported caps
+   * for example.
+   *
+   * Returns: #TRUE if the query was handled, #FALSE otherwise.
+   */
+  gst_parse_bin_signals[SIGNAL_AUTOPLUG_QUERY] =
+      g_signal_new ("autoplug-query", G_TYPE_FROM_CLASS (klass),
+      G_SIGNAL_RUN_LAST, G_STRUCT_OFFSET (GstParseBinClass, autoplug_query),
+      _gst_boolean_or_accumulator, NULL, g_cclosure_marshal_generic,
+      G_TYPE_BOOLEAN, 3, GST_TYPE_PAD, GST_TYPE_ELEMENT,
+      GST_TYPE_QUERY | G_SIGNAL_TYPE_STATIC_SCOPE);
+
+  /**
+   * GstParseBin::drained
+   * @bin: The ParseBin
+   *
+   * This signal is emitted once ParseBin has finished decoding all the data.
+   */
+  gst_parse_bin_signals[SIGNAL_DRAINED] =
+      g_signal_new ("drained", G_TYPE_FROM_CLASS (klass),
+      G_SIGNAL_RUN_LAST, G_STRUCT_OFFSET (GstParseBinClass, drained),
+      NULL, NULL, g_cclosure_marshal_generic, G_TYPE_NONE, 0, G_TYPE_NONE);
+
+  g_object_class_install_property (gobject_klass, PROP_SUBTITLE_ENCODING,
+      g_param_spec_string ("subtitle-encoding", "subtitle encoding",
+          "Encoding to assume if input subtitles are not in UTF-8 encoding. "
+          "If not set, the GST_SUBTITLE_ENCODING environment variable will "
+          "be checked for an encoding to use. If that is not set either, "
+          "ISO-8859-15 will be assumed.", NULL,
+          G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS));
+
+  g_object_class_install_property (gobject_klass, PROP_SINK_CAPS,
+      g_param_spec_boxed ("sink-caps", "Sink Caps",
+          "The caps of the input data. (NULL = use typefind element)",
+          GST_TYPE_CAPS, G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS));
+
+  /**
+   * GstParseBin::expose-all-streams
+   *
+   * Expose streams of unknown type.
+   *
+   * If set to %FALSE, then only the streams that can be decoded to the final
+   * caps (see 'caps' property) will have a pad exposed. Streams that do not
+   * match those caps but could have been decoded will not have decoder plugged
+   * in internally and will not have a pad exposed.
+   */
+  g_object_class_install_property (gobject_klass, PROP_EXPOSE_ALL_STREAMS,
+      g_param_spec_boolean ("expose-all-streams", "Expose All Streams",
+          "Expose all streams, including those of unknown type or that don't match the 'caps' property",
+          DEFAULT_EXPOSE_ALL_STREAMS,
+          G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS));
+
+  /**
+   * GstParseBin2::connection-speed
+   *
+   * Network connection speed in kbps (0 = unknownw)
+   */
+  g_object_class_install_property (gobject_klass, PROP_CONNECTION_SPEED,
+      g_param_spec_uint64 ("connection-speed", "Connection Speed",
+          "Network connection speed in kbps (0 = unknown)",
+          0, G_MAXUINT64 / 1000, DEFAULT_CONNECTION_SPEED,
+          G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS));
+
+
+
+  klass->autoplug_continue =
+      GST_DEBUG_FUNCPTR (gst_parse_bin_autoplug_continue);
+  klass->autoplug_factories =
+      GST_DEBUG_FUNCPTR (gst_parse_bin_autoplug_factories);
+  klass->autoplug_sort = GST_DEBUG_FUNCPTR (gst_parse_bin_autoplug_sort);
+  klass->autoplug_select = GST_DEBUG_FUNCPTR (gst_parse_bin_autoplug_select);
+  klass->autoplug_query = GST_DEBUG_FUNCPTR (gst_parse_bin_autoplug_query);
+
+  gst_element_class_add_pad_template (gstelement_klass,
+      gst_static_pad_template_get (&decoder_bin_sink_template));
+  gst_element_class_add_pad_template (gstelement_klass,
+      gst_static_pad_template_get (&decoder_bin_src_template));
+
+  gst_element_class_set_static_metadata (gstelement_klass,
+      "Parse Bin", "Generic/Bin/Parser",
+      "Parse and de-multiplex to elementary stream",
+      "Jan Schmidt <jan@centricular.com>, "
+      "Edward Hervey <edward@centricular.com>");
+
+  gstelement_klass->change_state =
+      GST_DEBUG_FUNCPTR (gst_parse_bin_change_state);
+
+  gstbin_klass->handle_message =
+      GST_DEBUG_FUNCPTR (gst_parse_bin_handle_message);
+
+  g_type_class_ref (GST_TYPE_PARSE_PAD);
+}
+
+gint
+_parse_bin_compare_factories_func (gconstpointer p1, gconstpointer p2)
+{
+  GstPluginFeature *f1, *f2;
+  gboolean is_parser1, is_parser2;
+
+  f1 = (GstPluginFeature *) p1;
+  f2 = (GstPluginFeature *) p2;
+
+  is_parser1 = gst_element_factory_list_is_type (GST_ELEMENT_FACTORY_CAST (f1),
+      GST_ELEMENT_FACTORY_TYPE_PARSER);
+  is_parser2 = gst_element_factory_list_is_type (GST_ELEMENT_FACTORY_CAST (f2),
+      GST_ELEMENT_FACTORY_TYPE_PARSER);
+
+
+  /* We want all parsers first as we always want to plug parsers
+   * before decoders */
+  if (is_parser1 && !is_parser2)
+    return -1;
+  else if (!is_parser1 && is_parser2)
+    return 1;
+
+  /* And if it's a both a parser we first sort by rank
+   * and then by factory name */
+  return gst_plugin_feature_rank_compare_func (p1, p2);
+}
+
+/* Must be called with factories lock! */
+static void
+gst_parse_bin_update_factories_list (GstParseBin * parsebin)
+{
+  guint cookie;
+
+  cookie = gst_registry_get_feature_list_cookie (gst_registry_get ());
+  if (!parsebin->factories || parsebin->factories_cookie != cookie) {
+    if (parsebin->factories)
+      gst_plugin_feature_list_free (parsebin->factories);
+    parsebin->factories =
+        gst_element_factory_list_get_elements
+        (GST_ELEMENT_FACTORY_TYPE_DECODABLE, GST_RANK_MARGINAL);
+    parsebin->factories =
+        g_list_sort (parsebin->factories, _parse_bin_compare_factories_func);
+    parsebin->factories_cookie = cookie;
+  }
+}
+
+static void
+gst_parse_bin_init (GstParseBin * parse_bin)
+{
+  /* first filter out the interesting element factories */
+  g_mutex_init (&parse_bin->factories_lock);
+
+  /* we create the typefind element only once */
+  parse_bin->typefind = gst_element_factory_make ("typefind", "typefind");
+  if (!parse_bin->typefind) {
+    g_warning ("can't find typefind element, ParseBin will not work");
+  } else {
+    GstPad *pad;
+    GstPad *gpad;
+    GstPadTemplate *pad_tmpl;
+
+    /* add the typefind element */
+    if (!gst_bin_add (GST_BIN (parse_bin), parse_bin->typefind)) {
+      g_warning ("Could not add typefind element, ParseBin will not work");
+      gst_object_unref (parse_bin->typefind);
+      parse_bin->typefind = NULL;
+    }
+
+    /* get the sinkpad */
+    pad = gst_element_get_static_pad (parse_bin->typefind, "sink");
+
+    /* get the pad template */
+    pad_tmpl = gst_static_pad_template_get (&decoder_bin_sink_template);
+
+    /* ghost the sink pad to ourself */
+    gpad = gst_ghost_pad_new_from_template ("sink", pad, pad_tmpl);
+    gst_pad_set_active (gpad, TRUE);
+    gst_element_add_pad (GST_ELEMENT (parse_bin), gpad);
+
+    gst_object_unref (pad_tmpl);
+    gst_object_unref (pad);
+  }
+
+  g_mutex_init (&parse_bin->expose_lock);
+  parse_bin->parse_chain = NULL;
+
+  g_mutex_init (&parse_bin->dyn_lock);
+  parse_bin->shutdown = FALSE;
+  parse_bin->blocked_pads = NULL;
+
+  g_mutex_init (&parse_bin->subtitle_lock);
+
+  parse_bin->encoding = g_strdup (DEFAULT_SUBTITLE_ENCODING);
+
+  parse_bin->expose_allstreams = DEFAULT_EXPOSE_ALL_STREAMS;
+  parse_bin->connection_speed = DEFAULT_CONNECTION_SPEED;
+}
+
+static void
+gst_parse_bin_dispose (GObject * object)
+{
+  GstParseBin *parse_bin;
+
+  parse_bin = GST_PARSE_BIN (object);
+
+  if (parse_bin->factories)
+    gst_plugin_feature_list_free (parse_bin->factories);
+  parse_bin->factories = NULL;
+
+  if (parse_bin->parse_chain)
+    gst_parse_chain_free (parse_bin->parse_chain);
+  parse_bin->parse_chain = NULL;
+
+  g_free (parse_bin->encoding);
+  parse_bin->encoding = NULL;
+
+  g_list_free (parse_bin->subtitles);
+  parse_bin->subtitles = NULL;
+
+  G_OBJECT_CLASS (parent_class)->dispose (object);
+}
+
+static void
+gst_parse_bin_finalize (GObject * object)
+{
+  GstParseBin *parse_bin;
+
+  parse_bin = GST_PARSE_BIN (object);
+
+  g_mutex_clear (&parse_bin->expose_lock);
+  g_mutex_clear (&parse_bin->dyn_lock);
+  g_mutex_clear (&parse_bin->subtitle_lock);
+  g_mutex_clear (&parse_bin->factories_lock);
+
+  G_OBJECT_CLASS (parent_class)->finalize (object);
+}
+
+static void
+gst_parse_bin_set_sink_caps (GstParseBin * parsebin, GstCaps * caps)
+{
+  GST_DEBUG_OBJECT (parsebin, "Setting new caps: %" GST_PTR_FORMAT, caps);
+
+  g_object_set (parsebin->typefind, "force-caps", caps, NULL);
+}
+
+static GstCaps *
+gst_parse_bin_get_sink_caps (GstParseBin * parsebin)
+{
+  GstCaps *caps;
+
+  GST_DEBUG_OBJECT (parsebin, "Getting currently set caps");
+
+  g_object_get (parsebin->typefind, "force-caps", &caps, NULL);
+
+  return caps;
+}
+
+static void
+gst_parse_bin_set_subs_encoding (GstParseBin * parsebin, const gchar * encoding)
+{
+  GList *walk;
+
+  GST_DEBUG_OBJECT (parsebin, "Setting new encoding: %s",
+      GST_STR_NULL (encoding));
+
+  SUBTITLE_LOCK (parsebin);
+  g_free (parsebin->encoding);
+  parsebin->encoding = g_strdup (encoding);
+
+  /* set the subtitle encoding on all added elements */
+  for (walk = parsebin->subtitles; walk; walk = g_list_next (walk)) {
+    g_object_set (G_OBJECT (walk->data), "subtitle-encoding",
+        parsebin->encoding, NULL);
+  }
+  SUBTITLE_UNLOCK (parsebin);
+}
+
+static gchar *
+gst_parse_bin_get_subs_encoding (GstParseBin * parsebin)
+{
+  gchar *encoding;
+
+  GST_DEBUG_OBJECT (parsebin, "Getting currently set encoding");
+
+  SUBTITLE_LOCK (parsebin);
+  encoding = g_strdup (parsebin->encoding);
+  SUBTITLE_UNLOCK (parsebin);
+
+  return encoding;
+}
+
+static void
+gst_parse_bin_set_property (GObject * object, guint prop_id,
+    const GValue * value, GParamSpec * pspec)
+{
+  GstParseBin *parsebin;
+
+  parsebin = GST_PARSE_BIN (object);
+
+  switch (prop_id) {
+    case PROP_SUBTITLE_ENCODING:
+      gst_parse_bin_set_subs_encoding (parsebin, g_value_get_string (value));
+      break;
+    case PROP_SINK_CAPS:
+      gst_parse_bin_set_sink_caps (parsebin, g_value_get_boxed (value));
+      break;
+    case PROP_EXPOSE_ALL_STREAMS:
+      parsebin->expose_allstreams = g_value_get_boolean (value);
+      break;
+    case PROP_CONNECTION_SPEED:
+      GST_OBJECT_LOCK (parsebin);
+      parsebin->connection_speed = g_value_get_uint64 (value) * 1000;
+      GST_OBJECT_UNLOCK (parsebin);
+      break;
+    default:
+      G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec);
+      break;
+  }
+}
+
+static void
+gst_parse_bin_get_property (GObject * object, guint prop_id,
+    GValue * value, GParamSpec * pspec)
+{
+  GstParseBin *parsebin;
+
+  parsebin = GST_PARSE_BIN (object);
+  switch (prop_id) {
+    case PROP_SUBTITLE_ENCODING:
+      g_value_take_string (value, gst_parse_bin_get_subs_encoding (parsebin));
+      break;
+    case PROP_SINK_CAPS:
+      g_value_take_boxed (value, gst_parse_bin_get_sink_caps (parsebin));
+      break;
+    case PROP_EXPOSE_ALL_STREAMS:
+      g_value_set_boolean (value, parsebin->expose_allstreams);
+      break;
+    case PROP_CONNECTION_SPEED:
+      GST_OBJECT_LOCK (parsebin);
+      g_value_set_uint64 (value, parsebin->connection_speed / 1000);
+      GST_OBJECT_UNLOCK (parsebin);
+      break;
+    default:
+      G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec);
+      break;
+  }
+}
+
+
+/*****
+ * Default autoplug signal handlers
+ *****/
+static gboolean
+gst_parse_bin_autoplug_continue (GstElement * element, GstPad * pad,
+    GstCaps * caps)
+{
+  GST_DEBUG_OBJECT (element, "autoplug-continue returns TRUE");
+
+  /* by default we always continue */
+  return TRUE;
+}
+
+static GValueArray *
+gst_parse_bin_autoplug_factories (GstElement * element, GstPad * pad,
+    GstCaps * caps)
+{
+  GList *list, *tmp;
+  GValueArray *result;
+  GstParseBin *parsebin = GST_PARSE_BIN_CAST (element);
+
+  GST_DEBUG_OBJECT (element, "finding factories");
+
+  /* return all compatible factories for caps */
+  g_mutex_lock (&parsebin->factories_lock);
+  gst_parse_bin_update_factories_list (parsebin);
+  list =
+      gst_element_factory_list_filter (parsebin->factories, caps, GST_PAD_SINK,
+      gst_caps_is_fixed (caps));
+  g_mutex_unlock (&parsebin->factories_lock);
+
+  result = g_value_array_new (g_list_length (list));
+  for (tmp = list; tmp; tmp = tmp->next) {
+    GstElementFactory *factory = GST_ELEMENT_FACTORY_CAST (tmp->data);
+    GValue val = { 0, };
+
+    g_value_init (&val, G_TYPE_OBJECT);
+    g_value_set_object (&val, factory);
+    g_value_array_append (result, &val);
+    g_value_unset (&val);
+  }
+  gst_plugin_feature_list_free (list);
+
+  GST_DEBUG_OBJECT (element, "autoplug-factories returns %p", result);
+
+  return result;
+}
+
+static GValueArray *
+gst_parse_bin_autoplug_sort (GstElement * element, GstPad * pad,
+    GstCaps * caps, GValueArray * factories)
+{
+  return NULL;
+}
+
+static GstAutoplugSelectResult
+gst_parse_bin_autoplug_select (GstElement * element, GstPad * pad,
+    GstCaps * caps, GstElementFactory * factory)
+{
+  /* Try factory. */
+  return GST_AUTOPLUG_SELECT_TRY;
+}
+
+static gboolean
+gst_parse_bin_autoplug_query (GstElement * element, GstPad * pad,
+    GstQuery * query)
+{
+  /* No query handled here */
+  return FALSE;
+}
+
+/********
+ * Discovery methods
+ *****/
+
+static gboolean is_demuxer_element (GstElement * srcelement);
+
+static gboolean connect_pad (GstParseBin * parsebin, GstElement * src,
+    GstParsePad * parsepad, GstPad * pad, GstCaps * caps,
+    GValueArray * factories, GstParseChain * chain, gchar ** deadend_details);
+static GList *connect_element (GstParseBin * parsebin, GstParseElement * delem,
+    GstParseChain * chain);
+static void expose_pad (GstParseBin * parsebin, GstElement * src,
+    GstParsePad * parsepad, GstPad * pad, GstCaps * caps,
+    GstParseChain * chain);
+
+static void pad_added_cb (GstElement * element, GstPad * pad,
+    GstParseChain * chain);
+static void pad_removed_cb (GstElement * element, GstPad * pad,
+    GstParseChain * chain);
+static void no_more_pads_cb (GstElement * element, GstParseChain * chain);
+
+static GstParseGroup *gst_parse_chain_get_current_group (GstParseChain * chain);
+
+static gboolean
+clear_sticky_events (GstPad * pad, GstEvent ** event, gpointer user_data)
+{
+  GST_DEBUG_OBJECT (pad, "clearing sticky event %" GST_PTR_FORMAT, *event);
+  gst_event_unref (*event);
+  *event = NULL;
+  return TRUE;
+}
+
+static gboolean
+copy_sticky_events (GstPad * pad, GstEvent ** eventptr, gpointer user_data)
+{
+  GstParsePad *ppad = GST_PARSE_PAD (user_data);
+  GstEvent *event = gst_event_ref (*eventptr);
+
+  switch (GST_EVENT_TYPE (event)) {
+    case GST_EVENT_CAPS:{
+      GstCaps *caps = NULL;
+      gst_event_parse_caps (event, &caps);
+      gst_parse_pad_update_caps (ppad, caps);
+      break;
+    }
+    case GST_EVENT_STREAM_START:{
+      event = gst_parse_pad_stream_start_event (ppad, event);
+      break;
+    }
+    case GST_EVENT_STREAM_COLLECTION:{
+      GstStreamCollection *collection = NULL;
+      gst_event_parse_stream_collection (event, &collection);
+      gst_parse_pad_update_stream_collection (ppad, collection);
+      break;
+    }
+    default:
+      break;
+  }
+
+  GST_DEBUG_OBJECT (ppad, "store sticky event %" GST_PTR_FORMAT, event);
+  gst_pad_store_sticky_event (GST_PAD_CAST (ppad), event);
+  gst_event_unref (event);
+
+  return TRUE;
+}
+
+static void
+parse_pad_set_target (GstParsePad * parsepad, GstPad * target)
+{
+  GstPad *old_target = gst_ghost_pad_get_target (GST_GHOST_PAD_CAST (parsepad));
+  if (old_target)
+    gst_object_unref (old_target);
+
+  if (old_target == target)
+    return;
+
+  gst_pad_sticky_events_foreach (GST_PAD_CAST (parsepad),
+      clear_sticky_events, NULL);
+  gst_ghost_pad_set_target (GST_GHOST_PAD_CAST (parsepad), target);
+
+  if (target == NULL) {
+    GST_LOG_OBJECT (parsepad->parsebin, "Setting pad %" GST_PTR_FORMAT
+        " target to NULL", parsepad);
+  } else {
+    GST_LOG_OBJECT (parsepad->parsebin, "Setting pad %" GST_PTR_FORMAT
+        " target to %" GST_PTR_FORMAT, parsepad, target);
+    gst_pad_sticky_events_foreach (target, copy_sticky_events, parsepad);
+  }
+}
+
+/* called when a new pad is discovered. It will perform some basic actions
+ * before trying to link something to it.
+ *
+ *  - Check the caps, don't do anything when there are no caps or when they have
+ *    no good type.
+ *  - signal AUTOPLUG_CONTINUE to check if we need to continue autoplugging this
+ *    pad.
+ *  - if the caps are non-fixed, setup a handler to continue autoplugging when
+ *    the caps become fixed (connect to notify::caps).
+ *  - get list of factories to autoplug.
+ *  - continue autoplugging to one of the factories.
+ */
+static void
+analyze_new_pad (GstParseBin * parsebin, GstElement * src, GstPad * pad,
+    GstCaps * caps, GstParseChain * chain)
+{
+  gboolean apcontinue = TRUE;
+  GValueArray *factories = NULL, *result = NULL;
+  GstParsePad *parsepad;
+  GstElementFactory *factory;
+  const gchar *classification;
+  gboolean is_parser_converter = FALSE;
+  gboolean res;
+  gchar *deadend_details = NULL;
+
+  GST_DEBUG_OBJECT (parsebin, "Pad %s:%s caps:%" GST_PTR_FORMAT,
+      GST_DEBUG_PAD_NAME (pad), caps);
+
+  if (chain->elements
+      && src != ((GstParseElement *) chain->elements->data)->element
+      && src != ((GstParseElement *) chain->elements->data)->capsfilter) {
+    GST_ERROR_OBJECT (parsebin,
+        "New pad from not the last element in this chain");
+    return;
+  }
+
+  if (chain->demuxer) {
+    GstParseGroup *group;
+    GstParseChain *oldchain = chain;
+    GstParseElement *demux = (chain->elements ? chain->elements->data : NULL);
+
+    if (chain->current_pad)
+      gst_object_unref (chain->current_pad);
+    chain->current_pad = NULL;
+
+    /* we are adding a new pad for a demuxer (see is_demuxer_element(),
+     * start a new chain for it */
+    CHAIN_MUTEX_LOCK (oldchain);
+    group = gst_parse_chain_get_current_group (chain);
+    if (group && !g_list_find (group->children, chain)) {
+      chain = gst_parse_chain_new (parsebin, group, pad, caps);
+      group->children = g_list_prepend (group->children, chain);
+    }
+    CHAIN_MUTEX_UNLOCK (oldchain);
+    if (!group) {
+      GST_WARNING_OBJECT (parsebin, "No current group");
+      return;
+    }
+
+    /* If this is not a dynamic pad demuxer, we're no-more-pads
+     * already before anything else happens
+     */
+    if (demux == NULL || !demux->no_more_pads_id)
+      group->no_more_pads = TRUE;
+  }
+
+  /* From here on we own a reference to the caps as
+   * we might create new caps below and would need
+   * to unref them later */
+  if (caps)
+    gst_caps_ref (caps);
+
+  if ((caps == NULL) || gst_caps_is_empty (caps))
+    goto unknown_type;
+
+  if (gst_caps_is_any (caps))
+    goto any_caps;
+
+  if (!chain->current_pad)
+    chain->current_pad = gst_parse_pad_new (parsebin, chain);
+
+  parsepad = gst_object_ref (chain->current_pad);
+  gst_pad_set_active (GST_PAD_CAST (parsepad), TRUE);
+  parse_pad_set_target (parsepad, pad);
+
+  /* 1. Emit 'autoplug-continue' the result will tell us if this pads needs
+   * further autoplugging. Only do this for fixed caps, for unfixed caps
+   * we will later come here again from the notify::caps handler. The
+   * problem with unfixed caps is that, we can't reliably tell if the output
+   * is e.g. accepted by a sink because only parts of the possible final
+   * caps might be accepted by the sink. */
+  if (gst_caps_is_fixed (caps))
+    g_signal_emit (G_OBJECT (parsebin),
+        gst_parse_bin_signals[SIGNAL_AUTOPLUG_CONTINUE], 0, parsepad, caps,
+        &apcontinue);
+  else
+    apcontinue = TRUE;
+
+  /* 1.a if autoplug-continue is FALSE or caps is a raw format, goto pad_is_final */
+  if (!apcontinue)
+    goto expose_pad;
+
+  /* 1.b For Parser/Converter that can output different stream formats
+   * we insert a capsfilter with the sorted caps of all possible next
+   * elements and continue with the capsfilter srcpad */
+  factory = gst_element_get_factory (src);
+  classification =
+      gst_element_factory_get_metadata (factory, GST_ELEMENT_METADATA_KLASS);
+  is_parser_converter = (strstr (classification, "Parser")
+      && strstr (classification, "Converter"));
+
+  /* FIXME: We just need to be sure that the next element is not a parser */
+  /* 1.c when the caps are not fixed yet, we can't be sure what element to
+   * connect. We delay autoplugging until the caps are fixed */
+  if (!is_parser_converter && !gst_caps_is_fixed (caps)) {
+    goto non_fixed;
+  } else if (!is_parser_converter) {
+    gst_caps_unref (caps);
+    caps = gst_pad_get_current_caps (pad);
+    if (!caps) {
+      GST_DEBUG_OBJECT (parsebin,
+          "No final caps set yet, delaying autoplugging");
+      gst_object_unref (parsepad);
+      goto setup_caps_delay;
+    }
+  }
+
+  /* 1.d else get the factories and if there's no compatible factory goto
+   * unknown_type */
+  g_signal_emit (G_OBJECT (parsebin),
+      gst_parse_bin_signals[SIGNAL_AUTOPLUG_FACTORIES], 0, parsepad, caps,
+      &factories);
+
+  /* NULL means that we can expose the pad */
+  if (factories == NULL)
+    goto expose_pad;
+
+  /* if the array is empty, we have a type for which we have no decoder */
+  if (factories->n_values == 0) {
+    /* if not we have a unhandled type with no compatible factories */
+    g_value_array_free (factories);
+    gst_object_unref (parsepad);
+    goto unknown_type;
+  }
+
+  /* 1.e sort some more. */
+  g_signal_emit (G_OBJECT (parsebin),
+      gst_parse_bin_signals[SIGNAL_AUTOPLUG_SORT], 0, parsepad, caps, factories,
+      &result);
+  if (result) {
+    g_value_array_free (factories);
+    factories = result;
+  }
+
+  /* 1.g now get the factory template caps and insert the capsfilter if this
+   * is a parser/converter
+   */
+  if (is_parser_converter) {
+    GstCaps *filter_caps;
+    gint i;
+    GstPad *p;
+    GstParseElement *delem;
+
+    g_assert (chain->elements != NULL);
+    delem = (GstParseElement *) chain->elements->data;
+
+    filter_caps = gst_caps_new_empty ();
+    for (i = 0; i < factories->n_values; i++) {
+      GstElementFactory *factory =
+          g_value_get_object (g_value_array_get_nth (factories, i));
+      GstCaps *tcaps, *intersection;
+      const GList *tmps;
+
+      GST_DEBUG ("Trying factory %s",
+          gst_plugin_feature_get_name (GST_PLUGIN_FEATURE (factory)));
+
+      if (gst_element_get_factory (src) == factory ||
+          gst_element_factory_list_is_type (factory,
+              GST_ELEMENT_FACTORY_TYPE_PARSER)) {
+        GST_DEBUG ("Skipping factory");
+        continue;
+      }
+
+      for (tmps = gst_element_factory_get_static_pad_templates (factory); tmps;
+          tmps = tmps->next) {
+        GstStaticPadTemplate *st = (GstStaticPadTemplate *) tmps->data;
+        if (st->direction != GST_PAD_SINK || st->presence != GST_PAD_ALWAYS)
+          continue;
+        tcaps = gst_static_pad_template_get_caps (st);
+        intersection =
+            gst_caps_intersect_full (tcaps, caps, GST_CAPS_INTERSECT_FIRST);
+        filter_caps = gst_caps_merge (filter_caps, intersection);
+        gst_caps_unref (tcaps);
+      }
+    }
+
+    /* Append the parser caps to prevent any not-negotiated errors */
+    filter_caps = gst_caps_merge (filter_caps, gst_caps_ref (caps));
+
+    delem->capsfilter = gst_element_factory_make ("capsfilter", NULL);
+    g_object_set (G_OBJECT (delem->capsfilter), "caps", filter_caps, NULL);
+    gst_caps_unref (filter_caps);
+    gst_element_set_state (delem->capsfilter, GST_STATE_PAUSED);
+    gst_bin_add (GST_BIN_CAST (parsebin), gst_object_ref (delem->capsfilter));
+
+    parse_pad_set_target (parsepad, NULL);
+    p = gst_element_get_static_pad (delem->capsfilter, "sink");
+    gst_pad_link_full (pad, p, GST_PAD_LINK_CHECK_NOTHING);
+    gst_object_unref (p);
+    p = gst_element_get_static_pad (delem->capsfilter, "src");
+    parse_pad_set_target (parsepad, p);
+    pad = p;
+
+    gst_caps_unref (caps);
+
+    caps = gst_pad_get_current_caps (pad);
+    if (!caps) {
+      GST_DEBUG_OBJECT (parsebin,
+          "No final caps set yet, delaying autoplugging");
+      gst_object_unref (parsepad);
+      g_value_array_free (factories);
+      goto setup_caps_delay;
+    }
+  }
+
+  /* 1.h else continue autoplugging something from the list. */
+  GST_LOG_OBJECT (pad, "Let's continue discovery on this pad");
+  res =
+      connect_pad (parsebin, src, parsepad, pad, caps, factories, chain,
+      &deadend_details);
+
+  /* Need to unref the capsfilter srcpad here if
+   * we inserted a capsfilter */
+  if (is_parser_converter)
+    gst_object_unref (pad);
+
+  gst_object_unref (parsepad);
+  g_value_array_free (factories);
+
+  if (!res)
+    goto unknown_type;
+
+  gst_caps_unref (caps);
+
+  return;
+
+expose_pad:
+  {
+    GST_LOG_OBJECT (parsebin, "Pad is final. autoplug-continue:%d", apcontinue);
+    expose_pad (parsebin, src, parsepad, pad, caps, chain);
+    gst_object_unref (parsepad);
+    gst_caps_unref (caps);
+    return;
+  }
+
+unknown_type:
+  {
+    GST_LOG_OBJECT (pad, "Unknown type, posting message and firing signal");
+
+    chain->deadend_details = deadend_details;
+    chain->deadend = TRUE;
+    chain->endcaps = caps;
+    gst_object_replace ((GstObject **) & chain->current_pad, NULL);
+
+    gst_element_post_message (GST_ELEMENT_CAST (parsebin),
+        gst_missing_decoder_message_new (GST_ELEMENT_CAST (parsebin), caps));
+
+    g_signal_emit (G_OBJECT (parsebin),
+        gst_parse_bin_signals[SIGNAL_UNKNOWN_TYPE], 0, pad, caps);
+
+    /* Try to expose anything */
+    EXPOSE_LOCK (parsebin);
+    if (parsebin->parse_chain) {
+      if (gst_parse_chain_is_complete (parsebin->parse_chain)) {
+        gst_parse_bin_expose (parsebin);
+      }
+    }
+    EXPOSE_UNLOCK (parsebin);
+
+    if (src == parsebin->typefind) {
+      if (!caps || gst_caps_is_empty (caps)) {
+        GST_ELEMENT_ERROR (parsebin, STREAM, TYPE_NOT_FOUND,
+            (_("Could not determine type of stream")), (NULL));
+      }
+      do_async_done (parsebin);
+    }
+    return;
+  }
+#if 1
+non_fixed:
+  {
+    GST_DEBUG_OBJECT (pad, "pad has non-fixed caps delay autoplugging");
+    gst_object_unref (parsepad);
+    goto setup_caps_delay;
+  }
+#endif
+any_caps:
+  {
+    GST_DEBUG_OBJECT (pad, "pad has ANY caps, delaying auto-plugging");
+    goto setup_caps_delay;
+  }
+setup_caps_delay:
+  {
+    GstPendingPad *ppad;
+
+    /* connect to caps notification */
+    CHAIN_MUTEX_LOCK (chain);
+    GST_LOG_OBJECT (parsebin, "Chain %p has now %d dynamic pads", chain,
+        g_list_length (chain->pending_pads));
+    ppad = g_slice_new0 (GstPendingPad);
+    ppad->pad = gst_object_ref (pad);
+    ppad->chain = chain;
+    ppad->event_probe_id =
+        gst_pad_add_probe (pad, GST_PAD_PROBE_TYPE_EVENT_DOWNSTREAM,
+        pad_event_cb, ppad, NULL);
+    chain->pending_pads = g_list_prepend (chain->pending_pads, ppad);
+    ppad->notify_caps_id = g_signal_connect (pad, "notify::caps",
+        G_CALLBACK (caps_notify_cb), chain);
+    CHAIN_MUTEX_UNLOCK (chain);
+
+    /* If we're here because we have a Parser/Converter
+     * we have to unref the pad */
+    if (is_parser_converter)
+      gst_object_unref (pad);
+    if (caps)
+      gst_caps_unref (caps);
+
+    return;
+  }
+}
+
+static void
+add_error_filter (GstParseBin * parsebin, GstElement * element)
+{
+  GST_OBJECT_LOCK (parsebin);
+  parsebin->filtered = g_list_prepend (parsebin->filtered, element);
+  GST_OBJECT_UNLOCK (parsebin);
+}
+
+static void
+remove_error_filter (GstParseBin * parsebin, GstElement * element,
+    GstMessage ** error)
+{
+  GList *l;
+
+  GST_OBJECT_LOCK (parsebin);
+  parsebin->filtered = g_list_remove (parsebin->filtered, element);
+
+  if (error)
+    *error = NULL;
+
+  l = parsebin->filtered_errors;
+  while (l) {
+    GstMessage *msg = l->data;
+
+    if (GST_MESSAGE_SRC (msg) == GST_OBJECT_CAST (element)) {
+      /* Get the last error of this element, i.e. the earliest */
+      if (error)
+        gst_message_replace (error, msg);
+      gst_message_unref (msg);
+      l = parsebin->filtered_errors =
+          g_list_delete_link (parsebin->filtered_errors, l);
+    } else {
+      l = l->next;
+    }
+  }
+  GST_OBJECT_UNLOCK (parsebin);
+}
+
+typedef struct
+{
+  gboolean ret;
+  GstPad *peer;
+} SendStickyEventsData;
+
+static gboolean
+send_sticky_event (GstPad * pad, GstEvent ** event, gpointer user_data)
+{
+  SendStickyEventsData *data = user_data;
+  gboolean ret;
+
+  ret = gst_pad_send_event (data->peer, gst_event_ref (*event));
+  if (!ret)
+    data->ret = FALSE;
+
+  return data->ret;
+}
+
+static gboolean
+send_sticky_events (GstParseBin * parsebin, GstPad * pad)
+{
+  SendStickyEventsData data;
+
+  data.ret = TRUE;
+  data.peer = gst_pad_get_peer (pad);
+
+  gst_pad_sticky_events_foreach (pad, send_sticky_event, &data);
+
+  gst_object_unref (data.peer);
+
+  return data.ret;
+}
+
+static gchar *
+error_message_to_string (GstMessage * msg)
+{
+  GError *err;
+  gchar *debug, *message, *full_message;
+
+  gst_message_parse_error (msg, &err, &debug);
+
+  message = gst_error_get_message (err->domain, err->code);
+
+  if (debug)
+    full_message = g_strdup_printf ("%s\n%s\n%s", message, err->message, debug);
+  else
+    full_message = g_strdup_printf ("%s\n%s", message, err->message);
+
+  g_free (message);
+  g_free (debug);
+  g_clear_error (&err);
+
+  return full_message;
+}
+
+/* We consider elements as "simple demuxer" when they are a demuxer
+ * with one and only one ALWAYS source pad.
+ */
+static gboolean
+is_simple_demuxer_factory (GstElementFactory * factory)
+{
+  if (strstr (gst_element_factory_get_metadata (factory,
+              GST_ELEMENT_METADATA_KLASS), "Demuxer")) {
+    const GList *tmp;
+    gint num_alway_srcpads = 0;
+
+    for (tmp = gst_element_factory_get_static_pad_templates (factory);
+        tmp; tmp = tmp->next) {
+      GstStaticPadTemplate *template = tmp->data;
+
+      if (template->direction == GST_PAD_SRC) {
+        if (template->presence == GST_PAD_ALWAYS) {
+          if (num_alway_srcpads >= 0)
+            num_alway_srcpads++;
+        } else {
+          num_alway_srcpads = -1;
+        }
+      }
+
+    }
+
+    if (num_alway_srcpads == 1)
+      return TRUE;
+  }
+
+  return FALSE;
+}
+
+/* connect_pad:
+ *
+ * Try to connect the given pad to an element created from one of the factories,
+ * and recursively.
+ *
+ * Note that parsepad is ghosting pad, and so pad is linked; be sure to unset parsepad's
+ * target before trying to link pad.
+ *
+ * Returns TRUE if an element was properly created and linked
+ */
+static gboolean
+connect_pad (GstParseBin * parsebin, GstElement * src, GstParsePad * parsepad,
+    GstPad * pad, GstCaps * caps, GValueArray * factories,
+    GstParseChain * chain, gchar ** deadend_details)
+{
+  gboolean res = FALSE;
+  GString *error_details = NULL;
+
+  g_return_val_if_fail (factories != NULL, FALSE);
+  g_return_val_if_fail (factories->n_values > 0, FALSE);
+
+  GST_DEBUG_OBJECT (parsebin,
+      "pad %s:%s , chain:%p, %d factories, caps %" GST_PTR_FORMAT,
+      GST_DEBUG_PAD_NAME (pad), chain, factories->n_values, caps);
+
+  error_details = g_string_new ("");
+
+  /* 2. Try to create an element and link to it */
+  while (factories->n_values > 0) {
+    GstAutoplugSelectResult ret;
+    GstElementFactory *factory;
+    GstParseElement *delem;
+    GstElement *element;
+    GstPad *sinkpad;
+    GParamSpec *pspec;
+    gboolean subtitle;
+    GList *to_connect = NULL;
+    gboolean is_parser_converter = FALSE, is_simple_demuxer = FALSE;
+
+    /* Set parsepad target to pad again, it might've been unset
+     * below but we came back here because something failed
+     */
+    parse_pad_set_target (parsepad, pad);
+
+    /* take first factory */
+    factory = g_value_get_object (g_value_array_get_nth (factories, 0));
+    /* Remove selected factory from the list. */
+    g_value_array_remove (factories, 0);
+
+    GST_LOG_OBJECT (src, "trying factory %" GST_PTR_FORMAT, factory);
+
+    /* Check if the caps are really supported by the factory. The
+     * factory list is non-empty-subset filtered while caps
+     * are only accepted by a pad if they are a subset of the
+     * pad caps.
+     *
+     * FIXME: Only do this for fixed caps here. Non-fixed caps
+     * can happen if a Parser/Converter was autoplugged before
+     * this. We then assume that it will be able to convert to
+     * everything that the decoder would want.
+     *
+     * A subset check will fail here because the parser caps
+     * will be generic and while the decoder will only
+     * support a subset of the parser caps.
+     */
+    if (gst_caps_is_fixed (caps)) {
+      const GList *templs;
+      gboolean skip = FALSE;
+
+      templs = gst_element_factory_get_static_pad_templates (factory);
+
+      while (templs) {
+        GstStaticPadTemplate *templ = (GstStaticPadTemplate *) templs->data;
+
+        if (templ->direction == GST_PAD_SINK) {
+          GstCaps *templcaps = gst_static_caps_get (&templ->static_caps);
+
+          if (!gst_caps_is_subset (caps, templcaps)) {
+            GST_DEBUG_OBJECT (src,
+                "caps %" GST_PTR_FORMAT " not subset of %" GST_PTR_FORMAT, caps,
+                templcaps);
+            gst_caps_unref (templcaps);
+            skip = TRUE;
+            break;
+          }
+
+          gst_caps_unref (templcaps);
+        }
+        templs = g_list_next (templs);
+      }
+      if (skip)
+        continue;
+    }
+
+    /* If the factory is for a parser we first check if the factory
+     * was already used for the current chain. If it was used already
+     * we would otherwise create an infinite loop here because the
+     * parser apparently accepts its own output as input.
+     * This is only done for parsers because it's perfectly valid
+     * to have other element classes after each other because a
+     * parser is the only one that does not change the data. A
+     * valid example for this would be multiple id3demux in a row.
+     */
+    is_parser_converter = strstr (gst_element_factory_get_metadata (factory,
+            GST_ELEMENT_METADATA_KLASS), "Parser") != NULL;
+    is_simple_demuxer = is_simple_demuxer_factory (factory);
+
+    if (is_parser_converter) {
+      gboolean skip = FALSE;
+      GList *l;
+
+      CHAIN_MUTEX_LOCK (chain);
+      for (l = chain->elements; l; l = l->next) {
+        GstParseElement *delem = (GstParseElement *) l->data;
+        GstElement *otherelement = delem->element;
+
+        if (gst_element_get_factory (otherelement) == factory) {
+          skip = TRUE;
+          break;
+        }
+      }
+
+      if (!skip && chain->parent && chain->parent->parent) {
+        GstParseChain *parent_chain = chain->parent->parent;
+        GstParseElement *pelem =
+            parent_chain->elements ? parent_chain->elements->data : NULL;
+
+        if (pelem && gst_element_get_factory (pelem->element) == factory)
+          skip = TRUE;
+      }
+      CHAIN_MUTEX_UNLOCK (chain);
+      if (skip) {
+        GST_DEBUG_OBJECT (parsebin,
+            "Skipping factory '%s' because it was already used in this chain",
+            gst_plugin_feature_get_name (GST_PLUGIN_FEATURE_CAST (factory)));
+        continue;
+      }
+
+    }
+
+    /* Expose pads if the next factory is a decoder */
+    if (gst_element_factory_list_is_type (factory,
+            GST_ELEMENT_FACTORY_TYPE_DECODER)) {
+      ret = GST_AUTOPLUG_SELECT_EXPOSE;
+    } else {
+      /* emit autoplug-select to see what we should do with it. */
+      g_signal_emit (G_OBJECT (parsebin),
+          gst_parse_bin_signals[SIGNAL_AUTOPLUG_SELECT],
+          0, parsepad, caps, factory, &ret);
+    }
+
+    switch (ret) {
+      case GST_AUTOPLUG_SELECT_TRY:
+        GST_DEBUG_OBJECT (parsebin, "autoplug select requested try");
+        break;
+      case GST_AUTOPLUG_SELECT_EXPOSE:
+        GST_DEBUG_OBJECT (parsebin, "autoplug select requested expose");
+        /* expose the pad, we don't have the source element */
+        expose_pad (parsebin, src, parsepad, pad, caps, chain);
+        res = TRUE;
+        goto beach;
+      case GST_AUTOPLUG_SELECT_SKIP:
+        GST_DEBUG_OBJECT (parsebin, "autoplug select requested skip");
+        continue;
+      default:
+        GST_WARNING_OBJECT (parsebin, "autoplug select returned unhandled %d",
+            ret);
+        break;
+    }
+
+    /* 2.0. Unlink pad */
+    parse_pad_set_target (parsepad, NULL);
+
+    /* 2.1. Try to create an element */
+    if ((element = gst_element_factory_create (factory, NULL)) == NULL) {
+      GST_WARNING_OBJECT (parsebin, "Could not create an element from %s",
+          gst_plugin_feature_get_name (GST_PLUGIN_FEATURE (factory)));
+      g_string_append_printf (error_details,
+          "Could not create an element from %s\n",
+          gst_plugin_feature_get_name (GST_PLUGIN_FEATURE (factory)));
+      continue;
+    }
+
+    /* Filter errors, this will prevent the element from causing the pipeline
+     * to error while we test it using READY state. */
+    add_error_filter (parsebin, element);
+
+    /* We don't yet want the bin to control the element's state */
+    gst_element_set_locked_state (element, TRUE);
+
+    /* ... add it ... */
+    if (!(gst_bin_add (GST_BIN_CAST (parsebin), element))) {
+      GST_WARNING_OBJECT (parsebin, "Couldn't add %s to the bin",
+          GST_ELEMENT_NAME (element));
+      remove_error_filter (parsebin, element, NULL);
+      g_string_append_printf (error_details, "Couldn't add %s to the bin\n",
+          GST_ELEMENT_NAME (element));
+      gst_object_unref (element);
+      continue;
+    }
+
+    /* Find its sink pad. */
+    sinkpad = NULL;
+    GST_OBJECT_LOCK (element);
+    if (element->sinkpads != NULL)
+      sinkpad = gst_object_ref (element->sinkpads->data);
+    GST_OBJECT_UNLOCK (element);
+
+    if (sinkpad == NULL) {
+      GST_WARNING_OBJECT (parsebin, "Element %s doesn't have a sink pad",
+          GST_ELEMENT_NAME (element));
+      remove_error_filter (parsebin, element, NULL);
+      g_string_append_printf (error_details,
+          "Element %s doesn't have a sink pad", GST_ELEMENT_NAME (element));
+      gst_bin_remove (GST_BIN (parsebin), element);
+      continue;
+    }
+
+    /* ... and try to link */
+    if ((gst_pad_link_full (pad, sinkpad,
+                GST_PAD_LINK_CHECK_NOTHING)) != GST_PAD_LINK_OK) {
+      GST_WARNING_OBJECT (parsebin, "Link failed on pad %s:%s",
+          GST_DEBUG_PAD_NAME (sinkpad));
+      remove_error_filter (parsebin, element, NULL);
+      g_string_append_printf (error_details, "Link failed on pad %s:%s",
+          GST_DEBUG_PAD_NAME (sinkpad));
+      gst_object_unref (sinkpad);
+      gst_bin_remove (GST_BIN (parsebin), element);
+      continue;
+    }
+
+    /* ... activate it ... */
+    if ((gst_element_set_state (element,
+                GST_STATE_READY)) == GST_STATE_CHANGE_FAILURE) {
+      GstMessage *error_msg;
+
+      GST_WARNING_OBJECT (parsebin, "Couldn't set %s to READY",
+          GST_ELEMENT_NAME (element));
+      remove_error_filter (parsebin, element, &error_msg);
+
+      if (error_msg) {
+        gchar *error_string = error_message_to_string (error_msg);
+        g_string_append_printf (error_details, "Couldn't set %s to READY:\n%s",
+            GST_ELEMENT_NAME (element), error_string);
+        gst_message_unref (error_msg);
+        g_free (error_string);
+      } else {
+        g_string_append_printf (error_details, "Couldn't set %s to READY",
+            GST_ELEMENT_NAME (element));
+      }
+      gst_object_unref (sinkpad);
+      gst_bin_remove (GST_BIN (parsebin), element);
+      continue;
+    }
+
+    /* check if we still accept the caps on the pad after setting
+     * the element to READY */
+    if (!gst_pad_query_accept_caps (sinkpad, caps)) {
+      GstMessage *error_msg;
+
+      GST_WARNING_OBJECT (parsebin, "Element %s does not accept caps",
+          GST_ELEMENT_NAME (element));
+
+      remove_error_filter (parsebin, element, &error_msg);
+
+      if (error_msg) {
+        gchar *error_string = error_message_to_string (error_msg);
+        g_string_append_printf (error_details,
+            "Element %s does not accept caps:\n%s", GST_ELEMENT_NAME (element),
+            error_string);
+        gst_message_unref (error_msg);
+        g_free (error_string);
+      } else {
+        g_string_append_printf (error_details,
+            "Element %s does not accept caps", GST_ELEMENT_NAME (element));
+      }
+
+      gst_element_set_state (element, GST_STATE_NULL);
+      gst_object_unref (sinkpad);
+      gst_bin_remove (GST_BIN (parsebin), element);
+      continue;
+    }
+
+    gst_object_unref (sinkpad);
+    GST_LOG_OBJECT (parsebin, "linked on pad %s:%s", GST_DEBUG_PAD_NAME (pad));
+
+    CHAIN_MUTEX_LOCK (chain);
+    delem = g_slice_new0 (GstParseElement);
+    delem->element = gst_object_ref (element);
+    delem->capsfilter = NULL;
+    chain->elements = g_list_prepend (chain->elements, delem);
+    chain->demuxer = is_demuxer_element (element);
+
+    /* If we plugging a parser, mark the chain as parsed */
+    chain->parsed |= is_parser_converter;
+
+    CHAIN_MUTEX_UNLOCK (chain);
+
+    /* Set connection-speed property if needed */
+    if (chain->demuxer) {
+      GParamSpec *pspec;
+
+      if ((pspec = g_object_class_find_property (G_OBJECT_GET_CLASS (element),
+                  "connection-speed"))) {
+        guint64 speed = parsebin->connection_speed / 1000;
+        gboolean wrong_type = FALSE;
+
+        if (G_PARAM_SPEC_TYPE (pspec) == G_TYPE_PARAM_UINT) {
+          GParamSpecUInt *pspecuint = G_PARAM_SPEC_UINT (pspec);
+
+          speed = CLAMP (speed, pspecuint->minimum, pspecuint->maximum);
+        } else if (G_PARAM_SPEC_TYPE (pspec) == G_TYPE_PARAM_INT) {
+          GParamSpecInt *pspecint = G_PARAM_SPEC_INT (pspec);
+
+          speed = CLAMP (speed, pspecint->minimum, pspecint->maximum);
+        } else if (G_PARAM_SPEC_TYPE (pspec) == G_TYPE_PARAM_UINT64) {
+          GParamSpecUInt64 *pspecuint = G_PARAM_SPEC_UINT64 (pspec);
+
+          speed = CLAMP (speed, pspecuint->minimum, pspecuint->maximum);
+        } else if (G_PARAM_SPEC_TYPE (pspec) == G_TYPE_PARAM_INT64) {
+          GParamSpecInt64 *pspecint = G_PARAM_SPEC_INT64 (pspec);
+
+          speed = CLAMP (speed, pspecint->minimum, pspecint->maximum);
+        } else {
+          GST_WARNING_OBJECT (parsebin,
+              "The connection speed property %" G_GUINT64_FORMAT " of type %s"
+              " is not usefull not setting it", speed,
+              g_type_name (G_PARAM_SPEC_TYPE (pspec)));
+          wrong_type = TRUE;
+        }
+
+        if (!wrong_type) {
+          GST_DEBUG_OBJECT (parsebin,
+              "setting connection-speed=%" G_GUINT64_FORMAT
+              " to demuxer element", speed);
+
+          g_object_set (element, "connection-speed", speed, NULL);
+        }
+      }
+    }
+
+    /* try to configure the subtitle encoding property when we can */
+    pspec = g_object_class_find_property (G_OBJECT_GET_CLASS (element),
+        "subtitle-encoding");
+    if (pspec && G_PARAM_SPEC_VALUE_TYPE (pspec) == G_TYPE_STRING) {
+      SUBTITLE_LOCK (parsebin);
+      GST_DEBUG_OBJECT (parsebin,
+          "setting subtitle-encoding=%s to element", parsebin->encoding);
+      g_object_set (G_OBJECT (element), "subtitle-encoding", parsebin->encoding,
+          NULL);
+      SUBTITLE_UNLOCK (parsebin);
+      subtitle = TRUE;
+    } else {
+      subtitle = FALSE;
+    }
+
+    /* link this element further */
+    to_connect = connect_element (parsebin, delem, chain);
+
+    if ((is_simple_demuxer || is_parser_converter) && to_connect) {
+      GList *l;
+      for (l = to_connect; l; l = g_list_next (l)) {
+        GstPad *opad = GST_PAD_CAST (l->data);
+        GstCaps *ocaps;
+
+        ocaps = get_pad_caps (opad);
+        analyze_new_pad (parsebin, delem->element, opad, ocaps, chain);
+        if (ocaps)
+          gst_caps_unref (ocaps);
+
+        gst_object_unref (opad);
+      }
+      g_list_free (to_connect);
+      to_connect = NULL;
+    }
+
+    /* Bring the element to the state of the parent */
+
+    /* First lock element's sinkpad stream lock so no data reaches
+     * the possible new element added when caps are sent by element
+     * while we're still sending sticky events */
+    GST_PAD_STREAM_LOCK (sinkpad);
+
+    if ((gst_element_set_state (element,
+                GST_STATE_PAUSED)) == GST_STATE_CHANGE_FAILURE ||
+        !send_sticky_events (parsebin, pad)) {
+      GstParseElement *dtmp = NULL;
+      GstElement *tmp = NULL;
+      GstMessage *error_msg;
+
+      GST_PAD_STREAM_UNLOCK (sinkpad);
+
+      GST_WARNING_OBJECT (parsebin, "Couldn't set %s to PAUSED",
+          GST_ELEMENT_NAME (element));
+
+      g_list_free_full (to_connect, (GDestroyNotify) gst_object_unref);
+      to_connect = NULL;
+
+      remove_error_filter (parsebin, element, &error_msg);
+
+      if (error_msg) {
+        gchar *error_string = error_message_to_string (error_msg);
+        g_string_append_printf (error_details, "Couldn't set %s to PAUSED:\n%s",
+            GST_ELEMENT_NAME (element), error_string);
+        gst_message_unref (error_msg);
+        g_free (error_string);
+      } else {
+        g_string_append_printf (error_details, "Couldn't set %s to PAUSED",
+            GST_ELEMENT_NAME (element));
+      }
+
+      /* Remove all elements in this chain that were just added. No
+       * other thread could've added elements in the meantime */
+      CHAIN_MUTEX_LOCK (chain);
+      do {
+        GList *l;
+
+        dtmp = chain->elements->data;
+        tmp = dtmp->element;
+
+        /* Disconnect any signal handlers that might be connected
+         * in connect_element() or analyze_pad() */
+        if (dtmp->pad_added_id)
+          g_signal_handler_disconnect (tmp, dtmp->pad_added_id);
+        if (dtmp->pad_removed_id)
+          g_signal_handler_disconnect (tmp, dtmp->pad_removed_id);
+        if (dtmp->no_more_pads_id)
+          g_signal_handler_disconnect (tmp, dtmp->no_more_pads_id);
+
+        for (l = chain->pending_pads; l;) {
+          GstPendingPad *pp = l->data;
+          GList *n;
+
+          if (GST_PAD_PARENT (pp->pad) != tmp) {
+            l = l->next;
+            continue;
+          }
+
+          gst_pending_pad_free (pp);
+
+          /* Remove element from the list, update list head and go to the
+           * next element in the list */
+          n = l->next;
+          chain->pending_pads = g_list_delete_link (chain->pending_pads, l);
+          l = n;
+        }
+
+        if (dtmp->capsfilter) {
+          gst_bin_remove (GST_BIN (parsebin), dtmp->capsfilter);
+          gst_element_set_state (dtmp->capsfilter, GST_STATE_NULL);
+          gst_object_unref (dtmp->capsfilter);
+        }
+
+        gst_bin_remove (GST_BIN (parsebin), tmp);
+        gst_element_set_state (tmp, GST_STATE_NULL);
+
+        gst_object_unref (tmp);
+        g_slice_free (GstParseElement, dtmp);
+
+        chain->elements = g_list_delete_link (chain->elements, chain->elements);
+      } while (tmp != element);
+      CHAIN_MUTEX_UNLOCK (chain);
+
+      continue;
+    } else {
+      /* Everything went well, the spice must flow now */
+      GST_PAD_STREAM_UNLOCK (sinkpad);
+    }
+
+    /* Remove error filter now, from now on we can't gracefully
+     * handle errors of the element anymore */
+    remove_error_filter (parsebin, element, NULL);
+
+    /* Now let the bin handle the state */
+    gst_element_set_locked_state (element, FALSE);
+
+    if (subtitle) {
+      SUBTITLE_LOCK (parsebin);
+      /* we added the element now, add it to the list of subtitle-encoding
+       * elements when we can set the property */
+      parsebin->subtitles = g_list_prepend (parsebin->subtitles, element);
+      SUBTITLE_UNLOCK (parsebin);
+    }
+
+    if (to_connect) {
+      GList *l;
+      for (l = to_connect; l; l = g_list_next (l)) {
+        GstPad *opad = GST_PAD_CAST (l->data);
+        GstCaps *ocaps;
+
+        ocaps = get_pad_caps (opad);
+        analyze_new_pad (parsebin, delem->element, opad, ocaps, chain);
+        if (ocaps)
+          gst_caps_unref (ocaps);
+
+        gst_object_unref (opad);
+      }
+      g_list_free (to_connect);
+      to_connect = NULL;
+    }
+
+    res = TRUE;
+    break;
+  }
+
+beach:
+  if (error_details)
+    *deadend_details = g_string_free (error_details, (error_details->len == 0
+            || res));
+  else
+    *deadend_details = NULL;
+
+  return res;
+}
+
+static GstCaps *
+get_pad_caps (GstPad * pad)
+{
+  GstCaps *caps;
+
+  /* first check the pad caps, if this is set, we are positively sure it is
+   * fixed and exactly what the element will produce. */
+  caps = gst_pad_get_current_caps (pad);
+
+  /* then use the getcaps function if we don't have caps. These caps might not
+   * be fixed in some cases, in which case analyze_new_pad will set up a
+   * notify::caps signal to continue autoplugging. */
+  if (caps == NULL)
+    caps = gst_pad_query_caps (pad, NULL);
+
+  return caps;
+}
+
+/* Returns a list of pads that can be connected to already and
+ * connects to pad-added and related signals */
+static GList *
+connect_element (GstParseBin * parsebin, GstParseElement * delem,
+    GstParseChain * chain)
+{
+  GstElement *element = delem->element;
+  GList *pads;
+  gboolean dynamic = FALSE;
+  GList *to_connect = NULL;
+
+  GST_DEBUG_OBJECT (parsebin,
+      "Attempting to connect element %s [chain:%p] further",
+      GST_ELEMENT_NAME (element), chain);
+
+  /* 1. Loop over pad templates, grabbing existing pads along the way */
+  for (pads = GST_ELEMENT_GET_CLASS (element)->padtemplates; pads;
+      pads = g_list_next (pads)) {
+    GstPadTemplate *templ = GST_PAD_TEMPLATE (pads->data);
+    const gchar *templ_name;
+
+    /* we are only interested in source pads */
+    if (GST_PAD_TEMPLATE_DIRECTION (templ) != GST_PAD_SRC)
+      continue;
+
+    templ_name = GST_PAD_TEMPLATE_NAME_TEMPLATE (templ);
+    GST_DEBUG_OBJECT (parsebin, "got a source pad template %s", templ_name);
+
+    /* figure out what kind of pad this is */
+    switch (GST_PAD_TEMPLATE_PRESENCE (templ)) {
+      case GST_PAD_ALWAYS:
+      {
+        /* get the pad that we need to autoplug */
+        GstPad *pad = gst_element_get_static_pad (element, templ_name);
+
+        if (pad) {
+          GST_DEBUG_OBJECT (parsebin, "got the pad for always template %s",
+              templ_name);
+          /* here is the pad, we need to autoplug it */
+          to_connect = g_list_prepend (to_connect, pad);
+        } else {
+          /* strange, pad is marked as always but it's not
+           * there. Fix the element */
+          GST_WARNING_OBJECT (parsebin,
+              "could not get the pad for always template %s", templ_name);
+        }
+        break;
+      }
+      case GST_PAD_SOMETIMES:
+      {
+        /* try to get the pad to see if it is already created or
+         * not */
+        GstPad *pad = gst_element_get_static_pad (element, templ_name);
+
+        if (pad) {
+          GST_DEBUG_OBJECT (parsebin, "got the pad for sometimes template %s",
+              templ_name);
+          /* the pad is created, we need to autoplug it */
+          to_connect = g_list_prepend (to_connect, pad);
+        } else {
+          GST_DEBUG_OBJECT (parsebin,
+              "did not get the sometimes pad of template %s", templ_name);
+          /* we have an element that will create dynamic pads */
+          dynamic = TRUE;
+        }
+        break;
+      }
+      case GST_PAD_REQUEST:
+        /* ignore request pads */
+        GST_DEBUG_OBJECT (parsebin, "ignoring request padtemplate %s",
+            templ_name);
+        break;
+    }
+  }
+
+  /* 2. if there are more potential pads, connect to relevant signals */
+  if (dynamic) {
+    GST_LOG_OBJECT (parsebin, "Adding signals to element %s in chain %p",
+        GST_ELEMENT_NAME (element), chain);
+    delem->pad_added_id = g_signal_connect (element, "pad-added",
+        G_CALLBACK (pad_added_cb), chain);
+    delem->pad_removed_id = g_signal_connect (element, "pad-removed",
+        G_CALLBACK (pad_removed_cb), chain);
+    delem->no_more_pads_id = g_signal_connect (element, "no-more-pads",
+        G_CALLBACK (no_more_pads_cb), chain);
+  }
+
+  /* 3. return all pads that can be connected to already */
+
+  return to_connect;
+}
+
+/* expose_pad:
+ *
+ * Expose the given pad on the chain as a decoded pad.
+ */
+static void
+expose_pad (GstParseBin * parsebin, GstElement * src, GstParsePad * parsepad,
+    GstPad * pad, GstCaps * caps, GstParseChain * chain)
+{
+  GST_DEBUG_OBJECT (parsebin, "pad %s:%s, chain:%p",
+      GST_DEBUG_PAD_NAME (pad), chain);
+
+  gst_parse_pad_activate (parsepad, chain);
+  chain->endpad = gst_object_ref (parsepad);
+  if (caps)
+    chain->endcaps = gst_caps_ref (caps);
+  else
+    chain->endcaps = NULL;
+}
+
+static void
+type_found (GstElement * typefind, guint probability,
+    GstCaps * caps, GstParseBin * parse_bin)
+{
+  GstPad *pad, *sink_pad;
+
+  GST_DEBUG_OBJECT (parse_bin, "typefind found caps %" GST_PTR_FORMAT, caps);
+
+  /* If the typefinder (but not something else) finds text/plain - i.e. that's
+   * the top-level type of the file - then error out.
+   */
+  if (gst_structure_has_name (gst_caps_get_structure (caps, 0), "text/plain")) {
+    GST_ELEMENT_ERROR (parse_bin, STREAM, WRONG_TYPE,
+        (_("This appears to be a text file")),
+        ("ParseBin cannot decode plain text files"));
+    goto exit;
+  }
+
+  /* FIXME: we can only deal with one type, we don't yet support dynamically changing
+   * caps from the typefind element */
+  if (parse_bin->have_type || parse_bin->parse_chain)
+    goto exit;
+
+  parse_bin->have_type = TRUE;
+
+  pad = gst_element_get_static_pad (typefind, "src");
+  sink_pad = gst_element_get_static_pad (typefind, "sink");
+
+  /* need some lock here to prevent race with shutdown state change
+   * which might yank away e.g. parse_chain while building stuff here.
+   * In typical cases, STREAM_LOCK is held and handles that, it need not
+   * be held (if called from a proxied setcaps), so grab it anyway */
+  GST_PAD_STREAM_LOCK (sink_pad);
+  parse_bin->parse_chain = gst_parse_chain_new (parse_bin, NULL, pad, caps);
+  analyze_new_pad (parse_bin, typefind, pad, caps, parse_bin->parse_chain);
+  GST_PAD_STREAM_UNLOCK (sink_pad);
+
+  gst_object_unref (sink_pad);
+  gst_object_unref (pad);
+
+exit:
+  return;
+}
+
+static GstPadProbeReturn
+pad_event_cb (GstPad * pad, GstPadProbeInfo * info, gpointer data)
+{
+  GstEvent *event = GST_PAD_PROBE_INFO_EVENT (info);
+  GstPendingPad *ppad = (GstPendingPad *) data;
+  GstParseChain *chain = ppad->chain;
+  GstParseBin *parsebin = chain->parsebin;
+
+  g_assert (ppad);
+  g_assert (chain);
+  g_assert (parsebin);
+  switch (GST_EVENT_TYPE (event)) {
+    case GST_EVENT_EOS:
+      GST_DEBUG_OBJECT (pad, "Received EOS on a non final pad, this stream "
+          "ended too early");
+      chain->deadend = TRUE;
+      chain->drained = TRUE;
+      gst_object_replace ((GstObject **) & chain->current_pad, NULL);
+      /* we don't set the endcaps because NULL endcaps means early EOS */
+
+      EXPOSE_LOCK (parsebin);
+      if (parsebin->parse_chain)
+        if (gst_parse_chain_is_complete (parsebin->parse_chain))
+          gst_parse_bin_expose (parsebin);
+      EXPOSE_UNLOCK (parsebin);
+      break;
+    default:
+      break;
+  }
+  return GST_PAD_PROBE_OK;
+}
+
+static void
+pad_added_cb (GstElement * element, GstPad * pad, GstParseChain * chain)
+{
+  GstCaps *caps;
+  GstParseBin *parsebin;
+
+  parsebin = chain->parsebin;
+
+  GST_DEBUG_OBJECT (pad, "pad added, chain:%p", chain);
+
+  caps = get_pad_caps (pad);
+  analyze_new_pad (parsebin, element, pad, caps, chain);
+  if (caps)
+    gst_caps_unref (caps);
+
+  EXPOSE_LOCK (parsebin);
+  if (parsebin->parse_chain) {
+    if (gst_parse_chain_is_complete (parsebin->parse_chain)) {
+      GST_LOG_OBJECT (parsebin,
+          "That was the last dynamic object, now attempting to expose the group");
+      if (!gst_parse_bin_expose (parsebin))
+        GST_WARNING_OBJECT (parsebin, "Couldn't expose group");
+    }
+  } else {
+    GST_DEBUG_OBJECT (parsebin, "No parse chain, new pad ignored");
+  }
+  EXPOSE_UNLOCK (parsebin);
+}
+
+static void
+pad_removed_cb (GstElement * element, GstPad * pad, GstParseChain * chain)
+{
+  GList *l;
+
+  GST_LOG_OBJECT (pad, "pad removed, chain:%p", chain);
+
+  /* In fact, we don't have to do anything here, the active group will be
+   * removed when the group's multiqueue is drained */
+  CHAIN_MUTEX_LOCK (chain);
+  for (l = chain->pending_pads; l; l = l->next) {
+    GstPendingPad *ppad = l->data;
+    GstPad *opad = ppad->pad;
+
+    if (pad == opad) {
+      gst_pending_pad_free (ppad);
+      chain->pending_pads = g_list_delete_link (chain->pending_pads, l);
+      break;
+    }
+  }
+  CHAIN_MUTEX_UNLOCK (chain);
+}
+
+static void
+no_more_pads_cb (GstElement * element, GstParseChain * chain)
+{
+  GstParseGroup *group = NULL;
+
+  GST_LOG_OBJECT (element, "got no more pads");
+
+  CHAIN_MUTEX_LOCK (chain);
+  if (!chain->elements
+      || ((GstParseElement *) chain->elements->data)->element != element) {
+    GST_LOG_OBJECT (chain->parsebin, "no-more-pads from old chain element '%s'",
+        GST_OBJECT_NAME (element));
+    CHAIN_MUTEX_UNLOCK (chain);
+    return;
+  } else if (!chain->demuxer) {
+    GST_LOG_OBJECT (chain->parsebin,
+        "no-more-pads from a non-demuxer element '%s'",
+        GST_OBJECT_NAME (element));
+    CHAIN_MUTEX_UNLOCK (chain);
+    return;
+  }
+
+  /* when we received no_more_pads, we can complete the pads of the chain */
+  if (!chain->next_groups && chain->active_group) {
+    group = chain->active_group;
+  } else if (chain->next_groups) {
+    GList *iter;
+    for (iter = chain->next_groups; iter; iter = g_list_next (iter)) {
+      group = iter->data;
+      if (!group->no_more_pads)
+        break;
+    }
+  }
+  if (!group) {
+    GST_ERROR_OBJECT (chain->parsebin, "can't find group for element");
+    CHAIN_MUTEX_UNLOCK (chain);
+    return;
+  }
+
+  GST_DEBUG_OBJECT (element, "Setting group %p to complete", group);
+
+  group->no_more_pads = TRUE;
+  CHAIN_MUTEX_UNLOCK (chain);
+
+  EXPOSE_LOCK (chain->parsebin);
+  if (chain->parsebin->parse_chain) {
+    if (gst_parse_chain_is_complete (chain->parsebin->parse_chain)) {
+      gst_parse_bin_expose (chain->parsebin);
+    }
+  }
+  EXPOSE_UNLOCK (chain->parsebin);
+}
+
+static void
+caps_notify_cb (GstPad * pad, GParamSpec * unused, GstParseChain * chain)
+{
+  GstElement *element;
+  GList *l;
+
+  GST_LOG_OBJECT (pad, "Notified caps for pad %s:%s", GST_DEBUG_PAD_NAME (pad));
+
+  /* Disconnect this; if we still need it, we'll reconnect to this in
+   * analyze_new_pad */
+  element = GST_ELEMENT_CAST (gst_pad_get_parent (pad));
+
+  CHAIN_MUTEX_LOCK (chain);
+  for (l = chain->pending_pads; l; l = l->next) {
+    GstPendingPad *ppad = l->data;
+    if (ppad->pad == pad) {
+      gst_pending_pad_free (ppad);
+      chain->pending_pads = g_list_delete_link (chain->pending_pads, l);
+      break;
+    }
+  }
+  CHAIN_MUTEX_UNLOCK (chain);
+
+  pad_added_cb (element, pad, chain);
+
+  gst_object_unref (element);
+}
+
+/* Decide whether an element is a demuxer based on the
+ * klass and number/type of src pad templates it has */
+static gboolean
+is_demuxer_element (GstElement * srcelement)
+{
+  GstElementFactory *srcfactory;
+  GstElementClass *elemclass;
+  GList *walk;
+  const gchar *klass;
+  gint potential_src_pads = 0;
+
+  srcfactory = gst_element_get_factory (srcelement);
+  klass =
+      gst_element_factory_get_metadata (srcfactory, GST_ELEMENT_METADATA_KLASS);
+
+  /* Can't be a demuxer unless it has Demux in the klass name */
+  if (!strstr (klass, "Demux"))
+    return FALSE;
+
+  /* Walk the src pad templates and count how many the element
+   * might produce */
+  elemclass = GST_ELEMENT_GET_CLASS (srcelement);
+
+  walk = gst_element_class_get_pad_template_list (elemclass);
+  while (walk != NULL) {
+    GstPadTemplate *templ;
+
+    templ = (GstPadTemplate *) walk->data;
+    if (GST_PAD_TEMPLATE_DIRECTION (templ) == GST_PAD_SRC) {
+      switch (GST_PAD_TEMPLATE_PRESENCE (templ)) {
+        case GST_PAD_ALWAYS:
+        case GST_PAD_SOMETIMES:
+          if (strstr (GST_PAD_TEMPLATE_NAME_TEMPLATE (templ), "%"))
+            potential_src_pads += 2;    /* Might make multiple pads */
+          else
+            potential_src_pads += 1;
+          break;
+        case GST_PAD_REQUEST:
+          potential_src_pads += 2;
+          break;
+      }
+    }
+    walk = g_list_next (walk);
+  }
+
+  if (potential_src_pads < 2)
+    return FALSE;
+
+  return TRUE;
+}
+
+/* gst_parse_chain_get_current_group:
+ *
+ * Returns the current group of this chain, to which
+ * new chains should be attached or NULL if the last
+ * group didn't have no-more-pads.
+ *
+ * Not MT-safe: Call with parent chain lock!
+ */
+static GstParseGroup *
+gst_parse_chain_get_current_group (GstParseChain * chain)
+{
+  GstParseGroup *group;
+
+  /* Now we know that we can really return something useful */
+  if (!chain->active_group) {
+    chain->active_group = group = gst_parse_group_new (chain->parsebin, chain);
+  } else if (!chain->active_group->no_more_pads) {
+    group = chain->active_group;
+  } else {
+    GList *iter;
+    group = NULL;
+    for (iter = chain->next_groups; iter; iter = g_list_next (iter)) {
+      GstParseGroup *next_group = iter->data;
+
+      if (!next_group->no_more_pads) {
+        group = next_group;
+        break;
+      }
+    }
+  }
+  if (!group) {
+    group = gst_parse_group_new (chain->parsebin, chain);
+    chain->next_groups = g_list_append (chain->next_groups, group);
+  }
+
+  return group;
+}
+
+static void gst_parse_group_free_internal (GstParseGroup * group,
+    gboolean hide);
+
+static void
+gst_parse_chain_free_internal (GstParseChain * chain, gboolean hide)
+{
+  GList *l, *set_to_null = NULL;
+
+  CHAIN_MUTEX_LOCK (chain);
+
+  GST_DEBUG_OBJECT (chain->parsebin, "%s chain %p",
+      (hide ? "Hiding" : "Freeing"), chain);
+
+  if (chain->active_group) {
+    gst_parse_group_free_internal (chain->active_group, hide);
+    if (!hide)
+      chain->active_group = NULL;
+  }
+
+  for (l = chain->next_groups; l; l = l->next) {
+    gst_parse_group_free_internal ((GstParseGroup *) l->data, hide);
+    if (!hide)
+      l->data = NULL;
+  }
+  if (!hide) {
+    g_list_free (chain->next_groups);
+    chain->next_groups = NULL;
+  }
+
+  if (!hide) {
+    for (l = chain->old_groups; l; l = l->next) {
+      GstParseGroup *group = l->data;
+
+      gst_parse_group_free (group);
+    }
+    g_list_free (chain->old_groups);
+    chain->old_groups = NULL;
+  }
+
+  gst_object_replace ((GstObject **) & chain->current_pad, NULL);
+
+  for (l = chain->pending_pads; l; l = l->next) {
+    GstPendingPad *ppad = l->data;
+    gst_pending_pad_free (ppad);
+    l->data = NULL;
+  }
+  g_list_free (chain->pending_pads);
+  chain->pending_pads = NULL;
+
+  for (l = chain->elements; l; l = l->next) {
+    GstParseElement *delem = l->data;
+    GstElement *element = delem->element;
+
+    if (delem->pad_added_id)
+      g_signal_handler_disconnect (element, delem->pad_added_id);
+    delem->pad_added_id = 0;
+    if (delem->pad_removed_id)
+      g_signal_handler_disconnect (element, delem->pad_removed_id);
+    delem->pad_removed_id = 0;
+    if (delem->no_more_pads_id)
+      g_signal_handler_disconnect (element, delem->no_more_pads_id);
+    delem->no_more_pads_id = 0;
+
+    if (delem->capsfilter) {
+      if (GST_OBJECT_PARENT (delem->capsfilter) ==
+          GST_OBJECT_CAST (chain->parsebin))
+        gst_bin_remove (GST_BIN_CAST (chain->parsebin), delem->capsfilter);
+      if (!hide) {
+        set_to_null =
+            g_list_append (set_to_null, gst_object_ref (delem->capsfilter));
+      }
+    }
+
+    if (GST_OBJECT_PARENT (element) == GST_OBJECT_CAST (chain->parsebin))
+      gst_bin_remove (GST_BIN_CAST (chain->parsebin), element);
+    if (!hide) {
+      set_to_null = g_list_append (set_to_null, gst_object_ref (element));
+    }
+
+    SUBTITLE_LOCK (chain->parsebin);
+    /* remove possible subtitle element */
+    chain->parsebin->subtitles =
+        g_list_remove (chain->parsebin->subtitles, element);
+    SUBTITLE_UNLOCK (chain->parsebin);
+
+    if (!hide) {
+      if (delem->capsfilter) {
+        gst_object_unref (delem->capsfilter);
+        delem->capsfilter = NULL;
+      }
+
+      gst_object_unref (element);
+      l->data = NULL;
+
+      g_slice_free (GstParseElement, delem);
+    }
+  }
+  if (!hide) {
+    g_list_free (chain->elements);
+    chain->elements = NULL;
+  }
+
+  if (chain->endpad) {
+    if (chain->endpad->exposed) {
+      GstPad *endpad = GST_PAD_CAST (chain->endpad);
+      GST_DEBUG_OBJECT (chain->parsebin, "Removing pad %s:%s",
+          GST_DEBUG_PAD_NAME (endpad));
+      gst_pad_push_event (endpad, gst_event_new_eos ());
+      gst_element_remove_pad (GST_ELEMENT_CAST (chain->parsebin), endpad);
+    }
+
+    parse_pad_set_target (chain->endpad, NULL);
+    chain->endpad->exposed = FALSE;
+    if (!hide) {
+      gst_object_unref (chain->endpad);
+      chain->endpad = NULL;
+    }
+  }
+
+  if (!hide && chain->current_pad) {
+    gst_object_unref (chain->current_pad);
+    chain->current_pad = NULL;
+  }
+
+  if (chain->pad) {
+    gst_object_unref (chain->pad);
+    chain->pad = NULL;
+  }
+  if (chain->start_caps) {
+    gst_caps_unref (chain->start_caps);
+    chain->start_caps = NULL;
+  }
+
+  if (chain->endcaps) {
+    gst_caps_unref (chain->endcaps);
+    chain->endcaps = NULL;
+  }
+  g_free (chain->deadend_details);
+  chain->deadend_details = NULL;
+
+  GST_DEBUG_OBJECT (chain->parsebin, "%s chain %p", (hide ? "Hidden" : "Freed"),
+      chain);
+  CHAIN_MUTEX_UNLOCK (chain);
+
+  while (set_to_null) {
+    GstElement *element = set_to_null->data;
+    set_to_null = g_list_delete_link (set_to_null, set_to_null);
+    gst_element_set_state (element, GST_STATE_NULL);
+    gst_object_unref (element);
+  }
+
+  if (!hide) {
+    g_mutex_clear (&chain->lock);
+    g_slice_free (GstParseChain, chain);
+  }
+}
+
+/* gst_parse_chain_free:
+ *
+ * Completely frees and removes the chain and all
+ * child groups from ParseBin.
+ *
+ * MT-safe, don't hold the chain lock or any child chain's lock
+ * when calling this!
+ */
+static void
+gst_parse_chain_free (GstParseChain * chain)
+{
+  gst_parse_chain_free_internal (chain, FALSE);
+}
+
+/* gst_parse_chain_new:
+ *
+ * Creates a new parse chain and initializes it.
+ *
+ * It's up to the caller to add it to the list of child chains of
+ * a group!
+ */
+static GstParseChain *
+gst_parse_chain_new (GstParseBin * parsebin, GstParseGroup * parent,
+    GstPad * pad, GstCaps * start_caps)
+{
+  GstParseChain *chain = g_slice_new0 (GstParseChain);
+
+  GST_DEBUG_OBJECT (parsebin, "Creating new chain %p with parent group %p",
+      chain, parent);
+
+  chain->parsebin = parsebin;
+  chain->parent = parent;
+  g_mutex_init (&chain->lock);
+  chain->pad = gst_object_ref (pad);
+  if (start_caps)
+    chain->start_caps = gst_caps_ref (start_caps);
+
+  return chain;
+}
+
+/****
+ * GstParseGroup functions
+ ****/
+
+static void
+gst_parse_group_free_internal (GstParseGroup * group, gboolean hide)
+{
+  GList *l;
+
+  GST_DEBUG_OBJECT (group->parsebin, "%s group %p",
+      (hide ? "Hiding" : "Freeing"), group);
+  for (l = group->children; l; l = l->next) {
+    GstParseChain *chain = (GstParseChain *) l->data;
+
+    gst_parse_chain_free_internal (chain, hide);
+    if (!hide)
+      l->data = NULL;
+  }
+  if (!hide) {
+    g_list_free (group->children);
+    group->children = NULL;
+  }
+
+  GST_DEBUG_OBJECT (group->parsebin, "%s group %p", (hide ? "Hid" : "Freed"),
+      group);
+  if (!hide)
+    g_slice_free (GstParseGroup, group);
+}
+
+/* gst_parse_group_free:
+ *
+ * Completely frees and removes the parse group and all
+ * it's children.
+ *
+ * Never call this from any streaming thread!
+ *
+ * Not MT-safe, call with parent's chain lock!
+ */
+static void
+gst_parse_group_free (GstParseGroup * group)
+{
+  gst_parse_group_free_internal (group, FALSE);
+}
+
+/* gst_parse_group_hide:
+ *
+ * Hide the parse group only, this means that
+ * all child endpads are removed from ParseBin
+ * and all signals are unconnected.
+ *
+ * No element is set to NULL state and completely
+ * unrefed here.
+ *
+ * Can be called from streaming threads.
+ *
+ * Not MT-safe, call with parent's chain lock!
+ */
+static void
+gst_parse_group_hide (GstParseGroup * group)
+{
+  gst_parse_group_free_internal (group, TRUE);
+}
+
+/* gst_parse_chain_free_hidden_groups:
+ *
+ * Frees any parse groups that were hidden previously.
+ * This allows keeping memory use from ballooning when
+ * switching chains repeatedly.
+ *
+ * A new throwaway thread will be created to free the
+ * groups, so any delay does not block the setup of a
+ * new group.
+ *
+ * Not MT-safe, call with parent's chain lock!
+ */
+static void
+gst_parse_chain_free_hidden_groups (GList * old_groups)
+{
+  GList *l;
+
+  for (l = old_groups; l; l = l->next) {
+    GstParseGroup *group = l->data;
+
+    gst_parse_group_free (group);
+  }
+  g_list_free (old_groups);
+}
+
+static void
+gst_parse_chain_start_free_hidden_groups_thread (GstParseChain * chain)
+{
+  GThread *thread;
+  GError *error = NULL;
+  GList *old_groups;
+
+  old_groups = chain->old_groups;
+  if (!old_groups)
+    return;
+
+  chain->old_groups = NULL;
+  thread = g_thread_try_new ("free-hidden-groups",
+      (GThreadFunc) gst_parse_chain_free_hidden_groups, old_groups, &error);
+  if (!thread || error) {
+    GST_ERROR ("Failed to start free-hidden-groups thread: %s",
+        error ? error->message : "unknown reason");
+    g_clear_error (&error);
+    chain->old_groups = old_groups;
+    return;
+  }
+  GST_DEBUG_OBJECT (chain->parsebin, "Started free-hidden-groups thread");
+  /* We do not need to wait for it or get any results from it */
+  g_thread_unref (thread);
+}
+
+/* gst_parse_group_new:
+ * @parsebin: Parent ParseBin
+ * @parent: Parent chain or %NULL
+ *
+ * Creates a new GstParseGroup. It is up to the caller to add it to the list
+ * of groups.
+ */
+static GstParseGroup *
+gst_parse_group_new (GstParseBin * parsebin, GstParseChain * parent)
+{
+  GstParseGroup *group = g_slice_new0 (GstParseGroup);
+
+  GST_DEBUG_OBJECT (parsebin, "Creating new group %p with parent chain %p",
+      group, parent);
+
+  group->parsebin = parsebin;
+  group->parent = parent;
+
+  return group;
+}
+
+/* gst_parse_group_is_complete:
+ *
+ * Checks if the group is complete, this means that
+ * a) no-more-pads happened
+ * b) all child chains are complete
+ *
+ * Not MT-safe, always call with ParseBin expose lock
+ */
+static gboolean
+gst_parse_group_is_complete (GstParseGroup * group)
+{
+  GList *l;
+  gboolean complete = TRUE;
+
+  if (!group->no_more_pads) {
+    complete = FALSE;
+    goto out;
+  }
+
+  for (l = group->children; l; l = l->next) {
+    GstParseChain *chain = l->data;
+
+    /* Any blocked chain requires we complete this group
+     * since everything is synchronous, we can't proceed otherwise */
+    if (chain->endpad && chain->endpad->blocked)
+      goto out;
+
+    if (!gst_parse_chain_is_complete (chain)) {
+      complete = FALSE;
+      goto out;
+    }
+  }
+
+out:
+  GST_DEBUG_OBJECT (group->parsebin, "Group %p is complete: %d", group,
+      complete);
+  return complete;
+}
+
+/* gst_parse_chain_is_complete:
+ *
+ * Returns TRUE if the chain is complete, this means either
+ * a) This chain is a dead end, i.e. we have no suitable plugins
+ * b) This chain ends in an endpad and this is blocked or exposed
+ * c) The chain has gotten far enough to have plugged 1 parser at least.
+ *
+ * Not MT-safe, always call with ParseBin expose lock
+ */
+static gboolean
+gst_parse_chain_is_complete (GstParseChain * chain)
+{
+  gboolean complete = FALSE;
+
+  CHAIN_MUTEX_LOCK (chain);
+  if (chain->parsebin->shutdown)
+    goto out;
+
+  if (chain->deadend) {
+    complete = TRUE;
+    goto out;
+  }
+
+  if (chain->endpad && (chain->endpad->blocked || chain->endpad->exposed)) {
+    complete = TRUE;
+    goto out;
+  }
+
+  if (chain->demuxer) {
+    if (chain->active_group
+        && gst_parse_group_is_complete (chain->active_group)) {
+      complete = TRUE;
+      goto out;
+    }
+  }
+
+  if (chain->parsed) {
+    complete = TRUE;
+    goto out;
+  }
+
+out:
+  CHAIN_MUTEX_UNLOCK (chain);
+  GST_DEBUG_OBJECT (chain->parsebin, "Chain %p is complete: %d", chain,
+      complete);
+  return complete;
+}
+
+static void
+chain_remove_old_groups (GstParseChain * chain)
+{
+  GList *tmp;
+
+  /* First go in child */
+  if (chain->active_group) {
+    for (tmp = chain->active_group->children; tmp; tmp = tmp->next) {
+      GstParseChain *child = (GstParseChain *) tmp->data;
+      chain_remove_old_groups (child);
+    }
+  }
+
+  if (chain->old_groups) {
+    gst_parse_group_hide (chain->old_groups->data);
+    gst_parse_chain_start_free_hidden_groups_thread (chain);
+  }
+}
+
+static gboolean
+drain_and_switch_chains (GstParseChain * chain, GstParsePad * drainpad,
+    gboolean * last_group, gboolean * drained, gboolean * switched);
+/* drain_and_switch_chains/groups:
+ *
+ * CALL WITH CHAIN LOCK (or group parent) TAKEN !
+ *
+ * Goes down the chains/groups until it finds the chain
+ * to which the drainpad belongs.
+ *
+ * It marks that pad/chain as drained and then will figure
+ * out which group to switch to or not.
+ *
+ * last_chain will be set to TRUE if the group to which the
+ * pad belongs is the last one.
+ *
+ * drained will be set to TRUE if the chain/group is drained.
+ *
+ * Returns: TRUE if the chain contained the target pad */
+static gboolean
+drain_and_switch_group (GstParseGroup * group, GstParsePad * drainpad,
+    gboolean * last_group, gboolean * drained, gboolean * switched)
+{
+  gboolean handled = FALSE;
+  GList *tmp;
+
+  GST_DEBUG ("Checking group %p (target pad %s:%s)",
+      group, GST_DEBUG_PAD_NAME (drainpad));
+
+  /* Definitely can't be in drained groups */
+  if (G_UNLIKELY (group->drained)) {
+    goto beach;
+  }
+
+  /* Figure out if all our chains are drained with the
+   * new information */
+  group->drained = TRUE;
+  for (tmp = group->children; tmp; tmp = tmp->next) {
+    GstParseChain *chain = (GstParseChain *) tmp->data;
+    gboolean subdrained = FALSE;
+
+    handled |=
+        drain_and_switch_chains (chain, drainpad, last_group, &subdrained,
+        switched);
+    if (!subdrained)
+      group->drained = FALSE;
+  }
+
+beach:
+  GST_DEBUG ("group %p (last_group:%d, drained:%d, switched:%d, handled:%d)",
+      group, *last_group, group->drained, *switched, handled);
+  *drained = group->drained;
+  return handled;
+}
+
+static gboolean
+drain_and_switch_chains (GstParseChain * chain, GstParsePad * drainpad,
+    gboolean * last_group, gboolean * drained, gboolean * switched)
+{
+  gboolean handled = FALSE;
+  GstParseBin *parsebin = chain->parsebin;
+
+  GST_DEBUG ("Checking chain %p %s:%s (target pad %s:%s)",
+      chain, GST_DEBUG_PAD_NAME (chain->pad), GST_DEBUG_PAD_NAME (drainpad));
+
+  CHAIN_MUTEX_LOCK (chain);
+
+  /* Definitely can't be in drained chains */
+  if (G_UNLIKELY (chain->drained)) {
+    goto beach;
+  }
+
+  if (chain->endpad) {
+    /* Check if we're reached the target endchain */
+    if (drainpad != NULL && chain == drainpad->chain) {
+      GST_DEBUG ("Found the target chain");
+      drainpad->drained = TRUE;
+      handled = TRUE;
+    }
+
+    chain->drained = chain->endpad->drained;
+    goto beach;
+  }
+
+  /* We known there are groups to switch to */
+  if (chain->next_groups)
+    *last_group = FALSE;
+
+  /* Check the active group */
+  if (chain->active_group) {
+    gboolean subdrained = FALSE;
+    handled = drain_and_switch_group (chain->active_group, drainpad,
+        last_group, &subdrained, switched);
+
+    /* The group is drained, see if we can switch to another */
+    if ((handled || drainpad == NULL) && subdrained && !*switched) {
+      if (chain->next_groups) {
+        /* Switch to next group, the actual removal of the current group will
+         * be done when the next one is activated */
+        GST_DEBUG_OBJECT (parsebin, "Moving current group %p to old groups",
+            chain->active_group);
+        chain->old_groups =
+            g_list_prepend (chain->old_groups, chain->active_group);
+        GST_DEBUG_OBJECT (parsebin, "Switching to next group %p",
+            chain->next_groups->data);
+        chain->active_group = chain->next_groups->data;
+        chain->next_groups =
+            g_list_delete_link (chain->next_groups, chain->next_groups);
+        *switched = TRUE;
+        chain->drained = FALSE;
+      } else {
+        GST_DEBUG ("Group %p was the last in chain %p", chain->active_group,
+            chain);
+        chain->drained = TRUE;
+        /* We're drained ! */
+      }
+    } else {
+      if (subdrained && !chain->next_groups)
+        *drained = TRUE;
+    }
+  }
+
+beach:
+  CHAIN_MUTEX_UNLOCK (chain);
+
+  GST_DEBUG ("Chain %p (handled:%d, last_group:%d, drained:%d, switched:%d)",
+      chain, handled, *last_group, chain->drained, *switched);
+
+  *drained = chain->drained;
+
+  if (*drained)
+    g_signal_emit (parsebin, gst_parse_bin_signals[SIGNAL_DRAINED], 0, NULL);
+
+  return handled;
+}
+
+/* check if the group is drained, meaning all pads have seen an EOS
+ * event.  */
+static gboolean
+gst_parse_pad_handle_eos (GstParsePad * pad)
+{
+  gboolean last_group = TRUE;
+  gboolean switched = FALSE;
+  gboolean drained = FALSE;
+  GstParseChain *chain = pad->chain;
+  GstParseBin *parsebin = chain->parsebin;
+
+  GST_LOG_OBJECT (parsebin, "pad %p", pad);
+  EXPOSE_LOCK (parsebin);
+  if (parsebin->parse_chain) {
+    drain_and_switch_chains (parsebin->parse_chain, pad, &last_group, &drained,
+        &switched);
+
+    if (switched) {
+      /* If we resulted in a group switch, expose what's needed */
+      if (gst_parse_chain_is_complete (parsebin->parse_chain))
+        gst_parse_bin_expose (parsebin);
+    }
+  }
+  EXPOSE_UNLOCK (parsebin);
+
+  return last_group;
+}
+
+/* gst_parse_group_is_drained:
+ *
+ * Check is this group is drained and cache this result.
+ * The group is drained if all child chains are drained.
+ *
+ * Not MT-safe, call with group->parent's lock */
+static gboolean
+gst_parse_group_is_drained (GstParseGroup * group)
+{
+  GList *l;
+  gboolean drained = TRUE;
+
+  if (group->drained) {
+    drained = TRUE;
+    goto out;
+  }
+
+  for (l = group->children; l; l = l->next) {
+    GstParseChain *chain = l->data;
+
+    CHAIN_MUTEX_LOCK (chain);
+    if (!gst_parse_chain_is_drained (chain))
+      drained = FALSE;
+    CHAIN_MUTEX_UNLOCK (chain);
+    if (!drained)
+      goto out;
+  }
+  group->drained = drained;
+
+out:
+  GST_DEBUG_OBJECT (group->parsebin, "Group %p is drained: %d", group, drained);
+  return drained;
+}
+
+/* gst_parse_chain_is_drained:
+ *
+ * Check is the chain is drained, which means that
+ * either
+ *
+ * a) it's endpad is drained
+ * b) there are no pending pads, the active group is drained
+ *    and there are no next groups
+ *
+ * Not MT-safe, call with chain lock
+ */
+static gboolean
+gst_parse_chain_is_drained (GstParseChain * chain)
+{
+  gboolean drained = FALSE;
+
+  if (chain->endpad) {
+    drained = chain->endpad->drained;
+    goto out;
+  }
+
+  if (chain->pending_pads) {
+    drained = FALSE;
+    goto out;
+  }
+
+  if (chain->active_group && gst_parse_group_is_drained (chain->active_group)
+      && !chain->next_groups) {
+    drained = TRUE;
+    goto out;
+  }
+
+out:
+  GST_DEBUG_OBJECT (chain->parsebin, "Chain %p is drained: %d", chain, drained);
+  return drained;
+}
+
+/* sort_end_pads:
+ * GCompareFunc to use with lists of GstPad.
+ * Sorts pads by mime type.
+ * First video (raw, then non-raw), then audio (raw, then non-raw),
+ * then others.
+ *
+ * Return: negative if a<b, 0 if a==b, positive if a>b
+ */
+static gint
+sort_end_pads (GstParsePad * da, GstParsePad * db)
+{
+  gint va, vb;
+  GstCaps *capsa, *capsb;
+  GstStructure *sa, *sb;
+  const gchar *namea, *nameb;
+  gchar *ida, *idb;
+  gint ret;
+
+  capsa = get_pad_caps (GST_PAD_CAST (da));
+  capsb = get_pad_caps (GST_PAD_CAST (db));
+
+  sa = gst_caps_get_structure ((const GstCaps *) capsa, 0);
+  sb = gst_caps_get_structure ((const GstCaps *) capsb, 0);
+
+  namea = gst_structure_get_name (sa);
+  nameb = gst_structure_get_name (sb);
+
+  if (g_strrstr (namea, "video/x-raw"))
+    va = 0;
+  else if (g_strrstr (namea, "video/"))
+    va = 1;
+  else if (g_strrstr (namea, "image/"))
+    va = 2;
+  else if (g_strrstr (namea, "audio/x-raw"))
+    va = 3;
+  else if (g_strrstr (namea, "audio/"))
+    va = 4;
+  else
+    va = 5;
+
+  if (g_strrstr (nameb, "video/x-raw"))
+    vb = 0;
+  else if (g_strrstr (nameb, "video/"))
+    vb = 1;
+  else if (g_strrstr (nameb, "image/"))
+    vb = 2;
+  else if (g_strrstr (nameb, "audio/x-raw"))
+    vb = 3;
+  else if (g_strrstr (nameb, "audio/"))
+    vb = 4;
+  else
+    vb = 5;
+
+  gst_caps_unref (capsa);
+  gst_caps_unref (capsb);
+
+  if (va != vb)
+    return va - vb;
+
+  /* if otherwise the same, sort by stream-id */
+  ida = gst_pad_get_stream_id (GST_PAD_CAST (da));
+  idb = gst_pad_get_stream_id (GST_PAD_CAST (db));
+  ret = (ida) ? ((idb) ? strcmp (ida, idb) : -1) : 1;
+  g_free (ida);
+  g_free (idb);
+
+  return ret;
+}
+
+static gboolean
+debug_sticky_event (GstPad * pad, GstEvent ** event, gpointer user_data)
+{
+  GST_DEBUG_OBJECT (pad, "sticky event %s (%p)", GST_EVENT_TYPE_NAME (*event),
+      *event);
+  return TRUE;
+}
+
+/* Must only be called if the toplevel chain is complete and blocked! */
+/* Not MT-safe, call with ParseBin expose lock! */
+static gboolean
+gst_parse_bin_expose (GstParseBin * parsebin)
+{
+  GList *tmp, *endpads;
+  gboolean missing_plugin;
+  GString *missing_plugin_details;
+  gboolean already_exposed;
+  gboolean last_group;
+  gboolean uncollected_streams;
+  GstStreamCollection *fallback_collection = NULL;
+
+retry:
+  endpads = NULL;
+  missing_plugin = FALSE;
+  already_exposed = TRUE;
+  last_group = TRUE;
+
+  missing_plugin_details = g_string_new ("");
+
+  GST_DEBUG_OBJECT (parsebin, "Exposing currently active chains/groups");
+
+  /* Don't expose if we're currently shutting down */
+  DYN_LOCK (parsebin);
+  if (G_UNLIKELY (parsebin->shutdown)) {
+    GST_WARNING_OBJECT (parsebin,
+        "Currently, shutting down, aborting exposing");
+    DYN_UNLOCK (parsebin);
+    return FALSE;
+  }
+  DYN_UNLOCK (parsebin);
+
+  /* Get the pads that we're going to expose and mark things as exposed */
+  uncollected_streams = FALSE;
+  if (!gst_parse_chain_expose (parsebin->parse_chain, &endpads, &missing_plugin,
+          missing_plugin_details, &last_group, &uncollected_streams)) {
+    g_list_free_full (endpads, (GDestroyNotify) gst_object_unref);
+    g_string_free (missing_plugin_details, TRUE);
+    GST_ERROR_OBJECT (parsebin, "Broken chain/group tree");
+    g_return_val_if_reached (FALSE);
+    return FALSE;
+  }
+  if (endpads == NULL) {
+    if (missing_plugin) {
+      if (missing_plugin_details->len > 0) {
+        gchar *details = g_string_free (missing_plugin_details, FALSE);
+        GST_ELEMENT_ERROR (parsebin, CORE, MISSING_PLUGIN, (NULL),
+            ("no suitable plugins found:\n%s", details));
+        g_free (details);
+      } else {
+        g_string_free (missing_plugin_details, TRUE);
+        GST_ELEMENT_ERROR (parsebin, CORE, MISSING_PLUGIN, (NULL),
+            ("no suitable plugins found"));
+      }
+    } else {
+      /* in this case, the stream ended without buffers,
+       * just post a warning */
+      g_string_free (missing_plugin_details, TRUE);
+
+      GST_WARNING_OBJECT (parsebin, "All streams finished without buffers. "
+          "Last group: %d", last_group);
+      if (last_group) {
+        GST_ELEMENT_ERROR (parsebin, STREAM, FAILED, (NULL),
+            ("all streams without buffers"));
+      } else {
+        gboolean switched = FALSE;
+        gboolean drained = FALSE;
+
+        drain_and_switch_chains (parsebin->parse_chain, NULL, &last_group,
+            &drained, &switched);
+        GST_ELEMENT_WARNING (parsebin, STREAM, FAILED, (NULL),
+            ("all streams without buffers"));
+        if (switched) {
+          if (gst_parse_chain_is_complete (parsebin->parse_chain))
+            goto retry;
+          else
+            return FALSE;
+        }
+      }
+    }
+
+    do_async_done (parsebin);
+    return FALSE;
+  }
+
+  if (uncollected_streams) {
+    /* FIXME: Collect and use a stream id from the top chain as
+     * upstream ID? */
+    fallback_collection = gst_stream_collection_new (NULL);
+
+    build_fallback_collection (parsebin->parse_chain, fallback_collection);
+
+    gst_element_post_message (GST_ELEMENT (parsebin),
+        gst_message_new_stream_collection (GST_OBJECT (parsebin),
+            fallback_collection));
+  }
+
+  g_string_free (missing_plugin_details, TRUE);
+
+  /* Check if this was called when everything was exposed already,
+   * and see if we need to post a new fallback collection */
+  for (tmp = endpads; tmp && already_exposed; tmp = tmp->next) {
+    GstParsePad *parsepad = tmp->data;
+
+    already_exposed &= parsepad->exposed;
+  }
+  if (already_exposed) {
+    GST_DEBUG_OBJECT (parsebin, "Everything was exposed already!");
+    if (fallback_collection)
+      gst_object_unref (fallback_collection);
+    g_list_free_full (endpads, (GDestroyNotify) gst_object_unref);
+    return TRUE;
+  }
+
+  /* Set all already exposed pads to blocked */
+  for (tmp = endpads; tmp; tmp = tmp->next) {
+    GstParsePad *parsepad = tmp->data;
+
+    if (parsepad->exposed) {
+      GST_DEBUG_OBJECT (parsepad, "blocking exposed pad");
+      gst_parse_pad_set_blocked (parsepad, TRUE);
+    }
+  }
+
+  /* re-order pads : video, then audio, then others */
+  endpads = g_list_sort (endpads, (GCompareFunc) sort_end_pads);
+
+  /* Expose pads */
+  for (tmp = endpads; tmp; tmp = tmp->next) {
+    GstParsePad *parsepad = (GstParsePad *) tmp->data;
+    gchar *padname;
+
+    //if (!parsepad->blocked)
+    //continue;
+
+    /* 1. rewrite name */
+    padname = g_strdup_printf ("src_%u", parsebin->nbpads);
+    parsebin->nbpads++;
+    GST_DEBUG_OBJECT (parsebin, "About to expose parsepad %s as %s",
+        GST_OBJECT_NAME (parsepad), padname);
+    gst_object_set_name (GST_OBJECT (parsepad), padname);
+    g_free (padname);
+
+    gst_pad_sticky_events_foreach (GST_PAD_CAST (parsepad), debug_sticky_event,
+        parsepad);
+
+    /* 2. activate and add */
+    if (!parsepad->exposed) {
+      parsepad->exposed = TRUE;
+      if (!gst_element_add_pad (GST_ELEMENT (parsebin),
+              GST_PAD_CAST (parsepad))) {
+        /* not really fatal, we can try to add the other pads */
+        g_warning ("error adding pad to ParseBin");
+        parsepad->exposed = FALSE;
+        continue;
+      }
+#if 0
+      /* HACK: Send an empty gap event to push sticky events */
+      gst_pad_push_event (GST_PAD (parsepad),
+          gst_event_new_gap (0, GST_CLOCK_TIME_NONE));
+#endif
+    }
+
+    GST_INFO_OBJECT (parsepad, "added new decoded pad");
+  }
+
+  /* Unblock internal pads. The application should have connected stuff now
+   * so that streaming can continue. */
+  for (tmp = endpads; tmp; tmp = tmp->next) {
+    GstParsePad *parsepad = (GstParsePad *) tmp->data;
+
+    if (parsepad->exposed) {
+      GST_DEBUG_OBJECT (parsepad, "unblocking");
+      gst_parse_pad_unblock (parsepad);
+      GST_DEBUG_OBJECT (parsepad, "unblocked");
+    }
+
+    /* Send stream-collection events for any pads that don't have them,
+     * and post a stream-collection onto the bus */
+    if (parsepad->active_collection == NULL && fallback_collection) {
+      gst_pad_push_event (GST_PAD (parsepad),
+          gst_event_new_stream_collection (gst_object_ref
+              (fallback_collection)));
+    }
+    gst_object_unref (parsepad);
+  }
+  g_list_free (endpads);
+
+  if (fallback_collection)
+    gst_object_unref (fallback_collection);
+
+  /* Remove old groups */
+  chain_remove_old_groups (parsebin->parse_chain);
+
+  do_async_done (parsebin);
+  GST_DEBUG_OBJECT (parsebin, "Exposed everything");
+  return TRUE;
+}
+
+/* gst_parse_chain_expose:
+ *
+ * Check if the chain can be exposed and add all endpads
+ * to the endpads list.
+ *
+ * Not MT-safe, call with ParseBin expose lock! *
+ */
+static gboolean
+gst_parse_chain_expose (GstParseChain * chain, GList ** endpads,
+    gboolean * missing_plugin, GString * missing_plugin_details,
+    gboolean * last_group, gboolean * uncollected_streams)
+{
+  GstParseGroup *group;
+  GList *l;
+  gboolean ret = FALSE;
+
+  if (chain->deadend) {
+    if (chain->endcaps) {
+      if (chain->deadend_details) {
+        g_string_append (missing_plugin_details, chain->deadend_details);
+        g_string_append_c (missing_plugin_details, '\n');
+      } else {
+        gchar *desc = gst_pb_utils_get_codec_description (chain->endcaps);
+        gchar *caps_str = gst_caps_to_string (chain->endcaps);
+        g_string_append_printf (missing_plugin_details,
+            "Missing decoder: %s (%s)\n", desc, caps_str);
+        g_free (caps_str);
+        g_free (desc);
+      }
+      *missing_plugin = TRUE;
+    }
+    return TRUE;
+  }
+
+  if (chain->endpad == NULL && chain->parsed && chain->pending_pads) {
+    /* The chain has a pending pad from a parser, let's just
+     * expose that now as the endpad */
+    GList *cur = chain->pending_pads;
+    GstPendingPad *ppad = (GstPendingPad *) (cur->data);
+    GstPad *endpad = gst_object_ref (ppad->pad);
+    GstElement *elem =
+        GST_ELEMENT (gst_object_get_parent (GST_OBJECT (endpad)));
+
+    chain->pending_pads = g_list_remove (chain->pending_pads, ppad);
+
+    gst_pending_pad_free (ppad);
+
+    GST_DEBUG_OBJECT (chain->parsebin,
+        "Exposing pad %" GST_PTR_FORMAT " with incomplete caps "
+        "because it's parsed", endpad);
+
+    expose_pad (chain->parsebin, elem, chain->current_pad, endpad, NULL, chain);
+    gst_object_unref (endpad);
+    gst_object_unref (elem);
+  }
+
+  if (chain->endpad) {
+    GstParsePad *p = chain->endpad;
+
+    if (p->active_stream && p->active_collection == NULL
+        && !p->in_a_fallback_collection)
+      *uncollected_streams = TRUE;
+
+    *endpads = g_list_prepend (*endpads, gst_object_ref (p));
+    return TRUE;
+  }
+
+  if (chain->next_groups)
+    *last_group = FALSE;
+
+  group = chain->active_group;
+  if (!group) {
+    GstParsePad *p = chain->current_pad;
+
+    if (p->active_stream && p->active_collection == NULL
+        && !p->in_a_fallback_collection)
+      *uncollected_streams = TRUE;
+
+    return FALSE;
+  }
+
+  for (l = group->children; l; l = l->next) {
+    GstParseChain *childchain = l->data;
+
+    ret |= gst_parse_chain_expose (childchain, endpads, missing_plugin,
+        missing_plugin_details, last_group, uncollected_streams);
+  }
+
+  return ret;
+}
+
+static void
+build_fallback_collection (GstParseChain * chain,
+    GstStreamCollection * collection)
+{
+  GstParseGroup *group = chain->active_group;
+  GList *l;
+
+  /* If it's an end pad, or a not-finished chain that's
+   * not a group, put it in the collection */
+  if (chain->endpad || (chain->current_pad && group == NULL)) {
+    GstParsePad *p = chain->current_pad;
+
+    if (p->active_stream != NULL && p->active_collection == NULL) {
+      GST_DEBUG_OBJECT (p, "Adding stream to fallback collection");
+      gst_stream_collection_add_stream (collection,
+          gst_object_ref (p->active_stream));
+      p->in_a_fallback_collection = TRUE;
+    }
+    return;
+  }
+
+  if (!group)
+    return;
+  for (l = group->children; l; l = l->next) {
+    GstParseChain *childchain = l->data;
+
+    build_fallback_collection (childchain, collection);
+  }
+}
+
+/*************************
+ * GstParsePad functions
+ *************************/
+
+static void gst_parse_pad_dispose (GObject * object);
+
+static void
+gst_parse_pad_class_init (GstParsePadClass * klass)
+{
+  GObjectClass *gobject_klass;
+
+  gobject_klass = (GObjectClass *) klass;
+
+  gobject_klass->dispose = gst_parse_pad_dispose;
+}
+
+static void
+gst_parse_pad_init (GstParsePad * pad)
+{
+  pad->chain = NULL;
+  pad->blocked = FALSE;
+  pad->exposed = FALSE;
+  pad->drained = FALSE;
+  gst_object_ref_sink (pad);
+}
+
+static void
+gst_parse_pad_dispose (GObject * object)
+{
+  GstParsePad *parsepad = (GstParsePad *) (object);
+  parse_pad_set_target (parsepad, NULL);
+
+  gst_object_replace ((GstObject **) & parsepad->active_collection, NULL);
+  gst_object_replace ((GstObject **) & parsepad->active_stream, NULL);
+
+  G_OBJECT_CLASS (gst_parse_pad_parent_class)->dispose (object);
+}
+
+static GstPadProbeReturn
+source_pad_blocked_cb (GstPad * pad, GstPadProbeInfo * info, gpointer user_data)
+{
+  GstParsePad *parsepad = user_data;
+  GstParseChain *chain;
+  GstParseBin *parsebin;
+  GstPadProbeReturn ret = GST_PAD_PROBE_OK;
+
+  if (GST_PAD_PROBE_INFO_TYPE (info) & GST_PAD_PROBE_TYPE_EVENT_DOWNSTREAM) {
+    GstEvent *event = GST_PAD_PROBE_INFO_EVENT (info);
+
+    GST_LOG_OBJECT (pad, "Seeing event '%s'", GST_EVENT_TYPE_NAME (event));
+
+    if (!GST_EVENT_IS_SERIALIZED (event)) {
+      /* do not block on sticky or out of band events otherwise the allocation query
+         from demuxer might block the loop thread */
+      GST_LOG_OBJECT (pad, "Letting OOB event through");
+      return GST_PAD_PROBE_PASS;
+    }
+
+    if (GST_EVENT_IS_STICKY (event) && GST_EVENT_TYPE (event) != GST_EVENT_EOS) {
+      GstPad *peer;
+
+      /* manually push sticky events to ghost pad to avoid exposing pads
+       * that don't have the sticky events. Handle EOS separately as we
+       * want to block the pad on it if we didn't get any buffers before
+       * EOS and expose the pad then. */
+      peer = gst_pad_get_peer (pad);
+      gst_pad_send_event (peer, gst_event_ref (event));
+      gst_object_unref (peer);
+      GST_LOG_OBJECT (pad, "Manually pushed sticky event through");
+      ret = GST_PAD_PROBE_HANDLED;
+      goto done;
+    }
+  } else if (GST_PAD_PROBE_INFO_TYPE (info) &
+      GST_PAD_PROBE_TYPE_QUERY_DOWNSTREAM) {
+    GstQuery *query = GST_PAD_PROBE_INFO_QUERY (info);
+
+    if (!GST_QUERY_IS_SERIALIZED (query)) {
+      /* do not block on non-serialized queries */
+      GST_LOG_OBJECT (pad, "Letting non-serialized query through");
+      return GST_PAD_PROBE_PASS;
+    }
+    if (!gst_pad_has_current_caps (pad)) {
+      /* do not block on allocation queries before we have caps,
+       * this would deadlock because we are doing no autoplugging
+       * without caps.
+       * TODO: Try to do autoplugging based on the query caps
+       */
+      GST_LOG_OBJECT (pad, "Letting serialized query before caps through");
+      return GST_PAD_PROBE_PASS;
+    }
+  }
+  chain = parsepad->chain;
+  parsebin = chain->parsebin;
+
+  GST_LOG_OBJECT (parsepad, "blocked: parsepad->chain:%p", chain);
+
+  parsepad->blocked = TRUE;
+
+  EXPOSE_LOCK (parsebin);
+  if (parsebin->parse_chain) {
+    if (!gst_parse_bin_expose (parsebin))
+      GST_WARNING_OBJECT (parsebin, "Couldn't expose group");
+  }
+  EXPOSE_UNLOCK (parsebin);
+
+done:
+  return ret;
+}
+
+/* FIXME: We can probably do some cleverer things, and maybe move this into
+ * pbutils. Ideas:
+ *    if there are tags look if it's got an AUDIO_CODEC VIDEO_CODEC CONTAINER_FORMAT tag
+ *    Look at the factory klass designation of parsers in the chain
+ *    Consider demuxer pad names as well, sometimes they give the type away
+ */
+static GstStreamType
+guess_stream_type_from_caps (GstCaps * caps)
+{
+  GstStructure *s;
+  const gchar *name;
+
+  if (gst_caps_get_size (caps) < 1)
+    return GST_STREAM_TYPE_UNKNOWN;
+
+  s = gst_caps_get_structure (caps, 0);
+  name = gst_structure_get_name (s);
+
+  if (g_str_has_prefix (name, "video/") || g_str_has_prefix (name, "image/"))
+    return GST_STREAM_TYPE_VIDEO;
+  if (g_str_has_prefix (name, "audio/"))
+    return GST_STREAM_TYPE_AUDIO;
+  if (g_str_has_prefix (name, "text/") ||
+      g_str_has_prefix (name, "subpicture/"))
+    return GST_STREAM_TYPE_TEXT;
+
+  return GST_STREAM_TYPE_UNKNOWN;
+}
+
+static void
+gst_parse_pad_update_caps (GstParsePad * parsepad, GstCaps * caps)
+{
+  if (caps && parsepad->active_stream) {
+    GST_DEBUG_OBJECT (parsepad, "Storing caps %" GST_PTR_FORMAT
+        " on stream %" GST_PTR_FORMAT, caps, parsepad->active_stream);
+
+    if (gst_caps_is_fixed (caps))
+      gst_stream_set_caps (parsepad->active_stream, caps);
+    /* intuit a type */
+    if (gst_stream_get_stream_type (parsepad->active_stream) ==
+        GST_STREAM_TYPE_UNKNOWN) {
+      GstStreamType new_type = guess_stream_type_from_caps (caps);
+      if (new_type != GST_STREAM_TYPE_UNKNOWN)
+        gst_stream_set_stream_type (parsepad->active_stream, new_type);
+    }
+  }
+}
+
+static void
+gst_parse_pad_update_tags (GstParsePad * parsepad, GstTagList * tags)
+{
+  if (tags && parsepad->active_stream) {
+    GST_DEBUG_OBJECT (parsepad, "Storing new tags %" GST_PTR_FORMAT
+        " on stream %" GST_PTR_FORMAT, tags, parsepad->active_stream);
+    gst_stream_set_tags (parsepad->active_stream, tags);
+  }
+}
+
+static GstEvent *
+gst_parse_pad_stream_start_event (GstParsePad * parsepad, GstEvent * event)
+{
+  GstStream *stream = NULL;
+  const gchar *stream_id = NULL;
+  gboolean repeat_event = FALSE;
+
+  gst_event_parse_stream_start (event, &stream_id);
+
+  if (parsepad->active_stream != NULL &&
+      g_str_equal (parsepad->active_stream->stream_id, stream_id))
+    repeat_event = TRUE;
+  else {
+    /* A new stream requires a new collection event, or else
+     * we'll place it in a fallback collection later */
+    gst_object_replace ((GstObject **) & parsepad->active_collection, NULL);
+    parsepad->in_a_fallback_collection = FALSE;
+  }
+
+  gst_event_parse_stream (event, &stream);
+  if (stream == NULL) {
+    GstCaps *caps = gst_pad_get_current_caps (GST_PAD_CAST (parsepad));
+    if (caps == NULL) {
+      /* Try and get caps from the parsepad peer */
+      GstPad *peer = gst_ghost_pad_get_target (GST_GHOST_PAD (parsepad));
+      caps = gst_pad_get_current_caps (peer);
+      gst_object_unref (peer);
+    }
+    if (caps == NULL && parsepad->chain && parsepad->chain->start_caps) {
+      /* Still no caps, use the chain start caps */
+      caps = gst_caps_ref (parsepad->chain->start_caps);
+    }
+
+    GST_DEBUG_OBJECT (parsepad,
+        "Saw stream_start with no GstStream. Adding one. Caps %"
+        GST_PTR_FORMAT, caps);
+
+    if (repeat_event) {
+      stream = gst_object_ref (parsepad->active_stream);
+    } else {
+      stream =
+          gst_stream_new (stream_id, NULL, GST_STREAM_TYPE_UNKNOWN,
+          GST_STREAM_FLAG_NONE);
+      gst_object_replace ((GstObject **) & parsepad->active_stream,
+          (GstObject *) stream);
+    }
+    if (caps)
+      gst_parse_pad_update_caps (parsepad, caps);
+
+    event = gst_event_make_writable (event);
+    gst_event_set_stream (event, stream);
+  }
+  gst_object_unref (stream);
+  GST_LOG_OBJECT (parsepad, "Saw stream %s (GstStream %p)",
+      stream->stream_id, stream);
+
+  return event;
+}
+
+static void
+gst_parse_pad_update_stream_collection (GstParsePad * parsepad,
+    GstStreamCollection * collection)
+{
+  GST_LOG_OBJECT (parsepad, "Got new stream collection %p", collection);
+  gst_object_replace ((GstObject **) & parsepad->active_collection,
+      (GstObject *) collection);
+  parsepad->in_a_fallback_collection = FALSE;
+}
+
+static GstPadProbeReturn
+gst_parse_pad_event (GstPad * pad, GstPadProbeInfo * info, gpointer user_data)
+{
+  GstEvent *event = GST_PAD_PROBE_INFO_EVENT (info);
+  GstObject *parent = gst_pad_get_parent (pad);
+  GstParsePad *parsepad = GST_PARSE_PAD (parent);
+  gboolean forwardit = TRUE;
+
+  GST_LOG_OBJECT (pad, "%s parsepad:%p", GST_EVENT_TYPE_NAME (event), parsepad);
+
+  switch (GST_EVENT_TYPE (event)) {
+    case GST_EVENT_CAPS:{
+      GstCaps *caps = NULL;
+      gst_event_parse_caps (event, &caps);
+      gst_parse_pad_update_caps (parsepad, caps);
+      break;
+    }
+    case GST_EVENT_TAG:{
+      GstTagList *tags;
+      gst_event_parse_tag (event, &tags);
+      gst_parse_pad_update_tags (parsepad, tags);
+      break;
+    }
+    case GST_EVENT_STREAM_START:{
+      GST_PAD_PROBE_INFO_DATA (info) =
+          gst_parse_pad_stream_start_event (parsepad, event);
+      break;
+    }
+    case GST_EVENT_STREAM_COLLECTION:{
+      GstStreamCollection *collection = NULL;
+      gst_event_parse_stream_collection (event, &collection);
+      gst_parse_pad_update_stream_collection (parsepad, collection);
+      break;
+    }
+    case GST_EVENT_EOS:{
+      GST_DEBUG_OBJECT (pad, "we received EOS");
+
+      /* Check if all pads are drained.
+       * * If there is no next group, we will let the EOS go through.
+       * * If there is a next group but the current group isn't completely
+       *   drained, we will drop the EOS event.
+       * * If there is a next group to expose and this was the last non-drained
+       *   pad for that group, we will remove the ghostpad of the current group
+       *   first, which unlinks the peer and so drops the EOS. */
+      forwardit = gst_parse_pad_handle_eos (parsepad);
+    }
+    default:
+      break;
+  }
+  gst_object_unref (parent);
+  if (forwardit)
+    return GST_PAD_PROBE_OK;
+  else
+    return GST_PAD_PROBE_DROP;
+}
+
+static void
+gst_parse_pad_set_blocked (GstParsePad * parsepad, gboolean blocked)
+{
+  GstParseBin *parsebin = parsepad->parsebin;
+  GstPad *opad;
+
+  DYN_LOCK (parsebin);
+
+  GST_DEBUG_OBJECT (parsepad, "blocking pad: %d", blocked);
+
+  opad = gst_ghost_pad_get_target (GST_GHOST_PAD_CAST (parsepad));
+  if (!opad)
+    goto out;
+
+  /* do not block if shutting down.
+   * we do not consider/expect it blocked further below, but use other trick */
+  if (!blocked || !parsebin->shutdown) {
+    if (blocked) {
+      if (parsepad->block_id == 0)
+        parsepad->block_id =
+            gst_pad_add_probe (opad,
+            GST_PAD_PROBE_TYPE_BLOCK_DOWNSTREAM |
+            GST_PAD_PROBE_TYPE_QUERY_DOWNSTREAM, source_pad_blocked_cb,
+            gst_object_ref (parsepad), (GDestroyNotify) gst_object_unref);
+    } else {
+      if (parsepad->block_id != 0) {
+        gst_pad_remove_probe (opad, parsepad->block_id);
+        parsepad->block_id = 0;
+      }
+      parsepad->blocked = FALSE;
+    }
+  }
+
+  if (blocked) {
+    if (parsebin->shutdown) {
+      /* deactivate to force flushing state to prevent NOT_LINKED errors */
+      gst_pad_set_active (GST_PAD_CAST (parsepad), FALSE);
+      /* note that deactivating the target pad would have no effect here,
+       * since elements are typically connected first (and pads exposed),
+       * and only then brought to PAUSED state (so pads activated) */
+    } else {
+      gst_object_ref (parsepad);
+      parsebin->blocked_pads =
+          g_list_prepend (parsebin->blocked_pads, parsepad);
+    }
+  } else {
+    GList *l;
+
+    if ((l = g_list_find (parsebin->blocked_pads, parsepad))) {
+      gst_object_unref (parsepad);
+      parsebin->blocked_pads = g_list_delete_link (parsebin->blocked_pads, l);
+    }
+  }
+  gst_object_unref (opad);
+out:
+  DYN_UNLOCK (parsebin);
+}
+
+static void
+gst_parse_pad_activate (GstParsePad * parsepad, GstParseChain * chain)
+{
+  g_return_if_fail (chain != NULL);
+
+  parsepad->chain = chain;
+  gst_pad_set_active (GST_PAD_CAST (parsepad), TRUE);
+  gst_parse_pad_set_blocked (parsepad, TRUE);
+}
+
+static void
+gst_parse_pad_unblock (GstParsePad * parsepad)
+{
+  gst_parse_pad_set_blocked (parsepad, FALSE);
+}
+
+static gboolean
+gst_parse_pad_query (GstPad * pad, GstObject * parent, GstQuery * query)
+{
+  GstParsePad *parsepad = GST_PARSE_PAD (parent);
+  gboolean ret = FALSE;
+
+  CHAIN_MUTEX_LOCK (parsepad->chain);
+  if (!parsepad->exposed && !parsepad->parsebin->shutdown
+      && !parsepad->chain->deadend && parsepad->chain->elements) {
+    GstParseElement *delem = parsepad->chain->elements->data;
+
+    ret = FALSE;
+    GST_DEBUG_OBJECT (parsepad->parsebin,
+        "calling autoplug-query for %s (element %s): %" GST_PTR_FORMAT,
+        GST_PAD_NAME (parsepad), GST_ELEMENT_NAME (delem->element), query);
+    g_signal_emit (G_OBJECT (parsepad->parsebin),
+        gst_parse_bin_signals[SIGNAL_AUTOPLUG_QUERY], 0, parsepad,
+        delem->element, query, &ret);
+
+    if (ret)
+      GST_DEBUG_OBJECT (parsepad->parsebin,
+          "autoplug-query returned %d: %" GST_PTR_FORMAT, ret, query);
+    else
+      GST_DEBUG_OBJECT (parsepad->parsebin, "autoplug-query returned %d", ret);
+  }
+  CHAIN_MUTEX_UNLOCK (parsepad->chain);
+
+  /* If exposed or nothing handled the query use the default handler */
+  if (!ret)
+    ret = gst_pad_query_default (pad, parent, query);
+
+  return ret;
+}
+
+/*gst_parse_pad_new:
+ *
+ * Creates a new GstParsePad for the given pad.
+ */
+static GstParsePad *
+gst_parse_pad_new (GstParseBin * parsebin, GstParseChain * chain)
+{
+  GstParsePad *parsepad;
+  GstProxyPad *ppad;
+  GstPadTemplate *pad_tmpl;
+
+  GST_DEBUG_OBJECT (parsebin, "making new decodepad");
+  pad_tmpl = gst_static_pad_template_get (&decoder_bin_src_template);
+  parsepad =
+      g_object_new (GST_TYPE_PARSE_PAD, "direction", GST_PAD_SRC,
+      "template", pad_tmpl, NULL);
+  gst_ghost_pad_construct (GST_GHOST_PAD_CAST (parsepad));
+  parsepad->chain = chain;
+  parsepad->parsebin = parsebin;
+  gst_object_unref (pad_tmpl);
+
+  ppad = gst_proxy_pad_get_internal (GST_PROXY_PAD (parsepad));
+  gst_pad_set_query_function (GST_PAD_CAST (ppad), gst_parse_pad_query);
+
+  /* Add downstream event probe */
+  GST_LOG_OBJECT (parsepad, "Adding event probe on internal pad %"
+      GST_PTR_FORMAT, ppad);
+  gst_pad_add_probe (GST_PAD_CAST (ppad),
+      GST_PAD_PROBE_TYPE_EVENT_DOWNSTREAM, gst_parse_pad_event, parsepad, NULL);
+  gst_object_unref (ppad);
+
+  return parsepad;
+}
+
+static void
+gst_pending_pad_free (GstPendingPad * ppad)
+{
+  g_assert (ppad);
+  g_assert (ppad->pad);
+
+  if (ppad->event_probe_id != 0)
+    gst_pad_remove_probe (ppad->pad, ppad->event_probe_id);
+  if (ppad->notify_caps_id)
+    g_signal_handler_disconnect (ppad->pad, ppad->notify_caps_id);
+  gst_object_unref (ppad->pad);
+  g_slice_free (GstPendingPad, ppad);
+}
+
+/*****
+ * Element add/remove
+ *****/
+
+static void
+do_async_start (GstParseBin * parsebin)
+{
+  GstMessage *message;
+
+  parsebin->async_pending = TRUE;
+
+  message = gst_message_new_async_start (GST_OBJECT_CAST (parsebin));
+  parent_class->handle_message (GST_BIN_CAST (parsebin), message);
+}
+
+static void
+do_async_done (GstParseBin * parsebin)
+{
+  GstMessage *message;
+
+  if (parsebin->async_pending) {
+    message =
+        gst_message_new_async_done (GST_OBJECT_CAST (parsebin),
+        GST_CLOCK_TIME_NONE);
+    parent_class->handle_message (GST_BIN_CAST (parsebin), message);
+
+    parsebin->async_pending = FALSE;
+  }
+}
+
+/* call with dyn_lock held */
+static void
+unblock_pads (GstParseBin * parsebin)
+{
+  GList *tmp;
+
+  GST_LOG_OBJECT (parsebin, "unblocking pads");
+
+  for (tmp = parsebin->blocked_pads; tmp; tmp = tmp->next) {
+    GstParsePad *parsepad = (GstParsePad *) tmp->data;
+    GstPad *opad;
+
+    opad = gst_ghost_pad_get_target (GST_GHOST_PAD_CAST (parsepad));
+    if (!opad)
+      continue;
+
+    GST_DEBUG_OBJECT (parsepad, "unblocking");
+    if (parsepad->block_id != 0) {
+      gst_pad_remove_probe (opad, parsepad->block_id);
+      parsepad->block_id = 0;
+    }
+    parsepad->blocked = FALSE;
+    /* make flushing, prevent NOT_LINKED */
+    gst_pad_set_active (GST_PAD_CAST (parsepad), FALSE);
+    gst_object_unref (parsepad);
+    gst_object_unref (opad);
+    GST_DEBUG_OBJECT (parsepad, "unblocked");
+  }
+
+  /* clear, no more blocked pads */
+  g_list_free (parsebin->blocked_pads);
+  parsebin->blocked_pads = NULL;
+}
+
+static GstStateChangeReturn
+gst_parse_bin_change_state (GstElement * element, GstStateChange transition)
+{
+  GstStateChangeReturn ret = GST_STATE_CHANGE_SUCCESS;
+  GstParseBin *parsebin = GST_PARSE_BIN (element);
+  GstParseChain *chain_to_free = NULL;
+
+  switch (transition) {
+    case GST_STATE_CHANGE_NULL_TO_READY:
+      if (parsebin->typefind == NULL)
+        goto missing_typefind;
+      break;
+    case GST_STATE_CHANGE_READY_TO_PAUSED:
+      /* Make sure we've cleared all existing chains */
+      EXPOSE_LOCK (parsebin);
+      if (parsebin->parse_chain) {
+        gst_parse_chain_free (parsebin->parse_chain);
+        parsebin->parse_chain = NULL;
+      }
+      EXPOSE_UNLOCK (parsebin);
+      DYN_LOCK (parsebin);
+      GST_LOG_OBJECT (parsebin, "clearing shutdown flag");
+      parsebin->shutdown = FALSE;
+      DYN_UNLOCK (parsebin);
+      parsebin->have_type = FALSE;
+      ret = GST_STATE_CHANGE_ASYNC;
+      do_async_start (parsebin);
+
+
+      /* connect a signal to find out when the typefind element found
+       * a type */
+      parsebin->have_type_id =
+          g_signal_connect (parsebin->typefind, "have-type",
+          G_CALLBACK (type_found), parsebin);
+      break;
+    case GST_STATE_CHANGE_PAUSED_TO_READY:
+      if (parsebin->have_type_id)
+        g_signal_handler_disconnect (parsebin->typefind,
+            parsebin->have_type_id);
+      parsebin->have_type_id = 0;
+      DYN_LOCK (parsebin);
+      GST_LOG_OBJECT (parsebin, "setting shutdown flag");
+      parsebin->shutdown = TRUE;
+      unblock_pads (parsebin);
+      DYN_UNLOCK (parsebin);
+    default:
+      break;
+  }
+
+  {
+    GstStateChangeReturn bret;
+
+    bret = GST_ELEMENT_CLASS (parent_class)->change_state (element, transition);
+    if (G_UNLIKELY (bret == GST_STATE_CHANGE_FAILURE))
+      goto activate_failed;
+    else if (G_UNLIKELY (bret == GST_STATE_CHANGE_NO_PREROLL)) {
+      do_async_done (parsebin);
+      ret = bret;
+    }
+  }
+  switch (transition) {
+    case GST_STATE_CHANGE_PAUSED_TO_READY:
+      do_async_done (parsebin);
+      EXPOSE_LOCK (parsebin);
+      if (parsebin->parse_chain) {
+        chain_to_free = parsebin->parse_chain;
+        gst_parse_chain_free_internal (parsebin->parse_chain, TRUE);
+        parsebin->parse_chain = NULL;
+      }
+      EXPOSE_UNLOCK (parsebin);
+      if (chain_to_free)
+        gst_parse_chain_free (chain_to_free);
+      break;
+    case GST_STATE_CHANGE_READY_TO_NULL:
+    default:
+      break;
+  }
+
+  return ret;
+
+/* ERRORS */
+missing_typefind:
+  {
+    gst_element_post_message (element,
+        gst_missing_element_message_new (element, "typefind"));
+    GST_ELEMENT_ERROR (parsebin, CORE, MISSING_PLUGIN, (NULL),
+        ("no typefind!"));
+    return GST_STATE_CHANGE_FAILURE;
+  }
+activate_failed:
+  {
+    GST_DEBUG_OBJECT (element,
+        "element failed to change states -- activation problem?");
+    do_async_done (parsebin);
+    return GST_STATE_CHANGE_FAILURE;
+  }
+}
+
+static void
+gst_parse_bin_handle_message (GstBin * bin, GstMessage * msg)
+{
+  GstParseBin *parsebin = GST_PARSE_BIN (bin);
+  gboolean drop = FALSE;
+
+  switch (GST_MESSAGE_TYPE (msg)) {
+    case GST_MESSAGE_ERROR:{
+      GST_OBJECT_LOCK (parsebin);
+      drop = (g_list_find (parsebin->filtered, GST_MESSAGE_SRC (msg)) != NULL);
+      if (drop)
+        parsebin->filtered_errors =
+            g_list_prepend (parsebin->filtered_errors, gst_message_ref (msg));
+      GST_OBJECT_UNLOCK (parsebin);
+      break;
+    }
+    default:
+      break;
+  }
+
+  if (drop)
+    gst_message_unref (msg);
+  else
+    GST_BIN_CLASS (parent_class)->handle_message (bin, msg);
+}
+
+gboolean
+gst_parse_bin_plugin_init (GstPlugin * plugin)
+{
+  GST_DEBUG_CATEGORY_INIT (gst_parse_bin_debug, "parsebin", 0, "parser bin");
+
+  return gst_element_register (plugin, "parsebin", GST_RANK_NONE,
+      GST_TYPE_PARSE_BIN);
+}
diff --git a/gst/playback/gstplayback.c b/gst/playback/gstplayback.c
index 882a7ec..4789db6 100644
--- a/gst/playback/gstplayback.c
+++ b/gst/playback/gstplayback.c
@@ -46,13 +46,25 @@
   bind_textdomain_codeset (GETTEXT_PACKAGE, "UTF-8");
 #endif /* ENABLE_NLS */
 
-  res = gst_play_bin2_plugin_init (plugin);
+  /* Swap in playbin3 as 'playbin' if USE_PLAYBIN3=1 */
+  {
+    const gchar *env = g_getenv ("USE_PLAYBIN3");
+    if (env && g_str_has_prefix (env, "1"))
+      res = gst_play_bin3_plugin_init (plugin, TRUE);
+    else
+      res = gst_play_bin2_plugin_init (plugin);
+  }
+
+  res &= gst_play_bin3_plugin_init (plugin, FALSE);
   res &= gst_play_sink_plugin_init (plugin);
   res &= gst_subtitle_overlay_plugin_init (plugin);
   res &= gst_stream_synchronizer_plugin_init (plugin);
 
   res &= gst_decode_bin_plugin_init (plugin);
+  res &= gst_decodebin3_plugin_init (plugin);
   res &= gst_uri_decode_bin_plugin_init (plugin);
+  res &= gst_uri_source_bin_plugin_init (plugin);
+  res &= gst_parse_bin_plugin_init (plugin);
 
   return res;
 }
diff --git a/gst/playback/gstplayback.h b/gst/playback/gstplayback.h
index b4309c7..eaa0564 100644
--- a/gst/playback/gstplayback.h
+++ b/gst/playback/gstplayback.h
@@ -24,10 +24,14 @@
 #include <gst/gst.h>
 
 gboolean gst_decode_bin_plugin_init (GstPlugin * plugin);
+gboolean gst_decodebin3_plugin_init (GstPlugin * plugin);
 gboolean gst_uri_decode_bin_plugin_init (GstPlugin * plugin);
+gboolean gst_uri_source_bin_plugin_init (GstPlugin * plugin);
+gboolean gst_parse_bin_plugin_init (GstPlugin * plugin);
 
 gboolean gst_play_bin_plugin_init (GstPlugin * plugin);
 gboolean gst_play_bin2_plugin_init (GstPlugin * plugin);
+gboolean gst_play_bin3_plugin_init (GstPlugin * plugin, gboolean as_playbin);
 
 
 #endif /* __GST_PLAY_BACK_H__ */
diff --git a/gst/playback/gstplaybin2.c b/gst/playback/gstplaybin2.c
index ad63600..15fea65 100644
--- a/gst/playback/gstplaybin2.c
+++ b/gst/playback/gstplaybin2.c
@@ -603,6 +603,7 @@
   SIGNAL_GET_AUDIO_PAD,
   SIGNAL_GET_TEXT_PAD,
   SIGNAL_SOURCE_SETUP,
+  SIGNAL_ELEMENT_SETUP,
   LAST_SIGNAL
 };
 
@@ -622,6 +623,8 @@
     GstStateChange transition);
 
 static void gst_play_bin_handle_message (GstBin * bin, GstMessage * message);
+static void gst_play_bin_deep_element_added (GstBin * playbin, GstBin * sub_bin,
+    GstElement * child);
 static gboolean gst_play_bin_query (GstElement * element, GstQuery * query);
 static void gst_play_bin_set_context (GstElement * element,
     GstContext * context);
@@ -1178,6 +1181,27 @@
       g_cclosure_marshal_generic, G_TYPE_NONE, 1, GST_TYPE_ELEMENT);
 
   /**
+   * GstPlayBin::element-setup:
+   * @playbin: a #GstPlayBin
+   * @element: an element that was added to the playbin hierarchy
+   *
+   * This signal is emitted when a new element is added to playbin or any of
+   * its sub-bins. This signal can be used to configure elements, e.g. to set
+   * properties on decoders. This is functionally equivalent to connecting to
+   * the deep-element-added signal, but more convenient.
+   *
+   * This signal is usually emitted from the context of a GStreamer streaming
+   * thread, so might be called at the same time as code running in the main
+   * application thread.
+   *
+   * Since: 1.10
+   */
+  gst_play_bin_signals[SIGNAL_ELEMENT_SETUP] =
+      g_signal_new ("element-setup", G_TYPE_FROM_CLASS (klass),
+      G_SIGNAL_RUN_LAST, 0, NULL, NULL,
+      g_cclosure_marshal_generic, G_TYPE_NONE, 1, GST_TYPE_ELEMENT);
+
+  /**
    * GstPlayBin::get-video-tags
    * @playbin: a #GstPlayBin
    * @stream: a video stream number
@@ -1321,6 +1345,8 @@
 
   gstbin_klass->handle_message =
       GST_DEBUG_FUNCPTR (gst_play_bin_handle_message);
+  gstbin_klass->deep_element_added =
+      GST_DEBUG_FUNCPTR (gst_play_bin_deep_element_added);
 }
 
 static void
@@ -3011,6 +3037,18 @@
 }
 
 static void
+gst_play_bin_deep_element_added (GstBin * playbin, GstBin * sub_bin,
+    GstElement * child)
+{
+  GST_LOG_OBJECT (playbin, "element %" GST_PTR_FORMAT " was added to "
+      "%" GST_PTR_FORMAT, child, sub_bin);
+
+  g_signal_emit (playbin, gst_play_bin_signals[SIGNAL_ELEMENT_SETUP], 0, child);
+
+  GST_BIN_CLASS (parent_class)->deep_element_added (playbin, sub_bin, child);
+}
+
+static void
 combiner_active_pad_changed (GObject * combiner, GParamSpec * pspec,
     GstPlayBin * playbin)
 {
diff --git a/gst/playback/gstplaybin3.c b/gst/playback/gstplaybin3.c
new file mode 100644
index 0000000..7a3f163
--- /dev/null
+++ b/gst/playback/gstplaybin3.c
@@ -0,0 +1,6079 @@
+/* GStreamer
+ * Copyright (C) <2007> Wim Taymans <wim.taymans@gmail.com>
+ * Copyright (C) <2011> Sebastian Dröge <sebastian.droege@collabora.co.uk>
+ * Copyright (C) <2013> Collabora Ltd.
+ *   Author: Sebastian Dröge <sebastian.droege@collabora.co.uk>
+ * Copyright (C) <2015> Jan Schmidt <jan@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.
+ */
+
+/**
+ * SECTION:element-playbin3
+ *
+ * Playbin provides a stand-alone everything-in-one abstraction for an
+ * audio and/or video player.
+ *
+ * Playbin can handle both audio and video files and features
+ * <itemizedlist>
+ * <listitem>
+ * automatic file type recognition and based on that automatic
+ * selection and usage of the right audio/video/subtitle demuxers/decoders
+ * </listitem>
+ * <listitem>
+ * visualisations for audio files
+ * </listitem>
+ * <listitem>
+ * subtitle support for video files. Subtitles can be store in external
+ * files.
+ * </listitem>
+ * <listitem>
+ * stream selection between different video/audio/subtitles streams
+ * </listitem>
+ * <listitem>
+ * meta info (tag) extraction
+ * </listitem>
+ * <listitem>
+ * easy access to the last video sample
+ * </listitem>
+ * <listitem>
+ * buffering when playing streams over a network
+ * </listitem>
+ * <listitem>
+ * volume control with mute option
+ * </listitem>
+ * </itemizedlist>
+ *
+ * <refsect2>
+ * <title>Usage</title>
+ * <para>
+ * A playbin element can be created just like any other element using
+ * gst_element_factory_make(). The file/URI to play should be set via the #GstPlayBin3:uri
+ * property. This must be an absolute URI, relative file paths are not allowed.
+ * Example URIs are file:///home/joe/movie.avi or http://www.joedoe.com/foo.ogg
+ *
+ * Playbin is a #GstPipeline. It will notify the application of everything
+ * that's happening (errors, end of stream, tags found, state changes, etc.)
+ * by posting messages on its #GstBus. The application needs to watch the
+ * bus.
+ *
+ * Playback can be initiated by setting the element to PLAYING state using
+ * gst_element_set_state(). Note that the state change will take place in
+ * the background in a separate thread, when the function returns playback
+ * is probably not happening yet and any errors might not have occured yet.
+ * Applications using playbin should ideally be written to deal with things
+ * completely asynchroneous.
+ *
+ * When playback has finished (an EOS message has been received on the bus)
+ * or an error has occured (an ERROR message has been received on the bus) or
+ * the user wants to play a different track, playbin should be set back to
+ * READY or NULL state, then the #GstPlayBin3:uri property should be set to the
+ * new location and then playbin be set to PLAYING state again.
+ *
+ * Seeking can be done using gst_element_seek_simple() or gst_element_seek()
+ * on the playbin element. Again, the seek will not be executed
+ * instantaneously, but will be done in a background thread. When the seek
+ * call returns the seek will most likely still be in process. An application
+ * may wait for the seek to finish (or fail) using gst_element_get_state() with
+ * -1 as the timeout, but this will block the user interface and is not
+ * recommended at all.
+ *
+ * Applications may query the current position and duration of the stream
+ * via gst_element_query_position() and gst_element_query_duration() and
+ * setting the format passed to GST_FORMAT_TIME. If the query was successful,
+ * the duration or position will have been returned in units of nanoseconds.
+ * </para>
+ * </refsect2>
+ * <refsect2>
+ * <title>Advanced Usage: specifying the audio and video sink</title>
+ * <para>
+ * By default, if no audio sink or video sink has been specified via the
+ * #GstPlayBin3:audio-sink or #GstPlayBin3:video-sink property, playbin will use the autoaudiosink
+ * and autovideosink elements to find the first-best available output method.
+ * This should work in most cases, but is not always desirable. Often either
+ * the user or application might want to specify more explicitly what to use
+ * for audio and video output.
+ *
+ * If the application wants more control over how audio or video should be
+ * output, it may create the audio/video sink elements itself (for example
+ * using gst_element_factory_make()) and provide them to playbin using the
+ * #GstPlayBin3:audio-sink or #GstPlayBin3:video-sink property.
+ *
+ * GNOME-based applications, for example, will usually want to create
+ * gconfaudiosink and gconfvideosink elements and make playbin use those,
+ * so that output happens to whatever the user has configured in the GNOME
+ * Multimedia System Selector configuration dialog.
+ *
+ * The sink elements do not necessarily need to be ready-made sinks. It is
+ * possible to create container elements that look like a sink to playbin,
+ * but in reality contain a number of custom elements linked together. This
+ * can be achieved by creating a #GstBin and putting elements in there and
+ * linking them, and then creating a sink #GstGhostPad for the bin and pointing
+ * it to the sink pad of the first element within the bin. This can be used
+ * for a number of purposes, for example to force output to a particular
+ * format or to modify or observe the data before it is output.
+ *
+ * It is also possible to 'suppress' audio and/or video output by using
+ * 'fakesink' elements (or capture it from there using the fakesink element's
+ * "handoff" signal, which, nota bene, is fired from the streaming thread!).
+ * </para>
+ * </refsect2>
+ * <refsect2>
+ * <title>Retrieving Tags and Other Meta Data</title>
+ * <para>
+ * Most of the common meta data (artist, title, etc.) can be retrieved by
+ * watching for TAG messages on the pipeline's bus (see above).
+ *
+ * Other more specific meta information like width/height/framerate of video
+ * streams or samplerate/number of channels of audio streams can be obtained
+ * from the negotiated caps on the sink pads of the sinks.
+ * </para>
+ * </refsect2>
+ * <refsect2>
+ * <title>Buffering</title>
+ * Playbin handles buffering automatically for the most part, but applications
+ * need to handle parts of the buffering process as well. Whenever playbin is
+ * buffering, it will post BUFFERING messages on the bus with a percentage
+ * value that shows the progress of the buffering process. Applications need
+ * to set playbin to PLAYING or PAUSED state in response to these messages.
+ * They may also want to convey the buffering progress to the user in some
+ * way. Here is how to extract the percentage information from the message:
+ * |[
+ * switch (GST_MESSAGE_TYPE (msg)) {
+ *   case GST_MESSAGE_BUFFERING: {
+ *     gint percent = 0;
+ *     gst_message_parse_buffering (msg, &percent);
+ *     g_print ("Buffering (%u percent done)", percent);
+ *     break;
+ *   }
+ *   ...
+ * }
+ * ]|
+ * Note that applications should keep/set the pipeline in the PAUSED state when
+ * a BUFFERING message is received with a buffer percent value < 100 and set
+ * the pipeline back to PLAYING state when a BUFFERING message with a value
+ * of 100 percent is received (if PLAYING is the desired state, that is).
+ * </refsect2>
+ * <refsect2>
+ * <title>Embedding the video window in your application</title>
+ * By default, playbin (or rather the video sinks used) will create their own
+ * window. Applications will usually want to force output to a window of their
+ * own, however. This can be done using the #GstVideoOverlay interface, which most
+ * video sinks implement. See the documentation there for more details.
+ * </refsect2>
+ * <refsect2>
+ * <title>Specifying which CD/DVD device to use</title>
+ * The device to use for CDs/DVDs needs to be set on the source element
+ * playbin creates before it is opened. The most generic way of doing this
+ * is to connect to playbin's "source-setup" (or "notify::source") signal,
+ * which will be emitted by playbin when it has created the source element
+ * for a particular URI. In the signal callback you can check if the source
+ * element has a "device" property and set it appropriately. In some cases
+ * the device can also be set as part of the URI, but it depends on the
+ * elements involved if this will work or not. For example, for DVD menu
+ * playback, the following syntax might work (if the resindvd plugin is used):
+ * dvd://[/path/to/device]
+ * </refsect2>
+ * <refsect2>
+ * <title>Handling redirects</title>
+ * <para>
+ * Some elements may post 'redirect' messages on the bus to tell the
+ * application to open another location. These are element messages containing
+ * a structure named 'redirect' along with a 'new-location' field of string
+ * type. The new location may be a relative or an absolute URI. Examples
+ * for such redirects can be found in many quicktime movie trailers.
+ * </para>
+ * </refsect2>
+ * <refsect2>
+ * <title>Examples</title>
+ * |[
+ * gst-launch-1.0 -v playbin uri=file:///path/to/somefile.mp4
+ * ]| This will play back the given AVI video file, given that the video and
+ * audio decoders required to decode the content are installed. Since no
+ * special audio sink or video sink is supplied (via playbin's audio-sink or
+ * video-sink properties) playbin will try to find a suitable audio and
+ * video sink automatically using the autoaudiosink and autovideosink elements.
+ * |[
+ * gst-launch-1.0 -v playbin uri=cdda://4
+ * ]| This will play back track 4 on an audio CD in your disc drive (assuming
+ * the drive is detected automatically by the plugin).
+ * |[
+ * gst-launch-1.0 -v playbin uri=dvd://
+ * ]| This will play back the DVD in your disc drive (assuming
+ * the drive is detected automatically by the plugin).
+ * </refsect2>
+ */
+
+/* FIXME 0.11: suppress warnings for deprecated API such as GValueArray
+ * with newer GLib versions (>= 2.31.0) */
+#define GLIB_DISABLE_DEPRECATION_WARNINGS
+
+#ifdef HAVE_CONFIG_H
+#include "config.h"
+#endif
+
+#include <string.h>
+#include <gst/gst.h>
+
+#include <gst/gst-i18n-plugin.h>
+#include <gst/pbutils/pbutils.h>
+#include <gst/audio/streamvolume.h>
+#include <gst/video/video-info.h>
+#include <gst/video/video-multiview.h>
+#include <gst/video/videooverlay.h>
+#include <gst/video/navigation.h>
+#include <gst/video/colorbalance.h>
+#include "gstplay-enum.h"
+#include "gstplayback.h"
+#include "gstplaysink.h"
+#include "gstsubtitleoverlay.h"
+#include "gstplaybackutils.h"
+
+GST_DEBUG_CATEGORY_STATIC (gst_play_bin3_debug);
+#define GST_CAT_DEFAULT gst_play_bin3_debug
+
+#define GST_TYPE_PLAY_BIN               (gst_play_bin3_get_type())
+#define GST_PLAY_BIN3(obj)               (G_TYPE_CHECK_INSTANCE_CAST((obj),GST_TYPE_PLAY_BIN,GstPlayBin3))
+#define GST_PLAY_BIN3_CLASS(klass)       (G_TYPE_CHECK_CLASS_CAST((klass),GST_TYPE_PLAY_BIN,GstPlayBin3Class))
+#define GST_IS_PLAY_BIN(obj)            (G_TYPE_CHECK_INSTANCE_TYPE((obj),GST_TYPE_PLAY_BIN))
+#define GST_IS_PLAY_BIN_CLASS(klass)    (G_TYPE_CHECK_CLASS_TYPE((klass),GST_TYPE_PLAY_BIN))
+
+#define ULONG_TO_POINTER(number)        ((gpointer) (guintptr) (number))
+#define POINTER_TO_ULONG(number)        ((guintptr) (number))
+
+#define VOLUME_MAX_DOUBLE 10.0
+
+typedef struct _GstPlayBin3 GstPlayBin3;
+typedef struct _GstPlayBin3Class GstPlayBin3Class;
+typedef struct _GstSourceGroup GstSourceGroup;
+typedef struct _GstSourceCombine GstSourceCombine;
+
+typedef GstCaps *(*SourceCombineGetMediaCapsFunc) (void);
+
+/* has the info for a combiner and provides the link to the sink */
+struct _GstSourceCombine
+{
+  const gchar *media_type;      /* the media type for the combiner */
+  SourceCombineGetMediaCapsFunc get_media_caps; /* more complex caps for the combiner */
+  GstPlaySinkType type;         /* the sink pad type of the combiner */
+
+  GstElement *combiner;         /* the combiner */
+  GPtrArray *channels;
+  GstPad *srcpad;               /* the source pad of the combiner */
+  GstPad *sinkpad;              /* the sinkpad of the sink when the combiner
+                                 * is linked
+                                 */
+  gulong block_id;
+
+  GPtrArray *streams;           /* Sorted array of GstStream for the given type */
+  gint current_stream;          /* Currently selected GstStream */
+
+  gboolean has_active_pad;      /* stream combiner has the "active-pad" property */
+
+  gboolean has_always_ok;       /* stream combiner's sink pads have the "always-ok" property */
+};
+
+#define GST_SOURCE_GROUP_GET_LOCK(group) (&((GstSourceGroup*)(group))->lock)
+#define GST_SOURCE_GROUP_LOCK(group) (g_mutex_lock (GST_SOURCE_GROUP_GET_LOCK(group)))
+#define GST_SOURCE_GROUP_UNLOCK(group) (g_mutex_unlock (GST_SOURCE_GROUP_GET_LOCK(group)))
+
+enum
+{
+  PLAYBIN_STREAM_AUDIO = 0,
+  PLAYBIN_STREAM_VIDEO,
+  PLAYBIN_STREAM_TEXT,
+  PLAYBIN_STREAM_LAST
+};
+
+/* names matching the enum above */
+static const gchar *stream_type_names[] = {
+  "audio", "video", "text"
+};
+
+static void avelements_free (gpointer data);
+static GSequence *avelements_create (GstPlayBin3 * playbin,
+    gboolean isaudioelement);
+
+/* The GstAudioVideoElement structure holding the audio/video decoder
+ * and the audio/video sink factories together with field indicating
+ * the number of common caps features */
+typedef struct
+{
+  GstElementFactory *dec;       /* audio:video decoder */
+  GstElementFactory *sink;      /* audio:video sink */
+  guint n_comm_cf;              /* number of common caps features */
+} GstAVElement;
+
+/* a structure to hold the objects for decoding a uri and the subtitle uri
+ */
+struct _GstSourceGroup
+{
+  GstPlayBin3 *playbin;
+
+  GMutex lock;
+
+  gboolean valid;               /* the group has valid info to start playback */
+  gboolean active;              /* the group is active */
+
+  /* properties */
+  gchar *uri;
+  gchar *suburi;
+  GValueArray *streaminfo;
+  GstElement *source;
+
+
+  /* urisourcebins for uri and subtitle uri */
+  /* FIXME: Just make this an array of uris */
+  GstElement *urisourcebin;
+  GstElement *suburisourcebin;
+
+  /* Active sinks for each media type. These are initialized with
+   * the configured or currently used sink, otherwise
+   * left as NULL and playbin tries to automatically
+   * select a good sink */
+  GstElement *audio_sink;
+  GstElement *video_sink;
+  GstElement *text_sink;
+
+  gint pending;
+  gboolean sub_pending;
+
+  /* primary uri signals */
+  gulong urisrc_pad_added_id;
+  gulong urisrc_pad_removed_id;
+  gulong notify_source_id;
+  gulong autoplug_factories_id;
+  gulong autoplug_select_id;
+  gulong autoplug_continue_id;
+  gulong autoplug_query_id;
+
+  /* subtitle uri signals */
+  gulong sub_pad_added_id;
+  gulong sub_pad_removed_id;
+  gulong sub_autoplug_continue_id;
+  gulong sub_autoplug_query_id;
+
+  gulong block_id;
+
+  GMutex stream_changed_pending_lock;
+  gboolean stream_changed_pending;
+
+  /* buffering message stored for after switching */
+  GstMessage *pending_buffering_msg;
+};
+
+#define GST_PLAY_BIN3_GET_LOCK(bin) (&((GstPlayBin3*)(bin))->lock)
+#define GST_PLAY_BIN3_LOCK(bin) (g_rec_mutex_lock (GST_PLAY_BIN3_GET_LOCK(bin)))
+#define GST_PLAY_BIN3_UNLOCK(bin) (g_rec_mutex_unlock (GST_PLAY_BIN3_GET_LOCK(bin)))
+
+/* lock to protect dynamic callbacks, like no-more-pads */
+#define GST_PLAY_BIN3_DYN_LOCK(bin)    g_mutex_lock (&(bin)->dyn_lock)
+#define GST_PLAY_BIN3_DYN_UNLOCK(bin)  g_mutex_unlock (&(bin)->dyn_lock)
+
+/* lock for shutdown */
+#define GST_PLAY_BIN3_SHUTDOWN_LOCK(bin,label)           \
+G_STMT_START {                                          \
+  if (G_UNLIKELY (g_atomic_int_get (&bin->shutdown)))   \
+    goto label;                                         \
+  GST_PLAY_BIN3_DYN_LOCK (bin);                          \
+  if (G_UNLIKELY (g_atomic_int_get (&bin->shutdown))) { \
+    GST_PLAY_BIN3_DYN_UNLOCK (bin);                      \
+    goto label;                                         \
+  }                                                     \
+} G_STMT_END
+
+/* unlock for shutdown */
+#define GST_PLAY_BIN3_SHUTDOWN_UNLOCK(bin)         \
+  GST_PLAY_BIN3_DYN_UNLOCK (bin);                  \
+
+/**
+ * GstPlayBin3:
+ *
+ * playbin element structure
+ */
+struct _GstPlayBin3
+{
+  GstPipeline parent;
+
+  GRecMutex lock;               /* to protect group switching */
+
+  /* the input groups, we use a double buffer to switch between current and next */
+  GstSourceGroup groups[2];     /* array with group info */
+  GstSourceGroup *curr_group;   /* pointer to the currently playing group */
+  GstSourceGroup *next_group;   /* pointer to the next group */
+
+  /* combiners for different streams */
+  GPtrArray *channels[PLAYBIN_STREAM_LAST];     /* links to combiner pads */
+  GstSourceCombine combiner[PLAYBIN_STREAM_LAST];
+
+  /* A global decodebin3 that's used to actually do decoding */
+  gboolean decodebin_active;
+  GstElement *decodebin;
+  /* Bit-wise set of stream types we have
+   * requested from decodebin vs stream types
+   * decodebin has provided */
+  GstStreamType selected_stream_types;
+  GstStreamType active_stream_types;
+
+  /* Decodebin signals */
+  gulong db_pad_added_id;
+  gulong db_pad_removed_id;
+  gulong db_no_more_pads_id;
+  gulong db_drained_id;
+  gulong db_select_stream_id;
+
+  /* properties */
+  guint64 connection_speed;     /* connection speed in bits/sec (0 = unknown) */
+  gint current_video;           /* the currently selected stream */
+  gint current_audio;           /* the currently selected stream */
+  gint current_text;            /* the currently selected stream */
+
+  gboolean do_stream_selections;        /* Set to TRUE when any of current-{video|audio|text} are set to
+                                           say playbin should do backwards-compatibility behaviours */
+
+  guint64 buffer_duration;      /* When buffering, the max buffer duration (ns) */
+  guint buffer_size;            /* When buffering, the max buffer size (bytes) */
+  gboolean force_aspect_ratio;
+
+  /* Multiview/stereoscopic overrides */
+  GstVideoMultiviewFramePacking multiview_mode;
+  GstVideoMultiviewFlags multiview_flags;
+
+  /* our play sink */
+  GstPlaySink *playsink;
+
+  /* the last activated source */
+  GstElement *source;
+
+  /* lock protecting dynamic adding/removing */
+  GMutex dyn_lock;
+  /* if we are shutting down or not */
+  gint shutdown;
+  gboolean async_pending;       /* async-start has been emitted */
+
+  GMutex elements_lock;
+  guint32 elements_cookie;
+  GList *elements;              /* factories we can use for selecting elements */
+
+  gboolean have_selector;       /* set to FALSE when we fail to create an
+                                 * input-selector, so that we only post a
+                                 * warning once */
+
+  gboolean video_pending_flush_finish;  /* whether we are pending to send a custom
+                                         * custom-video-flush-finish event
+                                         * on pad activation */
+  gboolean audio_pending_flush_finish;  /* whether we are pending to send a custom
+                                         * custom-audio-flush-finish event
+                                         * on pad activation */
+  gboolean text_pending_flush_finish;   /* whether we are pending to send a custom
+                                         * custom-subtitle-flush-finish event
+                                         * on pad activation */
+
+  GstElement *audio_sink;       /* configured audio sink, or NULL      */
+  GstElement *video_sink;       /* configured video sink, or NULL      */
+  GstElement *text_sink;        /* configured text sink, or NULL       */
+
+  GstElement *audio_stream_combiner;    /* configured audio stream combiner, or NULL */
+  GstElement *video_stream_combiner;    /* configured video stream combiner, or NULL */
+  GstElement *text_stream_combiner;     /* configured text stream combiner, or NULL */
+
+  GSequence *aelements;         /* a list of GstAVElements for audio stream */
+  GSequence *velements;         /* a list of GstAVElements for video stream */
+
+  struct
+  {
+    gboolean valid;
+    GstFormat format;
+    gint64 duration;
+  } duration[5];                /* cached durations */
+
+  guint64 ring_buffer_max_size; /* 0 means disabled */
+
+  GList *contexts;
+
+  /* Active stream collection */
+  GstStreamCollection *collection;
+  guint collection_notify_id;
+};
+
+struct _GstPlayBin3Class
+{
+  GstPipelineClass parent_class;
+
+  /* notify app that the current uri finished decoding and it is possible to
+   * queue a new one for gapless playback */
+  void (*about_to_finish) (GstPlayBin3 * playbin);
+
+  /* notify app that number of audio/video/text streams changed */
+  void (*video_changed) (GstPlayBin3 * playbin);
+  void (*audio_changed) (GstPlayBin3 * playbin);
+  void (*text_changed) (GstPlayBin3 * playbin);
+
+  /* notify app that the tags of audio/video/text streams changed */
+  void (*video_tags_changed) (GstPlayBin3 * playbin, gint stream);
+  void (*audio_tags_changed) (GstPlayBin3 * playbin, gint stream);
+  void (*text_tags_changed) (GstPlayBin3 * playbin, gint stream);
+
+  /* get audio/video/text tags for a stream */
+  GstTagList *(*get_video_tags) (GstPlayBin3 * playbin, gint stream);
+  GstTagList *(*get_audio_tags) (GstPlayBin3 * playbin, gint stream);
+  GstTagList *(*get_text_tags) (GstPlayBin3 * playbin, gint stream);
+
+  /* get the last video sample and convert it to the given caps */
+  GstSample *(*convert_sample) (GstPlayBin3 * playbin, GstCaps * caps);
+
+  /* get audio/video/text pad for a stream */
+  GstPad *(*get_video_pad) (GstPlayBin3 * playbin, gint stream);
+  GstPad *(*get_audio_pad) (GstPlayBin3 * playbin, gint stream);
+  GstPad *(*get_text_pad) (GstPlayBin3 * playbin, gint stream);
+};
+
+/* props */
+#define DEFAULT_URI               NULL
+#define DEFAULT_SUBURI            NULL
+#define DEFAULT_SOURCE            NULL
+#define DEFAULT_FLAGS             GST_PLAY_FLAG_AUDIO | GST_PLAY_FLAG_VIDEO | GST_PLAY_FLAG_TEXT | \
+                                  GST_PLAY_FLAG_SOFT_VOLUME | GST_PLAY_FLAG_DEINTERLACE | \
+                                  GST_PLAY_FLAG_SOFT_COLORBALANCE
+#define DEFAULT_N_VIDEO           0
+#define DEFAULT_CURRENT_VIDEO     -1
+#define DEFAULT_N_AUDIO           0
+#define DEFAULT_CURRENT_AUDIO     -1
+#define DEFAULT_N_TEXT            0
+#define DEFAULT_CURRENT_TEXT      -1
+#define DEFAULT_AUTO_SELECT_STREAMS TRUE
+#define DEFAULT_SUBTITLE_ENCODING NULL
+#define DEFAULT_AUDIO_SINK        NULL
+#define DEFAULT_VIDEO_SINK        NULL
+#define DEFAULT_VIS_PLUGIN        NULL
+#define DEFAULT_TEXT_SINK         NULL
+#define DEFAULT_VOLUME            1.0
+#define DEFAULT_MUTE              FALSE
+#define DEFAULT_FRAME             NULL
+#define DEFAULT_FONT_DESC         NULL
+#define DEFAULT_CONNECTION_SPEED  0
+#define DEFAULT_BUFFER_DURATION   -1
+#define DEFAULT_BUFFER_SIZE       -1
+#define DEFAULT_RING_BUFFER_MAX_SIZE 0
+
+enum
+{
+  PROP_0,
+  PROP_URI,
+  PROP_CURRENT_URI,
+  PROP_SUBURI,
+  PROP_CURRENT_SUBURI,
+  PROP_SOURCE,
+  PROP_FLAGS,
+  PROP_N_VIDEO,
+  PROP_CURRENT_VIDEO,
+  PROP_N_AUDIO,
+  PROP_CURRENT_AUDIO,
+  PROP_N_TEXT,
+  PROP_CURRENT_TEXT,
+  PROP_AUTO_SELECT_STREAMS,
+  PROP_SUBTITLE_ENCODING,
+  PROP_AUDIO_SINK,
+  PROP_VIDEO_SINK,
+  PROP_VIS_PLUGIN,
+  PROP_TEXT_SINK,
+  PROP_VIDEO_STREAM_COMBINER,
+  PROP_AUDIO_STREAM_COMBINER,
+  PROP_TEXT_STREAM_COMBINER,
+  PROP_VOLUME,
+  PROP_MUTE,
+  PROP_SAMPLE,
+  PROP_FONT_DESC,
+  PROP_CONNECTION_SPEED,
+  PROP_BUFFER_SIZE,
+  PROP_BUFFER_DURATION,
+  PROP_AV_OFFSET,
+  PROP_RING_BUFFER_MAX_SIZE,
+  PROP_FORCE_ASPECT_RATIO,
+  PROP_AUDIO_FILTER,
+  PROP_VIDEO_FILTER,
+  PROP_MULTIVIEW_MODE,
+  PROP_MULTIVIEW_FLAGS
+};
+
+/* signals */
+enum
+{
+  SIGNAL_ABOUT_TO_FINISH,
+  SIGNAL_CONVERT_SAMPLE,
+  SIGNAL_VIDEO_CHANGED,
+  SIGNAL_AUDIO_CHANGED,
+  SIGNAL_TEXT_CHANGED,
+  SIGNAL_VIDEO_TAGS_CHANGED,
+  SIGNAL_AUDIO_TAGS_CHANGED,
+  SIGNAL_TEXT_TAGS_CHANGED,
+  SIGNAL_GET_VIDEO_TAGS,
+  SIGNAL_GET_AUDIO_TAGS,
+  SIGNAL_GET_TEXT_TAGS,
+  SIGNAL_GET_VIDEO_PAD,
+  SIGNAL_GET_AUDIO_PAD,
+  SIGNAL_GET_TEXT_PAD,
+  SIGNAL_SOURCE_SETUP,
+  LAST_SIGNAL
+};
+
+static GstStaticCaps raw_audio_caps = GST_STATIC_CAPS ("audio/x-raw(ANY)");
+static GstStaticCaps raw_video_caps = GST_STATIC_CAPS ("video/x-raw(ANY)");
+
+static void gst_play_bin3_class_init (GstPlayBin3Class * klass);
+static void gst_play_bin3_init (GstPlayBin3 * playbin);
+static void gst_play_bin3_finalize (GObject * object);
+
+static void gst_play_bin3_set_property (GObject * object, guint prop_id,
+    const GValue * value, GParamSpec * spec);
+static void gst_play_bin3_get_property (GObject * object, guint prop_id,
+    GValue * value, GParamSpec * spec);
+
+static GstStateChangeReturn gst_play_bin3_change_state (GstElement * element,
+    GstStateChange transition);
+
+static void gst_play_bin3_handle_message (GstBin * bin, GstMessage * message);
+static gboolean gst_play_bin3_query (GstElement * element, GstQuery * query);
+static void gst_play_bin3_set_context (GstElement * element,
+    GstContext * context);
+static gboolean gst_play_bin3_send_event (GstElement * element,
+    GstEvent * event);
+
+static GstTagList *gst_play_bin3_get_video_tags (GstPlayBin3 * playbin,
+    gint stream);
+static GstTagList *gst_play_bin3_get_audio_tags (GstPlayBin3 * playbin,
+    gint stream);
+static GstTagList *gst_play_bin3_get_text_tags (GstPlayBin3 * playbin,
+    gint stream);
+
+static GstSample *gst_play_bin3_convert_sample (GstPlayBin3 * playbin,
+    GstCaps * caps);
+
+static GstPad *gst_play_bin3_get_video_pad (GstPlayBin3 * playbin, gint stream);
+static GstPad *gst_play_bin3_get_audio_pad (GstPlayBin3 * playbin, gint stream);
+static GstPad *gst_play_bin3_get_text_pad (GstPlayBin3 * playbin, gint stream);
+
+static GstStateChangeReturn setup_next_source (GstPlayBin3 * playbin,
+    GstState target);
+
+static void no_more_pads_cb (GstElement * decodebin, GstPlayBin3 * playbin);
+static void pad_removed_cb (GstElement * decodebin, GstPad * pad,
+    GstPlayBin3 * playbin);
+
+static gint select_stream_cb (GstElement * decodebin,
+    GstStreamCollection * collection, GstStream * stream,
+    GstPlayBin3 * playbin);
+
+static void do_stream_selection (GstPlayBin3 * playbin);
+static void notify_tags_cb (GstStreamCollection * collection,
+    GstStream * stream, GParamSpec * pspec, GstPlayBin3 * playbin);
+static void notify_tags_for_stream (GstPlayBin3 * playbin,
+    GstStreamCollection * collection, GstStream * stream);
+
+static GstElementClass *parent_class;
+
+static guint gst_play_bin3_signals[LAST_SIGNAL] = { 0 };
+
+#define REMOVE_SIGNAL(obj,id)            \
+if (id) {                                \
+  g_signal_handler_disconnect (obj, id); \
+  id = 0;                                \
+}
+
+static void gst_play_bin3_overlay_init (gpointer g_iface,
+    gpointer g_iface_data);
+static void gst_play_bin3_navigation_init (gpointer g_iface,
+    gpointer g_iface_data);
+static void gst_play_bin3_colorbalance_init (gpointer g_iface,
+    gpointer g_iface_data);
+
+static GType
+gst_play_bin3_get_type (void)
+{
+  static GType gst_play_bin3_type = 0;
+
+  if (!gst_play_bin3_type) {
+    static const GTypeInfo gst_play_bin3_info = {
+      sizeof (GstPlayBin3Class),
+      NULL,
+      NULL,
+      (GClassInitFunc) gst_play_bin3_class_init,
+      NULL,
+      NULL,
+      sizeof (GstPlayBin3),
+      0,
+      (GInstanceInitFunc) gst_play_bin3_init,
+      NULL
+    };
+    static const GInterfaceInfo svol_info = {
+      NULL, NULL, NULL
+    };
+    static const GInterfaceInfo ov_info = {
+      gst_play_bin3_overlay_init,
+      NULL, NULL
+    };
+    static const GInterfaceInfo nav_info = {
+      gst_play_bin3_navigation_init,
+      NULL, NULL
+    };
+    static const GInterfaceInfo col_info = {
+      gst_play_bin3_colorbalance_init,
+      NULL, NULL
+    };
+
+    gst_play_bin3_type = g_type_register_static (GST_TYPE_PIPELINE,
+        "GstPlayBin3", &gst_play_bin3_info, 0);
+
+    g_type_add_interface_static (gst_play_bin3_type, GST_TYPE_STREAM_VOLUME,
+        &svol_info);
+    g_type_add_interface_static (gst_play_bin3_type, GST_TYPE_VIDEO_OVERLAY,
+        &ov_info);
+    g_type_add_interface_static (gst_play_bin3_type, GST_TYPE_NAVIGATION,
+        &nav_info);
+    g_type_add_interface_static (gst_play_bin3_type, GST_TYPE_COLOR_BALANCE,
+        &col_info);
+  }
+
+  return gst_play_bin3_type;
+}
+
+static void
+gst_play_bin3_class_init (GstPlayBin3Class * klass)
+{
+  GObjectClass *gobject_klass;
+  GstElementClass *gstelement_klass;
+  GstBinClass *gstbin_klass;
+
+  gobject_klass = (GObjectClass *) klass;
+  gstelement_klass = (GstElementClass *) klass;
+  gstbin_klass = (GstBinClass *) klass;
+
+  parent_class = g_type_class_peek_parent (klass);
+
+  gobject_klass->set_property = gst_play_bin3_set_property;
+  gobject_klass->get_property = gst_play_bin3_get_property;
+
+  gobject_klass->finalize = gst_play_bin3_finalize;
+
+  /**
+   * GstPlayBin3:uri
+   *
+   * Set the next URI that playbin will play. This property can be set from the
+   * about-to-finish signal to queue the next media file.
+   */
+  g_object_class_install_property (gobject_klass, PROP_URI,
+      g_param_spec_string ("uri", "URI", "URI of the media to play",
+          NULL, G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS));
+
+   /**
+   * GstPlayBin3:current-uri
+   *
+   * The currently playing uri.
+   */
+  g_object_class_install_property (gobject_klass, PROP_CURRENT_URI,
+      g_param_spec_string ("current-uri", "Current URI",
+          "The currently playing URI", NULL,
+          G_PARAM_READABLE | G_PARAM_STATIC_STRINGS));
+
+  /**
+   * GstPlayBin3:suburi
+   *
+   * Set the next subtitle URI that playbin will play. This property can be
+   * set from the about-to-finish signal to queue the next subtitle media file.
+   */
+  g_object_class_install_property (gobject_klass, PROP_SUBURI,
+      g_param_spec_string ("suburi", ".sub-URI", "Optional URI of a subtitle",
+          NULL, G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS));
+
+  /**
+   * GstPlayBin3:current-suburi
+   *
+   * The currently playing subtitle uri.
+   */
+  g_object_class_install_property (gobject_klass, PROP_CURRENT_SUBURI,
+      g_param_spec_string ("current-suburi", "Current .sub-URI",
+          "The currently playing URI of a subtitle",
+          NULL, G_PARAM_READABLE | G_PARAM_STATIC_STRINGS));
+
+  g_object_class_install_property (gobject_klass, PROP_SOURCE,
+      g_param_spec_object ("source", "Source", "Source element",
+          GST_TYPE_ELEMENT, G_PARAM_READABLE | G_PARAM_STATIC_STRINGS));
+
+  /**
+   * GstPlayBin3:flags
+   *
+   * Control the behaviour of playbin.
+   */
+  g_object_class_install_property (gobject_klass, PROP_FLAGS,
+      g_param_spec_flags ("flags", "Flags", "Flags to control behaviour",
+          GST_TYPE_PLAY_FLAGS, DEFAULT_FLAGS,
+          G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS));
+
+  /**
+   * GstPlayBin3:n-video
+   *
+   * Get the total number of available video streams.
+   */
+  g_object_class_install_property (gobject_klass, PROP_N_VIDEO,
+      g_param_spec_int ("n-video", "Number Video",
+          "Total number of video streams", 0, G_MAXINT, 0,
+          G_PARAM_READABLE | G_PARAM_STATIC_STRINGS));
+  /**
+   * GstPlayBin3:current-video
+   *
+   * Get or set the currently playing video stream. By default the first video
+   * stream with data is played.
+   */
+  g_object_class_install_property (gobject_klass, PROP_CURRENT_VIDEO,
+      g_param_spec_int ("current-video", "Current Video",
+          "Currently playing video stream (-1 = auto)",
+          -1, G_MAXINT, -1, G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS));
+  /**
+   * GstPlayBin3:n-audio
+   *
+   * Get the total number of available audio streams.
+   */
+  g_object_class_install_property (gobject_klass, PROP_N_AUDIO,
+      g_param_spec_int ("n-audio", "Number Audio",
+          "Total number of audio streams", 0, G_MAXINT, 0,
+          G_PARAM_READABLE | G_PARAM_STATIC_STRINGS));
+  /**
+   * GstPlayBin3:current-audio
+   *
+   * Get or set the currently playing audio stream. By default the first audio
+   * stream with data is played.
+   */
+  g_object_class_install_property (gobject_klass, PROP_CURRENT_AUDIO,
+      g_param_spec_int ("current-audio", "Current audio",
+          "Currently playing audio stream (-1 = auto)",
+          -1, G_MAXINT, -1, G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS));
+  /**
+   * GstPlayBin3:n-text
+   *
+   * Get the total number of available subtitle streams.
+   */
+  g_object_class_install_property (gobject_klass, PROP_N_TEXT,
+      g_param_spec_int ("n-text", "Number Text",
+          "Total number of text streams", 0, G_MAXINT, 0,
+          G_PARAM_READABLE | G_PARAM_STATIC_STRINGS));
+  /**
+   * GstPlayBin3:current-text:
+   *
+   * Get or set the currently playing subtitle stream. By default the first
+   * subtitle stream with data is played.
+   */
+  g_object_class_install_property (gobject_klass, PROP_CURRENT_TEXT,
+      g_param_spec_int ("current-text", "Current Text",
+          "Currently playing text stream (-1 = auto)",
+          -1, G_MAXINT, -1, G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS));
+
+  /**
+   * GstPlayBin3::auto-select-streams:
+   *
+   * If TRUE the playbin will respond to stream-collection messages
+   * by sending a SELECT_STREAMS event to decodebin. Set to FALSE
+   * if the application will manage stream selection. This property
+   * will automatically be set to FALSE if playbin receives a select-streams
+   * event from the application, but setting it explicitly avoids any
+   * races where playbin mind send a select-streams event before the
+   * application.
+   */
+  g_object_class_install_property (gobject_klass, PROP_AUTO_SELECT_STREAMS,
+      g_param_spec_boolean ("auto-select-streams", "Automatic Select-Streams",
+          "Whether playbin should respond to stream-collection messags with select-streams events",
+          DEFAULT_AUTO_SELECT_STREAMS,
+          G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS));
+
+  g_object_class_install_property (gobject_klass, PROP_SUBTITLE_ENCODING,
+      g_param_spec_string ("subtitle-encoding", "subtitle encoding",
+          "Encoding to assume if input subtitles are not in UTF-8 encoding. "
+          "If not set, the GST_SUBTITLE_ENCODING environment variable will "
+          "be checked for an encoding to use. If that is not set either, "
+          "ISO-8859-15 will be assumed.", NULL,
+          G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS));
+
+  g_object_class_install_property (gobject_klass, PROP_VIDEO_FILTER,
+      g_param_spec_object ("video-filter", "Video filter",
+          "the video filter(s) to apply, if possible",
+          GST_TYPE_ELEMENT, G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS));
+  g_object_class_install_property (gobject_klass, PROP_AUDIO_FILTER,
+      g_param_spec_object ("audio-filter", "Audio filter",
+          "the audio filter(s) to apply, if possible",
+          GST_TYPE_ELEMENT, G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS));
+  g_object_class_install_property (gobject_klass, PROP_VIDEO_SINK,
+      g_param_spec_object ("video-sink", "Video Sink",
+          "the video output element to use (NULL = default sink)",
+          GST_TYPE_ELEMENT, G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS));
+  g_object_class_install_property (gobject_klass, PROP_AUDIO_SINK,
+      g_param_spec_object ("audio-sink", "Audio Sink",
+          "the audio output element to use (NULL = default sink)",
+          GST_TYPE_ELEMENT, G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS));
+  g_object_class_install_property (gobject_klass, PROP_VIS_PLUGIN,
+      g_param_spec_object ("vis-plugin", "Vis plugin",
+          "the visualization element to use (NULL = default)",
+          GST_TYPE_ELEMENT, G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS));
+  g_object_class_install_property (gobject_klass, PROP_TEXT_SINK,
+      g_param_spec_object ("text-sink", "Text plugin",
+          "the text output element to use (NULL = default subtitleoverlay)",
+          GST_TYPE_ELEMENT, G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS));
+  /**
+   * GstPlayBin3:video-stream-combiner
+   *
+   * Get or set the current video stream combiner. By default, an input-selector
+   * is created and deleted as-needed.
+   */
+  g_object_class_install_property (gobject_klass, PROP_VIDEO_STREAM_COMBINER,
+      g_param_spec_object ("video-stream-combiner", "Video stream combiner",
+          "Current video stream combiner (NULL = input-selector)",
+          GST_TYPE_ELEMENT, G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS));
+  /**
+   * GstPlayBin3:audio-stream-combiner
+   *
+   * Get or set the current audio stream combiner. By default, an input-selector
+   * is created and deleted as-needed.
+   */
+  g_object_class_install_property (gobject_klass, PROP_AUDIO_STREAM_COMBINER,
+      g_param_spec_object ("audio-stream-combiner", "Audio stream combiner",
+          "Current audio stream combiner (NULL = input-selector)",
+          GST_TYPE_ELEMENT, G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS));
+  /**
+   * GstPlayBin3:text-stream-combiner
+   *
+   * Get or set the current text stream combiner. By default, an input-selector
+   * is created and deleted as-needed.
+   */
+  g_object_class_install_property (gobject_klass, PROP_TEXT_STREAM_COMBINER,
+      g_param_spec_object ("text-stream-combiner", "Text stream combiner",
+          "Current text stream combiner (NULL = input-selector)",
+          GST_TYPE_ELEMENT, G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS));
+
+  /**
+   * GstPlayBin3:volume:
+   *
+   * Get or set the current audio stream volume. 1.0 means 100%,
+   * 0.0 means mute. This uses a linear volume scale.
+   *
+   */
+  g_object_class_install_property (gobject_klass, PROP_VOLUME,
+      g_param_spec_double ("volume", "Volume", "The audio volume, 1.0=100%",
+          0.0, VOLUME_MAX_DOUBLE, 1.0,
+          G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS));
+  g_object_class_install_property (gobject_klass, PROP_MUTE,
+      g_param_spec_boolean ("mute", "Mute",
+          "Mute the audio channel without changing the volume", FALSE,
+          G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS));
+
+  /**
+   * GstPlayBin3:sample:
+   * @playbin: a #GstPlayBin3
+   *
+   * Get the currently rendered or prerolled sample in the video sink.
+   * The #GstCaps in the sample will describe the format of the buffer.
+   */
+  g_object_class_install_property (gobject_klass, PROP_SAMPLE,
+      g_param_spec_boxed ("sample", "Sample",
+          "The last sample (NULL = no video available)",
+          GST_TYPE_SAMPLE, G_PARAM_READABLE | G_PARAM_STATIC_STRINGS));
+
+  g_object_class_install_property (gobject_klass, PROP_FONT_DESC,
+      g_param_spec_string ("subtitle-font-desc",
+          "Subtitle font description",
+          "Pango font description of font "
+          "to be used for subtitle rendering", NULL,
+          G_PARAM_WRITABLE | G_PARAM_STATIC_STRINGS));
+
+  g_object_class_install_property (gobject_klass, PROP_CONNECTION_SPEED,
+      g_param_spec_uint64 ("connection-speed", "Connection Speed",
+          "Network connection speed in kbps (0 = unknown)",
+          0, G_MAXUINT64 / 1000, DEFAULT_CONNECTION_SPEED,
+          G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS));
+
+  g_object_class_install_property (gobject_klass, PROP_BUFFER_SIZE,
+      g_param_spec_int ("buffer-size", "Buffer size (bytes)",
+          "Buffer size when buffering network streams",
+          -1, G_MAXINT, DEFAULT_BUFFER_SIZE,
+          G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS));
+  g_object_class_install_property (gobject_klass, PROP_BUFFER_DURATION,
+      g_param_spec_int64 ("buffer-duration", "Buffer duration (ns)",
+          "Buffer duration when buffering network streams",
+          -1, G_MAXINT64, DEFAULT_BUFFER_DURATION,
+          G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS));
+  /**
+   * GstPlayBin3:av-offset:
+   *
+   * Control the synchronisation offset between the audio and video streams.
+   * Positive values make the audio ahead of the video and negative values make
+   * the audio go behind the video.
+   */
+  g_object_class_install_property (gobject_klass, PROP_AV_OFFSET,
+      g_param_spec_int64 ("av-offset", "AV Offset",
+          "The synchronisation offset between audio and video in nanoseconds",
+          G_MININT64, G_MAXINT64, 0,
+          G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS));
+
+  /**
+   * GstPlayBin3:ring-buffer-max-size
+   *
+   * The maximum size of the ring buffer in bytes. If set to 0, the ring
+   * buffer is disabled. Default 0.
+   */
+  g_object_class_install_property (gobject_klass, PROP_RING_BUFFER_MAX_SIZE,
+      g_param_spec_uint64 ("ring-buffer-max-size",
+          "Max. ring buffer size (bytes)",
+          "Max. amount of data in the ring buffer (bytes, 0 = ring buffer disabled)",
+          0, G_MAXUINT, DEFAULT_RING_BUFFER_MAX_SIZE,
+          G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS));
+
+  /**
+   * GstPlayBin3::force-aspect-ratio:
+   *
+   * Requests the video sink to enforce the video display aspect ratio.
+   */
+  g_object_class_install_property (gobject_klass, PROP_FORCE_ASPECT_RATIO,
+      g_param_spec_boolean ("force-aspect-ratio", "Force Aspect Ratio",
+          "When enabled, scaling will respect original aspect ratio", TRUE,
+          G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS));
+
+  /**
+   * GstPlayBin3::video-multiview-mode:
+   *
+   * Set the stereoscopic mode for video streams that don't contain
+   * any information in the stream, so they can be correctly played
+   * as 3D streams. If a video already has multiview information
+   * encoded, this property can override other modes in the set,
+   * but cannot be used to re-interpret MVC or mixed-mono streams.
+   *
+   * See Also: The #GstPlayBin3::video-multiview-flags property
+   *
+   */
+  g_object_class_install_property (gobject_klass, PROP_MULTIVIEW_MODE,
+      g_param_spec_enum ("video-multiview-mode",
+          "Multiview Mode Override",
+          "Re-interpret a video stream as one of several frame-packed stereoscopic modes.",
+          GST_TYPE_VIDEO_MULTIVIEW_FRAME_PACKING,
+          GST_VIDEO_MULTIVIEW_FRAME_PACKING_NONE,
+          G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS));
+
+  /**
+   * GstPlayBin3::video-multiview-flags:
+   *
+   * When overriding the multiview mode of an input stream,
+   * these flags modify details of the view layout.
+   *
+   * See Also: The #GstPlayBin3::video-multiview-mode property
+   */
+  g_object_class_install_property (gobject_klass, PROP_MULTIVIEW_FLAGS,
+      g_param_spec_flags ("video-multiview-flags",
+          "Multiview Flags Override",
+          "Override details of the multiview frame layout",
+          GST_TYPE_VIDEO_MULTIVIEW_FLAGS, GST_VIDEO_MULTIVIEW_FLAGS_NONE,
+          G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS));
+
+  /**
+   * GstPlayBin3::about-to-finish
+   * @playbin: a #GstPlayBin3
+   *
+   * This signal is emitted when the current uri is about to finish. You can
+   * set the uri and suburi to make sure that playback continues.
+   *
+   * This signal is emitted from the context of a GStreamer streaming thread.
+   */
+  gst_play_bin3_signals[SIGNAL_ABOUT_TO_FINISH] =
+      g_signal_new ("about-to-finish", G_TYPE_FROM_CLASS (klass),
+      G_SIGNAL_RUN_LAST,
+      G_STRUCT_OFFSET (GstPlayBin3Class, about_to_finish), NULL, NULL,
+      g_cclosure_marshal_generic, G_TYPE_NONE, 0, G_TYPE_NONE);
+
+  /**
+   * GstPlayBin3::video-changed
+   * @playbin: a #GstPlayBin3
+   *
+   * This signal is emitted whenever the number or order of the video
+   * streams has changed. The application will most likely want to select
+   * a new video stream.
+   *
+   * This signal is usually emitted from the context of a GStreamer streaming
+   * thread. You can use gst_message_new_application() and
+   * gst_element_post_message() to notify your application's main thread.
+   */
+  /* FIXME 0.11: turn video-changed signal into message? */
+  gst_play_bin3_signals[SIGNAL_VIDEO_CHANGED] =
+      g_signal_new ("video-changed", G_TYPE_FROM_CLASS (klass),
+      G_SIGNAL_RUN_LAST,
+      G_STRUCT_OFFSET (GstPlayBin3Class, video_changed), NULL, NULL,
+      g_cclosure_marshal_generic, G_TYPE_NONE, 0, G_TYPE_NONE);
+  /**
+   * GstPlayBin3::audio-changed
+   * @playbin: a #GstPlayBin3
+   *
+   * This signal is emitted whenever the number or order of the audio
+   * streams has changed. The application will most likely want to select
+   * a new audio stream.
+   *
+   * This signal may be emitted from the context of a GStreamer streaming thread.
+   * You can use gst_message_new_application() and gst_element_post_message()
+   * to notify your application's main thread.
+   */
+  /* FIXME 0.11: turn audio-changed signal into message? */
+  gst_play_bin3_signals[SIGNAL_AUDIO_CHANGED] =
+      g_signal_new ("audio-changed", G_TYPE_FROM_CLASS (klass),
+      G_SIGNAL_RUN_LAST,
+      G_STRUCT_OFFSET (GstPlayBin3Class, audio_changed), NULL, NULL,
+      g_cclosure_marshal_generic, G_TYPE_NONE, 0, G_TYPE_NONE);
+  /**
+   * GstPlayBin3::text-changed
+   * @playbin: a #GstPlayBin3
+   *
+   * This signal is emitted whenever the number or order of the text
+   * streams has changed. The application will most likely want to select
+   * a new text stream.
+   *
+   * This signal may be emitted from the context of a GStreamer streaming thread.
+   * You can use gst_message_new_application() and gst_element_post_message()
+   * to notify your application's main thread.
+   */
+  /* FIXME 0.11: turn text-changed signal into message? */
+  gst_play_bin3_signals[SIGNAL_TEXT_CHANGED] =
+      g_signal_new ("text-changed", G_TYPE_FROM_CLASS (klass),
+      G_SIGNAL_RUN_LAST,
+      G_STRUCT_OFFSET (GstPlayBin3Class, text_changed), NULL, NULL,
+      g_cclosure_marshal_generic, G_TYPE_NONE, 0, G_TYPE_NONE);
+
+  /**
+   * GstPlayBin3::video-tags-changed
+   * @playbin: a #GstPlayBin3
+   * @stream: stream index with changed tags
+   *
+   * This signal is emitted whenever the tags of a video stream have changed.
+   * The application will most likely want to get the new tags.
+   *
+   * This signal may be emitted from the context of a GStreamer streaming thread.
+   * You can use gst_message_new_application() and gst_element_post_message()
+   * to notify your application's main thread.
+   */
+  gst_play_bin3_signals[SIGNAL_VIDEO_TAGS_CHANGED] =
+      g_signal_new ("video-tags-changed", G_TYPE_FROM_CLASS (klass),
+      G_SIGNAL_RUN_LAST,
+      G_STRUCT_OFFSET (GstPlayBin3Class, video_tags_changed), NULL, NULL,
+      g_cclosure_marshal_generic, G_TYPE_NONE, 1, G_TYPE_INT);
+
+  /**
+   * GstPlayBin3::audio-tags-changed
+   * @playbin: a #GstPlayBin3
+   * @stream: stream index with changed tags
+   *
+   * This signal is emitted whenever the tags of an audio stream have changed.
+   * The application will most likely want to get the new tags.
+   *
+   * This signal may be emitted from the context of a GStreamer streaming thread.
+   * You can use gst_message_new_application() and gst_element_post_message()
+   * to notify your application's main thread.
+   */
+  gst_play_bin3_signals[SIGNAL_AUDIO_TAGS_CHANGED] =
+      g_signal_new ("audio-tags-changed", G_TYPE_FROM_CLASS (klass),
+      G_SIGNAL_RUN_LAST,
+      G_STRUCT_OFFSET (GstPlayBin3Class, audio_tags_changed), NULL, NULL,
+      g_cclosure_marshal_generic, G_TYPE_NONE, 1, G_TYPE_INT);
+
+  /**
+   * GstPlayBin3::text-tags-changed
+   * @playbin: a #GstPlayBin3
+   * @stream: stream index with changed tags
+   *
+   * This signal is emitted whenever the tags of a text stream have changed.
+   * The application will most likely want to get the new tags.
+   *
+   * This signal may be emitted from the context of a GStreamer streaming thread.
+   * You can use gst_message_new_application() and gst_element_post_message()
+   * to notify your application's main thread.
+   */
+  gst_play_bin3_signals[SIGNAL_TEXT_TAGS_CHANGED] =
+      g_signal_new ("text-tags-changed", G_TYPE_FROM_CLASS (klass),
+      G_SIGNAL_RUN_LAST,
+      G_STRUCT_OFFSET (GstPlayBin3Class, text_tags_changed), NULL, NULL,
+      g_cclosure_marshal_generic, G_TYPE_NONE, 1, G_TYPE_INT);
+
+  /**
+   * GstPlayBin3::source-setup:
+   * @playbin: a #GstPlayBin3
+   * @source: source element
+   *
+   * This signal is emitted after the source element has been created, so
+   * it can be configured by setting additional properties (e.g. set a
+   * proxy server for an http source, or set the device and read speed for
+   * an audio cd source). This is functionally equivalent to connecting to
+   * the notify::source signal, but more convenient.
+   *
+   * This signal is usually emitted from the context of a GStreamer streaming
+   * thread.
+   */
+  gst_play_bin3_signals[SIGNAL_SOURCE_SETUP] =
+      g_signal_new ("source-setup", G_TYPE_FROM_CLASS (klass),
+      G_SIGNAL_RUN_LAST, 0, NULL, NULL,
+      g_cclosure_marshal_generic, G_TYPE_NONE, 1, GST_TYPE_ELEMENT);
+
+  /**
+   * GstPlayBin3::get-video-tags
+   * @playbin: a #GstPlayBin3
+   * @stream: a video stream number
+   *
+   * Action signal to retrieve the tags of a specific video stream number.
+   * This information can be used to select a stream.
+   *
+   * Returns: a GstTagList with tags or NULL when the stream number does not
+   * exist.
+   */
+  gst_play_bin3_signals[SIGNAL_GET_VIDEO_TAGS] =
+      g_signal_new ("get-video-tags", G_TYPE_FROM_CLASS (klass),
+      G_SIGNAL_RUN_LAST | G_SIGNAL_ACTION,
+      G_STRUCT_OFFSET (GstPlayBin3Class, get_video_tags), NULL, NULL,
+      g_cclosure_marshal_generic, GST_TYPE_TAG_LIST, 1, G_TYPE_INT);
+  /**
+   * GstPlayBin3::get-audio-tags
+   * @playbin: a #GstPlayBin3
+   * @stream: an audio stream number
+   *
+   * Action signal to retrieve the tags of a specific audio stream number.
+   * This information can be used to select a stream.
+   *
+   * Returns: a GstTagList with tags or NULL when the stream number does not
+   * exist.
+   */
+  gst_play_bin3_signals[SIGNAL_GET_AUDIO_TAGS] =
+      g_signal_new ("get-audio-tags", G_TYPE_FROM_CLASS (klass),
+      G_SIGNAL_RUN_LAST | G_SIGNAL_ACTION,
+      G_STRUCT_OFFSET (GstPlayBin3Class, get_audio_tags), NULL, NULL,
+      g_cclosure_marshal_generic, GST_TYPE_TAG_LIST, 1, G_TYPE_INT);
+  /**
+   * GstPlayBin3::get-text-tags
+   * @playbin: a #GstPlayBin3
+   * @stream: a text stream number
+   *
+   * Action signal to retrieve the tags of a specific text stream number.
+   * This information can be used to select a stream.
+   *
+   * Returns: a GstTagList with tags or NULL when the stream number does not
+   * exist.
+   */
+  gst_play_bin3_signals[SIGNAL_GET_TEXT_TAGS] =
+      g_signal_new ("get-text-tags", G_TYPE_FROM_CLASS (klass),
+      G_SIGNAL_RUN_LAST | G_SIGNAL_ACTION,
+      G_STRUCT_OFFSET (GstPlayBin3Class, get_text_tags), NULL, NULL,
+      g_cclosure_marshal_generic, GST_TYPE_TAG_LIST, 1, G_TYPE_INT);
+  /**
+   * GstPlayBin3::convert-sample
+   * @playbin: a #GstPlayBin3
+   * @caps: the target format of the frame
+   *
+   * Action signal to retrieve the currently playing video frame in the format
+   * specified by @caps.
+   * If @caps is %NULL, no conversion will be performed and this function is
+   * equivalent to the #GstPlayBin3::frame property.
+   *
+   * Returns: a #GstSample of the current video frame converted to #caps.
+   * The caps on the sample will describe the final layout of the buffer data.
+   * %NULL is returned when no current buffer can be retrieved or when the
+   * conversion failed.
+   */
+  gst_play_bin3_signals[SIGNAL_CONVERT_SAMPLE] =
+      g_signal_new ("convert-sample", G_TYPE_FROM_CLASS (klass),
+      G_SIGNAL_RUN_LAST | G_SIGNAL_ACTION,
+      G_STRUCT_OFFSET (GstPlayBin3Class, convert_sample), NULL, NULL,
+      g_cclosure_marshal_generic, GST_TYPE_SAMPLE, 1, GST_TYPE_CAPS);
+
+  /**
+   * GstPlayBin3::get-video-pad
+   * @playbin: a #GstPlayBin3
+   * @stream: a video stream number
+   *
+   * Action signal to retrieve the stream-combiner sinkpad for a specific
+   * video stream.
+   * This pad can be used for notifications of caps changes, stream-specific
+   * queries, etc.
+   *
+   * Returns: a #GstPad, or NULL when the stream number does not exist.
+   */
+  gst_play_bin3_signals[SIGNAL_GET_VIDEO_PAD] =
+      g_signal_new ("get-video-pad", G_TYPE_FROM_CLASS (klass),
+      G_SIGNAL_RUN_LAST | G_SIGNAL_ACTION,
+      G_STRUCT_OFFSET (GstPlayBin3Class, get_video_pad), NULL, NULL,
+      g_cclosure_marshal_generic, GST_TYPE_PAD, 1, G_TYPE_INT);
+  /**
+   * GstPlayBin3::get-audio-pad
+   * @playbin: a #GstPlayBin3
+   * @stream: an audio stream number
+   *
+   * Action signal to retrieve the stream-combiner sinkpad for a specific
+   * audio stream.
+   * This pad can be used for notifications of caps changes, stream-specific
+   * queries, etc.
+   *
+   * Returns: a #GstPad, or NULL when the stream number does not exist.
+   */
+  gst_play_bin3_signals[SIGNAL_GET_AUDIO_PAD] =
+      g_signal_new ("get-audio-pad", G_TYPE_FROM_CLASS (klass),
+      G_SIGNAL_RUN_LAST | G_SIGNAL_ACTION,
+      G_STRUCT_OFFSET (GstPlayBin3Class, get_audio_pad), NULL, NULL,
+      g_cclosure_marshal_generic, GST_TYPE_PAD, 1, G_TYPE_INT);
+  /**
+   * GstPlayBin3::get-text-pad
+   * @playbin: a #GstPlayBin3
+   * @stream: a text stream number
+   *
+   * Action signal to retrieve the stream-combiner sinkpad for a specific
+   * text stream.
+   * This pad can be used for notifications of caps changes, stream-specific
+   * queries, etc.
+   *
+   * Returns: a #GstPad, or NULL when the stream number does not exist.
+   */
+  gst_play_bin3_signals[SIGNAL_GET_TEXT_PAD] =
+      g_signal_new ("get-text-pad", G_TYPE_FROM_CLASS (klass),
+      G_SIGNAL_RUN_LAST | G_SIGNAL_ACTION,
+      G_STRUCT_OFFSET (GstPlayBin3Class, get_text_pad), NULL, NULL,
+      g_cclosure_marshal_generic, GST_TYPE_PAD, 1, G_TYPE_INT);
+
+  klass->get_video_tags = gst_play_bin3_get_video_tags;
+  klass->get_audio_tags = gst_play_bin3_get_audio_tags;
+  klass->get_text_tags = gst_play_bin3_get_text_tags;
+
+  klass->convert_sample = gst_play_bin3_convert_sample;
+
+  klass->get_video_pad = gst_play_bin3_get_video_pad;
+  klass->get_audio_pad = gst_play_bin3_get_audio_pad;
+  klass->get_text_pad = gst_play_bin3_get_text_pad;
+
+  gst_element_class_set_static_metadata (gstelement_klass,
+      "Player Bin 3", "Generic/Bin/Player",
+      "Autoplug and play media from an uri",
+      "Wim Taymans <wim.taymans@gmail.com>");
+
+  gstelement_klass->change_state =
+      GST_DEBUG_FUNCPTR (gst_play_bin3_change_state);
+  gstelement_klass->query = GST_DEBUG_FUNCPTR (gst_play_bin3_query);
+  gstelement_klass->set_context = GST_DEBUG_FUNCPTR (gst_play_bin3_set_context);
+  gstelement_klass->send_event = GST_DEBUG_FUNCPTR (gst_play_bin3_send_event);
+
+  gstbin_klass->handle_message =
+      GST_DEBUG_FUNCPTR (gst_play_bin3_handle_message);
+}
+
+static void
+do_async_start (GstPlayBin3 * playbin)
+{
+  GstMessage *message;
+
+  playbin->async_pending = TRUE;
+
+  message = gst_message_new_async_start (GST_OBJECT_CAST (playbin));
+  GST_BIN_CLASS (parent_class)->handle_message (GST_BIN_CAST (playbin),
+      message);
+}
+
+static void
+do_async_done (GstPlayBin3 * playbin)
+{
+  GstMessage *message;
+
+  if (playbin->async_pending) {
+    GST_DEBUG_OBJECT (playbin, "posting ASYNC_DONE");
+    message =
+        gst_message_new_async_done (GST_OBJECT_CAST (playbin),
+        GST_CLOCK_TIME_NONE);
+    GST_BIN_CLASS (parent_class)->handle_message (GST_BIN_CAST (playbin),
+        message);
+
+    playbin->async_pending = FALSE;
+  }
+}
+
+/* init combiners. The combiner is found by finding the first prefix that
+ * matches the media. */
+static void
+init_combiners (GstPlayBin3 * playbin)
+{
+  gint i;
+
+  /* store the array for the different channels */
+  for (i = 0; i < PLAYBIN_STREAM_LAST; i++)
+    playbin->channels[i] = g_ptr_array_new ();
+
+  playbin->combiner[PLAYBIN_STREAM_AUDIO].media_type = "audio";
+  playbin->combiner[PLAYBIN_STREAM_AUDIO].type = GST_PLAY_SINK_TYPE_AUDIO;
+  playbin->combiner[PLAYBIN_STREAM_AUDIO].channels = playbin->channels[0];
+  playbin->combiner[PLAYBIN_STREAM_AUDIO].streams =
+      g_ptr_array_new_with_free_func ((GDestroyNotify) gst_object_unref);
+  playbin->combiner[PLAYBIN_STREAM_AUDIO].current_stream = -1;
+
+  playbin->combiner[PLAYBIN_STREAM_VIDEO].media_type = "video";
+  playbin->combiner[PLAYBIN_STREAM_VIDEO].type = GST_PLAY_SINK_TYPE_VIDEO;
+  playbin->combiner[PLAYBIN_STREAM_VIDEO].channels = playbin->channels[1];
+  playbin->combiner[PLAYBIN_STREAM_VIDEO].streams =
+      g_ptr_array_new_with_free_func ((GDestroyNotify) gst_object_unref);
+  playbin->combiner[PLAYBIN_STREAM_VIDEO].current_stream = -1;
+
+  playbin->combiner[PLAYBIN_STREAM_TEXT].media_type = "text";
+  playbin->combiner[PLAYBIN_STREAM_TEXT].get_media_caps =
+      gst_subtitle_overlay_create_factory_caps;
+  playbin->combiner[PLAYBIN_STREAM_TEXT].type = GST_PLAY_SINK_TYPE_TEXT;
+  playbin->combiner[PLAYBIN_STREAM_TEXT].channels = playbin->channels[2];
+  playbin->combiner[PLAYBIN_STREAM_TEXT].streams =
+      g_ptr_array_new_with_free_func ((GDestroyNotify) gst_object_unref);
+  playbin->combiner[PLAYBIN_STREAM_TEXT].current_stream = -1;
+}
+
+/* Update the combiner information to be in sync with the current collection */
+static void
+update_combiner_info (GstPlayBin3 * playbin)
+{
+  guint i, len;
+
+  if (playbin->collection == NULL)
+    return;
+
+  GST_DEBUG_OBJECT (playbin, "Updating combiner info");
+
+  /* Wipe current combiner streams */
+  g_ptr_array_free (playbin->combiner[PLAYBIN_STREAM_AUDIO].streams, TRUE);
+  g_ptr_array_free (playbin->combiner[PLAYBIN_STREAM_VIDEO].streams, TRUE);
+  g_ptr_array_free (playbin->combiner[PLAYBIN_STREAM_TEXT].streams, TRUE);
+  playbin->combiner[PLAYBIN_STREAM_AUDIO].streams =
+      g_ptr_array_new_with_free_func ((GDestroyNotify) gst_object_unref);
+  playbin->combiner[PLAYBIN_STREAM_AUDIO].current_stream = -1;
+  playbin->combiner[PLAYBIN_STREAM_VIDEO].streams =
+      g_ptr_array_new_with_free_func ((GDestroyNotify) gst_object_unref);
+  playbin->combiner[PLAYBIN_STREAM_VIDEO].current_stream = -1;
+  playbin->combiner[PLAYBIN_STREAM_TEXT].streams =
+      g_ptr_array_new_with_free_func ((GDestroyNotify) gst_object_unref);
+  playbin->combiner[PLAYBIN_STREAM_TEXT].current_stream = -1;
+
+  len = gst_stream_collection_get_size (playbin->collection);
+  for (i = 0; i < len; i++) {
+    GstStream *stream =
+        gst_stream_collection_get_stream (playbin->collection, i);
+    GstStreamType stype = gst_stream_get_stream_type (stream);
+
+    switch (stype) {
+      case GST_STREAM_TYPE_AUDIO:
+        g_ptr_array_add (playbin->combiner[PLAYBIN_STREAM_AUDIO].streams,
+            gst_object_ref (stream));
+        break;
+      case GST_STREAM_TYPE_VIDEO:
+        g_ptr_array_add (playbin->combiner[PLAYBIN_STREAM_VIDEO].streams,
+            gst_object_ref (stream));
+        break;
+      case GST_STREAM_TYPE_TEXT:
+        g_ptr_array_add (playbin->combiner[PLAYBIN_STREAM_TEXT].streams,
+            gst_object_ref (stream));
+        break;
+      default:
+        break;
+    }
+  }
+
+  GST_DEBUG_OBJECT (playbin, "There are %d audio streams",
+      playbin->combiner[PLAYBIN_STREAM_AUDIO].streams->len);
+  GST_DEBUG_OBJECT (playbin, "There are %d video streams",
+      playbin->combiner[PLAYBIN_STREAM_VIDEO].streams->len);
+  GST_DEBUG_OBJECT (playbin, "There are %d text streams",
+      playbin->combiner[PLAYBIN_STREAM_TEXT].streams->len);
+}
+
+/* Set the given stream as the selected stream */
+static void
+set_selected_stream (GstPlayBin3 * playbin, GstStream * stream)
+{
+  GstSourceCombine *combine = NULL;
+
+  switch (gst_stream_get_stream_type (stream)) {
+    case GST_STREAM_TYPE_AUDIO:
+      combine = &playbin->combiner[PLAYBIN_STREAM_AUDIO];
+      break;
+    case GST_STREAM_TYPE_VIDEO:
+      combine = &playbin->combiner[PLAYBIN_STREAM_VIDEO];
+      break;
+    case GST_STREAM_TYPE_TEXT:
+      combine = &playbin->combiner[PLAYBIN_STREAM_TEXT];
+      break;
+    default:
+      break;
+  }
+
+  if (combine) {
+    if (combine->combiner == NULL) {
+      guint i, len;
+
+      GST_DEBUG_OBJECT (playbin, "Called for %s (%p)",
+          gst_stream_get_stream_id (stream), combine->combiner);
+
+      combine->current_stream = -1;
+      len = combine->streams->len;
+      for (i = 0; i < len; i++) {
+        GstStream *cand = g_ptr_array_index (combine->streams, i);
+        if (cand == stream) {
+          GST_DEBUG_OBJECT (playbin, "Setting current to %d", i);
+          combine->current_stream = i;
+          break;
+        }
+      }
+    }
+  }
+}
+
+static void
+init_group (GstPlayBin3 * playbin, GstSourceGroup * group)
+{
+  g_mutex_init (&group->lock);
+
+  group->stream_changed_pending = FALSE;
+  g_mutex_init (&group->stream_changed_pending_lock);
+
+  group->playbin = playbin;
+}
+
+static void
+free_group (GstPlayBin3 * playbin, GstSourceGroup * group)
+{
+  g_free (group->uri);
+  g_free (group->suburi);
+
+  g_mutex_clear (&group->lock);
+  group->stream_changed_pending = FALSE;
+  g_mutex_clear (&group->stream_changed_pending_lock);
+
+  if (group->pending_buffering_msg)
+    gst_message_unref (group->pending_buffering_msg);
+  group->pending_buffering_msg = NULL;
+
+  gst_object_replace ((GstObject **) & group->audio_sink, NULL);
+  gst_object_replace ((GstObject **) & group->video_sink, NULL);
+  gst_object_replace ((GstObject **) & group->text_sink, NULL);
+}
+
+static void
+notify_volume_cb (GObject * combiner, GParamSpec * pspec, GstPlayBin3 * playbin)
+{
+  g_object_notify (G_OBJECT (playbin), "volume");
+}
+
+static void
+notify_mute_cb (GObject * combiner, GParamSpec * pspec, GstPlayBin3 * playbin)
+{
+  g_object_notify (G_OBJECT (playbin), "mute");
+}
+
+static void
+colorbalance_value_changed_cb (GstColorBalance * balance,
+    GstColorBalanceChannel * channel, gint value, GstPlayBin3 * playbin)
+{
+  gst_color_balance_value_changed (GST_COLOR_BALANCE (playbin), channel, value);
+}
+
+static gint
+compare_factories_func (gconstpointer p1, gconstpointer p2)
+{
+  GstPluginFeature *f1, *f2;
+  gboolean is_sink1, is_sink2;
+  gboolean is_parser1, is_parser2;
+
+  f1 = (GstPluginFeature *) p1;
+  f2 = (GstPluginFeature *) p2;
+
+  is_sink1 = gst_element_factory_list_is_type (GST_ELEMENT_FACTORY_CAST (f1),
+      GST_ELEMENT_FACTORY_TYPE_SINK);
+  is_sink2 = gst_element_factory_list_is_type (GST_ELEMENT_FACTORY_CAST (f2),
+      GST_ELEMENT_FACTORY_TYPE_SINK);
+  is_parser1 = gst_element_factory_list_is_type (GST_ELEMENT_FACTORY_CAST (f1),
+      GST_ELEMENT_FACTORY_TYPE_PARSER);
+  is_parser2 = gst_element_factory_list_is_type (GST_ELEMENT_FACTORY_CAST (f2),
+      GST_ELEMENT_FACTORY_TYPE_PARSER);
+
+  /* First we want all sinks as we prefer a sink if it directly
+   * supports the current caps */
+  if (is_sink1 && !is_sink2)
+    return -1;
+  else if (!is_sink1 && is_sink2)
+    return 1;
+
+  /* Then we want all parsers as we always want to plug parsers
+   * before decoders */
+  if (is_parser1 && !is_parser2)
+    return -1;
+  else if (!is_parser1 && is_parser2)
+    return 1;
+
+  /* And if it's a both a parser or sink we first sort by rank
+   * and then by factory name */
+  return gst_plugin_feature_rank_compare_func (p1, p2);
+}
+
+/* Must be called with elements lock! */
+static void
+gst_play_bin3_update_elements_list (GstPlayBin3 * playbin)
+{
+  GList *res, *tmp;
+  guint cookie;
+
+  cookie = gst_registry_get_feature_list_cookie (gst_registry_get ());
+
+  if (!playbin->elements || playbin->elements_cookie != cookie) {
+    if (playbin->elements)
+      gst_plugin_feature_list_free (playbin->elements);
+    res =
+        gst_element_factory_list_get_elements
+        (GST_ELEMENT_FACTORY_TYPE_DECODABLE, GST_RANK_MARGINAL);
+    tmp =
+        gst_element_factory_list_get_elements
+        (GST_ELEMENT_FACTORY_TYPE_AUDIOVIDEO_SINKS, GST_RANK_MARGINAL);
+    playbin->elements = g_list_concat (res, tmp);
+    playbin->elements = g_list_sort (playbin->elements, compare_factories_func);
+  }
+
+  if (!playbin->aelements || playbin->elements_cookie != cookie) {
+    if (playbin->aelements)
+      g_sequence_free (playbin->aelements);
+    playbin->aelements = avelements_create (playbin, TRUE);
+  }
+
+  if (!playbin->velements || playbin->elements_cookie != cookie) {
+    if (playbin->velements)
+      g_sequence_free (playbin->velements);
+    playbin->velements = avelements_create (playbin, FALSE);
+  }
+
+  playbin->elements_cookie = cookie;
+}
+
+static void
+gst_play_bin3_init (GstPlayBin3 * playbin)
+{
+  g_rec_mutex_init (&playbin->lock);
+  g_mutex_init (&playbin->dyn_lock);
+
+  /* assume we can create an input-selector */
+  playbin->have_selector = TRUE;
+
+  playbin->do_stream_selections = DEFAULT_AUTO_SELECT_STREAMS;
+
+  init_combiners (playbin);
+
+  /* init groups */
+  playbin->curr_group = &playbin->groups[0];
+  playbin->next_group = &playbin->groups[1];
+  init_group (playbin, &playbin->groups[0]);
+  init_group (playbin, &playbin->groups[1]);
+
+  /* first filter out the interesting element factories */
+  g_mutex_init (&playbin->elements_lock);
+
+  /* add sink */
+  playbin->playsink =
+      g_object_new (GST_TYPE_PLAY_SINK, "name", "playsink", "send-event-mode",
+      1, NULL);
+  gst_bin_add (GST_BIN_CAST (playbin), GST_ELEMENT_CAST (playbin->playsink));
+  gst_play_sink_set_flags (playbin->playsink, DEFAULT_FLAGS);
+  /* Connect to notify::volume and notify::mute signals for proxying */
+  g_signal_connect (playbin->playsink, "notify::volume",
+      G_CALLBACK (notify_volume_cb), playbin);
+  g_signal_connect (playbin->playsink, "notify::mute",
+      G_CALLBACK (notify_mute_cb), playbin);
+  g_signal_connect (playbin->playsink, "value-changed",
+      G_CALLBACK (colorbalance_value_changed_cb), playbin);
+
+  playbin->current_video = DEFAULT_CURRENT_VIDEO;
+  playbin->current_audio = DEFAULT_CURRENT_AUDIO;
+  playbin->current_text = DEFAULT_CURRENT_TEXT;
+
+  playbin->buffer_duration = DEFAULT_BUFFER_DURATION;
+  playbin->buffer_size = DEFAULT_BUFFER_SIZE;
+  playbin->ring_buffer_max_size = DEFAULT_RING_BUFFER_MAX_SIZE;
+
+  playbin->force_aspect_ratio = TRUE;
+
+  playbin->multiview_mode = GST_VIDEO_MULTIVIEW_FRAME_PACKING_NONE;
+  playbin->multiview_flags = GST_VIDEO_MULTIVIEW_FLAGS_NONE;
+}
+
+static void
+gst_play_bin3_finalize (GObject * object)
+{
+  GstPlayBin3 *playbin;
+  gint i;
+
+  playbin = GST_PLAY_BIN3 (object);
+
+  free_group (playbin, &playbin->groups[0]);
+  free_group (playbin, &playbin->groups[1]);
+
+  for (i = 0; i < PLAYBIN_STREAM_LAST; i++)
+    g_ptr_array_free (playbin->channels[i], TRUE);
+
+  if (playbin->source)
+    gst_object_unref (playbin->source);
+
+  /* Setting states to NULL is safe here because playsink
+   * will already be gone and none of these sinks will be
+   * a child of playsink
+   */
+  if (playbin->video_sink) {
+    gst_element_set_state (playbin->video_sink, GST_STATE_NULL);
+    gst_object_unref (playbin->video_sink);
+  }
+  if (playbin->audio_sink) {
+    gst_element_set_state (playbin->audio_sink, GST_STATE_NULL);
+    gst_object_unref (playbin->audio_sink);
+  }
+  if (playbin->text_sink) {
+    gst_element_set_state (playbin->text_sink, GST_STATE_NULL);
+    gst_object_unref (playbin->text_sink);
+  }
+
+  if (playbin->video_stream_combiner) {
+    gst_element_set_state (playbin->video_stream_combiner, GST_STATE_NULL);
+    gst_object_unref (playbin->video_stream_combiner);
+  }
+  if (playbin->audio_stream_combiner) {
+    gst_element_set_state (playbin->audio_stream_combiner, GST_STATE_NULL);
+    gst_object_unref (playbin->audio_stream_combiner);
+  }
+  if (playbin->text_stream_combiner) {
+    gst_element_set_state (playbin->text_stream_combiner, GST_STATE_NULL);
+    gst_object_unref (playbin->text_stream_combiner);
+  }
+
+  g_ptr_array_free (playbin->combiner[PLAYBIN_STREAM_AUDIO].streams, TRUE);
+  g_ptr_array_free (playbin->combiner[PLAYBIN_STREAM_VIDEO].streams, TRUE);
+  g_ptr_array_free (playbin->combiner[PLAYBIN_STREAM_TEXT].streams, TRUE);
+
+  if (playbin->decodebin)
+    gst_object_unref (playbin->decodebin);
+
+  if (playbin->elements)
+    gst_plugin_feature_list_free (playbin->elements);
+
+  if (playbin->aelements)
+    g_sequence_free (playbin->aelements);
+
+  if (playbin->velements)
+    g_sequence_free (playbin->velements);
+
+  g_list_free_full (playbin->contexts, (GDestroyNotify) gst_context_unref);
+
+  g_rec_mutex_clear (&playbin->lock);
+  g_mutex_clear (&playbin->dyn_lock);
+  g_mutex_clear (&playbin->elements_lock);
+
+  G_OBJECT_CLASS (parent_class)->finalize (object);
+}
+
+static gboolean
+gst_playbin_uri_is_valid (GstPlayBin3 * playbin, const gchar * uri)
+{
+  const gchar *c;
+
+  GST_LOG_OBJECT (playbin, "checking uri '%s'", uri);
+
+  /* this just checks the protocol */
+  if (!gst_uri_is_valid (uri))
+    return FALSE;
+
+  for (c = uri; *c != '\0'; ++c) {
+    if (!g_ascii_isprint (*c))
+      goto invalid;
+    if (*c == ' ')
+      goto invalid;
+  }
+
+  return TRUE;
+
+invalid:
+  {
+    GST_WARNING_OBJECT (playbin, "uri '%s' not valid, character #%u",
+        uri, (guint) ((guintptr) c - (guintptr) uri));
+    return FALSE;
+  }
+}
+
+static void
+gst_play_bin3_set_uri (GstPlayBin3 * playbin, const gchar * uri)
+{
+  GstSourceGroup *group;
+
+  if (uri == NULL) {
+    g_warning ("cannot set NULL uri");
+    return;
+  }
+
+  if (!gst_playbin_uri_is_valid (playbin, uri)) {
+    if (g_str_has_prefix (uri, "file:")) {
+      GST_WARNING_OBJECT (playbin, "not entirely correct file URI '%s' - make "
+          "sure to escape spaces and non-ASCII characters properly and specify "
+          "an absolute path. Use gst_filename_to_uri() to convert filenames "
+          "to URIs", uri);
+    } else {
+      /* GST_ERROR_OBJECT (playbin, "malformed URI '%s'", uri); */
+    }
+  }
+
+  GST_PLAY_BIN3_LOCK (playbin);
+  group = playbin->next_group;
+
+  GST_SOURCE_GROUP_LOCK (group);
+  /* store the uri in the next group we will play */
+  g_free (group->uri);
+  group->uri = g_strdup (uri);
+  group->valid = TRUE;
+  GST_SOURCE_GROUP_UNLOCK (group);
+
+  GST_DEBUG ("set new uri to %s", uri);
+  GST_PLAY_BIN3_UNLOCK (playbin);
+}
+
+static void
+gst_play_bin3_set_suburi (GstPlayBin3 * playbin, const gchar * suburi)
+{
+  GstSourceGroup *group;
+
+  GST_PLAY_BIN3_LOCK (playbin);
+  group = playbin->next_group;
+
+  GST_SOURCE_GROUP_LOCK (group);
+  g_free (group->suburi);
+  group->suburi = g_strdup (suburi);
+  GST_SOURCE_GROUP_UNLOCK (group);
+
+  GST_DEBUG ("setting new .sub uri to %s", suburi);
+
+  GST_PLAY_BIN3_UNLOCK (playbin);
+}
+
+static void
+gst_play_bin3_set_flags (GstPlayBin3 * playbin, GstPlayFlags flags)
+{
+  GstPlayFlags old_flags;
+  old_flags = gst_play_sink_get_flags (playbin->playsink);
+
+  if (flags != old_flags) {
+    gst_play_sink_set_flags (playbin->playsink, flags);
+    gst_play_sink_reconfigure (playbin->playsink);
+  }
+}
+
+static GstPlayFlags
+gst_play_bin3_get_flags (GstPlayBin3 * playbin)
+{
+  GstPlayFlags flags;
+
+  flags = gst_play_sink_get_flags (playbin->playsink);
+
+  return flags;
+}
+
+/* get the currently playing group or if nothing is playing, the next
+ * group. Must be called with the PLAY_BIN_LOCK. */
+static GstSourceGroup *
+get_group (GstPlayBin3 * playbin)
+{
+  GstSourceGroup *result;
+
+  if (!(result = playbin->curr_group))
+    result = playbin->next_group;
+
+  return result;
+}
+
+static GstPad *
+gst_play_bin3_get_pad_of_type (GstPlayBin3 * playbin, gint stream_type,
+    gint stream)
+{
+  GstPad *sinkpad = NULL;
+
+  GST_PLAY_BIN3_LOCK (playbin);
+  if (playbin->combiner[stream_type].combiner == NULL) {
+    GST_DEBUG_OBJECT (playbin,
+        "get-pad of type %d w/o custom-combiner. Returning playsink pad",
+        stream_type);
+    sinkpad = playbin->combiner[stream_type].sinkpad;
+    if (sinkpad) {
+      sinkpad = gst_object_ref (sinkpad);
+      goto done;
+    }
+  }
+  if (stream < playbin->channels[stream_type]->len) {
+    sinkpad = g_ptr_array_index (playbin->channels[stream_type], stream);
+    gst_object_ref (sinkpad);
+  }
+
+done:
+  GST_PLAY_BIN3_UNLOCK (playbin);
+
+  return sinkpad;
+}
+
+static GstPad *
+gst_play_bin3_get_video_pad (GstPlayBin3 * playbin, gint stream)
+{
+  return gst_play_bin3_get_pad_of_type (playbin, PLAYBIN_STREAM_VIDEO, stream);
+}
+
+static GstPad *
+gst_play_bin3_get_audio_pad (GstPlayBin3 * playbin, gint stream)
+{
+  return gst_play_bin3_get_pad_of_type (playbin, PLAYBIN_STREAM_AUDIO, stream);
+}
+
+static GstPad *
+gst_play_bin3_get_text_pad (GstPlayBin3 * playbin, gint stream)
+{
+  return gst_play_bin3_get_pad_of_type (playbin, PLAYBIN_STREAM_TEXT, stream);
+}
+
+
+static GstTagList *
+get_tags (GstPlayBin3 * playbin, GstStreamType type, gint stream_num)
+{
+  GstTagList *result = NULL;
+  gint nb_streams = gst_stream_collection_get_size (playbin->collection);
+  gint i, cur_idx = 0;
+
+  /* Count the streams of the type we want to find the one numbered 'stream' */
+  for (i = 0; i < nb_streams; i++) {
+    GstStream *stream =
+        gst_stream_collection_get_stream (playbin->collection, i);
+    GstStreamType stream_type = gst_stream_get_stream_type (stream);
+    if (stream_type != type)
+      continue;
+    if (cur_idx == stream_num)
+      return gst_stream_get_tags (stream);
+    cur_idx++;
+  }
+
+  return result;
+}
+
+static GstTagList *
+gst_play_bin3_get_video_tags (GstPlayBin3 * playbin, gint stream)
+{
+  GstTagList *result;
+
+  GST_PLAY_BIN3_LOCK (playbin);
+  result = get_tags (playbin, GST_STREAM_TYPE_VIDEO, stream);
+  GST_PLAY_BIN3_UNLOCK (playbin);
+
+  return result;
+}
+
+static GstTagList *
+gst_play_bin3_get_audio_tags (GstPlayBin3 * playbin, gint stream)
+{
+  GstTagList *result;
+
+  GST_PLAY_BIN3_LOCK (playbin);
+  result = get_tags (playbin, GST_STREAM_TYPE_AUDIO, stream);
+  GST_PLAY_BIN3_UNLOCK (playbin);
+
+  return result;
+}
+
+static GstTagList *
+gst_play_bin3_get_text_tags (GstPlayBin3 * playbin, gint stream)
+{
+  GstTagList *result;
+
+  GST_PLAY_BIN3_LOCK (playbin);
+  result = get_tags (playbin, GST_STREAM_TYPE_TEXT, stream);
+  GST_PLAY_BIN3_UNLOCK (playbin);
+
+  return result;
+}
+
+static GstSample *
+gst_play_bin3_convert_sample (GstPlayBin3 * playbin, GstCaps * caps)
+{
+  return gst_play_sink_convert_sample (playbin->playsink, caps);
+}
+
+/* Returns current stream number, or -1 if none has been selected yet */
+static int
+get_current_stream_number (GstPlayBin3 * playbin, GstSourceCombine * combine,
+    GPtrArray * channels)
+{
+  /* Internal API cleanup would make this easier... */
+  int i;
+  GstPad *pad, *current;
+  GstObject *combiner = NULL;
+  int ret = -1;
+
+  if (!combine->has_active_pad) {
+    GST_WARNING_OBJECT (playbin,
+        "combiner doesn't have the \"active-pad\" property");
+    return ret;
+  }
+
+  for (i = 0; i < channels->len; i++) {
+    pad = g_ptr_array_index (channels, i);
+    if ((combiner = gst_pad_get_parent (pad))) {
+      g_object_get (combiner, "active-pad", &current, NULL);
+      gst_object_unref (combiner);
+
+      if (pad == current) {
+        gst_object_unref (current);
+        ret = i;
+        break;
+      }
+
+      if (current)
+        gst_object_unref (current);
+    }
+  }
+
+  return ret;
+}
+
+static gboolean
+gst_play_bin3_send_custom_event (GstObject * combiner, const gchar * event_name)
+{
+  GstPad *src;
+  GstPad *peer;
+  GstStructure *s;
+  GstEvent *event;
+  gboolean ret = FALSE;
+
+  src = gst_element_get_static_pad (GST_ELEMENT_CAST (combiner), "src");
+  peer = gst_pad_get_peer (src);
+  if (peer) {
+    s = gst_structure_new_empty (event_name);
+    event = gst_event_new_custom (GST_EVENT_CUSTOM_DOWNSTREAM_OOB, s);
+    gst_pad_send_event (peer, event);
+    gst_object_unref (peer);
+    ret = TRUE;
+  }
+  gst_object_unref (src);
+  return ret;
+}
+
+static gboolean
+gst_play_bin3_set_current_stream (GstPlayBin3 * playbin,
+    gint stream_type, gint * current_value, gint stream,
+    gboolean * flush_marker)
+{
+  GstSourceCombine *combine;
+  GPtrArray *channels;
+  GstPad *sinkpad;
+
+  GST_PLAY_BIN3_LOCK (playbin);
+  /* This function is only called if the app sets
+   * one of the current-* properties, which means it doesn't
+   * handle collections or select-streams yet */
+  playbin->do_stream_selections = TRUE;
+
+  combine = playbin->combiner + stream_type;
+  channels = playbin->channels[stream_type];
+
+  GST_DEBUG_OBJECT (playbin, "Changing current %s stream %d -> %d",
+      stream_type_names[stream_type], *current_value, stream);
+
+  if (combine->combiner == NULL) {
+    /* FIXME: Check that the current_value is within range */
+    *current_value = stream;
+    do_stream_selection (playbin);
+    GST_PLAY_BIN3_UNLOCK (playbin);
+    return TRUE;
+  }
+
+  GST_DEBUG_OBJECT (playbin, "Using old style combiner");
+
+  if (!combine->has_active_pad)
+    goto no_active_pad;
+  if (channels == NULL)
+    goto no_channels;
+
+  if (stream == -1 || channels->len <= stream) {
+    sinkpad = NULL;
+  } else {
+    /* take channel from selected stream */
+    sinkpad = g_ptr_array_index (channels, stream);
+  }
+
+  if (sinkpad)
+    gst_object_ref (sinkpad);
+  GST_PLAY_BIN3_UNLOCK (playbin);
+
+  if (sinkpad) {
+    GstObject *combiner;
+
+    if ((combiner = gst_pad_get_parent (sinkpad))) {
+      GstPad *old_sinkpad;
+
+      g_object_get (combiner, "active-pad", &old_sinkpad, NULL);
+
+      if (old_sinkpad != sinkpad) {
+        /* FIXME: Is there actually any reason playsink
+         * needs special names for each type of stream we flush? */
+        gchar *flush_event_name = g_strdup_printf ("playsink-custom-%s-flush",
+            stream_type_names[stream_type]);
+        if (gst_play_bin3_send_custom_event (combiner, flush_event_name))
+          *flush_marker = TRUE;
+        g_free (flush_event_name);
+
+        /* activate the selected pad */
+        g_object_set (combiner, "active-pad", sinkpad, NULL);
+      }
+
+      if (old_sinkpad)
+        gst_object_unref (old_sinkpad);
+
+      gst_object_unref (combiner);
+    }
+    gst_object_unref (sinkpad);
+  }
+  return TRUE;
+
+no_active_pad:
+  {
+    GST_PLAY_BIN3_UNLOCK (playbin);
+    GST_WARNING_OBJECT (playbin,
+        "can't switch %s, the stream combiner's sink pads don't have the \"active-pad\" property",
+        stream_type_names[stream_type]);
+    return FALSE;
+  }
+no_channels:
+  {
+    GST_PLAY_BIN3_UNLOCK (playbin);
+    GST_DEBUG_OBJECT (playbin, "can't switch video, we have no channels");
+    return FALSE;
+  }
+}
+
+static gboolean
+gst_play_bin3_set_current_video_stream (GstPlayBin3 * playbin, gint stream)
+{
+  return gst_play_bin3_set_current_stream (playbin, PLAYBIN_STREAM_VIDEO,
+      &playbin->current_video, stream, &playbin->video_pending_flush_finish);
+}
+
+static gboolean
+gst_play_bin3_set_current_audio_stream (GstPlayBin3 * playbin, gint stream)
+{
+  return gst_play_bin3_set_current_stream (playbin, PLAYBIN_STREAM_AUDIO,
+      &playbin->current_audio, stream, &playbin->audio_pending_flush_finish);
+}
+
+static gboolean
+gst_play_bin3_set_current_text_stream (GstPlayBin3 * playbin, gint stream)
+{
+  return gst_play_bin3_set_current_stream (playbin, PLAYBIN_STREAM_TEXT,
+      &playbin->current_text, stream, &playbin->text_pending_flush_finish);
+}
+
+static void
+source_combine_remove_pads (GstPlayBin3 * playbin, GstSourceCombine * combine)
+{
+  if (combine->sinkpad) {
+    GST_LOG_OBJECT (playbin, "unlinking from sink");
+    gst_pad_unlink (combine->srcpad, combine->sinkpad);
+
+    /* release back */
+    GST_LOG_OBJECT (playbin, "release sink pad");
+    gst_play_sink_release_pad (playbin->playsink, combine->sinkpad);
+    gst_object_unref (combine->sinkpad);
+    combine->sinkpad = NULL;
+  }
+  gst_object_unref (combine->srcpad);
+  combine->srcpad = NULL;
+}
+
+static GstPadProbeReturn
+block_serialized_data_cb (GstPad * pad, GstPadProbeInfo * info,
+    gpointer user_data)
+{
+  if (GST_IS_EVENT (info->data) && !GST_EVENT_IS_SERIALIZED (info->data)) {
+    GST_DEBUG_OBJECT (pad, "Letting non-serialized event %s pass",
+        GST_EVENT_TYPE_NAME (info->data));
+    return GST_PAD_PROBE_PASS;
+  }
+
+  return GST_PAD_PROBE_OK;
+}
+
+static void
+gst_play_bin3_set_sink (GstPlayBin3 * playbin, GstPlaySinkType type,
+    const gchar * dbg, GstElement ** elem, GstElement * sink)
+{
+  GST_INFO_OBJECT (playbin, "Setting %s sink to %" GST_PTR_FORMAT, dbg, sink);
+
+  gst_play_sink_set_sink (playbin->playsink, type, sink);
+
+  if (*elem)
+    gst_object_unref (*elem);
+  *elem = sink ? gst_object_ref (sink) : NULL;
+}
+
+static void
+gst_play_bin3_set_stream_combiner (GstPlayBin3 * playbin, GstElement ** elem,
+    const gchar * dbg, GstElement * combiner)
+{
+  GST_INFO_OBJECT (playbin, "Setting %s stream combiner to %" GST_PTR_FORMAT,
+      dbg, combiner);
+
+  GST_PLAY_BIN3_LOCK (playbin);
+  if (*elem != combiner) {
+    GstElement *old;
+
+    old = *elem;
+    if (combiner)
+      gst_object_ref_sink (combiner);
+
+    *elem = combiner;
+    if (old)
+      gst_object_unref (old);
+  }
+  GST_LOG_OBJECT (playbin, "%s stream combiner now %" GST_PTR_FORMAT, dbg,
+      *elem);
+  GST_PLAY_BIN3_UNLOCK (playbin);
+}
+
+static void
+gst_play_bin3_set_encoding (GstPlayBin3 * playbin, const gchar * encoding)
+{
+  GstElement *elem;
+
+  GST_PLAY_BIN3_LOCK (playbin);
+
+  /* set subtitles on decodebin. */
+  if ((elem = playbin->decodebin))
+    g_object_set (G_OBJECT (elem), "subtitle-encoding", encoding, NULL);
+
+  gst_play_sink_set_subtitle_encoding (playbin->playsink, encoding);
+  GST_PLAY_BIN3_UNLOCK (playbin);
+}
+
+static void
+gst_play_bin3_set_property (GObject * object, guint prop_id,
+    const GValue * value, GParamSpec * pspec)
+{
+  GstPlayBin3 *playbin = GST_PLAY_BIN3 (object);
+
+  switch (prop_id) {
+    case PROP_URI:
+      gst_play_bin3_set_uri (playbin, g_value_get_string (value));
+      break;
+    case PROP_SUBURI:
+      gst_play_bin3_set_suburi (playbin, g_value_get_string (value));
+      break;
+    case PROP_FLAGS:
+      gst_play_bin3_set_flags (playbin, g_value_get_flags (value));
+      if (playbin->curr_group) {
+        GST_SOURCE_GROUP_LOCK (playbin->curr_group);
+        if (playbin->curr_group->urisourcebin) {
+          g_object_set (playbin->curr_group->urisourcebin, "download",
+              (g_value_get_flags (value) & GST_PLAY_FLAG_DOWNLOAD) != 0, NULL);
+        }
+        GST_SOURCE_GROUP_UNLOCK (playbin->curr_group);
+      }
+      break;
+    case PROP_CURRENT_VIDEO:
+      gst_play_bin3_set_current_video_stream (playbin, g_value_get_int (value));
+      break;
+    case PROP_CURRENT_AUDIO:
+      gst_play_bin3_set_current_audio_stream (playbin, g_value_get_int (value));
+      break;
+    case PROP_CURRENT_TEXT:
+      gst_play_bin3_set_current_text_stream (playbin, g_value_get_int (value));
+      break;
+    case PROP_AUTO_SELECT_STREAMS:
+      GST_PLAY_BIN3_LOCK (playbin);
+      playbin->do_stream_selections = g_value_get_boolean (value);
+      GST_PLAY_BIN3_UNLOCK (playbin);
+      break;
+    case PROP_SUBTITLE_ENCODING:
+      gst_play_bin3_set_encoding (playbin, g_value_get_string (value));
+      break;
+    case PROP_VIDEO_FILTER:
+      gst_play_sink_set_filter (playbin->playsink, GST_PLAY_SINK_TYPE_VIDEO,
+          GST_ELEMENT (g_value_get_object (value)));
+      break;
+    case PROP_AUDIO_FILTER:
+      gst_play_sink_set_filter (playbin->playsink, GST_PLAY_SINK_TYPE_AUDIO,
+          GST_ELEMENT (g_value_get_object (value)));
+      break;
+    case PROP_VIDEO_SINK:
+      gst_play_bin3_set_sink (playbin, GST_PLAY_SINK_TYPE_VIDEO, "video",
+          &playbin->video_sink, g_value_get_object (value));
+      break;
+    case PROP_AUDIO_SINK:
+      gst_play_bin3_set_sink (playbin, GST_PLAY_SINK_TYPE_AUDIO, "audio",
+          &playbin->audio_sink, g_value_get_object (value));
+      break;
+    case PROP_VIS_PLUGIN:
+      gst_play_sink_set_vis_plugin (playbin->playsink,
+          g_value_get_object (value));
+      break;
+    case PROP_TEXT_SINK:
+      gst_play_bin3_set_sink (playbin, GST_PLAY_SINK_TYPE_TEXT, "text",
+          &playbin->text_sink, g_value_get_object (value));
+      break;
+    case PROP_VIDEO_STREAM_COMBINER:
+      gst_play_bin3_set_stream_combiner (playbin,
+          &playbin->video_stream_combiner, "video", g_value_get_object (value));
+      break;
+    case PROP_AUDIO_STREAM_COMBINER:
+      gst_play_bin3_set_stream_combiner (playbin,
+          &playbin->audio_stream_combiner, "audio", g_value_get_object (value));
+      break;
+    case PROP_TEXT_STREAM_COMBINER:
+      gst_play_bin3_set_stream_combiner (playbin,
+          &playbin->text_stream_combiner, "text", g_value_get_object (value));
+      break;
+    case PROP_VOLUME:
+      gst_play_sink_set_volume (playbin->playsink, g_value_get_double (value));
+      break;
+    case PROP_MUTE:
+      gst_play_sink_set_mute (playbin->playsink, g_value_get_boolean (value));
+      break;
+    case PROP_FONT_DESC:
+      gst_play_sink_set_font_desc (playbin->playsink,
+          g_value_get_string (value));
+      break;
+    case PROP_CONNECTION_SPEED:
+      GST_PLAY_BIN3_LOCK (playbin);
+      playbin->connection_speed = g_value_get_uint64 (value) * 1000;
+      GST_PLAY_BIN3_UNLOCK (playbin);
+      break;
+    case PROP_BUFFER_SIZE:
+      playbin->buffer_size = g_value_get_int (value);
+      break;
+    case PROP_BUFFER_DURATION:
+      playbin->buffer_duration = g_value_get_int64 (value);
+      break;
+    case PROP_AV_OFFSET:
+      gst_play_sink_set_av_offset (playbin->playsink,
+          g_value_get_int64 (value));
+      break;
+    case PROP_RING_BUFFER_MAX_SIZE:
+      playbin->ring_buffer_max_size = g_value_get_uint64 (value);
+      if (playbin->curr_group) {
+        GST_SOURCE_GROUP_LOCK (playbin->curr_group);
+        if (playbin->curr_group->urisourcebin) {
+          g_object_set (playbin->curr_group->urisourcebin,
+              "ring-buffer-max-size", playbin->ring_buffer_max_size, NULL);
+        }
+        GST_SOURCE_GROUP_UNLOCK (playbin->curr_group);
+      }
+      break;
+    case PROP_FORCE_ASPECT_RATIO:
+      g_object_set (playbin->playsink, "force-aspect-ratio",
+          g_value_get_boolean (value), NULL);
+      break;
+    case PROP_MULTIVIEW_MODE:
+      GST_PLAY_BIN3_LOCK (playbin);
+      playbin->multiview_mode = g_value_get_enum (value);
+      GST_PLAY_BIN3_UNLOCK (playbin);
+      break;
+    case PROP_MULTIVIEW_FLAGS:
+      GST_PLAY_BIN3_LOCK (playbin);
+      playbin->multiview_flags = g_value_get_flags (value);
+      GST_PLAY_BIN3_UNLOCK (playbin);
+      break;
+    default:
+      G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec);
+      break;
+  }
+}
+
+static GstElement *
+gst_play_bin3_get_current_sink (GstPlayBin3 * playbin, GstElement ** elem,
+    const gchar * dbg, GstPlaySinkType type)
+{
+  GstElement *sink = gst_play_sink_get_sink (playbin->playsink, type);
+
+  GST_LOG_OBJECT (playbin, "play_sink_get_sink() returned %s sink %"
+      GST_PTR_FORMAT ", the originally set %s sink is %" GST_PTR_FORMAT,
+      dbg, sink, dbg, *elem);
+
+  if (sink == NULL) {
+    GST_PLAY_BIN3_LOCK (playbin);
+    if ((sink = *elem))
+      gst_object_ref (sink);
+    GST_PLAY_BIN3_UNLOCK (playbin);
+  }
+
+  return sink;
+}
+
+static GstElement *
+gst_play_bin3_get_current_stream_combiner (GstPlayBin3 * playbin,
+    GstElement ** elem, const gchar * dbg, int stream_type)
+{
+  GstElement *combiner;
+
+  GST_PLAY_BIN3_LOCK (playbin);
+  if ((combiner = playbin->combiner[stream_type].combiner))
+    gst_object_ref (combiner);
+  else if ((combiner = *elem))
+    gst_object_ref (combiner);
+  GST_PLAY_BIN3_UNLOCK (playbin);
+
+  return combiner;
+}
+
+static void
+gst_play_bin3_get_property (GObject * object, guint prop_id, GValue * value,
+    GParamSpec * pspec)
+{
+  GstPlayBin3 *playbin = GST_PLAY_BIN3 (object);
+
+  switch (prop_id) {
+    case PROP_URI:
+    {
+      GstSourceGroup *group;
+
+      GST_PLAY_BIN3_LOCK (playbin);
+      group = playbin->next_group;
+      g_value_set_string (value, group->uri);
+      GST_PLAY_BIN3_UNLOCK (playbin);
+      break;
+    }
+    case PROP_CURRENT_URI:
+    {
+      GstSourceGroup *group;
+
+      GST_PLAY_BIN3_LOCK (playbin);
+      group = get_group (playbin);
+      g_value_set_string (value, group->uri);
+      GST_PLAY_BIN3_UNLOCK (playbin);
+      break;
+    }
+    case PROP_SUBURI:
+    {
+      GstSourceGroup *group;
+
+      GST_PLAY_BIN3_LOCK (playbin);
+      group = playbin->next_group;
+      g_value_set_string (value, group->suburi);
+      GST_PLAY_BIN3_UNLOCK (playbin);
+      break;
+    }
+    case PROP_CURRENT_SUBURI:
+    {
+      GstSourceGroup *group;
+
+      GST_PLAY_BIN3_LOCK (playbin);
+      group = get_group (playbin);
+      g_value_set_string (value, group->suburi);
+      GST_PLAY_BIN3_UNLOCK (playbin);
+      break;
+    }
+    case PROP_SOURCE:
+    {
+      GST_OBJECT_LOCK (playbin);
+      g_value_set_object (value, playbin->source);
+      GST_OBJECT_UNLOCK (playbin);
+      break;
+    }
+    case PROP_FLAGS:
+      g_value_set_flags (value, gst_play_bin3_get_flags (playbin));
+      break;
+    case PROP_N_VIDEO:
+    {
+      gint n_video;
+
+      GST_PLAY_BIN3_LOCK (playbin);
+      n_video =
+          playbin->combiner[PLAYBIN_STREAM_VIDEO].
+          streams ? playbin->combiner[PLAYBIN_STREAM_VIDEO].streams->len : 0;
+      GST_PLAY_BIN3_UNLOCK (playbin);
+      g_value_set_int (value, n_video);
+      break;
+    }
+    case PROP_CURRENT_VIDEO:
+      GST_PLAY_BIN3_LOCK (playbin);
+      if (playbin->combiner[PLAYBIN_STREAM_VIDEO].current_stream != -1)
+        g_value_set_int (value,
+            playbin->combiner[PLAYBIN_STREAM_VIDEO].current_stream);
+      else
+        g_value_set_int (value, playbin->current_video);
+      GST_PLAY_BIN3_UNLOCK (playbin);
+      break;
+    case PROP_N_AUDIO:
+    {
+      gint n_audio;
+
+      GST_PLAY_BIN3_LOCK (playbin);
+      n_audio =
+          playbin->combiner[PLAYBIN_STREAM_AUDIO].
+          streams ? playbin->combiner[PLAYBIN_STREAM_AUDIO].streams->len : 0;
+      GST_PLAY_BIN3_UNLOCK (playbin);
+
+      g_value_set_int (value, n_audio);
+      break;
+    }
+    case PROP_CURRENT_AUDIO:
+      GST_PLAY_BIN3_LOCK (playbin);
+      if (playbin->combiner[PLAYBIN_STREAM_AUDIO].current_stream != -1)
+        g_value_set_int (value,
+            playbin->combiner[PLAYBIN_STREAM_AUDIO].current_stream);
+      else
+        g_value_set_int (value, playbin->current_audio);
+      GST_PLAY_BIN3_UNLOCK (playbin);
+      break;
+    case PROP_N_TEXT:
+    {
+      gint n_text;
+
+      GST_PLAY_BIN3_LOCK (playbin);
+      n_text =
+          playbin->combiner[PLAYBIN_STREAM_TEXT].
+          streams ? playbin->combiner[PLAYBIN_STREAM_TEXT].streams->len : 0;
+      GST_PLAY_BIN3_UNLOCK (playbin);
+      g_value_set_int (value, n_text);
+      break;
+    }
+    case PROP_CURRENT_TEXT:
+      GST_PLAY_BIN3_LOCK (playbin);
+      if (playbin->combiner[PLAYBIN_STREAM_TEXT].current_stream != -1)
+        g_value_set_int (value,
+            playbin->combiner[PLAYBIN_STREAM_TEXT].current_stream);
+      else
+        g_value_set_int (value, playbin->current_text);
+      GST_PLAY_BIN3_UNLOCK (playbin);
+      break;
+    case PROP_AUTO_SELECT_STREAMS:
+      GST_PLAY_BIN3_LOCK (playbin);
+      g_value_set_boolean (value, playbin->do_stream_selections);
+      GST_PLAY_BIN3_UNLOCK (playbin);
+      break;
+    case PROP_SUBTITLE_ENCODING:
+      GST_PLAY_BIN3_LOCK (playbin);
+      g_value_take_string (value,
+          gst_play_sink_get_subtitle_encoding (playbin->playsink));
+      GST_PLAY_BIN3_UNLOCK (playbin);
+      break;
+    case PROP_VIDEO_FILTER:
+      g_value_take_object (value,
+          gst_play_sink_get_filter (playbin->playsink,
+              GST_PLAY_SINK_TYPE_VIDEO));
+      break;
+    case PROP_AUDIO_FILTER:
+      g_value_take_object (value,
+          gst_play_sink_get_filter (playbin->playsink,
+              GST_PLAY_SINK_TYPE_AUDIO));
+      break;
+    case PROP_VIDEO_SINK:
+      g_value_take_object (value,
+          gst_play_bin3_get_current_sink (playbin, &playbin->video_sink,
+              "video", GST_PLAY_SINK_TYPE_VIDEO));
+      break;
+    case PROP_AUDIO_SINK:
+      g_value_take_object (value,
+          gst_play_bin3_get_current_sink (playbin, &playbin->audio_sink,
+              "audio", GST_PLAY_SINK_TYPE_AUDIO));
+      break;
+    case PROP_VIS_PLUGIN:
+      g_value_take_object (value,
+          gst_play_sink_get_vis_plugin (playbin->playsink));
+      break;
+    case PROP_TEXT_SINK:
+      g_value_take_object (value,
+          gst_play_bin3_get_current_sink (playbin, &playbin->text_sink,
+              "text", GST_PLAY_SINK_TYPE_TEXT));
+      break;
+    case PROP_VIDEO_STREAM_COMBINER:
+      g_value_take_object (value,
+          gst_play_bin3_get_current_stream_combiner (playbin,
+              &playbin->video_stream_combiner, "video", PLAYBIN_STREAM_VIDEO));
+      break;
+    case PROP_AUDIO_STREAM_COMBINER:
+      g_value_take_object (value,
+          gst_play_bin3_get_current_stream_combiner (playbin,
+              &playbin->audio_stream_combiner, "audio", PLAYBIN_STREAM_AUDIO));
+      break;
+    case PROP_TEXT_STREAM_COMBINER:
+      g_value_take_object (value,
+          gst_play_bin3_get_current_stream_combiner (playbin,
+              &playbin->text_stream_combiner, "text", PLAYBIN_STREAM_TEXT));
+      break;
+    case PROP_VOLUME:
+      g_value_set_double (value, gst_play_sink_get_volume (playbin->playsink));
+      break;
+    case PROP_MUTE:
+      g_value_set_boolean (value, gst_play_sink_get_mute (playbin->playsink));
+      break;
+    case PROP_SAMPLE:
+      gst_value_take_sample (value,
+          gst_play_sink_get_last_sample (playbin->playsink));
+      break;
+    case PROP_FONT_DESC:
+      g_value_take_string (value,
+          gst_play_sink_get_font_desc (playbin->playsink));
+      break;
+    case PROP_CONNECTION_SPEED:
+      GST_PLAY_BIN3_LOCK (playbin);
+      g_value_set_uint64 (value, playbin->connection_speed / 1000);
+      GST_PLAY_BIN3_UNLOCK (playbin);
+      break;
+    case PROP_BUFFER_SIZE:
+      GST_OBJECT_LOCK (playbin);
+      g_value_set_int (value, playbin->buffer_size);
+      GST_OBJECT_UNLOCK (playbin);
+      break;
+    case PROP_BUFFER_DURATION:
+      GST_OBJECT_LOCK (playbin);
+      g_value_set_int64 (value, playbin->buffer_duration);
+      GST_OBJECT_UNLOCK (playbin);
+      break;
+    case PROP_AV_OFFSET:
+      g_value_set_int64 (value,
+          gst_play_sink_get_av_offset (playbin->playsink));
+      break;
+    case PROP_RING_BUFFER_MAX_SIZE:
+      g_value_set_uint64 (value, playbin->ring_buffer_max_size);
+      break;
+    case PROP_FORCE_ASPECT_RATIO:{
+      gboolean v;
+
+      g_object_get (playbin->playsink, "force-aspect-ratio", &v, NULL);
+      g_value_set_boolean (value, v);
+      break;
+    }
+    case PROP_MULTIVIEW_MODE:
+      GST_OBJECT_LOCK (playbin);
+      g_value_set_enum (value, playbin->multiview_mode);
+      GST_OBJECT_UNLOCK (playbin);
+      break;
+    case PROP_MULTIVIEW_FLAGS:
+      GST_OBJECT_LOCK (playbin);
+      g_value_set_flags (value, playbin->multiview_flags);
+      GST_OBJECT_UNLOCK (playbin);
+      break;
+    default:
+      G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec);
+      break;
+  }
+}
+
+static void
+gst_play_bin3_update_cached_duration_from_query (GstPlayBin3 * playbin,
+    gboolean valid, GstQuery * query)
+{
+  GstFormat fmt;
+  gint64 duration;
+  gint i;
+
+  GST_DEBUG_OBJECT (playbin, "Updating cached duration from query");
+  gst_query_parse_duration (query, &fmt, &duration);
+
+  for (i = 0; i < G_N_ELEMENTS (playbin->duration); i++) {
+    if (playbin->duration[i].format == 0 || fmt == playbin->duration[i].format) {
+      playbin->duration[i].valid = valid;
+      playbin->duration[i].format = fmt;
+      playbin->duration[i].duration = valid ? duration : -1;
+      break;
+    }
+  }
+}
+
+static void
+gst_play_bin3_update_cached_duration (GstPlayBin3 * playbin)
+{
+  const GstFormat formats[] =
+      { GST_FORMAT_TIME, GST_FORMAT_BYTES, GST_FORMAT_DEFAULT };
+  gboolean ret;
+  GstQuery *query;
+  gint i;
+
+  GST_DEBUG_OBJECT (playbin, "Updating cached durations before group switch");
+  for (i = 0; i < G_N_ELEMENTS (formats); i++) {
+    query = gst_query_new_duration (formats[i]);
+    ret =
+        GST_ELEMENT_CLASS (parent_class)->query (GST_ELEMENT_CAST (playbin),
+        query);
+    gst_play_bin3_update_cached_duration_from_query (playbin, ret, query);
+    gst_query_unref (query);
+  }
+}
+
+static gboolean
+gst_play_bin3_query (GstElement * element, GstQuery * query)
+{
+  GstPlayBin3 *playbin = GST_PLAY_BIN3 (element);
+  gboolean ret;
+
+  /* During a group switch we shouldn't allow duration queries
+   * because it's not clear if the old or new group's duration
+   * is returned and if the sinks are already playing new data
+   * or old data. See bug #585969
+   *
+   * While we're at it, also don't do any other queries during
+   * a group switch or any other event that causes topology changes
+   * by taking the playbin lock in any case.
+   */
+  GST_PLAY_BIN3_LOCK (playbin);
+
+  if (GST_QUERY_TYPE (query) == GST_QUERY_DURATION) {
+    GstSourceGroup *group = playbin->curr_group;
+    gboolean pending;
+
+    GST_SOURCE_GROUP_LOCK (group);
+
+    pending = group->pending || group->stream_changed_pending;
+
+    if (pending) {
+      GstFormat fmt;
+      gint i;
+
+      ret = FALSE;
+      gst_query_parse_duration (query, &fmt, NULL);
+      for (i = 0; i < G_N_ELEMENTS (playbin->duration); i++) {
+        if (fmt == playbin->duration[i].format) {
+          ret = playbin->duration[i].valid;
+          gst_query_set_duration (query, fmt,
+              (ret ? playbin->duration[i].duration : -1));
+          break;
+        }
+      }
+      /* if nothing cached yet, we might as well request duration,
+       * such as during initial startup */
+      if (ret) {
+        GST_DEBUG_OBJECT (playbin,
+            "Taking cached duration because of pending group switch: %d", ret);
+        GST_SOURCE_GROUP_UNLOCK (group);
+        GST_PLAY_BIN3_UNLOCK (playbin);
+        return ret;
+      }
+    }
+    GST_SOURCE_GROUP_UNLOCK (group);
+  }
+
+  ret = GST_ELEMENT_CLASS (parent_class)->query (element, query);
+
+  if (GST_QUERY_TYPE (query) == GST_QUERY_DURATION)
+    gst_play_bin3_update_cached_duration_from_query (playbin, ret, query);
+  GST_PLAY_BIN3_UNLOCK (playbin);
+
+  return ret;
+}
+
+static gint
+get_combiner_stream_id (GstPlayBin3 * playbin, GstSourceCombine * combine,
+    GList * full_list)
+{
+  gint i;
+  GList *tmp;
+
+  for (i = 0; combine->streams->len; i++) {
+    GstStream *stream = (GstStream *) g_ptr_array_index (combine->streams, i);
+    const gchar *sid = gst_stream_get_stream_id (stream);
+    for (tmp = full_list; tmp; tmp = tmp->next) {
+      gchar *orig = (gchar *) tmp->data;
+      if (!g_strcmp0 (orig, sid))
+        return i;
+    }
+  }
+
+  /* Fallback */
+  return -1;
+}
+
+static GList *
+extend_list_of_streams (GstPlayBin3 * playbin, GstStreamType stype,
+    GList * list)
+{
+  GList *tmp, *res;
+  gint i, nb;
+
+  res = list;
+
+  nb = gst_stream_collection_get_size (playbin->collection);
+  for (i = 0; i < nb; i++) {
+    GstStream *stream =
+        gst_stream_collection_get_stream (playbin->collection, i);
+    GstStreamType curtype = gst_stream_get_stream_type (stream);
+    if (stype == curtype) {
+      gboolean already_there = FALSE;
+      const gchar *sid = gst_stream_get_stream_id (stream);
+      for (tmp = res; tmp; tmp = tmp->next) {
+        const gchar *other = (const gchar *) tmp->data;
+        if (!g_strcmp0 (sid, other)) {
+          already_there = TRUE;
+          break;
+        }
+      }
+      if (!already_there) {
+        GST_DEBUG_OBJECT (playbin, "Adding stream %s", sid);
+        res = g_list_append (res, g_strdup (sid));
+      }
+    }
+  }
+
+  return res;
+}
+
+static GstEvent *
+update_select_streams_event (GstPlayBin3 * playbin, GstEvent * event)
+{
+  GList *streams = NULL;
+  GList *to_use;
+  gint combine_id;
+
+  if (!playbin->audio_stream_combiner && !playbin->video_stream_combiner &&
+      !playbin->text_stream_combiner) {
+    /* Nothing to do */
+    GST_DEBUG_OBJECT (playbin,
+        "No custom combiners, no need to modify SELECT_STREAMS event");
+    return event;
+  }
+
+  gst_event_parse_select_streams (event, &streams);
+  to_use = g_list_copy_deep (streams, (GCopyFunc) g_strdup, NULL);
+
+  /* For each combiner, we want to add all streams of that type to the
+   * selection */
+  if (playbin->audio_stream_combiner) {
+    to_use = extend_list_of_streams (playbin, GST_STREAM_TYPE_AUDIO, to_use);
+    combine_id =
+        get_combiner_stream_id (playbin,
+        &playbin->combiner[PLAYBIN_STREAM_AUDIO], streams);
+    if (combine_id != -1)
+      gst_play_bin3_set_current_audio_stream (playbin, combine_id);
+  }
+  if (playbin->video_stream_combiner) {
+    to_use = extend_list_of_streams (playbin, GST_STREAM_TYPE_VIDEO, to_use);
+    combine_id =
+        get_combiner_stream_id (playbin,
+        &playbin->combiner[PLAYBIN_STREAM_VIDEO], streams);
+    if (combine_id != -1)
+      gst_play_bin3_set_current_video_stream (playbin, combine_id);
+  }
+  if (playbin->text_stream_combiner) {
+    to_use = extend_list_of_streams (playbin, GST_STREAM_TYPE_TEXT, to_use);
+    combine_id =
+        get_combiner_stream_id (playbin,
+        &playbin->combiner[PLAYBIN_STREAM_TEXT], streams);
+    if (combine_id != -1)
+      gst_play_bin3_set_current_text_stream (playbin, combine_id);
+  }
+
+  gst_event_unref (event);
+  return gst_event_new_select_streams (to_use);
+}
+
+static gboolean
+gst_play_bin3_send_event (GstElement * element, GstEvent * event)
+{
+  GstPlayBin3 *playbin = GST_PLAY_BIN3 (element);
+
+  if (GST_EVENT_TYPE (event) == GST_EVENT_SELECT_STREAMS) {
+    gboolean res;
+
+    GST_PLAY_BIN3_LOCK (playbin);
+    GST_LOG_OBJECT (playbin,
+        "App sent select-streams, we won't do anything ourselves now");
+    /* This is probably already false, but it doesn't hurt to be sure */
+    playbin->do_stream_selections = FALSE;
+
+    /* If we have custom combiners, we need to extend the selection with
+     * the list of all streams for that given type since we will be handling
+     * the selection with that combiner */
+    event = update_select_streams_event (playbin, event);
+
+    /* Send this event directly to decodebin, so it works even
+     * if decodebin didn't add any pads yet */
+    res = gst_element_send_event (playbin->decodebin, event);
+    GST_PLAY_BIN3_UNLOCK (playbin);
+
+    return res;
+  }
+
+  /* Send event directly to playsink instead of letting GstBin iterate
+   * over all sink elements. The latter might send the event multiple times
+   * in case the SEEK causes a reconfiguration of the pipeline, as can easily
+   * happen with adaptive streaming demuxers.
+   *
+   * What would then happen is that the iterator would be reset, we send the
+   * event again, and on the second time it will fail in the majority of cases
+   * because the pipeline is still being reconfigured
+   */
+  if (GST_EVENT_IS_UPSTREAM (event)) {
+    return gst_element_send_event (GST_ELEMENT_CAST (playbin->playsink), event);
+  }
+
+  return GST_ELEMENT_CLASS (parent_class)->send_event (element, event);
+}
+
+/* Called with playbin lock held */
+static void
+do_stream_selection (GstPlayBin3 * playbin)
+{
+  GstStreamCollection *collection;
+  guint i, nb_streams;
+  GList *streams = NULL;
+  gint nb_video = 0, nb_audio = 0, nb_text = 0;
+  GstStreamType chosen_stream_types = 0;
+
+  collection = playbin->collection;
+  if (collection == NULL) {
+    GST_LOG_OBJECT (playbin, "No stream collection. Not doing stream-select");
+    return;
+  }
+
+  nb_streams = gst_stream_collection_get_size (collection);
+  if (nb_streams == 0) {
+    GST_INFO_OBJECT (playbin, "Empty collection received! Ignoring");
+  }
+
+  /* Iterate the collection and choose the streams that match
+   * either the current-* setting, or all streams of a type if there's
+   * a combiner for that type */
+  for (i = 0; i < nb_streams; i++) {
+    GstStream *stream = gst_stream_collection_get_stream (collection, i);
+    GstStreamType stream_type = gst_stream_get_stream_type (stream);
+    const gchar *stream_id = gst_stream_get_stream_id (stream);
+    gint pb_stream_type = -1;
+    gboolean select_this = FALSE;
+
+    switch (stream_type) {
+      case GST_STREAM_TYPE_AUDIO:
+        pb_stream_type = PLAYBIN_STREAM_AUDIO;
+        /* Select the stream if it's the current one or if there's a custom selector */
+        select_this =
+            (nb_audio == playbin->current_audio ||
+            (playbin->current_audio == -1 && nb_audio == 0) ||
+            playbin->audio_stream_combiner != NULL);
+        nb_audio++;
+        break;
+      case GST_STREAM_TYPE_VIDEO:
+        pb_stream_type = PLAYBIN_STREAM_AUDIO;
+        select_this =
+            (nb_video == playbin->current_video ||
+            (playbin->current_video == -1 && nb_video == 0) ||
+            playbin->video_stream_combiner != NULL);
+        nb_video++;
+        break;
+      case GST_STREAM_TYPE_TEXT:
+        pb_stream_type = PLAYBIN_STREAM_TEXT;
+        select_this =
+            (nb_text == playbin->current_text ||
+            (playbin->current_text == -1 && nb_text == 0) ||
+            playbin->text_stream_combiner != NULL);
+        nb_text++;
+        break;
+      default:
+        break;
+    }
+    if (pb_stream_type < 0) {
+      GST_DEBUG_OBJECT (playbin,
+          "Stream %d (id %s) of unhandled type %s. Ignoring", i, stream_id,
+          gst_stream_type_get_name (stream_type));
+      continue;
+    }
+    if (select_this) {
+      GST_DEBUG_OBJECT (playbin, "Selecting stream %s of type %s",
+          stream_id, gst_stream_type_get_name (stream_type));
+      /* Don't build the list if we're not in charge of stream selection */
+      if (playbin->do_stream_selections)
+        streams = g_list_append (streams, (gpointer) stream_id);
+      chosen_stream_types |= stream_type;
+    }
+  }
+
+  if (streams) {
+    GstEvent *ev = gst_event_new_select_streams (streams);
+    gst_element_send_event (playbin->decodebin, ev);
+    g_list_free (streams);
+  }
+  playbin->selected_stream_types = chosen_stream_types;
+}
+
+/* mime types we are not handling on purpose right now, don't post a
+ * missing-plugin message for these */
+static const gchar *blacklisted_mimes[] = {
+  NULL
+};
+
+static void
+notify_all_streams (GstPlayBin3 * playbin, GstStreamCollection * collection)
+{
+  gint i, nb_streams;
+  nb_streams = gst_stream_collection_get_size (collection);
+  for (i = 0; i < nb_streams; i++)
+    notify_tags_for_stream (playbin, collection,
+        gst_stream_collection_get_stream (collection, i));
+}
+
+static void
+gst_play_bin3_handle_message (GstBin * bin, GstMessage * msg)
+{
+  GstPlayBin3 *playbin = GST_PLAY_BIN3 (bin);
+
+  if (gst_is_missing_plugin_message (msg)) {
+    gchar *detail;
+    guint i;
+
+    detail = gst_missing_plugin_message_get_installer_detail (msg);
+    for (i = 0; detail != NULL && blacklisted_mimes[i] != NULL; ++i) {
+      if (strstr (detail, "|decoder-") && strstr (detail, blacklisted_mimes[i])) {
+        GST_LOG_OBJECT (bin, "suppressing message %" GST_PTR_FORMAT, msg);
+        gst_message_unref (msg);
+        g_free (detail);
+        return;
+      }
+    }
+    g_free (detail);
+  } else if (GST_MESSAGE_TYPE (msg) == GST_MESSAGE_STREAM_START) {
+    GstSourceGroup *new_group = playbin->curr_group;
+    GstMessage *buffering_msg = NULL;
+
+    GST_SOURCE_GROUP_LOCK (new_group);
+    new_group->stream_changed_pending = FALSE;
+    if (new_group->pending_buffering_msg) {
+      buffering_msg = new_group->pending_buffering_msg;
+      new_group->pending_buffering_msg = NULL;
+    }
+    GST_SOURCE_GROUP_UNLOCK (new_group);
+
+    GST_DEBUG_OBJECT (playbin, "Stream start from new group %p", new_group);
+
+    if (buffering_msg) {
+      GST_DEBUG_OBJECT (playbin, "Posting pending buffering message: %"
+          GST_PTR_FORMAT, buffering_msg);
+      GST_BIN_CLASS (parent_class)->handle_message (bin, buffering_msg);
+    }
+
+  } else if (GST_MESSAGE_TYPE (msg) == GST_MESSAGE_BUFFERING) {
+    GstSourceGroup *group = playbin->curr_group;
+    gboolean pending;
+
+    /* drop buffering messages from child queues while we are switching
+     * groups (because the application set a new uri in about-to-finish)
+     * if the playsink queue still has buffers to play */
+
+    GST_SOURCE_GROUP_LOCK (group);
+    pending = group->stream_changed_pending;
+
+    if (pending) {
+      GST_DEBUG_OBJECT (playbin, "Storing buffering message from pending group "
+          "%p %" GST_PTR_FORMAT, group, msg);
+      gst_message_replace (&group->pending_buffering_msg, msg);
+      gst_message_unref (msg);
+      msg = NULL;
+    }
+    GST_SOURCE_GROUP_UNLOCK (group);
+  } else if (GST_MESSAGE_TYPE (msg) == GST_MESSAGE_STREAM_COLLECTION) {
+    GstStreamCollection *collection = NULL;
+    GstObject *src = GST_MESSAGE_SRC (msg);
+    gboolean pstate = playbin->do_stream_selections;
+
+    gst_message_parse_stream_collection (msg, &collection);
+
+    if (collection) {
+      GST_PLAY_BIN3_LOCK (playbin);
+      GST_DEBUG_OBJECT (playbin,
+          "STREAM_COLLECTION: Got a collection from %" GST_PTR_FORMAT, src);
+      if (playbin->collection && playbin->collection_notify_id) {
+        g_signal_handler_disconnect (playbin->collection,
+            playbin->collection_notify_id);
+        playbin->collection_notify_id = 0;
+      }
+      gst_object_replace ((GstObject **) & playbin->collection,
+          (GstObject *) collection);
+      playbin->collection_notify_id =
+          g_signal_connect (collection, "stream-notify::tags",
+          (GCallback) notify_tags_cb, playbin);
+      update_combiner_info (playbin);
+      if (pstate)
+        playbin->do_stream_selections = FALSE;
+      do_stream_selection (playbin);
+      if (pstate)
+        playbin->do_stream_selections = TRUE;
+      GST_PLAY_BIN3_UNLOCK (playbin);
+
+      notify_all_streams (playbin, collection);
+    }
+  } else if (GST_MESSAGE_TYPE (msg) == GST_MESSAGE_STREAMS_SELECTED) {
+    GstStreamCollection *collection = NULL;
+    GstObject *src = GST_MESSAGE_SRC (msg);
+    gboolean pstate = playbin->do_stream_selections;
+
+    gst_message_parse_streams_selected (msg, &collection);
+    if (collection) {
+      guint i, len;
+      GST_PLAY_BIN3_LOCK (playbin);
+      GST_DEBUG_OBJECT (playbin,
+          "STREAMS_SELECTED: Got a collection from %" GST_PTR_FORMAT, src);
+      if (playbin->collection && playbin->collection_notify_id) {
+        g_signal_handler_disconnect (playbin->collection,
+            playbin->collection_notify_id);
+        playbin->collection_notify_id = 0;
+      }
+      gst_object_replace ((GstObject **) & playbin->collection,
+          (GstObject *) collection);
+      playbin->collection_notify_id =
+          g_signal_connect (collection, "stream-notify::tags",
+          (GCallback) notify_tags_cb, playbin);
+      update_combiner_info (playbin);
+      len = gst_message_streams_selected_get_size (msg);
+      for (i = 0; i < len; i++) {
+        set_selected_stream (playbin,
+            gst_message_streams_selected_get_stream (msg, i));
+      }
+      if (pstate)
+        playbin->do_stream_selections = FALSE;
+      do_stream_selection (playbin);
+      if (pstate)
+        playbin->do_stream_selections = TRUE;
+      GST_PLAY_BIN3_UNLOCK (playbin);
+
+      notify_all_streams (playbin, collection);
+    }
+  }
+
+  if (msg)
+    GST_BIN_CLASS (parent_class)->handle_message (bin, msg);
+}
+
+static void
+combiner_active_pad_changed (GObject * combiner, GParamSpec * pspec,
+    GstPlayBin3 * playbin)
+{
+  const gchar *property;
+  GstSourceCombine *combine = NULL;
+  GPtrArray *channels = NULL;
+  int i;
+
+  GST_PLAY_BIN3_LOCK (playbin);
+
+  for (i = 0; i < PLAYBIN_STREAM_LAST; i++) {
+    if (combiner == G_OBJECT (playbin->combiner[i].combiner)) {
+      combine = &playbin->combiner[i];
+      channels = playbin->channels[i];
+    }
+  }
+
+  /* We got a pad-change after our group got switched out; no need to notify */
+  if (!combine) {
+    GST_PLAY_BIN3_UNLOCK (playbin);
+    return;
+  }
+
+  switch (combine->type) {
+    case GST_PLAY_SINK_TYPE_VIDEO:
+    case GST_PLAY_SINK_TYPE_VIDEO_RAW:
+      property = "current-video";
+      playbin->current_video = get_current_stream_number (playbin,
+          combine, channels);
+
+      if (playbin->video_pending_flush_finish) {
+        playbin->video_pending_flush_finish = FALSE;
+        GST_PLAY_BIN3_UNLOCK (playbin);
+        gst_play_bin3_send_custom_event (GST_OBJECT (combiner),
+            "playsink-custom-video-flush-finish");
+        goto notify;
+      }
+      break;
+    case GST_PLAY_SINK_TYPE_AUDIO:
+    case GST_PLAY_SINK_TYPE_AUDIO_RAW:
+      property = "current-audio";
+      playbin->current_audio = get_current_stream_number (playbin,
+          combine, channels);
+
+      if (playbin->audio_pending_flush_finish) {
+        playbin->audio_pending_flush_finish = FALSE;
+        GST_PLAY_BIN3_UNLOCK (playbin);
+        gst_play_bin3_send_custom_event (GST_OBJECT (combiner),
+            "playsink-custom-audio-flush-finish");
+        goto notify;
+      }
+      break;
+    case GST_PLAY_SINK_TYPE_TEXT:
+      property = "current-text";
+      playbin->current_text = get_current_stream_number (playbin,
+          combine, channels);
+
+      if (playbin->text_pending_flush_finish) {
+        playbin->text_pending_flush_finish = FALSE;
+        GST_PLAY_BIN3_UNLOCK (playbin);
+        gst_play_bin3_send_custom_event (GST_OBJECT (combiner),
+            "playsink-custom-subtitle-flush-finish");
+        goto notify;
+      }
+      break;
+    default:
+      property = NULL;
+  }
+  GST_PLAY_BIN3_UNLOCK (playbin);
+
+notify:
+  if (property)
+    g_object_notify (G_OBJECT (playbin), property);
+}
+
+static GstCaps *
+update_video_multiview_caps (GstPlayBin3 * playbin, GstCaps * caps)
+{
+  GstVideoMultiviewMode mv_mode;
+  GstVideoMultiviewMode cur_mv_mode;
+  GstVideoMultiviewFlags mv_flags, cur_mv_flags;
+  GstStructure *s;
+  const gchar *mview_mode_str;
+  GstCaps *out_caps;
+
+  GST_OBJECT_LOCK (playbin);
+  mv_mode = (GstVideoMultiviewMode) playbin->multiview_mode;
+  mv_flags = playbin->multiview_flags;
+  GST_OBJECT_UNLOCK (playbin);
+
+  if (mv_mode == GST_VIDEO_MULTIVIEW_MODE_NONE)
+    return NULL;
+
+  cur_mv_mode = GST_VIDEO_MULTIVIEW_MODE_NONE;
+  cur_mv_flags = GST_VIDEO_MULTIVIEW_FLAGS_NONE;
+
+  s = gst_caps_get_structure (caps, 0);
+
+  gst_structure_get_flagset (s, "multiview-flags", &cur_mv_flags, NULL);
+  if ((mview_mode_str = gst_structure_get_string (s, "multiview-mode")))
+    cur_mv_mode = gst_video_multiview_mode_from_caps_string (mview_mode_str);
+
+  /* We can't override an existing annotated multiview mode, except
+   * maybe (in the future) we could change some flags. */
+  if ((gint) cur_mv_mode > GST_VIDEO_MULTIVIEW_MAX_FRAME_PACKING) {
+    GST_INFO_OBJECT (playbin, "Cannot override existing multiview mode");
+    return NULL;
+  }
+
+  mview_mode_str = gst_video_multiview_mode_to_caps_string (mv_mode);
+  g_assert (mview_mode_str != NULL);
+  out_caps = gst_caps_copy (caps);
+  s = gst_caps_get_structure (out_caps, 0);
+
+  gst_structure_set (s, "multiview-mode", G_TYPE_STRING, mview_mode_str,
+      "multiview-flags", GST_TYPE_VIDEO_MULTIVIEW_FLAGSET, mv_flags,
+      GST_FLAG_SET_MASK_EXACT, NULL);
+
+  return out_caps;
+}
+
+static GstPadProbeReturn
+_decodebin_event_probe (GstPad * pad, GstPadProbeInfo * info, gpointer udata)
+{
+  GstPadProbeReturn ret = GST_PAD_PROBE_OK;
+  GstPlayBin3 *playbin = (GstPlayBin3 *) udata;
+  GstEvent *event = GST_PAD_PROBE_INFO_DATA (info);
+
+  switch (GST_EVENT_TYPE (event)) {
+    case GST_EVENT_CAPS:{
+      GstCaps *caps = NULL;
+      const GstStructure *s;
+      const gchar *name;
+
+      gst_event_parse_caps (event, &caps);
+      /* If video caps, check if we should override multiview flags */
+      s = gst_caps_get_structure (caps, 0);
+      name = gst_structure_get_name (s);
+      if (g_str_has_prefix (name, "video/")) {
+        caps = update_video_multiview_caps (playbin, caps);
+        if (caps) {
+          gst_event_unref (event);
+          event = gst_event_new_caps (caps);
+          GST_PAD_PROBE_INFO_DATA (info) = event;
+          gst_caps_unref (caps);
+        }
+      }
+      break;
+    }
+    default:
+      break;
+  }
+
+  return ret;
+}
+
+static gint
+find_index_for_stream_by_type (GstStreamCollection * collection,
+    GstStream * stream)
+{
+  gint nb_streams = gst_stream_collection_get_size (collection);
+  gint i, cur_idx = 0;
+  GstStreamType target_type = gst_stream_get_stream_type (stream);
+
+  /* Count the streams of the type we want to find the index of the one we want */
+  for (i = 0; i < nb_streams; i++) {
+    GstStream *cur_stream = gst_stream_collection_get_stream (collection, i);
+    if (stream == cur_stream)
+      return cur_idx;
+    if (gst_stream_get_stream_type (cur_stream) == target_type)
+      cur_idx++;
+  }
+
+  return -1;
+}
+
+static void
+notify_tags_for_stream (GstPlayBin3 * playbin, GstStreamCollection * collection,
+    GstStream * stream)
+{
+  GstStreamType stream_type = gst_stream_get_stream_type (stream);
+  gint stream_idx = find_index_for_stream_by_type (collection, stream);
+  gint signal;
+
+  GST_DEBUG_OBJECT (playbin, "Tags on stream %" GST_PTR_FORMAT
+      " with stream idx %d and type %d have changed",
+      stream, stream_idx, stream_type);
+
+  switch (stream_type) {
+    case GST_STREAM_TYPE_VIDEO:
+      signal = SIGNAL_VIDEO_TAGS_CHANGED;
+      break;
+    case GST_STREAM_TYPE_AUDIO:
+      signal = SIGNAL_AUDIO_TAGS_CHANGED;
+      break;
+    case GST_STREAM_TYPE_TEXT:
+      signal = SIGNAL_TEXT_TAGS_CHANGED;
+      break;
+    default:
+      signal = -1;
+      break;
+  }
+
+  if (signal >= 0)
+    g_signal_emit (G_OBJECT (playbin), gst_play_bin3_signals[signal], 0,
+        stream_idx);
+}
+
+static void
+notify_tags_cb (GstStreamCollection * collection, GstStream * stream,
+    GParamSpec * pspec, GstPlayBin3 * playbin)
+{
+  notify_tags_for_stream (playbin, collection, stream);
+}
+
+/* this function is called when a new pad is added to decodebin. We check the
+ * type of the pad and add it to the combiner element
+ */
+static void
+pad_added_cb (GstElement * decodebin, GstPad * pad, GstPlayBin3 * playbin)
+{
+  GstPad *sinkpad;
+  GstPadLinkReturn res;
+  GstSourceCombine *combine = NULL;
+  GstStreamType stream_type;
+  gint pb_stream_type = -1;
+  gboolean changed = FALSE;
+  GstElement *custom_combiner = NULL;
+  gulong event_probe_handler;
+  gchar *pad_name;
+
+  GST_PLAY_BIN3_SHUTDOWN_LOCK (playbin, shutdown);
+
+  pad_name = gst_object_get_name (GST_OBJECT (pad));
+
+  GST_DEBUG_OBJECT (playbin, "decoded pad %s:%s added",
+      GST_DEBUG_PAD_NAME (pad));
+
+  /* major type of the pad, this determines the combiner to use,
+     try exact match first */
+  if (g_str_has_prefix (pad_name, "video")) {
+    stream_type = GST_STREAM_TYPE_VIDEO;
+    pb_stream_type = PLAYBIN_STREAM_VIDEO;
+    custom_combiner = playbin->video_stream_combiner;
+  } else if (g_str_has_prefix (pad_name, "audio")) {
+    stream_type = GST_STREAM_TYPE_AUDIO;
+    pb_stream_type = PLAYBIN_STREAM_AUDIO;
+    custom_combiner = playbin->audio_stream_combiner;
+  } else if (g_str_has_prefix (pad_name, "text")) {
+    stream_type = GST_STREAM_TYPE_TEXT;
+    pb_stream_type = PLAYBIN_STREAM_TEXT;
+    custom_combiner = playbin->text_stream_combiner;
+  }
+
+  g_free (pad_name);
+
+  /* no stream type found for the media type, don't bother linking it to a
+   * combiner. This will leave the pad unlinked and thus ignored. */
+  if (pb_stream_type < 0) {
+    GST_PLAY_BIN3_SHUTDOWN_UNLOCK (playbin);
+    goto unknown_type;
+  }
+
+  combine = &playbin->combiner[pb_stream_type];
+
+  if (custom_combiner && combine->combiner == NULL) {
+    combine->combiner = custom_combiner;
+    /* find out which properties the stream combiner supports */
+    combine->has_active_pad =
+        g_object_class_find_property (G_OBJECT_GET_CLASS (combine->combiner),
+        "active-pad") != NULL;
+
+    if (!custom_combiner) {
+      /* sync-mode=1, use clock */
+      if (combine->type == GST_PLAY_SINK_TYPE_TEXT)
+        g_object_set (combine->combiner, "sync-streams", TRUE,
+            "sync-mode", 1, "cache-buffers", TRUE, NULL);
+      else
+        g_object_set (combine->combiner, "sync-streams", TRUE, NULL);
+    }
+
+    if (combine->has_active_pad)
+      g_signal_connect (combine->combiner, "notify::active-pad",
+          G_CALLBACK (combiner_active_pad_changed), playbin);
+
+    GST_DEBUG_OBJECT (playbin, "adding new stream combiner %p",
+        combine->combiner);
+    gst_element_set_state (combine->combiner, GST_STATE_PAUSED);
+    gst_bin_add (GST_BIN_CAST (playbin), combine->combiner);
+  }
+
+  GST_PLAY_BIN3_SHUTDOWN_UNLOCK (playbin);
+
+  if (combine->srcpad == NULL) {
+    if (combine->combiner) {
+      /* save source pad of the combiner */
+      combine->srcpad = gst_element_get_static_pad (combine->combiner, "src");
+    } else {
+      /* no combiner, use the pad as the source pad then */
+      combine->srcpad = gst_object_ref (pad);
+    }
+
+    /* block the combiner srcpad. It's possible that multiple source elements
+     * pushing data into the combiners before we have a chance to collect all
+     * streams and connect the sinks, resulting in not-linked errors. After we
+     * configure the sinks we will unblock them all. */
+    GST_DEBUG_OBJECT (playbin, "blocking %" GST_PTR_FORMAT, combine->srcpad);
+    combine->block_id =
+        gst_pad_add_probe (combine->srcpad, GST_PAD_PROBE_TYPE_BLOCK_DOWNSTREAM,
+        block_serialized_data_cb, NULL, NULL);
+  }
+
+  /* get sinkpad for the new stream */
+  if (combine->combiner) {
+    if ((sinkpad = gst_element_get_request_pad (combine->combiner, "sink_%u"))) {
+      GST_DEBUG_OBJECT (playbin, "got pad %s:%s from combiner",
+          GST_DEBUG_PAD_NAME (sinkpad));
+
+      /* find out which properties the sink pad supports */
+      combine->has_always_ok =
+          g_object_class_find_property (G_OBJECT_GET_CLASS (sinkpad),
+          "always-ok") != NULL;
+
+      /* store the combiner for the pad */
+      g_object_set_data (G_OBJECT (sinkpad), "playbin.combine", combine);
+
+      /* store the pad in the array */
+      GST_DEBUG_OBJECT (playbin, "pad %p added to array", sinkpad);
+      g_ptr_array_add (combine->channels, sinkpad);
+
+      res = gst_pad_link (pad, sinkpad);
+      if (GST_PAD_LINK_FAILED (res))
+        goto link_failed;
+
+      /* store combiner pad so we can release it */
+      g_object_set_data (G_OBJECT (pad), "playbin.sinkpad", sinkpad);
+
+      changed = TRUE;
+      GST_DEBUG_OBJECT (playbin, "linked pad %s:%s to combiner %p",
+          GST_DEBUG_PAD_NAME (pad), combine->combiner);
+    } else {
+      goto request_pad_failed;
+    }
+  } else {
+    /* no combiner, don't configure anything, we'll link the new pad directly to
+     * the sink. */
+    changed = FALSE;
+    sinkpad = NULL;
+
+    /* store the combiner for the pad */
+    g_object_set_data (G_OBJECT (pad), "playbin.combine", combine);
+  }
+
+  event_probe_handler =
+      gst_pad_add_probe (pad, GST_PAD_PROBE_TYPE_EVENT_DOWNSTREAM,
+      _decodebin_event_probe, playbin, NULL);
+  g_object_set_data (G_OBJECT (pad), "playbin.event_probe_id",
+      ULONG_TO_POINTER (event_probe_handler));
+
+  if (changed) {
+    int signal;
+
+    switch (combine->type) {
+      case GST_PLAY_SINK_TYPE_VIDEO:
+      case GST_PLAY_SINK_TYPE_VIDEO_RAW:
+        signal = SIGNAL_VIDEO_CHANGED;
+        break;
+      case GST_PLAY_SINK_TYPE_AUDIO:
+      case GST_PLAY_SINK_TYPE_AUDIO_RAW:
+        signal = SIGNAL_AUDIO_CHANGED;
+        break;
+      case GST_PLAY_SINK_TYPE_TEXT:
+        signal = SIGNAL_TEXT_CHANGED;
+        break;
+      default:
+        signal = -1;
+    }
+
+    if (signal >= 0) {
+      g_signal_emit (G_OBJECT (playbin), gst_play_bin3_signals[signal], 0,
+          NULL);
+    }
+  }
+
+  playbin->active_stream_types |= stream_type;
+
+  /* If we're expecting either audio or video,
+   * wait for them to appear before configuring playsink */
+  if ((playbin->selected_stream_types & ~playbin->active_stream_types &
+          (GST_STREAM_TYPE_VIDEO | GST_STREAM_TYPE_AUDIO))
+      == 0) {
+    no_more_pads_cb (decodebin, playbin);
+  } else {
+    GST_LOG_OBJECT (playbin, "Active stream types 0x%x, want 0x%x. Waiting",
+        playbin->active_stream_types, playbin->selected_stream_types);
+  }
+
+  return;
+
+  /* ERRORS */
+unknown_type:
+  GST_DEBUG_OBJECT (playbin, "Ignoring pad with unknown type");
+  return;
+
+link_failed:
+  {
+    GST_ERROR_OBJECT (playbin,
+        "failed to link pad %s:%s to combiner, reason %s (%d)",
+        GST_DEBUG_PAD_NAME (pad), gst_pad_link_get_name (res), res);
+    return;
+  }
+request_pad_failed:
+  GST_ELEMENT_ERROR (playbin, CORE, PAD,
+      ("Internal playbin error."),
+      ("Failed to get request pad from combiner %p.", combine->combiner));
+  return;
+shutdown:
+  {
+    GST_DEBUG ("ignoring, we are shutting down. Pad will be left unlinked");
+    /* not going to done as we didn't request the caps */
+    return;
+  }
+}
+
+/* called when a pad is removed from the decodebin. We unlink the pad from
+ * the combiner. This will make the combiner select a new pad. */
+static void
+pad_removed_cb (GstElement * decodebin, GstPad * pad, GstPlayBin3 * playbin)
+{
+  GstPad *peer;
+  GstElement *combiner;
+  GstSourceCombine *combine;
+  int signal = -1;
+  gulong event_probe_handler;
+
+  GST_DEBUG_OBJECT (playbin,
+      "decoded pad %s:%s removed", GST_DEBUG_PAD_NAME (pad));
+
+  GST_PLAY_BIN3_LOCK (playbin);
+
+  if ((event_probe_handler =
+          POINTER_TO_ULONG (g_object_get_data (G_OBJECT (pad),
+                  "playbin.event_probe_id")))) {
+    gst_pad_remove_probe (pad, event_probe_handler);
+    g_object_set_data (G_OBJECT (pad), "playbin.event_probe_id", NULL);
+  }
+
+  if ((combine = g_object_get_data (G_OBJECT (pad), "playbin.combine"))) {
+    g_assert (combine->combiner == NULL);
+    g_assert (combine->srcpad == pad);
+    source_combine_remove_pads (playbin, combine);
+    goto exit;
+  }
+
+  /* get the combiner sinkpad */
+  if (!(peer = g_object_get_data (G_OBJECT (pad), "playbin.sinkpad")))
+    goto not_linked;
+
+  /* unlink the pad now (can fail, the pad is unlinked before it's removed) */
+  gst_pad_unlink (pad, peer);
+
+  /* get combiner */
+  combiner = GST_ELEMENT_CAST (gst_pad_get_parent (peer));
+  g_assert (combiner != NULL);
+
+  if ((combine = g_object_get_data (G_OBJECT (peer), "playbin.combine"))) {
+    /* remove the pad from the array */
+    g_ptr_array_remove (combine->channels, peer);
+    GST_DEBUG_OBJECT (playbin, "pad %p removed from array", peer);
+
+    /* get the correct type-changed signal */
+    switch (combine->type) {
+      case GST_PLAY_SINK_TYPE_VIDEO:
+      case GST_PLAY_SINK_TYPE_VIDEO_RAW:
+        signal = SIGNAL_VIDEO_CHANGED;
+        break;
+      case GST_PLAY_SINK_TYPE_AUDIO:
+      case GST_PLAY_SINK_TYPE_AUDIO_RAW:
+        signal = SIGNAL_AUDIO_CHANGED;
+        break;
+      case GST_PLAY_SINK_TYPE_TEXT:
+        signal = SIGNAL_TEXT_CHANGED;
+        break;
+      default:
+        signal = -1;
+    }
+
+    if (!combine->channels->len && combine->combiner) {
+      GST_DEBUG_OBJECT (playbin, "all combiner sinkpads removed");
+      GST_DEBUG_OBJECT (playbin, "removing combiner %p", combine->combiner);
+      source_combine_remove_pads (playbin, combine);
+      gst_element_set_state (combine->combiner, GST_STATE_NULL);
+      gst_bin_remove (GST_BIN_CAST (playbin), combine->combiner);
+      combine->combiner = NULL;
+    }
+  }
+
+  /* release the pad to the combiner, this will make the combiner choose a new
+   * pad. */
+  gst_element_release_request_pad (combiner, peer);
+  gst_object_unref (peer);
+
+  gst_object_unref (combiner);
+exit:
+  GST_PLAY_BIN3_UNLOCK (playbin);
+
+  if (signal >= 0)
+    g_signal_emit (G_OBJECT (playbin), gst_play_bin3_signals[signal], 0, NULL);
+
+  return;
+
+  /* ERRORS */
+not_linked:
+  {
+    GST_DEBUG_OBJECT (playbin, "pad not linked");
+    goto exit;
+  }
+}
+
+
+static gint
+select_stream_cb (GstElement * decodebin, GstStreamCollection * collection,
+    GstStream * stream, GstPlayBin3 * playbin)
+{
+  GstStreamType stype = gst_stream_get_stream_type (stream);
+  GstElement *combiner = NULL;
+
+  switch (stype) {
+    case GST_STREAM_TYPE_AUDIO:
+      combiner = playbin->audio_stream_combiner;
+      break;
+    case GST_STREAM_TYPE_VIDEO:
+      combiner = playbin->video_stream_combiner;
+      break;
+    case GST_STREAM_TYPE_TEXT:
+      combiner = playbin->text_stream_combiner;
+      break;
+    default:
+      break;
+  }
+
+  if (combiner) {
+    GST_DEBUG_OBJECT (playbin, "Got a combiner, requesting stream activation");
+    return 1;
+  }
+
+  /* Let decodebin3 decide otherwise */
+  return -1;
+}
+
+/* we get called when all pads are available and we must connect the sinks to
+ * them.
+ * The main purpose of the code is to see if we have video/audio and subtitles
+ * and pick the right pipelines to display them.
+ *
+ * The combiners installed on the group tell us about the presence of
+ * audio/video and subtitle streams. This allows us to see if we need
+ * visualisation, video or/and audio.
+ */
+static void
+no_more_pads_cb (GstElement * decodebin, GstPlayBin3 * playbin)
+{
+  GstSourceGroup *group;
+  GstPadLinkReturn res;
+  gint i;
+  gboolean configure;
+
+  GST_DEBUG_OBJECT (playbin, "no more pads");
+
+  GST_PLAY_BIN3_SHUTDOWN_LOCK (playbin, shutdown);
+
+  GST_PLAY_BIN3_LOCK (playbin);
+  group = playbin->curr_group;
+
+  for (i = 0; i < PLAYBIN_STREAM_LAST; i++) {
+    GstSourceCombine *combine = &playbin->combiner[i];
+
+    /* check if the specific media type was detected and thus has a combiner
+     * created for it. If there is the media type, get a sinkpad from the sink
+     * and link it. We only do this if we have not yet requested the sinkpad
+     * before. */
+    if (combine->srcpad && combine->sinkpad == NULL) {
+      GST_DEBUG_OBJECT (playbin, "requesting new sink pad %d", combine->type);
+      combine->sinkpad =
+          gst_play_sink_request_pad (playbin->playsink, combine->type);
+      gst_object_ref (combine->sinkpad);
+    } else if (combine->srcpad && combine->sinkpad) {
+      GST_DEBUG_OBJECT (playbin, "re-using sink pad %d", combine->type);
+    } else if (combine->sinkpad && combine->srcpad == NULL) {
+      GST_DEBUG_OBJECT (playbin, "releasing sink pad %d", combine->type);
+      gst_play_sink_release_pad (playbin->playsink, combine->sinkpad);
+      gst_object_unref (combine->sinkpad);
+      combine->sinkpad = NULL;
+    }
+    if (combine->sinkpad && combine->srcpad &&
+        !gst_pad_is_linked (combine->srcpad)) {
+      res = gst_pad_link (combine->srcpad, combine->sinkpad);
+      GST_DEBUG_OBJECT (playbin, "linked type %s, result: %d",
+          combine->media_type, res);
+      if (res != GST_PAD_LINK_OK) {
+        GST_ELEMENT_ERROR (playbin, CORE, PAD,
+            ("Internal playbin error."),
+            ("Failed to link combiner to sink. Error %d", res));
+      }
+    }
+  }
+  GST_PLAY_BIN3_UNLOCK (playbin);
+
+  GST_SOURCE_GROUP_LOCK (group);
+  GST_DEBUG_OBJECT (playbin, "pending %d > %d", group->pending,
+      group->pending - 1);
+
+  if (group->pending > 0)
+    group->pending--;
+
+  if (group->pending == 0) {
+    /* we are the last group to complete, we will configure the output and then
+     * signal the other waiters. */
+    GST_LOG_OBJECT (playbin, "last group complete");
+    configure = TRUE;
+  } else {
+    GST_LOG_OBJECT (playbin, "have more pending groups");
+    configure = FALSE;
+  }
+  GST_SOURCE_GROUP_UNLOCK (group);
+
+  if (configure) {
+    /* if we have custom sinks, configure them now */
+    GST_SOURCE_GROUP_LOCK (group);
+
+    if (group->audio_sink) {
+      GST_INFO_OBJECT (playbin, "setting custom audio sink %" GST_PTR_FORMAT,
+          group->audio_sink);
+      gst_play_sink_set_sink (playbin->playsink, GST_PLAY_SINK_TYPE_AUDIO,
+          group->audio_sink);
+    }
+
+    if (group->video_sink) {
+      GST_INFO_OBJECT (playbin, "setting custom video sink %" GST_PTR_FORMAT,
+          group->video_sink);
+      gst_play_sink_set_sink (playbin->playsink, GST_PLAY_SINK_TYPE_VIDEO,
+          group->video_sink);
+    }
+
+    if (group->text_sink) {
+      GST_INFO_OBJECT (playbin, "setting custom text sink %" GST_PTR_FORMAT,
+          group->text_sink);
+      gst_play_sink_set_sink (playbin->playsink, GST_PLAY_SINK_TYPE_TEXT,
+          group->text_sink);
+    }
+
+    GST_SOURCE_GROUP_UNLOCK (group);
+
+    /* signal the other combiners that they can continue now. */
+    GST_PLAY_BIN3_LOCK (playbin);
+    /* unblock all combiners */
+    for (i = 0; i < PLAYBIN_STREAM_LAST; i++) {
+      GstSourceCombine *combine = &playbin->combiner[i];
+
+      if (combine->srcpad) {
+        GST_DEBUG_OBJECT (playbin, "unblocking %" GST_PTR_FORMAT,
+            combine->srcpad);
+        if (combine->block_id) {
+          gst_pad_remove_probe (combine->srcpad, combine->block_id);
+          combine->block_id = 0;
+        }
+      }
+    }
+    GST_PLAY_BIN3_UNLOCK (playbin);
+    gst_play_sink_reconfigure (playbin->playsink);
+  }
+
+  GST_PLAY_BIN3_SHUTDOWN_UNLOCK (playbin);
+
+  if (configure) {
+    do_async_done (playbin);
+  }
+
+  return;
+
+shutdown:
+  {
+    GST_DEBUG ("ignoring, we are shutting down");
+    /* Request a flushing pad from playsink that we then link to the combiner.
+     * Then we unblock the combiners so that they stop with a WRONG_STATE
+     * instead of a NOT_LINKED error.
+     */
+    GST_PLAY_BIN3_LOCK (playbin);
+    for (i = 0; i < PLAYBIN_STREAM_LAST; i++) {
+      GstSourceCombine *combine = &playbin->combiner[i];
+
+      if (combine->srcpad) {
+        if (combine->sinkpad == NULL) {
+          GST_DEBUG_OBJECT (playbin, "requesting new flushing sink pad");
+          combine->sinkpad =
+              gst_play_sink_request_pad (playbin->playsink,
+              GST_PLAY_SINK_TYPE_FLUSHING);
+          gst_object_ref (combine->sinkpad);
+          res = gst_pad_link (combine->srcpad, combine->sinkpad);
+          GST_DEBUG_OBJECT (playbin, "linked flushing, result: %d", res);
+        }
+        GST_DEBUG_OBJECT (playbin, "unblocking %" GST_PTR_FORMAT,
+            combine->srcpad);
+        if (combine->block_id) {
+          gst_pad_remove_probe (combine->srcpad, combine->block_id);
+          combine->block_id = 0;
+        }
+      }
+    }
+    GST_PLAY_BIN3_UNLOCK (playbin);
+    return;
+  }
+}
+
+#if 0
+static void
+drained_cb (GstElement * decodebin, GstSourceGroup * group)
+{
+  GstPlayBin3 *playbin;
+
+  playbin = group->playbin;
+
+  GST_DEBUG_OBJECT (playbin, "about to finish in group %p", group);
+
+  /* after this call, we should have a next group to activate or we EOS */
+  g_signal_emit (G_OBJECT (playbin),
+      gst_play_bin3_signals[SIGNAL_ABOUT_TO_FINISH], 0, NULL);
+
+  /* now activate the next group. If the app did not set a uri, this will
+   * fail and we can do EOS */
+  setup_next_source (playbin, GST_STATE_PAUSED);
+}
+#endif
+
+/* Like gst_element_factory_can_sink_any_caps() but doesn't
+ * allow ANY caps on the sinkpad template */
+static gboolean
+_factory_can_sink_caps (GstElementFactory * factory, GstCaps * caps)
+{
+  const GList *templs;
+
+  templs = gst_element_factory_get_static_pad_templates (factory);
+
+  while (templs) {
+    GstStaticPadTemplate *templ = (GstStaticPadTemplate *) templs->data;
+
+    if (templ->direction == GST_PAD_SINK) {
+      GstCaps *templcaps = gst_static_caps_get (&templ->static_caps);
+
+      if (!gst_caps_is_any (templcaps)
+          && gst_caps_is_subset (caps, templcaps)) {
+        gst_caps_unref (templcaps);
+        return TRUE;
+      }
+      gst_caps_unref (templcaps);
+    }
+    templs = g_list_next (templs);
+  }
+
+  return FALSE;
+}
+
+static void
+avelements_free (gpointer avelement)
+{
+  GstAVElement *elm = (GstAVElement *) avelement;
+
+  if (elm->dec)
+    gst_object_unref (elm->dec);
+  if (elm->sink)
+    gst_object_unref (elm->sink);
+  g_slice_free (GstAVElement, elm);
+}
+
+static gint
+avelement_compare_decoder (gconstpointer p1, gconstpointer p2,
+    gpointer user_data)
+{
+  GstAVElement *v1, *v2;
+
+  v1 = (GstAVElement *) p1;
+  v2 = (GstAVElement *) p2;
+
+  return strcmp (GST_OBJECT_NAME (v1->dec), GST_OBJECT_NAME (v2->dec));
+}
+
+static gint
+avelement_lookup_decoder (gconstpointer p1, gconstpointer p2,
+    gpointer user_data)
+{
+  GstAVElement *v1;
+  GstElementFactory *f2;
+
+  v1 = (GstAVElement *) p1;
+  f2 = (GstElementFactory *) p2;
+
+  return strcmp (GST_OBJECT_NAME (v1->dec), GST_OBJECT_NAME (f2));
+}
+
+static gint
+avelement_compare (gconstpointer p1, gconstpointer p2)
+{
+  GstAVElement *v1, *v2;
+  GstPluginFeature *fd1, *fd2, *fs1, *fs2;
+  gint64 diff, v1_rank, v2_rank;
+
+  v1 = (GstAVElement *) p1;
+  v2 = (GstAVElement *) p2;
+
+  fd1 = (GstPluginFeature *) v1->dec;
+  fd2 = (GstPluginFeature *) v2->dec;
+
+  /* If both have a sink, we also compare their ranks */
+  if (v1->sink && v2->sink) {
+    fs1 = (GstPluginFeature *) v1->sink;
+    fs2 = (GstPluginFeature *) v2->sink;
+    v1_rank =
+        gst_plugin_feature_get_rank (fd1) * gst_plugin_feature_get_rank (fs1);
+    v2_rank =
+        gst_plugin_feature_get_rank (fd2) * gst_plugin_feature_get_rank (fs2);
+  } else {
+    v1_rank = gst_plugin_feature_get_rank (fd1);
+    v2_rank = gst_plugin_feature_get_rank (fd2);
+    fs1 = fs2 = NULL;
+  }
+
+  /* comparison based on the rank */
+  diff = v2_rank - v1_rank;
+  if (diff < 0)
+    return -1;
+  else if (diff > 0)
+    return 1;
+
+  /* comparison based on number of common caps features */
+  diff = v2->n_comm_cf - v1->n_comm_cf;
+  if (diff != 0)
+    return diff;
+
+  if (fs1 && fs2) {
+    /* comparison based on the name of sink elements */
+    diff = strcmp (GST_OBJECT_NAME (fs1), GST_OBJECT_NAME (fs2));
+    if (diff != 0)
+      return diff;
+  }
+
+  /* comparison based on the name of decoder elements */
+  return strcmp (GST_OBJECT_NAME (fd1), GST_OBJECT_NAME (fd2));
+}
+
+static GSequence *
+avelements_create (GstPlayBin3 * playbin, gboolean isaudioelement)
+{
+  GstElementFactory *d_factory, *s_factory;
+  GList *dec_list, *sink_list, *dl, *sl;
+  GSequence *ave_seq = NULL;
+  GstAVElement *ave;
+  guint n_common_cf = 0;
+
+  if (isaudioelement) {
+    sink_list = gst_element_factory_list_get_elements
+        (GST_ELEMENT_FACTORY_TYPE_SINK |
+        GST_ELEMENT_FACTORY_TYPE_MEDIA_AUDIO, GST_RANK_MARGINAL);
+    dec_list =
+        gst_element_factory_list_get_elements (GST_ELEMENT_FACTORY_TYPE_DECODER
+        | GST_ELEMENT_FACTORY_TYPE_MEDIA_AUDIO, GST_RANK_MARGINAL);
+  } else {
+    sink_list = gst_element_factory_list_get_elements
+        (GST_ELEMENT_FACTORY_TYPE_SINK |
+        GST_ELEMENT_FACTORY_TYPE_MEDIA_VIDEO |
+        GST_ELEMENT_FACTORY_TYPE_MEDIA_IMAGE, GST_RANK_MARGINAL);
+
+    dec_list =
+        gst_element_factory_list_get_elements (GST_ELEMENT_FACTORY_TYPE_DECODER
+        | GST_ELEMENT_FACTORY_TYPE_MEDIA_VIDEO |
+        GST_ELEMENT_FACTORY_TYPE_MEDIA_IMAGE, GST_RANK_MARGINAL);
+  }
+
+  /* create a list of audio/video elements. Each element in the list
+   * is holding an audio/video decoder and an audio/video sink in which
+   * the decoders srcpad template caps and sink element's sinkpad template
+   * caps are compatible */
+  dl = dec_list;
+  sl = sink_list;
+
+  ave_seq = g_sequence_new ((GDestroyNotify) avelements_free);
+
+  for (; dl; dl = dl->next) {
+    d_factory = (GstElementFactory *) dl->data;
+    for (; sl; sl = sl->next) {
+      s_factory = (GstElementFactory *) sl->data;
+
+      n_common_cf =
+          gst_playback_utils_get_n_common_capsfeatures (d_factory, s_factory,
+          gst_play_bin3_get_flags (playbin), isaudioelement);
+      if (n_common_cf < 1)
+        continue;
+
+      ave = g_slice_new (GstAVElement);
+      ave->dec = gst_object_ref (d_factory);
+      ave->sink = gst_object_ref (s_factory);
+      ave->n_comm_cf = n_common_cf;
+      g_sequence_append (ave_seq, ave);
+    }
+    sl = sink_list;
+  }
+  g_sequence_sort (ave_seq, (GCompareDataFunc) avelement_compare_decoder, NULL);
+
+  gst_plugin_feature_list_free (dec_list);
+  gst_plugin_feature_list_free (sink_list);
+
+  return ave_seq;
+}
+
+static gboolean
+avelement_iter_is_equal (GSequenceIter * iter, GstElementFactory * factory)
+{
+  GstAVElement *ave;
+
+  if (!iter)
+    return FALSE;
+
+  ave = g_sequence_get (iter);
+  if (!ave)
+    return FALSE;
+
+  return strcmp (GST_OBJECT_NAME (ave->dec), GST_OBJECT_NAME (factory)) == 0;
+}
+
+static GList *
+create_decoders_list (GList * factory_list, GSequence * avelements)
+{
+  GList *dec_list = NULL, *tmp;
+  GList *ave_list = NULL;
+  GList *ave_free_list = NULL;
+  GstAVElement *ave, *best_ave;
+
+  g_return_val_if_fail (factory_list != NULL, NULL);
+  g_return_val_if_fail (avelements != NULL, NULL);
+
+  for (tmp = factory_list; tmp; tmp = tmp->next) {
+    GstElementFactory *factory = (GstElementFactory *) tmp->data;
+
+    /* if there are parsers or sink elements, add them first */
+    if (gst_element_factory_list_is_type (factory,
+            GST_ELEMENT_FACTORY_TYPE_PARSER) ||
+        gst_element_factory_list_is_type (factory,
+            GST_ELEMENT_FACTORY_TYPE_SINK)) {
+      dec_list = g_list_prepend (dec_list, gst_object_ref (factory));
+    } else {
+      GSequenceIter *seq_iter;
+
+      seq_iter =
+          g_sequence_lookup (avelements, factory,
+          (GCompareDataFunc) avelement_lookup_decoder, NULL);
+      if (!seq_iter) {
+        GstAVElement *ave = g_slice_new0 (GstAVElement);
+
+        ave->dec = factory;
+        ave->sink = NULL;
+        /* There's at least raw */
+        ave->n_comm_cf = 1;
+
+        ave_list = g_list_prepend (ave_list, ave);
+
+        /* We need to free these later */
+        ave_free_list = g_list_prepend (ave_free_list, ave);
+        continue;
+      }
+
+      /* Go to first iter with that decoder */
+      do {
+        GSequenceIter *tmp_seq_iter;
+
+        tmp_seq_iter = g_sequence_iter_prev (seq_iter);
+        if (!avelement_iter_is_equal (tmp_seq_iter, factory))
+          break;
+        seq_iter = tmp_seq_iter;
+      } while (!g_sequence_iter_is_begin (seq_iter));
+
+      /* Get the best ranked GstAVElement for that factory */
+      best_ave = NULL;
+      while (!g_sequence_iter_is_end (seq_iter)
+          && avelement_iter_is_equal (seq_iter, factory)) {
+        ave = g_sequence_get (seq_iter);
+
+        if (!best_ave || avelement_compare (ave, best_ave) < 0)
+          best_ave = ave;
+
+        seq_iter = g_sequence_iter_next (seq_iter);
+      }
+      ave_list = g_list_prepend (ave_list, best_ave);
+    }
+  }
+
+  /* Sort all GstAVElements by their relative ranks and insert
+   * into the decoders list */
+  ave_list = g_list_sort (ave_list, (GCompareFunc) avelement_compare);
+  for (tmp = ave_list; tmp; tmp = tmp->next) {
+    ave = (GstAVElement *) tmp->data;
+    dec_list = g_list_prepend (dec_list, gst_object_ref (ave->dec));
+  }
+  g_list_free (ave_list);
+  gst_plugin_feature_list_free (factory_list);
+
+  for (tmp = ave_free_list; tmp; tmp = tmp->next)
+    g_slice_free (GstAVElement, tmp->data);
+  g_list_free (ave_free_list);
+
+  dec_list = g_list_reverse (dec_list);
+
+  return dec_list;
+}
+
+/* Called when we must provide a list of factories to plug to @pad with @caps.
+ * We first check if we have a sink that can handle the format and if we do, we
+ * return NULL, to expose the pad. If we have no sink (or the sink does not
+ * work), we return the list of elements that can connect. */
+static GValueArray *
+autoplug_factories_cb (GstElement * decodebin, GstPad * pad,
+    GstCaps * caps, GstSourceGroup * group)
+{
+  GstPlayBin3 *playbin;
+  GList *factory_list, *tmp;
+  GValueArray *result;
+  gboolean unref_caps = FALSE;
+  gboolean isaudiodeclist = FALSE;
+  gboolean isvideodeclist = FALSE;
+
+  if (!caps) {
+    caps = gst_caps_new_any ();
+    unref_caps = TRUE;
+  }
+
+  playbin = group->playbin;
+
+  GST_DEBUG_OBJECT (playbin, "factories group %p for %s:%s, %" GST_PTR_FORMAT,
+      group, GST_DEBUG_PAD_NAME (pad), caps);
+
+  /* filter out the elements based on the caps. */
+  g_mutex_lock (&playbin->elements_lock);
+  gst_play_bin3_update_elements_list (playbin);
+  factory_list =
+      gst_element_factory_list_filter (playbin->elements, caps, GST_PAD_SINK,
+      gst_caps_is_fixed (caps));
+  g_mutex_unlock (&playbin->elements_lock);
+
+  GST_DEBUG_OBJECT (playbin, "found factories %p", factory_list);
+  GST_PLUGIN_FEATURE_LIST_DEBUG (factory_list);
+
+  /* check whether the caps are asking for a list of audio/video decoders */
+  tmp = factory_list;
+  if (!gst_caps_is_any (caps)) {
+    for (; tmp; tmp = tmp->next) {
+      GstElementFactory *factory = (GstElementFactory *) tmp->data;
+
+      isvideodeclist = gst_element_factory_list_is_type (factory,
+          GST_ELEMENT_FACTORY_TYPE_DECODER |
+          GST_ELEMENT_FACTORY_TYPE_MEDIA_VIDEO |
+          GST_ELEMENT_FACTORY_TYPE_MEDIA_IMAGE);
+      isaudiodeclist = gst_element_factory_list_is_type (factory,
+          GST_ELEMENT_FACTORY_TYPE_DECODER |
+          GST_ELEMENT_FACTORY_TYPE_MEDIA_AUDIO);
+
+      if (isaudiodeclist || isvideodeclist)
+        break;
+    }
+  }
+
+  if (isaudiodeclist || isvideodeclist) {
+    GSequence **ave_list;
+    if (isaudiodeclist)
+      ave_list = &playbin->aelements;
+    else
+      ave_list = &playbin->velements;
+
+    g_mutex_lock (&playbin->elements_lock);
+    /* sort factory_list based on the GstAVElement list priority */
+    factory_list = create_decoders_list (factory_list, *ave_list);
+    g_mutex_unlock (&playbin->elements_lock);
+  }
+
+  /* 2 additional elements for the already set audio/video sinks */
+  result = g_value_array_new (g_list_length (factory_list) + 2);
+
+  /* Check if we already have an audio/video sink and if this is the case
+   * put it as the first element of the array */
+  if (group->audio_sink) {
+    GstElementFactory *factory = gst_element_get_factory (group->audio_sink);
+
+    if (factory && _factory_can_sink_caps (factory, caps)) {
+      GValue val = { 0, };
+
+      g_value_init (&val, G_TYPE_OBJECT);
+      g_value_set_object (&val, factory);
+      result = g_value_array_append (result, &val);
+      g_value_unset (&val);
+    }
+  }
+
+  if (group->video_sink) {
+    GstElementFactory *factory = gst_element_get_factory (group->video_sink);
+
+    if (factory && _factory_can_sink_caps (factory, caps)) {
+      GValue val = { 0, };
+
+      g_value_init (&val, G_TYPE_OBJECT);
+      g_value_set_object (&val, factory);
+      result = g_value_array_append (result, &val);
+      g_value_unset (&val);
+    }
+  }
+
+  for (tmp = factory_list; tmp; tmp = tmp->next) {
+    GstElementFactory *factory = GST_ELEMENT_FACTORY_CAST (tmp->data);
+    GValue val = { 0, };
+
+    if (group->audio_sink && gst_element_factory_list_is_type (factory,
+            GST_ELEMENT_FACTORY_TYPE_SINK |
+            GST_ELEMENT_FACTORY_TYPE_MEDIA_AUDIO)) {
+      continue;
+    }
+    if (group->video_sink && gst_element_factory_list_is_type (factory,
+            GST_ELEMENT_FACTORY_TYPE_SINK | GST_ELEMENT_FACTORY_TYPE_MEDIA_VIDEO
+            | GST_ELEMENT_FACTORY_TYPE_MEDIA_IMAGE)) {
+      continue;
+    }
+
+    g_value_init (&val, G_TYPE_OBJECT);
+    g_value_set_object (&val, factory);
+    g_value_array_append (result, &val);
+    g_value_unset (&val);
+  }
+  gst_plugin_feature_list_free (factory_list);
+
+  if (unref_caps)
+    gst_caps_unref (caps);
+
+  return result;
+}
+
+static void
+gst_play_bin3_set_context (GstElement * element, GstContext * context)
+{
+  GstPlayBin3 *playbin = GST_PLAY_BIN3 (element);
+
+  /* Proxy contexts to the sinks, they might not be in playsink yet */
+  GST_PLAY_BIN3_LOCK (playbin);
+  if (playbin->audio_sink)
+    gst_element_set_context (playbin->audio_sink, context);
+  if (playbin->video_sink)
+    gst_element_set_context (playbin->video_sink, context);
+  if (playbin->text_sink)
+    gst_element_set_context (playbin->text_sink, context);
+
+  GST_SOURCE_GROUP_LOCK (playbin->curr_group);
+
+  if (playbin->curr_group->audio_sink)
+    gst_element_set_context (playbin->curr_group->audio_sink, context);
+  if (playbin->curr_group->video_sink)
+    gst_element_set_context (playbin->curr_group->video_sink, context);
+  if (playbin->curr_group->text_sink)
+    gst_element_set_context (playbin->curr_group->text_sink, context);
+
+  GST_SOURCE_GROUP_UNLOCK (playbin->curr_group);
+  GST_PLAY_BIN3_UNLOCK (playbin);
+
+  GST_ELEMENT_CLASS (parent_class)->set_context (element, context);
+}
+
+/* Pass sink messages to the application, e.g. NEED_CONTEXT messages */
+static void
+gst_play_bin3_update_context (GstPlayBin3 * playbin, GstContext * context)
+{
+  GList *l;
+  const gchar *context_type;
+
+  GST_OBJECT_LOCK (playbin);
+  context_type = gst_context_get_context_type (context);
+  for (l = playbin->contexts; l; l = l->next) {
+    GstContext *tmp = l->data;
+    const gchar *tmp_type = gst_context_get_context_type (tmp);
+
+    /* Always store newest context but never replace
+     * a persistent one by a non-persistent one */
+    if (strcmp (context_type, tmp_type) == 0 &&
+        (gst_context_is_persistent (context) ||
+            !gst_context_is_persistent (tmp))) {
+      gst_context_replace ((GstContext **) & l->data, context);
+      break;
+    }
+  }
+  /* Not found? Add */
+  if (l == NULL)
+    playbin->contexts =
+        g_list_prepend (playbin->contexts, gst_context_ref (context));
+  GST_OBJECT_UNLOCK (playbin);
+}
+
+static GstBusSyncReply
+activate_sink_bus_handler (GstBus * bus, GstMessage * msg,
+    GstPlayBin3 * playbin)
+{
+  if (GST_MESSAGE_TYPE (msg) == GST_MESSAGE_ERROR) {
+    /* Only proxy errors from a fixed sink. If that fails we can just error out
+     * early as stuff will fail later anyway */
+    if (playbin->audio_sink
+        && gst_object_has_as_ancestor (GST_MESSAGE_SRC (msg),
+            GST_OBJECT_CAST (playbin->audio_sink)))
+      gst_element_post_message (GST_ELEMENT_CAST (playbin), msg);
+    else if (playbin->video_sink
+        && gst_object_has_as_ancestor (GST_MESSAGE_SRC (msg),
+            GST_OBJECT_CAST (playbin->video_sink)))
+      gst_element_post_message (GST_ELEMENT_CAST (playbin), msg);
+    else if (playbin->text_sink
+        && gst_object_has_as_ancestor (GST_MESSAGE_SRC (msg),
+            GST_OBJECT_CAST (playbin->text_sink)))
+      gst_element_post_message (GST_ELEMENT_CAST (playbin), msg);
+    else
+      gst_message_unref (msg);
+  } else if (GST_MESSAGE_TYPE (msg) == GST_MESSAGE_NEED_CONTEXT) {
+    const gchar *context_type;
+    GList *l;
+
+    gst_message_parse_context_type (msg, &context_type);
+    GST_OBJECT_LOCK (playbin);
+    for (l = playbin->contexts; l; l = l->next) {
+      GstContext *tmp = l->data;
+      const gchar *tmp_type = gst_context_get_context_type (tmp);
+
+      if (strcmp (context_type, tmp_type) == 0) {
+        gst_element_set_context (GST_ELEMENT (GST_MESSAGE_SRC (msg)), l->data);
+        break;
+      }
+    }
+    GST_OBJECT_UNLOCK (playbin);
+
+    /* Forward if we couldn't answer the message */
+    if (l == NULL) {
+      gst_element_post_message (GST_ELEMENT_CAST (playbin), msg);
+    } else {
+      gst_message_unref (msg);
+    }
+  } else if (GST_MESSAGE_TYPE (msg) == GST_MESSAGE_HAVE_CONTEXT) {
+    GstContext *context;
+
+    gst_message_parse_have_context (msg, &context);
+    gst_play_bin3_update_context (playbin, context);
+    gst_context_unref (context);
+
+    gst_element_post_message (GST_ELEMENT_CAST (playbin), msg);
+  } else {
+    gst_element_post_message (GST_ELEMENT_CAST (playbin), msg);
+  }
+
+  /* Doesn't really matter, nothing is using this bus */
+  return GST_BUS_DROP;
+}
+
+static gboolean
+activate_sink (GstPlayBin3 * playbin, GstElement * sink, gboolean * activated)
+{
+  GstState state;
+  GstBus *bus = NULL;
+  GstStateChangeReturn sret;
+  gboolean ret = FALSE;
+
+  if (activated)
+    *activated = FALSE;
+
+  GST_OBJECT_LOCK (sink);
+  state = GST_STATE (sink);
+  GST_OBJECT_UNLOCK (sink);
+  if (state >= GST_STATE_READY) {
+    ret = TRUE;
+    goto done;
+  }
+
+  if (!GST_OBJECT_PARENT (sink)) {
+    bus = gst_bus_new ();
+    gst_bus_set_sync_handler (bus,
+        (GstBusSyncHandler) activate_sink_bus_handler, playbin, NULL);
+    gst_element_set_bus (sink, bus);
+  }
+
+  sret = gst_element_set_state (sink, GST_STATE_READY);
+  if (sret == GST_STATE_CHANGE_FAILURE)
+    goto done;
+
+  if (activated)
+    *activated = TRUE;
+  ret = TRUE;
+
+done:
+  if (bus) {
+    gst_element_set_bus (sink, NULL);
+    gst_object_unref (bus);
+  }
+
+  return ret;
+}
+
+/* autoplug-continue decides, if a pad has raw caps that can be exposed
+ * directly or if further decoding is necessary. We use this to expose
+ * supported subtitles directly */
+
+/* FIXME 0.11: Remove the checks for ANY caps, a sink should specify
+ * explicitly the caps it supports and if it claims to support ANY
+ * caps it really should support everything */
+static gboolean
+autoplug_continue_cb (GstElement * element, GstPad * pad, GstCaps * caps,
+    GstSourceGroup * group)
+{
+  gboolean ret = TRUE;
+  GstPad *sinkpad = NULL;
+  gboolean activated_sink;
+
+  GST_SOURCE_GROUP_LOCK (group);
+
+  if (group->text_sink &&
+      activate_sink (group->playbin, group->text_sink, &activated_sink)) {
+    sinkpad = gst_element_get_static_pad (group->text_sink, "sink");
+    if (sinkpad) {
+      GstCaps *sinkcaps;
+
+      sinkcaps = gst_pad_query_caps (sinkpad, NULL);
+      if (!gst_caps_is_any (sinkcaps))
+        ret = !gst_pad_query_accept_caps (sinkpad, caps);
+      gst_caps_unref (sinkcaps);
+      gst_object_unref (sinkpad);
+    }
+    if (activated_sink)
+      gst_element_set_state (group->text_sink, GST_STATE_NULL);
+  } else {
+    GstCaps *subcaps = gst_subtitle_overlay_create_factory_caps ();
+    ret = !gst_caps_is_subset (caps, subcaps);
+    gst_caps_unref (subcaps);
+  }
+  /* If autoplugging can stop don't do additional checks */
+  if (!ret)
+    goto done;
+
+  if (group->audio_sink &&
+      activate_sink (group->playbin, group->audio_sink, &activated_sink)) {
+
+    sinkpad = gst_element_get_static_pad (group->audio_sink, "sink");
+    if (sinkpad) {
+      GstCaps *sinkcaps;
+
+      sinkcaps = gst_pad_query_caps (sinkpad, NULL);
+      if (!gst_caps_is_any (sinkcaps))
+        ret = !gst_pad_query_accept_caps (sinkpad, caps);
+      gst_caps_unref (sinkcaps);
+      gst_object_unref (sinkpad);
+    }
+    if (activated_sink)
+      gst_element_set_state (group->audio_sink, GST_STATE_NULL);
+  }
+  if (!ret)
+    goto done;
+
+  if (group->video_sink
+      && activate_sink (group->playbin, group->video_sink, &activated_sink)) {
+    sinkpad = gst_element_get_static_pad (group->video_sink, "sink");
+    if (sinkpad) {
+      GstCaps *sinkcaps;
+
+      sinkcaps = gst_pad_query_caps (sinkpad, NULL);
+      if (!gst_caps_is_any (sinkcaps))
+        ret = !gst_pad_query_accept_caps (sinkpad, caps);
+      gst_caps_unref (sinkcaps);
+      gst_object_unref (sinkpad);
+    }
+    if (activated_sink)
+      gst_element_set_state (group->video_sink, GST_STATE_NULL);
+  }
+
+done:
+  GST_SOURCE_GROUP_UNLOCK (group);
+
+  GST_DEBUG_OBJECT (group->playbin,
+      "continue autoplugging group %p for %s:%s, %" GST_PTR_FORMAT ": %d",
+      group, GST_DEBUG_PAD_NAME (pad), caps, ret);
+
+  return ret;
+}
+
+static gboolean
+sink_accepts_caps (GstPlayBin3 * playbin, GstElement * sink, GstCaps * caps)
+{
+  GstPad *sinkpad;
+
+  if ((sinkpad = gst_element_get_static_pad (sink, "sink"))) {
+    /* Got the sink pad, now let's see if the element actually does accept the
+     * caps that we have */
+    if (!gst_pad_query_accept_caps (sinkpad, caps)) {
+      gst_object_unref (sinkpad);
+      return FALSE;
+    }
+    gst_object_unref (sinkpad);
+  }
+
+  return TRUE;
+}
+
+/* We are asked to select an element. See if the next element to check
+ * is a sink. If this is the case, we see if the sink works by setting it to
+ * READY. If the sink works, we return SELECT_EXPOSE to make decodebin
+ * expose the raw pad so that we can setup the mixers. */
+static GstAutoplugSelectResult
+autoplug_select_cb (GstElement * decodebin, GstPad * pad,
+    GstCaps * caps, GstElementFactory * factory, GstSourceGroup * group)
+{
+  GstPlayBin3 *playbin;
+  GstElement *element;
+  const gchar *klass;
+  GstPlaySinkType type;
+  GstElement **sinkp;
+  GList *ave_list = NULL, *l;
+  GstAVElement *ave = NULL;
+  GSequence *ave_seq = NULL;
+  GSequenceIter *seq_iter;
+
+  playbin = group->playbin;
+
+  GST_DEBUG_OBJECT (playbin, "select group %p for %s:%s, %" GST_PTR_FORMAT,
+      group, GST_DEBUG_PAD_NAME (pad), caps);
+
+  GST_DEBUG_OBJECT (playbin, "checking factory %s", GST_OBJECT_NAME (factory));
+
+  /* if it's not a sink, we make sure the element is compatible with
+   * the fixed sink */
+  if (!gst_element_factory_list_is_type (factory,
+          GST_ELEMENT_FACTORY_TYPE_SINK)) {
+    gboolean isvideodec = gst_element_factory_list_is_type (factory,
+        GST_ELEMENT_FACTORY_TYPE_DECODER |
+        GST_ELEMENT_FACTORY_TYPE_MEDIA_VIDEO |
+        GST_ELEMENT_FACTORY_TYPE_MEDIA_IMAGE);
+    gboolean isaudiodec = gst_element_factory_list_is_type (factory,
+        GST_ELEMENT_FACTORY_TYPE_DECODER |
+        GST_ELEMENT_FACTORY_TYPE_MEDIA_AUDIO);
+
+    if (!isvideodec && !isaudiodec)
+      return GST_AUTOPLUG_SELECT_TRY;
+
+    GST_SOURCE_GROUP_LOCK (group);
+    g_mutex_lock (&playbin->elements_lock);
+
+    if (isaudiodec) {
+      ave_seq = playbin->aelements;
+      sinkp = &group->audio_sink;
+    } else {
+      ave_seq = playbin->velements;
+      sinkp = &group->video_sink;
+    }
+
+    seq_iter =
+        g_sequence_lookup (ave_seq, factory,
+        (GCompareDataFunc) avelement_lookup_decoder, NULL);
+    if (seq_iter) {
+      /* Go to first iter with that decoder */
+      do {
+        GSequenceIter *tmp_seq_iter;
+
+        tmp_seq_iter = g_sequence_iter_prev (seq_iter);
+        if (!avelement_iter_is_equal (tmp_seq_iter, factory))
+          break;
+        seq_iter = tmp_seq_iter;
+      } while (!g_sequence_iter_is_begin (seq_iter));
+
+      while (!g_sequence_iter_is_end (seq_iter)
+          && avelement_iter_is_equal (seq_iter, factory)) {
+        ave = g_sequence_get (seq_iter);
+        ave_list = g_list_prepend (ave_list, ave);
+        seq_iter = g_sequence_iter_next (seq_iter);
+      }
+
+      /* Sort all GstAVElements by their relative ranks and insert
+       * into the decoders list */
+      ave_list = g_list_sort (ave_list, (GCompareFunc) avelement_compare);
+    } else {
+      ave_list = g_list_prepend (ave_list, NULL);
+    }
+
+    /* if it is a decoder and we don't have a fixed sink, then find out 
+     * the matching audio/video sink from GstAVElements list */
+    for (l = ave_list; l; l = l->next) {
+      gboolean created_sink = FALSE;
+
+      ave = (GstAVElement *) l->data;
+
+      if (((isaudiodec && !group->audio_sink) ||
+              (isvideodec && !group->video_sink))) {
+        if (ave && ave->sink) {
+          GST_DEBUG_OBJECT (playbin,
+              "Trying to create sink '%s' for decoder '%s'",
+              gst_plugin_feature_get_name (GST_PLUGIN_FEATURE (ave->sink)),
+              gst_plugin_feature_get_name (GST_PLUGIN_FEATURE (factory)));
+          if ((*sinkp = gst_element_factory_create (ave->sink, NULL)) == NULL) {
+            GST_WARNING_OBJECT (playbin,
+                "Could not create an element from %s",
+                gst_plugin_feature_get_name (GST_PLUGIN_FEATURE (ave->sink)));
+            continue;
+          } else {
+            if (!activate_sink (playbin, *sinkp, NULL)) {
+              gst_object_unref (*sinkp);
+              *sinkp = NULL;
+              GST_WARNING_OBJECT (playbin,
+                  "Could not activate sink %s",
+                  gst_plugin_feature_get_name (GST_PLUGIN_FEATURE (ave->sink)));
+              continue;
+            }
+            gst_object_ref_sink (*sinkp);
+            created_sink = TRUE;
+          }
+        }
+      }
+
+      /* If it is a decoder and we have a fixed sink for the media
+       * type it outputs, check that the decoder is compatible with this sink */
+      if ((isaudiodec && group->audio_sink) || (isvideodec
+              && group->video_sink)) {
+        gboolean compatible = FALSE;
+        GstPad *sinkpad;
+        GstCaps *caps;
+        GstElement *sink;
+
+        sink = *sinkp;
+
+        if ((sinkpad = gst_element_get_static_pad (sink, "sink"))) {
+          GstPlayFlags flags = gst_play_bin3_get_flags (playbin);
+          GstCaps *raw_caps =
+              (isaudiodec) ? gst_static_caps_get (&raw_audio_caps) :
+              gst_static_caps_get (&raw_video_caps);
+
+          caps = gst_pad_query_caps (sinkpad, NULL);
+
+          /* If the sink supports raw audio/video, we first check
+           * if the decoder could output any raw audio/video format
+           * and assume it is compatible with the sink then. We don't
+           * do a complete compatibility check here if converters
+           * are plugged between the decoder and the sink because
+           * the converters will convert between raw formats and
+           * even if the decoder format is not supported by the decoder
+           * a converter will convert it.
+           *
+           * We assume here that the converters can convert between
+           * any raw format.
+           */
+          if ((isaudiodec && !(flags & GST_PLAY_FLAG_NATIVE_AUDIO)
+                  && gst_caps_can_intersect (caps, raw_caps)) || (!isaudiodec
+                  && !(flags & GST_PLAY_FLAG_NATIVE_VIDEO)
+                  && gst_caps_can_intersect (caps, raw_caps))) {
+            compatible =
+                gst_element_factory_can_src_any_caps (factory, raw_caps)
+                || gst_element_factory_can_src_any_caps (factory, caps);
+          } else {
+            compatible = gst_element_factory_can_src_any_caps (factory, caps);
+          }
+
+          gst_object_unref (sinkpad);
+          gst_caps_unref (caps);
+        }
+
+        if (compatible)
+          break;
+
+        GST_DEBUG_OBJECT (playbin, "%s not compatible with the fixed sink",
+            GST_OBJECT_NAME (factory));
+
+        /* If it is not compatible, either continue with the next possible
+         * sink or if we have a fixed sink, skip the decoder */
+        if (created_sink) {
+          gst_element_set_state (*sinkp, GST_STATE_NULL);
+          gst_object_unref (*sinkp);
+          *sinkp = NULL;
+        } else {
+          g_mutex_unlock (&playbin->elements_lock);
+          GST_SOURCE_GROUP_UNLOCK (group);
+          return GST_AUTOPLUG_SELECT_SKIP;
+        }
+      }
+    }
+    g_list_free (ave_list);
+    g_mutex_unlock (&playbin->elements_lock);
+    GST_SOURCE_GROUP_UNLOCK (group);
+    return GST_AUTOPLUG_SELECT_TRY;
+  }
+
+  /* it's a sink, see if an instance of it actually works */
+  GST_DEBUG_OBJECT (playbin, "we found a sink '%s'", GST_OBJECT_NAME (factory));
+
+  klass =
+      gst_element_factory_get_metadata (factory, GST_ELEMENT_METADATA_KLASS);
+
+  /* figure out the klass */
+  if (strstr (klass, "Audio")) {
+    GST_DEBUG_OBJECT (playbin, "we found an audio sink");
+    type = GST_PLAY_SINK_TYPE_AUDIO;
+    sinkp = &group->audio_sink;
+  } else if (strstr (klass, "Video")) {
+    GST_DEBUG_OBJECT (playbin, "we found a video sink");
+    type = GST_PLAY_SINK_TYPE_VIDEO;
+    sinkp = &group->video_sink;
+  } else {
+    /* unknown klass, skip this element */
+    GST_WARNING_OBJECT (playbin, "unknown sink klass %s found", klass);
+    return GST_AUTOPLUG_SELECT_SKIP;
+  }
+
+  /* if we are asked to do visualisations and it's an audio sink, skip the
+   * element. We can only do visualisations with raw sinks */
+  if (gst_play_sink_get_flags (playbin->playsink) & GST_PLAY_FLAG_VIS) {
+    if (type == GST_PLAY_SINK_TYPE_AUDIO) {
+      GST_DEBUG_OBJECT (playbin, "skip audio sink because of vis");
+      return GST_AUTOPLUG_SELECT_SKIP;
+    }
+  }
+
+  /* now see if we already have a sink element */
+  GST_SOURCE_GROUP_LOCK (group);
+  if (*sinkp && GST_STATE (*sinkp) >= GST_STATE_READY) {
+    GstElement *sink = gst_object_ref (*sinkp);
+
+    if (sink_accepts_caps (playbin, sink, caps)) {
+      GST_DEBUG_OBJECT (playbin,
+          "Existing sink '%s' accepts caps: %" GST_PTR_FORMAT,
+          GST_ELEMENT_NAME (sink), caps);
+      gst_object_unref (sink);
+      GST_SOURCE_GROUP_UNLOCK (group);
+      return GST_AUTOPLUG_SELECT_EXPOSE;
+    } else {
+      GST_DEBUG_OBJECT (playbin,
+          "Existing sink '%s' does not accept caps: %" GST_PTR_FORMAT,
+          GST_ELEMENT_NAME (sink), caps);
+      gst_object_unref (sink);
+      GST_SOURCE_GROUP_UNLOCK (group);
+      return GST_AUTOPLUG_SELECT_SKIP;
+    }
+  }
+  GST_DEBUG_OBJECT (playbin, "we have no pending sink, try to create '%s'",
+      gst_plugin_feature_get_name (GST_PLUGIN_FEATURE (factory)));
+
+  if ((*sinkp = gst_element_factory_create (factory, NULL)) == NULL) {
+    GST_WARNING_OBJECT (playbin, "Could not create an element from %s",
+        gst_plugin_feature_get_name (GST_PLUGIN_FEATURE (factory)));
+    GST_SOURCE_GROUP_UNLOCK (group);
+    return GST_AUTOPLUG_SELECT_SKIP;
+  }
+
+  element = *sinkp;
+
+  if (!activate_sink (playbin, element, NULL)) {
+    GST_WARNING_OBJECT (playbin, "Could not activate sink %s",
+        gst_plugin_feature_get_name (GST_PLUGIN_FEATURE (factory)));
+    *sinkp = NULL;
+    gst_object_unref (element);
+    GST_SOURCE_GROUP_UNLOCK (group);
+    return GST_AUTOPLUG_SELECT_SKIP;
+  }
+
+  /* Check if the selected sink actually supports the
+   * caps and can be set to READY*/
+  if (!sink_accepts_caps (playbin, element, caps)) {
+    *sinkp = NULL;
+    gst_element_set_state (element, GST_STATE_NULL);
+    gst_object_unref (element);
+    GST_SOURCE_GROUP_UNLOCK (group);
+    return GST_AUTOPLUG_SELECT_SKIP;
+  }
+
+  /* remember the sink in the group now, the element is floating, we take
+   * ownership now 
+   *
+   * store the sink in the group, we will configure it later when we
+   * reconfigure the sink */
+  GST_DEBUG_OBJECT (playbin, "remember sink");
+  gst_object_ref_sink (element);
+  GST_SOURCE_GROUP_UNLOCK (group);
+
+  /* tell decodebin to expose the pad because we are going to use this
+   * sink */
+  GST_DEBUG_OBJECT (playbin, "we found a working sink, expose pad");
+
+  return GST_AUTOPLUG_SELECT_EXPOSE;
+}
+
+#define GST_PLAY_BIN3_FILTER_CAPS(filter,caps) G_STMT_START {                  \
+  if ((filter)) {                                                             \
+    GstCaps *intersection =                                                   \
+        gst_caps_intersect_full ((filter), (caps), GST_CAPS_INTERSECT_FIRST); \
+    gst_caps_unref ((caps));                                                  \
+    (caps) = intersection;                                                    \
+  }                                                                           \
+} G_STMT_END
+
+static gboolean
+autoplug_query_caps (GstElement * uridecodebin, GstPad * pad,
+    GstElement * element, GstQuery * query, GstSourceGroup * group)
+{
+  GstCaps *filter, *result = NULL;
+  GstElement *sink;
+  GstPad *sinkpad = NULL;
+  GstElementFactory *factory;
+  GstElementFactoryListType factory_type;
+  gboolean have_sink = FALSE;
+
+  GST_SOURCE_GROUP_LOCK (group);
+  gst_query_parse_caps (query, &filter);
+
+  factory = gst_element_get_factory (element);
+  if (!factory)
+    goto done;
+
+  if (gst_element_factory_list_is_type (factory,
+          GST_ELEMENT_FACTORY_TYPE_MEDIA_VIDEO |
+          GST_ELEMENT_FACTORY_TYPE_MEDIA_IMAGE)) {
+    factory_type =
+        GST_ELEMENT_FACTORY_TYPE_MEDIA_VIDEO |
+        GST_ELEMENT_FACTORY_TYPE_MEDIA_IMAGE;
+
+    if ((sink = group->video_sink)) {
+      sinkpad = gst_element_get_static_pad (sink, "sink");
+      if (sinkpad) {
+        GstCaps *sinkcaps;
+
+        sinkcaps = gst_pad_query_caps (sinkpad, filter);
+        if (!gst_caps_is_any (sinkcaps)) {
+          if (!result)
+            result = sinkcaps;
+          else
+            result = gst_caps_merge (result, sinkcaps);
+        } else {
+          gst_caps_unref (sinkcaps);
+        }
+        gst_object_unref (sinkpad);
+      }
+      have_sink = TRUE;
+    }
+  } else if (gst_element_factory_list_is_type (factory,
+          GST_ELEMENT_FACTORY_TYPE_MEDIA_AUDIO)) {
+    factory_type = GST_ELEMENT_FACTORY_TYPE_MEDIA_AUDIO;
+
+    if ((sink = group->audio_sink)) {
+      sinkpad = gst_element_get_static_pad (sink, "sink");
+      if (sinkpad) {
+        GstCaps *sinkcaps;
+
+        sinkcaps = gst_pad_query_caps (sinkpad, filter);
+        if (!gst_caps_is_any (sinkcaps)) {
+          if (!result)
+            result = sinkcaps;
+          else
+            result = gst_caps_merge (result, sinkcaps);
+        } else {
+          gst_caps_unref (sinkcaps);
+        }
+        gst_object_unref (sinkpad);
+      }
+      have_sink = TRUE;
+    }
+  } else if (gst_element_factory_list_is_type (factory,
+          GST_ELEMENT_FACTORY_TYPE_MEDIA_SUBTITLE)) {
+    factory_type = GST_ELEMENT_FACTORY_TYPE_MEDIA_SUBTITLE;
+
+    if ((sink = group->playbin->text_sink)) {
+      sinkpad = gst_element_get_static_pad (sink, "sink");
+      if (sinkpad) {
+        GstCaps *sinkcaps;
+
+        sinkcaps = gst_pad_query_caps (sinkpad, filter);
+        if (!gst_caps_is_any (sinkcaps)) {
+          if (!result)
+            result = sinkcaps;
+          else
+            result = gst_caps_merge (result, sinkcaps);
+        } else {
+          gst_caps_unref (sinkcaps);
+        }
+        gst_object_unref (sinkpad);
+      }
+      have_sink = TRUE;
+    } else {
+      GstCaps *subcaps = gst_subtitle_overlay_create_factory_caps ();
+      GST_PLAY_BIN3_FILTER_CAPS (filter, subcaps);
+      if (!result)
+        result = subcaps;
+      else
+        result = gst_caps_merge (result, subcaps);
+    }
+  } else {
+    goto done;
+  }
+
+  if (!have_sink) {
+    GValueArray *factories;
+    gint i, n;
+
+    factories = autoplug_factories_cb (uridecodebin, pad, NULL, group);
+    n = factories->n_values;
+    for (i = 0; i < n; i++) {
+      GValue *v = g_value_array_get_nth (factories, i);
+      GstElementFactory *f = g_value_get_object (v);
+      const GList *templates;
+      const GList *l;
+      GstCaps *templ_caps;
+
+      if (!gst_element_factory_list_is_type (f, factory_type))
+        continue;
+
+      templates = gst_element_factory_get_static_pad_templates (f);
+
+      for (l = templates; l; l = l->next) {
+        templ_caps = gst_static_pad_template_get_caps (l->data);
+
+        if (!gst_caps_is_any (templ_caps)) {
+          GST_PLAY_BIN3_FILTER_CAPS (filter, templ_caps);
+          if (!result)
+            result = templ_caps;
+          else
+            result = gst_caps_merge (result, templ_caps);
+        } else {
+          gst_caps_unref (templ_caps);
+        }
+      }
+    }
+    g_value_array_free (factories);
+  }
+
+done:
+  GST_SOURCE_GROUP_UNLOCK (group);
+
+  if (!result)
+    return FALSE;
+
+  /* Add the actual decoder/parser/etc caps at the very end to
+   * make sure we don't cause empty caps to be returned, e.g.
+   * if a parser asks us but a decoder is required after it
+   * because no sink can handle the format directly.
+   */
+  {
+    GstPad *target = gst_ghost_pad_get_target (GST_GHOST_PAD (pad));
+
+    if (target) {
+      GstCaps *target_caps = gst_pad_get_pad_template_caps (target);
+      GST_PLAY_BIN3_FILTER_CAPS (filter, target_caps);
+      result = gst_caps_merge (result, target_caps);
+      gst_object_unref (target);
+    }
+  }
+
+
+  gst_query_set_caps_result (query, result);
+  gst_caps_unref (result);
+
+  return TRUE;
+}
+
+static gboolean
+autoplug_query_context (GstElement * uridecodebin, GstPad * pad,
+    GstElement * element, GstQuery * query, GstSourceGroup * group)
+{
+  GstElement *sink;
+  GstPad *sinkpad = NULL;
+  GstElementFactory *factory;
+  gboolean res = FALSE;
+
+  GST_SOURCE_GROUP_LOCK (group);
+
+  factory = gst_element_get_factory (element);
+  if (!factory)
+    goto done;
+
+  if (gst_element_factory_list_is_type (factory,
+          GST_ELEMENT_FACTORY_TYPE_MEDIA_VIDEO |
+          GST_ELEMENT_FACTORY_TYPE_MEDIA_IMAGE)) {
+    if ((sink = group->video_sink)) {
+      sinkpad = gst_element_get_static_pad (sink, "sink");
+      if (sinkpad) {
+        res = gst_pad_query (sinkpad, query);
+        gst_object_unref (sinkpad);
+      }
+    }
+  } else if (gst_element_factory_list_is_type (factory,
+          GST_ELEMENT_FACTORY_TYPE_MEDIA_AUDIO)) {
+    if ((sink = group->audio_sink)) {
+      sinkpad = gst_element_get_static_pad (sink, "sink");
+      if (sinkpad) {
+        res = gst_pad_query (sinkpad, query);
+        gst_object_unref (sinkpad);
+      }
+    }
+  } else if (gst_element_factory_list_is_type (factory,
+          GST_ELEMENT_FACTORY_TYPE_MEDIA_SUBTITLE)) {
+    if ((sink = group->playbin->text_sink)) {
+      sinkpad = gst_element_get_static_pad (sink, "sink");
+      if (sinkpad) {
+        res = gst_pad_query (sinkpad, query);
+        gst_object_unref (sinkpad);
+      }
+    }
+  } else {
+    goto done;
+  }
+
+done:
+  GST_SOURCE_GROUP_UNLOCK (group);
+
+  return res;
+}
+
+static gboolean
+autoplug_query_cb (GstElement * uridecodebin, GstPad * pad,
+    GstElement * element, GstQuery * query, GstSourceGroup * group)
+{
+
+  switch (GST_QUERY_TYPE (query)) {
+    case GST_QUERY_CAPS:
+      return autoplug_query_caps (uridecodebin, pad, element, query, group);
+    case GST_QUERY_CONTEXT:
+      return autoplug_query_context (uridecodebin, pad, element, query, group);
+    default:
+      return FALSE;
+  }
+}
+
+static void
+notify_source_cb (GstElement * urisourcebin, GParamSpec * pspec,
+    GstSourceGroup * group)
+{
+  GstPlayBin3 *playbin;
+  GstElement *source;
+
+  playbin = group->playbin;
+
+  g_object_get (urisourcebin, "source", &source, NULL);
+
+  GST_OBJECT_LOCK (playbin);
+  if (playbin->source)
+    gst_object_unref (playbin->source);
+  playbin->source = source;
+  GST_OBJECT_UNLOCK (playbin);
+
+  g_object_notify (G_OBJECT (playbin), "source");
+
+  g_signal_emit (playbin, gst_play_bin3_signals[SIGNAL_SOURCE_SETUP],
+      0, playbin->source);
+}
+
+/* must be called with the group lock */
+static gboolean
+group_set_locked_state_unlocked (GstPlayBin3 * playbin, GstSourceGroup * group,
+    gboolean locked)
+{
+  GST_DEBUG_OBJECT (playbin, "locked_state %d on group %p", locked, group);
+
+  if (group->urisourcebin)
+    gst_element_set_locked_state (group->urisourcebin, locked);
+  if (group->suburisourcebin)
+    gst_element_set_locked_state (group->suburisourcebin, locked);
+
+  return TRUE;
+}
+
+static gboolean
+make_or_reuse_element (GstPlayBin3 * playbin, const gchar * name,
+    GstElement ** elem)
+{
+  if (*elem) {
+    GST_DEBUG_OBJECT (playbin, "reusing existing %s", name);
+    gst_element_set_state (*elem, GST_STATE_READY);
+    /* no need to take extra ref, we already have one
+     * and the bin will add one since it is no longer floating,
+     * as we added a non-floating ref when removing it from the
+     * bin earlier */
+  } else {
+    GstElement *new_elem;
+    GST_DEBUG_OBJECT (playbin, "making new %s", name);
+    new_elem = gst_element_factory_make (name, NULL);
+    if (!new_elem)
+      return FALSE;
+    *elem = gst_object_ref (new_elem);
+  }
+
+  if (GST_OBJECT_PARENT (*elem) != GST_OBJECT_CAST (playbin))
+    gst_bin_add (GST_BIN_CAST (playbin), *elem);
+  return TRUE;
+}
+
+static void
+urisrc_pad_added (GstElement * urisrc, GstPad * pad, GstSourceGroup * group)
+{
+  GstPadLinkReturn res;
+  GstPad *sinkpad = NULL;
+  GstPlayBin3 *playbin;
+
+  GST_SOURCE_GROUP_LOCK (group);
+  playbin = group->playbin;
+  if (urisrc == group->urisourcebin) {
+    /* Primary stream, link to the main pad of decodebin3 */
+    sinkpad = gst_element_get_static_pad (playbin->decodebin, "sink");
+    if (gst_pad_is_linked (sinkpad)) {
+      gst_object_unref (GST_OBJECT (sinkpad));
+      sinkpad = NULL;
+    }
+  }
+
+  if (sinkpad == NULL) {
+    /* Auxiliary stream, request a new pad from decodebin */
+    if ((sinkpad = gst_element_get_request_pad (playbin->decodebin, "sink_%u"))) {
+      g_object_set_data (G_OBJECT (pad), "playbin.sinkpad", sinkpad);
+    }
+  }
+  if (sinkpad) {
+    GST_DEBUG_OBJECT (playbin, "New pad %" GST_PTR_FORMAT
+        " from urisourcebin %" GST_PTR_FORMAT " linking to %"
+        GST_PTR_FORMAT, pad, urisrc, sinkpad);
+
+    res = gst_pad_link (pad, sinkpad);
+    gst_object_unref (sinkpad);
+
+    if (GST_PAD_LINK_FAILED (res))
+      goto link_failed;
+  }
+  GST_SOURCE_GROUP_UNLOCK (group);
+  return;
+
+link_failed:
+  {
+    GST_ERROR_OBJECT (playbin,
+        "failed to link pad %s:%s to decodebin, reason %s (%d)",
+        GST_DEBUG_PAD_NAME (pad), gst_pad_link_get_name (res), res);
+    GST_SOURCE_GROUP_UNLOCK (group);
+    return;
+  }
+}
+
+static void
+urisrc_pad_removed_cb (GstElement * urisrc, GstPad * pad,
+    GstSourceGroup * group)
+{
+}
+
+/* must be called with PLAY_BIN_LOCK */
+static GstStateChangeReturn
+activate_decodebin (GstPlayBin3 * playbin, GstState target)
+{
+  GstStateChangeReturn state_ret;
+  GstElement *decodebin = NULL;
+
+  if (playbin->decodebin_active)
+    return GST_STATE_CHANGE_SUCCESS;
+
+  GST_LOG_OBJECT (playbin, "Adding and activating decodebin");
+
+  if (!make_or_reuse_element (playbin, "decodebin3", &playbin->decodebin))
+    goto no_decodebin;
+  decodebin = playbin->decodebin;
+
+  /* connect pads and other things */
+  playbin->db_pad_added_id = g_signal_connect (decodebin, "pad-added",
+      G_CALLBACK (pad_added_cb), playbin);
+  playbin->db_pad_removed_id = g_signal_connect (decodebin, "pad-removed",
+      G_CALLBACK (pad_removed_cb), playbin);
+  playbin->db_no_more_pads_id = g_signal_connect (decodebin, "no-more-pads",
+      G_CALLBACK (no_more_pads_cb), playbin);
+  playbin->db_select_stream_id = g_signal_connect (decodebin, "select-stream",
+      G_CALLBACK (select_stream_cb), playbin);
+  /* is called when the decodebin is out of data and we can switch to the
+   * next uri */
+#if 0
+  /* FIXME: Re-enable if/when decodebin3 supports 'drained' */
+  playbin->db_drained_id =
+      g_signal_connect (decodebin, "drained", G_CALLBACK (drained_cb), playbin);
+#endif
+
+  gst_element_set_locked_state (decodebin, TRUE);
+  if ((state_ret =
+          gst_element_set_state (decodebin,
+              target)) == GST_STATE_CHANGE_FAILURE)
+    goto decodebin_failure;
+  gst_element_set_locked_state (decodebin, FALSE);
+
+  playbin->decodebin_active = TRUE;
+
+  return state_ret;
+
+
+no_decodebin:
+  {
+    GstMessage *msg;
+
+    msg =
+        gst_missing_element_message_new (GST_ELEMENT_CAST (playbin),
+        "decodebin3");
+    gst_element_post_message (GST_ELEMENT_CAST (playbin), msg);
+
+    GST_ELEMENT_ERROR (playbin, CORE, MISSING_PLUGIN,
+        (_("Could not create \"decodebin3\" element.")), (NULL));
+
+    goto error_cleanup;
+  }
+decodebin_failure:
+  {
+    GST_DEBUG_OBJECT (playbin, "failed state change of decodebin");
+    goto error_cleanup;
+  }
+error_cleanup:{
+    if (decodebin) {
+      REMOVE_SIGNAL (playbin->decodebin, playbin->db_pad_added_id);
+      REMOVE_SIGNAL (playbin->decodebin, playbin->db_pad_removed_id);
+      REMOVE_SIGNAL (playbin->decodebin, playbin->db_no_more_pads_id);
+      REMOVE_SIGNAL (playbin->decodebin, playbin->db_drained_id);
+      REMOVE_SIGNAL (playbin->decodebin, playbin->db_select_stream_id);
+      gst_element_set_state (decodebin, GST_STATE_NULL);
+      gst_bin_remove (GST_BIN_CAST (playbin), decodebin);
+    }
+    return GST_STATE_CHANGE_FAILURE;
+  }
+}
+
+/* must be called with PLAY_BIN_LOCK */
+static void
+deactivate_decodebin (GstPlayBin3 * playbin)
+{
+  if (playbin->decodebin) {
+    GST_LOG_OBJECT (playbin, "Deactivating and removing decodebin");
+    REMOVE_SIGNAL (playbin->decodebin, playbin->db_pad_added_id);
+    REMOVE_SIGNAL (playbin->decodebin, playbin->db_pad_removed_id);
+    REMOVE_SIGNAL (playbin->decodebin, playbin->db_no_more_pads_id);
+    REMOVE_SIGNAL (playbin->decodebin, playbin->db_drained_id);
+    REMOVE_SIGNAL (playbin->decodebin, playbin->db_select_stream_id);
+    gst_bin_remove (GST_BIN_CAST (playbin), playbin->decodebin);
+    playbin->decodebin_active = FALSE;
+    playbin->active_stream_types = 0;
+  }
+}
+
+/* must be called with PLAY_BIN_LOCK */
+static GstStateChangeReturn
+activate_group (GstPlayBin3 * playbin, GstSourceGroup * group, GstState target)
+{
+  GstElement *urisrcbin = NULL;
+  GstElement *suburisrcbin = NULL;
+  GstPlayFlags flags;
+  gboolean audio_sink_activated = FALSE;
+  gboolean video_sink_activated = FALSE;
+  gboolean text_sink_activated = FALSE;
+  GstStateChangeReturn state_ret;
+
+  g_return_val_if_fail (group->valid, GST_STATE_CHANGE_FAILURE);
+  g_return_val_if_fail (!group->active, GST_STATE_CHANGE_FAILURE);
+
+  GST_DEBUG_OBJECT (playbin, "activating group %p", group);
+
+  GST_SOURCE_GROUP_LOCK (group);
+
+  /* First set up the custom sinks */
+  if (playbin->audio_sink)
+    group->audio_sink = gst_object_ref (playbin->audio_sink);
+  else
+    group->audio_sink =
+        gst_play_sink_get_sink (playbin->playsink, GST_PLAY_SINK_TYPE_AUDIO);
+
+  if (group->audio_sink) {
+    if (!activate_sink (playbin, group->audio_sink, &audio_sink_activated)) {
+      if (group->audio_sink == playbin->audio_sink) {
+        goto sink_failure;
+      } else {
+        gst_object_unref (group->audio_sink);
+        group->audio_sink = NULL;
+      }
+    }
+  }
+
+  if (playbin->video_sink)
+    group->video_sink = gst_object_ref (playbin->video_sink);
+  else
+    group->video_sink =
+        gst_play_sink_get_sink (playbin->playsink, GST_PLAY_SINK_TYPE_VIDEO);
+
+  if (group->video_sink) {
+    if (!activate_sink (playbin, group->video_sink, &video_sink_activated)) {
+      if (group->video_sink == playbin->video_sink) {
+        goto sink_failure;
+      } else {
+        gst_object_unref (group->video_sink);
+        group->video_sink = NULL;
+      }
+    }
+  }
+
+  if (playbin->text_sink)
+    group->text_sink = gst_object_ref (playbin->text_sink);
+  else
+    group->text_sink =
+        gst_play_sink_get_sink (playbin->playsink, GST_PLAY_SINK_TYPE_TEXT);
+
+  if (group->text_sink) {
+    if (!activate_sink (playbin, group->text_sink, &text_sink_activated)) {
+      if (group->text_sink == playbin->text_sink) {
+        goto sink_failure;
+      } else {
+        gst_object_unref (group->text_sink);
+        group->text_sink = NULL;
+      }
+    }
+  }
+
+
+  if (!make_or_reuse_element (playbin, "urisourcebin", &group->urisourcebin))
+    goto no_urisrcbin;
+  urisrcbin = group->urisourcebin;
+
+  flags = gst_play_sink_get_flags (playbin->playsink);
+
+  g_object_set (urisrcbin,
+      /* configure connection speed */
+      "connection-speed", playbin->connection_speed / 1000,
+      /* configure uri */
+      "uri", group->uri,
+      /* configure download buffering */
+      "download", ((flags & GST_PLAY_FLAG_DOWNLOAD) != 0),
+      /* configure buffering of demuxed/parsed data */
+      "use-buffering", ((flags & GST_PLAY_FLAG_BUFFERING) != 0),
+      /* configure buffering parameters */
+      "buffer-duration", playbin->buffer_duration,
+      "buffer-size", playbin->buffer_size,
+      "ring-buffer-max-size", playbin->ring_buffer_max_size, NULL);
+
+  /* we have 1 pending no-more-pads */
+  group->pending = 1;
+
+  group->notify_source_id = g_signal_connect (urisrcbin, "notify::source",
+      G_CALLBACK (notify_source_cb), group);
+
+  /* will be called when a new media type is found. We return a list of decoders
+   * including sinks for decodebin to try */
+  group->autoplug_factories_id =
+      g_signal_connect (urisrcbin, "autoplug-factories",
+      G_CALLBACK (autoplug_factories_cb), group);
+  group->autoplug_select_id =
+      g_signal_connect (urisrcbin, "autoplug-select",
+      G_CALLBACK (autoplug_select_cb), group);
+  group->autoplug_continue_id =
+      g_signal_connect (urisrcbin, "autoplug-continue",
+      G_CALLBACK (autoplug_continue_cb), group);
+  group->autoplug_query_id =
+      g_signal_connect (urisrcbin, "autoplug-query",
+      G_CALLBACK (autoplug_query_cb), group);
+
+  group->urisrc_pad_added_id = g_signal_connect (urisrcbin, "pad-added",
+      G_CALLBACK (urisrc_pad_added), group);
+  group->urisrc_pad_removed_id = g_signal_connect (urisrcbin,
+      "pad-removed", G_CALLBACK (urisrc_pad_removed_cb), group);
+
+  if (group->suburi) {
+    /* subtitles */
+    if (!make_or_reuse_element (playbin, "urisourcebin",
+            &group->suburisourcebin))
+      goto no_urisrcbin;
+    suburisrcbin = group->suburisourcebin;
+
+    g_object_set (suburisrcbin,
+        /* configure connection speed */
+        "connection-speed", playbin->connection_speed,
+        /* configure uri */
+        "uri", group->suburi, NULL);
+
+    /* connect pads and other things */
+    group->sub_pad_added_id = g_signal_connect (suburisrcbin, "pad-added",
+        G_CALLBACK (urisrc_pad_added), group);
+    group->sub_pad_removed_id = g_signal_connect (suburisrcbin,
+        "pad-removed", G_CALLBACK (urisrc_pad_removed_cb), group);
+
+    group->sub_autoplug_continue_id =
+        g_signal_connect (suburisrcbin, "autoplug-continue",
+        G_CALLBACK (autoplug_continue_cb), group);
+
+    group->sub_autoplug_query_id =
+        g_signal_connect (suburisrcbin, "autoplug-query",
+        G_CALLBACK (autoplug_query_cb), group);
+
+    /* we have 2 pending no-more-pads */
+    group->pending = 2;
+    group->sub_pending = TRUE;
+  } else {
+    group->sub_pending = FALSE;
+  }
+
+  /* release the group lock before setting the state of the source bins, they
+   * might fire signals in this thread that we need to handle with the
+   * group_lock taken. */
+  GST_SOURCE_GROUP_UNLOCK (group);
+
+  if (suburisrcbin) {
+    if (gst_element_set_state (suburisrcbin,
+            target) == GST_STATE_CHANGE_FAILURE) {
+      GST_DEBUG_OBJECT (playbin,
+          "failed state change of subtitle urisourcebin");
+      GST_SOURCE_GROUP_LOCK (group);
+
+      REMOVE_SIGNAL (suburisrcbin, group->sub_pad_added_id);
+      REMOVE_SIGNAL (suburisrcbin, group->sub_pad_removed_id);
+      REMOVE_SIGNAL (suburisrcbin, group->sub_autoplug_continue_id);
+      REMOVE_SIGNAL (suburisrcbin, group->sub_autoplug_query_id);
+      /* Might already be removed because of an error message */
+      if (GST_OBJECT_PARENT (suburisrcbin) == GST_OBJECT_CAST (playbin))
+        gst_bin_remove (GST_BIN_CAST (playbin), suburisrcbin);
+      if (group->sub_pending) {
+        group->pending--;
+        group->sub_pending = FALSE;
+      }
+      gst_element_set_state (suburisrcbin, GST_STATE_READY);
+      g_free (group->suburi);
+      group->suburi = NULL;
+      GST_SOURCE_GROUP_UNLOCK (group);
+    }
+  }
+  if ((state_ret =
+          gst_element_set_state (urisrcbin,
+              target)) == GST_STATE_CHANGE_FAILURE)
+    goto urisrcbin_failure;
+
+  GST_SOURCE_GROUP_LOCK (group);
+  /* allow state changes of the playbin affect the group elements now */
+  group_set_locked_state_unlocked (playbin, group, FALSE);
+  group->active = TRUE;
+  GST_SOURCE_GROUP_UNLOCK (group);
+
+  return state_ret;
+
+  /* ERRORS */
+no_urisrcbin:
+  {
+    GstMessage *msg;
+
+    GST_SOURCE_GROUP_UNLOCK (group);
+    msg =
+        gst_missing_element_message_new (GST_ELEMENT_CAST (playbin),
+        "urisourcebin");
+    gst_element_post_message (GST_ELEMENT_CAST (playbin), msg);
+
+    GST_ELEMENT_ERROR (playbin, CORE, MISSING_PLUGIN,
+        (_("Could not create \"urisourcebin\" element.")), (NULL));
+
+    GST_SOURCE_GROUP_LOCK (group);
+
+    goto error_cleanup;
+  }
+urisrcbin_failure:
+  {
+    GST_DEBUG_OBJECT (playbin, "failed state change of urisrcbin");
+    GST_SOURCE_GROUP_LOCK (group);
+    goto error_cleanup;
+  }
+sink_failure:
+  {
+    GST_ERROR_OBJECT (playbin, "failed to activate sinks");
+    goto error_cleanup;
+  }
+
+error_cleanup:
+  {
+    /* delete any custom sinks we might have */
+    if (group->audio_sink) {
+      /* If this is a automatically created sink set it to NULL */
+      if (audio_sink_activated)
+        gst_element_set_state (group->audio_sink, GST_STATE_NULL);
+      gst_object_unref (group->audio_sink);
+    }
+    group->audio_sink = NULL;
+
+    if (group->video_sink) {
+      /* If this is a automatically created sink set it to NULL */
+      if (video_sink_activated)
+        gst_element_set_state (group->video_sink, GST_STATE_NULL);
+      gst_object_unref (group->video_sink);
+    }
+    group->video_sink = NULL;
+
+    if (group->text_sink) {
+      /* If this is a automatically created sink set it to NULL */
+      if (text_sink_activated)
+        gst_element_set_state (group->text_sink, GST_STATE_NULL);
+      gst_object_unref (group->text_sink);
+    }
+    group->text_sink = NULL;
+
+    if (urisrcbin) {
+      REMOVE_SIGNAL (group->urisourcebin, group->urisrc_pad_added_id);
+      REMOVE_SIGNAL (group->urisourcebin, group->urisrc_pad_removed_id);
+      REMOVE_SIGNAL (group->urisourcebin, group->notify_source_id);
+      REMOVE_SIGNAL (group->urisourcebin, group->autoplug_factories_id);
+      REMOVE_SIGNAL (group->urisourcebin, group->autoplug_select_id);
+      REMOVE_SIGNAL (group->urisourcebin, group->autoplug_continue_id);
+      REMOVE_SIGNAL (group->urisourcebin, group->autoplug_query_id);
+
+      gst_element_set_state (urisrcbin, GST_STATE_NULL);
+      gst_bin_remove (GST_BIN_CAST (playbin), urisrcbin);
+    }
+
+    GST_SOURCE_GROUP_UNLOCK (group);
+
+    return GST_STATE_CHANGE_FAILURE;
+  }
+}
+
+/* unlink a group of urisrcbin from the decodebin.
+ * must be called with PLAY_BIN_LOCK */
+static gboolean
+deactivate_group (GstPlayBin3 * playbin, GstSourceGroup * group)
+{
+  gint i;
+
+  g_return_val_if_fail (group->active, FALSE);
+  g_return_val_if_fail (group->valid, FALSE);
+
+  GST_DEBUG_OBJECT (playbin, "unlinking group %p", group);
+
+  GST_SOURCE_GROUP_LOCK (group);
+  group->active = FALSE;
+  for (i = 0; i < PLAYBIN_STREAM_LAST; i++) {
+    GstSourceCombine *combine = &playbin->combiner[i];
+
+    GST_DEBUG_OBJECT (playbin, "unlinking combiner %s", combine->media_type);
+
+    if (combine->srcpad) {
+      source_combine_remove_pads (playbin, combine);
+    }
+
+    if (combine->combiner) {
+      gint n;
+
+      /* release and unref requests pad from the combiner */
+      for (n = 0; n < combine->channels->len; n++) {
+        GstPad *sinkpad = g_ptr_array_index (combine->channels, n);
+
+        gst_element_release_request_pad (combine->combiner, sinkpad);
+        gst_object_unref (sinkpad);
+      }
+      g_ptr_array_set_size (combine->channels, 0);
+
+      gst_element_set_state (combine->combiner, GST_STATE_NULL);
+      gst_bin_remove (GST_BIN_CAST (playbin), combine->combiner);
+      combine->combiner = NULL;
+    }
+  }
+#if 0
+  /* delete any custom sinks we might have.
+   * conditionally set them to null if they aren't inside playsink yet */
+  if (group->audio_sink) {
+    if (!gst_object_has_as_ancestor (GST_OBJECT_CAST (group->audio_sink),
+            GST_OBJECT_CAST (playbin->playsink))) {
+      gst_element_set_state (group->audio_sink, GST_STATE_NULL);
+    }
+    gst_object_unref (group->audio_sink);
+  }
+  group->audio_sink = NULL;
+  if (group->video_sink) {
+    if (!gst_object_has_as_ancestor (GST_OBJECT_CAST (group->video_sink),
+            GST_OBJECT_CAST (playbin->playsink))) {
+      gst_element_set_state (group->video_sink, GST_STATE_NULL);
+    }
+    gst_object_unref (group->video_sink);
+  }
+  group->video_sink = NULL;
+  if (group->text_sink) {
+    if (!gst_object_has_as_ancestor (GST_OBJECT_CAST (group->text_sink),
+            GST_OBJECT_CAST (playbin->playsink))) {
+      gst_element_set_state (group->text_sink, GST_STATE_NULL);
+    }
+    gst_object_unref (group->text_sink);
+  }
+  group->text_sink = NULL;
+#endif
+
+  if (group->urisourcebin) {
+    REMOVE_SIGNAL (group->urisourcebin, group->urisrc_pad_added_id);
+    REMOVE_SIGNAL (group->urisourcebin, group->urisrc_pad_removed_id);
+    REMOVE_SIGNAL (group->urisourcebin, group->notify_source_id);
+    REMOVE_SIGNAL (group->urisourcebin, group->autoplug_factories_id);
+    REMOVE_SIGNAL (group->urisourcebin, group->autoplug_select_id);
+    REMOVE_SIGNAL (group->urisourcebin, group->autoplug_continue_id);
+    REMOVE_SIGNAL (group->urisourcebin, group->autoplug_query_id);
+    gst_bin_remove (GST_BIN_CAST (playbin), group->urisourcebin);
+  }
+
+  if (group->suburisourcebin) {
+    REMOVE_SIGNAL (group->suburisourcebin, group->sub_pad_added_id);
+    REMOVE_SIGNAL (group->suburisourcebin, group->sub_pad_removed_id);
+    REMOVE_SIGNAL (group->suburisourcebin, group->sub_autoplug_continue_id);
+    REMOVE_SIGNAL (group->suburisourcebin, group->sub_autoplug_query_id);
+
+    /* Might already be removed because of errors */
+    if (GST_OBJECT_PARENT (group->suburisourcebin) == GST_OBJECT_CAST (playbin))
+      gst_bin_remove (GST_BIN_CAST (playbin), group->suburisourcebin);
+  }
+
+  GST_SOURCE_GROUP_UNLOCK (group);
+
+  return TRUE;
+}
+
+/* setup the next group to play, this assumes the next_group is valid and
+ * configured. It swaps out the current_group and activates the valid
+ * next_group. */
+static GstStateChangeReturn
+setup_next_source (GstPlayBin3 * playbin, GstState target)
+{
+  GstSourceGroup *new_group, *old_group;
+  GstStateChangeReturn state_ret;
+
+  GST_DEBUG_OBJECT (playbin, "setup sources");
+
+  /* see if there is a next group */
+  GST_PLAY_BIN3_LOCK (playbin);
+  new_group = playbin->next_group;
+  if (!new_group || !new_group->valid)
+    goto no_next_group;
+
+  /* first unlink the current source, if any */
+  old_group = playbin->curr_group;
+  if (old_group && old_group->valid && old_group->active) {
+    new_group->stream_changed_pending = TRUE;
+
+    gst_play_bin3_update_cached_duration (playbin);
+    /* unlink our pads with the sink */
+    deactivate_group (playbin, old_group);
+    old_group->valid = FALSE;
+  }
+
+  /* swap old and new */
+  playbin->curr_group = new_group;
+  playbin->next_group = old_group;
+
+  /* Get decodebin ready now */
+  if ((state_ret =
+          activate_decodebin (playbin, target)) == GST_STATE_CHANGE_FAILURE)
+    goto activate_failed;
+
+  /* activate the new group */
+  if ((state_ret =
+          activate_group (playbin, new_group,
+              target)) == GST_STATE_CHANGE_FAILURE)
+    goto activate_failed;
+
+  GST_PLAY_BIN3_UNLOCK (playbin);
+
+  return state_ret;
+
+  /* ERRORS */
+no_next_group:
+  {
+    GST_DEBUG_OBJECT (playbin, "no next group");
+    if (target == GST_STATE_READY && new_group && new_group->uri == NULL)
+      GST_ELEMENT_ERROR (playbin, RESOURCE, NOT_FOUND, ("No URI set"), (NULL));
+    GST_PLAY_BIN3_UNLOCK (playbin);
+    return GST_STATE_CHANGE_FAILURE;
+  }
+activate_failed:
+  {
+    new_group->stream_changed_pending = FALSE;
+    GST_DEBUG_OBJECT (playbin, "activate failed");
+    new_group->valid = FALSE;
+    GST_PLAY_BIN3_UNLOCK (playbin);
+    return GST_STATE_CHANGE_FAILURE;
+  }
+}
+
+/* The group that is currently playing is copied again to the
+ * next_group so that it will start playing the next time.
+ */
+static gboolean
+save_current_group (GstPlayBin3 * playbin)
+{
+  GstSourceGroup *curr_group;
+
+  GST_DEBUG_OBJECT (playbin, "save current group");
+
+  /* see if there is a current group */
+  GST_PLAY_BIN3_LOCK (playbin);
+  curr_group = playbin->curr_group;
+  if (curr_group && curr_group->valid && curr_group->active) {
+    /* unlink our pads with the sink */
+    deactivate_group (playbin, curr_group);
+  }
+  /* swap old and new */
+  playbin->curr_group = playbin->next_group;
+  playbin->next_group = curr_group;
+  GST_PLAY_BIN3_UNLOCK (playbin);
+
+  return TRUE;
+}
+
+/* clear the locked state from all groups. This function is called before a
+ * state change to NULL is performed on them. */
+static gboolean
+groups_set_locked_state (GstPlayBin3 * playbin, gboolean locked)
+{
+  GST_DEBUG_OBJECT (playbin, "setting locked state to %d on all groups",
+      locked);
+
+  GST_PLAY_BIN3_LOCK (playbin);
+  GST_SOURCE_GROUP_LOCK (playbin->curr_group);
+  group_set_locked_state_unlocked (playbin, playbin->curr_group, locked);
+  GST_SOURCE_GROUP_UNLOCK (playbin->curr_group);
+  GST_SOURCE_GROUP_LOCK (playbin->next_group);
+  group_set_locked_state_unlocked (playbin, playbin->next_group, locked);
+  GST_SOURCE_GROUP_UNLOCK (playbin->next_group);
+  GST_PLAY_BIN3_UNLOCK (playbin);
+
+  return TRUE;
+}
+
+static GstStateChangeReturn
+gst_play_bin3_change_state (GstElement * element, GstStateChange transition)
+{
+  GstStateChangeReturn ret;
+  GstPlayBin3 *playbin;
+  gboolean do_save = FALSE;
+
+  playbin = GST_PLAY_BIN3 (element);
+
+  switch (transition) {
+    case GST_STATE_CHANGE_NULL_TO_READY:
+      memset (&playbin->duration, 0, sizeof (playbin->duration));
+      break;
+    case GST_STATE_CHANGE_READY_TO_PAUSED:
+      GST_LOG_OBJECT (playbin, "clearing shutdown flag");
+      memset (&playbin->duration, 0, sizeof (playbin->duration));
+      g_atomic_int_set (&playbin->shutdown, 0);
+      do_async_start (playbin);
+      break;
+    case GST_STATE_CHANGE_PAUSED_TO_READY:
+    async_down:
+      /* FIXME unlock our waiting groups */
+      GST_LOG_OBJECT (playbin, "setting shutdown flag");
+      g_atomic_int_set (&playbin->shutdown, 1);
+      memset (&playbin->duration, 0, sizeof (playbin->duration));
+
+      /* wait for all callbacks to end by taking the lock.
+       * No dynamic (critical) new callbacks will
+       * be able to happen as we set the shutdown flag. */
+      GST_PLAY_BIN3_DYN_LOCK (playbin);
+      GST_LOG_OBJECT (playbin, "dynamic lock taken, we can continue shutdown");
+      GST_PLAY_BIN3_DYN_UNLOCK (playbin);
+      if (!do_save)
+        break;
+    case GST_STATE_CHANGE_READY_TO_NULL:
+      /* we go async to PAUSED, so if that fails, we never make it to PAUSED
+       * and no state change PAUSED to READY passes here,
+       * though it is a nice-to-have ... */
+      if (!g_atomic_int_get (&playbin->shutdown)) {
+        do_save = TRUE;
+        goto async_down;
+      }
+      memset (&playbin->duration, 0, sizeof (playbin->duration));
+
+      /* unlock so that all groups go to NULL */
+      groups_set_locked_state (playbin, FALSE);
+      break;
+    default:
+      break;
+  }
+
+  ret = GST_ELEMENT_CLASS (parent_class)->change_state (element, transition);
+  if (ret == GST_STATE_CHANGE_FAILURE)
+    goto failure;
+
+  switch (transition) {
+    case GST_STATE_CHANGE_READY_TO_PAUSED:
+      if ((ret =
+              setup_next_source (playbin,
+                  GST_STATE_PAUSED)) == GST_STATE_CHANGE_FAILURE)
+        goto failure;
+      if (ret == GST_STATE_CHANGE_SUCCESS)
+        ret = GST_STATE_CHANGE_ASYNC;
+
+      break;
+    case GST_STATE_CHANGE_PLAYING_TO_PAUSED:
+      do_async_done (playbin);
+      /* FIXME Release audio device when we implement that */
+      break;
+    case GST_STATE_CHANGE_PAUSED_TO_READY:
+      save_current_group (playbin);
+      break;
+    case GST_STATE_CHANGE_READY_TO_NULL:
+    {
+      guint i;
+      GList *l;
+
+      /* also do missed state change down to READY */
+      if (do_save)
+        save_current_group (playbin);
+      /* Deactive the groups, set the urisrcbins to NULL
+       * and unref them.
+       */
+      for (i = 0; i < 2; i++) {
+        if (playbin->groups[i].active && playbin->groups[i].valid) {
+          deactivate_group (playbin, &playbin->groups[i]);
+          playbin->groups[i].valid = FALSE;
+        }
+
+        if (playbin->groups[i].urisourcebin) {
+          gst_element_set_state (playbin->groups[i].urisourcebin,
+              GST_STATE_NULL);
+          gst_object_unref (playbin->groups[i].urisourcebin);
+          playbin->groups[i].urisourcebin = NULL;
+        }
+
+        if (playbin->groups[i].suburisourcebin) {
+          gst_element_set_state (playbin->groups[i].suburisourcebin,
+              GST_STATE_NULL);
+          gst_object_unref (playbin->groups[i].suburisourcebin);
+          playbin->groups[i].suburisourcebin = NULL;
+        }
+      }
+
+      deactivate_decodebin (playbin);
+      if (playbin->decodebin) {
+        gst_object_unref (playbin->decodebin);
+        playbin->decodebin = NULL;
+        playbin->decodebin_active = FALSE;
+      }
+
+      /* Set our sinks back to NULL, they might not be child of playbin */
+      if (playbin->audio_sink)
+        gst_element_set_state (playbin->audio_sink, GST_STATE_NULL);
+      if (playbin->video_sink)
+        gst_element_set_state (playbin->video_sink, GST_STATE_NULL);
+      if (playbin->text_sink)
+        gst_element_set_state (playbin->text_sink, GST_STATE_NULL);
+
+      if (playbin->video_stream_combiner)
+        gst_element_set_state (playbin->video_stream_combiner, GST_STATE_NULL);
+      if (playbin->audio_stream_combiner)
+        gst_element_set_state (playbin->audio_stream_combiner, GST_STATE_NULL);
+      if (playbin->text_stream_combiner)
+        gst_element_set_state (playbin->text_stream_combiner, GST_STATE_NULL);
+
+      /* make sure the groups don't perform a state change anymore until we
+       * enable them again */
+      groups_set_locked_state (playbin, TRUE);
+
+      /* Remove all non-persistent contexts */
+      GST_OBJECT_LOCK (playbin);
+      for (l = playbin->contexts; l;) {
+        GstContext *context = l->data;
+
+        if (!gst_context_is_persistent (context)) {
+          GList *next;
+
+          gst_context_unref (context);
+
+          next = l->next;
+          playbin->contexts = g_list_delete_link (playbin->contexts, l);
+          l = next;
+        } else {
+          l = l->next;
+        }
+      }
+
+      if (playbin->source) {
+        gst_object_unref (playbin->source);
+        playbin->source = NULL;
+      }
+
+      GST_OBJECT_UNLOCK (playbin);
+      break;
+    }
+    default:
+      break;
+  }
+
+  if (ret == GST_STATE_CHANGE_NO_PREROLL)
+    do_async_done (playbin);
+
+  return ret;
+
+  /* ERRORS */
+failure:
+  {
+    do_async_done (playbin);
+
+    if (transition == GST_STATE_CHANGE_READY_TO_PAUSED) {
+      GstSourceGroup *curr_group;
+
+      curr_group = playbin->curr_group;
+      if (curr_group) {
+        if (curr_group->active && curr_group->valid) {
+          /* unlink our pads with the sink */
+          deactivate_group (playbin, curr_group);
+        }
+        curr_group->valid = FALSE;
+      }
+
+      /* Swap current and next group back */
+      playbin->curr_group = playbin->next_group;
+      playbin->next_group = curr_group;
+    }
+    return ret;
+  }
+}
+
+static void
+gst_play_bin3_overlay_expose (GstVideoOverlay * overlay)
+{
+  GstPlayBin3 *playbin = GST_PLAY_BIN3 (overlay);
+
+  gst_video_overlay_expose (GST_VIDEO_OVERLAY (playbin->playsink));
+}
+
+static void
+gst_play_bin3_overlay_handle_events (GstVideoOverlay * overlay,
+    gboolean handle_events)
+{
+  GstPlayBin3 *playbin = GST_PLAY_BIN3 (overlay);
+
+  gst_video_overlay_handle_events (GST_VIDEO_OVERLAY (playbin->playsink),
+      handle_events);
+}
+
+static void
+gst_play_bin3_overlay_set_render_rectangle (GstVideoOverlay * overlay, gint x,
+    gint y, gint width, gint height)
+{
+  GstPlayBin3 *playbin = GST_PLAY_BIN3 (overlay);
+
+  gst_video_overlay_set_render_rectangle (GST_VIDEO_OVERLAY (playbin->playsink),
+      x, y, width, height);
+}
+
+static void
+gst_play_bin3_overlay_set_window_handle (GstVideoOverlay * overlay,
+    guintptr handle)
+{
+  GstPlayBin3 *playbin = GST_PLAY_BIN3 (overlay);
+
+  gst_video_overlay_set_window_handle (GST_VIDEO_OVERLAY (playbin->playsink),
+      handle);
+}
+
+static void
+gst_play_bin3_overlay_init (gpointer g_iface, gpointer g_iface_data)
+{
+  GstVideoOverlayInterface *iface = (GstVideoOverlayInterface *) g_iface;
+  iface->expose = gst_play_bin3_overlay_expose;
+  iface->handle_events = gst_play_bin3_overlay_handle_events;
+  iface->set_render_rectangle = gst_play_bin3_overlay_set_render_rectangle;
+  iface->set_window_handle = gst_play_bin3_overlay_set_window_handle;
+}
+
+static void
+gst_play_bin3_navigation_send_event (GstNavigation * navigation,
+    GstStructure * structure)
+{
+  GstPlayBin3 *playbin = GST_PLAY_BIN3 (navigation);
+
+  gst_navigation_send_event (GST_NAVIGATION (playbin->playsink), structure);
+}
+
+static void
+gst_play_bin3_navigation_init (gpointer g_iface, gpointer g_iface_data)
+{
+  GstNavigationInterface *iface = (GstNavigationInterface *) g_iface;
+
+  iface->send_event = gst_play_bin3_navigation_send_event;
+}
+
+static const GList *
+gst_play_bin3_colorbalance_list_channels (GstColorBalance * balance)
+{
+  GstPlayBin3 *playbin = GST_PLAY_BIN3 (balance);
+
+  return
+      gst_color_balance_list_channels (GST_COLOR_BALANCE (playbin->playsink));
+}
+
+static void
+gst_play_bin3_colorbalance_set_value (GstColorBalance * balance,
+    GstColorBalanceChannel * channel, gint value)
+{
+  GstPlayBin3 *playbin = GST_PLAY_BIN3 (balance);
+
+  gst_color_balance_set_value (GST_COLOR_BALANCE (playbin->playsink), channel,
+      value);
+}
+
+static gint
+gst_play_bin3_colorbalance_get_value (GstColorBalance * balance,
+    GstColorBalanceChannel * channel)
+{
+  GstPlayBin3 *playbin = GST_PLAY_BIN3 (balance);
+
+  return gst_color_balance_get_value (GST_COLOR_BALANCE (playbin->playsink),
+      channel);
+}
+
+static GstColorBalanceType
+gst_play_bin3_colorbalance_get_balance_type (GstColorBalance * balance)
+{
+  GstPlayBin3 *playbin = GST_PLAY_BIN3 (balance);
+
+  return
+      gst_color_balance_get_balance_type (GST_COLOR_BALANCE
+      (playbin->playsink));
+}
+
+static void
+gst_play_bin3_colorbalance_init (gpointer g_iface, gpointer g_iface_data)
+{
+  GstColorBalanceInterface *iface = (GstColorBalanceInterface *) g_iface;
+
+  iface->list_channels = gst_play_bin3_colorbalance_list_channels;
+  iface->set_value = gst_play_bin3_colorbalance_set_value;
+  iface->get_value = gst_play_bin3_colorbalance_get_value;
+  iface->get_balance_type = gst_play_bin3_colorbalance_get_balance_type;
+}
+
+gboolean
+gst_play_bin3_plugin_init (GstPlugin * plugin, gboolean as_playbin)
+{
+  GST_DEBUG_CATEGORY_INIT (gst_play_bin3_debug, "playbin3", 0, "play bin");
+
+  if (as_playbin)
+    return gst_element_register (plugin, "playbin", GST_RANK_NONE,
+        GST_TYPE_PLAY_BIN);
+
+  return gst_element_register (plugin, "playbin3", GST_RANK_NONE,
+      GST_TYPE_PLAY_BIN);
+}
diff --git a/gst/playback/gstplaysink.c b/gst/playback/gstplaysink.c
index c640ba4..0bca05c 100644
--- a/gst/playback/gstplaysink.c
+++ b/gst/playback/gstplaysink.c
@@ -620,16 +620,13 @@
       G_STRUCT_OFFSET (GstPlaySinkClass, convert_sample), NULL, NULL,
       g_cclosure_marshal_generic, GST_TYPE_SAMPLE, 1, GST_TYPE_CAPS);
 
-  gst_element_class_add_pad_template (gstelement_klass,
-      gst_static_pad_template_get (&audiorawtemplate));
-  gst_element_class_add_pad_template (gstelement_klass,
-      gst_static_pad_template_get (&audiotemplate));
-  gst_element_class_add_pad_template (gstelement_klass,
-      gst_static_pad_template_get (&videorawtemplate));
-  gst_element_class_add_pad_template (gstelement_klass,
-      gst_static_pad_template_get (&videotemplate));
-  gst_element_class_add_pad_template (gstelement_klass,
-      gst_static_pad_template_get (&texttemplate));
+  gst_element_class_add_static_pad_template (gstelement_klass,
+      &audiorawtemplate);
+  gst_element_class_add_static_pad_template (gstelement_klass, &audiotemplate);
+  gst_element_class_add_static_pad_template (gstelement_klass,
+      &videorawtemplate);
+  gst_element_class_add_static_pad_template (gstelement_klass, &videotemplate);
+  gst_element_class_add_static_pad_template (gstelement_klass, &texttemplate);
   gst_element_class_set_static_metadata (gstelement_klass, "Player Sink",
       "Generic/Bin/Sink",
       "Convenience sink for multiple streams",
@@ -4633,7 +4630,9 @@
 
       if (format == GST_FORMAT_BUFFERS) {
         /* for the buffer format, we align the other streams */
-        if (playsink->audiochain) {
+        if (playsink->audiochain
+            && !gst_object_has_as_ancestor (GST_MESSAGE_SRC (message),
+                GST_OBJECT (playsink->audiochain->chain.bin))) {
           GstEvent *event;
 
           event =
@@ -4701,10 +4700,11 @@
  * to them in case it's source is different from the a/v stream's source.
  */
 static gboolean
-gst_play_sink_send_event_to_sink (GstPlaySink * playsink, GstEvent * event)
+gst_play_sink_send_event_to_sink (GstPlaySink * playsink, GstEvent * event,
+    gboolean force_video)
 {
   gboolean res = TRUE;
-  if (playsink->send_event_mode == MODE_FIRST) {
+  if (playsink->send_event_mode == MODE_FIRST || force_video) {
     if (playsink->textchain && playsink->textchain->sink) {
       gst_event_ref (event);
       if ((res =
@@ -4725,7 +4725,7 @@
       }
       GST_DEBUG_OBJECT (playsink, "Event failed when sent to video sink");
     }
-    if (playsink->audiochain) {
+    if (!force_video && playsink->audiochain) {
       gst_event_ref (event);
       if ((res =
               gst_element_send_event (playsink->audiochain->chain.bin,
@@ -4734,6 +4734,8 @@
         goto done;
       }
       GST_DEBUG_OBJECT (playsink, "Event failed when sent to audio sink");
+    } else {
+      res = FALSE;
     }
   } else {
     return
@@ -4759,7 +4761,7 @@
   switch (event_type) {
     case GST_EVENT_SEEK:
       GST_DEBUG_OBJECT (element, "Sending event to a sink");
-      res = gst_play_sink_send_event_to_sink (playsink, event);
+      res = gst_play_sink_send_event_to_sink (playsink, event, FALSE);
       break;
     case GST_EVENT_STEP:
     {
@@ -4772,7 +4774,7 @@
       if (format == GST_FORMAT_BUFFERS) {
         /* for buffers, we will try to step video frames, for other formats we
          * send the step to all sinks */
-        res = gst_play_sink_send_event_to_sink (playsink, event);
+        res = gst_play_sink_send_event_to_sink (playsink, event, TRUE);
       } else {
         res =
             GST_ELEMENT_CLASS (gst_play_sink_parent_class)->send_event (element,
diff --git a/gst/playback/gstplaysinkconvertbin.c b/gst/playback/gstplaysinkconvertbin.c
index 0930810..d4f6570 100644
--- a/gst/playback/gstplaysinkconvertbin.c
+++ b/gst/playback/gstplaysinkconvertbin.c
@@ -655,10 +655,8 @@
   gobject_class->dispose = gst_play_sink_convert_bin_dispose;
   gobject_class->finalize = gst_play_sink_convert_bin_finalize;
 
-  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);
   gst_element_class_set_static_metadata (gstelement_class,
       "Player Sink Converter Bin", "Bin/Converter",
       "Convenience bin for audio/video conversion",
diff --git a/gst/playback/gststreamsynchronizer.c b/gst/playback/gststreamsynchronizer.c
index 091e576..b26ee70 100644
--- a/gst/playback/gststreamsynchronizer.c
+++ b/gst/playback/gststreamsynchronizer.c
@@ -1020,10 +1020,8 @@
 
   gobject_class->finalize = gst_stream_synchronizer_finalize;
 
-  gst_element_class_add_pad_template (element_class,
-      gst_static_pad_template_get (&srctemplate));
-  gst_element_class_add_pad_template (element_class,
-      gst_static_pad_template_get (&sinktemplate));
+  gst_element_class_add_static_pad_template (element_class, &srctemplate);
+  gst_element_class_add_static_pad_template (element_class, &sinktemplate);
 
   gst_element_class_set_static_metadata (element_class,
       "Stream Synchronizer", "Generic",
diff --git a/gst/playback/gstsubtitleoverlay.c b/gst/playback/gstsubtitleoverlay.c
index adab7e5..65159e8 100644
--- a/gst/playback/gstsubtitleoverlay.c
+++ b/gst/playback/gstsubtitleoverlay.c
@@ -430,6 +430,10 @@
       gst_caps_unref (_factory_caps);
     _factory_caps = gst_caps_new_empty ();
 
+    /* The caps is cached */
+    GST_MINI_OBJECT_FLAG_SET (_factory_caps,
+        GST_MINI_OBJECT_FLAG_MAY_BE_LEAKED);
+
     factories = gst_registry_feature_filter (registry,
         (GstPluginFeatureFilter) _factory_filter, FALSE, &_factory_caps);
     GST_DEBUG ("Created factory caps: %" GST_PTR_FORMAT, _factory_caps);
@@ -1018,10 +1022,17 @@
   GstCaps *subcaps;
   GList *l, *factories = NULL;
 
-  if (GST_IS_EVENT (info->data) && !GST_EVENT_IS_SERIALIZED (info->data)) {
-    GST_DEBUG_OBJECT (pad, "Letting non-serialized event %s pass",
-        GST_EVENT_TYPE_NAME (info->data));
-    return GST_PAD_PROBE_PASS;
+  if (GST_IS_EVENT (info->data)) {
+    if (!GST_EVENT_IS_SERIALIZED (info->data)) {
+      GST_DEBUG_OBJECT (pad, "Letting non-serialized event %s pass",
+          GST_EVENT_TYPE_NAME (info->data));
+      return GST_PAD_PROBE_PASS;
+    }
+    if (GST_EVENT_TYPE (info->data) == GST_EVENT_STREAM_START) {
+      GST_DEBUG_OBJECT (pad, "Letting event %s pass",
+          GST_EVENT_TYPE_NAME (info->data));
+      return GST_PAD_PROBE_PASS;
+    }
   }
 
   GST_DEBUG_OBJECT (pad, "Pad blocked");
@@ -1059,7 +1070,7 @@
 
   /* If there are no subcaps but the subtitle sink is blocked upstream
    * must behave wrong as there are no fixed caps set for the first
-   * buffer or in-order event */
+   * buffer or in-order event after stream-start */
   if (G_UNLIKELY (!subcaps && self->subtitle_sink_blocked)) {
     GST_ELEMENT_WARNING (self, CORE, NEGOTIATION, (NULL),
         ("Subtitle sink is blocked but we have no subtitle caps"));
@@ -1575,13 +1586,12 @@
           "ISO-8859-15 will be assumed.", NULL,
           G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS));
 
-  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_add_pad_template (element_class,
-      gst_static_pad_template_get (&video_sinktemplate));
-  gst_element_class_add_pad_template (element_class,
-      gst_static_pad_template_get (&subtitle_sinktemplate));
+  gst_element_class_add_static_pad_template (element_class,
+      &video_sinktemplate);
+  gst_element_class_add_static_pad_template (element_class,
+      &subtitle_sinktemplate);
 
   gst_element_class_set_static_metadata (element_class, "Subtitle Overlay",
       "Video/Overlay/Subtitle",
diff --git a/gst/playback/gsturidecodebin.c b/gst/playback/gsturidecodebin.c
index 2a4e7bc..0d06776 100644
--- a/gst/playback/gsturidecodebin.c
+++ b/gst/playback/gsturidecodebin.c
@@ -699,8 +699,7 @@
       G_SIGNAL_RUN_LAST, 0, NULL, NULL,
       g_cclosure_marshal_generic, G_TYPE_NONE, 1, GST_TYPE_ELEMENT);
 
-  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,
       "URI Decoder", "Generic/Bin/Decoder",
       "Autoplug and decode an URI to raw media",
diff --git a/gst/playback/gsturisourcebin.c b/gst/playback/gsturisourcebin.c
new file mode 100644
index 0000000..c72e922
--- /dev/null
+++ b/gst/playback/gsturisourcebin.c
@@ -0,0 +1,2823 @@
+/* GStreamer
+ * Copyright (C) <2015> Jan Schmidt <jan@centricular.com>
+ * Copyright (C) <2007> 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.
+ */
+
+/**
+ * SECTION:element-urisourcebin
+ *
+ * Handles selecting a URI source element and potentially buffering/download
+ * for network sources. Produces one or more source pads for feeding to
+ * decoding chains or decodebin.
+ */
+
+/* FIXME 0.11: suppress warnings for deprecated API such as GValueArray
+ * with newer GLib versions (>= 2.31.0) */
+#define GLIB_DISABLE_DEPRECATION_WARNINGS
+
+#ifdef HAVE_CONFIG_H
+#  include "config.h"
+#endif
+
+#include <string.h>
+
+#include <gst/gst.h>
+#include <gst/gst-i18n-plugin.h>
+#include <gst/pbutils/missing-plugins.h>
+
+#include "gstplay-enum.h"
+#include "gstrawcaps.h"
+#include "gstplayback.h"
+
+/* From gstdecodebin2.c */
+gint _decode_bin_compare_factories_func (gconstpointer p1, gconstpointer p2);
+
+#define GST_TYPE_URI_DECODE_BIN \
+  (gst_uri_source_bin_get_type())
+#define GST_URI_SOURCE_BIN(obj) \
+  (G_TYPE_CHECK_INSTANCE_CAST((obj),GST_TYPE_URI_DECODE_BIN,GstURISourceBin))
+#define GST_URI_SOURCE_BIN_CLASS(klass) \
+  (G_TYPE_CHECK_CLASS_CAST((klass),GST_TYPE_URI_DECODE_BIN,GstURISourceBinClass))
+#define GST_IS_URI_SOURCE_BIN(obj) \
+  (G_TYPE_CHECK_INSTANCE_TYPE((obj),GST_TYPE_URI_DECODE_BIN))
+#define GST_IS_URI_SOURCE_BIN_CLASS(klass) \
+  (G_TYPE_CHECK_CLASS_TYPE((klass),GST_TYPE_URI_DECODE_BIN))
+#define GST_URI_SOURCE_BIN_CAST(obj) ((GstURISourceBin *) (obj))
+
+typedef struct _GstURISourceBin GstURISourceBin;
+typedef struct _GstURISourceBinClass GstURISourceBinClass;
+typedef struct _ChildSrcPadInfo ChildSrcPadInfo;
+typedef struct _OutputSlotInfo OutputSlotInfo;
+
+#define GST_URI_SOURCE_BIN_LOCK(dec) (g_mutex_lock(&((GstURISourceBin*)(dec))->lock))
+#define GST_URI_SOURCE_BIN_UNLOCK(dec) (g_mutex_unlock(&((GstURISourceBin*)(dec))->lock))
+
+/* Track a source pad from a child that
+ * is linked or needs linking to an output
+ * slot */
+struct _ChildSrcPadInfo
+{
+  guint blocking_probe_id;
+  guint event_probe_id;
+  GstPad *demux_src_pad;
+  GstCaps *cur_caps;            /* holds ref */
+
+  /* Configured output slot, if any */
+  OutputSlotInfo *output_slot;
+};
+
+struct _OutputSlotInfo
+{
+  ChildSrcPadInfo *linked_info; /* demux source pad info feeding this slot, if any */
+  GstElement *queue;            /* queue2 or downloadbuffer */
+  GstPad *sinkpad;              /* Sink pad of the queue eleemnt */
+  GstPad *srcpad;               /* Output ghost pad */
+  gboolean is_eos;              /* Did EOS get fed into the buffering element */
+};
+
+/**
+ * GstURISourceBin
+ *
+ * urisourcebin element struct
+ */
+struct _GstURISourceBin
+{
+  GstBin parent_instance;
+
+  GMutex lock;                  /* lock for constructing */
+
+  GMutex factories_lock;
+  guint32 factories_cookie;
+  GList *factories;             /* factories we can use for selecting elements */
+
+  gchar *uri;
+  guint64 connection_speed;
+
+  gboolean is_stream;
+  gboolean is_adaptive;
+  gboolean need_queue;
+  guint64 buffer_duration;      /* When buffering, buffer duration (ns) */
+  guint buffer_size;            /* When buffering, buffer size (bytes) */
+  gboolean download;
+  gboolean use_buffering;
+
+  GstElement *source;
+  GstElement *typefind;
+  guint have_type_id;           /* have-type signal id from typefind */
+
+  GstElement *demuxer;          /* Adaptive demuxer if any */
+  GSList *out_slots;
+
+  GHashTable *streams;
+  guint numpads;
+
+  /* for dynamic sources */
+  guint src_np_sig_id;          /* new-pad signal id */
+
+  gboolean async_pending;       /* async-start has been emitted */
+
+  guint64 ring_buffer_max_size; /* 0 means disabled */
+
+  GList *pending_pads;          /* Pads we have blocked pending assignment
+                                   to an output source pad */
+  GList *inactive_output_pads;  /* output pads that were unghosted */
+
+  GList *buffering_status;      /* element currently buffering messages */
+  gint last_buffering_pct;      /* Avoid sending buffering over and over */
+};
+
+struct _GstURISourceBinClass
+{
+  GstBinClass parent_class;
+
+  /* signal fired when we found a pad that we cannot decode */
+  void (*unknown_type) (GstElement * element, GstPad * pad, GstCaps * caps);
+
+  /* signal fired to know if we continue trying to decode the given caps */
+    gboolean (*autoplug_continue) (GstElement * element, GstPad * pad,
+      GstCaps * caps);
+  /* signal fired to get a list of factories to try to autoplug */
+  GValueArray *(*autoplug_factories) (GstElement * element, GstPad * pad,
+      GstCaps * caps);
+  /* signal fired to sort the factories */
+  GValueArray *(*autoplug_sort) (GstElement * element, GstPad * pad,
+      GstCaps * caps, GValueArray * factories);
+  /* signal fired to select from the proposed list of factories */
+    GstAutoplugSelectResult (*autoplug_select) (GstElement * element,
+      GstPad * pad, GstCaps * caps, GstElementFactory * factory);
+  /* signal fired when a autoplugged element that is not linked downstream
+   * or exposed wants to query something */
+    gboolean (*autoplug_query) (GstElement * element, GstPad * pad,
+      GstQuery * query);
+
+  /* emitted when all data is decoded */
+  void (*drained) (GstElement * element);
+};
+
+static GstStaticPadTemplate srctemplate = GST_STATIC_PAD_TEMPLATE ("src_%u",
+    GST_PAD_SRC,
+    GST_PAD_SOMETIMES,
+    GST_STATIC_CAPS_ANY);
+
+static GstStaticCaps default_raw_caps = GST_STATIC_CAPS (DEFAULT_RAW_CAPS);
+
+GST_DEBUG_CATEGORY_STATIC (gst_uri_source_bin_debug);
+#define GST_CAT_DEFAULT gst_uri_source_bin_debug
+
+/* signals */
+enum
+{
+  SIGNAL_UNKNOWN_TYPE,
+  SIGNAL_AUTOPLUG_CONTINUE,
+  SIGNAL_AUTOPLUG_FACTORIES,
+  SIGNAL_AUTOPLUG_SELECT,
+  SIGNAL_AUTOPLUG_SORT,
+  SIGNAL_AUTOPLUG_QUERY,
+  SIGNAL_DRAINED,
+  SIGNAL_SOURCE_SETUP,
+  LAST_SIGNAL
+};
+
+/* properties */
+#define DEFAULT_PROP_URI            NULL
+#define DEFAULT_PROP_SOURCE         NULL
+#define DEFAULT_CONNECTION_SPEED    0
+#define DEFAULT_BUFFER_DURATION     -1
+#define DEFAULT_BUFFER_SIZE         -1
+#define DEFAULT_DOWNLOAD            FALSE
+#define DEFAULT_USE_BUFFERING       FALSE
+#define DEFAULT_RING_BUFFER_MAX_SIZE 0
+
+#define DEFAULT_CAPS (gst_static_caps_get (&default_raw_caps))
+enum
+{
+  PROP_0,
+  PROP_URI,
+  PROP_SOURCE,
+  PROP_CONNECTION_SPEED,
+  PROP_BUFFER_SIZE,
+  PROP_BUFFER_DURATION,
+  PROP_DOWNLOAD,
+  PROP_USE_BUFFERING,
+  PROP_RING_BUFFER_MAX_SIZE
+};
+
+static void post_missing_plugin_error (GstElement * dec,
+    const gchar * element_name);
+
+static guint gst_uri_source_bin_signals[LAST_SIGNAL] = { 0 };
+
+GType gst_uri_source_bin_get_type (void);
+#define gst_uri_source_bin_parent_class parent_class
+G_DEFINE_TYPE (GstURISourceBin, gst_uri_source_bin, GST_TYPE_BIN);
+
+static void gst_uri_source_bin_set_property (GObject * object, guint prop_id,
+    const GValue * value, GParamSpec * pspec);
+static void gst_uri_source_bin_get_property (GObject * object, guint prop_id,
+    GValue * value, GParamSpec * pspec);
+static void gst_uri_source_bin_finalize (GObject * obj);
+
+static void handle_message (GstBin * bin, GstMessage * msg);
+
+static gboolean gst_uri_source_bin_query (GstElement * element,
+    GstQuery * query);
+static GstStateChangeReturn gst_uri_source_bin_change_state (GstElement *
+    element, GstStateChange transition);
+
+static void remove_demuxer (GstURISourceBin * bin);
+static void expose_output_pad (GstURISourceBin * urisrc, GstPad * pad);
+static OutputSlotInfo *get_output_slot (GstURISourceBin * urisrc,
+    gboolean do_download, gboolean is_adaptive, GstCaps * caps);
+static void free_output_slot (OutputSlotInfo * slot, GstURISourceBin * urisrc);
+static GstPad *create_output_pad (GstURISourceBin * urisrc, GstPad * pad);
+static void remove_buffering_msgs (GstURISourceBin * bin, GstObject * src);
+
+static gboolean
+_gst_boolean_accumulator (GSignalInvocationHint * ihint,
+    GValue * return_accu, const GValue * handler_return, gpointer dummy)
+{
+  gboolean myboolean;
+
+  myboolean = g_value_get_boolean (handler_return);
+  if (!(ihint->run_type & G_SIGNAL_RUN_CLEANUP))
+    g_value_set_boolean (return_accu, myboolean);
+
+  /* stop emission if FALSE */
+  return myboolean;
+}
+
+static gboolean
+_gst_boolean_or_accumulator (GSignalInvocationHint * ihint,
+    GValue * return_accu, const GValue * handler_return, gpointer dummy)
+{
+  gboolean myboolean;
+  gboolean retboolean;
+
+  myboolean = g_value_get_boolean (handler_return);
+  retboolean = g_value_get_boolean (return_accu);
+
+  if (!(ihint->run_type & G_SIGNAL_RUN_CLEANUP))
+    g_value_set_boolean (return_accu, myboolean || retboolean);
+
+  return TRUE;
+}
+
+static gboolean
+_gst_array_accumulator (GSignalInvocationHint * ihint,
+    GValue * return_accu, const GValue * handler_return, gpointer dummy)
+{
+  gpointer array;
+
+  array = g_value_get_boxed (handler_return);
+  if (!(ihint->run_type & G_SIGNAL_RUN_CLEANUP))
+    g_value_set_boxed (return_accu, array);
+
+  return FALSE;
+}
+
+static gboolean
+_gst_select_accumulator (GSignalInvocationHint * ihint,
+    GValue * return_accu, const GValue * handler_return, gpointer dummy)
+{
+  GstAutoplugSelectResult res;
+
+  res = g_value_get_enum (handler_return);
+  if (!(ihint->run_type & G_SIGNAL_RUN_CLEANUP))
+    g_value_set_enum (return_accu, res);
+
+  /* Call the next handler in the chain (if any) when the current callback
+   * returns TRY. This makes it possible to register separate autoplug-select
+   * handlers that implement different TRY/EXPOSE/SKIP strategies.
+   */
+  if (res == GST_AUTOPLUG_SELECT_TRY)
+    return TRUE;
+
+  return FALSE;
+}
+
+static gboolean
+_gst_array_hasvalue_accumulator (GSignalInvocationHint * ihint,
+    GValue * return_accu, const GValue * handler_return, gpointer dummy)
+{
+  gpointer array;
+
+  array = g_value_get_boxed (handler_return);
+  if (!(ihint->run_type & G_SIGNAL_RUN_CLEANUP))
+    g_value_set_boxed (return_accu, array);
+
+  if (array != NULL)
+    return FALSE;
+
+  return TRUE;
+}
+
+static gboolean
+gst_uri_source_bin_autoplug_continue (GstElement * element, GstPad * pad,
+    GstCaps * caps)
+{
+  /* by default we always continue */
+  return TRUE;
+}
+
+/* Must be called with factories lock! */
+static void
+gst_uri_source_bin_update_factories_list (GstURISourceBin * dec)
+{
+  guint32 cookie;
+
+  cookie = gst_registry_get_feature_list_cookie (gst_registry_get ());
+  if (!dec->factories || dec->factories_cookie != cookie) {
+    if (dec->factories)
+      gst_plugin_feature_list_free (dec->factories);
+    dec->factories =
+        gst_element_factory_list_get_elements
+        (GST_ELEMENT_FACTORY_TYPE_DECODABLE, GST_RANK_MARGINAL);
+    dec->factories =
+        g_list_sort (dec->factories, _decode_bin_compare_factories_func);
+    dec->factories_cookie = cookie;
+  }
+}
+
+static GValueArray *
+gst_uri_source_bin_autoplug_factories (GstElement * element, GstPad * pad,
+    GstCaps * caps)
+{
+  GList *list, *tmp;
+  GValueArray *result;
+  GstURISourceBin *dec = GST_URI_SOURCE_BIN_CAST (element);
+
+  GST_DEBUG_OBJECT (element, "finding factories");
+
+  /* return all compatible factories for caps */
+  g_mutex_lock (&dec->factories_lock);
+  gst_uri_source_bin_update_factories_list (dec);
+  list =
+      gst_element_factory_list_filter (dec->factories, caps, GST_PAD_SINK,
+      gst_caps_is_fixed (caps));
+  g_mutex_unlock (&dec->factories_lock);
+
+  result = g_value_array_new (g_list_length (list));
+  for (tmp = list; tmp; tmp = tmp->next) {
+    GstElementFactory *factory = GST_ELEMENT_FACTORY_CAST (tmp->data);
+    GValue val = { 0, };
+
+    g_value_init (&val, G_TYPE_OBJECT);
+    g_value_set_object (&val, factory);
+    g_value_array_append (result, &val);
+    g_value_unset (&val);
+  }
+  gst_plugin_feature_list_free (list);
+
+  GST_DEBUG_OBJECT (element, "autoplug-factories returns %p", result);
+
+  return result;
+}
+
+static GValueArray *
+gst_uri_source_bin_autoplug_sort (GstElement * element, GstPad * pad,
+    GstCaps * caps, GValueArray * factories)
+{
+  return NULL;
+}
+
+static GstAutoplugSelectResult
+gst_uri_source_bin_autoplug_select (GstElement * element, GstPad * pad,
+    GstCaps * caps, GstElementFactory * factory)
+{
+  GST_DEBUG_OBJECT (element, "default autoplug-select returns TRY");
+
+  /* Try factory. */
+  return GST_AUTOPLUG_SELECT_TRY;
+}
+
+static gboolean
+gst_uri_source_bin_autoplug_query (GstElement * element, GstPad * pad,
+    GstQuery * query)
+{
+  /* No query handled here */
+  return FALSE;
+}
+
+static void
+gst_uri_source_bin_class_init (GstURISourceBinClass * klass)
+{
+  GObjectClass *gobject_class;
+  GstElementClass *gstelement_class;
+  GstBinClass *gstbin_class;
+
+  gobject_class = G_OBJECT_CLASS (klass);
+  gstelement_class = GST_ELEMENT_CLASS (klass);
+  gstbin_class = GST_BIN_CLASS (klass);
+
+  gobject_class->set_property = gst_uri_source_bin_set_property;
+  gobject_class->get_property = gst_uri_source_bin_get_property;
+  gobject_class->finalize = gst_uri_source_bin_finalize;
+
+  g_object_class_install_property (gobject_class, PROP_URI,
+      g_param_spec_string ("uri", "URI", "URI to decode",
+          DEFAULT_PROP_URI, G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS));
+
+  g_object_class_install_property (gobject_class, PROP_SOURCE,
+      g_param_spec_object ("source", "Source", "Source object used",
+          GST_TYPE_ELEMENT, G_PARAM_READABLE | G_PARAM_STATIC_STRINGS));
+
+  g_object_class_install_property (gobject_class, PROP_CONNECTION_SPEED,
+      g_param_spec_uint64 ("connection-speed", "Connection Speed",
+          "Network connection speed in kbps (0 = unknown)",
+          0, G_MAXUINT64 / 1000, DEFAULT_CONNECTION_SPEED,
+          G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS));
+
+  g_object_class_install_property (gobject_class, PROP_BUFFER_SIZE,
+      g_param_spec_int ("buffer-size", "Buffer size (bytes)",
+          "Buffer size when buffering streams (-1 default value)",
+          -1, G_MAXINT, DEFAULT_BUFFER_SIZE,
+          G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS));
+  g_object_class_install_property (gobject_class, PROP_BUFFER_DURATION,
+      g_param_spec_int64 ("buffer-duration", "Buffer duration (ns)",
+          "Buffer duration when buffering streams (-1 default value)",
+          -1, G_MAXINT64, DEFAULT_BUFFER_DURATION,
+          G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS));
+
+  /**
+   * GstURISourceBin::download:
+   *
+   * For certain media type, enable download buffering.
+   */
+  g_object_class_install_property (gobject_class, PROP_DOWNLOAD,
+      g_param_spec_boolean ("download", "Download",
+          "Attempt download buffering when buffering network streams",
+          DEFAULT_DOWNLOAD, G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS));
+
+  /**  
+   * GstURISourceBin::use-buffering:
+   *
+   * Perform buffering using a queue2 element, and emit BUFFERING
+   * messages based on low-/high-percent thresholds of streaming data,
+   * such as adaptive-demuxer streams.
+   *
+   * When download buffering is activated and used for the current media
+   * type, this property does nothing.
+   *
+   */
+  g_object_class_install_property (gobject_class, PROP_USE_BUFFERING,
+      g_param_spec_boolean ("use-buffering", "Use Buffering",
+          "Perform buffering on demuxed/parsed media",
+          DEFAULT_USE_BUFFERING, G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS));
+
+  /**
+   * GstURISourceBin::ring-buffer-max-size
+   *
+   * The maximum size of the ring buffer in kilobytes. If set to 0, the ring
+   * buffer is disabled. Default is 0.
+   *
+   */
+  g_object_class_install_property (gobject_class, PROP_RING_BUFFER_MAX_SIZE,
+      g_param_spec_uint64 ("ring-buffer-max-size",
+          "Max. ring buffer size (bytes)",
+          "Max. amount of data in the ring buffer (bytes, 0 = ring buffer disabled)",
+          0, G_MAXUINT, DEFAULT_RING_BUFFER_MAX_SIZE,
+          G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS));
+
+  /**
+   * GstURISourceBin::unknown-type:
+   * @bin: The urisourcebin.
+   * @pad: the new pad containing caps that cannot be resolved to a 'final'.
+   * stream type.
+   * @caps: the #GstCaps of the pad that cannot be resolved.
+   *
+   * This signal is emitted when a pad for which there is no further possible
+   * decoding is added to the urisourcebin.
+   */
+  gst_uri_source_bin_signals[SIGNAL_UNKNOWN_TYPE] =
+      g_signal_new ("unknown-type", G_TYPE_FROM_CLASS (klass),
+      G_SIGNAL_RUN_LAST, G_STRUCT_OFFSET (GstURISourceBinClass, unknown_type),
+      NULL, NULL, g_cclosure_marshal_generic, G_TYPE_NONE, 2,
+      GST_TYPE_PAD, GST_TYPE_CAPS);
+
+  /**
+   * GstURISourceBin::autoplug-continue:
+   * @bin: The urisourcebin.
+   * @pad: The #GstPad.
+   * @caps: The #GstCaps found.
+   *
+   * This signal is emitted whenever urisourcebin finds a new stream. It is
+   * emitted before looking for any elements that can handle that stream.
+   *
+   * <note>
+   *   Invocation of signal handlers stops after the first signal handler
+   *   returns #FALSE. Signal handlers are invoked in the order they were
+   *   connected in.
+   * </note>
+   *
+   * Returns: #TRUE if you wish urisourcebin to look for elements that can
+   * handle the given @caps. If #FALSE, those caps will be considered as
+   * final and the pad will be exposed as such (see 'pad-added' signal of
+   * #GstElement).
+   */
+  gst_uri_source_bin_signals[SIGNAL_AUTOPLUG_CONTINUE] =
+      g_signal_new ("autoplug-continue", G_TYPE_FROM_CLASS (klass),
+      G_SIGNAL_RUN_LAST, G_STRUCT_OFFSET (GstURISourceBinClass,
+          autoplug_continue), _gst_boolean_accumulator, NULL,
+      g_cclosure_marshal_generic, G_TYPE_BOOLEAN, 2, GST_TYPE_PAD,
+      GST_TYPE_CAPS);
+
+  /**
+   * GstURISourceBin::autoplug-factories:
+   * @bin: The urisourcebin.
+   * @pad: The #GstPad.
+   * @caps: The #GstCaps found.
+   *
+   * This function is emitted when an array of possible factories for @caps on
+   * @pad is needed. urisourcebin will by default return an array with all
+   * compatible factories, sorted by rank.
+   *
+   * If this function returns NULL, @pad will be exposed as a final caps.
+   *
+   * If this function returns an empty array, the pad will be considered as
+   * having an unhandled type media type.
+   *
+   * <note>
+   *   Only the signal handler that is connected first will ever by invoked.
+   *   Don't connect signal handlers with the #G_CONNECT_AFTER flag to this
+   *   signal, they will never be invoked!
+   * </note>
+   *
+   * Returns: a #GValueArray* with a list of factories to try. The factories are
+   * by default tried in the returned order or based on the index returned by
+   * "autoplug-select".
+   */
+  gst_uri_source_bin_signals[SIGNAL_AUTOPLUG_FACTORIES] =
+      g_signal_new ("autoplug-factories", G_TYPE_FROM_CLASS (klass),
+      G_SIGNAL_RUN_LAST, G_STRUCT_OFFSET (GstURISourceBinClass,
+          autoplug_factories), _gst_array_accumulator, NULL,
+      g_cclosure_marshal_generic, G_TYPE_VALUE_ARRAY, 2,
+      GST_TYPE_PAD, GST_TYPE_CAPS);
+
+  /**
+   * GstURISourceBin::autoplug-sort:
+   * @bin: The urisourcebin.
+   * @pad: The #GstPad.
+   * @caps: The #GstCaps.
+   * @factories: A #GValueArray of possible #GstElementFactory to use.
+   *
+   * Once decodebin has found the possible #GstElementFactory objects to try
+   * for @caps on @pad, this signal is emited. The purpose of the signal is for
+   * the application to perform additional sorting or filtering on the element
+   * factory array.
+   *
+   * The callee should copy and modify @factories or return #NULL if the
+   * order should not change.
+   *
+   * <note>
+   *   Invocation of signal handlers stops after one signal handler has
+   *   returned something else than #NULL. Signal handlers are invoked in
+   *   the order they were connected in.
+   *   Don't connect signal handlers with the #G_CONNECT_AFTER flag to this
+   *   signal, they will never be invoked!
+   * </note>
+   *
+   * Returns: A new sorted array of #GstElementFactory objects.
+   *
+   * Since: 0.10.33
+   */
+  gst_uri_source_bin_signals[SIGNAL_AUTOPLUG_SORT] =
+      g_signal_new ("autoplug-sort", G_TYPE_FROM_CLASS (klass),
+      G_SIGNAL_RUN_LAST, G_STRUCT_OFFSET (GstURISourceBinClass, autoplug_sort),
+      _gst_array_hasvalue_accumulator, NULL,
+      g_cclosure_marshal_generic, G_TYPE_VALUE_ARRAY, 3, GST_TYPE_PAD,
+      GST_TYPE_CAPS, G_TYPE_VALUE_ARRAY | G_SIGNAL_TYPE_STATIC_SCOPE);
+
+  /**
+   * GstURISourceBin::autoplug-select:
+   * @bin: The urisourcebin.
+   * @pad: The #GstPad.
+   * @caps: The #GstCaps.
+   * @factory: A #GstElementFactory to use.
+   *
+   * This signal is emitted once urisourcebin has found all the possible
+   * #GstElementFactory that can be used to handle the given @caps. For each of
+   * those factories, this signal is emitted.
+   *
+   * The signal handler should return a #GST_TYPE_AUTOPLUG_SELECT_RESULT enum
+   * value indicating what decodebin should do next.
+   *
+   * A value of #GST_AUTOPLUG_SELECT_TRY will try to autoplug an element from
+   * @factory.
+   *
+   * A value of #GST_AUTOPLUG_SELECT_EXPOSE will expose @pad without plugging
+   * any element to it.
+   *
+   * A value of #GST_AUTOPLUG_SELECT_SKIP will skip @factory and move to the
+   * next factory.
+   *
+   * <note>
+   *   The signal handler will not be invoked if any of the previously
+   *   registered signal handlers (if any) return a value other than
+   *   GST_AUTOPLUG_SELECT_TRY. Which also means that if you return
+   *   GST_AUTOPLUG_SELECT_TRY from one signal handler, handlers that get
+   *   registered next (again, if any) can override that decision.
+   * </note>
+   *
+   * Returns: a #GST_TYPE_AUTOPLUG_SELECT_RESULT that indicates the required
+   * operation. The default handler will always return
+   * #GST_AUTOPLUG_SELECT_TRY.
+   */
+  gst_uri_source_bin_signals[SIGNAL_AUTOPLUG_SELECT] =
+      g_signal_new ("autoplug-select", G_TYPE_FROM_CLASS (klass),
+      G_SIGNAL_RUN_LAST, G_STRUCT_OFFSET (GstURISourceBinClass,
+          autoplug_select), _gst_select_accumulator, NULL,
+      g_cclosure_marshal_generic,
+      GST_TYPE_AUTOPLUG_SELECT_RESULT, 3, GST_TYPE_PAD, GST_TYPE_CAPS,
+      GST_TYPE_ELEMENT_FACTORY);
+
+  /**
+   * GstDecodeBin::autoplug-query:
+   * @bin: The decodebin.
+   * @child: The child element doing the query
+   * @pad: The #GstPad.
+   * @query: The #GstQuery.
+   *
+   * This signal is emitted whenever an autoplugged element that is
+   * not linked downstream yet and not exposed does a query. It can
+   * be used to tell the element about the downstream supported caps
+   * for example.
+   *
+   * Returns: #TRUE if the query was handled, #FALSE otherwise.
+   */
+  gst_uri_source_bin_signals[SIGNAL_AUTOPLUG_QUERY] =
+      g_signal_new ("autoplug-query", G_TYPE_FROM_CLASS (klass),
+      G_SIGNAL_RUN_LAST, G_STRUCT_OFFSET (GstURISourceBinClass, autoplug_query),
+      _gst_boolean_or_accumulator, NULL, g_cclosure_marshal_generic,
+      G_TYPE_BOOLEAN, 3, GST_TYPE_PAD, GST_TYPE_ELEMENT,
+      GST_TYPE_QUERY | G_SIGNAL_TYPE_STATIC_SCOPE);
+
+  /**
+   * GstURISourceBin::drained:
+   *
+   * This signal is emitted when the data for the current uri is played.
+   */
+  gst_uri_source_bin_signals[SIGNAL_DRAINED] =
+      g_signal_new ("drained", G_TYPE_FROM_CLASS (klass),
+      G_SIGNAL_RUN_LAST,
+      G_STRUCT_OFFSET (GstURISourceBinClass, drained), NULL, NULL,
+      g_cclosure_marshal_generic, G_TYPE_NONE, 0, G_TYPE_NONE);
+
+  /**
+   * GstURISourceBin::source-setup:
+   * @bin: the urisourcebin.
+   * @source: source element
+   *
+   * This signal is emitted after the source element has been created, so
+   * it can be configured by setting additional properties (e.g. set a
+   * proxy server for an http source, or set the device and read speed for
+   * an audio cd source). This is functionally equivalent to connecting to
+   * the notify::source signal, but more convenient.
+   *
+   * Since: 1.6.1
+   */
+  gst_uri_source_bin_signals[SIGNAL_SOURCE_SETUP] =
+      g_signal_new ("source-setup", G_TYPE_FROM_CLASS (klass),
+      G_SIGNAL_RUN_LAST, 0, NULL, NULL,
+      g_cclosure_marshal_generic, G_TYPE_NONE, 1, GST_TYPE_ELEMENT);
+
+  gst_element_class_add_pad_template (gstelement_class,
+      gst_static_pad_template_get (&srctemplate));
+  gst_element_class_set_static_metadata (gstelement_class,
+      "URI reader", "Generic/Bin/Source",
+      "Download and buffer a URI as needed",
+      "Jan Schmidt <jan@centricular.com>");
+
+  gstelement_class->query = GST_DEBUG_FUNCPTR (gst_uri_source_bin_query);
+  gstelement_class->change_state =
+      GST_DEBUG_FUNCPTR (gst_uri_source_bin_change_state);
+
+  gstbin_class->handle_message = GST_DEBUG_FUNCPTR (handle_message);
+
+  klass->autoplug_continue =
+      GST_DEBUG_FUNCPTR (gst_uri_source_bin_autoplug_continue);
+  klass->autoplug_factories =
+      GST_DEBUG_FUNCPTR (gst_uri_source_bin_autoplug_factories);
+  klass->autoplug_sort = GST_DEBUG_FUNCPTR (gst_uri_source_bin_autoplug_sort);
+  klass->autoplug_select =
+      GST_DEBUG_FUNCPTR (gst_uri_source_bin_autoplug_select);
+  klass->autoplug_query = GST_DEBUG_FUNCPTR (gst_uri_source_bin_autoplug_query);
+}
+
+static void
+gst_uri_source_bin_init (GstURISourceBin * urisrc)
+{
+  /* first filter out the interesting element factories */
+  g_mutex_init (&urisrc->factories_lock);
+
+  g_mutex_init (&urisrc->lock);
+
+  urisrc->uri = g_strdup (DEFAULT_PROP_URI);
+  urisrc->connection_speed = DEFAULT_CONNECTION_SPEED;
+
+  urisrc->buffer_duration = DEFAULT_BUFFER_DURATION;
+  urisrc->buffer_size = DEFAULT_BUFFER_SIZE;
+  urisrc->download = DEFAULT_DOWNLOAD;
+  urisrc->ring_buffer_max_size = DEFAULT_RING_BUFFER_MAX_SIZE;
+  urisrc->last_buffering_pct = -1;
+
+  GST_OBJECT_FLAG_SET (urisrc, GST_ELEMENT_FLAG_SOURCE);
+}
+
+static void
+gst_uri_source_bin_finalize (GObject * obj)
+{
+  GstURISourceBin *urisrc = GST_URI_SOURCE_BIN (obj);
+
+  remove_demuxer (urisrc);
+  g_mutex_clear (&urisrc->lock);
+  g_mutex_clear (&urisrc->factories_lock);
+  g_free (urisrc->uri);
+  if (urisrc->factories)
+    gst_plugin_feature_list_free (urisrc->factories);
+
+  G_OBJECT_CLASS (parent_class)->finalize (obj);
+}
+
+static void
+gst_uri_source_bin_set_property (GObject * object, guint prop_id,
+    const GValue * value, GParamSpec * pspec)
+{
+  GstURISourceBin *dec = GST_URI_SOURCE_BIN (object);
+
+  switch (prop_id) {
+    case PROP_URI:
+      GST_OBJECT_LOCK (dec);
+      g_free (dec->uri);
+      dec->uri = g_value_dup_string (value);
+      GST_OBJECT_UNLOCK (dec);
+      break;
+    case PROP_CONNECTION_SPEED:
+      GST_OBJECT_LOCK (dec);
+      dec->connection_speed = g_value_get_uint64 (value) * 1000;
+      GST_OBJECT_UNLOCK (dec);
+      break;
+    case PROP_BUFFER_SIZE:
+      dec->buffer_size = g_value_get_int (value);
+      break;
+    case PROP_BUFFER_DURATION:
+      dec->buffer_duration = g_value_get_int64 (value);
+      break;
+    case PROP_DOWNLOAD:
+      dec->download = g_value_get_boolean (value);
+      break;
+    case PROP_USE_BUFFERING:
+      dec->use_buffering = g_value_get_boolean (value);
+      break;
+    case PROP_RING_BUFFER_MAX_SIZE:
+      dec->ring_buffer_max_size = g_value_get_uint64 (value);
+      break;
+    default:
+      G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec);
+      break;
+  }
+}
+
+static void
+gst_uri_source_bin_get_property (GObject * object, guint prop_id,
+    GValue * value, GParamSpec * pspec)
+{
+  GstURISourceBin *dec = GST_URI_SOURCE_BIN (object);
+
+  switch (prop_id) {
+    case PROP_URI:
+      GST_OBJECT_LOCK (dec);
+      g_value_set_string (value, dec->uri);
+      GST_OBJECT_UNLOCK (dec);
+      break;
+    case PROP_SOURCE:
+      GST_OBJECT_LOCK (dec);
+      g_value_set_object (value, dec->source);
+      GST_OBJECT_UNLOCK (dec);
+      break;
+    case PROP_CONNECTION_SPEED:
+      GST_OBJECT_LOCK (dec);
+      g_value_set_uint64 (value, dec->connection_speed / 1000);
+      GST_OBJECT_UNLOCK (dec);
+      break;
+    case PROP_BUFFER_SIZE:
+      GST_OBJECT_LOCK (dec);
+      g_value_set_int (value, dec->buffer_size);
+      GST_OBJECT_UNLOCK (dec);
+      break;
+    case PROP_BUFFER_DURATION:
+      GST_OBJECT_LOCK (dec);
+      g_value_set_int64 (value, dec->buffer_duration);
+      GST_OBJECT_UNLOCK (dec);
+      break;
+    case PROP_DOWNLOAD:
+      g_value_set_boolean (value, dec->download);
+      break;
+    case PROP_USE_BUFFERING:
+      g_value_set_boolean (value, dec->use_buffering);
+      break;
+    case PROP_RING_BUFFER_MAX_SIZE:
+      g_value_set_uint64 (value, dec->ring_buffer_max_size);
+      break;
+    default:
+      G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec);
+      break;
+  }
+}
+
+static void
+do_async_start (GstURISourceBin * dbin)
+{
+  GstMessage *message;
+
+  dbin->async_pending = TRUE;
+
+  message = gst_message_new_async_start (GST_OBJECT_CAST (dbin));
+  GST_BIN_CLASS (parent_class)->handle_message (GST_BIN_CAST (dbin), message);
+}
+
+static void
+do_async_done (GstURISourceBin * dbin)
+{
+  GstMessage *message;
+
+  if (dbin->async_pending) {
+    GST_DEBUG_OBJECT (dbin, "posting ASYNC_DONE");
+    message =
+        gst_message_new_async_done (GST_OBJECT_CAST (dbin),
+        GST_CLOCK_TIME_NONE);
+    GST_BIN_CLASS (parent_class)->handle_message (GST_BIN_CAST (dbin), message);
+
+    dbin->async_pending = FALSE;
+  }
+}
+
+#define DEFAULT_QUEUE_SIZE          (3 * GST_SECOND)
+#define DEFAULT_QUEUE_MIN_THRESHOLD ((DEFAULT_QUEUE_SIZE * 30) / 100)
+#define DEFAULT_QUEUE_THRESHOLD     ((DEFAULT_QUEUE_SIZE * 95) / 100)
+
+static gboolean
+copy_sticky_events (GstPad * pad, GstEvent ** event, gpointer user_data)
+{
+  GstPad *gpad = GST_PAD_CAST (user_data);
+
+  GST_DEBUG_OBJECT (gpad, "store sticky event %" GST_PTR_FORMAT, *event);
+  gst_pad_store_sticky_event (gpad, *event);
+
+  return TRUE;
+}
+
+static GstPadProbeReturn
+pending_pad_blocked (GstPad * pad, GstPadProbeInfo * info, gpointer user_data);
+
+static GstPadProbeReturn
+demux_pad_events (GstPad * pad, GstPadProbeInfo * info, gpointer user_data);
+
+static void
+free_child_src_pad_info (ChildSrcPadInfo * info)
+{
+  if (info->cur_caps)
+    gst_caps_unref (info->cur_caps);
+  g_free (info);
+}
+
+/* Called by the signal handlers when a demuxer has produced a new stream */
+static void
+new_demuxer_pad_added_cb (GstElement * element, GstPad * pad,
+    GstURISourceBin * urisrc)
+{
+  ChildSrcPadInfo *info;
+
+  info = g_new0 (ChildSrcPadInfo, 1);
+  info->demux_src_pad = pad;
+  info->cur_caps = gst_pad_get_current_caps (pad);
+  if (info->cur_caps == NULL)
+    info->cur_caps = gst_pad_query_caps (pad, NULL);
+
+  g_object_set_data_full (G_OBJECT (pad), "urisourcebin.srcpadinfo",
+      info, (GDestroyNotify) free_child_src_pad_info);
+
+  GST_DEBUG_OBJECT (element, "new demuxer pad, name: <%s>. "
+      "Added as pending pad with caps %" GST_PTR_FORMAT,
+      GST_PAD_NAME (pad), info->cur_caps);
+
+  GST_URI_SOURCE_BIN_LOCK (urisrc);
+  urisrc->pending_pads = g_list_prepend (urisrc->pending_pads, pad);
+  GST_URI_SOURCE_BIN_UNLOCK (urisrc);
+
+  /* Block the pad. On the first data on that pad if it hasn't
+   * been linked to an output slot, we'll create one */
+  info->blocking_probe_id =
+      gst_pad_add_probe (pad, GST_PAD_PROBE_TYPE_BLOCK_DOWNSTREAM,
+      pending_pad_blocked, urisrc, NULL);
+  info->event_probe_id =
+      gst_pad_add_probe (pad, GST_PAD_PROBE_TYPE_EVENT_DOWNSTREAM,
+      demux_pad_events, urisrc, NULL);
+}
+
+static GstPadProbeReturn
+pending_pad_blocked (GstPad * pad, GstPadProbeInfo * info, gpointer user_data)
+{
+  ChildSrcPadInfo *child_info;
+  OutputSlotInfo *slot;
+  GstURISourceBin *urisrc = GST_URI_SOURCE_BIN (user_data);
+  GstCaps *caps;
+
+  if (!(child_info =
+          g_object_get_data (G_OBJECT (pad), "urisourcebin.srcpadinfo")))
+    goto done;
+
+  GST_LOG_OBJECT (urisrc, "Removing pad %" GST_PTR_FORMAT " from pending list",
+      pad);
+
+  GST_URI_SOURCE_BIN_LOCK (urisrc);
+
+  /* Once blocked, this pad is no longer pending, one way or another */
+  urisrc->pending_pads = g_list_remove (urisrc->pending_pads, pad);
+
+  /* If already linked to a slot, nothing more to do */
+  if (child_info->output_slot) {
+    GST_LOG_OBJECT (urisrc, "Pad %" GST_PTR_FORMAT " is linked to slot %p",
+        pad, child_info->output_slot);
+    GST_URI_SOURCE_BIN_UNLOCK (urisrc);
+    goto done;
+  }
+
+  caps = gst_pad_get_current_caps (pad);
+  if (caps == NULL)
+    caps = gst_pad_query_caps (pad, NULL);
+
+  /* FIXME: Don't do buffering if use_buffering is FALSE */
+  slot = get_output_slot (urisrc, FALSE, TRUE, caps);
+
+  gst_caps_unref (caps);
+
+  if (slot == NULL) {
+    GST_URI_SOURCE_BIN_UNLOCK (urisrc);
+    goto done;
+  }
+
+  GST_LOG_OBJECT (urisrc, "Pad %" GST_PTR_FORMAT " linked to slot %p", pad,
+      slot);
+
+  child_info->output_slot = slot;
+  slot->linked_info = child_info;
+  GST_URI_SOURCE_BIN_UNLOCK (urisrc);
+
+  gst_pad_link (pad, slot->sinkpad);
+
+  expose_output_pad (urisrc, slot->srcpad);
+
+done:
+  return GST_PAD_PROBE_REMOVE;
+}
+
+/* Called with LOCK held */
+/* Looks for a suitable pending pad to connect onto this
+ * finishing output slot that's about to EOS */
+static gboolean
+link_pending_pad_to_output (GstURISourceBin * urisrc, OutputSlotInfo * slot)
+{
+  GList *cur;
+  ChildSrcPadInfo *in_info = slot->linked_info;
+  ChildSrcPadInfo *out_info = NULL;
+  gboolean res = FALSE;
+  GstCaps *cur_caps;
+
+  /* Look for a suitable pending pad */
+  cur_caps = gst_pad_get_current_caps (slot->sinkpad);
+
+  for (cur = urisrc->pending_pads; cur != NULL; cur = g_list_next (cur)) {
+    GstPad *pending = (GstPad *) (cur->data);
+    ChildSrcPadInfo *cur_info = NULL;
+    if ((cur_info =
+            g_object_get_data (G_OBJECT (pending),
+                "urisourcebin.srcpadinfo"))) {
+      /* Don't re-link to the same pad in case of EOS while still pending */
+      if (in_info == cur_info)
+        continue;
+      if (cur_caps == NULL || gst_caps_is_equal (cur_caps, cur_info->cur_caps)) {
+        GST_DEBUG_OBJECT (urisrc, "Found suitable pending pad %" GST_PTR_FORMAT
+            " with caps %" GST_PTR_FORMAT " to link to this output slot",
+            cur_info->demux_src_pad, cur_info->cur_caps);
+        out_info = cur_info;
+        break;
+      }
+    }
+  }
+
+  if (cur_caps)
+    gst_caps_unref (cur_caps);
+
+  if (out_info) {
+    /* Block any upstream stuff while we switch out the pad */
+    guint block_id =
+        gst_pad_add_probe (slot->sinkpad, GST_PAD_PROBE_TYPE_BLOCK_UPSTREAM,
+        NULL, NULL, NULL);
+    GST_DEBUG_OBJECT (urisrc, "Linking pending pad to existing output slot %p",
+        slot);
+
+    if (in_info) {
+      gst_pad_unlink (in_info->demux_src_pad, slot->sinkpad);
+      in_info->output_slot = NULL;
+      slot->linked_info = NULL;
+    }
+
+    if (gst_pad_link (out_info->demux_src_pad,
+            slot->sinkpad) == GST_PAD_LINK_OK) {
+      out_info->output_slot = slot;
+      slot->linked_info = out_info;
+      res = TRUE;
+    } else {
+      GST_ERROR_OBJECT (urisrc,
+          "Failed to link new demuxer pad to the output slot we tried");
+    }
+    gst_pad_remove_probe (slot->sinkpad, block_id);
+  }
+
+  return res;
+}
+
+static GstPadProbeReturn
+demux_pad_events (GstPad * pad, GstPadProbeInfo * info, gpointer user_data)
+{
+  GstURISourceBin *urisrc = GST_URI_SOURCE_BIN (user_data);
+  ChildSrcPadInfo *child_info;
+
+  if (!(child_info =
+          g_object_get_data (G_OBJECT (pad), "urisourcebin.srcpadinfo")))
+    goto done;
+
+  GST_URI_SOURCE_BIN_LOCK (urisrc);
+  /* If not linked to a slot, nothing more to do */
+  if (child_info->output_slot == NULL) {
+    GST_URI_SOURCE_BIN_UNLOCK (urisrc);
+    goto done;
+  }
+
+  if (GST_IS_EVENT (GST_PAD_PROBE_INFO_DATA (info))) {
+    GstEvent *ev = GST_PAD_PROBE_INFO_EVENT (info);
+    if (GST_EVENT_TYPE (ev) == GST_EVENT_EOS && urisrc->pending_pads) {
+      GST_LOG_OBJECT (urisrc, "EOS on pad %" GST_PTR_FORMAT, pad);
+      if (!link_pending_pad_to_output (urisrc, child_info->output_slot)) {
+        GstEvent *event;
+        GstStructure *s;
+
+        /* Mark that we fed an EOS to this slot */
+        child_info->output_slot->is_eos = TRUE;
+
+        /* Actually feed a custom EOS event to avoid marking pads as EOSed */
+        s = gst_structure_new_empty ("urisourcebin-custom-eos");
+        event = gst_event_new_custom (GST_EVENT_CUSTOM_DOWNSTREAM, s);
+        gst_pad_send_event (child_info->output_slot->sinkpad, event);
+      }
+      GST_URI_SOURCE_BIN_UNLOCK (urisrc);
+      return GST_PAD_PROBE_HANDLED;
+    } else if (GST_EVENT_TYPE (ev) == GST_EVENT_CAPS) {
+      GstCaps *caps;
+      gst_event_parse_caps (ev, &caps);
+      gst_caps_replace (&child_info->cur_caps, caps);
+    }
+  }
+  GST_URI_SOURCE_BIN_UNLOCK (urisrc);
+
+done:
+  return GST_PAD_PROBE_OK;
+}
+
+/* Called with lock held */
+static OutputSlotInfo *
+get_output_slot (GstURISourceBin * urisrc, gboolean do_download,
+    gboolean is_adaptive, GstCaps * caps)
+{
+  OutputSlotInfo *slot;
+  GstPad *srcpad;
+  GstElement *queue;
+  const gchar *elem_name;
+
+  /* If we have caps, iterate the existing slots and look for an
+   * unlinked one that can be used */
+  if (caps && gst_caps_is_fixed (caps)) {
+    GSList *cur;
+    GstCaps *cur_caps;
+
+    for (cur = urisrc->out_slots; cur != NULL; cur = g_slist_next (cur)) {
+      slot = (OutputSlotInfo *) (cur->data);
+      if (slot->linked_info == NULL) {
+        cur_caps = gst_pad_get_current_caps (slot->sinkpad);
+        if (cur_caps == NULL || gst_caps_is_equal (caps, cur_caps)) {
+          GST_LOG_OBJECT (urisrc, "Found existing slot %p to link to", slot);
+          gst_caps_unref (cur_caps);
+          return slot;
+        }
+        gst_caps_unref (cur_caps);
+      }
+    }
+  }
+
+  /* Otherwise create the new slot */
+#if 0                           /* There's no downloadbuffer in 1.2 */
+  if (do_download)
+    elem_name = "downloadbuffer";
+  else
+#endif
+    elem_name = "queue2";
+
+  queue = gst_element_factory_make (elem_name, NULL);
+  if (!queue)
+    goto no_buffer_element;
+
+  slot = g_new0 (OutputSlotInfo, 1);
+  slot->queue = queue;
+
+  if (do_download) {
+    gchar *temp_template, *filename;
+    const gchar *tmp_dir, *prgname;
+
+    tmp_dir = g_get_user_cache_dir ();
+    prgname = g_get_prgname ();
+    if (prgname == NULL)
+      prgname = "GStreamer";
+
+    filename = g_strdup_printf ("%s-XXXXXX", prgname);
+
+    /* build our filename */
+    temp_template = g_build_filename (tmp_dir, filename, NULL);
+
+    GST_DEBUG_OBJECT (urisrc, "enable download buffering in %s (%s, %s, %s)",
+        temp_template, tmp_dir, prgname, filename);
+
+    /* configure progressive download for selected media types */
+    g_object_set (queue, "temp-template", temp_template, NULL);
+
+    g_free (filename);
+    g_free (temp_template);
+  } else {
+    if (is_adaptive) {
+      GST_LOG_OBJECT (urisrc, "Adding queue for adaptive streaming stream");
+      g_object_set (queue, "use-buffering", TRUE, "use-tags-bitrate", TRUE,
+          "use-rate-estimate", FALSE, NULL);
+    } else {
+      GST_LOG_OBJECT (urisrc, "Adding queue for buffering");
+      g_object_set (queue, "use-buffering", TRUE, NULL);
+    }
+    g_object_set (queue, "ring-buffer-max-size",
+        urisrc->ring_buffer_max_size, NULL);
+    /* Disable max-size-buffers - queue based on data rate to the default time limit */
+    g_object_set (queue, "max-size-buffers", 0, NULL);
+  }
+
+  /* If buffer size or duration are set, set them on the element */
+  if (urisrc->buffer_size != -1)
+    g_object_set (queue, "max-size-bytes", urisrc->buffer_size, NULL);
+  if (urisrc->buffer_duration != -1)
+    g_object_set (queue, "max-size-time", urisrc->buffer_duration, NULL);
+  else {
+    /* Buffer 4 seconds by default - some extra headroom over the
+     * core default, because we trigger playback sooner */
+    g_object_set (queue, "max-size-time", 4 * GST_SECOND, NULL);
+  }
+
+  /* Don't start buffering until the queue is empty (< 1%).
+   * Start playback when the queue is 60% full, leaving a bit more room
+   * for upstream to push more without getting bursty */
+  g_object_set (queue, "low-percent", 1, "high-percent", 60, NULL);
+
+  /* save queue pointer so we can remove it later */
+  urisrc->out_slots = g_slist_prepend (urisrc->out_slots, slot);
+
+  gst_bin_add (GST_BIN_CAST (urisrc), queue);
+  gst_element_sync_state_with_parent (queue);
+
+  slot->sinkpad = gst_element_get_static_pad (queue, "sink");
+
+  /* get the new raw srcpad */
+  srcpad = gst_element_get_static_pad (queue, "src");
+  g_object_set_data (G_OBJECT (srcpad), "urisourcebin.slotinfo", slot);
+
+  slot->srcpad = create_output_pad (urisrc, srcpad);
+
+  gst_object_unref (srcpad);
+
+  return slot;
+
+no_buffer_element:
+  {
+    post_missing_plugin_error (GST_ELEMENT_CAST (urisrc), elem_name);
+    return NULL;
+  }
+}
+
+static GstPadProbeReturn
+source_pad_event_probe (GstPad * pad, GstPadProbeInfo * info,
+    gpointer user_data)
+{
+  GstEvent *event = GST_PAD_PROBE_INFO_EVENT (info);
+  GstURISourceBin *urisrc = user_data;
+
+  GST_LOG_OBJECT (pad, "%s, urisrc %p", GST_EVENT_TYPE_NAME (event), urisrc);
+
+  if (GST_EVENT_TYPE (event) == GST_EVENT_CUSTOM_DOWNSTREAM &&
+      gst_event_has_name (event, "urisourcebin-custom-eos")) {
+    OutputSlotInfo *slot;
+    GST_DEBUG_OBJECT (pad, "we received EOS");
+
+    /* Check the slot is still unlinked - maybe it got
+     * re-linked and we should drop this EOS */
+    GST_URI_SOURCE_BIN_LOCK (urisrc);
+    slot = g_object_get_data (G_OBJECT (pad), "urisourcebin.slotinfo");
+    if (slot && slot->linked_info) {
+      GST_DEBUG_OBJECT (pad,
+          "EOS pad was re-linked to pending pad, so removing EOS status");
+      slot->is_eos = FALSE;
+      GST_URI_SOURCE_BIN_UNLOCK (urisrc);
+      return GST_PAD_PROBE_HANDLED;
+    }
+
+    /* Otherwise it's time to send EOS and clean up this pad */
+    gst_pad_push_event (slot->srcpad, gst_event_new_eos ());
+
+    /* FIXME: Can't clean the pad up from the streaming thread... */
+    urisrc->out_slots = g_slist_remove (urisrc->out_slots, slot);
+#if 0
+    free_output_slot (slot, urisrc);
+    slot = NULL;
+#endif
+
+    /* FIXME: Only emit drained if all output pads are done and there's no
+     * pending pads */
+    g_signal_emit (urisrc, gst_uri_source_bin_signals[SIGNAL_DRAINED], 0, NULL);
+
+    GST_URI_SOURCE_BIN_UNLOCK (urisrc);
+    return GST_PAD_PROBE_HANDLED;
+  }
+  /* never drop events */
+  return GST_PAD_PROBE_OK;
+}
+
+/* called when we found a raw pad to expose. We set up a
+ * padprobe to detect EOS before exposing the pad. 
+ * Called with LOCK held. */
+static GstPad *
+create_output_pad (GstURISourceBin * urisrc, GstPad * pad)
+{
+  GstPad *newpad;
+  GstPadTemplate *pad_tmpl;
+  gchar *padname;
+
+  gst_pad_add_probe (pad, GST_PAD_PROBE_TYPE_EVENT_DOWNSTREAM,
+      source_pad_event_probe, urisrc, NULL);
+
+  pad_tmpl = gst_static_pad_template_get (&srctemplate);
+
+  padname = g_strdup_printf ("src_%u", urisrc->numpads);
+  urisrc->numpads++;
+
+  newpad = gst_ghost_pad_new_from_template (padname, pad, pad_tmpl);
+  gst_object_unref (pad_tmpl);
+  g_free (padname);
+
+  return newpad;
+}
+
+static void
+expose_output_pad (GstURISourceBin * urisrc, GstPad * pad)
+{
+  GstPad *target;
+
+  if (gst_object_has_as_parent (GST_OBJECT (pad), GST_OBJECT (urisrc)))
+    return;                     /* Pad is already exposed */
+
+  target = gst_ghost_pad_get_target (GST_GHOST_PAD (pad));
+
+  gst_pad_sticky_events_foreach (target, copy_sticky_events, pad);
+  gst_object_unref (target);
+
+  gst_pad_set_active (pad, TRUE);
+  gst_element_add_pad (GST_ELEMENT_CAST (urisrc), pad);
+
+  /* Once we expose a pad, we're no longer async */
+  do_async_done (urisrc);
+}
+
+static void
+pad_removed_cb (GstElement * element, GstPad * pad, GstURISourceBin * urisrc)
+{
+  ChildSrcPadInfo *info;
+
+  GST_DEBUG_OBJECT (element, "pad removed name: <%s:%s>",
+      GST_DEBUG_PAD_NAME (pad));
+
+  /* we only care about srcpads */
+  if (!GST_PAD_IS_SRC (pad))
+    return;
+
+  if (!(info = g_object_get_data (G_OBJECT (pad), "urisourcebin.srcpadinfo")))
+    goto no_info;
+
+  GST_URI_SOURCE_BIN_LOCK (urisrc);
+  /* Make sure this isn't in the pending pads list */
+  urisrc->pending_pads = g_list_remove (urisrc->pending_pads, pad);
+
+  /* Send EOS to the output slot if the demuxer didn't already */
+  if (info->output_slot) {
+    if (!info->output_slot->is_eos) {
+      GstStructure *s;
+      GstEvent *event;
+
+      GST_LOG_OBJECT (element,
+          "Pad %" GST_PTR_FORMAT " was removed without EOS. Sending.", pad);
+
+      s = gst_structure_new_empty ("urisourcebin-custom-eos");
+      event = gst_event_new_custom (GST_EVENT_CUSTOM_DOWNSTREAM, s);
+      gst_pad_send_event (info->output_slot->sinkpad, event);
+      info->output_slot->is_eos = TRUE;
+    }
+    /* After the pad goes away, the slot is free to reuse */
+    info->output_slot->linked_info = NULL;
+    info->output_slot = NULL;
+  } else {
+    GST_LOG_OBJECT (urisrc, "Removed pad has no output slot");
+  }
+  GST_URI_SOURCE_BIN_UNLOCK (urisrc);
+
+  return;
+
+  /* ERRORS */
+no_info:
+  {
+    GST_WARNING_OBJECT (element, "no info found for pad");
+    return;
+  }
+}
+
+/* helper function to lookup stuff in lists */
+static gboolean
+array_has_value (const gchar * values[], const gchar * value)
+{
+  gint i;
+
+  for (i = 0; values[i]; i++) {
+    if (g_str_has_prefix (value, values[i]))
+      return TRUE;
+  }
+  return FALSE;
+}
+
+static gboolean
+array_has_uri_value (const gchar * values[], const gchar * value)
+{
+  gint i;
+
+  for (i = 0; values[i]; i++) {
+    if (!g_ascii_strncasecmp (value, values[i], strlen (values[i])))
+      return TRUE;
+  }
+  return FALSE;
+}
+
+/* list of URIs that we consider to be streams and that need buffering.
+ * We have no mechanism yet to figure this out with a query. */
+static const gchar *stream_uris[] = { "http://", "https://", "mms://",
+  "mmsh://", "mmsu://", "mmst://", "fd://", "myth://", "ssh://",
+  "ftp://", "sftp://",
+  NULL
+};
+
+/* list of URIs that need a queue because they are pretty bursty */
+static const gchar *queue_uris[] = { "cdda://", NULL };
+
+/* blacklisted URIs, we know they will always fail. */
+static const gchar *blacklisted_uris[] = { NULL };
+
+/* media types that use adaptive streaming */
+static const gchar *adaptive_media[] = {
+  "application/x-hls", "application/vnd.ms-sstr+xml",
+  "application/dash+xml", NULL
+};
+
+#define IS_STREAM_URI(uri)          (array_has_uri_value (stream_uris, uri))
+#define IS_QUEUE_URI(uri)           (array_has_uri_value (queue_uris, uri))
+#define IS_BLACKLISTED_URI(uri)     (array_has_uri_value (blacklisted_uris, uri))
+#define IS_ADAPTIVE_MEDIA(media)    (array_has_value (adaptive_media, media))
+
+/*
+ * Generate and configure a source element.
+ */
+static GstElement *
+gen_source_element (GstURISourceBin * urisrc)
+{
+  GObjectClass *source_class;
+  GstElement *source;
+  GParamSpec *pspec;
+  GstQuery *query;
+  GstSchedulingFlags flags;
+  GError *err = NULL;
+
+  if (!urisrc->uri)
+    goto no_uri;
+
+  GST_LOG_OBJECT (urisrc, "finding source for %s", urisrc->uri);
+
+  if (!gst_uri_is_valid (urisrc->uri))
+    goto invalid_uri;
+
+  if (IS_BLACKLISTED_URI (urisrc->uri))
+    goto uri_blacklisted;
+
+  source = gst_element_make_from_uri (GST_URI_SRC, urisrc->uri, "source", &err);
+  if (!source)
+    goto no_source;
+
+  GST_LOG_OBJECT (urisrc, "found source type %s", G_OBJECT_TYPE_NAME (source));
+
+  query = gst_query_new_scheduling ();
+  if (gst_element_query (source, query)) {
+    gst_query_parse_scheduling (query, &flags, NULL, NULL, NULL);
+    urisrc->is_stream = flags & GST_SCHEDULING_FLAG_BANDWIDTH_LIMITED;
+  } else
+    urisrc->is_stream = IS_STREAM_URI (urisrc->uri);
+  gst_query_unref (query);
+
+  GST_LOG_OBJECT (urisrc, "source is stream: %d", urisrc->is_stream);
+
+  urisrc->need_queue = IS_QUEUE_URI (urisrc->uri);
+  GST_LOG_OBJECT (urisrc, "source needs queue: %d", urisrc->need_queue);
+
+  source_class = G_OBJECT_GET_CLASS (source);
+
+  pspec = g_object_class_find_property (source_class, "connection-speed");
+  if (pspec != NULL) {
+    guint64 speed = urisrc->connection_speed / 1000;
+    gboolean wrong_type = FALSE;
+
+    if (G_PARAM_SPEC_TYPE (pspec) == G_TYPE_PARAM_UINT) {
+      GParamSpecUInt *pspecuint = G_PARAM_SPEC_UINT (pspec);
+
+      speed = CLAMP (speed, pspecuint->minimum, pspecuint->maximum);
+    } else if (G_PARAM_SPEC_TYPE (pspec) == G_TYPE_PARAM_INT) {
+      GParamSpecInt *pspecint = G_PARAM_SPEC_INT (pspec);
+
+      speed = CLAMP (speed, pspecint->minimum, pspecint->maximum);
+    } else if (G_PARAM_SPEC_TYPE (pspec) == G_TYPE_PARAM_UINT64) {
+      GParamSpecUInt64 *pspecuint = G_PARAM_SPEC_UINT64 (pspec);
+
+      speed = CLAMP (speed, pspecuint->minimum, pspecuint->maximum);
+    } else if (G_PARAM_SPEC_TYPE (pspec) == G_TYPE_PARAM_INT64) {
+      GParamSpecInt64 *pspecint = G_PARAM_SPEC_INT64 (pspec);
+
+      speed = CLAMP (speed, pspecint->minimum, pspecint->maximum);
+    } else {
+      GST_WARNING_OBJECT (urisrc,
+          "The connection speed property %" G_GUINT64_FORMAT
+          " of type %s is not useful. Not setting it", speed,
+          g_type_name (G_PARAM_SPEC_TYPE (pspec)));
+      wrong_type = TRUE;
+    }
+
+    if (!wrong_type) {
+      g_object_set (source, "connection-speed", speed, NULL);
+
+      GST_DEBUG_OBJECT (urisrc,
+          "setting connection-speed=%" G_GUINT64_FORMAT " to source element",
+          speed);
+    }
+  }
+
+  return source;
+
+  /* ERRORS */
+no_uri:
+  {
+    GST_ELEMENT_ERROR (urisrc, RESOURCE, NOT_FOUND,
+        (_("No URI specified to play from.")), (NULL));
+    return NULL;
+  }
+invalid_uri:
+  {
+    GST_ELEMENT_ERROR (urisrc, RESOURCE, NOT_FOUND,
+        (_("Invalid URI \"%s\"."), urisrc->uri), (NULL));
+    g_clear_error (&err);
+    return NULL;
+  }
+uri_blacklisted:
+  {
+    GST_ELEMENT_ERROR (urisrc, RESOURCE, FAILED,
+        (_("This stream type cannot be played yet.")), (NULL));
+    return NULL;
+  }
+no_source:
+  {
+    /* whoops, could not create the source element, dig a little deeper to
+     * figure out what might be wrong. */
+    if (err != NULL && err->code == GST_URI_ERROR_UNSUPPORTED_PROTOCOL) {
+      gchar *prot;
+
+      prot = gst_uri_get_protocol (urisrc->uri);
+      if (prot == NULL)
+        goto invalid_uri;
+
+      gst_element_post_message (GST_ELEMENT_CAST (urisrc),
+          gst_missing_uri_source_message_new (GST_ELEMENT (urisrc), prot));
+
+      GST_ELEMENT_ERROR (urisrc, CORE, MISSING_PLUGIN,
+          (_("No URI handler implemented for \"%s\"."), prot), (NULL));
+
+      g_free (prot);
+    } else {
+      GST_ELEMENT_ERROR (urisrc, RESOURCE, NOT_FOUND,
+          ("%s", (err) ? err->message : "URI was not accepted by any element"),
+          ("No element accepted URI '%s'", urisrc->uri));
+    }
+
+    g_clear_error (&err);
+    return NULL;
+  }
+}
+
+static gboolean
+is_all_raw_caps (GstCaps * caps, GstCaps * rawcaps, gboolean * all_raw)
+{
+  GstCaps *intersection;
+  gint capssize;
+  gboolean res = FALSE;
+
+  if (caps == NULL)
+    return FALSE;
+
+  capssize = gst_caps_get_size (caps);
+  /* no caps, skip and move to the next pad */
+  if (capssize == 0 || gst_caps_is_empty (caps) || gst_caps_is_any (caps))
+    goto done;
+
+  intersection = gst_caps_intersect (caps, rawcaps);
+  *all_raw = !gst_caps_is_empty (intersection)
+      && (gst_caps_get_size (intersection) == capssize);
+  gst_caps_unref (intersection);
+
+  res = TRUE;
+
+done:
+  return res;
+}
+
+/**
+ * has_all_raw_caps:
+ * @pad: a #GstPad
+ * @all_raw: pointer to hold the result
+ *
+ * check if the caps of the pad are all raw. The caps are all raw if
+ * all of its structures contain audio/x-raw or video/x-raw.
+ *
+ * Returns: %FALSE @pad has no caps. Else TRUE and @all_raw set t the result.
+ */
+static gboolean
+has_all_raw_caps (GstPad * pad, GstCaps * rawcaps, gboolean * all_raw)
+{
+  GstCaps *caps;
+  gboolean res = FALSE;
+
+  caps = gst_pad_query_caps (pad, NULL);
+
+  GST_DEBUG_OBJECT (pad, "have caps %" GST_PTR_FORMAT, caps);
+
+  res = is_all_raw_caps (caps, rawcaps, all_raw);
+
+  gst_caps_unref (caps);
+  return res;
+}
+
+static void
+post_missing_plugin_error (GstElement * dec, const gchar * element_name)
+{
+  GstMessage *msg;
+
+  msg = gst_missing_element_message_new (dec, element_name);
+  gst_element_post_message (dec, msg);
+
+  GST_ELEMENT_ERROR (dec, CORE, MISSING_PLUGIN,
+      (_("Missing element '%s' - check your GStreamer installation."),
+          element_name), (NULL));
+  do_async_done (GST_URI_SOURCE_BIN (dec));
+}
+
+/**
+ * analyse_source:
+ * @urisrc: a #GstURISourceBin
+ * @is_raw: are all pads raw data
+ * @have_out: does the source have output
+ * @is_dynamic: is this a dynamic source
+ * @use_queue: put a queue before raw output pads
+ *
+ * Check the source of @urisrc and collect information about it.
+ *
+ * @is_raw will be set to TRUE if the source only produces raw pads. When this
+ * function returns, all of the raw pad of the source will be added
+ * to @urisrc
+ *
+ * @have_out: will be set to TRUE if the source has output pads.
+ *
+ * @is_dynamic: TRUE if the element will create (more) pads dynamically later
+ * on.
+ *
+ * Returns: FALSE if a fatal error occured while scanning.
+ */
+static gboolean
+analyse_source (GstURISourceBin * urisrc, gboolean * is_raw,
+    gboolean * have_out, gboolean * is_dynamic, gboolean use_queue)
+{
+  GstIterator *pads_iter;
+  gboolean done = FALSE;
+  gboolean res = TRUE;
+  GstPad *pad;
+  GValue item = { 0, };
+  GstCaps *rawcaps = DEFAULT_CAPS;
+
+  *have_out = FALSE;
+  *is_raw = FALSE;
+  *is_dynamic = FALSE;
+
+  pads_iter = gst_element_iterate_src_pads (urisrc->source);
+  while (!done) {
+    switch (gst_iterator_next (pads_iter, &item)) {
+      case GST_ITERATOR_ERROR:
+        res = FALSE;
+        /* FALLTROUGH */
+      case GST_ITERATOR_DONE:
+        done = TRUE;
+        break;
+      case GST_ITERATOR_RESYNC:
+        /* reset results and resync */
+        *have_out = FALSE;
+        *is_raw = FALSE;
+        *is_dynamic = FALSE;
+        gst_iterator_resync (pads_iter);
+        break;
+      case GST_ITERATOR_OK:
+        pad = g_value_dup_object (&item);
+        /* we now officially have an ouput pad */
+        *have_out = TRUE;
+
+        /* if FALSE, this pad has no caps and we continue with the next pad. */
+        if (!has_all_raw_caps (pad, rawcaps, is_raw)) {
+          gst_object_unref (pad);
+          g_value_reset (&item);
+          break;
+        }
+
+        /* caps on source pad are all raw, we can add the pad */
+        if (*is_raw) {
+          GST_URI_SOURCE_BIN_LOCK (urisrc);
+          if (use_queue) {
+            OutputSlotInfo *slot = get_output_slot (urisrc, FALSE, FALSE, NULL);
+            if (slot)
+              goto no_slot;
+
+            gst_pad_link (pad, slot->sinkpad);
+
+            /* get the new raw srcpad */
+            gst_object_unref (pad);
+            pad = slot->srcpad;
+          } else {
+            pad = create_output_pad (urisrc, pad);
+          }
+          GST_URI_SOURCE_BIN_UNLOCK (urisrc);
+          expose_output_pad (urisrc, pad);
+          gst_object_unref (pad);
+        }
+        gst_object_unref (pad);
+        g_value_reset (&item);
+        break;
+    }
+  }
+  g_value_unset (&item);
+  gst_iterator_free (pads_iter);
+  gst_caps_unref (rawcaps);
+
+  if (!*have_out) {
+    GstElementClass *elemclass;
+    GList *walk;
+
+    /* element has no output pads, check for padtemplates that list SOMETIMES
+     * pads. */
+    elemclass = GST_ELEMENT_GET_CLASS (urisrc->source);
+
+    walk = gst_element_class_get_pad_template_list (elemclass);
+    while (walk != NULL) {
+      GstPadTemplate *templ;
+
+      templ = (GstPadTemplate *) walk->data;
+      if (GST_PAD_TEMPLATE_DIRECTION (templ) == GST_PAD_SRC) {
+        if (GST_PAD_TEMPLATE_PRESENCE (templ) == GST_PAD_SOMETIMES)
+          *is_dynamic = TRUE;
+        break;
+      }
+      walk = g_list_next (walk);
+    }
+  }
+
+  return res;
+no_slot:
+  {
+    GST_URI_SOURCE_BIN_UNLOCK (urisrc);
+    gst_object_unref (pad);
+    g_value_unset (&item);
+    gst_iterator_free (pads_iter);
+    gst_caps_unref (rawcaps);
+
+    return FALSE;
+  }
+}
+
+/* Remove any adaptive demuxer element */
+static void
+remove_demuxer (GstURISourceBin * bin)
+{
+  if (bin->demuxer) {
+    GST_DEBUG_OBJECT (bin, "removing old demuxer element");
+    gst_element_set_state (bin->demuxer, GST_STATE_NULL);
+    gst_bin_remove (GST_BIN_CAST (bin), bin->demuxer);
+    bin->demuxer = NULL;
+  }
+}
+
+/* make a demuxer and connect to all the signals */
+static GstElement *
+make_demuxer (GstURISourceBin * urisrc, GstCaps * caps)
+{
+  GList *factories, *eligible, *cur;
+  GstElement *demuxer = NULL;
+
+  GST_LOG_OBJECT (urisrc, "making new adaptive demuxer");
+
+  /* now create the demuxer element */
+
+  /* FIXME: Fire a signal to get the demuxer? */
+  factories = gst_element_factory_list_get_elements
+      (GST_ELEMENT_FACTORY_TYPE_DEMUXER, GST_RANK_MARGINAL);
+  eligible =
+      gst_element_factory_list_filter (factories, caps, GST_PAD_SINK,
+      gst_caps_is_fixed (caps));
+  gst_plugin_feature_list_free (factories);
+
+  if (eligible == NULL)
+    goto no_demuxer;
+
+  eligible = g_list_sort (eligible, gst_plugin_feature_rank_compare_func);
+
+  for (cur = eligible; cur != NULL; cur = g_list_next (cur)) {
+    GstElementFactory *factory = (GstElementFactory *) (cur->data);
+    const gchar *klass =
+        gst_element_factory_get_metadata (factory, GST_ELEMENT_METADATA_KLASS);
+
+    /* Can't be a demuxer unless it has Demux in the klass name */
+    if (!strstr (klass, "Demux") || !strstr (klass, "Adaptive"))
+      continue;
+
+    demuxer = gst_element_factory_create (factory, NULL);
+    break;
+  }
+  gst_plugin_feature_list_free (eligible);
+
+  if (!demuxer)
+    goto no_demuxer;
+
+  GST_DEBUG_OBJECT (urisrc, "Created adaptive demuxer %" GST_PTR_FORMAT,
+      demuxer);
+
+  /* set up callbacks to create the links between
+   * demuxer streams and output */
+  g_signal_connect (demuxer,
+      "pad-added", G_CALLBACK (new_demuxer_pad_added_cb), urisrc);
+  g_signal_connect (demuxer,
+      "pad-removed", G_CALLBACK (pad_removed_cb), urisrc);
+
+  /* Propagate connection-speed property */
+  /* FIXME: Check the property exists on the demuxer */
+  g_object_set (demuxer,
+      "connection-speed", urisrc->connection_speed / 1000, NULL);
+
+  return demuxer;
+
+  /* ERRORS */
+no_demuxer:
+  {
+    /* FIXME: Fire the right error */
+    GST_ELEMENT_ERROR (urisrc, CORE, MISSING_PLUGIN, (NULL),
+        ("No demuxer element, check your installation"));
+    do_async_done (urisrc);
+    return NULL;
+  }
+}
+
+static void
+handle_new_pad (GstURISourceBin * urisrc, GstPad * srcpad, GstCaps * caps)
+{
+  gboolean is_raw;
+  GstStructure *s;
+  const gchar *media_type;
+  gboolean do_download = FALSE;
+
+  GST_URI_SOURCE_BIN_LOCK (urisrc);
+
+  /* if this is a pad with all raw caps, we can expose it */
+  if (is_all_raw_caps (caps, DEFAULT_CAPS, &is_raw) && is_raw) {
+    GstPad *pad;
+
+    GST_DEBUG_OBJECT (urisrc, "Found pad with raw caps %" GST_PTR_FORMAT
+        ", exposing", caps);
+    pad = create_output_pad (urisrc, srcpad);
+    GST_URI_SOURCE_BIN_UNLOCK (urisrc);
+
+    expose_output_pad (urisrc, pad);
+    return;
+  }
+  GST_URI_SOURCE_BIN_UNLOCK (urisrc);
+
+  s = gst_caps_get_structure (caps, 0);
+  media_type = gst_structure_get_name (s);
+
+  urisrc->is_adaptive = IS_ADAPTIVE_MEDIA (media_type);
+
+  if (urisrc->is_adaptive) {
+    GstElement *demux_elem;
+    GstPad *sinkpad;
+    GstPadLinkReturn link_res;
+
+    demux_elem = make_demuxer (urisrc, caps);
+    if (!demux_elem)
+      goto no_demuxer;
+    gst_bin_add (GST_BIN_CAST (urisrc), demux_elem);
+
+    sinkpad = gst_element_get_static_pad (demux_elem, "sink");
+    if (sinkpad == NULL)
+      goto no_demuxer_sink;
+
+    link_res = gst_pad_link (srcpad, sinkpad);
+
+    gst_object_unref (sinkpad);
+    if (link_res != GST_PAD_LINK_OK)
+      goto could_not_link;
+
+    gst_element_sync_state_with_parent (demux_elem);
+  } else {
+    OutputSlotInfo *slot;
+
+    /* only enable download buffering if the upstream duration is known */
+    if (urisrc->download) {
+      GstQuery *query = gst_query_new_duration (GST_FORMAT_BYTES);
+      if (gst_pad_query (srcpad, query)) {
+        gint64 dur;
+        gst_query_parse_duration (query, NULL, &dur);
+        do_download = (dur != -1);
+      }
+      gst_object_unref (query);
+    }
+
+    GST_DEBUG_OBJECT (urisrc, "check media-type %s, %d", media_type,
+        do_download);
+
+    GST_URI_SOURCE_BIN_LOCK (urisrc);
+    slot = get_output_slot (urisrc, do_download, FALSE, NULL);
+
+    if (slot == NULL || gst_pad_link (srcpad, slot->sinkpad) != GST_PAD_LINK_OK)
+      goto could_not_link;
+
+    expose_output_pad (urisrc, slot->srcpad);
+    GST_URI_SOURCE_BIN_UNLOCK (urisrc);
+  }
+
+  return;
+
+  /* ERRORS */
+no_demuxer:
+  {
+    /* error was posted */
+    return;
+  }
+no_demuxer_sink:
+  {
+    GST_ELEMENT_ERROR (urisrc, CORE, NEGOTIATION,
+        (NULL), ("Adaptive demuxer element has no 'sink' pad"));
+    do_async_done (urisrc);
+    return;
+  }
+could_not_link:
+  {
+    GST_URI_SOURCE_BIN_UNLOCK (urisrc);
+    GST_ELEMENT_ERROR (urisrc, CORE, NEGOTIATION,
+        (NULL), ("Can't link typefind to adaptive demuxer element"));
+    do_async_done (urisrc);
+    return;
+  }
+}
+
+/* signaled when we have a stream and we need to configure the download
+ * buffering or regular buffering */
+static void
+type_found (GstElement * typefind, guint probability,
+    GstCaps * caps, GstURISourceBin * urisrc)
+{
+  GstPad *srcpad = gst_element_get_static_pad (typefind, "src");
+
+  GST_DEBUG_OBJECT (urisrc, "typefind found caps %" GST_PTR_FORMAT
+      " on pad %" GST_PTR_FORMAT, caps, srcpad);
+  handle_new_pad (urisrc, srcpad, caps);
+
+  gst_object_unref (GST_OBJECT (srcpad));
+}
+
+/* setup a streaming source. This will first plug a typefind element to the
+ * source. After we find the type, we decide to whether to plug an adaptive
+ * demuxer, or just link through queue2 and expose the data. */
+static gboolean
+setup_streaming (GstURISourceBin * urisrc)
+{
+  GstElement *typefind;
+
+  /* now create the typefind element */
+  typefind = gst_element_factory_make ("typefind", NULL);
+  if (!typefind)
+    goto no_typefind;
+
+  gst_bin_add (GST_BIN_CAST (urisrc), typefind);
+
+  if (!gst_element_link_pads (urisrc->source, NULL, typefind, "sink"))
+    goto could_not_link;
+
+  urisrc->typefind = typefind;
+
+  /* connect a signal to find out when the typefind element found
+   * a type */
+  urisrc->have_type_id =
+      g_signal_connect (urisrc->typefind, "have-type",
+      G_CALLBACK (type_found), urisrc);
+
+  return TRUE;
+
+  /* ERRORS */
+no_typefind:
+  {
+    post_missing_plugin_error (GST_ELEMENT_CAST (urisrc), "typefind");
+    GST_ELEMENT_ERROR (urisrc, CORE, MISSING_PLUGIN, (NULL),
+        ("No typefind element, check your installation"));
+    do_async_done (urisrc);
+    return FALSE;
+  }
+could_not_link:
+  {
+    GST_ELEMENT_ERROR (urisrc, CORE, NEGOTIATION,
+        (NULL), ("Can't link source to typefind element"));
+    gst_bin_remove (GST_BIN_CAST (urisrc), typefind);
+    /* Don't lose the SOURCE flag */
+    GST_OBJECT_FLAG_SET (urisrc, GST_ELEMENT_FLAG_SOURCE);
+    do_async_done (urisrc);
+    return FALSE;
+  }
+}
+
+static void
+free_output_slot (OutputSlotInfo * slot, GstURISourceBin * urisrc)
+{
+  GST_DEBUG_OBJECT (urisrc, "removing old queue element and freeing slot %p",
+      slot);
+  gst_element_set_locked_state (slot->queue, TRUE);
+  gst_element_set_state (slot->queue, GST_STATE_NULL);
+  gst_bin_remove (GST_BIN_CAST (urisrc), slot->queue);
+
+  gst_object_unref (slot->sinkpad);
+
+  remove_buffering_msgs (urisrc, GST_OBJECT_CAST (slot->queue));
+
+  /* deactivate and remove the srcpad */
+  gst_pad_set_active (slot->srcpad, FALSE);
+  gst_element_remove_pad (GST_ELEMENT_CAST (urisrc), slot->srcpad);
+
+  g_free (slot);
+}
+
+/* remove source and all related elements */
+static void
+remove_source (GstURISourceBin * urisrc)
+{
+  GstElement *source = urisrc->source;
+
+  if (source) {
+    GST_DEBUG_OBJECT (urisrc, "removing old src element");
+    gst_element_set_state (source, GST_STATE_NULL);
+
+    if (urisrc->src_np_sig_id) {
+      g_signal_handler_disconnect (source, urisrc->src_np_sig_id);
+      urisrc->src_np_sig_id = 0;
+    }
+    gst_bin_remove (GST_BIN_CAST (urisrc), source);
+    urisrc->source = NULL;
+  }
+  if (urisrc->typefind) {
+    GST_DEBUG_OBJECT (urisrc, "removing old typefind element");
+    gst_element_set_state (urisrc->typefind, GST_STATE_NULL);
+    gst_bin_remove (GST_BIN_CAST (urisrc), urisrc->typefind);
+    urisrc->typefind = NULL;
+  }
+
+  GST_URI_SOURCE_BIN_LOCK (urisrc);
+  g_slist_foreach (urisrc->out_slots, (GFunc) free_output_slot, urisrc);
+  g_slist_free (urisrc->out_slots);
+  urisrc->out_slots = NULL;
+  GST_URI_SOURCE_BIN_UNLOCK (urisrc);
+
+  if (urisrc->demuxer) {
+    GST_DEBUG_OBJECT (urisrc, "removing old adaptive demux element");
+    gst_element_set_state (urisrc->demuxer, GST_STATE_NULL);
+    gst_bin_remove (GST_BIN_CAST (urisrc), urisrc->demuxer);
+    urisrc->demuxer = NULL;
+  }
+  /* Don't lose the SOURCE flag */
+  GST_OBJECT_FLAG_SET (urisrc, GST_ELEMENT_FLAG_SOURCE);
+}
+
+/* is called when a dynamic source element created a new pad. */
+static void
+source_new_pad (GstElement * element, GstPad * pad, GstURISourceBin * urisrc)
+{
+  GstCaps *caps;
+
+  GST_DEBUG_OBJECT (urisrc, "Found new pad %s.%s in source element %s",
+      GST_DEBUG_PAD_NAME (pad), GST_ELEMENT_NAME (element));
+  caps = gst_pad_get_current_caps (pad);
+  if (caps == NULL)
+    caps = gst_pad_query_caps (pad, NULL);
+  handle_new_pad (urisrc, pad, caps);
+  gst_caps_unref (caps);
+}
+
+static gboolean
+is_live_source (GstElement * source)
+{
+  GObjectClass *source_class = NULL;
+  gboolean is_live = FALSE;
+  GParamSpec *pspec;
+
+  source_class = G_OBJECT_GET_CLASS (source);
+  pspec = g_object_class_find_property (source_class, "is-live");
+  if (!pspec || G_PARAM_SPEC_VALUE_TYPE (pspec) != G_TYPE_BOOLEAN)
+    return FALSE;
+
+  g_object_get (G_OBJECT (source), "is-live", &is_live, NULL);
+
+  return is_live;
+}
+
+/* construct and run the source and demuxer elements until we found
+ * all the streams or until a preroll queue has been filled.
+*/
+static gboolean
+setup_source (GstURISourceBin * urisrc)
+{
+  gboolean is_raw, have_out, is_dynamic;
+
+  GST_DEBUG_OBJECT (urisrc, "setup source");
+
+  /* delete old src */
+  remove_source (urisrc);
+
+  /* create and configure an element that can handle the uri */
+  if (!(urisrc->source = gen_source_element (urisrc)))
+    goto no_source;
+
+  /* state will be merged later - if file is not found, error will be
+   * handled by the application right after. */
+  gst_bin_add (GST_BIN_CAST (urisrc), urisrc->source);
+
+  /* notify of the new source used */
+  g_object_notify (G_OBJECT (urisrc), "source");
+
+  g_signal_emit (urisrc, gst_uri_source_bin_signals[SIGNAL_SOURCE_SETUP],
+      0, urisrc->source);
+
+  if (is_live_source (urisrc->source))
+    urisrc->is_stream = FALSE;
+
+  /* remove the old demuxer now, if any */
+  remove_demuxer (urisrc);
+
+  /* see if the source element emits raw audio/video all by itself,
+   * if so, we can create streams for the pads and be done with it.
+   * Also check that is has source pads, if not, we assume it will
+   * do everything itself.  */
+  if (!analyse_source (urisrc, &is_raw, &have_out, &is_dynamic,
+          urisrc->need_queue && urisrc->use_buffering))
+    goto invalid_source;
+
+  if (is_raw) {
+    GST_DEBUG_OBJECT (urisrc, "Source provides all raw data");
+    /* source provides raw data, we added the pads and we can now signal a
+     * no_more pads because we are done. */
+    gst_element_no_more_pads (GST_ELEMENT_CAST (urisrc));
+    do_async_done (urisrc);
+    return TRUE;
+  }
+  if (!have_out && !is_dynamic) {
+    GST_DEBUG_OBJECT (urisrc, "Source has no output pads");
+    return TRUE;
+  }
+  if (is_dynamic) {
+    GST_DEBUG_OBJECT (urisrc, "Source has dynamic output pads");
+    /* connect a handler for the new-pad signal */
+    urisrc->src_np_sig_id =
+        g_signal_connect (urisrc->source, "pad-added",
+        G_CALLBACK (source_new_pad), urisrc);
+  } else {
+    if (urisrc->is_stream) {
+      GST_DEBUG_OBJECT (urisrc, "Setting up streaming");
+      /* do the stream things here */
+      if (!setup_streaming (urisrc))
+        goto streaming_failed;
+    } else {
+      GstIterator *pads_iter;
+      gboolean done = FALSE;
+      pads_iter = gst_element_iterate_src_pads (urisrc->source);
+      while (!done) {
+        GValue item = { 0, };
+        GstPad *pad;
+
+        switch (gst_iterator_next (pads_iter, &item)) {
+          case GST_ITERATOR_ERROR:
+            GST_WARNING_OBJECT (urisrc,
+                "Error iterating pads on source element");
+            /* FALLTROUGH */
+          case GST_ITERATOR_DONE:
+            done = TRUE;
+            break;
+          case GST_ITERATOR_RESYNC:
+            /* reset results and resync */
+            gst_iterator_resync (pads_iter);
+            break;
+          case GST_ITERATOR_OK:
+            pad = g_value_get_object (&item);
+            /* no streaming source, expose pads directly */
+            GST_URI_SOURCE_BIN_LOCK (urisrc);
+            pad = create_output_pad (urisrc, pad);
+            GST_URI_SOURCE_BIN_UNLOCK (urisrc);
+            expose_output_pad (urisrc, pad);
+            g_value_reset (&item);
+            break;
+        }
+      }
+      gst_iterator_free (pads_iter);
+      gst_element_no_more_pads (GST_ELEMENT_CAST (urisrc));
+      do_async_done (urisrc);
+    }
+  }
+  return TRUE;
+
+  /* ERRORS */
+no_source:
+  {
+    /* error message was already posted */
+    return FALSE;
+  }
+invalid_source:
+  {
+    GST_ELEMENT_ERROR (urisrc, CORE, FAILED,
+        (_("Source element is invalid.")), (NULL));
+    return FALSE;
+  }
+streaming_failed:
+  {
+    /* message was posted */
+    return FALSE;
+  }
+}
+
+static void
+value_list_append_structure_list (GValue * list_val, GstStructure ** first,
+    GList * structure_list)
+{
+  GList *l;
+
+  for (l = structure_list; l != NULL; l = l->next) {
+    GValue val = { 0, };
+
+    if (*first == NULL)
+      *first = gst_structure_copy ((GstStructure *) l->data);
+
+    g_value_init (&val, GST_TYPE_STRUCTURE);
+    g_value_take_boxed (&val, gst_structure_copy ((GstStructure *) l->data));
+    gst_value_list_append_value (list_val, &val);
+    g_value_unset (&val);
+  }
+}
+
+/* if it's a redirect message with multiple redirect locations we might
+ * want to pick a different 'best' location depending on the required
+ * bitrates and the connection speed */
+static GstMessage *
+handle_redirect_message (GstURISourceBin * dec, GstMessage * msg)
+{
+  const GValue *locations_list, *location_val;
+  GstMessage *new_msg;
+  GstStructure *new_structure = NULL;
+  GList *l_good = NULL, *l_neutral = NULL, *l_bad = NULL;
+  GValue new_list = { 0, };
+  guint size, i;
+  const GstStructure *structure;
+
+  GST_DEBUG_OBJECT (dec, "redirect message: %" GST_PTR_FORMAT, msg);
+  GST_DEBUG_OBJECT (dec, "connection speed: %" G_GUINT64_FORMAT,
+      dec->connection_speed);
+
+  structure = gst_message_get_structure (msg);
+  if (dec->connection_speed == 0 || structure == NULL)
+    return msg;
+
+  locations_list = gst_structure_get_value (structure, "locations");
+  if (locations_list == NULL)
+    return msg;
+
+  size = gst_value_list_get_size (locations_list);
+  if (size < 2)
+    return msg;
+
+  /* maintain existing order as much as possible, just sort references
+   * with too high a bitrate to the end (the assumption being that if
+   * bitrates are given they are given for all interesting streams and
+   * that the you-need-at-least-version-xyz redirect has the same bitrate
+   * as the lowest referenced redirect alternative) */
+  for (i = 0; i < size; ++i) {
+    const GstStructure *s;
+    gint bitrate = 0;
+
+    location_val = gst_value_list_get_value (locations_list, i);
+    s = (const GstStructure *) g_value_get_boxed (location_val);
+    if (!gst_structure_get_int (s, "minimum-bitrate", &bitrate) || bitrate <= 0) {
+      GST_DEBUG_OBJECT (dec, "no bitrate: %" GST_PTR_FORMAT, s);
+      l_neutral = g_list_append (l_neutral, (gpointer) s);
+    } else if (bitrate > dec->connection_speed) {
+      GST_DEBUG_OBJECT (dec, "bitrate too high: %" GST_PTR_FORMAT, s);
+      l_bad = g_list_append (l_bad, (gpointer) s);
+    } else if (bitrate <= dec->connection_speed) {
+      GST_DEBUG_OBJECT (dec, "bitrate OK: %" GST_PTR_FORMAT, s);
+      l_good = g_list_append (l_good, (gpointer) s);
+    }
+  }
+
+  g_value_init (&new_list, GST_TYPE_LIST);
+  value_list_append_structure_list (&new_list, &new_structure, l_good);
+  value_list_append_structure_list (&new_list, &new_structure, l_neutral);
+  value_list_append_structure_list (&new_list, &new_structure, l_bad);
+  gst_structure_take_value (new_structure, "locations", &new_list);
+
+  g_list_free (l_good);
+  g_list_free (l_neutral);
+  g_list_free (l_bad);
+
+  new_msg = gst_message_new_element (msg->src, new_structure);
+  gst_message_unref (msg);
+
+  GST_DEBUG_OBJECT (dec, "new redirect message: %" GST_PTR_FORMAT, new_msg);
+  return new_msg;
+}
+
+static GstMessage *
+handle_buffering_message (GstURISourceBin * urisrc, GstMessage * msg)
+{
+  gint perc, msg_perc;
+  gint smaller_perc = 100;
+  GstMessage *smaller = NULL;
+  GList *found = NULL;
+  GList *iter;
+
+  /* buffering messages must be aggregated as there might be multiple
+   * multiqueue in the pipeline and their independent buffering messages
+   * will confuse the application
+   *
+   * urisourcebin keeps a list of messages received from elements that are
+   * buffering.
+   * Rules are:
+   * 0) Ignore buffering from elements that are draining (is_eos == TRUE)
+   * 1) Always post the smaller buffering %
+   * 2) If an element posts a 100% buffering message, remove it from the list
+   * 3) When there are no more messages on the list, post 100% message
+   * 4) When an element posts a new buffering message, update the one
+   *    on the list to this new value
+   */
+  gst_message_parse_buffering (msg, &msg_perc);
+  GST_LOG_OBJECT (urisrc, "Got buffering msg from %" GST_PTR_FORMAT
+      " with %d%%", GST_MESSAGE_SRC (msg), msg_perc);
+
+  GST_OBJECT_LOCK (urisrc);
+  /*
+   * Single loop for 2 things:
+   * 1) Look for a message with the same source
+   *   1.1) If the received message is 100%, remove it from the list
+   * 2) Find the minimum buffering from the list from elements that aren't EOS
+   */
+  for (iter = urisrc->buffering_status; iter;) {
+    GstMessage *bufstats = iter->data;
+    OutputSlotInfo *slot =
+        g_object_get_data (G_OBJECT (GST_MESSAGE_SRC (bufstats)),
+        "urisourcebin.slotinfo");
+    gboolean is_eos = FALSE;
+
+    if (slot)
+      is_eos = slot->is_eos;
+
+    if (GST_MESSAGE_SRC (bufstats) == GST_MESSAGE_SRC (msg)) {
+      found = iter;
+      if (msg_perc < 100) {
+        gst_message_unref (iter->data);
+        bufstats = iter->data = gst_message_ref (msg);
+      } else {
+        GList *current = iter;
+
+        /* remove the element here and avoid confusing the loop */
+        iter = g_list_next (iter);
+
+        gst_message_unref (current->data);
+        urisrc->buffering_status =
+            g_list_delete_link (urisrc->buffering_status, current);
+
+        continue;
+      }
+    }
+
+    /* only update minimum stat for non-EOS slots */
+    if (!is_eos) {
+      gst_message_parse_buffering (bufstats, &perc);
+      if (perc < smaller_perc) {
+        smaller_perc = perc;
+        smaller = bufstats;
+      }
+    } else {
+      GST_LOG_OBJECT (urisrc, "Ignoring buffering from EOS element");
+    }
+    iter = g_list_next (iter);
+  }
+
+  if (found == NULL && msg_perc < 100) {
+    if (msg_perc < smaller_perc) {
+      smaller_perc = msg_perc;
+      smaller = msg;
+    }
+    urisrc->buffering_status =
+        g_list_prepend (urisrc->buffering_status, gst_message_ref (msg));
+  }
+
+  if (smaller_perc == urisrc->last_buffering_pct) {
+    /* Don't repeat our last buffering status */
+    gst_message_replace (&msg, NULL);
+  } else {
+    urisrc->last_buffering_pct = smaller_perc;
+
+    /* now compute the buffering message that should be posted */
+    if (smaller_perc == 100) {
+      g_assert (urisrc->buffering_status == NULL);
+      /* we are posting the original received msg */
+    } else {
+      gst_message_replace (&msg, smaller);
+    }
+  }
+  GST_OBJECT_UNLOCK (urisrc);
+
+  if (msg) {
+    GST_LOG_OBJECT (urisrc, "Sending buffering msg from %" GST_PTR_FORMAT
+        " with %d%%", GST_MESSAGE_SRC (msg), smaller_perc);
+  } else {
+    GST_LOG_OBJECT (urisrc, "Dropped buffering msg as a repeat of %d%%",
+        smaller_perc);
+  }
+  return msg;
+}
+
+/* Remove any buffering message from the given source */
+static void
+remove_buffering_msgs (GstURISourceBin * urisrc, GstObject * src)
+{
+  GList *iter;
+
+  GST_OBJECT_LOCK (urisrc);
+  for (iter = urisrc->buffering_status; iter;) {
+    GstMessage *bufstats = iter->data;
+    if (GST_MESSAGE_SRC (bufstats) == src) {
+      gst_message_unref (bufstats);
+      urisrc->buffering_status =
+          g_list_delete_link (urisrc->buffering_status, iter);
+      break;
+    }
+    iter = g_list_next (iter);
+  }
+  GST_OBJECT_UNLOCK (urisrc);
+}
+
+static void
+handle_message (GstBin * bin, GstMessage * msg)
+{
+  GstURISourceBin *urisrc = GST_URI_SOURCE_BIN (bin);
+
+  switch (GST_MESSAGE_TYPE (msg)) {
+    case GST_MESSAGE_ELEMENT:{
+      if (gst_message_has_name (msg, "redirect")) {
+        /* sort redirect messages based on the connection speed. This simplifies
+         * the user of this element as it can in most cases just pick the first item
+         * of the sorted list as a good redirection candidate. It can of course
+         * choose something else from the list if it has a better way. */
+        msg = handle_redirect_message (urisrc, msg);
+      }
+      break;
+    }
+    case GST_MESSAGE_BUFFERING:
+      msg = handle_buffering_message (urisrc, msg);
+      break;
+    default:
+      break;
+  }
+
+  if (msg)
+    GST_BIN_CLASS (parent_class)->handle_message (bin, msg);
+}
+
+/* generic struct passed to all query fold methods
+ * FIXME, move to core.
+ */
+typedef struct
+{
+  GstQuery *query;
+  gint64 min;
+  gint64 max;
+  gboolean seekable;
+  gboolean live;
+} QueryFold;
+
+typedef void (*QueryInitFunction) (GstURISourceBin * urisrc, QueryFold * fold);
+typedef void (*QueryDoneFunction) (GstURISourceBin * urisrc, QueryFold * fold);
+
+/* for duration/position we collect all durations/positions and take
+ * the MAX of all valid results */
+static void
+decoder_query_init (GstURISourceBin * dec, QueryFold * fold)
+{
+  fold->min = 0;
+  fold->max = -1;
+  fold->seekable = TRUE;
+  fold->live = 0;
+}
+
+static gboolean
+decoder_query_duration_fold (const GValue * item, GValue * ret,
+    QueryFold * fold)
+{
+  GstPad *pad = g_value_get_object (item);
+
+  if (gst_pad_query (pad, fold->query)) {
+    gint64 duration;
+
+    g_value_set_boolean (ret, TRUE);
+
+    gst_query_parse_duration (fold->query, NULL, &duration);
+
+    GST_DEBUG_OBJECT (item, "got duration %" G_GINT64_FORMAT, duration);
+
+    if (duration > fold->max)
+      fold->max = duration;
+  }
+  return TRUE;
+}
+
+static void
+decoder_query_duration_done (GstURISourceBin * dec, QueryFold * fold)
+{
+  GstFormat format;
+
+  gst_query_parse_duration (fold->query, &format, NULL);
+  /* store max in query result */
+  gst_query_set_duration (fold->query, format, fold->max);
+
+  GST_DEBUG ("max duration %" G_GINT64_FORMAT, fold->max);
+}
+
+static gboolean
+decoder_query_position_fold (const GValue * item, GValue * ret,
+    QueryFold * fold)
+{
+  GstPad *pad = g_value_get_object (item);
+
+  if (gst_pad_query (pad, fold->query)) {
+    gint64 position;
+
+    g_value_set_boolean (ret, TRUE);
+
+    gst_query_parse_position (fold->query, NULL, &position);
+
+    GST_DEBUG_OBJECT (item, "got position %" G_GINT64_FORMAT, position);
+
+    if (position > fold->max)
+      fold->max = position;
+  }
+
+  return TRUE;
+}
+
+static void
+decoder_query_position_done (GstURISourceBin * dec, QueryFold * fold)
+{
+  GstFormat format;
+
+  gst_query_parse_position (fold->query, &format, NULL);
+  /* store max in query result */
+  gst_query_set_position (fold->query, format, fold->max);
+
+  GST_DEBUG_OBJECT (dec, "max position %" G_GINT64_FORMAT, fold->max);
+}
+
+static gboolean
+decoder_query_latency_fold (const GValue * item, GValue * ret, QueryFold * fold)
+{
+  GstPad *pad = g_value_get_object (item);
+
+  if (gst_pad_query (pad, fold->query)) {
+    GstClockTime min, max;
+    gboolean live;
+
+    gst_query_parse_latency (fold->query, &live, &min, &max);
+
+    GST_DEBUG_OBJECT (pad,
+        "got latency min %" GST_TIME_FORMAT ", max %" GST_TIME_FORMAT
+        ", live %d", GST_TIME_ARGS (min), GST_TIME_ARGS (max), live);
+
+    if (live) {
+      /* for the combined latency we collect the MAX of all min latencies and
+       * the MIN of all max latencies */
+      if (min > fold->min)
+        fold->min = min;
+      if (fold->max == -1)
+        fold->max = max;
+      else if (max < fold->max)
+        fold->max = max;
+
+      fold->live = TRUE;
+    }
+  } else {
+    GST_LOG_OBJECT (pad, "latency query failed");
+    g_value_set_boolean (ret, FALSE);
+  }
+
+  return TRUE;
+}
+
+static void
+decoder_query_latency_done (GstURISourceBin * dec, QueryFold * fold)
+{
+  /* store max in query result */
+  gst_query_set_latency (fold->query, fold->live, fold->min, fold->max);
+
+  GST_DEBUG_OBJECT (dec,
+      "latency min %" GST_TIME_FORMAT ", max %" GST_TIME_FORMAT
+      ", live %d", GST_TIME_ARGS (fold->min), GST_TIME_ARGS (fold->max),
+      fold->live);
+}
+
+/* we are seekable if all srcpads are seekable */
+static gboolean
+decoder_query_seeking_fold (const GValue * item, GValue * ret, QueryFold * fold)
+{
+  GstPad *pad = g_value_get_object (item);
+
+  if (gst_pad_query (pad, fold->query)) {
+    gboolean seekable;
+
+    g_value_set_boolean (ret, TRUE);
+    gst_query_parse_seeking (fold->query, NULL, &seekable, NULL, NULL);
+
+    GST_DEBUG_OBJECT (item, "got seekable %d", seekable);
+
+    if (fold->seekable)
+      fold->seekable = seekable;
+  }
+
+  return TRUE;
+}
+
+static void
+decoder_query_seeking_done (GstURISourceBin * dec, QueryFold * fold)
+{
+  GstFormat format;
+
+  gst_query_parse_seeking (fold->query, &format, NULL, NULL, NULL);
+  gst_query_set_seeking (fold->query, format, fold->seekable, 0, -1);
+
+  GST_DEBUG_OBJECT (dec, "seekable %d", fold->seekable);
+}
+
+/* generic fold, return first valid result */
+static gboolean
+decoder_query_generic_fold (const GValue * item, GValue * ret, QueryFold * fold)
+{
+  GstPad *pad = g_value_get_object (item);
+  gboolean res;
+
+  if ((res = gst_pad_query (pad, fold->query))) {
+    g_value_set_boolean (ret, TRUE);
+    GST_DEBUG_OBJECT (item, "answered query %p", fold->query);
+  }
+
+  /* and stop as soon as we have a valid result */
+  return !res;
+}
+
+/* we're a bin, the default query handler iterates sink elements, which we don't
+ * have normally. We should just query all source pads.
+ */
+static gboolean
+gst_uri_source_bin_query (GstElement * element, GstQuery * query)
+{
+  GstURISourceBin *decoder;
+  gboolean res = FALSE;
+  GstIterator *iter;
+  GstIteratorFoldFunction fold_func;
+  QueryInitFunction fold_init = NULL;
+  QueryDoneFunction fold_done = NULL;
+  QueryFold fold_data;
+  GValue ret = { 0 };
+  gboolean default_ret = FALSE;
+
+  decoder = GST_URI_SOURCE_BIN (element);
+
+  switch (GST_QUERY_TYPE (query)) {
+    case GST_QUERY_DURATION:
+      /* iterate and collect durations */
+      fold_func = (GstIteratorFoldFunction) decoder_query_duration_fold;
+      fold_init = decoder_query_init;
+      fold_done = decoder_query_duration_done;
+      break;
+    case GST_QUERY_POSITION:
+      /* iterate and collect durations */
+      fold_func = (GstIteratorFoldFunction) decoder_query_position_fold;
+      fold_init = decoder_query_init;
+      fold_done = decoder_query_position_done;
+      break;
+    case GST_QUERY_LATENCY:
+      /* iterate and collect durations */
+      fold_func = (GstIteratorFoldFunction) decoder_query_latency_fold;
+      fold_init = decoder_query_init;
+      fold_done = decoder_query_latency_done;
+      default_ret = TRUE;
+      break;
+    case GST_QUERY_SEEKING:
+      /* iterate and collect durations */
+      fold_func = (GstIteratorFoldFunction) decoder_query_seeking_fold;
+      fold_init = decoder_query_init;
+      fold_done = decoder_query_seeking_done;
+      break;
+    default:
+      fold_func = (GstIteratorFoldFunction) decoder_query_generic_fold;
+      break;
+  }
+
+  fold_data.query = query;
+
+  g_value_init (&ret, G_TYPE_BOOLEAN);
+  g_value_set_boolean (&ret, default_ret);
+
+  iter = gst_element_iterate_src_pads (element);
+  GST_DEBUG_OBJECT (element, "Sending query %p (type %d) to src pads",
+      query, GST_QUERY_TYPE (query));
+
+  if (fold_init)
+    fold_init (decoder, &fold_data);
+
+  while (TRUE) {
+    GstIteratorResult ires;
+
+    ires = gst_iterator_fold (iter, fold_func, &ret, &fold_data);
+
+    switch (ires) {
+      case GST_ITERATOR_RESYNC:
+        gst_iterator_resync (iter);
+        if (fold_init)
+          fold_init (decoder, &fold_data);
+        g_value_set_boolean (&ret, default_ret);
+        break;
+      case GST_ITERATOR_OK:
+      case GST_ITERATOR_DONE:
+        res = g_value_get_boolean (&ret);
+        if (fold_done != NULL && res)
+          fold_done (decoder, &fold_data);
+        goto done;
+      default:
+        res = FALSE;
+        goto done;
+    }
+  }
+done:
+  gst_iterator_free (iter);
+
+  return res;
+}
+
+static void
+sync_slot_queue (OutputSlotInfo * slot)
+{
+  gst_element_sync_state_with_parent (slot->queue);
+}
+
+static GstStateChangeReturn
+gst_uri_source_bin_change_state (GstElement * element,
+    GstStateChange transition)
+{
+  GstStateChangeReturn ret;
+  GstURISourceBin *urisrc = GST_URI_SOURCE_BIN (element);
+
+  switch (transition) {
+    case GST_STATE_CHANGE_READY_TO_PAUSED:
+      do_async_start (urisrc);
+      break;
+    default:
+      break;
+  }
+
+  ret = GST_ELEMENT_CLASS (parent_class)->change_state (element, transition);
+  if (ret == GST_STATE_CHANGE_FAILURE)
+    goto setup_failed;
+  else if (ret == GST_STATE_CHANGE_NO_PREROLL)
+    do_async_done (urisrc);
+
+  switch (transition) {
+    case GST_STATE_CHANGE_READY_TO_PAUSED:
+      GST_DEBUG ("ready to paused");
+      if (!setup_source (urisrc))
+        goto source_failed;
+
+      ret = GST_STATE_CHANGE_ASYNC;
+
+      /* And now sync the states of everything we added */
+      g_slist_foreach (urisrc->out_slots, (GFunc) sync_slot_queue, NULL);
+      if (urisrc->typefind)
+        ret = gst_element_set_state (urisrc->typefind, GST_STATE_PAUSED);
+      if (ret == GST_STATE_CHANGE_FAILURE)
+        goto setup_failed;
+      if (urisrc->source)
+        ret = gst_element_set_state (urisrc->source, GST_STATE_PAUSED);
+      if (ret == GST_STATE_CHANGE_FAILURE)
+        goto setup_failed;
+      if (ret == GST_STATE_CHANGE_SUCCESS)
+        ret = GST_STATE_CHANGE_ASYNC;
+
+      break;
+    case GST_STATE_CHANGE_PAUSED_TO_READY:
+      GST_DEBUG ("paused to ready");
+      remove_demuxer (urisrc);
+      remove_source (urisrc);
+      do_async_done (urisrc);
+      g_list_free_full (urisrc->buffering_status,
+          (GDestroyNotify) gst_message_unref);
+      urisrc->buffering_status = NULL;
+      urisrc->last_buffering_pct = -1;
+      break;
+    case GST_STATE_CHANGE_READY_TO_NULL:
+      GST_DEBUG ("ready to null");
+      remove_demuxer (urisrc);
+      remove_source (urisrc);
+      break;
+    default:
+      break;
+  }
+  return ret;
+
+  /* ERRORS */
+source_failed:
+  {
+    do_async_done (urisrc);
+    return GST_STATE_CHANGE_FAILURE;
+  }
+setup_failed:
+  {
+    /* clean up leftover groups */
+    do_async_done (urisrc);
+    return GST_STATE_CHANGE_FAILURE;
+  }
+}
+
+gboolean
+gst_uri_source_bin_plugin_init (GstPlugin * plugin)
+{
+  GST_DEBUG_CATEGORY_INIT (gst_uri_source_bin_debug, "urisourcebin", 0,
+      "URI source element");
+
+  return gst_element_register (plugin, "urisourcebin", GST_RANK_NONE,
+      GST_TYPE_URI_DECODE_BIN);
+}
diff --git a/gst/subparse/gstssaparse.c b/gst/subparse/gstssaparse.c
index 06ecef9..536ce0d 100644
--- a/gst/subparse/gstssaparse.c
+++ b/gst/subparse/gstssaparse.c
@@ -97,10 +97,8 @@
 
   object_class->dispose = gst_ssa_parse_dispose;
 
-  gst_element_class_add_pad_template (element_class,
-      gst_static_pad_template_get (&sink_templ));
-  gst_element_class_add_pad_template (element_class,
-      gst_static_pad_template_get (&src_templ));
+  gst_element_class_add_static_pad_template (element_class, &sink_templ);
+  gst_element_class_add_static_pad_template (element_class, &src_templ);
   gst_element_class_set_static_metadata (element_class,
       "SSA Subtitle Parser", "Codec/Parser/Subtitle",
       "Parses SSA subtitle streams",
diff --git a/gst/subparse/gstsubparse.c b/gst/subparse/gstsubparse.c
index e306939..c8acc06 100644
--- a/gst/subparse/gstsubparse.c
+++ b/gst/subparse/gstsubparse.c
@@ -2,6 +2,8 @@
  * Copyright (C) <1999> Erik Walthinsen <omega@cse.ogi.edu>
  * Copyright (C) 2004 Ronald S. Bultje <rbultje@ronald.bitfreak.net>
  * Copyright (C) 2006 Tim-Philipp Müller <tim centricular net>
+ * Copyright (C) 2016 Philippe Normand <pnormand@igalia.com>
+ * Copyright (C) 2016 Jan Schmidt <jan@centricular.com>
  *
  * This library is free software; you can redistribute it and/or
  * modify it under the terms of the GNU Library General Public
@@ -39,6 +41,10 @@
 GST_DEBUG_CATEGORY (sub_parse_debug);
 
 #define DEFAULT_ENCODING   NULL
+#define ATTRIBUTE_REGEX "\\s?[a-zA-Z0-9\\. \t\\(\\)]*"
+static const gchar *allowed_srt_tags[] = { "i", "b", "u", NULL };
+static const gchar *allowed_vtt_tags[] =
+    { "i", "b", "c", "u", "v", "ruby", "rt", NULL };
 
 enum
 {
@@ -61,7 +67,7 @@
     GST_STATIC_CAPS ("application/x-subtitle; application/x-subtitle-sami; "
         "application/x-subtitle-tmplayer; application/x-subtitle-mpl2; "
         "application/x-subtitle-dks; application/x-subtitle-qttext;"
-        "application/x-subtitle-lrc;")
+        "application/x-subtitle-lrc; application/x-subtitle-vtt")
     );
 
 static GstStaticPadTemplate src_templ = GST_STATIC_PAD_TEMPLATE ("src",
@@ -127,10 +133,8 @@
   object_class->set_property = gst_sub_parse_set_property;
   object_class->get_property = gst_sub_parse_get_property;
 
-  gst_element_class_add_pad_template (element_class,
-      gst_static_pad_template_get (&sink_templ));
-  gst_element_class_add_pad_template (element_class,
-      gst_static_pad_template_get (&src_templ));
+  gst_element_class_add_static_pad_template (element_class, &sink_templ);
+  gst_element_class_add_static_pad_template (element_class, &src_templ);
   gst_element_class_set_static_metadata (element_class,
       "Subtitle parser", "Codec/Parser/Subtitle",
       "Parses subtitle (.sub) files into text streams",
@@ -372,6 +376,8 @@
       return "SubViewer";
     case GST_SUB_PARSE_FORMAT_DKS:
       return "DKS";
+    case GST_SUB_PARSE_FORMAT_VTT:
+      return "WebVTT";
     case GST_SUB_PARSE_FORMAT_QTTEXT:
       return "QTtext";
     case GST_SUB_PARSE_FORMAT_LRC:
@@ -665,45 +671,42 @@
  * escaping everything (the text between these simple markers isn't
  * necessarily escaped, so it seems best to do it like this) */
 static void
-subrip_unescape_formatting (gchar * txt)
+subrip_unescape_formatting (gchar * txt, gconstpointer allowed_tags_ptr,
+    gboolean allows_tag_attributes)
 {
-  gchar *pos;
+  gchar *res;
+  GRegex *tag_regex;
+  gchar *allowed_tags_pattern, *search_pattern;
+  const gchar *replace_pattern;
 
-  for (pos = txt; pos != NULL && *pos != '\0'; ++pos) {
-    if (g_ascii_strncasecmp (pos, "&lt;u&gt;", 9) == 0 ||
-        g_ascii_strncasecmp (pos, "&lt;i&gt;", 9) == 0 ||
-        g_ascii_strncasecmp (pos, "&lt;b&gt;", 9) == 0) {
-      pos[0] = '<';
-      pos[1] = g_ascii_tolower (pos[4]);
-      pos[2] = '>';
-      /* move NUL terminator as well */
-      memmove (pos + 3, pos + 9, strlen (pos + 9) + 1);
-      pos += 2;
-    }
+  /* No processing needed if no escaped tag marker found in the string. */
+  if (strstr (txt, "&lt;") == NULL)
+    return;
+
+  /* Build a list of alternates for our regexp.
+   * FIXME: Could be built once and stored */
+  allowed_tags_pattern = g_strjoinv ("|", (gchar **) allowed_tags_ptr);
+  /* Look for starting/ending escaped tags with optional attributes. */
+  search_pattern = g_strdup_printf ("&lt;(/)?\\ *(%s)(%s)&gt;",
+      allowed_tags_pattern, ATTRIBUTE_REGEX);
+  /* And unescape appropriately */
+  if (allows_tag_attributes) {
+    replace_pattern = "<\\1\\2\\3>";
+  } else {
+    replace_pattern = "<\\1\\2>";
   }
 
-  for (pos = txt; pos != NULL && *pos != '\0'; ++pos) {
-    gchar *tag;
+  tag_regex = g_regex_new (search_pattern, 0, 0, NULL);
+  res = g_regex_replace (tag_regex, txt, strlen (txt), 0,
+      replace_pattern, 0, NULL);
 
-    /* look for start of an escaped closing tag */
-    if (g_ascii_strncasecmp (pos, "&lt;/", 5) != 0)
-      continue;
-    tag = pos + 5;
-    while (*tag == ' ')
-      ++tag;
-    if ((*tag == 'u' || *tag == 'i' || *tag == 'b') &&
-        g_ascii_strncasecmp (tag + 1, "&gt;", 4) == 0) {
-      gsize tag_len = (guintptr) (tag + 1 + 4 - pos);
+  /* res will always be shorter than the input or identical, so this
+   * copy is OK */
+  strcpy (txt, res);
 
-      pos[0] = '<';
-      pos[1] = '/';
-      pos[2] = g_ascii_tolower (*tag);
-      pos[3] = '>';
-      /* move NUL terminator as well */
-      memmove (pos + 4, pos + tag_len, strlen (pos + tag_len) + 1);
-      pos += 3;
-    }
-  }
+  g_free (res);
+  g_free (search_pattern);
+  g_free (allowed_tags_pattern);
 }
 
 
@@ -742,16 +745,25 @@
   }
 }
 
-/* we only allow <i>, <u> and <b>, so let's take a simple approach. This code
- * assumes the input has been escaped and subrip_unescape_formatting() has then
- * been run over the input! This function adds missing closing markup tags and
- * removes broken closing tags for tags that have never been opened. */
+/* we only allow a fixed set of tags like <i>, <u> and <b>, so let's
+ * take a simple approach. This code assumes the input has been
+ * escaped and subrip_unescape_formatting() has then been run over the
+ * input! This function adds missing closing markup tags and removes
+ * broken closing tags for tags that have never been opened. */
 static void
-subrip_fix_up_markup (gchar ** p_txt)
+subrip_fix_up_markup (gchar ** p_txt, gconstpointer allowed_tags_ptr)
 {
   gchar *cur, *next_tag;
-  gchar open_tags[32];
+  gchar *open_tags[32];
   guint num_open_tags = 0;
+  const gchar *iter_tag;
+  guint offset = 0;
+  guint index;
+  gchar *cur_tag;
+  gchar *end_tag;
+  GRegex *tag_regex;
+  GMatchInfo *match_info;
+  gchar **allowed_tags = (gchar **) allowed_tags_ptr;
 
   g_assert (*p_txt != NULL);
 
@@ -760,33 +772,58 @@
     next_tag = strchr (cur, '<');
     if (next_tag == NULL)
       break;
-    ++next_tag;
-    switch (*next_tag) {
-      case '/':{
-        ++next_tag;
-        if (num_open_tags == 0 || open_tags[num_open_tags - 1] != *next_tag) {
-          GST_LOG ("broken input, closing tag '%c' is not open", *next_tag);
-          memmove (next_tag - 2, next_tag + 2, strlen (next_tag + 2) + 1);
-          next_tag -= 2;
-        } else {
-          /* it's all good, closing tag which is open */
-          --num_open_tags;
+    offset = 0;
+    index = 0;
+    while (index < g_strv_length (allowed_tags)) {
+      iter_tag = allowed_tags[index];
+      /* Look for a white listed tag */
+      cur_tag = g_strconcat ("<", iter_tag, ATTRIBUTE_REGEX, ">", NULL);
+      tag_regex = g_regex_new (cur_tag, 0, 0, NULL);
+      (void) g_regex_match (tag_regex, next_tag, 0, &match_info);
+
+      if (g_match_info_matches (match_info)) {
+        gint start_pos, end_pos;
+        gchar *word = g_match_info_fetch (match_info, 0);
+        g_match_info_fetch_pos (match_info, 0, &start_pos, &end_pos);
+        if (start_pos == 0) {
+          offset = strlen (word);
         }
-        break;
+        g_free (word);
       }
-      case 'i':
-      case 'b':
-      case 'u':
-        if (num_open_tags == G_N_ELEMENTS (open_tags))
-          return;               /* something dodgy is going on, stop parsing */
-        open_tags[num_open_tags] = *next_tag;
+      g_match_info_free (match_info);
+      g_regex_unref (tag_regex);
+      g_free (cur_tag);
+      index++;
+      if (offset) {
+        /* OK we found a tag, let's keep track of it */
+        open_tags[num_open_tags] = g_strdup (iter_tag);
         ++num_open_tags;
         break;
-      default:
-        GST_ERROR ("unexpected tag '%c' (%s)", *next_tag, next_tag);
-        g_assert_not_reached ();
-        break;
+      }
     }
+
+    if (offset) {
+      next_tag += offset;
+      cur = next_tag;
+      continue;
+    }
+
+    if (*next_tag == '<' && *(next_tag + 1) == '/') {
+      end_tag = strchr (cur, '>');
+      if (end_tag) {
+        if (num_open_tags == 0
+            || g_ascii_strncasecmp (end_tag - 1, open_tags[num_open_tags - 1],
+                strlen (open_tags[num_open_tags - 1]))) {
+          GST_LOG ("broken input, closing tag '%s' is not open", next_tag);
+          memmove (next_tag, end_tag + 1, strlen (end_tag) + 1);
+          next_tag -= strlen (end_tag);
+        } else {
+          --num_open_tags;
+          g_free (open_tags[num_open_tags]);
+        }
+      }
+    }
+    ++next_tag;
     cur = next_tag;
   }
 
@@ -795,11 +832,12 @@
 
     s = g_string_new (*p_txt);
     while (num_open_tags > 0) {
-      GST_LOG ("adding missing closing tag '%c'", open_tags[num_open_tags - 1]);
+      GST_LOG ("adding missing closing tag '%s'", open_tags[num_open_tags - 1]);
       g_string_append_c (s, '<');
       g_string_append_c (s, '/');
-      g_string_append_c (s, open_tags[num_open_tags - 1]);
+      g_string_append (s, open_tags[num_open_tags - 1]);
       g_string_append_c (s, '>');
+      g_free (open_tags[num_open_tags - 1]);
       --num_open_tags;
     }
     g_free (*p_txt);
@@ -859,18 +897,105 @@
   return TRUE;
 }
 
+/* cue settings are part of the WebVTT specification. They are
+ * declared after the time interval in the first line of the
+ * cue. Example: 00:00:01,000 --> 00:00:02,000 D:vertical-lr A:start
+ * See also http://www.whatwg.org/specs/web-apps/current-work/webvtt.html
+ */
+static void
+parse_webvtt_cue_settings (ParserState * state, const gchar * settings)
+{
+  gchar **splitted_settings = g_strsplit_set (settings, " \t", -1);
+  gint i = 0;
+  gint16 text_position, text_size;
+  gint16 line_position;
+  gboolean vertical_found = FALSE;
+  gboolean alignment_found = FALSE;
+
+  while (i < g_strv_length (splitted_settings)) {
+    gboolean valid_tag = FALSE;
+    switch (splitted_settings[i][0]) {
+      case 'T':
+        if (sscanf (splitted_settings[i], "T:%" G_GINT16_FORMAT "%%",
+                &text_position) > 0) {
+          state->text_position = (guint8) text_position;
+          valid_tag = TRUE;
+        }
+        break;
+      case 'D':
+        if (strlen (splitted_settings[i]) > 2) {
+          vertical_found = TRUE;
+          state->vertical = g_strdup (splitted_settings[i] + 2);
+          valid_tag = TRUE;
+        }
+        break;
+      case 'L':
+        if (g_str_has_suffix (splitted_settings[i], "%")) {
+          if (sscanf (splitted_settings[i], "L:%" G_GINT16_FORMAT "%%",
+                  &line_position) > 0) {
+            state->line_position = line_position;
+            valid_tag = TRUE;
+          }
+        } else {
+          if (sscanf (splitted_settings[i], "L:%" G_GINT16_FORMAT,
+                  &line_position) > 0) {
+            state->line_number = line_position;
+            valid_tag = TRUE;
+          }
+        }
+        break;
+      case 'S':
+        if (sscanf (splitted_settings[i], "S:%" G_GINT16_FORMAT "%%",
+                &text_size) > 0) {
+          state->text_size = (guint8) text_size;
+          valid_tag = TRUE;
+        }
+        break;
+      case 'A':
+        if (strlen (splitted_settings[i]) > 2) {
+          state->alignment = g_strdup (splitted_settings[i] + 2);
+          alignment_found = TRUE;
+          valid_tag = TRUE;
+        }
+        break;
+      default:
+        break;
+    }
+    if (!valid_tag) {
+      GST_LOG ("Invalid or unrecognised setting found: %s",
+          splitted_settings[i]);
+    }
+    i++;
+  }
+  g_strfreev (splitted_settings);
+  if (!vertical_found)
+    state->vertical = g_strdup ("");
+  if (!alignment_found)
+    state->alignment = g_strdup ("");
+}
+
 static gchar *
 parse_subrip (ParserState * state, const gchar * line)
 {
-  int subnum;
   gchar *ret;
 
   switch (state->state) {
-    case 0:
-      /* looking for a single integer */
-      if (sscanf (line, "%u", &subnum) == 1)
+    case 0:{
+      char *endptr;
+      guint64 id;
+
+      /* looking for a single integer as a Cue ID, but we
+       * don't actually use it */
+      errno = 0;
+      id = g_ascii_strtoull (line, &endptr, 10);
+      if (id == G_MAXUINT64 && errno == ERANGE)
+        state->state = 1;
+      else if (id == 0 && errno == EINVAL)
+        state->state = 1;
+      else if (endptr != line && *endptr == '\0')
         state->state = 1;
       return NULL;
+    }
     case 1:
     {
       GstClockTime ts_start, ts_end;
@@ -917,10 +1042,11 @@
         ret = g_markup_escape_text (state->buf->str, state->buf->len);
         g_string_truncate (state->buf, 0);
         state->state = 0;
-        subrip_unescape_formatting (ret);
+        subrip_unescape_formatting (ret, state->allowed_tags,
+            state->allows_tag_attributes);
         subrip_remove_unhandled_tags (ret);
         strip_trailing_newlines (ret);
-        subrip_fix_up_markup (&ret);
+        subrip_fix_up_markup (&ret, state->allowed_tags);
         return ret;
       }
       return NULL;
@@ -957,6 +1083,54 @@
   return g_strdup (start + 1);
 }
 
+/* WebVTT is a new subtitle format for the upcoming HTML5 video track
+ * element. This format is similar to Subrip, the biggest differences
+ * are that there can be cue settings detailing how to display the cue
+ * text and more markup tags are allowed.
+ * See also http://www.whatwg.org/specs/web-apps/current-work/webvtt.html
+ */
+static gchar *
+parse_webvtt (ParserState * state, const gchar * line)
+{
+  /* Cue IDs are optional in WebVTT, but not in subrip,
+   * so when in state 0 (cue ID), also check if we're
+   * already at the start --> end time marker */
+  if (state->state == 0 || state->state == 1) {
+    GstClockTime ts_start, ts_end;
+    gchar *end_time;
+    gchar *cue_settings = NULL;
+
+    /* looking for start_time --> end_time */
+    if ((end_time = strstr (line, " --> ")) &&
+        parse_subrip_time (line, &ts_start) &&
+        parse_subrip_time (end_time + strlen (" --> "), &ts_end) &&
+        state->start_time <= ts_end) {
+      state->state = 2;
+      state->start_time = ts_start;
+      state->duration = ts_end - ts_start;
+      cue_settings = strstr (end_time + strlen (" --> "), " ");
+    } else {
+      GST_DEBUG ("error parsing subrip time line '%s'", line);
+      state->state = 0;
+    }
+
+    state->text_position = 0;
+    state->text_size = 0;
+    state->line_position = 0;
+    state->line_number = 0;
+
+    if (cue_settings)
+      parse_webvtt_cue_settings (state, cue_settings + 1);
+    else {
+      state->vertical = g_strdup ("");
+      state->alignment = g_strdup ("");
+    }
+
+    return NULL;
+  } else
+    return parse_subrip (state, line);
+}
+
 static void
 unescape_newlines_br (gchar * read)
 {
@@ -1179,6 +1353,7 @@
   state->max_duration = 0;      /* no limit */
   state->state = 0;
   state->segment = NULL;
+  state->allowed_tags = NULL;
 }
 
 static void
@@ -1200,6 +1375,7 @@
         break;
     }
   }
+  state->allowed_tags = NULL;
 }
 
 /* regex type enum */
@@ -1209,6 +1385,7 @@
   GST_SUB_PARSE_REGEX_MDVDSUB = 1,
   GST_SUB_PARSE_REGEX_SUBRIP = 2,
   GST_SUB_PARSE_REGEX_DKS = 3,
+  GST_SUB_PARSE_REGEX_VTT = 4,
 } GstSubParseRegex;
 
 static gpointer
@@ -1245,6 +1422,16 @@
         g_clear_error (&gerr);
       }
       break;
+    case GST_SUB_PARSE_REGEX_VTT:
+      result = (gpointer)
+          g_regex_new ("^(\\xef\\xbb\\xbf)?WEBVTT[\\xa\\xd\\x20\\x9]", 0, 0,
+          &gerr);
+      if (result == NULL) {
+        g_warning ("Compilation of vtt regex failed: %s", gerr->message);
+        g_error_free (gerr);
+      }
+      break;
+
     default:
       GST_WARNING ("Trying to allocate regex of unknown type %u", regtype);
   }
@@ -1265,10 +1452,12 @@
   static GOnce mdvd_rx_once = G_ONCE_INIT;
   static GOnce subrip_rx_once = G_ONCE_INIT;
   static GOnce dks_rx_once = G_ONCE_INIT;
+  static GOnce vtt_rx_once = G_ONCE_INIT;
 
   GRegex *mdvd_grx;
   GRegex *subrip_grx;
   GRegex *dks_grx;
+  GRegex *vtt_grx;
 
   g_once (&mdvd_rx_once,
       (GThreadFunc) gst_sub_parse_data_format_autodetect_regex_once,
@@ -1279,10 +1468,14 @@
   g_once (&dks_rx_once,
       (GThreadFunc) gst_sub_parse_data_format_autodetect_regex_once,
       (gpointer) GST_SUB_PARSE_REGEX_DKS);
+  g_once (&vtt_rx_once,
+      (GThreadFunc) gst_sub_parse_data_format_autodetect_regex_once,
+      (gpointer) GST_SUB_PARSE_REGEX_VTT);
 
   mdvd_grx = (GRegex *) mdvd_rx_once.retval;
   subrip_grx = (GRegex *) subrip_rx_once.retval;
   dks_grx = (GRegex *) dks_rx_once.retval;
+  vtt_grx = (GRegex *) vtt_rx_once.retval;
 
   if (g_regex_match (mdvd_grx, match_str, 0, NULL)) {
     GST_LOG ("MicroDVD (frame based) format detected");
@@ -1296,6 +1489,10 @@
     GST_LOG ("DKS (time based) format detected");
     return GST_SUB_PARSE_FORMAT_DKS;
   }
+  if (g_regex_match (vtt_grx, match_str, 0, NULL) == TRUE) {
+    GST_LOG ("WebVTT (time based) format detected");
+    return GST_SUB_PARSE_FORMAT_VTT;
+  }
 
   if (!strncmp (match_str, "FORMAT=TIME", 11)) {
     GST_LOG ("MPSub (time based) format detected");
@@ -1385,6 +1582,8 @@
       return gst_caps_new_simple ("text/x-raw",
           "format", G_TYPE_STRING, "pango-markup", NULL);
     case GST_SUB_PARSE_FORMAT_SUBRIP:
+      self->state.allowed_tags = (gpointer) allowed_srt_tags;
+      self->state.allows_tag_attributes = FALSE;
       self->parse_line = parse_subrip;
       return gst_caps_new_simple ("text/x-raw",
           "format", G_TYPE_STRING, "pango-markup", NULL);
@@ -1410,6 +1609,12 @@
       self->parse_line = parse_dks;
       return gst_caps_new_simple ("text/x-raw",
           "format", G_TYPE_STRING, "utf8", NULL);
+    case GST_SUB_PARSE_FORMAT_VTT:
+      self->state.allowed_tags = (gpointer) allowed_vtt_tags;
+      self->state.allows_tag_attributes = TRUE;
+      self->parse_line = parse_webvtt;
+      return gst_caps_new_simple ("text/x-raw",
+          "format", G_TYPE_STRING, "pango-markup", NULL);
     case GST_SUB_PARSE_FORMAT_SUBVIEWER:
       self->parse_line = parse_subviewer;
       return gst_caps_new_simple ("text/x-raw",
@@ -1541,7 +1746,8 @@
     /* Set segment on our parser state machine */
     self->state.segment = &self->segment;
     /* Now parse the line, out of segment lines will just return NULL */
-    GST_LOG_OBJECT (self, "Parsing line '%s'", line + offset);
+    GST_LOG_OBJECT (self, "State %d. Parsing line '%s'", self->state.state,
+        line + offset);
     subtitle = self->parse_line (&self->state, line + offset);
     g_free (line);
 
@@ -1574,6 +1780,8 @@
           GST_TIME_FORMAT, subtitle, GST_TIME_ARGS (self->state.start_time),
           GST_TIME_ARGS (self->state.duration));
 
+      g_free (self->state.vertical);
+      g_free (self->state.alignment);
       ret = gst_pad_push (self->srcpad, buf);
 
       /* move this forward (the tmplayer parser needs this) */
@@ -1740,6 +1948,9 @@
 static GstStaticCaps dks_caps = GST_STATIC_CAPS ("application/x-subtitle-dks");
 #define DKS_CAPS (gst_static_caps_get (&dks_caps))
 
+static GstStaticCaps vtt_caps = GST_STATIC_CAPS ("application/x-subtitle-vtt");
+#define VTT_CAPS (gst_static_caps_get (&vtt_caps))
+
 static GstStaticCaps qttext_caps =
 GST_STATIC_CAPS ("application/x-subtitle-qttext");
 #define QTTEXT_CAPS (gst_static_caps_get (&qttext_caps))
@@ -1851,6 +2062,10 @@
       GST_DEBUG ("LRC format detected");
       caps = LRC_CAPS;
       break;
+    case GST_SUB_PARSE_FORMAT_VTT:
+      GST_DEBUG ("WebVTT format detected");
+      caps = VTT_CAPS;
+      break;
     default:
     case GST_SUB_PARSE_FORMAT_UNKNOWN:
       GST_DEBUG ("no subtitle format detected");
@@ -1867,8 +2082,8 @@
   GST_DEBUG_CATEGORY_INIT (sub_parse_debug, "subparse", 0, ".sub parser");
 
   if (!gst_type_find_register (plugin, "subparse_typefind", GST_RANK_MARGINAL,
-          gst_subparse_type_find, "srt,sub,mpsub,mdvd,smi,txt,dks", SUB_CAPS,
-          NULL, NULL))
+          gst_subparse_type_find, "srt,sub,mpsub,mdvd,smi,txt,dks,vtt",
+          SUB_CAPS, NULL, NULL))
     return FALSE;
 
   if (!gst_element_register (plugin, "subparse",
diff --git a/gst/subparse/gstsubparse.h b/gst/subparse/gstsubparse.h
index 012aee6..64aab34 100644
--- a/gst/subparse/gstsubparse.h
+++ b/gst/subparse/gstsubparse.h
@@ -56,7 +56,8 @@
   GST_SUB_PARSE_FORMAT_SUBVIEWER = 7,
   GST_SUB_PARSE_FORMAT_DKS = 8,
   GST_SUB_PARSE_FORMAT_QTTEXT = 9,
-  GST_SUB_PARSE_FORMAT_LRC = 10
+  GST_SUB_PARSE_FORMAT_LRC = 10,
+  GST_SUB_PARSE_FORMAT_VTT = 11
 } GstSubParseFormat;
 
 typedef struct {
@@ -69,6 +70,14 @@
   gpointer user_data;
   gboolean have_internal_fps; /* If TRUE don't overwrite fps by property */
   gint fps_n, fps_d;     /* used by frame based parsers */
+  guint8 line_position;          /* percent value */
+  gint line_number;              /* line number, can be positive or negative */
+  guint8 text_position;          /* percent value */
+  guint8 text_size;          /* percent value */
+  gchar *vertical;        /* "", "vertical", "vertical-lr" */
+  gchar *alignment;       /* "", "start", "middle", "end" */
+  gconstpointer allowed_tags; /* list of markup tags allowed in the cue text. */
+  gboolean allows_tag_attributes;
 } ParserState;
 
 typedef gchar* (*Parser) (ParserState *state, const gchar *line);
diff --git a/gst/tcp/gstmultihandlesink.c b/gst/tcp/gstmultihandlesink.c
index 8a99e00..f060f0e 100644
--- a/gst/tcp/gstmultihandlesink.c
+++ b/gst/tcp/gstmultihandlesink.c
@@ -456,8 +456,7 @@
       G_STRUCT_OFFSET (GstMultiHandleSinkClass, clear), NULL, NULL,
       g_cclosure_marshal_generic, G_TYPE_NONE, 0);
 
-  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 socket sink", "Sink/Network",
@@ -2222,9 +2221,16 @@
   sink = GST_MULTI_HANDLE_SINK (element);
 
   /* we disallow changing the state from the streaming thread */
-  if (g_thread_self () == sink->thread)
-    return GST_STATE_CHANGE_FAILURE;
+  if (g_thread_self () == sink->thread) {
+    g_warning
+        ("\nTrying to change %s's state from its streaming thread would deadlock.\n"
+        "You cannot change the state of an element from its streaming\n"
+        "thread. Use g_idle_add() or post a GstMessage on the bus to\n"
+        "schedule the state change from the main thread.\n",
+        GST_ELEMENT_NAME (sink));
 
+    return GST_STATE_CHANGE_FAILURE;
+  }
 
   switch (transition) {
     case GST_STATE_CHANGE_NULL_TO_READY:
diff --git a/gst/tcp/gstsocketsrc.c b/gst/tcp/gstsocketsrc.c
index bb85402..e22c071 100644
--- a/gst/tcp/gstsocketsrc.c
+++ b/gst/tcp/gstsocketsrc.c
@@ -153,8 +153,7 @@
       G_SIGNAL_RUN_FIRST, G_STRUCT_OFFSET (GstSocketSrcClass,
           connection_closed_by_peer), NULL, NULL, NULL, G_TYPE_NONE, 0);
 
-  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,
       "socket source", "Source/Network",
diff --git a/gst/tcp/gsttcpclientsink.c b/gst/tcp/gsttcpclientsink.c
index d23ded4..5e96e76 100644
--- a/gst/tcp/gsttcpclientsink.c
+++ b/gst/tcp/gsttcpclientsink.c
@@ -114,8 +114,7 @@
           0, TCP_HIGHEST_PORT, TCP_DEFAULT_PORT,
           G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS));
 
-  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,
       "TCP client sink", "Sink/Network",
diff --git a/gst/tcp/gsttcpclientsrc.c b/gst/tcp/gsttcpclientsrc.c
index 776ff42..7ebe75a 100644
--- a/gst/tcp/gsttcpclientsrc.c
+++ b/gst/tcp/gsttcpclientsrc.c
@@ -109,8 +109,7 @@
           TCP_HIGHEST_PORT, TCP_DEFAULT_PORT,
           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,
       "TCP client source", "Source/Network",
diff --git a/gst/tcp/gsttcpserversrc.c b/gst/tcp/gsttcpserversrc.c
index 72efb86..6ac29a7 100644
--- a/gst/tcp/gsttcpserversrc.c
+++ b/gst/tcp/gsttcpserversrc.c
@@ -122,8 +122,7 @@
           "The port number the socket is currently bound to", 0,
           TCP_HIGHEST_PORT, 0, G_PARAM_READABLE | 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,
       "TCP server source", "Source/Network",
diff --git a/gst/typefind/gsttypefindfunctions.c b/gst/typefind/gsttypefindfunctions.c
index 63e1de9..353525a 100644
--- a/gst/typefind/gsttypefindfunctions.c
+++ b/gst/typefind/gsttypefindfunctions.c
@@ -4615,6 +4615,41 @@
   }
 }
 
+/*** WEBVTTT subtitles ***/
+static GstStaticCaps webvtt_caps =
+GST_STATIC_CAPS ("application/x-subtitle-vtt, parsed=(boolean)false");
+#define WEBVTT_CAPS (gst_static_caps_get(&webvtt_caps))
+
+static void
+webvtt_type_find (GstTypeFind * tf, gpointer private)
+{
+  const guint8 *data;
+
+  data = gst_type_find_peek (tf, 0, 9);
+
+  if (data == NULL)
+    return;
+
+  /* there might be a UTF-8 BOM at the beginning */
+  if (memcmp (data, "WEBVTT", 6) != 0 && memcmp (data + 3, "WEBVTT", 6) != 0) {
+    return;
+  }
+
+  if (data[0] != 'W') {
+    if (data[0] != 0xef || data[1] != 0xbb || data[2] != 0xbf)
+      return;                   /* Not a UTF-8 BOM */
+    data += 3;
+  }
+
+  /* After the WEBVTT magic must be one of these chars:
+   *   0x20 (space), 0x9 (tab), 0xa (LF) or 0xd (CR) */
+  if (data[6] != 0x20 && data[6] != 0x9 && data[6] != 0xa && data[6] != 0xd) {
+    return;
+  }
+
+  gst_type_find_suggest (tf, GST_TYPE_FIND_MAXIMUM, WEBVTT_CAPS);
+}
+
 /*** application/x-ogm-video or audio***/
 
 static GstStaticCaps ogmvideo_caps =
@@ -5737,6 +5772,8 @@
       GST_RANK_SECONDARY, "Z", "\037\235", 2, GST_TYPE_FIND_LIKELY);
   TYPE_FIND_REGISTER (plugin, "subtitle/x-kate", GST_RANK_MARGINAL,
       kate_type_find, NULL, NULL, NULL, NULL);
+  TYPE_FIND_REGISTER (plugin, "application/x-subtitle-vtt", GST_RANK_MARGINAL,
+      webvtt_type_find, "vtt", WEBVTT_CAPS, NULL, NULL);
   TYPE_FIND_REGISTER (plugin, "audio/x-flac", GST_RANK_PRIMARY, flac_type_find,
       "flac", FLAC_CAPS, NULL, NULL);
   TYPE_FIND_REGISTER (plugin, "audio/x-vorbis", GST_RANK_PRIMARY,
diff --git a/gst/videoconvert/gstvideoconvert.c b/gst/videoconvert/gstvideoconvert.c
index 66e388c..b69cd07 100644
--- a/gst/videoconvert/gstvideoconvert.c
+++ b/gst/videoconvert/gstvideoconvert.c
@@ -511,10 +511,10 @@
   gobject_class->get_property = gst_video_convert_get_property;
   gobject_class->finalize = gst_video_convert_finalize;
 
-  gst_element_class_add_pad_template (gstelement_class,
-      gst_static_pad_template_get (&gst_video_convert_src_template));
-  gst_element_class_add_pad_template (gstelement_class,
-      gst_static_pad_template_get (&gst_video_convert_sink_template));
+  gst_element_class_add_static_pad_template (gstelement_class,
+      &gst_video_convert_src_template);
+  gst_element_class_add_static_pad_template (gstelement_class,
+      &gst_video_convert_sink_template);
 
   gst_element_class_set_static_metadata (gstelement_class,
       "Colorspace converter", "Filter/Converter/Video",
diff --git a/gst/videorate/gstvideorate.c b/gst/videorate/gstvideorate.c
index 4a815d5..633c19f 100644
--- a/gst/videorate/gstvideorate.c
+++ b/gst/videorate/gstvideorate.c
@@ -255,10 +255,10 @@
       "Drops/duplicates/adjusts timestamps on video frames to make a perfect stream",
       "Wim Taymans <wim@fluendo.com>");
 
-  gst_element_class_add_pad_template (element_class,
-      gst_static_pad_template_get (&gst_video_rate_sink_template));
-  gst_element_class_add_pad_template (element_class,
-      gst_static_pad_template_get (&gst_video_rate_src_template));
+  gst_element_class_add_static_pad_template (element_class,
+      &gst_video_rate_sink_template);
+  gst_element_class_add_static_pad_template (element_class,
+      &gst_video_rate_src_template);
 }
 
 static void
@@ -608,8 +608,12 @@
   if (!videorate->prevbuf)
     goto eos_before_buffers;
 
+  outbuf = gst_buffer_ref (videorate->prevbuf);
+  if (videorate->drop_only)
+    gst_buffer_replace (&videorate->prevbuf, NULL);
+
   /* make sure we can write to the metadata */
-  outbuf = gst_buffer_make_writable (gst_buffer_ref (videorate->prevbuf));
+  outbuf = gst_buffer_make_writable (outbuf);
 
   GST_BUFFER_OFFSET (outbuf) = videorate->out;
   GST_BUFFER_OFFSET_END (outbuf) = videorate->out + 1;
@@ -716,10 +720,11 @@
         /* fill up to the end of current segment,
          * or only send out the stored buffer if there is no specific stop.
          * regardless, prevent going loopy in strange cases */
-        while (res == GST_FLOW_OK && count <= MAGIC_LIMIT &&
-            ((GST_CLOCK_TIME_IS_VALID (videorate->segment.stop) &&
-                    videorate->next_ts - videorate->segment.base
-                    < videorate->segment.stop)
+        while (res == GST_FLOW_OK && count <= MAGIC_LIMIT
+            && !videorate->drop_only
+            && ((GST_CLOCK_TIME_IS_VALID (videorate->segment.stop)
+                    && videorate->next_ts - videorate->segment.base <
+                    videorate->segment.stop)
                 || count < 1)) {
           res = gst_video_rate_flush_prev (videorate, count > 0);
           count++;
@@ -755,14 +760,15 @@
         /* fill up to the end of current segment,
          * or only send out the stored buffer if there is no specific stop.
          * regardless, prevent going loopy in strange cases */
-        while (res == GST_FLOW_OK && count <= MAGIC_LIMIT &&
-            ((videorate->next_ts - videorate->segment.base <
+        while (res == GST_FLOW_OK && count <= MAGIC_LIMIT
+            && !videorate->drop_only
+            && ((videorate->next_ts - videorate->segment.base <
                     videorate->segment.stop)
                 || count < 1)) {
           res = gst_video_rate_flush_prev (videorate, count > 0);
           count++;
         }
-      } else if (videorate->prevbuf) {
+      } else if (!videorate->drop_only && videorate->prevbuf) {
         /* Output at least one frame but if the buffer duration is valid, output
          * enough frames to use the complete buffer duration */
         if (GST_BUFFER_DURATION_IS_VALID (videorate->prevbuf)) {
@@ -1223,9 +1229,6 @@
         }
       }
 
-      /* Do not produce any dups. We can exit loop now */
-      if (videorate->drop_only)
-        break;
       /* continue while the first one was the best, if they were equal avoid
        * going into an infinite loop */
     }
diff --git a/gst/videotestsrc/gstvideotestsrc.c b/gst/videotestsrc/gstvideotestsrc.c
index a1620f9..3d5c1e4 100644
--- a/gst/videotestsrc/gstvideotestsrc.c
+++ b/gst/videotestsrc/gstvideotestsrc.c
@@ -279,8 +279,8 @@
       "Video test source", "Source/Video",
       "Creates a test video stream", "David A. Schleef <ds@schleef.org>");
 
-  gst_element_class_add_pad_template (gstelement_class,
-      gst_static_pad_template_get (&gst_video_test_src_template));
+  gst_element_class_add_static_pad_template (gstelement_class,
+      &gst_video_test_src_template);
 
   gstbasesrc_class->set_caps = gst_video_test_src_setcaps;
   gstbasesrc_class->fixate = gst_video_test_src_src_fixate;
diff --git a/po/af.gmo b/po/af.gmo
index da08440..6553704 100644
--- a/po/af.gmo
+++ b/po/af.gmo
Binary files differ
diff --git a/po/af.po b/po/af.po
index 6da8042..33e9fb7 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-06-09 11:16+0300\n"
+"POT-Creation-Date: 2016-07-06 11:39+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"
@@ -227,6 +227,9 @@
 msgid "Kate subtitle format"
 msgstr ""
 
+msgid "WebVTT subtitle format"
+msgstr ""
+
 msgid "Uncompressed video"
 msgstr ""
 
@@ -393,6 +396,13 @@
 msgid "Focal length of the lens used capturing the image, in mm"
 msgstr ""
 
+msgid "capturing 35 mm equivalent focal length"
+msgstr ""
+
+msgid ""
+"35 mm equivalent focal length of the lens used capturing the image, in mm"
+msgstr ""
+
 msgid "capturing digital zoom ratio"
 msgstr ""
 
diff --git a/po/az.gmo b/po/az.gmo
index fe84023..561e8e0 100644
--- a/po/az.gmo
+++ b/po/az.gmo
Binary files differ
diff --git a/po/az.po b/po/az.po
index c74e97b..33397aa 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-06-09 11:16+0300\n"
+"POT-Creation-Date: 2016-07-06 11:39+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"
@@ -228,6 +228,9 @@
 msgid "Kate subtitle format"
 msgstr ""
 
+msgid "WebVTT subtitle format"
+msgstr ""
+
 msgid "Uncompressed video"
 msgstr ""
 
@@ -394,6 +397,13 @@
 msgid "Focal length of the lens used capturing the image, in mm"
 msgstr ""
 
+msgid "capturing 35 mm equivalent focal length"
+msgstr ""
+
+msgid ""
+"35 mm equivalent focal length of the lens used capturing the image, in mm"
+msgstr ""
+
 msgid "capturing digital zoom ratio"
 msgstr ""
 
diff --git a/po/bg.gmo b/po/bg.gmo
index 9bcc74d..5d3f677 100644
--- a/po/bg.gmo
+++ b/po/bg.gmo
Binary files differ
diff --git a/po/bg.po b/po/bg.po
index 97decef..570edf9 100644
--- a/po/bg.po
+++ b/po/bg.po
@@ -10,7 +10,7 @@
 msgstr ""
 "Project-Id-Version: gst-plugins-base 1.7.2\n"
 "Report-Msgid-Bugs-To: http://bugzilla.gnome.org/\n"
-"POT-Creation-Date: 2016-06-09 11:16+0300\n"
+"POT-Creation-Date: 2016-07-06 11:39+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"
@@ -224,6 +224,10 @@
 msgid "Kate subtitle format"
 msgstr "Субтитри, формат Kate"
 
+#, fuzzy
+msgid "WebVTT subtitle format"
+msgstr "Субтитри, формат Kate"
+
 msgid "Uncompressed video"
 msgstr "Некомпресирано видео"
 
@@ -390,6 +394,15 @@
 msgid "Focal length of the lens used capturing the image, in mm"
 msgstr "Фокусно разстояние на обектива при заснемане в милиметри"
 
+#, fuzzy
+msgid "capturing 35 mm equivalent focal length"
+msgstr "фокусно разстояние"
+
+#, fuzzy
+msgid ""
+"35 mm equivalent focal length of the lens used capturing the image, in mm"
+msgstr "Фокусно разстояние на обектива при заснемане в милиметри"
+
 msgid "capturing digital zoom ratio"
 msgstr "цифрово увеличение"
 
diff --git a/po/ca.gmo b/po/ca.gmo
index b2f2736..73959f2 100644
--- a/po/ca.gmo
+++ b/po/ca.gmo
Binary files differ
diff --git a/po/ca.po b/po/ca.po
index edcb939..9ae864d 100644
--- a/po/ca.po
+++ b/po/ca.po
@@ -9,7 +9,7 @@
 msgstr ""
 "Project-Id-Version: gst-plugins-base 0.10.32.2\n"
 "Report-Msgid-Bugs-To: http://bugzilla.gnome.org/\n"
-"POT-Creation-Date: 2016-06-09 11:16+0300\n"
+"POT-Creation-Date: 2016-07-06 11:39+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"
@@ -232,6 +232,10 @@
 msgstr "Format de subtítols Kate"
 
 #, fuzzy
+msgid "WebVTT subtitle format"
+msgstr "Format de subtítols Kate"
+
+#, fuzzy
 msgid "Uncompressed video"
 msgstr "YUV sense comprimir"
 
@@ -400,6 +404,15 @@
 msgid "Focal length of the lens used capturing the image, in mm"
 msgstr "Longitud focal de la lent utilitzada en capturar la imatge, en mm"
 
+#, fuzzy
+msgid "capturing 35 mm equivalent focal length"
+msgstr "longitud focal de la captura"
+
+#, fuzzy
+msgid ""
+"35 mm equivalent focal length of the lens used capturing the image, in mm"
+msgstr "Longitud focal de la lent utilitzada en capturar la imatge, en mm"
+
 msgid "capturing digital zoom ratio"
 msgstr "relació de zoom digital de la captura"
 
diff --git a/po/cs.gmo b/po/cs.gmo
index d438201..40799c9 100644
--- a/po/cs.gmo
+++ b/po/cs.gmo
Binary files differ
diff --git a/po/cs.po b/po/cs.po
index a34545b..a3ea0f5 100644
--- a/po/cs.po
+++ b/po/cs.po
@@ -10,7 +10,7 @@
 msgstr ""
 "Project-Id-Version: gst-plugins-base-1.7.90\n"
 "Report-Msgid-Bugs-To: http://bugzilla.gnome.org/\n"
-"POT-Creation-Date: 2016-06-09 11:16+0300\n"
+"POT-Creation-Date: 2016-07-06 11:39+0300\n"
 "PO-Revision-Date: 2016-03-03 15:35+0100\n"
 "Last-Translator: Marek Černocký <marek@manet.cz>\n"
 "Language-Team: Czech <translation-team-cs@lists.sourceforge.net>\n"
@@ -225,6 +225,10 @@
 msgid "Kate subtitle format"
 msgstr "Formát titulků Kate"
 
+#, fuzzy
+msgid "WebVTT subtitle format"
+msgstr "Formát titulků Kate"
+
 msgid "Uncompressed video"
 msgstr "Nekomprimované video"
 
@@ -391,6 +395,15 @@
 msgid "Focal length of the lens used capturing the image, in mm"
 msgstr "Ohnisková vzdálenost čoček použitá při záchytávání obrazu, v mm"
 
+#, fuzzy
+msgid "capturing 35 mm equivalent focal length"
+msgstr "ohnisková vzdálenost při zachytávání"
+
+#, fuzzy
+msgid ""
+"35 mm equivalent focal length of the lens used capturing the image, in mm"
+msgstr "Ohnisková vzdálenost čoček použitá při záchytávání obrazu, v mm"
+
 msgid "capturing digital zoom ratio"
 msgstr "stupeň digitálního přiblížení při zachytávání"
 
diff --git a/po/da.gmo b/po/da.gmo
index 83bf4a3..bb11666 100644
--- a/po/da.gmo
+++ b/po/da.gmo
Binary files differ
diff --git a/po/da.po b/po/da.po
index 510423a..76ac7b0 100644
--- a/po/da.po
+++ b/po/da.po
@@ -33,7 +33,7 @@
 msgstr ""
 "Project-Id-Version: gst-plugins-base 1.7.90\n"
 "Report-Msgid-Bugs-To: http://bugzilla.gnome.org/\n"
-"POT-Creation-Date: 2016-06-09 11:16+0300\n"
+"POT-Creation-Date: 2016-07-06 11:39+0300\n"
 "PO-Revision-Date: 2016-03-27 16:38+0100\n"
 "Last-Translator: Joe Hansen <joedalton2@yahoo.dk>\n"
 "Language-Team: Danish <dansk@dansk-gruppen.dk>\n"
@@ -246,6 +246,10 @@
 msgid "Kate subtitle format"
 msgstr "Kate-undertekstformat"
 
+#, fuzzy
+msgid "WebVTT subtitle format"
+msgstr "Kate-undertekstformat"
+
 msgid "Uncompressed video"
 msgstr "Ukomprimeret video"
 
@@ -418,6 +422,15 @@
 msgid "Focal length of the lens used capturing the image, in mm"
 msgstr "Brændvidde på linse brugt under optagelse af billedet, i mm"
 
+#, fuzzy
+msgid "capturing 35 mm equivalent focal length"
+msgstr "brændvidde for optager"
+
+#, fuzzy
+msgid ""
+"35 mm equivalent focal length of the lens used capturing the image, in mm"
+msgstr "Brændvidde på linse brugt under optagelse af billedet, i mm"
+
 msgid "capturing digital zoom ratio"
 msgstr "digitalt zoomforhold for optager"
 
diff --git a/po/de.gmo b/po/de.gmo
index bc2e6f1..28b84a2 100644
--- a/po/de.gmo
+++ b/po/de.gmo
Binary files differ
diff --git a/po/de.po b/po/de.po
index aefc7c0..35d8e3e 100644
--- a/po/de.po
+++ b/po/de.po
@@ -9,7 +9,7 @@
 msgstr ""
 "Project-Id-Version: gst-plugins-base 1.7.2\n"
 "Report-Msgid-Bugs-To: http://bugzilla.gnome.org/\n"
-"POT-Creation-Date: 2016-06-09 11:16+0300\n"
+"POT-Creation-Date: 2016-07-06 11:39+0300\n"
 "PO-Revision-Date: 2016-02-22 23:44+0100\n"
 "Last-Translator: Christian Kirbach <christian.kirbach@gmail.com>\n"
 "Language-Team: German <translation-team-de@lists.sourceforge.net>\n"
@@ -226,6 +226,10 @@
 msgid "Kate subtitle format"
 msgstr "Untertitel-Format Kate"
 
+#, fuzzy
+msgid "WebVTT subtitle format"
+msgstr "Untertitel-Format Kate"
+
 msgid "Uncompressed video"
 msgstr "Unkomprimiertes Video"
 
@@ -393,6 +397,15 @@
 msgid "Focal length of the lens used capturing the image, in mm"
 msgstr "Die verwendete Brennweite des Objektivs bei Bildaufnahme in mm"
 
+#, fuzzy
+msgid "capturing 35 mm equivalent focal length"
+msgstr "Brennweite"
+
+#, fuzzy
+msgid ""
+"35 mm equivalent focal length of the lens used capturing the image, in mm"
+msgstr "Die verwendete Brennweite des Objektivs bei Bildaufnahme in mm"
+
 msgid "capturing digital zoom ratio"
 msgstr "Digitale Vergrößerung"
 
diff --git a/po/el.gmo b/po/el.gmo
index b614d8d..9de11f0 100644
--- a/po/el.gmo
+++ b/po/el.gmo
Binary files differ
diff --git a/po/el.po b/po/el.po
index 4a9305a..f8fbbec 100644
--- a/po/el.po
+++ b/po/el.po
@@ -9,7 +9,7 @@
 msgstr ""
 "Project-Id-Version: gst-plugins-base 0.10.32.2\n"
 "Report-Msgid-Bugs-To: http://bugzilla.gnome.org/\n"
-"POT-Creation-Date: 2016-06-09 11:16+0300\n"
+"POT-Creation-Date: 2016-07-06 11:39+0300\n"
 "PO-Revision-Date: 2012-05-05 19:13+0100\n"
 "Last-Translator: Savvas Radevic <vicedar@gmail.com>\n"
 "Language-Team: Greek <team@lists.gnome.gr>\n"
@@ -230,6 +230,10 @@
 msgstr "Μορφή υποτίτλων Kate"
 
 #, fuzzy
+msgid "WebVTT subtitle format"
+msgstr "Μορφή υποτίτλων Kate"
+
+#, fuzzy
 msgid "Uncompressed video"
 msgstr "Ασυμπίεστο YUV"
 
@@ -402,6 +406,17 @@
 "Το εστιακό μήκος του φακού που χρησιμοποιήθηκε κατά τη λήψη της εικόνας, σε "
 "mm"
 
+#, fuzzy
+msgid "capturing 35 mm equivalent focal length"
+msgstr "εστιακό μήκος λήψης"
+
+#, fuzzy
+msgid ""
+"35 mm equivalent focal length of the lens used capturing the image, in mm"
+msgstr ""
+"Το εστιακό μήκος του φακού που χρησιμοποιήθηκε κατά τη λήψη της εικόνας, σε "
+"mm"
+
 msgid "capturing digital zoom ratio"
 msgstr "λόγος ψηφιακού ζουμ λήψης"
 
diff --git a/po/en_GB.gmo b/po/en_GB.gmo
index 42ea0e2..a23aee5 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 0678261..1410d7c 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-06-09 11:16+0300\n"
+"POT-Creation-Date: 2016-07-06 11:39+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"
@@ -226,6 +226,9 @@
 msgid "Kate subtitle format"
 msgstr ""
 
+msgid "WebVTT subtitle format"
+msgstr ""
+
 msgid "Uncompressed video"
 msgstr ""
 
@@ -392,6 +395,13 @@
 msgid "Focal length of the lens used capturing the image, in mm"
 msgstr ""
 
+msgid "capturing 35 mm equivalent focal length"
+msgstr ""
+
+msgid ""
+"35 mm equivalent focal length of the lens used capturing the image, in mm"
+msgstr ""
+
 msgid "capturing digital zoom ratio"
 msgstr ""
 
diff --git a/po/eo.gmo b/po/eo.gmo
index 68ffb96..712fef3 100644
--- a/po/eo.gmo
+++ b/po/eo.gmo
Binary files differ
diff --git a/po/eo.po b/po/eo.po
index e46abf8..5b6f7f4 100644
--- a/po/eo.po
+++ b/po/eo.po
@@ -7,7 +7,7 @@
 msgstr ""
 "Project-Id-Version: gst-plugins-base 0.10.32.2\n"
 "Report-Msgid-Bugs-To: http://bugzilla.gnome.org/\n"
-"POT-Creation-Date: 2016-06-09 11:16+0300\n"
+"POT-Creation-Date: 2016-07-06 11:39+0300\n"
 "PO-Revision-Date: 2011-06-04 21:11+0100\n"
 "Last-Translator: Kristjan SCHMIDT <kristjan.schmidt@googlemail.com>\n"
 "Language-Team: Esperanto <translation-team-eo@lists.sourceforge.net>\n"
@@ -222,6 +222,9 @@
 msgid "Kate subtitle format"
 msgstr ""
 
+msgid "WebVTT subtitle format"
+msgstr ""
+
 msgid "Uncompressed video"
 msgstr ""
 
@@ -388,6 +391,13 @@
 msgid "Focal length of the lens used capturing the image, in mm"
 msgstr ""
 
+msgid "capturing 35 mm equivalent focal length"
+msgstr ""
+
+msgid ""
+"35 mm equivalent focal length of the lens used capturing the image, in mm"
+msgstr ""
+
 msgid "capturing digital zoom ratio"
 msgstr ""
 
diff --git a/po/es.gmo b/po/es.gmo
index 0c573c1..12b8e9e 100644
--- a/po/es.gmo
+++ b/po/es.gmo
Binary files differ
diff --git a/po/es.po b/po/es.po
index b7085f1..1956a76 100644
--- a/po/es.po
+++ b/po/es.po
@@ -7,7 +7,7 @@
 msgstr ""
 "Project-Id-Version: gst-plugins-base 0.10.32.2\n"
 "Report-Msgid-Bugs-To: http://bugzilla.gnome.org/\n"
-"POT-Creation-Date: 2016-06-09 11:16+0300\n"
+"POT-Creation-Date: 2016-07-06 11:39+0300\n"
 "PO-Revision-Date: 2011-10-02 15:46+0200\n"
 "Last-Translator: Jorge González González <aloriel@gmail.com>\n"
 "Language-Team: Spanish <es@li.org>\n"
@@ -227,6 +227,10 @@
 msgstr "Formato de subtítulos kate"
 
 #, fuzzy
+msgid "WebVTT subtitle format"
+msgstr "Formato de subtítulos kate"
+
+#, fuzzy
 msgid "Uncompressed video"
 msgstr "YUV sin comprimir"
 
@@ -395,6 +399,15 @@
 msgid "Focal length of the lens used capturing the image, in mm"
 msgstr "Longitud focal de la lente usada al tomar la imagen, en mm"
 
+#, fuzzy
+msgid "capturing 35 mm equivalent focal length"
+msgstr "longitud focal de la toma"
+
+#, fuzzy
+msgid ""
+"35 mm equivalent focal length of the lens used capturing the image, in mm"
+msgstr "Longitud focal de la lente usada al tomar la imagen, en mm"
+
 msgid "capturing digital zoom ratio"
 msgstr "tasa de ampliación digital de la toma"
 
diff --git a/po/eu.gmo b/po/eu.gmo
index 78ed85b..22d2cea 100644
--- a/po/eu.gmo
+++ b/po/eu.gmo
Binary files differ
diff --git a/po/eu.po b/po/eu.po
index 7394d09..25e9809 100644
--- a/po/eu.po
+++ b/po/eu.po
@@ -8,7 +8,7 @@
 msgstr ""
 "Project-Id-Version: gst-plugins-base-0.10.26.2\n"
 "Report-Msgid-Bugs-To: http://bugzilla.gnome.org/\n"
-"POT-Creation-Date: 2016-06-09 11:16+0300\n"
+"POT-Creation-Date: 2016-07-06 11:39+0300\n"
 "PO-Revision-Date: 2010-03-25 12:32+0100\n"
 "Last-Translator: Mikel Olasagasti Uranga <hey_neken@mundurat.net>\n"
 "Language-Team: Basque <translation-team-eu@lists.sourceforge.net>\n"
@@ -230,6 +230,10 @@
 msgstr "'Kate' azpititulu-formatua"
 
 #, fuzzy
+msgid "WebVTT subtitle format"
+msgstr "'Kate' azpititulu-formatua"
+
+#, fuzzy
 msgid "Uncompressed video"
 msgstr "Konprimitu gabeko YUV"
 
@@ -398,6 +402,13 @@
 msgid "Focal length of the lens used capturing the image, in mm"
 msgstr ""
 
+msgid "capturing 35 mm equivalent focal length"
+msgstr ""
+
+msgid ""
+"35 mm equivalent focal length of the lens used capturing the image, in mm"
+msgstr ""
+
 msgid "capturing digital zoom ratio"
 msgstr ""
 
diff --git a/po/fi.gmo b/po/fi.gmo
index 9bcadd8..d2bbe3d 100644
--- a/po/fi.gmo
+++ b/po/fi.gmo
Binary files differ
diff --git a/po/fi.po b/po/fi.po
index d84432a..76376e6 100644
--- a/po/fi.po
+++ b/po/fi.po
@@ -12,7 +12,7 @@
 msgstr ""
 "Project-Id-Version: gst-plugins-base 0.10.30.3\n"
 "Report-Msgid-Bugs-To: http://bugzilla.gnome.org/\n"
-"POT-Creation-Date: 2016-06-09 11:16+0300\n"
+"POT-Creation-Date: 2016-07-06 11:39+0300\n"
 "PO-Revision-Date: 2010-12-31 23:21+0200\n"
 "Last-Translator: Tommi Vainikainen <Tommi.Vainikainen@iki.fi>\n"
 "Language-Team: Finnish <translation-team-fi@lists.sourceforge.net>\n"
@@ -230,6 +230,10 @@
 msgstr "Kate-tekstitysmuoto"
 
 #, fuzzy
+msgid "WebVTT subtitle format"
+msgstr "Kate-tekstitysmuoto"
+
+#, fuzzy
 msgid "Uncompressed video"
 msgstr "Pakkaamaton YUV"
 
@@ -398,6 +402,15 @@
 msgid "Focal length of the lens used capturing the image, in mm"
 msgstr "Linssin polttoväli kuvattaessa, millimetriä"
 
+#, fuzzy
+msgid "capturing 35 mm equivalent focal length"
+msgstr "kuvaamisen polttoväli"
+
+#, fuzzy
+msgid ""
+"35 mm equivalent focal length of the lens used capturing the image, in mm"
+msgstr "Linssin polttoväli kuvattaessa, millimetriä"
+
 msgid "capturing digital zoom ratio"
 msgstr "kuvaamisen digitaalinen zoomaus"
 
diff --git a/po/fr.gmo b/po/fr.gmo
index 9197a89..4efd72c 100644
--- a/po/fr.gmo
+++ b/po/fr.gmo
Binary files differ
diff --git a/po/fr.po b/po/fr.po
index d58ccdf..3d11808 100644
--- a/po/fr.po
+++ b/po/fr.po
@@ -10,7 +10,7 @@
 msgstr ""
 "Project-Id-Version: gst-plugins-base 1.7.90\n"
 "Report-Msgid-Bugs-To: http://bugzilla.gnome.org/\n"
-"POT-Creation-Date: 2016-06-09 11:16+0300\n"
+"POT-Creation-Date: 2016-07-06 11:39+0300\n"
 "PO-Revision-Date: 2016-03-04 13:08+0100\n"
 "Last-Translator: Stéphane Aulery <lkppo@free.fr>\n"
 "Language-Team: French <traduc@traduc.org>\n"
@@ -234,6 +234,10 @@
 msgid "Kate subtitle format"
 msgstr "Format de sous-titres Kate"
 
+#, fuzzy
+msgid "WebVTT subtitle format"
+msgstr "Format de sous-titres Kate"
+
 msgid "Uncompressed video"
 msgstr "Video non compressée"
 
@@ -402,6 +406,16 @@
 msgstr ""
 "Distance focale de l’optique utilisée pour la capture de l’image (en mm)"
 
+#, fuzzy
+msgid "capturing 35 mm equivalent focal length"
+msgstr "distance focale de la capture"
+
+#, fuzzy
+msgid ""
+"35 mm equivalent focal length of the lens used capturing the image, in mm"
+msgstr ""
+"Distance focale de l’optique utilisée pour la capture de l’image (en mm)"
+
 msgid "capturing digital zoom ratio"
 msgstr "valeur du zoom numérique de la capture"
 
diff --git a/po/gl.gmo b/po/gl.gmo
index b80537d..3fc23c1 100644
--- a/po/gl.gmo
+++ b/po/gl.gmo
Binary files differ
diff --git a/po/gl.po b/po/gl.po
index 2a458a2..3ea5704 100644
--- a/po/gl.po
+++ b/po/gl.po
@@ -8,7 +8,7 @@
 msgstr ""
 "Project-Id-Version: gst-plugins-base 1.0.3\n"
 "Report-Msgid-Bugs-To: http://bugzilla.gnome.org/\n"
-"POT-Creation-Date: 2016-06-09 11:16+0300\n"
+"POT-Creation-Date: 2016-07-06 11:39+0300\n"
 "PO-Revision-Date: 2012-12-15 03:40+0200\n"
 "Last-Translator: Fran Dieguez <frandieguez@ubuntu.com>\n"
 "Language-Team: Galician <proxecto@trasno.net>\n"
@@ -228,6 +228,10 @@
 msgid "Kate subtitle format"
 msgstr "Formato de subtítulos Kate"
 
+#, fuzzy
+msgid "WebVTT subtitle format"
+msgstr "Formato de subtítulos Kate"
+
 msgid "Uncompressed video"
 msgstr "Vídeo sen comprimir"
 
@@ -394,6 +398,15 @@
 msgid "Focal length of the lens used capturing the image, in mm"
 msgstr "Lonxitude focal da lente usada ao tomar a imaxe, en mm"
 
+#, fuzzy
+msgid "capturing 35 mm equivalent focal length"
+msgstr "lonxitude focal da toma"
+
+#, fuzzy
+msgid ""
+"35 mm equivalent focal length of the lens used capturing the image, in mm"
+msgstr "Lonxitude focal da lente usada ao tomar a imaxe, en mm"
+
 msgid "capturing digital zoom ratio"
 msgstr "taxa de ampliación dixital da toma"
 
diff --git a/po/gst-plugins-base-1.0.pot b/po/gst-plugins-base-1.0.pot
index ee05c66..96db078 100644
--- a/po/gst-plugins-base-1.0.pot
+++ b/po/gst-plugins-base-1.0.pot
@@ -5,9 +5,9 @@
 #, fuzzy
 msgid ""
 msgstr ""
-"Project-Id-Version: gst-plugins-base 1.8.2\n"
+"Project-Id-Version: gst-plugins-base 1.9.1\n"
 "Report-Msgid-Bugs-To: http://bugzilla.gnome.org/\n"
-"POT-Creation-Date: 2016-06-09 11:16+0300\n"
+"POT-Creation-Date: 2016-07-06 11:39+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"
@@ -39,7 +39,7 @@
 msgid "Could not open audio device for playback."
 msgstr ""
 
-#: ext/alsa/gstalsasink.c:1082
+#: ext/alsa/gstalsasink.c:1074
 msgid "Error outputting to audio device. The device has been disconnected."
 msgstr ""
 
@@ -66,7 +66,7 @@
 msgid "Could not open audio device for recording."
 msgstr ""
 
-#: ext/alsa/gstalsasrc.c:996
+#: ext/alsa/gstalsasrc.c:988
 msgid "Error recording from audio device. The device has been disconnected."
 msgstr ""
 
@@ -82,123 +82,123 @@
 msgid "Could not read CD."
 msgstr ""
 
-#: ext/ogg/gstoggdemux.c:4859
+#: ext/ogg/gstoggdemux.c:4860
 msgid "Internal data stream error."
 msgstr ""
 
-#: gst/encoding/gstencodebin.c:1591 gst/playback/gstplaybin2.c:3363
-#: gst/playback/gstplaysink.c:1483 gst/playback/gstplaysink.c:1496
-#: gst/playback/gstplaysink.c:1833 gst/playback/gstplaysink.c:1865
-#: gst/playback/gstplaysink.c:2445 gst/playback/gstplaysink.c:2494
-#: gst/playback/gstplaysink.c:2509 gst/playback/gstplaysink.c:2534
-#: gst/playback/gstplaysink.c:2566 gst/playback/gstplaysink.c:2714
-#: gst/playback/gstplaysink.c:2745 gst/playback/gstplaysink.c:3123
-#: gst/playback/gstplaysink.c:3132 gst/playback/gstplaysink.c:3141
-#: gst/playback/gstplaysink.c:3150 gst/playback/gstplaysink.c:3553
-#: gst/playback/gstplaysink.c:4427 gst/playback/gstplaysinkconvertbin.c:97
-#: gst/playback/gstplaysinkconvertbin.c:117 gst/playback/gsturidecodebin.c:1490
+#: gst/encoding/gstencodebin.c:1590 gst/playback/gstplaybin2.c:3401
+#: gst/playback/gstplaysink.c:1480 gst/playback/gstplaysink.c:1493
+#: gst/playback/gstplaysink.c:1830 gst/playback/gstplaysink.c:1862
+#: gst/playback/gstplaysink.c:2442 gst/playback/gstplaysink.c:2491
+#: gst/playback/gstplaysink.c:2506 gst/playback/gstplaysink.c:2531
+#: gst/playback/gstplaysink.c:2563 gst/playback/gstplaysink.c:2711
+#: gst/playback/gstplaysink.c:2742 gst/playback/gstplaysink.c:3120
+#: gst/playback/gstplaysink.c:3129 gst/playback/gstplaysink.c:3138
+#: gst/playback/gstplaysink.c:3147 gst/playback/gstplaysink.c:3550
+#: gst/playback/gstplaysink.c:4424 gst/playback/gstplaysinkconvertbin.c:97
+#: gst/playback/gstplaysinkconvertbin.c:117 gst/playback/gsturidecodebin.c:1489
 #, c-format
 msgid "Missing element '%s' - check your GStreamer installation."
 msgstr ""
 
-#: gst/playback/gstdecodebin2.c:1883
+#: gst/playback/gstdecodebin2.c:1893
 msgid "Could not determine type of stream"
 msgstr ""
 
-#: gst/playback/gstdecodebin2.c:2839
+#: gst/playback/gstdecodebin2.c:2867
 msgid "This appears to be a text file"
 msgstr ""
 
-#: gst/playback/gstplaybin2.c:5408
+#: gst/playback/gstplaybin2.c:5446
 msgid "Could not create \"uridecodebin\" element."
 msgstr ""
 
-#: gst/playback/gstplaysink.c:1964
+#: gst/playback/gstplaysink.c:1961
 #, c-format
 msgid "Both autovideosink and %s elements are missing."
 msgstr ""
 
-#: gst/playback/gstplaysink.c:1968
+#: gst/playback/gstplaysink.c:1965
 msgid "The autovideosink element is missing."
 msgstr ""
 
-#: gst/playback/gstplaysink.c:1973
+#: gst/playback/gstplaysink.c:1970
 #, c-format
 msgid "Configured videosink %s is not working."
 msgstr ""
 
-#: gst/playback/gstplaysink.c:1977
+#: gst/playback/gstplaysink.c:1974
 #, c-format
 msgid "Both autovideosink and %s elements are not working."
 msgstr ""
 
-#: gst/playback/gstplaysink.c:1981
+#: gst/playback/gstplaysink.c:1978
 msgid "The autovideosink element is not working."
 msgstr ""
 
-#: gst/playback/gstplaysink.c:2482
+#: gst/playback/gstplaysink.c:2479
 msgid "Custom text sink element is not usable."
 msgstr ""
 
-#: gst/playback/gstplaysink.c:2860
+#: gst/playback/gstplaysink.c:2857
 msgid "No volume control found"
 msgstr ""
 
-#: gst/playback/gstplaysink.c:2890
+#: gst/playback/gstplaysink.c:2887
 #, c-format
 msgid "Both autoaudiosink and %s elements are missing."
 msgstr ""
 
-#: gst/playback/gstplaysink.c:2894
+#: gst/playback/gstplaysink.c:2891
 msgid "The autoaudiosink element is missing."
 msgstr ""
 
-#: gst/playback/gstplaysink.c:2899
+#: gst/playback/gstplaysink.c:2896
 #, c-format
 msgid "Configured audiosink %s is not working."
 msgstr ""
 
-#: gst/playback/gstplaysink.c:2903
+#: gst/playback/gstplaysink.c:2900
 #, c-format
 msgid "Both autoaudiosink and %s elements are not working."
 msgstr ""
 
-#: gst/playback/gstplaysink.c:2907
+#: gst/playback/gstplaysink.c:2904
 msgid "The autoaudiosink element is not working."
 msgstr ""
 
-#: gst/playback/gstplaysink.c:3226 gst/playback/gstplaysink.c:3231
+#: gst/playback/gstplaysink.c:3223 gst/playback/gstplaysink.c:3228
 msgid "Can't play a text file without video or visualizations."
 msgstr ""
 
-#: gst/playback/gsturidecodebin.c:939
+#: gst/playback/gsturidecodebin.c:938
 #, c-format
 msgid "No decoder available for type '%s'."
 msgstr ""
 
-#: gst/playback/gsturidecodebin.c:1396
+#: gst/playback/gsturidecodebin.c:1395
 msgid "No URI specified to play from."
 msgstr ""
 
-#: gst/playback/gsturidecodebin.c:1402
+#: gst/playback/gsturidecodebin.c:1401
 #, c-format
 msgid "Invalid URI \"%s\"."
 msgstr ""
 
-#: gst/playback/gsturidecodebin.c:1409
+#: gst/playback/gsturidecodebin.c:1408
 msgid "This stream type cannot be played yet."
 msgstr ""
 
-#: gst/playback/gsturidecodebin.c:1427
+#: gst/playback/gsturidecodebin.c:1426
 #, c-format
 msgid "No URI handler implemented for \"%s\"."
 msgstr ""
 
-#: gst/playback/gsturidecodebin.c:2300
+#: gst/playback/gsturidecodebin.c:2299
 msgid "Source element is invalid."
 msgstr ""
 
-#: gst/tcp/gsttcpclientsink.c:215
+#: gst/tcp/gsttcpclientsink.c:214
 #, c-format
 msgid "Error while sending data to \"%s:%d\"."
 msgstr ""
@@ -289,127 +289,131 @@
 msgid "Kate subtitle format"
 msgstr ""
 
-#: gst-libs/gst/pbutils/descriptions.c:452
-#: gst-libs/gst/pbutils/descriptions.c:455
-#: gst-libs/gst/pbutils/descriptions.c:505
+#: gst-libs/gst/pbutils/descriptions.c:290
+msgid "WebVTT subtitle format"
+msgstr ""
+
+#: gst-libs/gst/pbutils/descriptions.c:453
+#: gst-libs/gst/pbutils/descriptions.c:456
+#: gst-libs/gst/pbutils/descriptions.c:506
 msgid "Uncompressed video"
 msgstr ""
 
-#: gst-libs/gst/pbutils/descriptions.c:460
+#: gst-libs/gst/pbutils/descriptions.c:461
 msgid "Uncompressed gray"
 msgstr ""
 
-#: gst-libs/gst/pbutils/descriptions.c:483
+#: gst-libs/gst/pbutils/descriptions.c:484
 #, c-format
 msgid "Uncompressed packed YUV %s"
 msgstr ""
 
-#: gst-libs/gst/pbutils/descriptions.c:485
+#: gst-libs/gst/pbutils/descriptions.c:486
 #, c-format
 msgid "Uncompressed semi-planar YUV %s"
 msgstr ""
 
-#: gst-libs/gst/pbutils/descriptions.c:487
+#: gst-libs/gst/pbutils/descriptions.c:488
 #, c-format
 msgid "Uncompressed planar YUV %s"
 msgstr ""
 
-#: gst-libs/gst/pbutils/descriptions.c:498
+#: gst-libs/gst/pbutils/descriptions.c:499
 #, c-format
 msgid "Uncompressed palettized %d-bit %s"
 msgstr ""
 
-#: gst-libs/gst/pbutils/descriptions.c:501
+#: gst-libs/gst/pbutils/descriptions.c:502
 #, c-format
 msgid "Uncompressed %d-bit %s"
 msgstr ""
 
-#: gst-libs/gst/pbutils/descriptions.c:583
+#: gst-libs/gst/pbutils/descriptions.c:584
 #, c-format
 msgid "DivX MPEG-4 Version %d"
 msgstr ""
 
-#: gst-libs/gst/pbutils/descriptions.c:830
+#: gst-libs/gst/pbutils/descriptions.c:831
 msgid "Uncompressed audio"
 msgstr ""
 
-#: gst-libs/gst/pbutils/descriptions.c:836
+#: gst-libs/gst/pbutils/descriptions.c:837
 #, c-format
 msgid "Raw %d-bit %s audio"
 msgstr ""
 
-#: gst-libs/gst/pbutils/descriptions.c:936
+#: gst-libs/gst/pbutils/descriptions.c:937
 msgid "Audio CD source"
 msgstr ""
 
-#: gst-libs/gst/pbutils/descriptions.c:939
+#: gst-libs/gst/pbutils/descriptions.c:940
 msgid "DVD source"
 msgstr ""
 
-#: gst-libs/gst/pbutils/descriptions.c:942
+#: gst-libs/gst/pbutils/descriptions.c:943
 msgid "Real Time Streaming Protocol (RTSP) source"
 msgstr ""
 
-#: gst-libs/gst/pbutils/descriptions.c:946
+#: gst-libs/gst/pbutils/descriptions.c:947
 msgid "Microsoft Media Server (MMS) protocol source"
 msgstr ""
 
-#: gst-libs/gst/pbutils/descriptions.c:954
+#: gst-libs/gst/pbutils/descriptions.c:955
 #, c-format
 msgid "%s protocol source"
 msgstr ""
 
-#: gst-libs/gst/pbutils/descriptions.c:1026
+#: gst-libs/gst/pbutils/descriptions.c:1027
 #, c-format
 msgid "%s video RTP depayloader"
 msgstr ""
 
-#: gst-libs/gst/pbutils/descriptions.c:1028
+#: gst-libs/gst/pbutils/descriptions.c:1029
 #, c-format
 msgid "%s audio RTP depayloader"
 msgstr ""
 
-#: gst-libs/gst/pbutils/descriptions.c:1030
+#: gst-libs/gst/pbutils/descriptions.c:1031
 #, c-format
 msgid "%s RTP depayloader"
 msgstr ""
 
-#: gst-libs/gst/pbutils/descriptions.c:1037
+#: gst-libs/gst/pbutils/descriptions.c:1038
 #, c-format
 msgid "%s demuxer"
 msgstr ""
 
-#: gst-libs/gst/pbutils/descriptions.c:1039
+#: gst-libs/gst/pbutils/descriptions.c:1040
 #, c-format
 msgid "%s decoder"
 msgstr ""
 
-#: gst-libs/gst/pbutils/descriptions.c:1077
+#: gst-libs/gst/pbutils/descriptions.c:1078
 #, c-format
 msgid "%s video RTP payloader"
 msgstr ""
 
-#: gst-libs/gst/pbutils/descriptions.c:1079
+#: gst-libs/gst/pbutils/descriptions.c:1080
 #, c-format
 msgid "%s audio RTP payloader"
 msgstr ""
 
-#: gst-libs/gst/pbutils/descriptions.c:1081
+#: gst-libs/gst/pbutils/descriptions.c:1082
 #, c-format
 msgid "%s RTP payloader"
 msgstr ""
 
-#: gst-libs/gst/pbutils/descriptions.c:1088
+#: gst-libs/gst/pbutils/descriptions.c:1089
 #, c-format
 msgid "%s muxer"
 msgstr ""
 
-#: gst-libs/gst/pbutils/descriptions.c:1090
+#: gst-libs/gst/pbutils/descriptions.c:1091
 #, c-format
 msgid "%s encoder"
 msgstr ""
 
-#: gst-libs/gst/pbutils/descriptions.c:1122
+#: gst-libs/gst/pbutils/descriptions.c:1123
 #, c-format
 msgid "GStreamer element %s"
 msgstr ""
@@ -438,7 +442,7 @@
 msgid "Plugin or element of unknown type"
 msgstr ""
 
-#: gst-libs/gst/tag/gsttagdemux.c:1259
+#: gst-libs/gst/tag/gsttagdemux.c:1271
 msgid "Failed to read tag: not enough data"
 msgstr ""
 
@@ -506,156 +510,165 @@
 msgid "Focal length of the lens used capturing the image, in mm"
 msgstr ""
 
-#: gst-libs/gst/tag/tags.c:122
+#: gst-libs/gst/tag/tags.c:123
+msgid "capturing 35 mm equivalent focal length"
+msgstr ""
+
+#: gst-libs/gst/tag/tags.c:124
+msgid ""
+"35 mm equivalent focal length of the lens used capturing the image, in mm"
+msgstr ""
+
+#: gst-libs/gst/tag/tags.c:128
 msgid "capturing digital zoom ratio"
 msgstr ""
 
-#: gst-libs/gst/tag/tags.c:123
+#: gst-libs/gst/tag/tags.c:129
 msgid "Digital zoom ratio used when capturing an image"
 msgstr ""
 
-#: gst-libs/gst/tag/tags.c:126
+#: gst-libs/gst/tag/tags.c:132
 msgid "capturing iso speed"
 msgstr ""
 
-#: gst-libs/gst/tag/tags.c:127
+#: gst-libs/gst/tag/tags.c:133
 msgid "The ISO speed used when capturing an image"
 msgstr ""
 
-#: gst-libs/gst/tag/tags.c:130
+#: gst-libs/gst/tag/tags.c:136
 msgid "capturing exposure program"
 msgstr ""
 
-#: gst-libs/gst/tag/tags.c:131
+#: gst-libs/gst/tag/tags.c:137
 msgid "The exposure program used when capturing an image"
 msgstr ""
 
-#: gst-libs/gst/tag/tags.c:134
+#: gst-libs/gst/tag/tags.c:140
 msgid "capturing exposure mode"
 msgstr ""
 
-#: gst-libs/gst/tag/tags.c:135
+#: gst-libs/gst/tag/tags.c:141
 msgid "The exposure mode used when capturing an image"
 msgstr ""
 
-#: gst-libs/gst/tag/tags.c:138
+#: gst-libs/gst/tag/tags.c:144
 msgid "capturing exposure compensation"
 msgstr ""
 
-#: gst-libs/gst/tag/tags.c:139
+#: gst-libs/gst/tag/tags.c:145
 msgid "The exposure compensation used when capturing an image"
 msgstr ""
 
-#: gst-libs/gst/tag/tags.c:142
+#: gst-libs/gst/tag/tags.c:148
 msgid "capturing scene capture type"
 msgstr ""
 
-#: gst-libs/gst/tag/tags.c:143
+#: gst-libs/gst/tag/tags.c:149
 msgid "The scene capture mode used when capturing an image"
 msgstr ""
 
-#: gst-libs/gst/tag/tags.c:146
+#: gst-libs/gst/tag/tags.c:152
 msgid "capturing gain adjustment"
 msgstr ""
 
-#: gst-libs/gst/tag/tags.c:147
+#: gst-libs/gst/tag/tags.c:153
 msgid "The overall gain adjustment applied on an image"
 msgstr ""
 
-#: gst-libs/gst/tag/tags.c:150
+#: gst-libs/gst/tag/tags.c:156
 msgid "capturing white balance"
 msgstr ""
 
-#: gst-libs/gst/tag/tags.c:151
+#: gst-libs/gst/tag/tags.c:157
 msgid "The white balance mode set when capturing an image"
 msgstr ""
 
-#: gst-libs/gst/tag/tags.c:154
+#: gst-libs/gst/tag/tags.c:160
 msgid "capturing contrast"
 msgstr ""
 
-#: gst-libs/gst/tag/tags.c:155
+#: gst-libs/gst/tag/tags.c:161
 msgid "The direction of contrast processing applied when capturing an image"
 msgstr ""
 
-#: gst-libs/gst/tag/tags.c:159
+#: gst-libs/gst/tag/tags.c:165
 msgid "capturing saturation"
 msgstr ""
 
-#: gst-libs/gst/tag/tags.c:160
+#: gst-libs/gst/tag/tags.c:166
 msgid "The direction of saturation processing applied when capturing an image"
 msgstr ""
 
-#: gst-libs/gst/tag/tags.c:164
+#: gst-libs/gst/tag/tags.c:170
 msgid "capturing sharpness"
 msgstr ""
 
-#: gst-libs/gst/tag/tags.c:165
+#: gst-libs/gst/tag/tags.c:171
 msgid "The direction of sharpness processing applied when capturing an image"
 msgstr ""
 
-#: gst-libs/gst/tag/tags.c:169
+#: gst-libs/gst/tag/tags.c:175
 msgid "capturing flash fired"
 msgstr ""
 
-#: gst-libs/gst/tag/tags.c:170
+#: gst-libs/gst/tag/tags.c:176
 msgid "If the flash fired while capturing an image"
 msgstr ""
 
-#: gst-libs/gst/tag/tags.c:173
+#: gst-libs/gst/tag/tags.c:179
 msgid "capturing flash mode"
 msgstr ""
 
-#: gst-libs/gst/tag/tags.c:174
+#: gst-libs/gst/tag/tags.c:180
 msgid "The selected flash mode while capturing an image"
 msgstr ""
 
-#: gst-libs/gst/tag/tags.c:177
+#: gst-libs/gst/tag/tags.c:183
 msgid "capturing metering mode"
 msgstr ""
 
-#: gst-libs/gst/tag/tags.c:178
+#: gst-libs/gst/tag/tags.c:184
 msgid ""
 "The metering mode used while determining exposure for capturing an image"
 msgstr ""
 
-#: gst-libs/gst/tag/tags.c:182
+#: gst-libs/gst/tag/tags.c:188
 msgid "capturing source"
 msgstr ""
 
-#: gst-libs/gst/tag/tags.c:183
+#: gst-libs/gst/tag/tags.c:189
 msgid "The source or type of device used for the capture"
 msgstr ""
 
-#: gst-libs/gst/tag/tags.c:186
+#: gst-libs/gst/tag/tags.c:192
 msgid "image horizontal ppi"
 msgstr ""
 
-#: gst-libs/gst/tag/tags.c:187
+#: gst-libs/gst/tag/tags.c:193
 msgid "Media (image/video) intended horizontal pixel density in ppi"
 msgstr ""
 
-#: gst-libs/gst/tag/tags.c:190
+#: gst-libs/gst/tag/tags.c:196
 msgid "image vertical ppi"
 msgstr ""
 
-#: gst-libs/gst/tag/tags.c:191
+#: gst-libs/gst/tag/tags.c:197
 msgid "Media (image/video) intended vertical pixel density in ppi"
 msgstr ""
 
-#: gst-libs/gst/tag/tags.c:194
+#: gst-libs/gst/tag/tags.c:200
 msgid "ID3v2 frame"
 msgstr ""
 
-#: gst-libs/gst/tag/tags.c:194
+#: gst-libs/gst/tag/tags.c:200
 msgid "unparsed id3v2 tag frame"
 msgstr ""
 
-#: gst-libs/gst/tag/tags.c:198
+#: gst-libs/gst/tag/tags.c:204
 msgid "musical-key"
 msgstr ""
 
-#: gst-libs/gst/tag/tags.c:198
+#: gst-libs/gst/tag/tags.c:204
 msgid "Initial key in which the sound starts"
 msgstr ""
 
diff --git a/po/hr.gmo b/po/hr.gmo
index 54ab655..c4b4f7c 100644
--- a/po/hr.gmo
+++ b/po/hr.gmo
Binary files differ
diff --git a/po/hr.po b/po/hr.po
index f794f71..2009998 100644
--- a/po/hr.po
+++ b/po/hr.po
@@ -7,7 +7,7 @@
 msgstr ""
 "Project-Id-Version: gst-plugins-base 1.7.90\n"
 "Report-Msgid-Bugs-To: http://bugzilla.gnome.org/\n"
-"POT-Creation-Date: 2016-06-09 11:16+0300\n"
+"POT-Creation-Date: 2016-07-06 11:39+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"
@@ -225,6 +225,10 @@
 msgid "Kate subtitle format"
 msgstr "Format naslova Kate"
 
+#, fuzzy
+msgid "WebVTT subtitle format"
+msgstr "Format naslova Kate"
+
 msgid "Uncompressed video"
 msgstr "Nesažeti video"
 
@@ -394,6 +398,15 @@
 msgid "Focal length of the lens used capturing the image, in mm"
 msgstr "Primijenjena žarišna duljina leće pri snimanju slike u mm"
 
+#, fuzzy
+msgid "capturing 35 mm equivalent focal length"
+msgstr "žarišna duljina"
+
+#, fuzzy
+msgid ""
+"35 mm equivalent focal length of the lens used capturing the image, in mm"
+msgstr "Primijenjena žarišna duljina leće pri snimanju slike u mm"
+
 msgid "capturing digital zoom ratio"
 msgstr "digitalno povećanje"
 
diff --git a/po/hu.gmo b/po/hu.gmo
index 45f69d5..513a646 100644
--- a/po/hu.gmo
+++ b/po/hu.gmo
Binary files differ
diff --git a/po/hu.po b/po/hu.po
index 57fc693..359e259 100644
--- a/po/hu.po
+++ b/po/hu.po
@@ -9,7 +9,7 @@
 msgstr ""
 "Project-Id-Version: gst-plugins-base 1.7.90\n"
 "Report-Msgid-Bugs-To: http://bugzilla.gnome.org/\n"
-"POT-Creation-Date: 2016-06-09 11:16+0300\n"
+"POT-Creation-Date: 2016-07-06 11:39+0300\n"
 "PO-Revision-Date: 2016-03-14 19:14+0100\n"
 "Last-Translator: Gabor Kelemen <kelemeng@gnome.hu>\n"
 "Language-Team: Hungarian <translation-team-hu@lists.sourceforge.net>\n"
@@ -225,6 +225,10 @@
 msgid "Kate subtitle format"
 msgstr "Kate feliratformátum"
 
+#, fuzzy
+msgid "WebVTT subtitle format"
+msgstr "Kate feliratformátum"
+
 msgid "Uncompressed video"
 msgstr "Tömörítetlen videó"
 
@@ -391,6 +395,15 @@
 msgid "Focal length of the lens used capturing the image, in mm"
 msgstr "A kép felvételéhez használt lencse fókusztávolsága mm-ben"
 
+#, fuzzy
+msgid "capturing 35 mm equivalent focal length"
+msgstr "felvétel fókusztávolsága"
+
+#, fuzzy
+msgid ""
+"35 mm equivalent focal length of the lens used capturing the image, in mm"
+msgstr "A kép felvételéhez használt lencse fókusztávolsága mm-ben"
+
 msgid "capturing digital zoom ratio"
 msgstr "felvétel digitális nagyítási aránya"
 
diff --git a/po/id.gmo b/po/id.gmo
index 58d1c9d..0de9ed8 100644
--- a/po/id.gmo
+++ b/po/id.gmo
Binary files differ
diff --git a/po/id.po b/po/id.po
index fed2c01..0e3810e 100644
--- a/po/id.po
+++ b/po/id.po
@@ -7,7 +7,7 @@
 msgstr ""
 "Project-Id-Version: gst-plugins-base 1.4.0\n"
 "Report-Msgid-Bugs-To: http://bugzilla.gnome.org/\n"
-"POT-Creation-Date: 2016-06-09 11:16+0300\n"
+"POT-Creation-Date: 2016-07-06 11:39+0300\n"
 "PO-Revision-Date: 2014-07-30 09:19+0700\n"
 "Last-Translator: Andhika Padmawan <andhika.padmawan@gmail.com>\n"
 "Language-Team: Indonesian <translation-team-id@lists.sourceforge.net>\n"
@@ -220,6 +220,10 @@
 msgid "Kate subtitle format"
 msgstr "Format subjudul Kate"
 
+#, fuzzy
+msgid "WebVTT subtitle format"
+msgstr "Format subjudul Kate"
+
 msgid "Uncompressed video"
 msgstr "Video tak dikompresi"
 
@@ -386,6 +390,15 @@
 msgid "Focal length of the lens used capturing the image, in mm"
 msgstr "Panjang fokal dari lensa digunakan ketika menangkap gambar, dalam mm"
 
+#, fuzzy
+msgid "capturing 35 mm equivalent focal length"
+msgstr "menangkap panjang fokal"
+
+#, fuzzy
+msgid ""
+"35 mm equivalent focal length of the lens used capturing the image, in mm"
+msgstr "Panjang fokal dari lensa digunakan ketika menangkap gambar, dalam mm"
+
 msgid "capturing digital zoom ratio"
 msgstr "menangkap rasio pembesaran digital"
 
diff --git a/po/it.gmo b/po/it.gmo
index 1fb6bed..746df61 100644
--- a/po/it.gmo
+++ b/po/it.gmo
Binary files differ
diff --git a/po/it.po b/po/it.po
index 3ba33b2..b1422a5 100644
--- a/po/it.po
+++ b/po/it.po
@@ -7,7 +7,7 @@
 msgstr ""
 "Project-Id-Version: gst-plugins-base 0.10.28.2\n"
 "Report-Msgid-Bugs-To: http://bugzilla.gnome.org/\n"
-"POT-Creation-Date: 2016-06-09 11:16+0300\n"
+"POT-Creation-Date: 2016-07-06 11:39+0300\n"
 "PO-Revision-Date: 2010-04-28 14:27+0200\n"
 "Last-Translator: Luca Ferretti <elle.uca@infinito.it>\n"
 "Language-Team: Italian <tp@lists.linux.it>\n"
@@ -234,6 +234,10 @@
 msgstr "Sottotitoli formato Kate"
 
 #, fuzzy
+msgid "WebVTT subtitle format"
+msgstr "Sottotitoli formato Kate"
+
+#, fuzzy
 msgid "Uncompressed video"
 msgstr "YUV non compresso"
 
@@ -427,6 +431,13 @@
 msgid "Focal length of the lens used capturing the image, in mm"
 msgstr ""
 
+msgid "capturing 35 mm equivalent focal length"
+msgstr ""
+
+msgid ""
+"35 mm equivalent focal length of the lens used capturing the image, in mm"
+msgstr ""
+
 msgid "capturing digital zoom ratio"
 msgstr ""
 
diff --git a/po/ja.gmo b/po/ja.gmo
index f8a5da1..ddef80c 100644
--- a/po/ja.gmo
+++ b/po/ja.gmo
Binary files differ
diff --git a/po/ja.po b/po/ja.po
index 61b24c4..45b26ae 100644
--- a/po/ja.po
+++ b/po/ja.po
@@ -6,7 +6,7 @@
 msgstr ""
 "Project-Id-Version: gst-plugins-base 0.10.30.3\n"
 "Report-Msgid-Bugs-To: http://bugzilla.gnome.org/\n"
-"POT-Creation-Date: 2016-06-09 11:16+0300\n"
+"POT-Creation-Date: 2016-07-06 11:39+0300\n"
 "PO-Revision-Date: 2010-10-25 10:27+0900\n"
 "Last-Translator: Makoto Kato <makoto.kt@gmail.com>\n"
 "Language-Team: Japanese <translation-team-ja@lists.sourceforge.net>\n"
@@ -228,6 +228,10 @@
 msgstr "Kate 字幕形式"
 
 #, fuzzy
+msgid "WebVTT subtitle format"
+msgstr "Kate 字幕形式"
+
+#, fuzzy
 msgid "Uncompressed video"
 msgstr "非圧縮 YUV"
 
@@ -396,6 +400,13 @@
 msgid "Focal length of the lens used capturing the image, in mm"
 msgstr ""
 
+msgid "capturing 35 mm equivalent focal length"
+msgstr ""
+
+msgid ""
+"35 mm equivalent focal length of the lens used capturing the image, in mm"
+msgstr ""
+
 msgid "capturing digital zoom ratio"
 msgstr ""
 
diff --git a/po/lt.gmo b/po/lt.gmo
index e08eb19..f933db8 100644
--- a/po/lt.gmo
+++ b/po/lt.gmo
Binary files differ
diff --git a/po/lt.po b/po/lt.po
index ab352ea..e1fa57e 100644
--- a/po/lt.po
+++ b/po/lt.po
@@ -7,7 +7,7 @@
 msgstr ""
 "Project-Id-Version: gst-plugins-base-0.10.15.2\n"
 "Report-Msgid-Bugs-To: http://bugzilla.gnome.org/\n"
-"POT-Creation-Date: 2016-06-09 11:16+0300\n"
+"POT-Creation-Date: 2016-07-06 11:39+0300\n"
 "PO-Revision-Date: 2008-03-07 23:43+0200\n"
 "Last-Translator: Gintautas Miliauskas <gintas@akl.lt>\n"
 "Language-Team: Lithuanian <komp_lt@konferencijos.lt>\n"
@@ -234,6 +234,10 @@
 msgstr "Sami titrų formatas"
 
 #, fuzzy
+msgid "WebVTT subtitle format"
+msgstr "Sami titrų formatas"
+
+#, fuzzy
 msgid "Uncompressed video"
 msgstr "Nekompresuotas YUV"
 
@@ -402,6 +406,13 @@
 msgid "Focal length of the lens used capturing the image, in mm"
 msgstr ""
 
+msgid "capturing 35 mm equivalent focal length"
+msgstr ""
+
+msgid ""
+"35 mm equivalent focal length of the lens used capturing the image, in mm"
+msgstr ""
+
 msgid "capturing digital zoom ratio"
 msgstr ""
 
diff --git a/po/lv.gmo b/po/lv.gmo
index f67385e..8c17b20 100644
--- a/po/lv.gmo
+++ b/po/lv.gmo
Binary files differ
diff --git a/po/lv.po b/po/lv.po
index 1721db9..fd6db8f 100644
--- a/po/lv.po
+++ b/po/lv.po
@@ -9,7 +9,7 @@
 msgstr ""
 "Project-Id-Version: gst-plugins-base 1.2.1\n"
 "Report-Msgid-Bugs-To: http://bugzilla.gnome.org/\n"
-"POT-Creation-Date: 2016-06-09 11:16+0300\n"
+"POT-Creation-Date: 2016-07-06 11:39+0300\n"
 "PO-Revision-Date: 2014-04-20 16:15+0300\n"
 "Last-Translator: Rihards Prieditis <rprieditis@gmail.com>\n"
 "Language-Team: Latvian <translation-team-lv@lists.sourceforge.net>\n"
@@ -227,6 +227,10 @@
 msgid "Kate subtitle format"
 msgstr "Kate subtitru formāts"
 
+#, fuzzy
+msgid "WebVTT subtitle format"
+msgstr "Kate subtitru formāts"
+
 msgid "Uncompressed video"
 msgstr "Nesaspiests video"
 
@@ -393,6 +397,15 @@
 msgid "Focal length of the lens used capturing the image, in mm"
 msgstr "Attēla tveršanā izmantotā lēcas fokusa attālums milimetros"
 
+#, fuzzy
+msgid "capturing 35 mm equivalent focal length"
+msgstr "tveršanas fokusa attālums"
+
+#, fuzzy
+msgid ""
+"35 mm equivalent focal length of the lens used capturing the image, in mm"
+msgstr "Attēla tveršanā izmantotā lēcas fokusa attālums milimetros"
+
 msgid "capturing digital zoom ratio"
 msgstr "tveršanas digitālais mērogs"
 
diff --git a/po/nb.gmo b/po/nb.gmo
index a807c08..75b03ea 100644
--- a/po/nb.gmo
+++ b/po/nb.gmo
Binary files differ
diff --git a/po/nb.po b/po/nb.po
index 3096dc0..4a32077 100644
--- a/po/nb.po
+++ b/po/nb.po
@@ -8,7 +8,7 @@
 msgstr ""
 "Project-Id-Version: gst-plugins-base 1.7.1\n"
 "Report-Msgid-Bugs-To: http://bugzilla.gnome.org/\n"
-"POT-Creation-Date: 2016-06-09 11:16+0300\n"
+"POT-Creation-Date: 2016-07-06 11:39+0300\n"
 "PO-Revision-Date: 2015-12-24 23:08+0100\n"
 "Last-Translator: Johnny A. Solbu <johnny@solbu.net>\n"
 "Language-Team: Norwegian Bokmaal <i18n-nb@lister.ping.uio.no>\n"
@@ -222,6 +222,10 @@
 msgid "Kate subtitle format"
 msgstr "Kate undertekstformat"
 
+#, fuzzy
+msgid "WebVTT subtitle format"
+msgstr "Kate undertekstformat"
+
 msgid "Uncompressed video"
 msgstr "Ukomprimert video"
 
@@ -388,6 +392,15 @@
 msgid "Focal length of the lens used capturing the image, in mm"
 msgstr "Brennvidden til objektivet som brukes når du tar bildet, i mm"
 
+#, fuzzy
+msgid "capturing 35 mm equivalent focal length"
+msgstr "opptaksbrennvidde"
+
+#, fuzzy
+msgid ""
+"35 mm equivalent focal length of the lens used capturing the image, in mm"
+msgstr "Brennvidden til objektivet som brukes når du tar bildet, i mm"
+
 msgid "capturing digital zoom ratio"
 msgstr "fanger digitalt zoomforhold"
 
diff --git a/po/nl.gmo b/po/nl.gmo
index 60803a2..00f87e0 100644
--- a/po/nl.gmo
+++ b/po/nl.gmo
Binary files differ
diff --git a/po/nl.po b/po/nl.po
index 4fa019c..6801134 100644
--- a/po/nl.po
+++ b/po/nl.po
@@ -6,7 +6,7 @@
 msgstr ""
 "Project-Id-Version: gst-plugins-base 1.7.2\n"
 "Report-Msgid-Bugs-To: http://bugzilla.gnome.org/\n"
-"POT-Creation-Date: 2016-06-09 11:16+0300\n"
+"POT-Creation-Date: 2016-07-06 11:39+0300\n"
 "PO-Revision-Date: 2016-02-20 16:39+0100\n"
 "Last-Translator: Freek de Kruijf <f.de.kruijf@gmail.com>\n"
 "Language-Team: Dutch <vertaling@vrijschrift.org>\n"
@@ -223,6 +223,10 @@
 msgid "Kate subtitle format"
 msgstr "Kate ondertitelformaat"
 
+#, fuzzy
+msgid "WebVTT subtitle format"
+msgstr "Kate ondertitelformaat"
+
 msgid "Uncompressed video"
 msgstr "Niet-gecomprimeerde video"
 
@@ -390,6 +394,16 @@
 msgstr ""
 "Ge bruikte brandpuntsafstand van de lens bij het maken van de foto, in mm"
 
+#, fuzzy
+msgid "capturing 35 mm equivalent focal length"
+msgstr "brandpuntsafstand bij maken"
+
+#, fuzzy
+msgid ""
+"35 mm equivalent focal length of the lens used capturing the image, in mm"
+msgstr ""
+"Ge bruikte brandpuntsafstand van de lens bij het maken van de foto, in mm"
+
 msgid "capturing digital zoom ratio"
 msgstr "digitale zoom-verhouding bij het maken"
 
diff --git a/po/or.gmo b/po/or.gmo
index 887a20d..6fd3e4c 100644
--- a/po/or.gmo
+++ b/po/or.gmo
Binary files differ
diff --git a/po/or.po b/po/or.po
index 6b16dc6..510c0cb 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-06-09 11:16+0300\n"
+"POT-Creation-Date: 2016-07-06 11:39+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"
@@ -228,6 +228,9 @@
 msgid "Kate subtitle format"
 msgstr ""
 
+msgid "WebVTT subtitle format"
+msgstr ""
+
 msgid "Uncompressed video"
 msgstr ""
 
@@ -394,6 +397,13 @@
 msgid "Focal length of the lens used capturing the image, in mm"
 msgstr ""
 
+msgid "capturing 35 mm equivalent focal length"
+msgstr ""
+
+msgid ""
+"35 mm equivalent focal length of the lens used capturing the image, in mm"
+msgstr ""
+
 msgid "capturing digital zoom ratio"
 msgstr ""
 
diff --git a/po/pl.gmo b/po/pl.gmo
index eb4c213..c6f396b 100644
--- a/po/pl.gmo
+++ b/po/pl.gmo
Binary files differ
diff --git a/po/pl.po b/po/pl.po
index 5e69a15..d93e429 100644
--- a/po/pl.po
+++ b/po/pl.po
@@ -6,7 +6,7 @@
 msgstr ""
 "Project-Id-Version: gst-plugins-base 1.7.90\n"
 "Report-Msgid-Bugs-To: http://bugzilla.gnome.org/\n"
-"POT-Creation-Date: 2016-06-09 11:16+0300\n"
+"POT-Creation-Date: 2016-07-06 11:39+0300\n"
 "PO-Revision-Date: 2016-03-02 22:08+0100\n"
 "Last-Translator: Jakub Bogusz <qboosh@pld-linux.org>\n"
 "Language-Team: Polish <translation-team-pl@lists.sourceforge.net>\n"
@@ -230,6 +230,10 @@
 msgid "Kate subtitle format"
 msgstr "Format podpisów Kate"
 
+#, fuzzy
+msgid "WebVTT subtitle format"
+msgstr "Format podpisów Kate"
+
 msgid "Uncompressed video"
 msgstr "Nieskompresowany obraz"
 
@@ -396,6 +400,15 @@
 msgid "Focal length of the lens used capturing the image, in mm"
 msgstr "Długość ogniskowej obiektywu użyta przy robieniu zdjęcia, w mm"
 
+#, fuzzy
+msgid "capturing 35 mm equivalent focal length"
+msgstr "ogniskowa obiektywu"
+
+#, fuzzy
+msgid ""
+"35 mm equivalent focal length of the lens used capturing the image, in mm"
+msgstr "Długość ogniskowej obiektywu użyta przy robieniu zdjęcia, w mm"
+
 msgid "capturing digital zoom ratio"
 msgstr "współczynnik powiększenia cyfrowego"
 
diff --git a/po/pt_BR.gmo b/po/pt_BR.gmo
index 5daca86..60ab026 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 53562ee..819eaa2 100644
--- a/po/pt_BR.po
+++ b/po/pt_BR.po
@@ -11,7 +11,7 @@
 msgstr ""
 "Project-Id-Version: gst-plugins-base-1.7.90\n"
 "Report-Msgid-Bugs-To: http://bugzilla.gnome.org/\n"
-"POT-Creation-Date: 2016-06-09 11:16+0300\n"
+"POT-Creation-Date: 2016-07-06 11:39+0300\n"
 "PO-Revision-Date: 2016-05-06 16:47-0300\n"
 "Last-Translator: Fabrício Godoy <skarllot@gmail.com>\n"
 "Language-Team: Brazilian Portuguese <ldpbr-translation@lists.sourceforge."
@@ -230,6 +230,10 @@
 msgid "Kate subtitle format"
 msgstr "Formato de legendas Kate"
 
+#, fuzzy
+msgid "WebVTT subtitle format"
+msgstr "Formato de legendas Kate"
+
 msgid "Uncompressed video"
 msgstr "Vídeo sem compressão"
 
@@ -396,6 +400,15 @@
 msgid "Focal length of the lens used capturing the image, in mm"
 msgstr "Distância focal das lentes utilizada ao capturar a imagem, em mm"
 
+#, fuzzy
+msgid "capturing 35 mm equivalent focal length"
+msgstr "distância focal ao capturar"
+
+#, fuzzy
+msgid ""
+"35 mm equivalent focal length of the lens used capturing the image, in mm"
+msgstr "Distância focal das lentes utilizada ao capturar a imagem, em mm"
+
 msgid "capturing digital zoom ratio"
 msgstr "taxa de zoom digital ao capturar"
 
diff --git a/po/ro.gmo b/po/ro.gmo
index cd297fa..1e79b11 100644
--- a/po/ro.gmo
+++ b/po/ro.gmo
Binary files differ
diff --git a/po/ro.po b/po/ro.po
index 7ca10de..fb97b25 100644
--- a/po/ro.po
+++ b/po/ro.po
@@ -5,7 +5,7 @@
 msgstr ""
 "Project-Id-Version: gst-plugins-base 0.10.29.2\n"
 "Report-Msgid-Bugs-To: http://bugzilla.gnome.org/\n"
-"POT-Creation-Date: 2016-06-09 11:16+0300\n"
+"POT-Creation-Date: 2016-07-06 11:39+0300\n"
 "PO-Revision-Date: 2010-08-16 01:21+0300\n"
 "Last-Translator: Lucian Adrian Grijincu <lucian.grijincu@gmail.com>\n"
 "Language-Team: Romanian <translation-team-ro@lists.sourceforge.net>\n"
@@ -227,6 +227,10 @@
 msgstr "Format subtitrare Kate"
 
 #, fuzzy
+msgid "WebVTT subtitle format"
+msgstr "Format subtitrare Kate"
+
+#, fuzzy
 msgid "Uncompressed video"
 msgstr "YUV necomprimat"
 
@@ -395,6 +399,13 @@
 msgid "Focal length of the lens used capturing the image, in mm"
 msgstr ""
 
+msgid "capturing 35 mm equivalent focal length"
+msgstr ""
+
+msgid ""
+"35 mm equivalent focal length of the lens used capturing the image, in mm"
+msgstr ""
+
 msgid "capturing digital zoom ratio"
 msgstr ""
 
diff --git a/po/ru.gmo b/po/ru.gmo
index 0613d54..a14d0c9 100644
--- a/po/ru.gmo
+++ b/po/ru.gmo
Binary files differ
diff --git a/po/ru.po b/po/ru.po
index e732b6a..e345e3e 100644
--- a/po/ru.po
+++ b/po/ru.po
@@ -8,7 +8,7 @@
 msgstr ""
 "Project-Id-Version: gst-plugins-base 1.7.90\n"
 "Report-Msgid-Bugs-To: http://bugzilla.gnome.org/\n"
-"POT-Creation-Date: 2016-06-09 11:16+0300\n"
+"POT-Creation-Date: 2016-07-06 11:39+0300\n"
 "PO-Revision-Date: 2016-03-05 08:42+0300\n"
 "Last-Translator: Yuri Kozlov <yuray@komyakino.ru>\n"
 "Language-Team: Russian <gnu@d07.ru>\n"
@@ -226,6 +226,10 @@
 msgid "Kate subtitle format"
 msgstr "Формат субтитров Kate"
 
+#, fuzzy
+msgid "WebVTT subtitle format"
+msgstr "Формат субтитров Kate"
+
 msgid "Uncompressed video"
 msgstr "Несжатое видео"
 
@@ -392,6 +396,15 @@
 msgid "Focal length of the lens used capturing the image, in mm"
 msgstr "Фокусное расстояние зеркала при съёмке изображения, в мм"
 
+#, fuzzy
+msgid "capturing 35 mm equivalent focal length"
+msgstr "фокусное расстояние при съёмке"
+
+#, fuzzy
+msgid ""
+"35 mm equivalent focal length of the lens used capturing the image, in mm"
+msgstr "Фокусное расстояние зеркала при съёмке изображения, в мм"
+
 msgid "capturing digital zoom ratio"
 msgstr "коэффициент цифрового трансфокатора при съёмке"
 
diff --git a/po/sk.gmo b/po/sk.gmo
index a8a2c92..b292ae3 100644
--- a/po/sk.gmo
+++ b/po/sk.gmo
Binary files differ
diff --git a/po/sk.po b/po/sk.po
index ad6f7e0..66b5eb9 100644
--- a/po/sk.po
+++ b/po/sk.po
@@ -6,7 +6,7 @@
 msgstr ""
 "Project-Id-Version: gst-plugins-base 1.7.90\n"
 "Report-Msgid-Bugs-To: http://bugzilla.gnome.org/\n"
-"POT-Creation-Date: 2016-06-09 11:16+0300\n"
+"POT-Creation-Date: 2016-07-06 11:39+0300\n"
 "PO-Revision-Date: 2016-05-20 12:24+0100\n"
 "Last-Translator: Peter Tuhársky <tuharsky@misbb.sk>\n"
 "Language-Team: Slovak <sk-i18n@lists.linux.sk>\n"
@@ -222,6 +222,10 @@
 msgid "Kate subtitle format"
 msgstr "Formát titulkov Kate"
 
+#, fuzzy
+msgid "WebVTT subtitle format"
+msgstr "Formát titulkov Kate"
+
 msgid "Uncompressed video"
 msgstr "Nekomprimované video"
 
@@ -388,6 +392,15 @@
 msgid "Focal length of the lens used capturing the image, in mm"
 msgstr "Ohnisková vzdialenosť objektívu pri zachytávaní obrázku, v mm"
 
+#, fuzzy
+msgid "capturing 35 mm equivalent focal length"
+msgstr "ohnisková vzdialenosť"
+
+#, fuzzy
+msgid ""
+"35 mm equivalent focal length of the lens used capturing the image, in mm"
+msgstr "Ohnisková vzdialenosť objektívu pri zachytávaní obrázku, v mm"
+
 msgid "capturing digital zoom ratio"
 msgstr "pomer digitálneho priblíženia"
 
diff --git a/po/sl.gmo b/po/sl.gmo
index 4f75ae0..1632f30 100644
--- a/po/sl.gmo
+++ b/po/sl.gmo
Binary files differ
diff --git a/po/sl.po b/po/sl.po
index be9cca8..8041bcc 100644
--- a/po/sl.po
+++ b/po/sl.po
@@ -10,7 +10,7 @@
 msgstr ""
 "Project-Id-Version: gst-plugins-base-1.0.3\n"
 "Report-Msgid-Bugs-To: http://bugzilla.gnome.org/\n"
-"POT-Creation-Date: 2016-06-09 11:16+0300\n"
+"POT-Creation-Date: 2016-07-06 11:39+0300\n"
 "PO-Revision-Date: 2013-01-05 10:10+0100\n"
 "Last-Translator: Klemen Košir <klemen913@gmail.com>\n"
 "Language-Team: Slovenian <translation-team-sl@lists.sourceforge.net>\n"
@@ -224,6 +224,10 @@
 msgid "Kate subtitle format"
 msgstr "Oblika podnapisov Kate"
 
+#, fuzzy
+msgid "WebVTT subtitle format"
+msgstr "Oblika podnapisov Kate"
+
 msgid "Uncompressed video"
 msgstr "Nestisnjen video"
 
@@ -390,6 +394,15 @@
 msgid "Focal length of the lens used capturing the image, in mm"
 msgstr "Goriščna razdalja leč, uporabljena med zajemanjem slike"
 
+#, fuzzy
+msgid "capturing 35 mm equivalent focal length"
+msgstr "goriščna razdalja med zajemanjem"
+
+#, fuzzy
+msgid ""
+"35 mm equivalent focal length of the lens used capturing the image, in mm"
+msgstr "Goriščna razdalja leč, uporabljena med zajemanjem slike"
+
 msgid "capturing digital zoom ratio"
 msgstr "razmerje digitalnega približevanja med zajemanjem"
 
diff --git a/po/sq.gmo b/po/sq.gmo
index 10c11e8..3da2cb8 100644
--- a/po/sq.gmo
+++ b/po/sq.gmo
Binary files differ
diff --git a/po/sq.po b/po/sq.po
index 0ed5d97..8c8e850 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-06-09 11:16+0300\n"
+"POT-Creation-Date: 2016-07-06 11:39+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"
@@ -226,6 +226,9 @@
 msgid "Kate subtitle format"
 msgstr ""
 
+msgid "WebVTT subtitle format"
+msgstr ""
+
 msgid "Uncompressed video"
 msgstr ""
 
@@ -392,6 +395,13 @@
 msgid "Focal length of the lens used capturing the image, in mm"
 msgstr ""
 
+msgid "capturing 35 mm equivalent focal length"
+msgstr ""
+
+msgid ""
+"35 mm equivalent focal length of the lens used capturing the image, in mm"
+msgstr ""
+
 msgid "capturing digital zoom ratio"
 msgstr ""
 
diff --git a/po/sr.gmo b/po/sr.gmo
index e832956..cb5ee54 100644
--- a/po/sr.gmo
+++ b/po/sr.gmo
Binary files differ
diff --git a/po/sr.po b/po/sr.po
index 40cde99..269e510 100644
--- a/po/sr.po
+++ b/po/sr.po
@@ -7,7 +7,7 @@
 msgstr ""
 "Project-Id-Version: gst-plugins-base-1.7.90\n"
 "Report-Msgid-Bugs-To: http://bugzilla.gnome.org/\n"
-"POT-Creation-Date: 2016-06-09 11:16+0300\n"
+"POT-Creation-Date: 2016-07-06 11:39+0300\n"
 "PO-Revision-Date: 2016-03-05 09:48+0200\n"
 "Last-Translator: Мирослав Николић <miroslavnikolic@rocketmail.com>\n"
 "Language-Team: Serbian <(nothing)>\n"
@@ -222,6 +222,10 @@
 msgid "Kate subtitle format"
 msgstr "Кејт запис превода"
 
+#, fuzzy
+msgid "WebVTT subtitle format"
+msgstr "Кејт запис превода"
+
 msgid "Uncompressed video"
 msgstr "Несажети снимак"
 
@@ -388,6 +392,15 @@
 msgid "Focal length of the lens used capturing the image, in mm"
 msgstr "Жижна даљина објектива коришћеног за снимање слика, у мииметрима"
 
+#, fuzzy
+msgid "capturing 35 mm equivalent focal length"
+msgstr "жижна даљина снимања"
+
+#, fuzzy
+msgid ""
+"35 mm equivalent focal length of the lens used capturing the image, in mm"
+msgstr "Жижна даљина објектива коришћеног за снимање слика, у мииметрима"
+
 msgid "capturing digital zoom ratio"
 msgstr "однос дигиталног зума снимања"
 
diff --git a/po/sv.gmo b/po/sv.gmo
index b824419..a17d147 100644
--- a/po/sv.gmo
+++ b/po/sv.gmo
Binary files differ
diff --git a/po/sv.po b/po/sv.po
index 7194fac..70fe4de 100644
--- a/po/sv.po
+++ b/po/sv.po
@@ -9,7 +9,7 @@
 msgstr ""
 "Project-Id-Version: gst-plugins-base 1.7.90\n"
 "Report-Msgid-Bugs-To: http://bugzilla.gnome.org/\n"
-"POT-Creation-Date: 2016-06-09 11:16+0300\n"
+"POT-Creation-Date: 2016-07-06 11:39+0300\n"
 "PO-Revision-Date: 2016-03-02 22:20+0100\n"
 "Last-Translator: Sebastian Rasmussen <sebras@gmail.com>\n"
 "Language-Team: Swedish <tp-sv@listor.tp-sv.se>\n"
@@ -223,6 +223,10 @@
 msgid "Kate subtitle format"
 msgstr "Undertextformatet Kate"
 
+#, fuzzy
+msgid "WebVTT subtitle format"
+msgstr "Undertextformatet Kate"
+
 msgid "Uncompressed video"
 msgstr "Okomprimerad video"
 
@@ -389,6 +393,15 @@
 msgid "Focal length of the lens used capturing the image, in mm"
 msgstr "Brännvidd för linsen i mm när bild infångas"
 
+#, fuzzy
+msgid "capturing 35 mm equivalent focal length"
+msgstr "brännvidd"
+
+#, fuzzy
+msgid ""
+"35 mm equivalent focal length of the lens used capturing the image, in mm"
+msgstr "Brännvidd för linsen i mm när bild infångas"
+
 msgid "capturing digital zoom ratio"
 msgstr "digitalt zoom-förhållande"
 
diff --git a/po/tr.gmo b/po/tr.gmo
index 9eef88d..f90d7c2 100644
--- a/po/tr.gmo
+++ b/po/tr.gmo
Binary files differ
diff --git a/po/tr.po b/po/tr.po
index 564fe42..42dae9a 100644
--- a/po/tr.po
+++ b/po/tr.po
@@ -7,7 +7,7 @@
 msgstr ""
 "Project-Id-Version: gst-plugins-base 1.4.1\n"
 "Report-Msgid-Bugs-To: http://bugzilla.gnome.org/\n"
-"POT-Creation-Date: 2016-06-09 11:16+0300\n"
+"POT-Creation-Date: 2016-07-06 11:39+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"
@@ -222,6 +222,10 @@
 msgid "Kate subtitle format"
 msgstr "Kate altyazı kipi"
 
+#, fuzzy
+msgid "WebVTT subtitle format"
+msgstr "Kate altyazı kipi"
+
 msgid "Uncompressed video"
 msgstr "Sıkıştırılmamış video"
 
@@ -388,6 +392,15 @@
 msgid "Focal length of the lens used capturing the image, in mm"
 msgstr "Mm bazında, resim çekerken kullanılan odaksal uzunluk"
 
+#, fuzzy
+msgid "capturing 35 mm equivalent focal length"
+msgstr "odaksal uzunluğu yakalıyor"
+
+#, fuzzy
+msgid ""
+"35 mm equivalent focal length of the lens used capturing the image, in mm"
+msgstr "Mm bazında, resim çekerken kullanılan odaksal uzunluk"
+
 msgid "capturing digital zoom ratio"
 msgstr "sayısal zum oranını yakalıyor"
 
diff --git a/po/uk.gmo b/po/uk.gmo
index 304adc6..ee089bf 100644
--- a/po/uk.gmo
+++ b/po/uk.gmo
Binary files differ
diff --git a/po/uk.po b/po/uk.po
index 19eb2aa..0660ae1 100644
--- a/po/uk.po
+++ b/po/uk.po
@@ -8,7 +8,7 @@
 msgstr ""
 "Project-Id-Version: gst-plugins-base 1.7.90\n"
 "Report-Msgid-Bugs-To: http://bugzilla.gnome.org/\n"
-"POT-Creation-Date: 2016-06-09 11:16+0300\n"
+"POT-Creation-Date: 2016-07-06 11:39+0300\n"
 "PO-Revision-Date: 2016-03-02 22:05+0200\n"
 "Last-Translator: Yuri Chornoivan <yurchor@ukr.net>\n"
 "Language-Team: Ukrainian <translation-team-uk@lists.sourceforge.net>\n"
@@ -229,6 +229,10 @@
 msgid "Kate subtitle format"
 msgstr "Формат субтитрів Kate"
 
+#, fuzzy
+msgid "WebVTT subtitle format"
+msgstr "Формат субтитрів Kate"
+
 msgid "Uncompressed video"
 msgstr "Нестиснене відео"
 
@@ -398,6 +402,16 @@
 msgstr ""
 "Фокальна відстань об’єктива, використаного при створенні зображення, у мм"
 
+#, fuzzy
+msgid "capturing 35 mm equivalent focal length"
+msgstr "фокальна відстань"
+
+#, fuzzy
+msgid ""
+"35 mm equivalent focal length of the lens used capturing the image, in mm"
+msgstr ""
+"Фокальна відстань об’єктива, використаного при створенні зображення, у мм"
+
 msgid "capturing digital zoom ratio"
 msgstr "коефіцієнт цифрового збільшення"
 
diff --git a/po/vi.gmo b/po/vi.gmo
index f613e75..38c4b44 100644
--- a/po/vi.gmo
+++ b/po/vi.gmo
Binary files differ
diff --git a/po/vi.po b/po/vi.po
index a3d5a7a..add5caa 100644
--- a/po/vi.po
+++ b/po/vi.po
@@ -9,7 +9,7 @@
 msgstr ""
 "Project-Id-Version: gst-plugins-base 1.7.90\n"
 "Report-Msgid-Bugs-To: http://bugzilla.gnome.org/\n"
-"POT-Creation-Date: 2016-06-09 11:16+0300\n"
+"POT-Creation-Date: 2016-07-06 11:39+0300\n"
 "PO-Revision-Date: 2016-03-03 07:49+0700\n"
 "Last-Translator: Trần Ngọc Quân <vnwildman@gmail.com>\n"
 "Language-Team: Vietnamese <translation-team-vi@lists.sourceforge.net>\n"
@@ -225,6 +225,10 @@
 msgid "Kate subtitle format"
 msgstr "Định dạng phụ đề Kate"
 
+#, fuzzy
+msgid "WebVTT subtitle format"
+msgstr "Định dạng phụ đề Kate"
+
 msgid "Uncompressed video"
 msgstr "Video không nén"
 
@@ -394,6 +398,15 @@
 msgid "Focal length of the lens used capturing the image, in mm"
 msgstr "Chiều dài tiêu cự ống kính được sử dụng khi chụp một ảnh, tính bằng mm"
 
+#, fuzzy
+msgid "capturing 35 mm equivalent focal length"
+msgstr "độ dài tiêu cự khi chụp"
+
+#, fuzzy
+msgid ""
+"35 mm equivalent focal length of the lens used capturing the image, in mm"
+msgstr "Chiều dài tiêu cự ống kính được sử dụng khi chụp một ảnh, tính bằng mm"
+
 msgid "capturing digital zoom ratio"
 msgstr "tỷ lệ phóng to kỹ thuật số khi chụp"
 
diff --git a/po/zh_CN.gmo b/po/zh_CN.gmo
index 0b7660d..406b402 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 67bb867..f147bb9 100644
--- a/po/zh_CN.po
+++ b/po/zh_CN.po
@@ -7,7 +7,7 @@
 msgstr ""
 "Project-Id-Version: gst-plugins-base 1.7.90\n"
 "Report-Msgid-Bugs-To: http://bugzilla.gnome.org/\n"
-"POT-Creation-Date: 2016-06-09 11:16+0300\n"
+"POT-Creation-Date: 2016-07-06 11:39+0300\n"
 "PO-Revision-Date: 2016-03-03 12:15+0800\n"
 "Last-Translator: Tianze Wang <zwpwjwtz@126.com>\n"
 "Language-Team: Chinese (simplified) <i18n-zh@googlegroups.com>\n"
@@ -217,6 +217,10 @@
 msgid "Kate subtitle format"
 msgstr "Kate 字幕格式"
 
+#, fuzzy
+msgid "WebVTT subtitle format"
+msgstr "Kate 字幕格式"
+
 msgid "Uncompressed video"
 msgstr "未压缩的视频"
 
@@ -383,6 +387,15 @@
 msgid "Focal length of the lens used capturing the image, in mm"
 msgstr "(在mm中)捕捉图像时的焦距"
 
+#, fuzzy
+msgid "capturing 35 mm equivalent focal length"
+msgstr "捕捉焦距"
+
+#, fuzzy
+msgid ""
+"35 mm equivalent focal length of the lens used capturing the image, in mm"
+msgstr "(在mm中)捕捉图像时的焦距"
+
 msgid "capturing digital zoom ratio"
 msgstr "捕捉数码变焦比"
 
diff --git a/sys/ximage/ximagesink.c b/sys/ximage/ximagesink.c
index d2c8c81..e625989 100644
--- a/sys/ximage/ximagesink.c
+++ b/sys/ximage/ximagesink.c
@@ -1585,7 +1585,6 @@
   XID xwindow_id = id;
   GstXImageSink *ximagesink = GST_X_IMAGE_SINK (overlay);
   GstXWindow *xwindow = NULL;
-  XWindowAttributes attr;
 
   /* We acquire the stream lock while setting this window in the element.
      We are basically cleaning tons of stuff replacing the old window, putting
@@ -1626,12 +1625,8 @@
 
     xwindow->win = xwindow_id;
 
-    /* We get window geometry, set the event we want to receive,
-       and create a GC */
+    /* We set the events we want to receive and create a GC. */
     g_mutex_lock (&ximagesink->x_lock);
-    XGetWindowAttributes (ximagesink->xcontext->disp, xwindow->win, &attr);
-    xwindow->width = attr.width;
-    xwindow->height = attr.height;
     xwindow->internal = FALSE;
     if (ximagesink->handle_events) {
       XSelectInput (ximagesink->xcontext->disp, xwindow->win, ExposureMask |
@@ -1643,8 +1638,11 @@
     g_mutex_unlock (&ximagesink->x_lock);
   }
 
-  if (xwindow)
+  if (xwindow) {
     ximagesink->xwindow = xwindow;
+    /* Update the window geometry, possibly generating a reconfigure event. */
+    gst_x_image_sink_xwindow_update_geometry(ximagesink);
+  }
 
   g_mutex_unlock (&ximagesink->flow_lock);
 }
@@ -1976,8 +1974,8 @@
       "Video sink", "Sink/Video",
       "A standard X based videosink", "Julien Moutte <julien@moutte.net>");
 
-  gst_element_class_add_pad_template (gstelement_class,
-      gst_static_pad_template_get (&gst_x_image_sink_sink_template_factory));
+  gst_element_class_add_static_pad_template (gstelement_class,
+      &gst_x_image_sink_sink_template_factory);
 
   gstelement_class->change_state = gst_x_image_sink_change_state;
 
diff --git a/sys/xvimage/xvimagesink.c b/sys/xvimage/xvimagesink.c
index c612076..e008d09 100644
--- a/sys/xvimage/xvimagesink.c
+++ b/sys/xvimage/xvimagesink.c
@@ -2013,8 +2013,8 @@
       "Video sink", "Sink/Video",
       "A Xv based videosink", "Julien Moutte <julien@moutte.net>");
 
-  gst_element_class_add_pad_template (gstelement_class,
-      gst_static_pad_template_get (&gst_xv_image_sink_sink_template_factory));
+  gst_element_class_add_static_pad_template (gstelement_class,
+      &gst_xv_image_sink_sink_template_factory);
 
   gstelement_class->change_state =
       GST_DEBUG_FUNCPTR (gst_xv_image_sink_change_state);
diff --git a/tests/check/Makefile.am b/tests/check/Makefile.am
index ed1d026..c81c664 100644
--- a/tests/check/Makefile.am
+++ b/tests/check/Makefile.am
@@ -75,7 +75,8 @@
 
 if USE_PLUGIN_PLAYBACK
 check_playback = elements/decodebin elements/playbin \
-    elements/playbin-complex elements/streamsynchronizer
+    elements/playbin-complex elements/streamsynchronizer \
+    elements/playsink
 else
 check_playback =
 endif
diff --git a/tests/check/Makefile.in b/tests/check/Makefile.in
index d9dab9c..6b4c958 100644
--- a/tests/check/Makefile.in
+++ b/tests/check/Makefile.in
@@ -175,7 +175,8 @@
 @USE_PLUGIN_PLAYBACK_TRUE@am__EXEEXT_12 = elements/decodebin$(EXEEXT) \
 @USE_PLUGIN_PLAYBACK_TRUE@	elements/playbin$(EXEEXT) \
 @USE_PLUGIN_PLAYBACK_TRUE@	elements/playbin-complex$(EXEEXT) \
-@USE_PLUGIN_PLAYBACK_TRUE@	elements/streamsynchronizer$(EXEEXT)
+@USE_PLUGIN_PLAYBACK_TRUE@	elements/streamsynchronizer$(EXEEXT) \
+@USE_PLUGIN_PLAYBACK_TRUE@	elements/playsink$(EXEEXT)
 @USE_PLUGIN_SUBPARSE_TRUE@am__EXEEXT_13 = elements/subparse$(EXEEXT)
 @USE_PLUGIN_APP_FALSE@@USE_PLUGIN_TCP_TRUE@am__EXEEXT_14 = elements/multifdsink$(EXEEXT) \
 @USE_PLUGIN_APP_FALSE@@USE_PLUGIN_TCP_TRUE@	elements/multisocketsink$(EXEEXT)
@@ -333,6 +334,11 @@
 	$(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link $(CCLD) \
 	$(elements_playbin_complex_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) \
 	$(LDFLAGS) -o $@
+elements_playsink_SOURCES = elements/playsink.c
+elements_playsink_OBJECTS = elements/playsink.$(OBJEXT)
+elements_playsink_LDADD = $(LDADD)
+elements_playsink_DEPENDENCIES = $(am__DEPENDENCIES_1) \
+	$(am__DEPENDENCIES_1)
 elements_streamsynchronizer_SOURCES = elements/streamsynchronizer.c
 elements_streamsynchronizer_OBJECTS =  \
 	elements/streamsynchronizer.$(OBJEXT)
@@ -806,22 +812,23 @@
 	elements/decodebin.c elements/encodebin.c elements/libvisual.c \
 	elements/multifdsink.c elements/multisocketsink.c \
 	elements/opus.c elements/playbin.c elements/playbin-complex.c \
-	elements/streamsynchronizer.c elements/subparse.c \
-	elements/textoverlay.c elements/videoconvert.c \
-	elements/videorate.c elements/videoscale.c \
-	elements/videotestsrc.c elements/volume.c elements/vorbisdec.c \
-	elements/vorbistag.c generic/clock-selection.c \
-	generic/states.c gst/typefindfunctions.c libs/allocators.c \
-	libs/audio.c libs/audiocdsrc.c libs/audiodecoder.c \
-	libs/audioencoder.c $(libs_baseaudiovisualizer_SOURCES) \
-	libs/discoverer.c libs/fft.c $(libs_gstlibscpp_SOURCES) \
-	libs/libsabi.c libs/mikey.c libs/navigation.c libs/pbutils.c \
-	libs/profile.c libs/rtp.c libs/rtpbasedepayload.c \
-	libs/rtpbasepayload.c libs/rtsp.c libs/rtspconnection.c \
-	libs/sdp.c libs/tag.c libs/video.c libs/videodecoder.c \
-	libs/videoencoder.c libs/xmpwriter.c \
-	$(nodist_orc_adder_SOURCES) $(nodist_orc_audio_SOURCES) \
-	$(nodist_orc_video_SOURCES) $(nodist_orc_videotestsrc_SOURCES) \
+	elements/playsink.c elements/streamsynchronizer.c \
+	elements/subparse.c elements/textoverlay.c \
+	elements/videoconvert.c elements/videorate.c \
+	elements/videoscale.c elements/videotestsrc.c \
+	elements/volume.c elements/vorbisdec.c elements/vorbistag.c \
+	generic/clock-selection.c generic/states.c \
+	gst/typefindfunctions.c libs/allocators.c libs/audio.c \
+	libs/audiocdsrc.c libs/audiodecoder.c libs/audioencoder.c \
+	$(libs_baseaudiovisualizer_SOURCES) libs/discoverer.c \
+	libs/fft.c $(libs_gstlibscpp_SOURCES) libs/libsabi.c \
+	libs/mikey.c libs/navigation.c libs/pbutils.c libs/profile.c \
+	libs/rtp.c libs/rtpbasedepayload.c libs/rtpbasepayload.c \
+	libs/rtsp.c libs/rtspconnection.c libs/sdp.c libs/tag.c \
+	libs/video.c libs/videodecoder.c libs/videoencoder.c \
+	libs/xmpwriter.c $(nodist_orc_adder_SOURCES) \
+	$(nodist_orc_audio_SOURCES) $(nodist_orc_video_SOURCES) \
+	$(nodist_orc_videotestsrc_SOURCES) \
 	$(nodist_orc_volume_SOURCES) pipelines/basetime.c \
 	pipelines/capsfilter-renegotiation.c pipelines/gio.c \
 	pipelines/oggmux.c pipelines/simple-launch-lines.c \
@@ -834,20 +841,21 @@
 	elements/decodebin.c elements/encodebin.c elements/libvisual.c \
 	elements/multifdsink.c elements/multisocketsink.c \
 	elements/opus.c elements/playbin.c elements/playbin-complex.c \
-	elements/streamsynchronizer.c elements/subparse.c \
-	elements/textoverlay.c elements/videoconvert.c \
-	elements/videorate.c elements/videoscale.c \
-	elements/videotestsrc.c elements/volume.c elements/vorbisdec.c \
-	elements/vorbistag.c generic/clock-selection.c \
-	generic/states.c gst/typefindfunctions.c libs/allocators.c \
-	libs/audio.c libs/audiocdsrc.c libs/audiodecoder.c \
-	libs/audioencoder.c $(libs_baseaudiovisualizer_SOURCES) \
-	libs/discoverer.c libs/fft.c $(libs_gstlibscpp_SOURCES) \
-	libs/libsabi.c libs/mikey.c libs/navigation.c libs/pbutils.c \
-	libs/profile.c libs/rtp.c libs/rtpbasedepayload.c \
-	libs/rtpbasepayload.c libs/rtsp.c libs/rtspconnection.c \
-	libs/sdp.c libs/tag.c libs/video.c libs/videodecoder.c \
-	libs/videoencoder.c libs/xmpwriter.c pipelines/basetime.c \
+	elements/playsink.c elements/streamsynchronizer.c \
+	elements/subparse.c elements/textoverlay.c \
+	elements/videoconvert.c elements/videorate.c \
+	elements/videoscale.c elements/videotestsrc.c \
+	elements/volume.c elements/vorbisdec.c elements/vorbistag.c \
+	generic/clock-selection.c generic/states.c \
+	gst/typefindfunctions.c libs/allocators.c libs/audio.c \
+	libs/audiocdsrc.c libs/audiodecoder.c libs/audioencoder.c \
+	$(libs_baseaudiovisualizer_SOURCES) libs/discoverer.c \
+	libs/fft.c $(libs_gstlibscpp_SOURCES) libs/libsabi.c \
+	libs/mikey.c libs/navigation.c libs/pbutils.c libs/profile.c \
+	libs/rtp.c libs/rtpbasedepayload.c libs/rtpbasepayload.c \
+	libs/rtsp.c libs/rtspconnection.c libs/sdp.c libs/tag.c \
+	libs/video.c libs/videodecoder.c libs/videoencoder.c \
+	libs/xmpwriter.c pipelines/basetime.c \
 	pipelines/capsfilter-renegotiation.c pipelines/gio.c \
 	pipelines/oggmux.c pipelines/simple-launch-lines.c \
 	pipelines/streamsynchronizer.c pipelines/tcp.c \
@@ -1418,7 +1426,8 @@
 @USE_PLUGIN_AUDIOCONVERT_TRUE@check_audioconvert = elements/audioconvert
 @USE_PLUGIN_PLAYBACK_FALSE@check_playback = 
 @USE_PLUGIN_PLAYBACK_TRUE@check_playback = elements/decodebin elements/playbin \
-@USE_PLUGIN_PLAYBACK_TRUE@    elements/playbin-complex elements/streamsynchronizer
+@USE_PLUGIN_PLAYBACK_TRUE@    elements/playbin-complex elements/streamsynchronizer \
+@USE_PLUGIN_PLAYBACK_TRUE@    elements/playsink
 
 @USE_THEORA_FALSE@check_theora = 
 @USE_THEORA_TRUE@check_theora = pipelines/theoraenc
@@ -2026,6 +2035,12 @@
 elements/playbin-complex$(EXEEXT): $(elements_playbin_complex_OBJECTS) $(elements_playbin_complex_DEPENDENCIES) $(EXTRA_elements_playbin_complex_DEPENDENCIES) elements/$(am__dirstamp)
 	@rm -f elements/playbin-complex$(EXEEXT)
 	$(AM_V_CCLD)$(elements_playbin_complex_LINK) $(elements_playbin_complex_OBJECTS) $(elements_playbin_complex_LDADD) $(LIBS)
+elements/playsink.$(OBJEXT): elements/$(am__dirstamp) \
+	elements/$(DEPDIR)/$(am__dirstamp)
+
+elements/playsink$(EXEEXT): $(elements_playsink_OBJECTS) $(elements_playsink_DEPENDENCIES) $(EXTRA_elements_playsink_DEPENDENCIES) elements/$(am__dirstamp)
+	@rm -f elements/playsink$(EXEEXT)
+	$(AM_V_CCLD)$(LINK) $(elements_playsink_OBJECTS) $(elements_playsink_LDADD) $(LIBS)
 elements/streamsynchronizer.$(OBJEXT): elements/$(am__dirstamp) \
 	elements/$(DEPDIR)/$(am__dirstamp)
 
@@ -2409,6 +2424,7 @@
 @AMDEP_TRUE@@am__include@ @am__quote@elements/$(DEPDIR)/elements_vorbistag-vorbistag.Po@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@elements/$(DEPDIR)/multifdsink.Po@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@elements/$(DEPDIR)/opus.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@elements/$(DEPDIR)/playsink.Po@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@elements/$(DEPDIR)/streamsynchronizer.Po@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@elements/$(DEPDIR)/videorate.Po@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@elements/$(DEPDIR)/videotestsrc.Po@am__quote@
@@ -3815,6 +3831,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/playsink.log: elements/playsink$(EXEEXT)
+	@p='elements/playsink$(EXEEXT)'; \
+	b='elements/playsink'; \
+	$(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/subparse.log: elements/subparse$(EXEEXT)
 	@p='elements/subparse$(EXEEXT)'; \
 	b='elements/subparse'; \
diff --git a/tests/check/elements/appsrc.c b/tests/check/elements/appsrc.c
index f7f1a13..369587c 100644
--- a/tests/check/elements/appsrc.c
+++ b/tests/check/elements/appsrc.c
@@ -60,6 +60,7 @@
 {
   GST_DEBUG ("cleanup_appsrc");
 
+  gst_check_drop_buffers ();
   gst_check_teardown_sink_pad (appsrc);
   gst_check_teardown_element (appsrc);
 }
diff --git a/tests/check/elements/audiorate.c b/tests/check/elements/audiorate.c
index f7bfc58..7664cb0 100644
--- a/tests/check/elements/audiorate.c
+++ b/tests/check/elements/audiorate.c
@@ -58,10 +58,8 @@
 {
   GstElementClass *element_class = GST_ELEMENT_CLASS (klass);
 
-  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);
 }
 
 static GstFlowReturn
@@ -444,6 +442,7 @@
   gst_element_set_state (audiorate, GST_STATE_NULL);
   gst_caps_unref (caps);
 
+  gst_check_drop_buffers ();
   gst_check_teardown_sink_pad (audiorate);
   gst_check_teardown_src_pad (audiorate);
 
diff --git a/tests/check/elements/decodebin.c b/tests/check/elements/decodebin.c
index fba0b1c..457cb36 100644
--- a/tests/check/elements/decodebin.c
+++ b/tests/check/elements/decodebin.c
@@ -230,10 +230,8 @@
   GstElementClass *element_class = GST_ELEMENT_CLASS (klass);
   GstBaseParseClass *parse_class = GST_BASE_PARSE_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 Parser",
       "Codec/Parser/Audio", "Pretends to parse mpeg1 audio stream",
@@ -383,10 +381,8 @@
           "stream-format=(string) { avc, byte-stream }"));
   GstElementClass *element_class = GST_ELEMENT_CLASS (klass);
 
-  gst_element_class_add_pad_template (element_class,
-      gst_static_pad_template_get (&sink_templ));
-  gst_element_class_add_pad_template (element_class,
-      gst_static_pad_template_get (&src_templ));
+  gst_element_class_add_static_pad_template (element_class, &sink_templ);
+  gst_element_class_add_static_pad_template (element_class, &src_templ);
   gst_element_class_set_metadata (element_class,
       "FakeH264Parser", "Codec/Parser/Converter/Video", "yep", "me");
 }
@@ -486,10 +482,8 @@
       GST_STATIC_CAPS ("video/x-raw"));
   GstElementClass *element_class = GST_ELEMENT_CLASS (klass);
 
-  gst_element_class_add_pad_template (element_class,
-      gst_static_pad_template_get (&sink_templ));
-  gst_element_class_add_pad_template (element_class,
-      gst_static_pad_template_get (&src_templ));
+  gst_element_class_add_static_pad_template (element_class, &sink_templ);
+  gst_element_class_add_static_pad_template (element_class, &src_templ);
   gst_element_class_set_metadata (element_class,
       "FakeH264Decoder", "Codec/Decoder/Video", "yep", "me");
 }
diff --git a/tests/check/elements/opus.c b/tests/check/elements/opus.c
index 5b04bb2..3678ed1 100644
--- a/tests/check/elements/opus.c
+++ b/tests/check/elements/opus.c
@@ -23,6 +23,7 @@
 #include <unistd.h>
 
 #include <gst/check/gstcheck.h>
+#include <gst/check/gstharness.h>
 
 #if G_BYTE_ORDER == G_BIG_ENDIAN
 #define AFORMAT "S16BE"
@@ -420,6 +421,68 @@
 
 GST_END_TEST;
 
+GST_START_TEST (test_opus_decode_plc_timestamps_with_fec)
+{
+  GstBuffer *buf;
+  GstHarness *h =
+      gst_harness_new_parse ("opusdec use-inband-fec=TRUE plc=TRUE");
+  GstClockTime dur0 = GST_MSECOND * 35 / 10;    /* because of lookahead */
+  GstClockTime dur = GST_MSECOND * 10;
+
+  gst_harness_add_src_parse (h,
+      "audiotestsrc samplesperbuffer=480 is-live=TRUE ! "
+      "opusenc frame-size=10 inband-fec=TRUE", TRUE);
+
+  /* Push first buffer from encoder to decoder. It will not be decoded yet
+   * because of the delay introduced by FEC */
+  gst_harness_src_crank_and_push_many (h, 1, 1);
+  fail_unless_equals_int (0, gst_harness_buffers_received (h));
+
+  /* Drop second buffer from encoder and send a GAP event to decoder
+   * instead with 2x duration */
+  gst_harness_src_crank_and_push_many (h, 1, 0);
+  fail_unless (buf = gst_harness_pull (h->src_harness));
+  fail_unless (gst_harness_push_event (h,
+          gst_event_new_gap (GST_BUFFER_PTS (buf),
+              GST_BUFFER_DURATION (buf) * 2)));
+  gst_buffer_unref (buf);
+
+  /* Extract first buffer from decoder and verify timstamps */
+  fail_unless (buf = gst_harness_pull (h));
+  fail_unless_equals_int64 (0, GST_BUFFER_PTS (buf));
+  fail_unless_equals_int64 (dur0, GST_BUFFER_DURATION (buf));
+  fail_unless (GST_BUFFER_FLAG_IS_SET (buf, GST_BUFFER_FLAG_DISCONT));
+  gst_buffer_unref (buf);
+
+  /* Third buffer is pushed from encoder to decoder with DISCONT set */
+  gst_harness_src_crank_and_push_many (h, 1, 0);
+  fail_unless (buf = gst_harness_pull (h->src_harness));
+  GST_BUFFER_FLAG_SET (buf, GST_BUFFER_FLAG_DISCONT);
+  gst_harness_push (h, buf);
+
+  /* Extract second (concealed) buffer from decoder and verify timestamp
+     and the 2x duration */
+  fail_unless (buf = gst_harness_pull (h));
+  fail_unless_equals_int64 (dur0, GST_BUFFER_PTS (buf));
+  fail_unless_equals_int64 (dur * 2, GST_BUFFER_DURATION (buf));
+  fail_if (GST_BUFFER_FLAG_IS_SET (buf, GST_BUFFER_FLAG_DISCONT));
+  gst_buffer_unref (buf);
+
+  /* Push fourth buffer from encoder to decoder as normal */
+  gst_harness_src_crank_and_push_many (h, 1, 1);
+
+  /* Extract third buffer from decoder and verify timestamps */
+  fail_unless (buf = gst_harness_pull (h));
+  fail_unless_equals_int64 (dur0 + 1 * dur, GST_BUFFER_PTS (buf));
+  fail_unless_equals_int64 (dur, GST_BUFFER_DURATION (buf));
+  fail_if (GST_BUFFER_FLAG_IS_SET (buf, GST_BUFFER_FLAG_DISCONT));
+  gst_buffer_unref (buf);
+
+  gst_harness_teardown (h);
+}
+
+GST_END_TEST;
+
 static Suite *
 opus_suite (void)
 {
@@ -433,6 +496,7 @@
   tcase_add_test (tc_chain, test_opus_encode_samples);
   tcase_add_test (tc_chain, test_opus_encode_properties);
   tcase_add_test (tc_chain, test_opusdec_getcaps);
+  tcase_add_test (tc_chain, test_opus_decode_plc_timestamps_with_fec);
 
   return s;
 }
diff --git a/tests/check/elements/playbin-complex.c b/tests/check/elements/playbin-complex.c
index 377bd83..ebe5bbd 100644
--- a/tests/check/elements/playbin-complex.c
+++ b/tests/check/elements/playbin-complex.c
@@ -170,8 +170,7 @@
       GST_PAD_SRC, GST_PAD_ALWAYS,
       GST_STATIC_CAPS_ANY);
 
-  gst_element_class_add_pad_template (element_class,
-      gst_static_pad_template_get (&src_templ));
+  gst_element_class_add_static_pad_template (element_class, &src_templ);
   gst_element_class_set_metadata (element_class,
       "CapsSource", "Source/Generic", "yep", "me");
 
@@ -321,8 +320,7 @@
       g_param_spec_boolean ("mute", "Mute",
           "Mute", FALSE, G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS));
 
-  gst_element_class_add_pad_template (element_class,
-      gst_static_pad_template_get (&sink_templ));
+  gst_element_class_add_static_pad_template (element_class, &sink_templ);
   gst_element_class_set_metadata (element_class,
       "AudioCodecSink", "Sink/Audio", "yep", "me");
 
@@ -372,8 +370,7 @@
       );
   GstElementClass *element_class = GST_ELEMENT_CLASS (klass);
 
-  gst_element_class_add_pad_template (element_class,
-      gst_static_pad_template_get (&sink_templ));
+  gst_element_class_add_static_pad_template (element_class, &sink_templ);
   gst_element_class_set_metadata (element_class,
       "VideoCodecSink", "Sink/Video", "yep", "me");
 
@@ -441,10 +438,8 @@
 
   gobject_class->finalize = gst_codec_demuxer_finalize;
 
-  gst_element_class_add_pad_template (element_class,
-      gst_static_pad_template_get (&cd_sink_templ));
-  gst_element_class_add_pad_template (element_class,
-      gst_static_pad_template_get (&cd_src_templ));
+  gst_element_class_add_static_pad_template (element_class, &cd_sink_templ);
+  gst_element_class_add_static_pad_template (element_class, &cd_src_templ);
   gst_element_class_set_metadata (element_class,
       "CodecDemuxer", "Codec/Demuxer", "yep", "me");
 }
@@ -647,8 +642,7 @@
           GST_VIDEO_CAPS_MAKE (GST_VIDEO_FORMATS_ALL))
       );
 
-  gst_element_class_add_pad_template (element_class,
-      gst_static_pad_template_get (&sink_templ));
+  gst_element_class_add_static_pad_template (element_class, &sink_templ);
 
   gst_element_class_set_static_metadata (element_class,
       "Fake Video Sink1", "Sink/Video",
@@ -669,8 +663,7 @@
       GST_PAD_SINK, GST_PAD_ALWAYS,
       GST_STATIC_CAPS (GST_VIDEO_CAPS_MAKE (GST_VIDEO_FORMATS_ALL)));
 
-  gst_element_class_add_pad_template (element_class,
-      gst_static_pad_template_get (&sink_templ));
+  gst_element_class_add_static_pad_template (element_class, &sink_templ);
 
   gst_element_class_set_static_metadata (element_class,
       "Fake Video Sink2", "Sink/Video",
@@ -710,10 +703,8 @@
               GST_VIDEO_FORMATS_ALL) ";"
           GST_VIDEO_CAPS_MAKE (GST_VIDEO_FORMATS_ALL)));
 
-  gst_element_class_add_pad_template (element_class,
-      gst_static_pad_template_get (&sink_templ));
-  gst_element_class_add_pad_template (element_class,
-      gst_static_pad_template_get (&src_templ));
+  gst_element_class_add_static_pad_template (element_class, &sink_templ);
+  gst_element_class_add_static_pad_template (element_class, &src_templ);
   gst_element_class_set_static_metadata (element_class,
       "Fake theora video decoder1", "Codec/Decoder/Video",
       "decode theora stream",
@@ -741,10 +732,8 @@
       GST_PAD_SRC, GST_PAD_ALWAYS,
       GST_STATIC_CAPS (GST_VIDEO_CAPS_MAKE (GST_VIDEO_FORMATS_ALL)));
 
-  gst_element_class_add_pad_template (element_class,
-      gst_static_pad_template_get (&sink_templ));
-  gst_element_class_add_pad_template (element_class,
-      gst_static_pad_template_get (&src_templ));
+  gst_element_class_add_static_pad_template (element_class, &sink_templ);
+  gst_element_class_add_static_pad_template (element_class, &src_templ);
   gst_element_class_set_static_metadata (element_class,
       "Fake theora video decoder2", "Codec/Decoder/Video",
       "decode theora stream",
diff --git a/tests/check/elements/playbin.c b/tests/check/elements/playbin.c
index cdc737e..170ddce 100644
--- a/tests/check/elements/playbin.c
+++ b/tests/check/elements/playbin.c
@@ -523,7 +523,7 @@
   GstElement *src = NULL;
 
   if (!gst_registry_check_feature_version (gst_registry_get (), "redvideosrc",
-          0, 10, 0)) {
+          GST_VERSION_MAJOR, GST_VERSION_MINOR, 0)) {
     fail_unless (gst_element_register (NULL, "redvideosrc", GST_RANK_PRIMARY,
             gst_red_video_src_get_type ()));
   }
@@ -553,6 +553,59 @@
 
 GST_END_TEST;
 
+static void
+element_setup (GstElement * playbin, GstElement * element, GQueue * elts)
+{
+  GstElementFactory *f = gst_element_get_factory (element);
+
+  g_queue_push_tail (elts, f ? GST_OBJECT_NAME (f) : GST_OBJECT_NAME (element));
+}
+
+GST_START_TEST (test_element_setup)
+{
+  GstElement *playbin, *videosink;
+  GQueue elts = G_QUEUE_INIT;
+
+  if (!gst_registry_check_feature_version (gst_registry_get (), "redvideosrc",
+          GST_VERSION_MAJOR, GST_VERSION_MINOR, 0)) {
+    fail_unless (gst_element_register (NULL, "redvideosrc", GST_RANK_PRIMARY,
+            gst_red_video_src_get_type ()));
+  }
+
+  playbin = gst_element_factory_make ("playbin", NULL);
+  g_object_set (playbin, "uri", "redvideo://", NULL);
+
+  videosink = gst_element_factory_make ("fakesink", "myvideosink");
+  g_object_set (playbin, "video-sink", videosink, NULL);
+
+  g_signal_connect (playbin, "element-setup", G_CALLBACK (element_setup),
+      &elts);
+
+  fail_unless_equals_int (gst_element_set_state (playbin, GST_STATE_PAUSED),
+      GST_STATE_CHANGE_ASYNC);
+  fail_unless_equals_int (gst_element_get_state (playbin, NULL, NULL,
+          GST_CLOCK_TIME_NONE), GST_STATE_CHANGE_SUCCESS);
+
+#define seen_element(e) g_queue_find_custom(&elts, e, (GCompareFunc) strcmp)
+
+  fail_unless (seen_element ("redvideosrc"));
+  fail_unless (seen_element ("uridecodebin"));
+  fail_unless (seen_element ("videoconvert"));
+  fail_unless (seen_element ("videoscale"));
+  fail_unless (seen_element ("fakesink"));
+
+#undef seen_element
+
+  g_queue_clear (&elts);
+
+  fail_unless_equals_int (gst_element_set_state (playbin, GST_STATE_NULL),
+      GST_STATE_CHANGE_SUCCESS);
+
+  gst_object_unref (playbin);
+}
+
+GST_END_TEST;
+
 /*** redvideo:// source ***/
 
 static GstURIType
@@ -649,8 +702,7 @@
       );
   GstElementClass *element_class = GST_ELEMENT_CLASS (klass);
 
-  gst_element_class_add_pad_template (element_class,
-      gst_static_pad_template_get (&src_templ));
+  gst_element_class_add_static_pad_template (element_class, &src_templ);
   gst_element_class_set_metadata (element_class,
       "Red Video Src", "Source/Video", "yep", "me");
 
@@ -751,8 +803,7 @@
       );
   GstElementClass *element_class = GST_ELEMENT_CLASS (klass);
 
-  gst_element_class_add_pad_template (element_class,
-      gst_static_pad_template_get (&src_templ));
+  gst_element_class_add_static_pad_template (element_class, &src_templ);
   gst_element_class_set_metadata (element_class,
       "Codec Src", "Source/Video", "yep", "me");
 
@@ -851,6 +902,7 @@
   tcase_add_test (tc_chain, test_missing_primary_decoder);
   tcase_add_test (tc_chain, test_refcount);
   tcase_add_test (tc_chain, test_source_setup);
+  tcase_add_test (tc_chain, test_element_setup);
 
 #if 0
   {
diff --git a/tests/check/elements/playsink.c b/tests/check/elements/playsink.c
new file mode 100644
index 0000000..c0e629c
--- /dev/null
+++ b/tests/check/elements/playsink.c
@@ -0,0 +1,88 @@
+/* GStreamer unit tests for playsink
+ * Copyright (C) 2015 Tim-Philipp Müller <tim centricular com>
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Library General Public
+ * License as published by the Free Software Foundation; either
+ * version 2 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+ * Library General Public License for more details.
+ *
+ * You should have received a copy of the GNU Library General Public
+ * License along with this library; if not, write to the
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
+ */
+
+#ifdef HAVE_CONFIG_H
+# include <config.h>
+#endif
+
+#include <gst/check/gstcheck.h>
+
+
+GST_START_TEST (test_volume_in_sink)
+{
+  GstElement *pipe, *audiosink, *playsink, *fakesink, *volume, *src;
+  GstPad *sinkpad;
+  GstMessage *msg;
+
+  pipe = gst_pipeline_new (NULL);
+  playsink = gst_element_factory_make ("playsink", NULL);
+
+  audiosink = gst_bin_new ("audiosink");
+  volume = gst_element_factory_make ("volume", NULL);
+  fakesink = gst_element_factory_make ("fakesink", NULL);
+  gst_bin_add_many (GST_BIN (audiosink), volume, fakesink, NULL);
+  gst_element_link_many (volume, fakesink, NULL);
+  sinkpad = gst_element_get_static_pad (volume, "sink");
+  gst_element_add_pad (audiosink, gst_ghost_pad_new ("sink", sinkpad));
+  gst_object_unref (sinkpad);
+
+  g_object_set (playsink, "audio-sink", audiosink, NULL);
+
+  src = gst_element_factory_make ("audiotestsrc", NULL);
+  g_object_set (src, "num-buffers", 5, NULL);
+
+
+  gst_bin_add (GST_BIN (pipe), src);
+  gst_bin_add (GST_BIN (pipe), playsink);
+
+  if (!gst_element_link (src, playsink))
+    g_error ("oops");
+
+  fail_unless_equals_int (gst_element_set_state (pipe, GST_STATE_PLAYING),
+      GST_STATE_CHANGE_ASYNC);
+
+  /* wait for eos */
+  msg = gst_bus_timed_pop_filtered (GST_ELEMENT_BUS (pipe), GST_CLOCK_TIME_NONE,
+      GST_MESSAGE_EOS | GST_MESSAGE_ERROR);
+  fail_if (GST_MESSAGE_TYPE (msg) == GST_MESSAGE_ERROR);
+  gst_message_unref (msg);
+
+  fail_unless_equals_int (gst_element_set_state (pipe, GST_STATE_NULL),
+      GST_STATE_CHANGE_SUCCESS);
+
+  gst_object_unref (pipe);
+}
+
+GST_END_TEST;
+
+
+static Suite *
+playsink_suite (void)
+{
+  Suite *s = suite_create ("playsink");
+  TCase *tc_chain = tcase_create ("general");
+
+  suite_add_tcase (s, tc_chain);
+
+  tcase_add_test (tc_chain, test_volume_in_sink);
+
+  return s;
+}
+
+GST_CHECK_MAIN (playsink);
diff --git a/tests/check/elements/subparse.c b/tests/check/elements/subparse.c
index 306b7f8..8c827f0 100644
--- a/tests/check/elements/subparse.c
+++ b/tests/check/elements/subparse.c
@@ -160,6 +160,25 @@
       3090 * GST_MSECOND, 4000 * GST_MSECOND, "Three"}
 };
 
+/* Some WebVTT chunks, this format is similar to SRT but should be
+ * parsed differently nonetheless, the WebVTT tags should be stripped
+ * off. */
+static SubParseInputChunk srt_input4[] = {
+  {
+        "1\n00:00:01,000 --> 00:00:02,000\n<v>some text\n\n",
+      1 * GST_SECOND, 2 * GST_SECOND, "some text"}
+  ,
+  {
+        "1\n00:00:01,000 --> 00:00:02,000\n<b.loud>some text\n\n",
+      1 * GST_SECOND, 2 * GST_SECOND, "<b>some text</b>"}
+  ,
+  {
+        "1\n00:00:01,000 --> 00:00:02,000\n<ruby>base text<rt>annotation</rt></ruby>\n\n",
+        1 * GST_SECOND, 2 * GST_SECOND,
+      "base textannotation"}
+  ,
+};
+
 static void
 setup_subparse (void)
 {
@@ -260,6 +279,71 @@
   teardown_subparse ();
 }
 
+static void
+test_vtt_do_test (SubParseInputChunk * input, guint start_idx, guint num)
+{
+  guint n;
+
+  GST_LOG ("vtt test: start_idx = %u, num = %u", start_idx, num);
+
+  setup_subparse ();
+
+  for (n = start_idx; n < start_idx + num; ++n) {
+    GstBuffer *buf;
+    gchar *data = g_strconcat ("WEBVTT FILE\n", input[n].in, NULL);
+    buf = buffer_from_static_string (data);
+    fail_unless_equals_int (gst_pad_push (mysrcpad, buf), GST_FLOW_OK);
+    g_free (data);
+  }
+
+  gst_pad_push_event (mysrcpad, gst_event_new_eos ());
+
+  fail_unless_equals_int (g_list_length (buffers), num);
+
+  for (n = start_idx; n < start_idx + num; ++n) {
+    const GstStructure *buffer_caps_struct;
+    GstMapInfo map;
+    GstBuffer *buf;
+    GstCaps *outcaps;
+    gchar *out;
+    guint out_size;
+
+    buf = g_list_nth_data (buffers, n - start_idx);
+    fail_unless (buf != NULL);
+    fail_unless (GST_BUFFER_TIMESTAMP_IS_VALID (buf), NULL);
+    fail_unless (GST_BUFFER_DURATION_IS_VALID (buf), NULL);
+    fail_unless_equals_uint64 (GST_BUFFER_TIMESTAMP (buf), input[n].from_ts);
+    fail_unless_equals_uint64 (GST_BUFFER_DURATION (buf),
+        input[n].to_ts - input[n].from_ts);
+    fail_unless (gst_buffer_map (buf, &map, GST_MAP_READ));
+    out = (gchar *) map.data;
+
+    out_size = gst_buffer_get_size (buf);
+    /* shouldn't have trailing newline characters */
+    fail_if (out_size > 0 && out[out_size - 1] == '\n');
+    /* shouldn't include NUL-terminator in data size */
+    fail_if (out_size > 0 && out[out_size - 1] == '\0');
+    /* but should still have a  NUL-terminator behind the declared data */
+    fail_unless_equals_int (out[out_size], '\0');
+    /* make sure out string matches expected string */
+    fail_unless_equals_string (out, input[n].out);
+
+    gst_buffer_unmap (buf, &map);
+
+    /* check caps */
+    outcaps = gst_pad_get_current_caps (mysinkpad);
+    fail_unless (outcaps != NULL);
+    buffer_caps_struct = gst_caps_get_structure (outcaps, 0);
+    fail_unless_equals_string (gst_structure_get_name (buffer_caps_struct),
+        "text/x-raw");
+    fail_unless_equals_string (gst_structure_get_string (buffer_caps_struct,
+            "format"), "pango-markup");
+    gst_caps_unref (outcaps);
+  }
+
+  teardown_subparse ();
+}
+
 GST_START_TEST (test_srt)
 {
   test_srt_do_test (srt_input, 0, G_N_ELEMENTS (srt_input));
@@ -284,6 +368,96 @@
 
   /* try with fewer than three post-comma digits, and some extra spaces */
   test_srt_do_test (srt_input3, 0, G_N_ELEMENTS (srt_input3));
+
+  /* try with some WebVTT chunks */
+  test_srt_do_test (srt_input4, 0, G_N_ELEMENTS (srt_input4));
+}
+
+GST_END_TEST;
+
+
+GST_START_TEST (test_webvtt)
+{
+  SubParseInputChunk webvtt_input[] = {
+    {
+          "1\n00:00:01.000 --> 00:00:02.000 D:vertical T:50%\nOne\n\n",
+        1 * GST_SECOND, 2 * GST_SECOND, "One"}
+    ,
+    {
+          "1\n00:00:01.000 --> 00:00:02.000 D:vertical   T:50%\nOne\n\n",
+        1 * GST_SECOND, 2 * GST_SECOND, "One"}
+    ,
+    {
+          "1\n00:00:01.000 --> 00:00:02.000 D:vertical\tT:50%\nOne\n\n",
+        1 * GST_SECOND, 2 * GST_SECOND, "One"}
+    ,
+    {
+          "1\n00:00:01.000 --> 00:00:02.000 D:vertical-lr\nOne\n\n",
+        1 * GST_SECOND, 2 * GST_SECOND, "One"}
+    ,
+    {
+          "1\n00:00:01.000 --> 00:00:02.000 L:-123\nOne\n\n",
+        1 * GST_SECOND, 2 * GST_SECOND, "One"}
+    ,
+    {
+          "1\n00:00:01.000 --> 00:00:02.000 L:123\nOne\n\n",
+        1 * GST_SECOND, 2 * GST_SECOND, "One"}
+    ,
+    {
+          "1\n00:00:01.000 --> 00:00:02.000 L:12%\nOne\n\n",
+        1 * GST_SECOND, 2 * GST_SECOND, "One"}
+    ,
+    {
+          "1\n00:00:01.000 --> 00:00:02.000 L:12% S:35% A:start\nOne\n\n",
+        1 * GST_SECOND, 2 * GST_SECOND, "One"}
+    ,
+    {
+          "1\n00:00:01.000 --> 00:00:02.000 A:middle\nOne\n\n",
+        1 * GST_SECOND, 2 * GST_SECOND, "One"}
+    ,
+    {
+          "1\n00:00:01.000 --> 00:00:02.000 A:end\nOne\n\n",
+        1 * GST_SECOND, 2 * GST_SECOND, "One"}
+    ,
+    {
+          "1\n00:00:01.000 --> 00:00:02.000\nOne & Two\n\n",
+        1 * GST_SECOND, 2 * GST_SECOND, "One &amp; Two"}
+    ,
+    {
+          "1\n00:00:01.000 --> 00:00:02.000\nOne < Two\n\n",
+        1 * GST_SECOND, 2 * GST_SECOND, "One &lt; Two"}
+    ,
+    {
+          "1\n00:00:01.000 --> 00:00:02.000\n<v Spoke>Live long and prosper\n\n",
+        1 * GST_SECOND, 2 * GST_SECOND, "<v Spoke>Live long and prosper</v>"}
+    ,
+    {
+          "1\n00:00:01.000 --> 00:00:02.000\n<v The Joker>HAHAHA\n\n",
+        1 * GST_SECOND, 2 * GST_SECOND, "<v The Joker>HAHAHA</v>"}
+    ,
+    {
+          "1\n00:00:01.000 --> 00:00:02.000\n<c.someclass>some text\n\n",
+        1 * GST_SECOND, 2 * GST_SECOND, "<c.someclass>some text</c>"}
+    ,
+    {
+          "1\n00:00:01.000 --> 00:00:02.000\n<b.loud>some text\n\n",
+        1 * GST_SECOND, 2 * GST_SECOND, "<b.loud>some text</b>"}
+    ,
+    {
+          "1\n00:00:01.000 --> 00:00:02.000\n<ruby>base text<rt>annotation</rt></ruby>\n\n",
+          1 * GST_SECOND, 2 * GST_SECOND,
+        "<ruby>base text<rt>annotation</rt></ruby>"}
+    ,
+    {
+          "1\n00:00:01.000 --> 00:00:03.000\nOne... <00:00:00,200>Two... <00:00:00,500>Three...\n\n",
+          1 * GST_SECOND, 3 * GST_SECOND,
+        "One... &lt;00:00:00,200&gt;Two... &lt;00:00:00,500&gt;Three..."}
+    ,
+    {"1\n00:00:02.000 --> 00:00:03.000\nHello\nWorld\n\n",
+        2 * GST_SECOND, 3 * GST_SECOND, "Hello\nWorld"}
+    ,
+  };
+  test_vtt_do_test (webvtt_input, 0, G_N_ELEMENTS (webvtt_input));
 }
 
 GST_END_TEST;
@@ -836,6 +1010,7 @@
   suite_add_tcase (s, tc_chain);
 
   tcase_add_test (tc_chain, test_srt);
+  tcase_add_test (tc_chain, test_webvtt);
   tcase_add_test (tc_chain, test_tmplayer_multiline);
   tcase_add_test (tc_chain, test_tmplayer_multiline_with_bogus_lines);
   tcase_add_test (tc_chain, test_tmplayer_style1);
diff --git a/tests/check/elements/videoscale.c b/tests/check/elements/videoscale.c
index 369df32..9762048 100644
--- a/tests/check/elements/videoscale.c
+++ b/tests/check/elements/videoscale.c
@@ -809,8 +809,7 @@
       "Test Reverse Negotiation Sink",
       "Sink",
       "Some test sink", "Sebastian Dröge <sebastian.droege@collabora.co.uk>");
-  gst_element_class_add_pad_template (gstelement_class,
-      gst_static_pad_template_get (&sinktemplate));
+  gst_element_class_add_static_pad_template (gstelement_class, &sinktemplate);
 
 #if 0
   gstbase_sink_class->buffer_alloc =
diff --git a/tests/check/elements/vorbistag.c b/tests/check/elements/vorbistag.c
index 74a7075..0ffa102 100644
--- a/tests/check/elements/vorbistag.c
+++ b/tests/check/elements/vorbistag.c
@@ -118,6 +118,7 @@
 
   gst_pad_set_active (mysrcpad, FALSE);
   gst_pad_set_active (mysinkpad, FALSE);
+  gst_check_drop_buffers ();
   gst_check_teardown_src_pad (vorbistag);
   gst_check_teardown_sink_pad (vorbistag);
   gst_check_teardown_element (vorbistag);
diff --git a/tests/check/libs/audiodecoder.c b/tests/check/libs/audiodecoder.c
index 5b92caf..cba7a35 100644
--- a/tests/check/libs/audiodecoder.c
+++ b/tests/check/libs/audiodecoder.c
@@ -73,6 +73,8 @@
 
   gboolean setoutputformat_on_decoding;
   gboolean output_too_many_frames;
+  gboolean delay_decoding;
+  GstBuffer *prev_buf;
 };
 
 struct _GstAudioDecoderTesterClass
@@ -92,6 +94,11 @@
 static gboolean
 gst_audio_decoder_tester_stop (GstAudioDecoder * dec)
 {
+  GstAudioDecoderTester *tester = (GstAudioDecoderTester *)dec;
+  if (tester->prev_buf) {
+    gst_buffer_unref (tester->prev_buf);
+    tester->prev_buf = NULL;
+  }
   return TRUE;
 }
 
@@ -127,10 +134,14 @@
   gint size;
   GstMapInfo map;
   GstBuffer *output_buffer;
+  GstFlowReturn ret = GST_FLOW_OK;
+  gboolean do_plc = gst_audio_decoder_get_plc (dec) &&
+      gst_audio_decoder_get_plc_aware (dec);
 
-  if (buffer == NULL)
+  if (buffer == NULL || (!do_plc && gst_buffer_get_size (buffer) == 0))
     return GST_FLOW_OK;
 
+  gst_buffer_ref (buffer);
   if (tester->setoutputformat_on_decoding) {
     GstCaps *caps;
     GstAudioInfo info;
@@ -143,25 +154,46 @@
 
     gst_audio_decoder_set_output_format (dec, &info);
   }
+  if ((tester->delay_decoding && tester->prev_buf != NULL) ||
+      !tester->delay_decoding) {
+    gsize buf_num = tester->delay_decoding ? 2 : 1;
+    for (gint i = 0; i != buf_num; ++i) {
+      GstBuffer *cur_buf = buf_num == 1 || i != 0 ? buffer : tester->prev_buf;
+      gst_buffer_map (cur_buf, &map, GST_MAP_READ);
 
-  gst_buffer_map (buffer, &map, GST_MAP_READ);
+      /* the output is SE32LE stereo 44100 Hz */
+      size = 2 * 4;
+      g_assert (size == sizeof (guint64));
+      data = g_malloc0 (size);
 
-  /* the output is SE32LE stereo 44100 Hz */
-  size = 2 * 4;
-  g_assert (size == sizeof (guint64));
-  data = g_malloc0 (size);
+      if (map.size) {
+        g_assert_cmpint (map.size, >=, sizeof (guint64));
+        memcpy (data, map.data, sizeof (guint64));
+      }
 
-  memcpy (data, map.data, sizeof (guint64));
+      output_buffer = gst_buffer_new_wrapped (data, size);
 
-  output_buffer = gst_buffer_new_wrapped (data, size);
+      gst_buffer_unmap (cur_buf, &map);
 
-  gst_buffer_unmap (buffer, &map);
-
-  if (tester->output_too_many_frames) {
-    return gst_audio_decoder_finish_frame (dec, output_buffer, 2);
-  } else {
-    return gst_audio_decoder_finish_frame (dec, output_buffer, 1);
+      if (tester->output_too_many_frames) {
+        ret = gst_audio_decoder_finish_frame (dec, output_buffer, 2);
+      } else {
+        ret = gst_audio_decoder_finish_frame (dec, output_buffer, 1);
+      }
+      if (ret != GST_FLOW_OK)
+        break;
+    }
+    tester->delay_decoding = FALSE;
   }
+
+  if (tester->prev_buf)
+    gst_buffer_unref (tester->prev_buf);
+  tester->prev_buf = NULL;
+  if (tester->delay_decoding)
+    tester->prev_buf = buffer;
+  else
+    gst_buffer_unref (buffer);
+  return ret;
 }
 
 static void
@@ -178,10 +210,8 @@
       GST_PAD_SRC, GST_PAD_ALWAYS,
       GST_STATIC_CAPS ("audio/x-raw"));
 
-  gst_element_class_add_pad_template (element_class,
-      gst_static_pad_template_get (&sink_templ));
-  gst_element_class_add_pad_template (element_class,
-      gst_static_pad_template_get (&src_templ));
+  gst_element_class_add_static_pad_template (element_class, &sink_templ);
+  gst_element_class_add_static_pad_template (element_class, &src_templ);
 
   gst_element_class_set_metadata (element_class,
       "AudioDecoderTester", "Decoder/Audio", "yep", "me");
@@ -1012,6 +1042,92 @@
 
 GST_END_TEST;
 
+GST_START_TEST (audiodecoder_plc_on_gap_event)
+{
+  /* GstAudioDecoder should not mark the stream DISCOUNT flag when
+  concealed audio eliminate discontinuity. More important it should not
+  mess with the timestamps */
+
+  GstClockTime pts;
+  GstClockTime dur = gst_util_uint64_scale_round (1, GST_SECOND, TEST_MSECS_PER_SAMPLE);
+  GstBuffer *buf;
+  GstHarness *h = setup_audiodecodertester (NULL, NULL);
+  gst_audio_decoder_set_plc_aware (GST_AUDIO_DECODER (h->element), TRUE);
+  gst_audio_decoder_set_plc (GST_AUDIO_DECODER (h->element), TRUE);
+
+  pts = gst_util_uint64_scale_round (0, GST_SECOND, TEST_MSECS_PER_SAMPLE);
+  gst_harness_push (h, create_test_buffer(0));
+  buf = gst_harness_pull (h);
+  fail_unless_equals_int (pts, GST_BUFFER_PTS (buf));
+  fail_unless_equals_int (dur, GST_BUFFER_DURATION (buf));
+  fail_unless (GST_BUFFER_FLAG_IS_SET (buf, GST_BUFFER_FLAG_DISCONT));
+  gst_buffer_unref (buf);
+
+  pts = gst_util_uint64_scale_round (1, GST_SECOND, TEST_MSECS_PER_SAMPLE);
+  gst_harness_push_event (h, gst_event_new_gap (pts, dur));
+  buf = gst_harness_pull (h);
+  fail_unless_equals_int (pts, GST_BUFFER_PTS (buf));
+  fail_unless_equals_int (dur, GST_BUFFER_DURATION (buf));
+  fail_unless (!GST_BUFFER_FLAG_IS_SET (buf, GST_BUFFER_FLAG_DISCONT));
+  gst_buffer_unref (buf);
+
+  pts = gst_util_uint64_scale_round (2, GST_SECOND, TEST_MSECS_PER_SAMPLE);
+  buf = create_test_buffer(2);
+  GST_BUFFER_FLAG_SET (buf, GST_BUFFER_FLAG_DISCONT);
+  gst_harness_push (h, buf);
+  buf = gst_harness_pull (h);
+  fail_unless_equals_int (pts, GST_BUFFER_PTS (buf));
+  fail_unless_equals_int (dur, GST_BUFFER_DURATION (buf));
+  fail_unless (!GST_BUFFER_FLAG_IS_SET (buf, GST_BUFFER_FLAG_DISCONT));
+  gst_buffer_unref (buf);
+  gst_harness_teardown (h);
+}
+GST_END_TEST;
+
+GST_START_TEST (audiodecoder_plc_on_gap_event_with_delay)
+{
+  /* The same thing as in audiodecoder_plc_on_gap_event, but GstAudioDecoder
+  subclass delays the decoding
+  */
+  GstClockTime pts0, pts1;
+  GstClockTime dur = gst_util_uint64_scale_round (1, GST_SECOND, TEST_MSECS_PER_SAMPLE);
+  GstBuffer *buf;
+  GstHarness *h = setup_audiodecodertester (NULL, NULL);
+  gst_audio_decoder_set_plc_aware (GST_AUDIO_DECODER (h->element), TRUE);
+  gst_audio_decoder_set_plc (GST_AUDIO_DECODER (h->element), TRUE);
+
+  pts0 = gst_util_uint64_scale_round (0, GST_SECOND, TEST_MSECS_PER_SAMPLE);;
+  gst_harness_push (h, create_test_buffer(0));
+  buf = gst_harness_pull (h);
+  fail_unless_equals_int (pts0, GST_BUFFER_PTS (buf));
+  fail_unless_equals_int (dur, GST_BUFFER_DURATION (buf));
+  fail_unless (GST_BUFFER_FLAG_IS_SET (buf, GST_BUFFER_FLAG_DISCONT));
+  gst_buffer_unref (buf);
+
+  ((GstAudioDecoderTester *)h->element)->delay_decoding = TRUE;
+  pts0 = gst_util_uint64_scale_round (1, GST_SECOND, TEST_MSECS_PER_SAMPLE);
+  gst_harness_push_event (h, gst_event_new_gap (pts0, dur));
+  fail_unless_equals_int (0, gst_harness_buffers_in_queue (h));
+
+  pts1 = gst_util_uint64_scale_round (2, GST_SECOND, TEST_MSECS_PER_SAMPLE);
+  buf = create_test_buffer(2);
+  GST_BUFFER_FLAG_SET (buf, GST_BUFFER_FLAG_DISCONT);
+  gst_harness_push (h, buf);
+  buf = gst_harness_pull (h);
+  fail_unless_equals_int (pts0, GST_BUFFER_PTS (buf));
+  fail_unless_equals_int (dur, GST_BUFFER_DURATION (buf));
+  fail_unless (!GST_BUFFER_FLAG_IS_SET (buf, GST_BUFFER_FLAG_DISCONT));
+  gst_buffer_unref (buf);
+
+  buf = gst_harness_pull (h);
+  fail_unless_equals_int (pts1, GST_BUFFER_PTS (buf));
+  fail_unless_equals_int (dur, GST_BUFFER_DURATION (buf));
+  fail_unless (!GST_BUFFER_FLAG_IS_SET (buf, GST_BUFFER_FLAG_DISCONT));
+  gst_buffer_unref (buf);
+  gst_harness_teardown (h);
+}
+GST_END_TEST;
+
 static Suite *
 gst_audiodecoder_suite (void)
 {
@@ -1039,6 +1155,9 @@
 
   tcase_add_test (tc, audiodecoder_tag_handling);
 
+  tcase_add_test (tc, audiodecoder_plc_on_gap_event);
+  tcase_add_test (tc, audiodecoder_plc_on_gap_event_with_delay);
+
   return s;
 }
 
diff --git a/tests/check/libs/audioencoder.c b/tests/check/libs/audioencoder.c
index 614440d..bcaf8d9 100644
--- a/tests/check/libs/audioencoder.c
+++ b/tests/check/libs/audioencoder.c
@@ -116,10 +116,8 @@
       GST_PAD_SRC, GST_PAD_ALWAYS,
       GST_STATIC_CAPS ("audio/x-test-custom"));
 
-  gst_element_class_add_pad_template (element_class,
-      gst_static_pad_template_get (&sink_templ));
-  gst_element_class_add_pad_template (element_class,
-      gst_static_pad_template_get (&src_templ));
+  gst_element_class_add_static_pad_template (element_class, &sink_templ);
+  gst_element_class_add_static_pad_template (element_class, &src_templ);
 
   gst_element_class_set_metadata (element_class,
       "AudioEncoderTester", "Encoder/Audio", "yep", "me");
diff --git a/tests/check/libs/baseaudiovisualizer.c b/tests/check/libs/baseaudiovisualizer.c
index 70d7264..3e26de5 100644
--- a/tests/check/libs/baseaudiovisualizer.c
+++ b/tests/check/libs/baseaudiovisualizer.c
@@ -74,10 +74,10 @@
       "Visualization",
       "Dummy test scope", "Stefan Kost <ensonic@users.sf.net>");
 
-  gst_element_class_add_pad_template (element_class,
-      gst_static_pad_template_get (&gst_test_scope_src_template));
-  gst_element_class_add_pad_template (element_class,
-      gst_static_pad_template_get (&gst_test_scope_sink_template));
+  gst_element_class_add_static_pad_template (element_class,
+      &gst_test_scope_src_template);
+  gst_element_class_add_static_pad_template (element_class,
+      &gst_test_scope_sink_template);
 }
 
 static void
diff --git a/tests/check/libs/discoverer.c b/tests/check/libs/discoverer.c
index 8fe5ecf..bbee562 100644
--- a/tests/check/libs/discoverer.c
+++ b/tests/check/libs/discoverer.c
@@ -29,6 +29,7 @@
 #include <glib/gstdio.h>
 #include <glib/gprintf.h>
 
+static gboolean have_theora, have_ogg;
 
 GST_START_TEST (test_disco_init)
 {
@@ -66,6 +67,15 @@
 
   info = gst_discoverer_discover_uri (dc, uri, &err);
   fail_unless (info);
+  if (have_theora && have_ogg) {
+    fail_unless_equals_int (gst_discoverer_info_get_result (info),
+        GST_DISCOVERER_OK);
+  } else {
+    fail_unless_equals_int (gst_discoverer_info_get_result (info),
+        GST_DISCOVERER_MISSING_PLUGINS);
+    g_clear_error (&err);
+    goto missing_plugins;
+  }
   serialized =
       gst_discoverer_info_to_variant (info, GST_DISCOVERER_SERIALIZE_ALL);
 
@@ -83,13 +93,15 @@
 
   fail_unless (g_variant_equal (serialized, reserialized));
 
-  gst_discoverer_info_unref (info);
   gst_discoverer_info_unref (dinfo);
-  g_free (uri);
   g_variant_unref (serialized);
   g_variant_unref (reserialized);
 
+missing_plugins:
+
+  gst_discoverer_info_unref (info);
   g_object_unref (dc);
+  g_free (uri);
 }
 
 GST_END_TEST;
@@ -237,6 +249,11 @@
   Suite *s = suite_create ("discoverer");
   TCase *tc_chain = tcase_create ("general");
 
+  have_theora = gst_registry_check_feature_version (gst_registry_get (),
+      "theoradec", GST_VERSION_MAJOR, GST_VERSION_MINOR, 0);
+  have_ogg = gst_registry_check_feature_version (gst_registry_get (),
+      "oggdemux", GST_VERSION_MAJOR, GST_VERSION_MINOR, 0);
+
   suite_add_tcase (s, tc_chain);
   tcase_add_test (tc_chain, test_disco_init);
   tcase_add_test (tc_chain, test_disco_sync);
diff --git a/tests/check/libs/gstlibscpp.cc b/tests/check/libs/gstlibscpp.cc
index eaf7dbb..5a84ea3 100644
--- a/tests/check/libs/gstlibscpp.cc
+++ b/tests/check/libs/gstlibscpp.cc
@@ -102,6 +102,17 @@
 
 GST_END_TEST;
 
+GST_START_TEST (test_init_macros)
+{
+  GstRTCPBuffer rtcp = GST_RTCP_BUFFER_INIT;
+  GstRTPBuffer rtp = GST_RTP_BUFFER_INIT;
+
+  fail_unless_equals_int (rtp.size[0], 0)
+  fail_unless_equals_int (rtcp.map.size, 0);
+}
+
+GST_END_TEST;
+
 static Suite *
 libscpp_suite (void)
 {
@@ -110,6 +121,7 @@
 
   suite_add_tcase (s, tc_chain);
   tcase_add_test (tc_chain, test_nothing);
+  tcase_add_test (tc_chain, test_init_macros);
 
   return s;
 }
diff --git a/tests/check/libs/rtp.c b/tests/check/libs/rtp.c
index d69357a..20c01ab 100644
--- a/tests/check/libs/rtp.c
+++ b/tests/check/libs/rtp.c
@@ -991,6 +991,152 @@
 
 GST_END_TEST;
 
+GST_START_TEST (test_rtcp_buffer_profile_specific_extension)
+{
+  GstBuffer *buf;
+  GstRTCPBuffer rtcp = GST_RTCP_BUFFER_INIT;
+  GstRTCPPacket packet;
+  const guint8 pse[] = { 0x00, 0x11, 0x22, 0x33, 0x44, 0x55, 0x66, 0x77 };
+  const guint8 pse2[] = { 0x01, 0x23, 0x45, 0x67 };
+
+  fail_unless ((buf = gst_rtcp_buffer_new (1400)) != NULL);
+  gst_rtcp_buffer_map (buf, GST_MAP_READWRITE, &rtcp);
+
+  fail_unless (gst_rtcp_buffer_validate (buf) == FALSE);
+  fail_unless (gst_rtcp_buffer_get_first_packet (&rtcp, &packet) == FALSE);
+  fail_unless (gst_rtcp_buffer_get_packet_count (&rtcp) == 0);
+
+  /* add an SR packet with sender info */
+  fail_unless (gst_rtcp_buffer_add_packet (&rtcp, GST_RTCP_TYPE_SR, &packet));
+  gst_rtcp_packet_sr_set_sender_info (&packet, 0x44556677,
+      G_GUINT64_CONSTANT (1), 0x11111111, 101, 123456);
+  fail_unless_equals_int (0,
+      gst_rtcp_packet_get_profile_specific_ext_length (&packet));
+  fail_unless_equals_int (6, gst_rtcp_packet_get_length (&packet));
+
+  /* add profile-specific extension */
+  fail_unless (gst_rtcp_packet_add_profile_specific_ext (&packet,
+          pse, sizeof (pse)));
+  {
+    guint8 *data = NULL;
+    guint len = 0;
+
+    fail_unless_equals_int (8, gst_rtcp_packet_get_length (&packet));
+    fail_unless_equals_int (sizeof (pse) / 4,
+        gst_rtcp_packet_get_profile_specific_ext_length (&packet));
+
+    /* gst_rtcp_packet_get_profile_specific_ext */
+    fail_unless (gst_rtcp_packet_get_profile_specific_ext (&packet, &data,
+            &len));
+    fail_unless_equals_int (sizeof (pse), len);
+    fail_unless (data != NULL);
+    fail_unless_equals_int (0, memcmp (pse, data, sizeof (pse)));
+
+    /* gst_rtcp_packet_copy_profile_specific_ext */
+    fail_unless (gst_rtcp_packet_copy_profile_specific_ext (&packet, &data,
+            &len));
+    fail_unless_equals_int (sizeof (pse), len);
+    fail_unless (data != NULL);
+    fail_unless_equals_int (0, memcmp (pse, data, sizeof (pse)));
+    g_free (data);
+  }
+
+  /* append more profile-specific extension */
+  fail_unless (gst_rtcp_packet_add_profile_specific_ext (&packet,
+          pse2, sizeof (pse2)));
+  {
+    guint8 *data = NULL;
+    guint len = 0;
+    guint concat_len;
+    guint8 *concat_pse;
+
+    /* Expect the second extension to be appended to the first */
+    concat_len = sizeof (pse) + sizeof (pse2);
+    concat_pse = g_malloc (concat_len);
+    memcpy (concat_pse, pse, sizeof (pse));
+    memcpy (concat_pse + sizeof (pse), pse2, sizeof (pse2));
+
+    fail_unless_equals_int (9, gst_rtcp_packet_get_length (&packet));
+    fail_unless_equals_int (concat_len / 4,
+        gst_rtcp_packet_get_profile_specific_ext_length (&packet));
+
+    /* gst_rtcp_packet_get_profile_specific_ext */
+    fail_unless (gst_rtcp_packet_get_profile_specific_ext (&packet, &data,
+            &len));
+    fail_unless_equals_int (concat_len, len);
+    fail_unless (data != NULL);
+    fail_unless_equals_int (0, memcmp (concat_pse, data, len));
+
+    /* gst_rtcp_packet_copy_profile_specific_ext */
+    fail_unless (gst_rtcp_packet_copy_profile_specific_ext (&packet, &data,
+            &len));
+    fail_unless_equals_int (concat_len, len);
+    fail_unless (data != NULL);
+    fail_unless_equals_int (0, memcmp (concat_pse, data, len));
+    g_free (data);
+    g_free (concat_pse);
+  }
+
+  /* close and validate */
+  gst_rtcp_buffer_unmap (&rtcp);
+  fail_unless (gst_rtcp_buffer_validate (buf) == TRUE);
+  gst_buffer_unref (buf);
+}
+
+GST_END_TEST;
+
+GST_START_TEST (test_rtcp_buffer_app)
+{
+  GstBuffer *buf;
+  GstRTCPBuffer rtcp = GST_RTCP_BUFFER_INIT;
+  GstRTCPPacket packet;
+  guint mtu = 1000;
+  const guint8 data[] = { 0x00, 0x11, 0x22, 0x33, 0x44, 0x55, 0x66, 0x77 };
+  guint max_data_length = (mtu - 12) / 4;
+  guint8 *data_ptr;
+
+  fail_unless ((buf = gst_rtcp_buffer_new (mtu)) != NULL);
+  gst_rtcp_buffer_map (buf, GST_MAP_READWRITE, &rtcp);
+
+  /* Not a valid packet yet */
+  fail_if (gst_rtcp_buffer_validate (buf));
+  fail_if (gst_rtcp_buffer_get_first_packet (&rtcp, &packet));
+  fail_unless_equals_int (gst_rtcp_buffer_get_packet_count (&rtcp), 0);
+
+  /* Add APP packet  */
+  fail_unless (gst_rtcp_buffer_add_packet (&rtcp, GST_RTCP_TYPE_APP, &packet));
+  gst_rtcp_packet_app_set_subtype (&packet, 0x15);
+  gst_rtcp_packet_app_set_ssrc (&packet, 0x01234567);
+  gst_rtcp_packet_app_set_name (&packet, "Test");
+
+  /* Check maximum allowed data */
+  fail_if (gst_rtcp_packet_app_set_data_length (&packet, max_data_length + 1));
+  fail_unless (gst_rtcp_packet_app_set_data_length (&packet, max_data_length));
+
+  /* Add data */
+  fail_unless (gst_rtcp_packet_app_set_data_length (&packet,
+          (sizeof (data) + 3) / 4));
+  fail_unless_equals_int (gst_rtcp_packet_app_get_data_length (&packet), 2);
+  fail_unless ((data_ptr = gst_rtcp_packet_app_get_data (&packet)));
+  memcpy (data_ptr, data, sizeof (data));
+
+  gst_rtcp_buffer_unmap (&rtcp);
+
+  /* Map again with only the READ flag and check fields */
+  gst_rtcp_buffer_map (buf, GST_MAP_READ, &rtcp);
+  fail_unless_equals_int (gst_rtcp_packet_app_get_subtype (&packet), 0x15);
+  fail_unless_equals_int (gst_rtcp_packet_app_get_ssrc (&packet), 0x01234567);
+  fail_unless (memcmp (gst_rtcp_packet_app_get_name (&packet), "Test", 4) == 0);
+  fail_unless_equals_int (gst_rtcp_packet_app_get_data_length (&packet), 2);
+  fail_unless ((data_ptr = gst_rtcp_packet_app_get_data (&packet)));
+  fail_unless (memcmp (data_ptr, data, sizeof (data)) == 0);
+  gst_rtcp_buffer_unmap (&rtcp);
+
+  gst_buffer_unref (buf);
+}
+
+GST_END_TEST;
+
 GST_START_TEST (test_rtp_ntp64_extension)
 {
   GstBuffer *buf;
@@ -1231,6 +1377,9 @@
       test_rtcp_validate_with_padding_set_in_first_packet);
   tcase_add_test (tc_chain, test_rtcp_validate_reduced_without_padding);
   tcase_add_test (tc_chain, test_rtcp_validate_reduced_with_padding);
+  tcase_add_test (tc_chain, test_rtcp_buffer_profile_specific_extension);
+  tcase_add_test (tc_chain, test_rtcp_buffer_app);
+
   tcase_add_test (tc_chain, test_rtp_ntp64_extension);
   tcase_add_test (tc_chain, test_rtp_ntp56_extension);
 
diff --git a/tests/check/libs/rtpbasedepayload.c b/tests/check/libs/rtpbasedepayload.c
index 003f2f0..63cbc87 100644
--- a/tests/check/libs/rtpbasedepayload.c
+++ b/tests/check/libs/rtpbasedepayload.c
@@ -83,10 +83,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_dummy_depay_sink_template));
-  gst_element_class_add_pad_template (gstelement_class,
-      gst_static_pad_template_get (&gst_rtp_dummy_depay_src_template));
+  gst_element_class_add_static_pad_template (gstelement_class,
+      &gst_rtp_dummy_depay_sink_template);
+  gst_element_class_add_static_pad_template (gstelement_class,
+      &gst_rtp_dummy_depay_src_template);
 
   gstrtpbasedepayload_class->process = gst_rtp_dummy_depay_process;
   gstrtpbasedepayload_class->set_caps = gst_rtp_dummy_depay_set_caps;
@@ -730,6 +730,50 @@
 }
 
 GST_END_TEST
+/* The same scenario as in rtp_base_depayload_reversed_test
+ * except that SSRC is changed for the 2nd packet that is why
+ * it should not be discarded.
+ */
+GST_START_TEST (rtp_base_depayload_ssrc_changed_test)
+{
+  State *state;
+
+  state = create_depayloader ("application/x-rtp", NULL);
+
+  set_state (state, GST_STATE_PLAYING);
+
+  push_rtp_buffer (state,
+      "pts", 0 * GST_SECOND,
+      "rtptime", G_GUINT64_CONSTANT (0x43214321),
+      "seq", 0x4242, "ssrc", 0xabe2b0b, NULL);
+
+  push_rtp_buffer (state,
+      "pts", 1 * GST_SECOND,
+      "rtptime", G_GUINT64_CONSTANT (0x43214321) + 1 * DEFAULT_CLOCK_RATE,
+      "seq", 0x4242 - 1, "ssrc", 0xcafebabe, NULL);
+
+  set_state (state, GST_STATE_NULL);
+
+  validate_buffers_received (2);
+
+  validate_buffer (0, "pts", 0 * GST_SECOND, "discont", FALSE, NULL);
+
+  validate_buffer (1, "pts", 1 * GST_SECOND, "discont", TRUE, NULL);
+
+  validate_events_received (3);
+
+  validate_event (0, "stream-start", NULL);
+
+  validate_event (1, "caps", "media-type", "application/x-rtp", NULL);
+
+  validate_event (2, "segment",
+      "time", G_GUINT64_CONSTANT (0),
+      "start", G_GUINT64_CONSTANT (0), "stop", G_MAXUINT64, NULL);
+
+  destroy_depayloader (state);
+}
+
+GST_END_TEST
 /* the intent of this test is to push two RTP packets that have reverse sequence
  * numbers that differ significantly. the depayloader will consider RTP packets
  * where the sequence numbers differ by more than 1000 to indicate that the
@@ -1198,6 +1242,7 @@
   tcase_add_test (tc_chain, rtp_base_depayload_invalid_rtp_packet_test);
   tcase_add_test (tc_chain, rtp_base_depayload_with_gap_test);
   tcase_add_test (tc_chain, rtp_base_depayload_reversed_test);
+  tcase_add_test (tc_chain, rtp_base_depayload_ssrc_changed_test);
   tcase_add_test (tc_chain, rtp_base_depayload_old_reversed_test);
 
   tcase_add_test (tc_chain, rtp_base_depayload_without_negotiation_test);
diff --git a/tests/check/libs/rtpbasepayload.c b/tests/check/libs/rtpbasepayload.c
index 09f5ca0..3cc6e41 100644
--- a/tests/check/libs/rtpbasepayload.c
+++ b/tests/check/libs/rtpbasepayload.c
@@ -80,10 +80,10 @@
   gstelement_class = GST_ELEMENT_CLASS (klass);
   gstrtpbasepayload_class = GST_RTP_BASE_PAYLOAD_CLASS (klass);
 
-  gst_element_class_add_pad_template (gstelement_class,
-      gst_static_pad_template_get (&gst_rtp_dummy_pay_sink_template));
-  gst_element_class_add_pad_template (gstelement_class,
-      gst_static_pad_template_get (&gst_rtp_dummy_pay_src_template));
+  gst_element_class_add_static_pad_template (gstelement_class,
+      &gst_rtp_dummy_pay_sink_template);
+  gst_element_class_add_static_pad_template (gstelement_class,
+      &gst_rtp_dummy_pay_src_template);
 
   gstrtpbasepayload_class->handle_buffer = gst_rtp_dummy_pay_handle_buffer;
 }
diff --git a/tests/check/libs/tag.c b/tests/check/libs/tag.c
index e8244bf..992b198 100644
--- a/tests/check/libs/tag.c
+++ b/tests/check/libs/tag.c
@@ -1676,10 +1676,11 @@
   g_value_unset (&value);
 
   g_value_init (&value, G_TYPE_DOUBLE);
-  g_value_set_double (&value, 30.5);
+  g_value_set_double (&value, 40.3456784);
   do_simple_exif_tag_serialization_deserialization
       (GST_TAG_GEO_LOCATION_LATITUDE, &value);
-  g_value_set_double (&value, -12.125);
+  g_value_set_double (&value, -12.1250865);
+
   do_simple_exif_tag_serialization_deserialization
       (GST_TAG_GEO_LOCATION_LATITUDE, &value);
   g_value_set_double (&value, 0);
@@ -1775,6 +1776,10 @@
   g_value_set_double (&value, -2.5);
   do_simple_exif_tag_serialization_deserialization
       (GST_TAG_CAPTURING_EXPOSURE_COMPENSATION, &value);
+
+  g_value_set_double (&value, 50.0);
+  do_simple_exif_tag_serialization_deserialization
+      (GST_TAG_CAPTURING_FOCAL_LENGTH_35_MM, &value);
   g_value_unset (&value);
 
   g_value_init (&value, G_TYPE_INT);
diff --git a/tests/check/libs/video.c b/tests/check/libs/video.c
index 86c565f..1b0c7c4 100644
--- a/tests/check/libs/video.c
+++ b/tests/check/libs/video.c
@@ -343,6 +343,7 @@
     case GST_VIDEO_FORMAT_YVU9:
       return FALSE;
     case GST_VIDEO_FORMAT_IYU1:
+    case GST_VIDEO_FORMAT_IYU2:
     case GST_VIDEO_FORMAT_YUY2:
     case GST_VIDEO_FORMAT_YVYU:
     case GST_VIDEO_FORMAT_UYVY:
diff --git a/tests/check/libs/videodecoder.c b/tests/check/libs/videodecoder.c
index 1fc9f36..b780079 100644
--- a/tests/check/libs/videodecoder.c
+++ b/tests/check/libs/videodecoder.c
@@ -185,10 +185,8 @@
       GST_PAD_SRC, GST_PAD_ALWAYS,
       GST_STATIC_CAPS ("video/x-raw"));
 
-  gst_element_class_add_pad_template (element_class,
-      gst_static_pad_template_get (&sink_templ));
-  gst_element_class_add_pad_template (element_class,
-      gst_static_pad_template_get (&src_templ));
+  gst_element_class_add_static_pad_template (element_class, &sink_templ);
+  gst_element_class_add_static_pad_template (element_class, &src_templ);
 
   gst_element_class_set_metadata (element_class,
       "VideoDecoderTester", "Decoder/Video", "yep", "me");
diff --git a/tests/check/libs/videoencoder.c b/tests/check/libs/videoencoder.c
index 1844ab6..e1c180d 100644
--- a/tests/check/libs/videoencoder.c
+++ b/tests/check/libs/videoencoder.c
@@ -128,10 +128,8 @@
       GST_PAD_SRC, GST_PAD_ALWAYS,
       GST_STATIC_CAPS ("video/x-test-custom"));
 
-  gst_element_class_add_pad_template (element_class,
-      gst_static_pad_template_get (&sink_templ));
-  gst_element_class_add_pad_template (element_class,
-      gst_static_pad_template_get (&src_templ));
+  gst_element_class_add_static_pad_template (element_class, &sink_templ);
+  gst_element_class_add_static_pad_template (element_class, &src_templ);
 
   gst_element_class_set_metadata (element_class,
       "VideoEncoderTester", "Encoder/Video", "yep", "me");
diff --git a/tests/check/pipelines/vorbisenc.c b/tests/check/pipelines/vorbisenc.c
index 246c903..6eeefcc 100644
--- a/tests/check/pipelines/vorbisenc.c
+++ b/tests/check/pipelines/vorbisenc.c
@@ -96,7 +96,7 @@
 
   pipe_str = g_strdup_printf ("audiotestsrc timestamp-offset=%" G_GUINT64_FORMAT
       " ! audio/x-raw,rate=44100"
-      " ! audioconvert ! vorbisenc ! fakesink", TIMESTAMP_OFFSET);
+      " ! audioconvert ! vorbisenc ! fakesink name=sink", TIMESTAMP_OFFSET);
 
   bin = gst_parse_launch (pipe_str, &error);
   fail_unless (bin != NULL, "Error parsing pipeline: %s",
@@ -105,7 +105,7 @@
 
   /* get the pad */
   {
-    GstElement *sink = gst_bin_get_by_name (GST_BIN (bin), "fakesink0");
+    GstElement *sink = gst_bin_get_by_name (GST_BIN (bin), "sink");
 
     fail_unless (sink != NULL, "Could not get fakesink out of bin");
     pad = gst_element_get_static_pad (sink, "sink");
@@ -187,7 +187,8 @@
   GError *error = NULL;
 
   pipe_str = g_strdup_printf ("audiotestsrc"
-      " ! audio/x-raw,rate=44100 ! audioconvert ! vorbisenc ! fakesink");
+      " ! audio/x-raw,rate=44100 ! audioconvert ! vorbisenc "
+      " ! fakesink name=sink");
 
   bin = gst_parse_launch (pipe_str, &error);
   fail_unless (bin != NULL, "Error parsing pipeline: %s",
@@ -196,7 +197,7 @@
 
   /* get the pad */
   {
-    GstElement *sink = gst_bin_get_by_name (GST_BIN (bin), "fakesink0");
+    GstElement *sink = gst_bin_get_by_name (GST_BIN (bin), "sink");
 
     fail_unless (sink != NULL, "Could not get fakesink out of bin");
     pad = gst_element_get_static_pad (sink, "sink");
@@ -287,8 +288,8 @@
 
   /* make audioencoder act sufficiently pedantic */
   pipe_str = g_strdup_printf ("audiotestsrc samplesperbuffer=1024"
-      " ! audio/x-raw,rate=44100" " ! audioconvert "
-      " ! vorbisenc tolerance=10000000 ! fakesink");
+      " ! audio/x-raw,rate=44100 ! audioconvert "
+      " ! vorbisenc tolerance=10000000 name=enc ! fakesink name=sink");
 
   bin = gst_parse_launch (pipe_str, &error);
   fail_unless (bin != NULL, "Error parsing pipeline: %s",
@@ -300,7 +301,7 @@
 
   /* get the pad to use to drop buffers */
   {
-    GstElement *sink = gst_bin_get_by_name (GST_BIN (bin), "vorbisenc0");
+    GstElement *sink = gst_bin_get_by_name (GST_BIN (bin), "enc");
 
     fail_unless (sink != NULL, "Could not get vorbisenc out of bin");
     droppad = gst_element_get_static_pad (sink, "sink");
@@ -310,7 +311,7 @@
 
   /* get the pad */
   {
-    GstElement *sink = gst_bin_get_by_name (GST_BIN (bin), "fakesink0");
+    GstElement *sink = gst_bin_get_by_name (GST_BIN (bin), "sink");
 
     fail_unless (sink != NULL, "Could not get fakesink out of bin");
     pad = gst_element_get_static_pad (sink, "sink");
diff --git a/tests/examples/Makefile.am b/tests/examples/Makefile.am
index 90171e9..330ea8f 100644
--- a/tests/examples/Makefile.am
+++ b/tests/examples/Makefile.am
@@ -2,8 +2,8 @@
 GTK_SUBDIRS = playback seek snapshot
 endif
 
-SUBDIRS = app audio dynamic fft $(GTK_SUBDIRS) gio overlay playrec encoding
-DIST_SUBDIRS = app audio dynamic fft gio playback overlay seek snapshot playrec encoding
+SUBDIRS = app audio decodebin_next dynamic fft $(GTK_SUBDIRS) gio overlay playrec encoding
+DIST_SUBDIRS = app audio dynamic decodebin_next fft gio playback overlay seek snapshot playrec encoding
 
 include $(top_srcdir)/common/parallel-subdirs.mak
 
diff --git a/tests/examples/Makefile.in b/tests/examples/Makefile.in
index bd90000..22d04c1 100644
--- a/tests/examples/Makefile.in
+++ b/tests/examples/Makefile.in
@@ -511,8 +511,8 @@
 top_builddir = @top_builddir@
 top_srcdir = @top_srcdir@
 @HAVE_GTK_TRUE@GTK_SUBDIRS = playback seek snapshot
-SUBDIRS = app audio dynamic fft $(GTK_SUBDIRS) gio overlay playrec encoding
-DIST_SUBDIRS = app audio dynamic fft gio playback overlay seek snapshot playrec encoding
+SUBDIRS = app audio decodebin_next dynamic fft $(GTK_SUBDIRS) gio overlay playrec encoding
+DIST_SUBDIRS = app audio dynamic decodebin_next fft gio playback overlay seek snapshot playrec encoding
 all: all-recursive
 
 .SUFFIXES:
diff --git a/tests/examples/decodebin_next/Makefile.am b/tests/examples/decodebin_next/Makefile.am
new file mode 100644
index 0000000..5270bec
--- /dev/null
+++ b/tests/examples/decodebin_next/Makefile.am
@@ -0,0 +1,5 @@
+noinst_PROGRAMS = decodebin3 playbin-test
+
+LDADD = $(GST_LIBS)
+
+AM_CFLAGS = -I$(top_builddir)/gst-libs $(GST_PLUGINS_BASE_CFLAGS) $(GST_BASE_CFLAGS) $(GST_CFLAGS)
diff --git a/tests/examples/decodebin_next/Makefile.in b/tests/examples/decodebin_next/Makefile.in
new file mode 100644
index 0000000..5f52ac8
--- /dev/null
+++ b/tests/examples/decodebin_next/Makefile.in
@@ -0,0 +1,804 @@
+# Makefile.in generated by automake 1.15 from Makefile.am.
+# @configure_input@
+
+# Copyright (C) 1994-2014 Free Software Foundation, Inc.
+
+# This Makefile.in is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
+
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY, to the extent permitted by law; without
+# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
+# PARTICULAR PURPOSE.
+
+@SET_MAKE@
+
+VPATH = @srcdir@
+am__is_gnu_make = { \
+  if test -z '$(MAKELEVEL)'; then \
+    false; \
+  elif test -n '$(MAKE_HOST)'; then \
+    true; \
+  elif test -n '$(MAKE_VERSION)' && test -n '$(CURDIR)'; then \
+    true; \
+  else \
+    false; \
+  fi; \
+}
+am__make_running_with_option = \
+  case $${target_option-} in \
+      ?) ;; \
+      *) echo "am__make_running_with_option: internal error: invalid" \
+              "target option '$${target_option-}' specified" >&2; \
+         exit 1;; \
+  esac; \
+  has_opt=no; \
+  sane_makeflags=$$MAKEFLAGS; \
+  if $(am__is_gnu_make); then \
+    sane_makeflags=$$MFLAGS; \
+  else \
+    case $$MAKEFLAGS in \
+      *\\[\ \	]*) \
+        bs=\\; \
+        sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \
+          | sed "s/$$bs$$bs[$$bs $$bs	]*//g"`;; \
+    esac; \
+  fi; \
+  skip_next=no; \
+  strip_trailopt () \
+  { \
+    flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \
+  }; \
+  for flg in $$sane_makeflags; do \
+    test $$skip_next = yes && { skip_next=no; continue; }; \
+    case $$flg in \
+      *=*|--*) continue;; \
+        -*I) strip_trailopt 'I'; skip_next=yes;; \
+      -*I?*) strip_trailopt 'I';; \
+        -*O) strip_trailopt 'O'; skip_next=yes;; \
+      -*O?*) strip_trailopt 'O';; \
+        -*l) strip_trailopt 'l'; skip_next=yes;; \
+      -*l?*) strip_trailopt 'l';; \
+      -[dEDm]) skip_next=yes;; \
+      -[JT]) skip_next=yes;; \
+    esac; \
+    case $$flg in \
+      *$$target_option*) has_opt=yes; break;; \
+    esac; \
+  done; \
+  test $$has_opt = yes
+am__make_dryrun = (target_option=n; $(am__make_running_with_option))
+am__make_keepgoing = (target_option=k; $(am__make_running_with_option))
+pkgdatadir = $(datadir)/@PACKAGE@
+pkgincludedir = $(includedir)/@PACKAGE@
+pkglibdir = $(libdir)/@PACKAGE@
+pkglibexecdir = $(libexecdir)/@PACKAGE@
+am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
+install_sh_DATA = $(install_sh) -c -m 644
+install_sh_PROGRAM = $(install_sh) -c
+install_sh_SCRIPT = $(install_sh) -c
+INSTALL_HEADER = $(INSTALL_DATA)
+transform = $(program_transform_name)
+NORMAL_INSTALL = :
+PRE_INSTALL = :
+POST_INSTALL = :
+NORMAL_UNINSTALL = :
+PRE_UNINSTALL = :
+POST_UNINSTALL = :
+build_triplet = @build@
+host_triplet = @host@
+target_triplet = @target@
+noinst_PROGRAMS = decodebin3$(EXEEXT) playbin-test$(EXEEXT)
+subdir = tests/examples/decodebin_next
+ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
+am__aclocal_m4_deps = $(top_srcdir)/common/m4/as-ac-expand.m4 \
+	$(top_srcdir)/common/m4/as-auto-alt.m4 \
+	$(top_srcdir)/common/m4/as-compiler-flag.m4 \
+	$(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/gst-arch.m4 \
+	$(top_srcdir)/common/m4/gst-args.m4 \
+	$(top_srcdir)/common/m4/gst-check.m4 \
+	$(top_srcdir)/common/m4/gst-default.m4 \
+	$(top_srcdir)/common/m4/gst-error.m4 \
+	$(top_srcdir)/common/m4/gst-feature.m4 \
+	$(top_srcdir)/common/m4/gst-function.m4 \
+	$(top_srcdir)/common/m4/gst-gettext.m4 \
+	$(top_srcdir)/common/m4/gst-glib2.m4 \
+	$(top_srcdir)/common/m4/gst-package-release-datetime.m4 \
+	$(top_srcdir)/common/m4/gst-platform.m4 \
+	$(top_srcdir)/common/m4/gst-plugin-docs.m4 \
+	$(top_srcdir)/common/m4/gst-plugindir.m4 \
+	$(top_srcdir)/common/m4/gst.m4 \
+	$(top_srcdir)/common/m4/gtk-doc.m4 \
+	$(top_srcdir)/common/m4/introspection.m4 \
+	$(top_srcdir)/common/m4/orc.m4 $(top_srcdir)/common/m4/pkg.m4 \
+	$(top_srcdir)/m4/gettext.m4 $(top_srcdir)/m4/gst-alsa.m4 \
+	$(top_srcdir)/m4/iconv.m4 $(top_srcdir)/m4/intlmacosx.m4 \
+	$(top_srcdir)/m4/lib-ld.m4 $(top_srcdir)/m4/lib-link.m4 \
+	$(top_srcdir)/m4/lib-prefix.m4 $(top_srcdir)/m4/libtool.m4 \
+	$(top_srcdir)/m4/lrint.m4 $(top_srcdir)/m4/lrintf.m4 \
+	$(top_srcdir)/m4/ltoptions.m4 $(top_srcdir)/m4/ltsugar.m4 \
+	$(top_srcdir)/m4/ltversion.m4 $(top_srcdir)/m4/lt~obsolete.m4 \
+	$(top_srcdir)/m4/nls.m4 $(top_srcdir)/m4/po.m4 \
+	$(top_srcdir)/m4/progtest.m4 $(top_srcdir)/configure.ac
+am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
+	$(ACLOCAL_M4)
+DIST_COMMON = $(srcdir)/Makefile.am $(am__DIST_COMMON)
+mkinstalldirs = $(install_sh) -d
+CONFIG_HEADER = $(top_builddir)/config.h
+CONFIG_CLEAN_FILES =
+CONFIG_CLEAN_VPATH_FILES =
+PROGRAMS = $(noinst_PROGRAMS)
+decodebin3_SOURCES = decodebin3.c
+decodebin3_OBJECTS = decodebin3.$(OBJEXT)
+decodebin3_LDADD = $(LDADD)
+am__DEPENDENCIES_1 =
+decodebin3_DEPENDENCIES = $(am__DEPENDENCIES_1)
+AM_V_lt = $(am__v_lt_@AM_V@)
+am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@)
+am__v_lt_0 = --silent
+am__v_lt_1 = 
+playbin_test_SOURCES = playbin-test.c
+playbin_test_OBJECTS = playbin-test.$(OBJEXT)
+playbin_test_LDADD = $(LDADD)
+playbin_test_DEPENDENCIES = $(am__DEPENDENCIES_1)
+AM_V_P = $(am__v_P_@AM_V@)
+am__v_P_ = $(am__v_P_@AM_DEFAULT_V@)
+am__v_P_0 = false
+am__v_P_1 = :
+AM_V_GEN = $(am__v_GEN_@AM_V@)
+am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@)
+am__v_GEN_0 = @echo "  GEN     " $@;
+am__v_GEN_1 = 
+AM_V_at = $(am__v_at_@AM_V@)
+am__v_at_ = $(am__v_at_@AM_DEFAULT_V@)
+am__v_at_0 = @
+am__v_at_1 = 
+DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir)
+depcomp = $(SHELL) $(top_srcdir)/depcomp
+am__depfiles_maybe = depfiles
+am__mv = mv -f
+COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \
+	$(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS)
+LTCOMPILE = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \
+	$(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) \
+	$(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) \
+	$(AM_CFLAGS) $(CFLAGS)
+AM_V_CC = $(am__v_CC_@AM_V@)
+am__v_CC_ = $(am__v_CC_@AM_DEFAULT_V@)
+am__v_CC_0 = @echo "  CC      " $@;
+am__v_CC_1 = 
+CCLD = $(CC)
+LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \
+	$(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \
+	$(AM_LDFLAGS) $(LDFLAGS) -o $@
+AM_V_CCLD = $(am__v_CCLD_@AM_V@)
+am__v_CCLD_ = $(am__v_CCLD_@AM_DEFAULT_V@)
+am__v_CCLD_0 = @echo "  CCLD    " $@;
+am__v_CCLD_1 = 
+SOURCES = decodebin3.c playbin-test.c
+DIST_SOURCES = decodebin3.c playbin-test.c
+am__can_run_installinfo = \
+  case $$AM_UPDATE_INFO_DIR in \
+    n|no|NO) false;; \
+    *) (install-info --version) >/dev/null 2>&1;; \
+  esac
+am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP)
+# Read a list of newline-separated strings from the standard input,
+# and print each of them once, without duplicates.  Input order is
+# *not* preserved.
+am__uniquify_input = $(AWK) '\
+  BEGIN { nonempty = 0; } \
+  { items[$$0] = 1; nonempty = 1; } \
+  END { if (nonempty) { for (i in items) print i; }; } \
+'
+# Make sure the list of sources is unique.  This is necessary because,
+# e.g., the same source file might be shared among _SOURCES variables
+# for different programs/libraries.
+am__define_uniq_tagged_files = \
+  list='$(am__tagged_files)'; \
+  unique=`for i in $$list; do \
+    if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
+  done | $(am__uniquify_input)`
+ETAGS = etags
+CTAGS = ctags
+am__DIST_COMMON = $(srcdir)/Makefile.in $(top_srcdir)/depcomp
+DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
+ACLOCAL = @ACLOCAL@
+ACLOCAL_AMFLAGS = @ACLOCAL_AMFLAGS@
+ALSA_CFLAGS = @ALSA_CFLAGS@
+ALSA_LIBS = @ALSA_LIBS@
+AMTAR = @AMTAR@
+AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@
+AR = @AR@
+AS = @AS@
+AUDIORESAMPLE_FORMAT_AUTO = @AUDIORESAMPLE_FORMAT_AUTO@
+AUDIORESAMPLE_FORMAT_FLOAT = @AUDIORESAMPLE_FORMAT_FLOAT@
+AUDIORESAMPLE_FORMAT_INT = @AUDIORESAMPLE_FORMAT_INT@
+AUTOCONF = @AUTOCONF@
+AUTOHEADER = @AUTOHEADER@
+AUTOMAKE = @AUTOMAKE@
+AWK = @AWK@
+CC = @CC@
+CCASFLAGS = @CCASFLAGS@
+CCDEPMODE = @CCDEPMODE@
+CDPARANOIA_CFLAGS = @CDPARANOIA_CFLAGS@
+CDPARANOIA_LIBS = @CDPARANOIA_LIBS@
+CFLAGS = @CFLAGS@
+CPP = @CPP@
+CPPFLAGS = @CPPFLAGS@
+CXX = @CXX@
+CXXCPP = @CXXCPP@
+CXXDEPMODE = @CXXDEPMODE@
+CXXFLAGS = @CXXFLAGS@
+CYGPATH_W = @CYGPATH_W@
+DEFAULT_AUDIOSINK = @DEFAULT_AUDIOSINK@
+DEFAULT_AUDIOSRC = @DEFAULT_AUDIOSRC@
+DEFAULT_VIDEOSINK = @DEFAULT_VIDEOSINK@
+DEFAULT_VIDEOSRC = @DEFAULT_VIDEOSRC@
+DEFAULT_VISUALIZER = @DEFAULT_VISUALIZER@
+DEFS = @DEFS@
+DEPDIR = @DEPDIR@
+DEPRECATED_CFLAGS = @DEPRECATED_CFLAGS@
+DLLTOOL = @DLLTOOL@
+DSYMUTIL = @DSYMUTIL@
+DUMPBIN = @DUMPBIN@
+ECHO_C = @ECHO_C@
+ECHO_N = @ECHO_N@
+ECHO_T = @ECHO_T@
+EGREP = @EGREP@
+ERROR_CFLAGS = @ERROR_CFLAGS@
+ERROR_CXXFLAGS = @ERROR_CXXFLAGS@
+EXEEXT = @EXEEXT@
+FFLAGS = @FFLAGS@
+FGREP = @FGREP@
+GCOV = @GCOV@
+GCOV_CFLAGS = @GCOV_CFLAGS@
+GCOV_LIBS = @GCOV_LIBS@
+GETTEXT_MACRO_VERSION = @GETTEXT_MACRO_VERSION@
+GETTEXT_PACKAGE = @GETTEXT_PACKAGE@
+GIO_CFLAGS = @GIO_CFLAGS@
+GIO_LDFLAGS = @GIO_LDFLAGS@
+GIO_LIBS = @GIO_LIBS@
+GIO_UNIX_2_0_CFLAGS = @GIO_UNIX_2_0_CFLAGS@
+GIO_UNIX_2_0_LIBS = @GIO_UNIX_2_0_LIBS@
+GLIB_CFLAGS = @GLIB_CFLAGS@
+GLIB_EXTRA_CFLAGS = @GLIB_EXTRA_CFLAGS@
+GLIB_GENMARSHAL = @GLIB_GENMARSHAL@
+GLIB_LIBS = @GLIB_LIBS@
+GLIB_MKENUMS = @GLIB_MKENUMS@
+GLIB_PREFIX = @GLIB_PREFIX@
+GLIB_REQ = @GLIB_REQ@
+GMSGFMT = @GMSGFMT@
+GMSGFMT_015 = @GMSGFMT_015@
+GREP = @GREP@
+GST_AGE = @GST_AGE@
+GST_ALL_LDFLAGS = @GST_ALL_LDFLAGS@
+GST_API_VERSION = @GST_API_VERSION@
+GST_BASE_CFLAGS = @GST_BASE_CFLAGS@
+GST_BASE_LIBS = @GST_BASE_LIBS@
+GST_CFLAGS = @GST_CFLAGS@
+GST_CHECK_CFLAGS = @GST_CHECK_CFLAGS@
+GST_CHECK_LIBS = @GST_CHECK_LIBS@
+GST_CONTROLLER_CFLAGS = @GST_CONTROLLER_CFLAGS@
+GST_CONTROLLER_LIBS = @GST_CONTROLLER_LIBS@
+GST_CURRENT = @GST_CURRENT@
+GST_CXXFLAGS = @GST_CXXFLAGS@
+GST_INSTALL_PLUGINS_HELPER = @GST_INSTALL_PLUGINS_HELPER@
+GST_LEVEL_DEFAULT = @GST_LEVEL_DEFAULT@
+GST_LIBS = @GST_LIBS@
+GST_LIBVERSION = @GST_LIBVERSION@
+GST_LIB_LDFLAGS = @GST_LIB_LDFLAGS@
+GST_LICENSE = @GST_LICENSE@
+GST_LT_LDFLAGS = @GST_LT_LDFLAGS@
+GST_NET_CFLAGS = @GST_NET_CFLAGS@
+GST_NET_LIBS = @GST_NET_LIBS@
+GST_OPTION_CFLAGS = @GST_OPTION_CFLAGS@
+GST_OPTION_CXXFLAGS = @GST_OPTION_CXXFLAGS@
+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_DIR = @GST_PLUGINS_DIR@
+GST_PLUGINS_NONPORTED = @GST_PLUGINS_NONPORTED@
+GST_PLUGINS_SELECTED = @GST_PLUGINS_SELECTED@
+GST_PLUGIN_LDFLAGS = @GST_PLUGIN_LDFLAGS@
+GST_PLUGIN_LIBTOOLFLAGS = @GST_PLUGIN_LIBTOOLFLAGS@
+GST_PREFIX = @GST_PREFIX@
+GST_REVISION = @GST_REVISION@
+GST_TOOLS_DIR = @GST_TOOLS_DIR@
+GTKDOC_CHECK = @GTKDOC_CHECK@
+GTKDOC_DEPS_CFLAGS = @GTKDOC_DEPS_CFLAGS@
+GTKDOC_DEPS_LIBS = @GTKDOC_DEPS_LIBS@
+GTKDOC_MKPDF = @GTKDOC_MKPDF@
+GTKDOC_REBASE = @GTKDOC_REBASE@
+GTK_CFLAGS = @GTK_CFLAGS@
+GTK_LIBS = @GTK_LIBS@
+GTK_QUARTZ_CFLAGS = @GTK_QUARTZ_CFLAGS@
+GTK_QUARTZ_LIBS = @GTK_QUARTZ_LIBS@
+GTK_X11_CFLAGS = @GTK_X11_CFLAGS@
+GTK_X11_LIBS = @GTK_X11_LIBS@
+HAVE_CDPARANOIA = @HAVE_CDPARANOIA@
+HAVE_XSHM = @HAVE_XSHM@
+HAVE_ZLIB = @HAVE_ZLIB@
+HTML_DIR = @HTML_DIR@
+INSTALL = @INSTALL@
+INSTALL_DATA = @INSTALL_DATA@
+INSTALL_PROGRAM = @INSTALL_PROGRAM@
+INSTALL_SCRIPT = @INSTALL_SCRIPT@
+INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
+INTLLIBS = @INTLLIBS@
+INTL_MACOSX_LIBS = @INTL_MACOSX_LIBS@
+INTROSPECTION_CFLAGS = @INTROSPECTION_CFLAGS@
+INTROSPECTION_COMPILER = @INTROSPECTION_COMPILER@
+INTROSPECTION_GENERATE = @INTROSPECTION_GENERATE@
+INTROSPECTION_GIRDIR = @INTROSPECTION_GIRDIR@
+INTROSPECTION_INIT = @INTROSPECTION_INIT@
+INTROSPECTION_LIBS = @INTROSPECTION_LIBS@
+INTROSPECTION_MAKEFILE = @INTROSPECTION_MAKEFILE@
+INTROSPECTION_SCANNER = @INTROSPECTION_SCANNER@
+INTROSPECTION_TYPELIBDIR = @INTROSPECTION_TYPELIBDIR@
+IVORBIS_CFLAGS = @IVORBIS_CFLAGS@
+IVORBIS_LIBS = @IVORBIS_LIBS@
+LD = @LD@
+LDFLAGS = @LDFLAGS@
+LIBICONV = @LIBICONV@
+LIBINTL = @LIBINTL@
+LIBM = @LIBM@
+LIBOBJS = @LIBOBJS@
+LIBS = @LIBS@
+LIBTOOL = @LIBTOOL@
+LIBVISUAL_CFLAGS = @LIBVISUAL_CFLAGS@
+LIBVISUAL_LIBS = @LIBVISUAL_LIBS@
+LIPO = @LIPO@
+LN_S = @LN_S@
+LOCALEDIR = @LOCALEDIR@
+LTLIBICONV = @LTLIBICONV@
+LTLIBINTL = @LTLIBINTL@
+LTLIBOBJS = @LTLIBOBJS@
+LT_SYS_LIBRARY_PATH = @LT_SYS_LIBRARY_PATH@
+MAINT = @MAINT@
+MAKEINFO = @MAKEINFO@
+MANIFEST_TOOL = @MANIFEST_TOOL@
+MKDIR_P = @MKDIR_P@
+MSGFMT = @MSGFMT@
+MSGFMT_015 = @MSGFMT_015@
+MSGMERGE = @MSGMERGE@
+NM = @NM@
+NMEDIT = @NMEDIT@
+OBJDUMP = @OBJDUMP@
+OBJEXT = @OBJEXT@
+OGG_CFLAGS = @OGG_CFLAGS@
+OGG_LIBS = @OGG_LIBS@
+OPUS_CFLAGS = @OPUS_CFLAGS@
+OPUS_LIBS = @OPUS_LIBS@
+ORCC = @ORCC@
+ORCC_FLAGS = @ORCC_FLAGS@
+ORC_CFLAGS = @ORC_CFLAGS@
+ORC_LIBS = @ORC_LIBS@
+OTOOL = @OTOOL@
+OTOOL64 = @OTOOL64@
+PACKAGE = @PACKAGE@
+PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
+PACKAGE_NAME = @PACKAGE_NAME@
+PACKAGE_STRING = @PACKAGE_STRING@
+PACKAGE_TARNAME = @PACKAGE_TARNAME@
+PACKAGE_URL = @PACKAGE_URL@
+PACKAGE_VERSION = @PACKAGE_VERSION@
+PACKAGE_VERSION_MAJOR = @PACKAGE_VERSION_MAJOR@
+PACKAGE_VERSION_MICRO = @PACKAGE_VERSION_MICRO@
+PACKAGE_VERSION_MINOR = @PACKAGE_VERSION_MINOR@
+PACKAGE_VERSION_NANO = @PACKAGE_VERSION_NANO@
+PACKAGE_VERSION_RELEASE = @PACKAGE_VERSION_RELEASE@
+PANGO_CFLAGS = @PANGO_CFLAGS@
+PANGO_LIBS = @PANGO_LIBS@
+PATH_SEPARATOR = @PATH_SEPARATOR@
+PKG_CONFIG = @PKG_CONFIG@
+PLUGINDIR = @PLUGINDIR@
+POSUB = @POSUB@
+PROFILE_CFLAGS = @PROFILE_CFLAGS@
+PYTHON = @PYTHON@
+PYTHON_EXEC_PREFIX = @PYTHON_EXEC_PREFIX@
+PYTHON_PLATFORM = @PYTHON_PLATFORM@
+PYTHON_PREFIX = @PYTHON_PREFIX@
+PYTHON_VERSION = @PYTHON_VERSION@
+QTCHOOSER = @QTCHOOSER@
+QT_CFLAGS = @QT_CFLAGS@
+QT_LIBS = @QT_LIBS@
+QT_MOC = @QT_MOC@
+RANLIB = @RANLIB@
+SED = @SED@
+SET_MAKE = @SET_MAKE@
+SHELL = @SHELL@
+STRIP = @STRIP@
+THEORA_CFLAGS = @THEORA_CFLAGS@
+THEORA_LIBS = @THEORA_LIBS@
+USE_NLS = @USE_NLS@
+VALGRIND_CFLAGS = @VALGRIND_CFLAGS@
+VALGRIND_LIBS = @VALGRIND_LIBS@
+VALGRIND_PATH = @VALGRIND_PATH@
+VERSION = @VERSION@
+VORBIS_CFLAGS = @VORBIS_CFLAGS@
+VORBIS_LIBS = @VORBIS_LIBS@
+WARNING_CFLAGS = @WARNING_CFLAGS@
+WARNING_CXXFLAGS = @WARNING_CXXFLAGS@
+WIN32_LIBS = @WIN32_LIBS@
+XGETTEXT = @XGETTEXT@
+XGETTEXT_015 = @XGETTEXT_015@
+XGETTEXT_EXTRA_OPTIONS = @XGETTEXT_EXTRA_OPTIONS@
+XSHM_CFLAGS = @XSHM_CFLAGS@
+XSHM_LIBS = @XSHM_LIBS@
+XVIDEO_CFLAGS = @XVIDEO_CFLAGS@
+XVIDEO_LIBS = @XVIDEO_LIBS@
+X_CFLAGS = @X_CFLAGS@
+X_LIBS = @X_LIBS@
+ZLIB_CFLAGS = @ZLIB_CFLAGS@
+ZLIB_LIBS = @ZLIB_LIBS@
+abs_builddir = @abs_builddir@
+abs_srcdir = @abs_srcdir@
+abs_top_builddir = @abs_top_builddir@
+abs_top_srcdir = @abs_top_srcdir@
+ac_ct_AR = @ac_ct_AR@
+ac_ct_CC = @ac_ct_CC@
+ac_ct_CXX = @ac_ct_CXX@
+ac_ct_DUMPBIN = @ac_ct_DUMPBIN@
+am__include = @am__include@
+am__leading_dot = @am__leading_dot@
+am__quote = @am__quote@
+am__tar = @am__tar@
+am__untar = @am__untar@
+bindir = @bindir@
+build = @build@
+build_alias = @build_alias@
+build_cpu = @build_cpu@
+build_os = @build_os@
+build_vendor = @build_vendor@
+builddir = @builddir@
+datadir = @datadir@
+datarootdir = @datarootdir@
+docdir = @docdir@
+dvidir = @dvidir@
+exec_prefix = @exec_prefix@
+host = @host@
+host_alias = @host_alias@
+host_cpu = @host_cpu@
+host_os = @host_os@
+host_vendor = @host_vendor@
+htmldir = @htmldir@
+includedir = @includedir@
+infodir = @infodir@
+install_sh = @install_sh@
+libdir = @libdir@
+libexecdir = @libexecdir@
+localedir = @localedir@
+localstatedir = @localstatedir@
+mandir = @mandir@
+mkdir_p = @mkdir_p@
+oldincludedir = @oldincludedir@
+pdfdir = @pdfdir@
+pkgpyexecdir = @pkgpyexecdir@
+pkgpythondir = @pkgpythondir@
+plugindir = @plugindir@
+prefix = @prefix@
+program_transform_name = @program_transform_name@
+psdir = @psdir@
+pyexecdir = @pyexecdir@
+pythondir = @pythondir@
+runstatedir = @runstatedir@
+sbindir = @sbindir@
+sharedstatedir = @sharedstatedir@
+srcdir = @srcdir@
+sysconfdir = @sysconfdir@
+target = @target@
+target_alias = @target_alias@
+target_cpu = @target_cpu@
+target_os = @target_os@
+target_vendor = @target_vendor@
+top_build_prefix = @top_build_prefix@
+top_builddir = @top_builddir@
+top_srcdir = @top_srcdir@
+LDADD = $(GST_LIBS)
+AM_CFLAGS = -I$(top_builddir)/gst-libs $(GST_PLUGINS_BASE_CFLAGS) $(GST_BASE_CFLAGS) $(GST_CFLAGS)
+all: all-am
+
+.SUFFIXES:
+.SUFFIXES: .c .lo .o .obj
+$(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am  $(am__configure_deps)
+	@for dep in $?; do \
+	  case '$(am__configure_deps)' in \
+	    *$$dep*) \
+	      ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \
+	        && { if test -f $@; then exit 0; else break; fi; }; \
+	      exit 1;; \
+	  esac; \
+	done; \
+	echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu tests/examples/decodebin_next/Makefile'; \
+	$(am__cd) $(top_srcdir) && \
+	  $(AUTOMAKE) --gnu tests/examples/decodebin_next/Makefile
+Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
+	@case '$?' in \
+	  *config.status*) \
+	    cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \
+	  *) \
+	    echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \
+	    cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \
+	esac;
+
+$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
+	cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+
+$(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps)
+	cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+$(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps)
+	cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+$(am__aclocal_m4_deps):
+
+clean-noinstPROGRAMS:
+	@list='$(noinst_PROGRAMS)'; test -n "$$list" || exit 0; \
+	echo " rm -f" $$list; \
+	rm -f $$list || exit $$?; \
+	test -n "$(EXEEXT)" || exit 0; \
+	list=`for p in $$list; do echo "$$p"; done | sed 's/$(EXEEXT)$$//'`; \
+	echo " rm -f" $$list; \
+	rm -f $$list
+
+decodebin3$(EXEEXT): $(decodebin3_OBJECTS) $(decodebin3_DEPENDENCIES) $(EXTRA_decodebin3_DEPENDENCIES) 
+	@rm -f decodebin3$(EXEEXT)
+	$(AM_V_CCLD)$(LINK) $(decodebin3_OBJECTS) $(decodebin3_LDADD) $(LIBS)
+
+playbin-test$(EXEEXT): $(playbin_test_OBJECTS) $(playbin_test_DEPENDENCIES) $(EXTRA_playbin_test_DEPENDENCIES) 
+	@rm -f playbin-test$(EXEEXT)
+	$(AM_V_CCLD)$(LINK) $(playbin_test_OBJECTS) $(playbin_test_LDADD) $(LIBS)
+
+mostlyclean-compile:
+	-rm -f *.$(OBJEXT)
+
+distclean-compile:
+	-rm -f *.tab.c
+
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/decodebin3.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/playbin-test.Po@am__quote@
+
+.c.o:
+@am__fastdepCC_TRUE@	$(AM_V_CC)depbase=`echo $@ | sed 's|[^/]*$$|$(DEPDIR)/&|;s|\.o$$||'`;\
+@am__fastdepCC_TRUE@	$(COMPILE) -MT $@ -MD -MP -MF $$depbase.Tpo -c -o $@ $< &&\
+@am__fastdepCC_TRUE@	$(am__mv) $$depbase.Tpo $$depbase.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(COMPILE) -c -o $@ $<
+
+.c.obj:
+@am__fastdepCC_TRUE@	$(AM_V_CC)depbase=`echo $@ | sed 's|[^/]*$$|$(DEPDIR)/&|;s|\.obj$$||'`;\
+@am__fastdepCC_TRUE@	$(COMPILE) -MT $@ -MD -MP -MF $$depbase.Tpo -c -o $@ `$(CYGPATH_W) '$<'` &&\
+@am__fastdepCC_TRUE@	$(am__mv) $$depbase.Tpo $$depbase.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(COMPILE) -c -o $@ `$(CYGPATH_W) '$<'`
+
+.c.lo:
+@am__fastdepCC_TRUE@	$(AM_V_CC)depbase=`echo $@ | sed 's|[^/]*$$|$(DEPDIR)/&|;s|\.lo$$||'`;\
+@am__fastdepCC_TRUE@	$(LTCOMPILE) -MT $@ -MD -MP -MF $$depbase.Tpo -c -o $@ $< &&\
+@am__fastdepCC_TRUE@	$(am__mv) $$depbase.Tpo $$depbase.Plo
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(LTCOMPILE) -c -o $@ $<
+
+mostlyclean-libtool:
+	-rm -f *.lo
+
+clean-libtool:
+	-rm -rf .libs _libs
+
+ID: $(am__tagged_files)
+	$(am__define_uniq_tagged_files); mkid -fID $$unique
+tags: tags-am
+TAGS: tags
+
+tags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files)
+	set x; \
+	here=`pwd`; \
+	$(am__define_uniq_tagged_files); \
+	shift; \
+	if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \
+	  test -n "$$unique" || unique=$$empty_fix; \
+	  if test $$# -gt 0; then \
+	    $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
+	      "$$@" $$unique; \
+	  else \
+	    $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
+	      $$unique; \
+	  fi; \
+	fi
+ctags: ctags-am
+
+CTAGS: ctags
+ctags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files)
+	$(am__define_uniq_tagged_files); \
+	test -z "$(CTAGS_ARGS)$$unique" \
+	  || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \
+	     $$unique
+
+GTAGS:
+	here=`$(am__cd) $(top_builddir) && pwd` \
+	  && $(am__cd) $(top_srcdir) \
+	  && gtags -i $(GTAGS_ARGS) "$$here"
+cscopelist: cscopelist-am
+
+cscopelist-am: $(am__tagged_files)
+	list='$(am__tagged_files)'; \
+	case "$(srcdir)" in \
+	  [\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \
+	  *) sdir=$(subdir)/$(srcdir) ;; \
+	esac; \
+	for i in $$list; do \
+	  if test -f "$$i"; then \
+	    echo "$(subdir)/$$i"; \
+	  else \
+	    echo "$$sdir/$$i"; \
+	  fi; \
+	done >> $(top_builddir)/cscope.files
+
+distclean-tags:
+	-rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags
+
+distdir: $(DISTFILES)
+	@srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
+	topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
+	list='$(DISTFILES)'; \
+	  dist_files=`for file in $$list; do echo $$file; done | \
+	  sed -e "s|^$$srcdirstrip/||;t" \
+	      -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \
+	case $$dist_files in \
+	  */*) $(MKDIR_P) `echo "$$dist_files" | \
+			   sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \
+			   sort -u` ;; \
+	esac; \
+	for file in $$dist_files; do \
+	  if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
+	  if test -d $$d/$$file; then \
+	    dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \
+	    if test -d "$(distdir)/$$file"; then \
+	      find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
+	    fi; \
+	    if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
+	      cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \
+	      find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
+	    fi; \
+	    cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \
+	  else \
+	    test -f "$(distdir)/$$file" \
+	    || cp -p $$d/$$file "$(distdir)/$$file" \
+	    || exit 1; \
+	  fi; \
+	done
+check-am: all-am
+check: check-am
+all-am: Makefile $(PROGRAMS)
+installdirs:
+install: install-am
+install-exec: install-exec-am
+install-data: install-data-am
+uninstall: uninstall-am
+
+install-am: all-am
+	@$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
+
+installcheck: installcheck-am
+install-strip:
+	if test -z '$(STRIP)'; then \
+	  $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+	    install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
+	      install; \
+	else \
+	  $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+	    install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
+	    "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \
+	fi
+mostlyclean-generic:
+
+clean-generic:
+
+distclean-generic:
+	-test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
+	-test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES)
+
+maintainer-clean-generic:
+	@echo "This command is intended for maintainers to use"
+	@echo "it deletes files that may require special tools to rebuild."
+clean: clean-am
+
+clean-am: clean-generic clean-libtool clean-noinstPROGRAMS \
+	mostlyclean-am
+
+distclean: distclean-am
+	-rm -rf ./$(DEPDIR)
+	-rm -f Makefile
+distclean-am: clean-am distclean-compile distclean-generic \
+	distclean-tags
+
+dvi: dvi-am
+
+dvi-am:
+
+html: html-am
+
+html-am:
+
+info: info-am
+
+info-am:
+
+install-data-am:
+
+install-dvi: install-dvi-am
+
+install-dvi-am:
+
+install-exec-am:
+
+install-html: install-html-am
+
+install-html-am:
+
+install-info: install-info-am
+
+install-info-am:
+
+install-man:
+
+install-pdf: install-pdf-am
+
+install-pdf-am:
+
+install-ps: install-ps-am
+
+install-ps-am:
+
+installcheck-am:
+
+maintainer-clean: maintainer-clean-am
+	-rm -rf ./$(DEPDIR)
+	-rm -f Makefile
+maintainer-clean-am: distclean-am maintainer-clean-generic
+
+mostlyclean: mostlyclean-am
+
+mostlyclean-am: mostlyclean-compile mostlyclean-generic \
+	mostlyclean-libtool
+
+pdf: pdf-am
+
+pdf-am:
+
+ps: ps-am
+
+ps-am:
+
+uninstall-am:
+
+.MAKE: install-am install-strip
+
+.PHONY: CTAGS GTAGS TAGS all all-am check check-am clean clean-generic \
+	clean-libtool clean-noinstPROGRAMS cscopelist-am ctags \
+	ctags-am distclean distclean-compile distclean-generic \
+	distclean-libtool distclean-tags distdir dvi dvi-am html \
+	html-am info info-am install install-am install-data \
+	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-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
+
+.PRECIOUS: Makefile
+
+
+# Tell versions [3.59,3.63) of GNU make to not export all variables.
+# Otherwise a system limit (for SysV at least) may be exceeded.
+.NOEXPORT:
diff --git a/tests/examples/decodebin_next/decodebin3.c b/tests/examples/decodebin_next/decodebin3.c
new file mode 100644
index 0000000..2eb2a68
--- /dev/null
+++ b/tests/examples/decodebin_next/decodebin3.c
@@ -0,0 +1,353 @@
+/* sample application for testing decodebin3
+ *
+ * Copyright (C) 2015 Centricular Ltd
+ *  @author:  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
+
+#include <glib.h>
+#include <glib-object.h>
+#include <glib/gprintf.h>
+#include <gst/gst.h>
+
+/* Global structure */
+
+typedef struct _MyDataStruct
+{
+  GMainLoop *mainloop;
+  GstElement *pipeline;
+  GstBus *demux_bus;
+
+  GstElement *decodebin;
+
+  GstElement *src;
+  GList *other_src;
+  GstElement *playsink;
+
+  /* Current collection */
+  GstStreamCollection *collection;
+  guint notify_id;
+
+  guint current_audio;
+  guint current_video;
+  guint current_text;
+
+  glong timeout_id;
+} MyDataStruct;
+
+static void
+print_tag_foreach (const GstTagList * tags, const gchar * tag,
+    gpointer user_data)
+{
+  GValue val = { 0, };
+  gchar *str;
+  gint depth = GPOINTER_TO_INT (user_data);
+
+  if (!gst_tag_list_copy_value (&val, tags, tag))
+    return;
+
+  if (G_VALUE_HOLDS_STRING (&val))
+    str = g_value_dup_string (&val);
+  else
+    str = gst_value_serialize (&val);
+
+  g_print ("%*s%s: %s\n", 2 * depth, " ", gst_tag_get_nick (tag), str);
+  g_free (str);
+
+  g_value_unset (&val);
+}
+
+static void
+dump_collection (GstStreamCollection * collection)
+{
+  guint i;
+  const GstTagList *tags;
+  const GstCaps *caps;
+
+  for (i = 0; i < gst_stream_collection_get_size (collection); i++) {
+    GstStream *stream = gst_stream_collection_get_stream (collection, i);
+    g_print (" Stream %u type %s flags 0x%x\n", i,
+        gst_stream_type_get_name (gst_stream_get_stream_type (stream)),
+        gst_stream_get_stream_flags (stream));
+    g_print ("  ID: %s\n", gst_stream_get_stream_id (stream));
+
+    caps = gst_stream_get_caps (stream);
+    if (caps) {
+      gchar *caps_str = gst_caps_to_string (caps);
+      g_print ("  caps: %s\n", caps_str);
+      g_free (caps_str);
+    }
+
+    tags = gst_stream_get_tags (stream);
+    if (tags) {
+      g_print ("  tags:\n");
+      gst_tag_list_foreach (tags, print_tag_foreach, GUINT_TO_POINTER (3));
+    }
+  }
+}
+
+static gboolean
+switch_streams (MyDataStruct * data)
+{
+  guint i, nb_streams;
+  gint nb_video = 0, nb_audio = 0, nb_text = 0;
+  GstStream *videos[256], *audios[256], *texts[256];
+  GList *streams = NULL;
+  GstEvent *ev;
+
+  g_print ("Switching Streams...\n");
+
+  /* Calculate the number of streams of each type */
+  nb_streams = gst_stream_collection_get_size (data->collection);
+  for (i = 0; i < nb_streams; i++) {
+    GstStream *stream = gst_stream_collection_get_stream (data->collection, i);
+    GstStreamType stype = gst_stream_get_stream_type (stream);
+    if (stype == GST_STREAM_TYPE_VIDEO) {
+      videos[nb_video] = stream;
+      nb_video += 1;
+    } else if (stype == GST_STREAM_TYPE_AUDIO) {
+      audios[nb_audio] = stream;
+      nb_audio += 1;
+    } else if (stype == GST_STREAM_TYPE_TEXT) {
+      texts[nb_text] = stream;
+      nb_text += 1;
+    }
+  }
+
+  if (nb_video) {
+    data->current_video = (data->current_video + 1) % nb_video;
+    streams =
+        g_list_append (streams,
+        (gchar *) gst_stream_get_stream_id (videos[data->current_video]));
+    g_print ("  Selecting video channel #%d : %s\n", data->current_video,
+        gst_stream_get_stream_id (videos[data->current_video]));
+  }
+  if (nb_audio) {
+    data->current_audio = (data->current_audio + 1) % nb_audio;
+    streams =
+        g_list_append (streams,
+        (gchar *) gst_stream_get_stream_id (audios[data->current_audio]));
+    g_print ("  Selecting audio channel #%d : %s\n", data->current_audio,
+        gst_stream_get_stream_id (audios[data->current_audio]));
+  }
+  if (nb_text) {
+    data->current_text = (data->current_text + 1) % nb_text;
+    streams =
+        g_list_append (streams,
+        (gchar *) gst_stream_get_stream_id (texts[data->current_text]));
+    g_print ("  Selecting text channel #%d : %s\n", data->current_text,
+        gst_stream_get_stream_id (texts[data->current_text]));
+  }
+
+  ev = gst_event_new_select_streams (streams);
+  gst_element_send_event (data->pipeline, ev);
+
+  return G_SOURCE_CONTINUE;
+}
+
+static void
+stream_notify_cb (GstStreamCollection * collection, GstStream * stream,
+    GParamSpec * pspec, guint * val)
+{
+  g_print ("Got stream-notify from stream %s for %s (collection %p)\n",
+      stream->stream_id, pspec->name, collection);
+  if (g_str_equal (pspec->name, "caps")) {
+    GstCaps *caps = gst_stream_get_caps (stream);
+    gchar *caps_str = gst_caps_to_string (caps);
+    g_print (" New caps: %s\n", caps_str);
+    g_free (caps_str);
+    gst_caps_unref (caps);
+  }
+}
+
+static GstBusSyncReply
+_on_bus_message (GstBus * bus, GstMessage * message, MyDataStruct * data)
+{
+  GstObject *src = GST_MESSAGE_SRC (message);
+  switch (GST_MESSAGE_TYPE (message)) {
+    case GST_MESSAGE_ERROR:{
+      GError *err = NULL;
+      gchar *name = gst_object_get_path_string (GST_MESSAGE_SRC (message));
+      gst_message_parse_error (message, &err, NULL);
+
+      g_printerr ("ERROR: from element %s: %s\n", name, err->message);
+      g_error_free (err);
+      g_free (name);
+
+      g_printf ("Stopping\n");
+      g_main_loop_quit (data->mainloop);
+      break;
+    }
+    case GST_MESSAGE_EOS:
+      g_printf ("EOS ! Stopping \n");
+      g_main_loop_quit (data->mainloop);
+      break;
+    case GST_MESSAGE_STREAM_COLLECTION:
+    {
+      GstStreamCollection *collection = NULL;
+      gst_message_parse_stream_collection (message, &collection);
+      if (collection) {
+        g_printf ("Got a collection from %s:\n",
+            src ? GST_OBJECT_NAME (src) : "Unknown");
+        dump_collection (collection);
+        if (data->collection && data->notify_id) {
+          g_signal_handler_disconnect (data->collection, data->notify_id);
+          data->notify_id = 0;
+        }
+        gst_object_replace ((GstObject **) & data->collection,
+            (GstObject *) collection);
+        if (data->collection) {
+          data->notify_id =
+              g_signal_connect (data->collection, "stream-notify",
+              (GCallback) stream_notify_cb, data);
+        }
+        if (data->timeout_id == 0)
+          /* In 5s try to change streams */
+          data->timeout_id =
+              g_timeout_add_seconds (5, (GSourceFunc) switch_streams, data);
+      }
+      break;
+    }
+    default:
+      break;
+  }
+
+  return GST_BUS_PASS;
+}
+
+static void
+decodebin_pad_added_cb (GstElement * dbin, GstPad * pad, MyDataStruct * data)
+{
+  gchar *pad_name = gst_pad_get_name (pad);
+  const gchar *sink_pad = NULL;
+
+  GST_DEBUG_OBJECT (pad, "New pad ! Link to playsink !");
+  if (!g_ascii_strncasecmp (pad_name, "video_", 6))
+    sink_pad = "video_sink";
+  else if (!g_ascii_strncasecmp (pad_name, "audio_", 6))
+    sink_pad = "audio_sink";
+  else if (!g_ascii_strncasecmp (pad_name, "text_", 5))
+    sink_pad = "text_sink";
+  else
+    GST_WARNING_OBJECT (pad, "non audio/video/text pad");
+
+  g_free (pad_name);
+
+  if (sink_pad) {
+    GstPad *playsink_pad;
+
+    playsink_pad = gst_element_get_request_pad (data->playsink, sink_pad);
+    if (playsink_pad)
+      gst_pad_link (pad, playsink_pad);
+  }
+}
+
+int
+main (int argc, gchar ** argv)
+{
+  GError *error = NULL;
+  GstBus *bus;
+  MyDataStruct *data;
+  int i;
+
+  gst_init (&argc, &argv);
+
+  data = g_new0 (MyDataStruct, 1);
+
+  if (argc < 2) {
+    g_print ("Usage: decodebin3 URI\n");
+    return 1;
+  }
+
+  data->pipeline = gst_pipeline_new ("pipeline");
+  data->decodebin = gst_element_factory_make ("decodebin3", NULL);
+
+  data->src =
+      gst_element_make_from_uri (GST_URI_SRC, argv[1], "source", &error);
+  if (error) {
+    g_printf ("pipeline could not be constructed: %s\n", error->message);
+    g_error_free (error);
+    return 1;
+  }
+  data->playsink = gst_element_factory_make ("playsink", NULL);
+
+#if 0
+  {
+    GstElement *sink = gst_element_factory_make ("fakesink", NULL);
+    g_object_set (sink, "sync", FALSE, NULL);
+    g_object_set (data->playsink, "video-sink", sink, NULL);
+
+    sink = gst_element_factory_make ("fakesink", NULL);
+    g_object_set (sink, "sync", FALSE, NULL);
+    g_object_set (data->playsink, "audio-sink", sink, NULL);
+  }
+#endif
+
+  gst_bin_add_many ((GstBin *) data->pipeline, data->src, data->decodebin,
+      data->playsink, NULL);
+  if (!gst_element_link (data->src, (GstElement *) data->decodebin)) {
+    g_printf ("Could not link source to demuxer\n");
+    return 1;
+  }
+
+  /* Handle other inputs if specified */
+  if (argc > 2) {
+    for (i = 2; i < argc; i++) {
+      GstElement *new_src =
+          gst_element_make_from_uri (GST_URI_SRC, argv[i], NULL, &error);
+      GstPad *src_pad, *sink_pad;
+      if (error) {
+        g_printf ("pipeline could not be constructed: %s\n", error->message);
+        g_error_free (error);
+        return 1;
+      }
+      data->other_src = g_list_append (data->other_src, new_src);
+      gst_bin_add ((GstBin *) data->pipeline, new_src);
+      src_pad = gst_element_get_static_pad (new_src, "src");
+      sink_pad = gst_element_get_request_pad (data->decodebin, "sink_%u");
+      if (gst_pad_link (src_pad, sink_pad) != GST_PAD_LINK_OK) {
+        g_printf ("Could not link new source to decodebin : %s\n", argv[i]);
+        return 1;
+      }
+    }
+  }
+
+
+  g_signal_connect (data->decodebin, "pad-added",
+      (GCallback) decodebin_pad_added_cb, data);
+  data->mainloop = g_main_loop_new (NULL, FALSE);
+
+  /* Put a bus handler */
+  bus = gst_pipeline_get_bus (GST_PIPELINE (data->pipeline));
+  gst_bus_set_sync_handler (bus, (GstBusSyncHandler) _on_bus_message, data,
+      NULL);
+
+  /* Start pipeline */
+  gst_element_set_state (data->pipeline, GST_STATE_PLAYING);
+  g_main_loop_run (data->mainloop);
+
+  gst_element_set_state (data->pipeline, GST_STATE_NULL);
+
+  gst_object_unref (data->pipeline);
+  gst_object_unref (bus);
+
+  return 0;
+}
diff --git a/tests/examples/decodebin_next/playbin-test.c b/tests/examples/decodebin_next/playbin-test.c
new file mode 100644
index 0000000..d8e9a88
--- /dev/null
+++ b/tests/examples/decodebin_next/playbin-test.c
@@ -0,0 +1,326 @@
+/* sample application for testing decodebin3 w/ playbin
+ *
+ * Copyright (C) 2015 Centricular Ltd
+ *  @author:  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
+
+#include <glib.h>
+#include <glib-object.h>
+#include <glib/gprintf.h>
+#include <gst/gst.h>
+
+/* Global structure */
+
+typedef struct _MyDataStruct
+{
+  GMainLoop *mainloop;
+  GstElement *pipeline;
+  GstBus *bus;
+
+  /* Current collection */
+  GstStreamCollection *collection;
+  guint notify_id;
+
+  guint current_audio;
+  guint current_video;
+  guint current_text;
+
+  glong timeout_id;
+} MyDataStruct;
+
+static void
+print_tag_foreach (const GstTagList * tags, const gchar * tag,
+    gpointer user_data)
+{
+  GValue val = { 0, };
+  gchar *str;
+  gint depth = GPOINTER_TO_INT (user_data);
+
+  if (!gst_tag_list_copy_value (&val, tags, tag))
+    return;
+
+  if (G_VALUE_HOLDS_STRING (&val))
+    str = g_value_dup_string (&val);
+  else
+    str = gst_value_serialize (&val);
+
+  g_print ("%*s%s: %s\n", 2 * depth, " ", gst_tag_get_nick (tag), str);
+  g_free (str);
+
+  g_value_unset (&val);
+}
+
+static void
+dump_collection (GstStreamCollection * collection)
+{
+  guint i;
+  const GstTagList *tags;
+  const GstCaps *caps;
+
+  for (i = 0; i < gst_stream_collection_get_size (collection); i++) {
+    GstStream *stream = gst_stream_collection_get_stream (collection, i);
+    g_print (" Stream %u type %s flags 0x%x\n", i,
+        gst_stream_type_get_name (gst_stream_get_stream_type (stream)),
+        gst_stream_get_stream_flags (stream));
+    g_print ("  ID: %s\n", gst_stream_get_stream_id (stream));
+
+    caps = gst_stream_get_caps (stream);
+    if (caps) {
+      gchar *caps_str = gst_caps_to_string (caps);
+      g_print ("  caps: %s\n", caps_str);
+      g_free (caps_str);
+    }
+
+    tags = gst_stream_get_tags (stream);
+    if (tags) {
+      g_print ("  tags:\n");
+      gst_tag_list_foreach (tags, print_tag_foreach, GUINT_TO_POINTER (3));
+    }
+  }
+}
+
+static gboolean
+switch_streams (MyDataStruct * data)
+{
+  guint i, nb_streams;
+  gint nb_video = 0, nb_audio = 0, nb_text = 0;
+  GstStream *videos[256], *audios[256], *texts[256];
+  GList *streams = NULL;
+  GstEvent *ev;
+
+  g_print ("Switching Streams...\n");
+
+  /* Calculate the number of streams of each type */
+  nb_streams = gst_stream_collection_get_size (data->collection);
+  for (i = 0; i < nb_streams; i++) {
+    GstStream *stream = gst_stream_collection_get_stream (data->collection, i);
+    GstStreamType stype = gst_stream_get_stream_type (stream);
+    if (stype == GST_STREAM_TYPE_VIDEO) {
+      videos[nb_video] = stream;
+      nb_video += 1;
+    } else if (stype == GST_STREAM_TYPE_AUDIO) {
+      audios[nb_audio] = stream;
+      nb_audio += 1;
+    } else if (stype == GST_STREAM_TYPE_TEXT) {
+      texts[nb_text] = stream;
+      nb_text += 1;
+    }
+  }
+
+  if (nb_video) {
+    data->current_video = (data->current_video + 1) % nb_video;
+    streams =
+        g_list_append (streams,
+        (gchar *) gst_stream_get_stream_id (videos[data->current_video]));
+    g_print ("  Selecting video channel #%d : %s\n", data->current_video,
+        gst_stream_get_stream_id (videos[data->current_video]));
+  }
+  if (nb_audio) {
+    data->current_audio = (data->current_audio + 1) % nb_audio;
+    streams =
+        g_list_append (streams,
+        (gchar *) gst_stream_get_stream_id (audios[data->current_audio]));
+    g_print ("  Selecting audio channel #%d : %s\n", data->current_audio,
+        gst_stream_get_stream_id (audios[data->current_audio]));
+  }
+  if (nb_text) {
+    data->current_text = (data->current_text + 1) % nb_text;
+    streams =
+        g_list_append (streams,
+        (gchar *) gst_stream_get_stream_id (texts[data->current_text]));
+    g_print ("  Selecting text channel #%d : %s\n", data->current_text,
+        gst_stream_get_stream_id (texts[data->current_text]));
+  }
+
+  ev = gst_event_new_select_streams (streams);
+  gst_element_send_event (data->pipeline, ev);
+
+  return G_SOURCE_CONTINUE;
+}
+
+static void
+stream_notify_cb (GstStreamCollection * collection, GstStream * stream,
+    GParamSpec * pspec, guint * val)
+{
+  g_print ("Got stream-notify from stream %s for %s (collection %p)\n",
+      stream->stream_id, pspec->name, collection);
+  if (g_str_equal (pspec->name, "caps")) {
+    GstCaps *caps = gst_stream_get_caps (stream);
+    gchar *caps_str = gst_caps_to_string (caps);
+    g_print (" New caps: %s\n", caps_str);
+    g_free (caps_str);
+    gst_caps_unref (caps);
+  }
+}
+
+static GstBusSyncReply
+_on_bus_message (GstBus * bus, GstMessage * message, MyDataStruct * data)
+{
+  GstObject *src = GST_MESSAGE_SRC (message);
+  switch (GST_MESSAGE_TYPE (message)) {
+    case GST_MESSAGE_ERROR:{
+      GError *err = NULL;
+      gchar *name = gst_object_get_path_string (GST_MESSAGE_SRC (message));
+      gst_message_parse_error (message, &err, NULL);
+
+      g_printerr ("ERROR: from element %s: %s\n", name, err->message);
+      g_error_free (err);
+      g_free (name);
+
+      g_printf ("Stopping\n");
+      g_main_loop_quit (data->mainloop);
+      break;
+    }
+    case GST_MESSAGE_EOS:
+      g_printf ("EOS ! Stopping \n");
+      g_main_loop_quit (data->mainloop);
+      break;
+    case GST_MESSAGE_STREAM_COLLECTION:
+    {
+      GstStreamCollection *collection = NULL;
+      gst_message_parse_stream_collection (message, &collection);
+      if (collection) {
+        g_printf ("Got a collection from %s:\n",
+            src ? GST_OBJECT_NAME (src) : "Unknown");
+        dump_collection (collection);
+        if (data->collection && data->notify_id) {
+          g_signal_handler_disconnect (data->collection, data->notify_id);
+          data->notify_id = 0;
+        }
+        gst_object_replace ((GstObject **) & data->collection,
+            (GstObject *) collection);
+        if (data->collection) {
+          data->notify_id =
+              g_signal_connect (data->collection, "stream-notify",
+              (GCallback) stream_notify_cb, data);
+        }
+        if (data->timeout_id == 0)
+          /* In 5s try to change streams */
+          data->timeout_id =
+              g_timeout_add_seconds (5, (GSourceFunc) switch_streams, data);
+      }
+      break;
+    }
+    case GST_MESSAGE_STREAMS_SELECTED:
+    {
+      GstStreamCollection *collection = NULL;
+      gst_message_parse_streams_selected (message, &collection);
+      if (collection) {
+        guint i, len;
+        g_printf ("Got a STREAMS_SELECTED message from %s (seqnum:%"
+            G_GUINT32_FORMAT "):\n", src ? GST_OBJECT_NAME (src) : "unknown",
+            GST_MESSAGE_SEQNUM (message));
+        len = gst_message_streams_selected_get_size (message);
+        for (i = 0; i < len; i++) {
+          GstStream *stream =
+              gst_message_streams_selected_get_stream (message, i);
+          g_printf ("  Stream #%d : %s\n", i,
+              gst_stream_get_stream_id (stream));
+          gst_object_unref (stream);
+        }
+        gst_object_unref (collection);
+      }
+    }
+    default:
+      break;
+  }
+
+  return GST_BUS_PASS;
+}
+
+static gchar *
+cmdline_to_uri (const gchar * arg)
+{
+  if (gst_uri_is_valid (arg))
+    return g_strdup (arg);
+
+  return gst_filename_to_uri (arg, NULL);
+}
+
+int
+main (int argc, gchar ** argv)
+{
+  GstBus *bus;
+  MyDataStruct *data;
+  gchar *uri;
+
+  gst_init (&argc, &argv);
+
+  data = g_new0 (MyDataStruct, 1);
+
+  uri = cmdline_to_uri (argv[1]);
+
+  if (argc < 2 || uri == NULL) {
+    g_print ("Usage: %s URI\n", argv[0]);
+    return 1;
+  }
+
+  data->pipeline = gst_element_factory_make ("playbin3", NULL);
+  if (data->pipeline == NULL) {
+    g_printerr ("Failed to create playbin element. Aborting");
+    return 1;
+  }
+
+  g_object_set (data->pipeline, "uri", uri, "auto-select-streams", FALSE, NULL);
+  g_free (uri);
+
+#if 0
+  {
+    GstElement *sink = gst_element_factory_make ("fakesink", NULL);
+    g_object_set (sink, "sync", FALSE, NULL);
+    g_object_set (data->pipeline, "video-sink", sink, NULL);
+
+    sink = gst_element_factory_make ("fakesink", NULL);
+    g_object_set (sink, "sync", FALSE, NULL);
+    g_object_set (data->pipeline, "audio-sink", sink, NULL);
+  }
+#endif
+
+  /* Handle other input if specified */
+  if (argc > 2) {
+    uri = cmdline_to_uri (argv[2]);
+    if (uri != NULL) {
+      g_object_set (data->pipeline, "suburi", uri, NULL);
+      g_free (uri);
+    } else {
+      g_warning ("Could not parse auxilliary file argument. Ignoring");
+    }
+  }
+
+  data->mainloop = g_main_loop_new (NULL, FALSE);
+
+  /* Put a bus handler */
+  bus = gst_pipeline_get_bus (GST_PIPELINE (data->pipeline));
+  gst_bus_set_sync_handler (bus, (GstBusSyncHandler) _on_bus_message, data,
+      NULL);
+
+  /* Start pipeline */
+  gst_element_set_state (data->pipeline, GST_STATE_PLAYING);
+  g_main_loop_run (data->mainloop);
+
+  gst_element_set_state (data->pipeline, GST_STATE_NULL);
+
+  gst_object_unref (data->pipeline);
+  gst_object_unref (bus);
+
+  return 0;
+}
diff --git a/tests/icles/Makefile.am b/tests/icles/Makefile.am
index f479bb7..f489cd4 100644
--- a/tests/icles/Makefile.am
+++ b/tests/icles/Makefile.am
@@ -88,6 +88,10 @@
 test_scale_CFLAGS = $(GST_PLUGINS_BASE_CFLAGS) $(GST_CFLAGS)
 test_scale_LDADD = $(GST_LIBS) $(LIBM)
 
+test_resample_SOURCES = test-resample.c
+test_resample_CFLAGS = $(GST_PLUGINS_BASE_CFLAGS) $(GST_CFLAGS)
+test_resample_LDADD = $(GST_LIBS) $(LIBM)
+
 test_box_SOURCES = test-box.c
 test_box_CFLAGS = $(GST_PLUGINS_BASE_CFLAGS) $(GST_CFLAGS)
 test_box_LDADD = $(GST_LIBS) $(LIBM)
@@ -98,4 +102,5 @@
 
 noinst_PROGRAMS = $(X_TESTS) $(PANGO_TESTS) \
 	audio-trickplay playbin-text position-formats stress-playbin \
-	test-scale test-box test-effect-switch test-overlay-blending test-reverseplay
+	test-scale test-box test-effect-switch test-overlay-blending test-reverseplay \
+	test-resample
diff --git a/tests/icles/Makefile.in b/tests/icles/Makefile.in
index 6aef428..80a1dac 100644
--- a/tests/icles/Makefile.in
+++ b/tests/icles/Makefile.in
@@ -95,7 +95,7 @@
 	position-formats$(EXEEXT) stress-playbin$(EXEEXT) \
 	test-scale$(EXEEXT) test-box$(EXEEXT) \
 	test-effect-switch$(EXEEXT) test-overlay-blending$(EXEEXT) \
-	test-reverseplay$(EXEEXT)
+	test-reverseplay$(EXEEXT) test-resample$(EXEEXT)
 subdir = tests/icles
 ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
 am__aclocal_m4_deps = $(top_srcdir)/common/m4/as-ac-expand.m4 \
@@ -245,6 +245,13 @@
 	$(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link $(CCLD) \
 	$(test_overlay_blending_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) \
 	$(LDFLAGS) -o $@
+am_test_resample_OBJECTS = test_resample-test-resample.$(OBJEXT)
+test_resample_OBJECTS = $(am_test_resample_OBJECTS)
+test_resample_DEPENDENCIES = $(am__DEPENDENCIES_1) \
+	$(am__DEPENDENCIES_1)
+test_resample_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \
+	$(LIBTOOLFLAGS) --mode=link $(CCLD) $(test_resample_CFLAGS) \
+	$(CFLAGS) $(AM_LDFLAGS) $(LDFLAGS) -o $@
 am_test_reverseplay_OBJECTS =  \
 	test_reverseplay-test-reverseplay.$(OBJEXT)
 test_reverseplay_OBJECTS = $(am_test_reverseplay_OBJECTS)
@@ -321,9 +328,9 @@
 	$(position_formats_SOURCES) $(stress_playbin_SOURCES) \
 	$(stress_videooverlay_SOURCES) $(test_box_SOURCES) \
 	$(test_colorkey_SOURCES) $(test_effect_switch_SOURCES) \
-	$(test_overlay_blending_SOURCES) $(test_reverseplay_SOURCES) \
-	$(test_scale_SOURCES) $(test_textoverlay_SOURCES) \
-	$(test_videooverlay_SOURCES)
+	$(test_overlay_blending_SOURCES) $(test_resample_SOURCES) \
+	$(test_reverseplay_SOURCES) $(test_scale_SOURCES) \
+	$(test_textoverlay_SOURCES) $(test_videooverlay_SOURCES)
 DIST_SOURCES = $(audio_trickplay_SOURCES) \
 	$(am__input_selector_test_SOURCES_DIST) \
 	$(am__output_selector_test_SOURCES_DIST) \
@@ -332,8 +339,8 @@
 	$(am__stress_videooverlay_SOURCES_DIST) $(test_box_SOURCES) \
 	$(am__test_colorkey_SOURCES_DIST) \
 	$(test_effect_switch_SOURCES) $(test_overlay_blending_SOURCES) \
-	$(test_reverseplay_SOURCES) $(test_scale_SOURCES) \
-	$(am__test_textoverlay_SOURCES_DIST) \
+	$(test_resample_SOURCES) $(test_reverseplay_SOURCES) \
+	$(test_scale_SOURCES) $(am__test_textoverlay_SOURCES_DIST) \
 	$(am__test_videooverlay_SOURCES_DIST)
 RECURSIVE_TARGETS = all-recursive check-recursive cscopelist-recursive \
 	ctags-recursive dvi-recursive html-recursive info-recursive \
@@ -765,6 +772,9 @@
 test_scale_SOURCES = test-scale.c
 test_scale_CFLAGS = $(GST_PLUGINS_BASE_CFLAGS) $(GST_CFLAGS)
 test_scale_LDADD = $(GST_LIBS) $(LIBM)
+test_resample_SOURCES = test-resample.c
+test_resample_CFLAGS = $(GST_PLUGINS_BASE_CFLAGS) $(GST_CFLAGS)
+test_resample_LDADD = $(GST_LIBS) $(LIBM)
 test_box_SOURCES = test-box.c
 test_box_CFLAGS = $(GST_PLUGINS_BASE_CFLAGS) $(GST_CFLAGS)
 test_box_LDADD = $(GST_LIBS) $(LIBM)
@@ -858,6 +868,10 @@
 	@rm -f test-overlay-blending$(EXEEXT)
 	$(AM_V_CCLD)$(test_overlay_blending_LINK) $(test_overlay_blending_OBJECTS) $(test_overlay_blending_LDADD) $(LIBS)
 
+test-resample$(EXEEXT): $(test_resample_OBJECTS) $(test_resample_DEPENDENCIES) $(EXTRA_test_resample_DEPENDENCIES) 
+	@rm -f test-resample$(EXEEXT)
+	$(AM_V_CCLD)$(test_resample_LINK) $(test_resample_OBJECTS) $(test_resample_LDADD) $(LIBS)
+
 test-reverseplay$(EXEEXT): $(test_reverseplay_OBJECTS) $(test_reverseplay_DEPENDENCIES) $(EXTRA_test_reverseplay_DEPENDENCIES) 
 	@rm -f test-reverseplay$(EXEEXT)
 	$(AM_V_CCLD)$(test_reverseplay_LINK) $(test_reverseplay_OBJECTS) $(test_reverseplay_LDADD) $(LIBS)
@@ -891,6 +905,7 @@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test_colorkey-test-colorkey.Po@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test_effect_switch-test-effect-switch.Po@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test_overlay_blending-test-overlay-blending.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test_resample-test-resample.Po@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test_reverseplay-test-reverseplay.Po@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test_scale-test-scale.Po@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test_textoverlay-test-textoverlay.Po@am__quote@
@@ -1074,6 +1089,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) $(test_overlay_blending_CFLAGS) $(CFLAGS) -c -o test_overlay_blending-test-overlay-blending.obj `if test -f 'test-overlay-blending.c'; then $(CYGPATH_W) 'test-overlay-blending.c'; else $(CYGPATH_W) '$(srcdir)/test-overlay-blending.c'; fi`
 
+test_resample-test-resample.o: test-resample.c
+@am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(test_resample_CFLAGS) $(CFLAGS) -MT test_resample-test-resample.o -MD -MP -MF $(DEPDIR)/test_resample-test-resample.Tpo -c -o test_resample-test-resample.o `test -f 'test-resample.c' || echo '$(srcdir)/'`test-resample.c
+@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/test_resample-test-resample.Tpo $(DEPDIR)/test_resample-test-resample.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='test-resample.c' object='test_resample-test-resample.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) $(test_resample_CFLAGS) $(CFLAGS) -c -o test_resample-test-resample.o `test -f 'test-resample.c' || echo '$(srcdir)/'`test-resample.c
+
+test_resample-test-resample.obj: test-resample.c
+@am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(test_resample_CFLAGS) $(CFLAGS) -MT test_resample-test-resample.obj -MD -MP -MF $(DEPDIR)/test_resample-test-resample.Tpo -c -o test_resample-test-resample.obj `if test -f 'test-resample.c'; then $(CYGPATH_W) 'test-resample.c'; else $(CYGPATH_W) '$(srcdir)/test-resample.c'; fi`
+@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/test_resample-test-resample.Tpo $(DEPDIR)/test_resample-test-resample.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='test-resample.c' object='test_resample-test-resample.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) $(test_resample_CFLAGS) $(CFLAGS) -c -o test_resample-test-resample.obj `if test -f 'test-resample.c'; then $(CYGPATH_W) 'test-resample.c'; else $(CYGPATH_W) '$(srcdir)/test-resample.c'; fi`
+
 test_reverseplay-test-reverseplay.o: test-reverseplay.c
 @am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(test_reverseplay_CFLAGS) $(CFLAGS) -MT test_reverseplay-test-reverseplay.o -MD -MP -MF $(DEPDIR)/test_reverseplay-test-reverseplay.Tpo -c -o test_reverseplay-test-reverseplay.o `test -f 'test-reverseplay.c' || echo '$(srcdir)/'`test-reverseplay.c
 @am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/test_reverseplay-test-reverseplay.Tpo $(DEPDIR)/test_reverseplay-test-reverseplay.Po
diff --git a/tests/icles/test-resample.c b/tests/icles/test-resample.c
new file mode 100644
index 0000000..a956125
--- /dev/null
+++ b/tests/icles/test-resample.c
@@ -0,0 +1,123 @@
+/* GStreamer interactive audioresample test
+ * Copyright (C) 2016 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.
+ */
+
+#ifdef HAVE_CONFIG_H
+#include "config.h"
+#endif
+
+#include <stdlib.h>
+
+#include <gst/gst.h>
+
+static GstElement *
+make_pipeline (gint type)
+{
+  GstElement *result;
+  gchar *pstr;
+
+  switch (type) {
+    case 0:
+      pstr = g_strdup_printf ("audiotestsrc ! audio/x-raw,rate=44100 ! "
+          " audioresample ! capsfilter name=filter ! capssetter caps="
+          "audio/x-raw,rate=44100 ! wavenc ! filesink location=test.wav");
+      break;
+    default:
+      return NULL;
+  }
+
+  result = gst_parse_launch_full (pstr, NULL, GST_PARSE_FLAG_NONE, NULL);
+  g_print ("created test %d: \"%s\"\n", type, pstr);
+  g_free (pstr);
+
+  return result;
+}
+
+typedef struct
+{
+  gint rate;
+  GstElement *filter;
+} Data;
+
+static GstPadProbeReturn
+have_probe (GstPad * pad, GstPadProbeInfo * info, gpointer user_data)
+{
+  Data *data = user_data;
+  gchar *capsstr;
+  GstCaps *caps;
+
+  g_print ("resample to %d   \r", data->rate);
+
+  capsstr = g_strdup_printf ("audio/x-raw, rate=(int)%d", data->rate);
+  caps = gst_caps_from_string (capsstr);
+  g_free (capsstr);
+  g_object_set (data->filter, "caps", caps, NULL);
+  gst_caps_unref (caps);
+
+  data->rate += 100;
+
+  if (data->rate > 128000)
+    gst_element_post_message (data->filter,
+        gst_message_new_application (GST_OBJECT (data->filter),
+            gst_structure_new_empty ("my-message")));
+
+  return GST_PAD_PROBE_OK;
+}
+
+int
+main (int argc, char **argv)
+{
+  GstElement *pipe;
+  GstMessage *message;
+  GstPad *srcpad;
+  Data data;
+
+  gst_init (&argc, &argv);
+
+  pipe = make_pipeline (0);
+  if (pipe == NULL)
+    return -1;
+
+  data.rate = 1000;
+  data.filter = gst_bin_get_by_name (GST_BIN (pipe), "filter");
+  g_assert (data.filter);
+
+  srcpad = gst_element_get_static_pad (data.filter, "src");
+  gst_pad_add_probe (srcpad, GST_PAD_PROBE_TYPE_DATA_DOWNSTREAM, have_probe,
+      &data, NULL);
+  gst_object_unref (srcpad);
+
+  gst_element_set_state (pipe, GST_STATE_PLAYING);
+
+  while (TRUE) {
+    message =
+        gst_bus_poll (GST_ELEMENT_BUS (pipe),
+        GST_MESSAGE_ERROR | GST_MESSAGE_APPLICATION, 50 * GST_MSECOND);
+    if (message) {
+      g_print ("got error           \n");
+
+      gst_message_unref (message);
+      break;
+    }
+  }
+  gst_object_unref (data.filter);
+  gst_element_set_state (pipe, GST_STATE_NULL);
+  gst_object_unref (pipe);
+
+  return 0;
+}
diff --git a/tools/gst-play.c b/tools/gst-play.c
index 6a70f0e..4204d55 100644
--- a/tools/gst-play.c
+++ b/tools/gst-play.c
@@ -1289,5 +1289,6 @@
   g_free (video_sink);
 
   g_print ("\n");
+  gst_deinit ();
   return 0;
 }
diff --git a/win32/common/_stdint.h b/win32/common/_stdint.h
index f13ce94..818955d 100644
--- a/win32/common/_stdint.h
+++ b/win32/common/_stdint.h
@@ -1,8 +1,8 @@
 #ifndef _GST_PLUGINS_BASE__STDINT_H
 #define _GST_PLUGINS_BASE__STDINT_H 1
 #ifndef _GENERATED_STDINT_H
-#define _GENERATED_STDINT_H "gst-plugins-base 1.8.2"
-/* generated using gnu compiler gcc (Debian 5.4.0-3) 5.4.0 20160603 */
+#define _GENERATED_STDINT_H "gst-plugins-base 1.9.1"
+/* generated using gnu compiler gcc-6 (Debian 6.1.1-8) 6.1.1 20160630 */
 #define _STDINT_HAVE_STDINT_H 1
 #include <stdint.h>
 #endif
diff --git a/win32/common/audio-enumtypes.c b/win32/common/audio-enumtypes.c
index 853929c..5c95483 100644
--- a/win32/common/audio-enumtypes.c
+++ b/win32/common/audio-enumtypes.c
@@ -10,6 +10,7 @@
 #include "audio-converter.h"
 #include "audio-info.h"
 #include "audio-quantize.h"
+#include "audio-resampler.h"
 #include "gstaudioringbuffer.h"
 
 /* enumerations from "audio-format.h" */
@@ -343,6 +344,98 @@
   return g_define_type_id__volatile;
 }
 
+/* enumerations from "audio-resampler.h" */
+GType
+gst_audio_resampler_filter_mode_get_type (void)
+{
+  static volatile gsize g_define_type_id__volatile = 0;
+  if (g_once_init_enter (&g_define_type_id__volatile)) {
+    static const GEnumValue values[] = {
+      {GST_AUDIO_RESAMPLER_FILTER_MODE_INTERPOLATED,
+          "GST_AUDIO_RESAMPLER_FILTER_MODE_INTERPOLATED", "interpolated"},
+      {GST_AUDIO_RESAMPLER_FILTER_MODE_FULL,
+          "GST_AUDIO_RESAMPLER_FILTER_MODE_FULL", "full"},
+      {GST_AUDIO_RESAMPLER_FILTER_MODE_AUTO,
+          "GST_AUDIO_RESAMPLER_FILTER_MODE_AUTO", "auto"},
+      {0, NULL, NULL}
+    };
+    GType g_define_type_id =
+        g_enum_register_static ("GstAudioResamplerFilterMode", values);
+    g_once_init_leave (&g_define_type_id__volatile, g_define_type_id);
+  }
+  return g_define_type_id__volatile;
+}
+
+GType
+gst_audio_resampler_filter_interpolation_get_type (void)
+{
+  static volatile gsize g_define_type_id__volatile = 0;
+  if (g_once_init_enter (&g_define_type_id__volatile)) {
+    static const GEnumValue values[] = {
+      {GST_AUDIO_RESAMPLER_FILTER_INTERPOLATION_NONE,
+          "GST_AUDIO_RESAMPLER_FILTER_INTERPOLATION_NONE", "none"},
+      {GST_AUDIO_RESAMPLER_FILTER_INTERPOLATION_LINEAR,
+          "GST_AUDIO_RESAMPLER_FILTER_INTERPOLATION_LINEAR", "linear"},
+      {GST_AUDIO_RESAMPLER_FILTER_INTERPOLATION_CUBIC,
+          "GST_AUDIO_RESAMPLER_FILTER_INTERPOLATION_CUBIC", "cubic"},
+      {0, NULL, NULL}
+    };
+    GType g_define_type_id =
+        g_enum_register_static ("GstAudioResamplerFilterInterpolation", values);
+    g_once_init_leave (&g_define_type_id__volatile, g_define_type_id);
+  }
+  return g_define_type_id__volatile;
+}
+
+GType
+gst_audio_resampler_method_get_type (void)
+{
+  static volatile gsize g_define_type_id__volatile = 0;
+  if (g_once_init_enter (&g_define_type_id__volatile)) {
+    static const GEnumValue values[] = {
+      {GST_AUDIO_RESAMPLER_METHOD_NEAREST, "GST_AUDIO_RESAMPLER_METHOD_NEAREST",
+          "nearest"},
+      {GST_AUDIO_RESAMPLER_METHOD_LINEAR, "GST_AUDIO_RESAMPLER_METHOD_LINEAR",
+          "linear"},
+      {GST_AUDIO_RESAMPLER_METHOD_CUBIC, "GST_AUDIO_RESAMPLER_METHOD_CUBIC",
+          "cubic"},
+      {GST_AUDIO_RESAMPLER_METHOD_BLACKMAN_NUTTALL,
+          "GST_AUDIO_RESAMPLER_METHOD_BLACKMAN_NUTTALL", "blackman-nuttall"},
+      {GST_AUDIO_RESAMPLER_METHOD_KAISER, "GST_AUDIO_RESAMPLER_METHOD_KAISER",
+          "kaiser"},
+      {0, NULL, NULL}
+    };
+    GType g_define_type_id =
+        g_enum_register_static ("GstAudioResamplerMethod", values);
+    g_once_init_leave (&g_define_type_id__volatile, g_define_type_id);
+  }
+  return g_define_type_id__volatile;
+}
+
+GType
+gst_audio_resampler_flags_get_type (void)
+{
+  static volatile gsize g_define_type_id__volatile = 0;
+  if (g_once_init_enter (&g_define_type_id__volatile)) {
+    static const GFlagsValue values[] = {
+      {GST_AUDIO_RESAMPLER_FLAG_NONE, "GST_AUDIO_RESAMPLER_FLAG_NONE", "none"},
+      {GST_AUDIO_RESAMPLER_FLAG_NON_INTERLEAVED_IN,
+            "GST_AUDIO_RESAMPLER_FLAG_NON_INTERLEAVED_IN",
+          "non-interleaved-in"},
+      {GST_AUDIO_RESAMPLER_FLAG_NON_INTERLEAVED_OUT,
+            "GST_AUDIO_RESAMPLER_FLAG_NON_INTERLEAVED_OUT",
+          "non-interleaved-out"},
+      {GST_AUDIO_RESAMPLER_FLAG_VARIABLE_RATE,
+          "GST_AUDIO_RESAMPLER_FLAG_VARIABLE_RATE", "variable-rate"},
+      {0, NULL, NULL}
+    };
+    GType g_define_type_id =
+        g_flags_register_static ("GstAudioResamplerFlags", values);
+    g_once_init_leave (&g_define_type_id__volatile, g_define_type_id);
+  }
+  return g_define_type_id__volatile;
+}
+
 /* enumerations from "gstaudioringbuffer.h" */
 GType
 gst_audio_ring_buffer_state_get_type (void)
diff --git a/win32/common/audio-enumtypes.h b/win32/common/audio-enumtypes.h
index 7d03861..f529f49 100644
--- a/win32/common/audio-enumtypes.h
+++ b/win32/common/audio-enumtypes.h
@@ -42,6 +42,16 @@
 GType gst_audio_quantize_flags_get_type (void);
 #define GST_TYPE_AUDIO_QUANTIZE_FLAGS (gst_audio_quantize_flags_get_type())
 
+/* enumerations from "audio-resampler.h" */
+GType gst_audio_resampler_filter_mode_get_type (void);
+#define GST_TYPE_AUDIO_RESAMPLER_FILTER_MODE (gst_audio_resampler_filter_mode_get_type())
+GType gst_audio_resampler_filter_interpolation_get_type (void);
+#define GST_TYPE_AUDIO_RESAMPLER_FILTER_INTERPOLATION (gst_audio_resampler_filter_interpolation_get_type())
+GType gst_audio_resampler_method_get_type (void);
+#define GST_TYPE_AUDIO_RESAMPLER_METHOD (gst_audio_resampler_method_get_type())
+GType gst_audio_resampler_flags_get_type (void);
+#define GST_TYPE_AUDIO_RESAMPLER_FLAGS (gst_audio_resampler_flags_get_type())
+
 /* enumerations from "gstaudioringbuffer.h" */
 GType gst_audio_ring_buffer_state_get_type (void);
 #define GST_TYPE_AUDIO_RING_BUFFER_STATE (gst_audio_ring_buffer_state_get_type())
diff --git a/win32/common/config.h b/win32/common/config.h
index ff16824..9f6b6aa 100644
--- a/win32/common/config.h
+++ b/win32/common/config.h
@@ -90,7 +90,7 @@
 #define GST_PACKAGE_ORIGIN "Unknown package origin"
 
 /* GStreamer package release date/time for plugins as YYYY-MM-DD */
-#define GST_PACKAGE_RELEASE_DATETIME "2016-06-09"
+#define GST_PACKAGE_RELEASE_DATETIME "2016-06-06"
 
 /* Define if static plugins should be built */
 #undef GST_PLUGIN_BUILD_STATIC
@@ -251,6 +251,9 @@
 /* Define if RDTSC is available */
 #undef HAVE_RDTSC
 
+/* Define to 1 if you have the <smmintrin.h> header file. */
+#undef HAVE_SMMINTRIN_H
+
 /* Define to 1 if you have the <stdint.h> header file. */
 #undef HAVE_STDINT_H
 
@@ -339,7 +342,7 @@
 #define PACKAGE_NAME "GStreamer Base Plug-ins"
 
 /* Define to the full name and version of this package. */
-#define PACKAGE_STRING "GStreamer Base Plug-ins 1.8.2"
+#define PACKAGE_STRING "GStreamer Base Plug-ins 1.9.1"
 
 /* Define to the one symbol short name of this package. */
 #define PACKAGE_TARNAME "gst-plugins-base"
@@ -348,7 +351,7 @@
 #undef PACKAGE_URL
 
 /* Define to the version of this package. */
-#define PACKAGE_VERSION "1.8.2"
+#define PACKAGE_VERSION "1.9.1"
 
 /* directory where plugins are located */
 #ifdef _DEBUG
@@ -382,7 +385,7 @@
 #undef USE_TREMOLO
 
 /* Version number of package */
-#define VERSION "1.8.2"
+#define VERSION "1.9.1"
 
 /* Define WORDS_BIGENDIAN to 1 if your processor stores words with the most
    significant byte first (like Motorola and SPARC, unlike Intel). */
diff --git a/win32/common/libgstapp.def b/win32/common/libgstapp.def
index de8fdb4..de99f19 100644
--- a/win32/common/libgstapp.def
+++ b/win32/common/libgstapp.def
@@ -17,6 +17,7 @@
 	gst_app_src_end_of_stream
 	gst_app_src_get_caps
 	gst_app_src_get_current_level_bytes
+	gst_app_src_get_duration
 	gst_app_src_get_emit_signals
 	gst_app_src_get_latency
 	gst_app_src_get_max_bytes
@@ -27,6 +28,7 @@
 	gst_app_src_push_sample
 	gst_app_src_set_callbacks
 	gst_app_src_set_caps
+	gst_app_src_set_duration
 	gst_app_src_set_emit_signals
 	gst_app_src_set_latency
 	gst_app_src_set_max_bytes
diff --git a/win32/common/libgstaudio.def b/win32/common/libgstaudio.def
index d0b7f44..fa39be3 100644
--- a/win32/common/libgstaudio.def
+++ b/win32/common/libgstaudio.def
@@ -36,6 +36,7 @@
 	gst_audio_channel_position_get_type
 	gst_audio_channel_positions_from_mask
 	gst_audio_channel_positions_to_mask
+	gst_audio_channel_positions_to_string
 	gst_audio_channel_positions_to_valid_order
 	gst_audio_check_valid_channel_positions
 	gst_audio_clipping_meta_api_get_type
@@ -75,6 +76,7 @@
 	gst_audio_decoder_merge_tags
 	gst_audio_decoder_negotiate
 	gst_audio_decoder_proxy_getcaps
+	gst_audio_decoder_set_allocation_caps
 	gst_audio_decoder_set_drainable
 	gst_audio_decoder_set_estimate_rate
 	gst_audio_decoder_set_latency
@@ -108,6 +110,7 @@
 	gst_audio_encoder_merge_tags
 	gst_audio_encoder_negotiate
 	gst_audio_encoder_proxy_getcaps
+	gst_audio_encoder_set_allocation_caps
 	gst_audio_encoder_set_drainable
 	gst_audio_encoder_set_frame_max
 	gst_audio_encoder_set_frame_samples_max
@@ -154,6 +157,19 @@
 	gst_audio_quantize_reset
 	gst_audio_quantize_samples
 	gst_audio_reorder_channels
+	gst_audio_resampler_filter_interpolation_get_type
+	gst_audio_resampler_filter_mode_get_type
+	gst_audio_resampler_flags_get_type
+	gst_audio_resampler_free
+	gst_audio_resampler_get_in_frames
+	gst_audio_resampler_get_max_latency
+	gst_audio_resampler_get_out_frames
+	gst_audio_resampler_method_get_type
+	gst_audio_resampler_new
+	gst_audio_resampler_options_set_quality
+	gst_audio_resampler_resample
+	gst_audio_resampler_reset
+	gst_audio_resampler_update
 	gst_audio_ring_buffer_acquire
 	gst_audio_ring_buffer_activate
 	gst_audio_ring_buffer_advance
diff --git a/win32/common/libgstpbutils.def b/win32/common/libgstpbutils.def
index 785bfb4..302b6cb 100644
--- a/win32/common/libgstpbutils.def
+++ b/win32/common/libgstpbutils.def
@@ -2,9 +2,11 @@
 	gst_audio_visualizer_get_type
 	gst_audio_visualizer_shader_get_type
 	gst_codec_utils_aac_caps_set_level_and_profile
+	gst_codec_utils_aac_get_channels
 	gst_codec_utils_aac_get_index_from_sample_rate
 	gst_codec_utils_aac_get_level
 	gst_codec_utils_aac_get_profile
+	gst_codec_utils_aac_get_sample_rate
 	gst_codec_utils_aac_get_sample_rate_from_index
 	gst_codec_utils_h264_caps_set_level_and_profile
 	gst_codec_utils_h264_get_level
diff --git a/win32/common/libgstrtp.def b/win32/common/libgstrtp.def
index 52f654f..137ccf5 100644
--- a/win32/common/libgstrtp.def
+++ b/win32/common/libgstrtp.def
@@ -12,7 +12,17 @@
 	gst_rtcp_buffer_validate_data_reduced
 	gst_rtcp_buffer_validate_reduced
 	gst_rtcp_ntp_to_unix
+	gst_rtcp_packet_add_profile_specific_ext
 	gst_rtcp_packet_add_rb
+	gst_rtcp_packet_app_get_data
+	gst_rtcp_packet_app_get_data_length
+	gst_rtcp_packet_app_get_name
+	gst_rtcp_packet_app_get_ssrc
+	gst_rtcp_packet_app_get_subtype
+	gst_rtcp_packet_app_set_data_length
+	gst_rtcp_packet_app_set_name
+	gst_rtcp_packet_app_set_ssrc
+	gst_rtcp_packet_app_set_subtype
 	gst_rtcp_packet_bye_add_ssrc
 	gst_rtcp_packet_bye_add_ssrcs
 	gst_rtcp_packet_bye_get_nth_ssrc
@@ -20,6 +30,7 @@
 	gst_rtcp_packet_bye_get_reason_len
 	gst_rtcp_packet_bye_get_ssrc_count
 	gst_rtcp_packet_bye_set_reason
+	gst_rtcp_packet_copy_profile_specific_ext
 	gst_rtcp_packet_fb_get_fci
 	gst_rtcp_packet_fb_get_fci_length
 	gst_rtcp_packet_fb_get_media_ssrc
@@ -32,6 +43,8 @@
 	gst_rtcp_packet_get_count
 	gst_rtcp_packet_get_length
 	gst_rtcp_packet_get_padding
+	gst_rtcp_packet_get_profile_specific_ext
+	gst_rtcp_packet_get_profile_specific_ext_length
 	gst_rtcp_packet_get_rb
 	gst_rtcp_packet_get_rb_count
 	gst_rtcp_packet_get_type
diff --git a/win32/common/video-enumtypes.c b/win32/common/video-enumtypes.c
index bade190..d7bb6fe 100644
--- a/win32/common/video-enumtypes.c
+++ b/win32/common/video-enumtypes.c
@@ -86,6 +86,9 @@
       {GST_VIDEO_FORMAT_A444_10BE, "GST_VIDEO_FORMAT_A444_10BE", "a444-10be"},
       {GST_VIDEO_FORMAT_A444_10LE, "GST_VIDEO_FORMAT_A444_10LE", "a444-10le"},
       {GST_VIDEO_FORMAT_NV61, "GST_VIDEO_FORMAT_NV61", "nv61"},
+      {GST_VIDEO_FORMAT_P010_10BE, "GST_VIDEO_FORMAT_P010_10BE", "p010-10be"},
+      {GST_VIDEO_FORMAT_P010_10LE, "GST_VIDEO_FORMAT_P010_10LE", "p010-10le"},
+      {GST_VIDEO_FORMAT_IYU2, "GST_VIDEO_FORMAT_IYU2", "iyu2"},
       {0, NULL, NULL}
     };
     GType g_define_type_id = g_enum_register_static ("GstVideoFormat", values);
@@ -798,12 +801,14 @@
 {
   static volatile gsize g_define_type_id__volatile = 0;
   if (g_once_init_enter (&g_define_type_id__volatile)) {
-    static const GEnumValue values[] = {
+    static const GFlagsValue values[] = {
       {GST_VIDEO_RESAMPLER_FLAG_NONE, "GST_VIDEO_RESAMPLER_FLAG_NONE", "none"},
+      {GST_VIDEO_RESAMPLER_FLAG_HALF_TAPS, "GST_VIDEO_RESAMPLER_FLAG_HALF_TAPS",
+          "half-taps"},
       {0, NULL, NULL}
     };
     GType g_define_type_id =
-        g_enum_register_static ("GstVideoResamplerFlags", values);
+        g_flags_register_static ("GstVideoResamplerFlags", values);
     g_once_init_leave (&g_define_type_id__volatile, g_define_type_id);
   }
   return g_define_type_id__volatile;