Merge tag 'upstream/1.9.2' into debian-experimental

Upstream version 1.9.2
diff --git a/ChangeLog b/ChangeLog
index 586f744..7eaa8df 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,9 +1,741 @@
-=== release 1.9.1 ===
+=== release 1.9.2 ===
 
-2016-07-06  Sebastian Dröge <slomo@coaxion.net>
+2016-09-01  Sebastian Dröge <slomo@coaxion.net>
 
 	* configure.ac:
-	  releasing 1.9.1
+	  releasing 1.9.2
+
+2016-09-01 11:22:45 +0300  Sebastian Dröge <sebastian@centricular.com>
+
+	* po/af.po:
+	* po/az.po:
+	* po/be.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/nb.po:
+	* po/nl.po:
+	* po/pl.po:
+	* po/pt_BR.po:
+	* po/ro.po:
+	* po/ru.po:
+	* po/rw.po:
+	* po/sk.po:
+	* po/sl.po:
+	* po/sq.po:
+	* po/sr.po:
+	* po/sv.po:
+	* po/tr.po:
+	* po/uk.po:
+	* po/vi.po:
+	* po/zh_CN.po:
+	* po/zh_TW.po:
+	  po: Update translations
+
+2016-08-31 09:49:03 +0200  Carlos Rafael Giani <dv@pseudoterminal.org>
+
+	* plugins/elements/gstmultiqueue.c:
+	* tests/check/elements/multiqueue.c:
+	  multiqueue: Add higher-resolution low/high-watermark properties
+	  low/high-watermark are of type double, and given in range 0.0-1.0. This
+	  makes it possible to set low/high watermarks with greater resolution,
+	  which is useful with large multiqueue max sizes and watermarks like 0.5%.
+	  Also adding a test to check the fill and watermark level behavior.
+	  https://bugzilla.gnome.org/show_bug.cgi?id=770628
+
+2016-08-31 09:48:53 +0200  Carlos Rafael Giani <dv@pseudoterminal.org>
+
+	* plugins/elements/gstmultiqueue.c:
+	* plugins/elements/gstmultiqueue.h:
+	  multiqueue: Distinguish between buffering percentage and buffering level
+	  To make the code clearer, and to facilitate future improvements, introduce
+	  a distinction between the buffering level and the buffering percentage.
+	  Buffering level: the queue's current fill level. The low/high watermarks
+	  are in this range.
+	  Buffering percentage: percentage relative to the low/high watermarks
+	  (0% = low watermark, 100% = high watermark).
+	  To that end, get_percentage() is renamed to get_buffering_level(). Also,
+	  low/high_percent are renamed to low/high_watermark to avoid confusion.
+	  mq->buffering_percent values are now normalized in the 0..100 range for
+	  buffering messages inside update_buffering(), and not just before sending
+	  the buffering message. Finally the buffering level range is parameterized
+	  by adding a new constant called MAX_BUFFERING_LEVEL.
+	  https://bugzilla.gnome.org/show_bug.cgi?id=770628
+
+2016-08-31 09:48:38 +0200  Carlos Rafael Giani <dv@pseudoterminal.org>
+
+	* plugins/elements/gstmultiqueue.c:
+	* plugins/elements/gstmultiqueue.h:
+	  multiqueue: Rename percent/percent_changed to buffering_percent(_changed)
+	  This is a prerequisite for subsequent commits, and makes queue2 and
+	  multiqueue code a little more consistent.
+	  https://bugzilla.gnome.org/show_bug.cgi?id=770628
+
+2016-08-23 14:57:33 +0900  Edward Hervey <edward@centricular.com>
+
+	* plugins/elements/gstmultiqueue.c:
+	  multiqueue: Fix high_time wakeup logic
+	  When calculating the high_time, cache the group value in each singlequeue.
+	  This fixes the issue by which wake_up_next_non_linked() would use the global
+	  high-time to decide whether to wake-up a waiting thread, instead of the group
+	  one, resulting in those threads constantly spinning.
+	  Tidy up a bit the waiting logic while we're at it.
+	  With this patch, we go from 212% playing a 8 audio / 8 video file down to less
+	  than 10% (most of it being the video decoding).
+	  https://bugzilla.gnome.org/show_bug.cgi?id=770225
+
+2016-08-28 16:02:14 +0100  Tim-Philipp Müller <tim@centricular.com>
+
+	* tools/gst-inspect.c:
+	  tools: gst-inspect: don't print internal pad request function name
+	  This just confuses people, they look at it and try to call it
+	  directly by name, instead of using the public GstElement API.
+	  It stands to reason that it goes without saying that when an
+	  element provides request pads that they can actually be
+	  requested using the standard API, and there's no point in
+	  printing internal implementation details of the element.
+
+2016-08-23 13:27:58 -0300  Thibault Saunier <tsaunier@gnome.org>
+
+	* libs/gst/base/gstbaseparse.c:
+	* libs/gst/base/gstbasesink.c:
+	* libs/gst/base/gstbasesrc.c:
+	* plugins/elements/gstdownloadbuffer.c:
+	* plugins/elements/gstmultiqueue.c:
+	* plugins/elements/gstqueue.c:
+	* plugins/elements/gstqueue2.c:
+	* plugins/elements/gsttypefindelement.c:
+	  Make use of the new GST_ELEMENT_FLOW_ERROR API all around.
+	  https://bugzilla.gnome.org/show_bug.cgi?id=770158
+
+2016-08-23 13:27:20 -0300  Thibault Saunier <tsaunier@gnome.org>
+
+	* docs/gst/gstreamer-sections.txt:
+	* gst/gstelement.h:
+	  element: Add API to more easily post messages about flowing issues
+	  In many parts of the code we raise streaming error when the flow
+	  goes wrong, and each time we create more or less similare error
+	  message. Also that message does not let the application know what
+	  has actually gone wrong. In the new API we add a "flow-return" detail
+	  field inside the GstMessage so that the application has all the information
+	  if it needs it.
+	  API:
+	  GST_ELEMENT_FLOW_ERROR
+	  https://bugzilla.gnome.org/show_bug.cgi?id=770158
+
+2016-08-26 19:27:22 +0530  Nirbheek Chauhan <nirbheek@centricular.com>
+
+	* configure.ac:
+	* gst/gstconfig.h.in:
+	* meson.build:
+	  gstconfig: Decide GST_EXPORT declaration style at build time
+	  We only use GST_EXPORT consistently when building with MSVC by using the
+	  visual studio definitions files (win32/common/*.def), so always disable
+	  it when building with Autotools and only enable it with Meson when
+	  building with MSVC.
+	  This allows you to use MinGW to link to a GStreamer built with MSVC and
+	  get the correct function prototypes to find functions and variables in
+	  DLLs.
+
+2016-08-26 16:21:30 +0900  Wonchul Lee <wonchul.lee@collabora.com>
+
+	* docs/design/part-stream-selection.txt:
+	  docs: fix typo in stream selection docs
+	  https://bugzilla.gnome.org//show_bug.cgi?id=770428
+
+2016-08-26 12:55:04 +0100  Tim-Philipp Müller <tim@centricular.com>
+
+	* docs/gst/gstreamer-sections.txt:
+	* gst/gstelement.c:
+	* gst/gstelement.h:
+	* win32/common/libgstreamer.def:
+	  element: rename gst_element_message_new_details() to gst_make_element_message_details()
+	  Fixes g-i warning "Gst: Constructor return type mismatch
+	  symbol='gst_element_message_new_details' constructed='Gst.Element'
+	  return='Gst.Structure'".
+	  This is a newly-added function in git that has not been in a stable
+	  release yet, so it's fine to rename it. It's also only used indirectly
+	  via macros.
+
+2016-08-26 12:35:23 +0100  Tim-Philipp Müller <tim@centricular.com>
+
+	* gst/gstelement.c:
+	* gst/gstmessage.c:
+	* gst/gsttracerutils.c:
+	  docs: fix various gtk-doc warnings
+	  e.g. "warning: multi-line since docs found"
+
+2016-08-26 12:04:33 +0100  Tim-Philipp Müller <tim@centricular.com>
+
+	* gst/gstinfo.c:
+	  g-i: info: allow passing NULL to gst_debug_remove_log_function()
+	  Useful for removing the default handler from bindings.
+
+2016-08-25 15:04:06 -0300  Thibault Saunier <tsaunier@gnome.org>
+
+	* docs/gst/meson.build:
+	* docs/libs/meson.build:
+	* meson.build:
+	  meson: doc: Fix building documentation when using subprojects
+	  and check the presence of gtk-doc before building the documentation
+
+2016-08-26 03:17:41 +1000  Jan Schmidt <jan@centricular.com>
+
+	* gst/gstvalue.c:
+	* tests/check/gst/gstvalue.c:
+	  value: Implement can_intersect for GstFlagSet types
+	  Make sure that gst_value_can_intersect returns TRUE
+	  for GstFlagSet combinations that can successfully
+	  intersect
+
+2016-08-03 15:20:20 +0200  Carlos Rafael Giani <dv@pseudoterminal.org>
+
+	* plugins/elements/gstqueue2.c:
+	* plugins/elements/gstqueue2.h:
+	* tests/check/elements/queue2.c:
+	  queue2: Add higher-resolution low/high-watermark properties
+	  low/high-watermark are of type double, and given in range 0.0-1.0. This
+	  makes it possible to set low/high watermarks with greater resolution,
+	  which is useful with large queue2 max sizes and watermarks like 0.5%.
+	  Also adding a test to check the fill and watermark level behavior.
+	  https://bugzilla.gnome.org/show_bug.cgi?id=769449
+
+2016-08-03 15:27:40 +0200  Carlos Rafael Giani <dv@pseudoterminal.org>
+
+	* plugins/elements/gstqueue2.c:
+	  queue2: Distinguish between buffering percentage and buffering level
+	  To make the code clearer, and to facilitate future improvements, introduce
+	  a distinction between the buffering level and the buffering percentage.
+	  Buffering level: the queue's current fill level. The low/high watermarks
+	  are in this range.
+	  Buffering percentage: percentage relative to the low/high watermarks
+	  (0% = low watermark, 100% = high watermark).
+	  To that end, get_buffering_percent() is renamed to get_buffering_level(),
+	  and the code at the end that transforms to the buffering percentage is
+	  factored out into a new convert_to_buffering_percent() function. Also,
+	  the buffering level range is parameterized by adding a new constant called
+	  MAX_BUFFERING_LEVEL.
+	  https://bugzilla.gnome.org/show_bug.cgi?id=769449
+
+2016-08-23 10:52:32 +0100  Tim-Philipp Müller <tim@centricular.com>
+
+	* docs/random/release:
+	  docs: release: add tag signing command
+
+2016-07-07 08:01:24 +0200  Arjen Veenhuizen <arjen.veenhuizen@tno.nl>
+
+	* docs/gst/gstreamer-sections.txt:
+	* gst/gstbuffer.c:
+	* gst/gstbuffer.h:
+	* win32/common/libgstreamer.def:
+	  buffer: add explicit getters and setters for buffer flags
+	  These can be used from bindings.
+	  https://bugzilla.gnome.org/show_bug.cgi?id=768301
+
+2016-08-22 00:01:46 +0100  Tim-Philipp Müller <tim@centricular.com>
+
+	* libs/gst/check/meson.build:
+	  meson: install libgstcheck-1.0 and add api version to name
+
+2016-08-20 08:54:27 +0900  Hoonhee Lee <hoonhee.lee@lge.com>
+
+	* gst/gststreams.c:
+	  streams: update and emit notify signal only if taglist actually changed
+	  https://bugzilla.gnome.org/show_bug.cgi?id=770161
+
+2016-08-12 20:25:17 +0530  Nirbheek Chauhan <nirbheek@centricular.com>
+
+	* .gitignore:
+	* config.h.meson:
+	* docs/gst/meson.build:
+	* docs/libs/meson.build:
+	* docs/meson.build:
+	* gst/build_mkenum.py:
+	* gst/meson.build:
+	* gst/parse/gen_grammar.py.in:
+	* gst/parse/gen_lex.py.in:
+	* gst/parse/meson.build:
+	* gst/printf/meson.build:
+	* libs/gst/base/meson.build:
+	* libs/gst/check/libcheck/meson.build:
+	* libs/gst/check/meson.build:
+	* libs/gst/controller/meson.build:
+	* libs/gst/helpers/meson.build:
+	* libs/gst/meson.build:
+	* libs/gst/net/meson.build:
+	* libs/meson.build:
+	* meson.build:
+	* meson_options.txt:
+	* pkgconfig/meson.build:
+	* plugins/elements/meson.build:
+	* plugins/meson.build:
+	* po/meson.build:
+	* tests/benchmarks/meson.build:
+	* tests/check/meson.build:
+	* tests/examples/adapter/meson.build:
+	* tests/examples/controller/meson.build:
+	* tests/examples/helloworld/meson.build:
+	* tests/examples/memory/meson.build:
+	* tests/examples/meson.build:
+	* tests/examples/netclock/meson.build:
+	* tests/examples/ptp/meson.build:
+	* tests/examples/stepping/meson.build:
+	* tests/examples/streamiddemux/meson.build:
+	* tests/examples/streams/meson.build:
+	* tests/meson.build:
+	* tests/misc/meson.build:
+	* tools/meson.build:
+	  Add support for Meson as alternative/parallel build system
+	  https://github.com/mesonbuild/meson
+	  With contributions from:
+	  Tim-Philipp Müller <tim@centricular.com>
+	  Mathieu Duponchelle <mathieu.duponchelle@opencreed.com>
+	  Jussi Pakkanen <jpakkane@gmail.com> (original port)
+	  Highlights of the features provided are:
+	  * Faster builds on Linux (~40-50% faster)
+	  * The ability to build with MSVC on Windows
+	  * Generate Visual Studio project files
+	  * Generate XCode project files
+	  * Much faster builds on Windows (on-par with Linux)
+	  * Seriously fast configure and building on embedded
+	  ... and many more. For more details see:
+	  http://blog.nirbheek.in/2016/05/gstreamer-and-meson-new-hope.html
+	  http://blog.nirbheek.in/2016/07/building-and-developing-gstreamer-using.html
+	  Building with Meson should work on both Linux and Windows, but may
+	  need a few more tweaks on other operating systems.
+
+2016-08-13 13:55:15 +0100  Tim-Philipp Müller <tim@centricular.com>
+
+	* gst/Makefile.am:
+	* pkgconfig/gstreamer.pc.in:
+	  Move gstconfig.h back to normal include dir
+	  Now that it's arch-independent again. Will need fixes in cerbero too.
+
+2016-06-21 18:59:49 +0530  Nirbheek Chauhan <nirbheek@centricular.com>
+
+	* configure.ac:
+	* gst/gstconfig.h.in:
+	  gstconfig.h: Detect unaligned access support at compile-time
+	  This makes gstconfig.h completely arch-independent. Should cover all
+	  compilers that gstreamer is known to build on, and all architectures
+	  that I could find information on. People are encouraged to file bugs if
+	  their platform/arch is missing.
+
+2016-08-13 09:55:46 +0100  Tim-Philipp Müller <tim@centricular.com>
+
+	* Makefile.am:
+	* configure.ac:
+	* docs/gst/gstreamer-sections.txt:
+	* gst/Makefile.am:
+	* gst/gst.c:
+	* gst/gstclock.c:
+	* gst/gstconfig.h.in:
+	* gst/gstminiobject.c:
+	* gst/gstobject.c:
+	* gst/gsttrace.c:
+	* gst/gsttrace.h:
+	* po/POTFILES.in:
+	* tests/check/Makefile.am:
+	* win32/common/gstconfig.h:
+	* win32/common/libgstreamer.def:
+	  Remove old alloc tracing code now that we have a GstTracer-based replacement
+	  It's been internal API only in 1.x.
+
+2016-08-12 16:15:25 +0200  Edward Hervey <edward@centricular.com>
+
+	* plugins/elements/gstqueue2.c:
+	  queue2: Post buffering messages earlier in ringbuffer mode
+	  In ringbuffer mode we need to make sure we post buffering messages *before*
+	  blocking to wait for data to be drained.
+	  Without this, we would end up in situations like this:
+	  * pipeline is pre-rolling
+	  * Downstream demuxer/decoder has pushed data to all sinks, and demuxer thread
+	  is blocking downstream (i.e. not pulling from upstream/queue2).
+	  * Therefore pipeline has pre-rolled ...
+	  * ... but queue2 hasn't filled up yet, therefore the application waits for
+	  the buffering 100% messages before setting the pipeline to PLAYING
+	  * But queue2 can't post that message, since the 100% message will be posted
+	  *after* there is room available for that last buffer.
+	  https://bugzilla.gnome.org/show_bug.cgi?id=769802
+
+2016-08-08 16:42:06 +0200  Josep Torra <n770galaxy@gmail.com>
+
+	* plugins/elements/gstmultiqueue.c:
+	  multiqueue: removed redundant call to g_thread_self
+	  Remove an unneeded call to g_thread_self and minor coding style fix.
+
+2016-03-16 18:00:15 +1100  Jan Schmidt <jan@centricular.com>
+
+	* plugins/elements/gstinputselector.c:
+	  inputselector: Handle stream-group-done
+	  Handle the new stream-group-done message to unblock pads which
+	  are waiting for the running time to advance on that group.
+	  https://bugzilla.gnome.org/show_bug.cgi?id=768995
+
+2016-03-14 14:20:42 +1100  Jan Schmidt <jan@centricular.com>
+
+	* docs/gst/gstreamer-sections.txt:
+	* gst/gstevent.c:
+	* gst/gstevent.h:
+	* gst/gstpad.c:
+	* gst/gstquark.c:
+	* gst/gstquark.h:
+	* tests/check/gst/gstevent.c:
+	* win32/common/libgstreamer.def:
+	  events: Implement the stream-group-done event
+	  A new event which precedes EOS in situations where we
+	  need downstream to unblock any pads waiting on a stream
+	  before we can send EOS. E.g, decodebin draining a chain
+	  so it can switch pads.
+	  https://bugzilla.gnome.org/show_bug.cgi?id=768995
+
+2016-07-25 11:22:36 +0200  Carlos Rafael Giani <dv@pseudoterminal.org>
+
+	* docs/gst/gstreamer-sections.txt:
+	* gst/gstmessage.c:
+	* gst/gstmessage.h:
+	* gst/gstquark.c:
+	* gst/gstquark.h:
+	* tests/check/gst/gstmessage.c:
+	* win32/common/libgstreamer.def:
+	  message: Add redirect message
+	  Redirection messages are already used in fragmented sources and in
+	  uridecodebin, so it makes sense to introduce these as an official message
+	  type.
+	  https://bugzilla.gnome.org/show_bug.cgi?id=631673
+
+2016-07-25 19:15:15 +1000  Jan Schmidt <jan@centricular.com>
+
+	* plugins/elements/gstinputselector.c:
+	  inputselector: Wake other pads when selected goes EOS
+	  Other pads that are waiting for the stream on the selected
+	  pad to advance before they finish waiting themselves
+	  should be given the chance to do so when the selected pad
+	  goes EOS. Fixes problems where input streams can end up
+	  waiting forever if the active stream goes EOS earlier than
+	  their own end time.
+
+2016-07-24 01:35:41 +0100  Tim-Philipp Müller <tim@centricular.com>
+
+	* gst/gstelement.h:
+	  element: fix GST_ELEMENT_ERROR() error code expansion
+	  In some corner cases, the error 'code' part passed to
+	  GST_ELEMENT_ERROR() is a valid define as well, in which
+	  case it won't survive two levels of macro expansion, but
+	  only one. Fixes:
+	  oss4-sink.c: In function ‘gst_oss4_sink_open’:
+	  error: ‘GST_RESOURCE_ERROR_0x00000002’ undeclared (first use in this function)
+	  GST_ ## domain ## _ERROR_ ## code, __txt, __dbg, __FILE__,
+	  which is from GST_ELEMENT_ERROR(el,RESOURCE,OPEN_WRITE,..)
+	  and OPEN_WRITE happens to be defined to 2 here.
+	  https://bugzilla.gnome.org/show_bug.cgi?id=756806
+	  https://bugzilla.gnome.org/show_bug.cgi?id=769117
+
+2016-07-22 17:32:33 +0100  Tim-Philipp Müller <tim@centricular.com>
+
+	* gst/gstmessage.c:
+	  message: fix some nonsensical annotations
+
+2016-07-22 15:25:09 +0100  Vincent Penquerc'h <vincent.penquerch@collabora.co.uk>
+
+	* docs/gst/gstreamer-sections.txt:
+	  docs: add GST_ELEMENT_*_WITH_DETAILS to doc list
+
+2016-07-22 15:04:58 +0100  Vincent Penquerc'h <vincent.penquerch@collabora.co.uk>
+
+	* docs/gst/gstreamer-sections.txt:
+	  docs: list new message details apis where they seem to belong
+
+2016-07-22 14:59:56 +0100  Vincent Penquerc'h <vincent.penquerch@collabora.co.uk>
+
+	* win32/common/libgstreamer.def:
+	  libgstreamer.def: fix mentions of new message details api
+	  I had not updated it after the review changes
+
+2016-03-02 11:22:23 +0000  Vincent Penquerc'h <vincent.penquerch@collabora.co.uk>
+
+	* gst/gstelement.c:
+	* gst/gstelement.h:
+	* gst/gstmessage.c:
+	* gst/gstmessage.h:
+	* tests/check/gst/gstmessage.c:
+	* win32/common/libgstreamer.def:
+	  message: new API for additional custom data to error messages
+	  https://bugzilla.gnome.org/show_bug.cgi?id=756806
+
+2016-07-20 12:22:10 +0200  Guillaume Desmottes <guillaume.desmottes@collabora.co.uk>
+
+	* plugins/tracers/gstleaks.c:
+	* plugins/tracers/gstleaks.h:
+	  tracers: leaks: update type filter later for unknown types
+	  This allow us to filter using an object type which is implemented
+	  by a plugin like, say, GstGtkGLSink.
+	  https://bugzilla.gnome.org/show_bug.cgi?id=768989
+
+2016-07-19 14:45:53 +0200  Aurélien Zanelli <aurelien.zanelli@parrot.com>
+
+	* libs/gst/base/gstcollectpads.c:
+	  collectpads: add g-i transfer annotations to peek/pop/read_buffer/take_buffer functions
+	  https://bugzilla.gnome.org/show_bug.cgi?id=768948
+
+2016-07-19 23:18:24 +1000  Jan Schmidt <jan@centricular.com>
+
+	* tests/check/libs/gstnetclientclock.c:
+	  tests: Use gst_clock_wait_for_sync () for net client clock
+	  Instead of looping, use the gst_clock_wait_for_sync() function
+	  to give clocks up to 1 second to synchronise
+
+2016-07-13 15:43:21 +0200  Guillaume Desmottes <guillaume.desmottes@collabora.co.uk>
+
+	* gst/gstmessage.c:
+	  message: fix annotation of parse_stream_{collection,streams_selected}
+	  gst_structure_id_get() returns a new reference so the returned object is
+	  actually (transfer full).
+	  The unit tests was already unreffing the objects.
+	  https://bugzilla.gnome.org/show_bug.cgi?id=768776
+
+2016-07-13 15:43:21 +0200  Guillaume Desmottes <guillaume.desmottes@collabora.co.uk>
+
+	* gst/gstdevicemonitor.c:
+	* gst/gstmessage.c:
+	  message: fix annotation of parse_device_{added,removed}
+	  gst_structure_id_get() returns a new reference so the returned device is
+	  actually (transfer full).
+	  The code using this API was already correct but the code example in
+	  comments was not.
+	  https://bugzilla.gnome.org/show_bug.cgi?id=768776
+
+2016-07-14 16:40:22 +0200  Guillaume Desmottes <guillaume.desmottes@collabora.co.uk>
+
+	* gst/gstpad.c:
+	  pad: add g-i transfer annotatation to _store_sticky_event()
+	  For clarity.
+	  https://bugzilla.gnome.org/show_bug.cgi?id=768810
+
+2016-07-12 12:32:56 +0300  Sebastian Dröge <sebastian@centricular.com>
+
+	* libs/gst/base/gstbasesrc.c:
+	  basesrc: Fix automatic-eos=false mode if a segment.stop is given
+	  If segment.stop was given, and the subclass provides a size that might be
+	  smaller than segment.stop and also smaller than the actual size, we would
+	  already stop there.
+	  Instead try reading up to segment.stop, the goal is to ignore the (possibly
+	  inaccurate) size the subclass gives and finish until segment.stop or when the
+	  subclass tells us to stop.
+
+2016-07-11 21:13:28 +0200  Stefan Sauer <ensonic@users.sf.net>
+
+	* common:
+	  Automatic update of common submodule
+	  From f363b32 to f49c55e
+
+2016-07-11 18:45:49 +0530  Nirbheek Chauhan <nirbheek@centricular.com>
+
+	* tests/benchmarks/capsnego.c:
+	  benchmarks: Fix potential stack corruption in capsnego test
+	  flavour_str is a non-const pointer that will be written to if the -f
+	  option is passed
+
+2016-07-11 11:34:02 +0200  Guillaume Desmottes <guillaume.desmottes@collabora.co.uk>
+
+	* plugins/tracers/gstleaks.c:
+	  leaks: check return values of libunwind calls
+
+2016-07-11 09:58:47 +0200  Edward Hervey <edward@centricular.com>
+
+	* plugins/elements/gstqueue2.c:
+	  queue2: Fix average input rate calculation on small input range
+	  When dealing with small-ish input data coming into queue2, such as
+	  adaptivedemux fragments, we would never take into account the last
+	  <200ms of data coming in.
+	  The problem is that usually on TCP connection the download rate
+	  gradually increases (i.e. the rate is lower at the beginning of a
+	  download than it is later on). Combined with small download time (less
+	  than a second) we would end up with a computed average input rate
+	  which was sometimes up to 30-50% off from the *actual* average input
+	  rate for that fragment.
+	  In order to fix this, force the average input rate calculation when
+	  we receive an EOS so that we take into account that final window
+	  of data.
+	  https://bugzilla.gnome.org/show_bug.cgi?id=768649
+
+2016-07-08 16:31:56 +0200  Guillaume Desmottes <guillaume.desmottes@collabora.co.uk>
+
+	* gst/gstminiobject.c:
+	  miniobject: weak_unref: display the pointer of the object if failing
+	  That's generally the most useful information to help debugging the
+	  problem.
+	  https://bugzilla.gnome.org/show_bug.cgi?id=768579
+
+2016-07-08 16:29:38 +0200  Guillaume Desmottes <guillaume.desmottes@collabora.co.uk>
+
+	* gst/gstbin.c:
+	  bin: properly display the type of the removed message
+	  Makes debugging easier.
+	  https://bugzilla.gnome.org/show_bug.cgi?id=768579
+
+2016-07-08 17:46:06 +0100  Tim-Philipp Müller <tim@centricular.com>
+
+	* gst/gstelement.c:
+	  element: re-create threadpool after cleaning up tasks
+	  We don't free this from gst_deinit() but from gst_task_cleanup_all(),
+	  so more GStreamer API may be called. In particular makes unit tests
+	  work again with CK_FORK=no.
+	  https://bugzilla.gnome.org/show_bug.cgi?id=768577
+
+2016-07-08 16:53:51 +0200  Guillaume Desmottes <guillaume.desmottes@collabora.co.uk>
+
+	* plugins/tracers/gstleaks.c:
+	* plugins/tracers/gstleaks.h:
+	  leaks: warn if object is destroyed while the tracer is disposing
+	  This should not happen and generally means some thread is still running.
+	  https://bugzilla.gnome.org/show_bug.cgi?id=768578
+
+2016-07-08 16:36:01 +0200  Guillaume Desmottes <guillaume.desmottes@collabora.co.uk>
+
+	* gst/gst_private.h:
+	* gst/gstelement.c:
+	* gst/gsttask.c:
+	  element: clean up thread pool from gst_task_cleanup_all()
+	  This ensures that all async operations (started from gst_element_call_async())
+	  have been completed and so there is no extra thread running.
+	  Fix races when checking for leaks on unit tests as some of those
+	  operations were still running when the leaks tracer was checking for
+	  leaked objects.
+	  https://bugzilla.gnome.org/show_bug.cgi?id=768577
+
+2016-07-08 11:15:06 +0200  Guillaume Desmottes <guillaume.desmottes@collabora.co.uk>
+
+	* configure.ac:
+	* plugins/tracers/gstleaks.c:
+	  leaks tracer: use G_OS_UNIX to check for signal support
+	  Checking for signal.h is not good enough as it's present in Windows.
+	  Those signals are UNIX specific anyway.
+	  https://bugzilla.gnome.org/show_bug.cgi?id=767857
+
+2016-06-22 16:25:16 +0200  Guillaume Desmottes <guillaume.desmottes@collabora.co.uk>
+
+	* configure.ac:
+	* docs/design/part-tracing.txt:
+	* plugins/tracers/Makefile.am:
+	* plugins/tracers/gstleaks.c:
+	* plugins/tracers/gstleaks.h:
+	  leaks tracer: add creation stack trace support
+	  This allow us to provide the trace of leaked objects making it easier
+	  to debug.
+	  https://bugzilla.gnome.org/show_bug.cgi?id=767862
+
+2016-06-01 11:08:39 +0200  Guillaume Desmottes <guillaume.desmottes@collabora.co.uk>
+
+	* docs/design/part-tracing.txt:
+	* plugins/tracers/gstleaks.c:
+	* plugins/tracers/gstleaks.h:
+	  leaks tracer: add checkpoint support using SIGUSR2
+	  https://bugzilla.gnome.org/show_bug.cgi?id=767857
+
+2016-05-31 16:56:26 +0200  Guillaume Desmottes <guillaume.desmottes@collabora.co.uk>
+
+	* configure.ac:
+	* docs/design/part-tracing.txt:
+	* plugins/tracers/gstleaks.c:
+	  leaks tracer: log alive objects when receiving SIGUSR1
+	  We don't want to automatically catch signals so use an env variable to
+	  enable this feature.
+	  https://bugzilla.gnome.org/show_bug.cgi?id=767857
+
+2016-07-07 13:15:51 +0300  Sebastian Dröge <sebastian@centricular.com>
+
+	* plugins/elements/gstfunnel.c:
+	  funnel: Only forward sticky events on GAP events if needed
+	  That is, if the active pad changed and if forwarding of sticky events is
+	  requested at all. We otherwise forward events too often.
+
+2016-07-05 16:50:16 +0200  Miguel París Díaz <mparisdiaz@gmail.com>
+
+	* gst/gstpad.c:
+	  pad: check query caps answered and caps not NULL
+	  https://bugzilla.gnome.org/show_bug.cgi?id=768450
+
+2016-07-06 13:50:56 +0300  Sebastian Dröge <sebastian@centricular.com>
+
+	* configure.ac:
+	  Back to development
+
+=== release 1.9.1 ===
+
+2016-07-06 13:05:02 +0300  Sebastian Dröge <sebastian@centricular.com>
+
+	* ChangeLog:
+	* NEWS:
+	* RELEASE:
+	* configure.ac:
+	* docs/plugins/gstreamer-plugins.hierarchy:
+	* docs/plugins/inspect/plugin-coreelements.xml:
+	* gstreamer.doap:
+	* win32/common/config.h:
+	* win32/common/gstenumtypes.c:
+	* win32/common/gstenumtypes.h:
+	* win32/common/gstversion.h:
+	  Release 1.9.1
+
+2016-07-06 11:37:56 +0300  Sebastian Dröge <sebastian@centricular.com>
+
+	* po/af.po:
+	* po/az.po:
+	* po/be.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/nb.po:
+	* po/nl.po:
+	* po/pl.po:
+	* po/pt_BR.po:
+	* po/ro.po:
+	* po/ru.po:
+	* po/rw.po:
+	* po/sk.po:
+	* po/sl.po:
+	* po/sq.po:
+	* po/sr.po:
+	* po/sv.po:
+	* po/tr.po:
+	* po/uk.po:
+	* po/vi.po:
+	* po/zh_CN.po:
+	* po/zh_TW.po:
+	  Update .po files
 
 2016-07-06 10:17:37 +0300  Sebastian Dröge <sebastian@centricular.com>
 
@@ -3236,7 +3968,6 @@
 
 2016-01-06 11:52:53 +0100  Stefan Sauer <ensonic@users.sf.net>
 
-	* docs/design/draft-tracing.txt:
 	* docs/design/part-tracing.txt:
 	  docs: rename the tracer doc to part since it is now merged
 
@@ -12913,7 +13644,6 @@
 	* gst/gst.h:
 	* gst/gstdevicemonitor.c:
 	* gst/gstdevicemonitor.h:
-	* gst/gstglobaldevicemonitor.c:
 	* gst/gstglobaldevicemonitor.h:
 	* win32/common/libgstreamer.def:
 	  GstDeviceMonitor: Rename from GstGlobalDeviceMonitor
@@ -12928,8 +13658,6 @@
 	* gst/gst_private.h:
 	* gst/gstdevice.c:
 	* gst/gstdevicemonitor.c:
-	* gst/gstdevicemonitor.h:
-	* gst/gstdevicemonitorfactory.c:
 	* gst/gstdevicemonitorfactory.h:
 	* gst/gstdeviceprovider.c:
 	* gst/gstdeviceprovider.h:
@@ -14031,8 +14759,6 @@
 
 	* docs/libs/gstreamer-libs-sections.txt:
 	* libs/gst/base/Makefile.am:
-	* libs/gst/base/gstsparsefile.c:
-	* libs/gst/base/gstsparsefile.h:
 	* plugins/elements/Makefile.am:
 	* plugins/elements/gstdownloadbuffer.h:
 	* plugins/elements/gstsparsefile.c:
@@ -17947,7 +18673,6 @@
 
 	* scripts/gst-plot-timeline.py:
 	* tools/Makefile.am:
-	* tools/gst-plot-timeline.py:
 	  tools: move gst-plot-timeline.py into scripts directory
 	  So it's not in PATH in an uninstalled setup (thwarting
 	  gst-play autocompletion).
@@ -22054,13 +22779,11 @@
 
 	* libs/gst/base/Makefile.am:
 	* libs/gst/base/base.h:
-	* libs/gst/base/gstbase.h:
 	* libs/gst/check/Makefile.am:
 	* libs/gst/check/check.h:
 	* libs/gst/check/gstcheck.h:
 	* libs/gst/controller/Makefile.am:
 	* libs/gst/controller/controller.h:
-	* libs/gst/controller/gstcontroller.h:
 	* libs/gst/net/Makefile.am:
 	* libs/gst/net/net.h:
 	  libs: Use foo/foo.h as single-include header consistently everywhere
@@ -22993,13 +23716,10 @@
 	* libs/gst/base/gstqueuearray.c:
 	* libs/gst/base/gstqueuearray.h:
 	* plugins/elements/Makefile.am:
-	* plugins/elements/gstdataqueue.c:
-	* plugins/elements/gstdataqueue.h:
 	* plugins/elements/gstmultiqueue.c:
 	* plugins/elements/gstmultiqueue.h:
 	* plugins/elements/gstqueue.c:
 	* plugins/elements/gstqueue.h:
-	* plugins/elements/gstqueuearray.c:
 	* plugins/elements/gstqueuearray.h:
 	* win32/common/libgstbase.def:
 	  dataqueue/queuearray: Make public API again
@@ -23265,7 +23985,6 @@
 2012-10-10 13:08:31 +0200  Wim Taymans <wim.taymans@collabora.co.uk>
 
 	* docs/manual/advanced-autoplugging.xml:
-	* docs/manual/highlevel-components.xml:
 	* docs/manual/highlevel-playback.xml:
 	* docs/manual/manual.xml:
 	* tests/examples/manual/Makefile.am:
@@ -25881,8 +26600,6 @@
 2012-07-14 19:24:57 +0100  Tim-Philipp Müller <tim@centricular.net>
 
 	* libs/gst/base/Makefile.am:
-	* libs/gst/base/gstqueuearray.c:
-	* libs/gst/base/gstqueuearray.h:
 	* plugins/elements/Makefile.am:
 	* plugins/elements/gstdataqueue.h:
 	* plugins/elements/gstqueue.h:
@@ -29144,12 +29861,10 @@
 	* libs/gst/base/Makefile.am:
 	* libs/gst/base/gstcollectpads.c:
 	* libs/gst/base/gstcollectpads.h:
-	* libs/gst/base/gstcollectpads2.c:
 	* libs/gst/base/gstcollectpads2.h:
 	* tests/check/Makefile.am:
 	* tests/check/libs/.gitignore:
 	* tests/check/libs/collectpads.c:
-	* tests/check/libs/collectpads2.c:
 	* tests/check/libs/gstlibscpp.cc:
 	* tests/check/libs/libsabi.c:
 	* win32/common/libgstbase.def:
@@ -32766,10 +33481,6 @@
 	* libs/gst/controller/Makefile.am:
 	* libs/gst/controller/gstargbcontrolbinding.c:
 	* libs/gst/controller/gstargbcontrolbinding.h:
-	* libs/gst/controller/gstcontrolbindingargb.c:
-	* libs/gst/controller/gstcontrolbindingargb.h:
-	* libs/gst/controller/gstcontrolbindingdirect.c:
-	* libs/gst/controller/gstcontrolbindingdirect.h:
 	* libs/gst/controller/gstdirectcontrolbinding.c:
 	* libs/gst/controller/gstdirectcontrolbinding.h:
 	* tests/benchmarks/controller.c:
@@ -33262,7 +33973,6 @@
 2012-01-26 11:38:29 +0100  Sebastian Dröge <sebastian.droege@collabora.co.uk>
 
 	* tests/check/Makefile.am:
-	* tests/check/libs/collectpads.c:
 	* tests/check/libs/collectpads2.c:
 	* tests/check/libs/gstlibscpp.cc:
 	* tests/check/libs/libsabi.c:
@@ -34467,8 +35177,6 @@
 	* gst/gstbin.c:
 	* gst/gstelement.c:
 	* gst/gstelement.h:
-	* gst/gstindex.c:
-	* gst/gstindex.h:
 	* gst/gstindexfactory.c:
 	* gst/gstindexfactory.h:
 	* gst/gstregistrybinary.c:
@@ -34484,7 +35192,6 @@
 	* plugins/indexers/gstfileindex.c:
 	* plugins/indexers/gstindexers.c:
 	* plugins/indexers/gstindexers.h:
-	* plugins/indexers/gstmemindex.c:
 	* tools/gst-inspect.c:
 	* tools/gst-launch.c:
 	  index: remove GstIndex and GstIndexFactory for now
@@ -37271,11 +37978,7 @@
 	* gst/gstobject.c:
 	* gst/gstobject.h:
 	* libs/gst/controller/Makefile.am:
-	* libs/gst/controller/gstcontroller.c:
-	* libs/gst/controller/gstcontroller.h:
 	* libs/gst/controller/gstcontrollerprivate.h:
-	* libs/gst/controller/gstcontrolsource.c:
-	* libs/gst/controller/gstcontrolsource.h:
 	* libs/gst/controller/gsthelper.c:
 	* libs/gst/controller/gstinterpolationcontrolsource.c:
 	* libs/gst/controller/gstinterpolationcontrolsource.h:
@@ -38677,8 +39380,6 @@
 	* docs/libs/gstreamer-libs-docs.sgml:
 	* docs/libs/gstreamer-libs-sections.txt:
 	* libs/gst/base/Makefile.am:
-	* libs/gst/base/gstdataqueue.c:
-	* libs/gst/base/gstdataqueue.h:
 	* plugins/elements/Makefile.am:
 	* plugins/elements/gstdataqueue.c:
 	* plugins/elements/gstdataqueue.h:
@@ -41956,7 +42657,6 @@
 2011-06-03 12:43:32 +0200  Wim Taymans <wim.taymans@collabora.co.uk>
 
 	* docs/design/draft-allocation.txt:
-	* docs/design/draft-bufferpool.txt:
 	* docs/design/part-bufferpool.txt:
 	  docs: update bufferpool design doc
 	  Move the bufferpool design doc from draft to part and merge it with
@@ -45836,8 +46536,6 @@
 
 2010-10-13 15:39:55 -0700  David Schleef <ds@schleef.org>
 
-	* gst/audioparsers/gstbaseparse.c:
-	* gst/audioparsers/gstbaseparse.h:
 	* libs/gst/base/gstbaseparse.c:
 	* libs/gst/base/gstbaseparse.h:
 	  baseparse: Create baseparse library
@@ -46391,8 +47089,6 @@
 
 2009-11-28 18:13:31 +0100  Mark Nauwelaerts <mark.nauwelaerts@collabora.co.uk>
 
-	* gst/aacparse/gstbaseparse.c:
-	* gst/aacparse/gstbaseparse.h:
 	* gst/audioparsers/gstbaseparse.c:
 	* gst/audioparsers/gstbaseparse.h:
 	  audioparsers: rename 'aacparse' plugin to generic 'audioparsers' plugin
@@ -47750,7 +48446,6 @@
 
 2011-03-08 18:05:42 +0000  Wim Taymans <wim.taymans@collabora.co.uk>
 
-	* docs/design/draft-buffer2.txt:
 	* docs/design/part-meta.txt:
 	  docs: rename draft to official doc
 
@@ -48132,11 +48827,9 @@
 	* gst/gstbuffer.c:
 	* gst/gstbuffer.h:
 	* gst/gstbuffermeta.c:
-	* gst/gstbuffermeta.h:
 	* gst/gstmeta.c:
 	* gst/gstmeta.h:
 	* tests/check/Makefile.am:
-	* tests/check/gst/gstbuffermeta.c:
 	* tests/check/gst/gstmeta.c:
 	  metadata: Rename to GstMeta
 	  Rename to the shorter GstMeta
@@ -48721,7 +49414,6 @@
 
 2011-02-15 17:20:08 +0100  Wim Taymans <wim.taymans@collabora.co.uk>
 
-	* docs/design/draft-progress.txt:
 	* docs/design/part-progress.txt:
 	  design: make progress draft official
 
@@ -56487,7 +57179,6 @@
 
 	* Makefile.am:
 	* autogen.sh:
-	* check-checks.m4:
 	* configure.ac:
 	* m4/.gitignore:
 	* m4/Makefile.am:
@@ -58675,7 +59366,6 @@
 	* docs/faq/Makefile.am:
 	* docs/faq/developing.xml:
 	* docs/faq/faq.xml:
-	* docs/faq/gst-uninstalled:
 	* scripts/gst-uninstalled:
 	  scripts: move gst-uninstalled from docs/faq to scripts
 	  Don't include the long gst-uninstalled script in verbatim in the faq anymore
@@ -59646,7 +60336,6 @@
 	* libs/gst/helpers/.gitignore:
 	* libs/gst/helpers/Makefile.am:
 	* libs/gst/helpers/gst-plugin-scanner.c:
-	* libs/gst/helpers/plugin-scanner.c:
 	* tests/check/Makefile.am:
 	* tests/examples/manual/Makefile.am:
 	  plugin-scanner: rename plugin-scanner helper binary to gst-plugin-scanner
@@ -60111,7 +60800,6 @@
 
 2009-10-29 11:18:20 +0100  Sebastian Dröge <sebastian.droege@collabora.co.uk>
 
-	* gst/playback/gstqueue2.c:
 	* plugins/elements/gstqueue2.c:
 	  queue2: Move queue2 to gstreamer coreplugins
 	  Fixes bug #599996.
@@ -63778,7 +64466,6 @@
 
 2009-07-10 18:35:21 +0100  Wim Taymans <wim.taymans@collabora.co.uk>
 
-	* docs/design/draft-framestep.txt:
 	* docs/design/part-framestep.txt:
 	  docs: more framestep docs out of draft
 
@@ -64363,7 +65050,6 @@
 
 2009-06-13 14:53:24 +0200  Thomas Vander Stichele <thomas (at) apestaart (dot) org>
 
-	* scripts/cvs-update.sh:
 	* scripts/git-update.sh:
 	* scripts/git-version.sh:
 	  Update scripts/cvs-update.sh to git-update.sh; add git-version.sh
@@ -65588,9 +66274,6 @@
 2009-05-14 12:30:23 +0200  Wim Taymans <wim.taymans@collabora.co.uk>
 
 	* docs/design/draft-ghostpads.txt:
-	* docs/design/draft-latency.txt:
-	* docs/design/draft-missing-plugins.txt:
-	* docs/design/draft-stream-status.txt:
 	* docs/design/part-latency.txt:
 	* docs/design/part-missing-plugins.txt:
 	* docs/design/part-stream-status.txt:
@@ -67814,7 +68497,6 @@
 
 2009-02-14 13:35:48 +0000  Tim-Philipp Müller <tim.muller@collabora.co.uk>
 
-	* docs/faq/cvs.xml:
 	* docs/faq/developing.xml:
 	* docs/faq/faq.xml:
 	* docs/faq/getting.xml:
@@ -104954,10 +105636,8 @@
 
 	* check/Makefile.am:
 	* check/gst/gstevent.c:
-	* check/gst/gstevents.c:
 	* tests/check/Makefile.am:
 	* tests/check/gst/gstevent.c:
-	* tests/check/gst/gstevents.c:
 	  put some make-up on the gstevent test
 	  Original commit message from CVS:
 	  put some make-up on the gstevent test
@@ -104985,7 +105665,6 @@
 	* check/Makefile.am:
 	* check/elements/.gitignore:
 	* check/elements/fakesrc.c:
-	* check/elements/gstfakesrc.c:
 	* check/elements/identity.c:
 	* check/gst-libs/controller.c:
 	* check/gst-libs/gdp.c:
@@ -105005,8 +105684,6 @@
 	* check/gst/gstsystemclock.c:
 	* check/gst/gsttag.c:
 	* check/gst/gstvalue.c:
-	* check/gstcheck.c:
-	* check/gstcheck.h:
 	* check/pipelines/cleanup.c:
 	* check/pipelines/simple_launch_lines.c:
 	* check/states/sinks.c:
@@ -105027,7 +105704,6 @@
 	* tests/check/Makefile.am:
 	* tests/check/elements/.gitignore:
 	* tests/check/elements/fakesrc.c:
-	* tests/check/elements/gstfakesrc.c:
 	* tests/check/elements/identity.c:
 	* tests/check/generic/sinks.c:
 	* tests/check/gst/gst.c:
@@ -105046,8 +105722,6 @@
 	* tests/check/gst/gstsystemclock.c:
 	* tests/check/gst/gsttag.c:
 	* tests/check/gst/gstvalue.c:
-	* tests/check/gstcheck.c:
-	* tests/check/gstcheck.h:
 	* tests/check/libs/controller.c:
 	* tests/check/libs/gdp.c:
 	* tests/check/pipelines/cleanup.c:
@@ -107078,7 +107752,6 @@
 	* check/gst.supp:
 	* check/gst/gst.c:
 	* check/gst/gstbuffer.c:
-	* check/gst/gstdata.c:
 	* check/gst/gstghostpad.c:
 	* check/gst/gstminiobject.c:
 	* configure.ac:
@@ -107089,7 +107762,6 @@
 	* tests/check/gst.supp:
 	* tests/check/gst/gst.c:
 	* tests/check/gst/gstbuffer.c:
-	* tests/check/gst/gstdata.c:
 	* tests/check/gst/gstghostpad.c:
 	* tests/check/gst/gstminiobject.c:
 	* tools/gst-launch.c:
diff --git a/Makefile.am b/Makefile.am
index 503ffb3..aeefe9d 100644
--- a/Makefile.am
+++ b/Makefile.am
@@ -153,10 +153,8 @@
 # Do not run the check-exports test in case any option which causes the API to
 # change has been used
 if !GST_DISABLE_REGISTRY
-if !GST_DISABLE_TRACE
 CHECK_EXPORTS = check-exports
 endif
-endif
 
 check: $(CHECK_EXPORTS) check-enum-gettypes
 
diff --git a/Makefile.in b/Makefile.in
index c912a68..fe58261 100644
--- a/Makefile.in
+++ b/Makefile.in
@@ -359,6 +359,7 @@
 GMSGFMT_015 = @GMSGFMT_015@
 GREP = @GREP@
 GSL_LIBS = @GSL_LIBS@
+GSTCONFIG_USE_MSVC_DECLSPEC = @GSTCONFIG_USE_MSVC_DECLSPEC@
 GST_AGE = @GST_AGE@
 GST_ALL_CFLAGS = @GST_ALL_CFLAGS@
 GST_ALL_CXXFLAGS = @GST_ALL_CXXFLAGS@
@@ -366,17 +367,14 @@
 GST_ALL_LIBS = @GST_ALL_LIBS@
 GST_API_VERSION = @GST_API_VERSION@
 GST_CURRENT = @GST_CURRENT@
-GST_DISABLE_ALLOC_TRACE_DEFINE = @GST_DISABLE_ALLOC_TRACE_DEFINE@
 GST_DISABLE_GST_DEBUG_DEFINE = @GST_DISABLE_GST_DEBUG_DEFINE@
 GST_DISABLE_GST_TRACER_HOOKS_DEFINE = @GST_DISABLE_GST_TRACER_HOOKS_DEFINE@
 GST_DISABLE_OPTION_PARSING_DEFINE = @GST_DISABLE_OPTION_PARSING_DEFINE@
 GST_DISABLE_PARSE_DEFINE = @GST_DISABLE_PARSE_DEFINE@
 GST_DISABLE_PLUGIN_DEFINE = @GST_DISABLE_PLUGIN_DEFINE@
 GST_DISABLE_REGISTRY_DEFINE = @GST_DISABLE_REGISTRY_DEFINE@
-GST_DISABLE_TRACE_DEFINE = @GST_DISABLE_TRACE_DEFINE@
 GST_HAVE_MONOTONIC_CLOCK_DEFINE = @GST_HAVE_MONOTONIC_CLOCK_DEFINE@
 GST_HAVE_POSIX_TIMERS_DEFINE = @GST_HAVE_POSIX_TIMERS_DEFINE@
-GST_HAVE_UNALIGNED_ACCESS_DEFINE = @GST_HAVE_UNALIGNED_ACCESS_DEFINE@
 GST_LEVEL_DEFAULT = @GST_LEVEL_DEFAULT@
 GST_LIBVERSION = @GST_LIBVERSION@
 GST_LIB_LDFLAGS = @GST_LIB_LDFLAGS@
@@ -501,6 +499,8 @@
 SHELL = @SHELL@
 SOCKET_LIBS = @SOCKET_LIBS@
 STRIP = @STRIP@
+UNWIND_CFLAGS = @UNWIND_CFLAGS@
+UNWIND_LIBS = @UNWIND_LIBS@
 USE_NLS = @USE_NLS@
 VALGRIND_CFLAGS = @VALGRIND_CFLAGS@
 VALGRIND_LIBS = @VALGRIND_LIBS@
@@ -620,7 +620,7 @@
 
 # Do not run the check-exports test in case any option which causes the API to
 # change has been used
-@GST_DISABLE_REGISTRY_FALSE@@GST_DISABLE_TRACE_FALSE@CHECK_EXPORTS = check-exports
+@GST_DISABLE_REGISTRY_FALSE@CHECK_EXPORTS = check-exports
 
 # cruft: plugins that have been merged or moved or renamed
 CRUFT_FILES = \
diff --git a/NEWS b/NEWS
index 4c3baab..027c018 100644
--- a/NEWS
+++ b/NEWS
@@ -1 +1 @@
-This is GStreamer 1.9.1
+This is GStreamer 1.9.2
diff --git a/RELEASE b/RELEASE
index ae09a63..3dfe52e 100644
--- a/RELEASE
+++ b/RELEASE
@@ -1,12 +1,13 @@
 
-Release notes for GStreamer 1.9.1
+Release notes for GStreamer 1.9.2
 
-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.
+The GStreamer team is pleased to announce the second release of the unstable
+1.9 release series, which marks the feature freeze for 1.10. 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.
 
 
 Binaries for Android, iOS, Mac OS X and Windows will be provided in the next days.
@@ -35,51 +36,25 @@
 
 Bugs fixed in this release
      
-      * 623469 : Unit test failures with CK_FORK=no make check
-      * 747954 : osx: fix libcheck and " make check " builds with clang
-      * 749427 : Dispose/finalize GST_REFCOUNTING log messages missing poitner of object being disposed/finalized
-      * 750397 : CRITICAL: Race condition in GstBus
-      * 751538 : info: gst_debug_log_default() function can't be removed before gst_init()
-      * 756738 : gst_registry_plugin_filter() and gst_registry_feature_filter() callbacks can't use any API using the registry
-      * 758960 : New GstStream API and decodebin3/playbin3
-      * 761211 : pad: blocking pull probe during pull_range doesn't work
-      * 763020 : gstreamer: use new gst_element_class_add_static_pad_template()
-      * 763142 : API: add async property change notification - gst_element_add_property_notify_watch()
-      * 763337 : capsfilter: remove unnecessary gst_pad_has_current_caps() calls for each buffer
-      * 763457 : gstparse: element properties are contained in a GstPipeline instead of a GstBin
-      * 763567 : libcompat.h: strsignal() should not be declared const
-      * 763762 : crash due to gst_iterator_fold which lacks error handling.
-      * 763814 : dot files: fix enum properties
-      * 764176 : expose pad_link_maybe_ghosting
-      * 764199 : tests: plugin: improve debug message
-      * 764311 : gstinfo: fix file descriptor leak when default log function is not added
-      * 764526 : Build broken with gcc 6.0
-      * 764985 : rusage tracer: crash when freeing memory
-      * 764999 : multiqueue: catch errors and flushing after locking
-      * 765052 : tracer: add (mini) object leak tracer
-      * 765212 : allocator: clean up allocators in gst_deinit()
-      * 765540 : gst_element_base_class_finalize() is never called
-      * 765606 : Add caps and capsfeatures cleanup functions
-      * 765719 : pad: fix buffer leaks in test
-      * 765720 : bin: fix leaks in unit test
-      * 765736 : multiqueue: playback with sparse stream deadlocks
-      * 765903 : fix various leaks in tests
-      * 765904 : deviceproviderfactory: fix factory leak
-      * 765957 : inspect: feature leak
-      * 765958 : uri: don't use _gst_uri_free() directly
-      * 765976 : factory leak in parse-launch test
-      * 765978 : miniobject: fix ref count leaks in tests
-      * 766008 : (mini)object: add flag marking " leaked " objects
-      * 766251 : gstdebugutils: fix warning on enum properties printing
-      * 766360 : pad: Don't drop LATENCY queries with default implementation
-      * 766647 : adapter: Add a method to query current offset
-      * 766666 : patch: make git-update.sh build with all cores available
-      * 766795 : baseparse: Make sure DISCONT flags are properly propagated
-      * 766923 : object: Notify name change when using _set_name()
-      * 767012 : object: leak in test_fake_object_name
-      * 767463 : windows static build broken (regression)
-      * 767979 : GstBufferPool: acquire_buffer has unsafe GstPoll usage
-      * 768439 : baseparse: Don't add calculated bitrates until threshold
+      * 631673 : add " redirect " message to core
+      * 756806 : message: Add extra information fields to error/warning/info messages
+      * 767857 : leaks tracer: list alive objects on demand and add 'checkpointing' support
+      * 767862 : leaks tracer: display creation stack trace of leaked objects
+      * 768301 : buffer: add explicit setters and getters for GstBufferFlags
+      * 768577 : element: clean up thread pool from gst_task_cleanup_all()
+      * 768578 : leaks: warn if object is destroyed while the tracer is disposing
+      * 768579 : improve some debug/log output
+      * 768776 : message: fix annotation of message parse API returning objects
+      * 768810 : core: add a couple of transfer annotations
+      * 768948 : collectpads: add g-i transfer annotations to peek/pop/read_buffer/take_buffer functions
+      * 768989 : leaks: update type filter later for unknown types
+      * 768995 : New API: StreamGroupDone event
+      * 769449 : queue2: Add higher-resolution low/high-watermark properties
+      * 770158 : element: Add API to more easily post messages about flowing issues
+      * 770161 : streams: notify tag update only when tags actually changed
+      * 770225 : multiqueue: High CPU usage  with multiple audio tracks in playbin3
+      * 770428 : docs: fix typo on stream selection
+      * 770628 : multiqueue: Add higher-resolution low/high-watermark properties
 
 ==== Download ====
 
@@ -116,34 +91,20 @@
         
 Contributors to this release
     
-      * Alex Ashley
-      * Anthony G. Basile
-      * Arun Raghavan
+      * Arjen Veenhuizen
+      * Aurélien Zanelli
       * Carlos Rafael Giani
-      * Danilo Cesar Lemes de Paula
       * Edward Hervey
-      * Francisco Velazquez
       * Guillaume Desmottes
-      * Havard Graff
-      * Jan Alexander Steffens (heftig)
+      * Hoonhee Lee
       * Jan Schmidt
-      * Julien Isorce
-      * Linus Svensson
-      * Luis de Bethencourt
-      * Mark Combellack
-      * Matej Knopp
-      * Matthew Gruenke
-      * Matthew Waters
-      * Nicolas Dufresne
+      * Josep Torra
+      * Miguel París Díaz
       * Nirbheek Chauhan
-      * Ray Strode
-      * Reynaldo H. Verdejo Pinochet
       * Sebastian Dröge
       * Stefan Sauer
-      * Stian Selnes
-      * Thiago Santos
+      * Thibault Saunier
       * Tim-Philipp Müller
       * Vincent Penquerc'h
-      * Vineeth TM
       * Wonchul Lee
  
\ No newline at end of file
diff --git a/common/Makefile.in b/common/Makefile.in
index b9943c2..fbe0181 100644
--- a/common/Makefile.in
+++ b/common/Makefile.in
@@ -288,6 +288,7 @@
 GMSGFMT_015 = @GMSGFMT_015@
 GREP = @GREP@
 GSL_LIBS = @GSL_LIBS@
+GSTCONFIG_USE_MSVC_DECLSPEC = @GSTCONFIG_USE_MSVC_DECLSPEC@
 GST_AGE = @GST_AGE@
 GST_ALL_CFLAGS = @GST_ALL_CFLAGS@
 GST_ALL_CXXFLAGS = @GST_ALL_CXXFLAGS@
@@ -295,17 +296,14 @@
 GST_ALL_LIBS = @GST_ALL_LIBS@
 GST_API_VERSION = @GST_API_VERSION@
 GST_CURRENT = @GST_CURRENT@
-GST_DISABLE_ALLOC_TRACE_DEFINE = @GST_DISABLE_ALLOC_TRACE_DEFINE@
 GST_DISABLE_GST_DEBUG_DEFINE = @GST_DISABLE_GST_DEBUG_DEFINE@
 GST_DISABLE_GST_TRACER_HOOKS_DEFINE = @GST_DISABLE_GST_TRACER_HOOKS_DEFINE@
 GST_DISABLE_OPTION_PARSING_DEFINE = @GST_DISABLE_OPTION_PARSING_DEFINE@
 GST_DISABLE_PARSE_DEFINE = @GST_DISABLE_PARSE_DEFINE@
 GST_DISABLE_PLUGIN_DEFINE = @GST_DISABLE_PLUGIN_DEFINE@
 GST_DISABLE_REGISTRY_DEFINE = @GST_DISABLE_REGISTRY_DEFINE@
-GST_DISABLE_TRACE_DEFINE = @GST_DISABLE_TRACE_DEFINE@
 GST_HAVE_MONOTONIC_CLOCK_DEFINE = @GST_HAVE_MONOTONIC_CLOCK_DEFINE@
 GST_HAVE_POSIX_TIMERS_DEFINE = @GST_HAVE_POSIX_TIMERS_DEFINE@
-GST_HAVE_UNALIGNED_ACCESS_DEFINE = @GST_HAVE_UNALIGNED_ACCESS_DEFINE@
 GST_LEVEL_DEFAULT = @GST_LEVEL_DEFAULT@
 GST_LIBVERSION = @GST_LIBVERSION@
 GST_LIB_LDFLAGS = @GST_LIB_LDFLAGS@
@@ -430,6 +428,8 @@
 SHELL = @SHELL@
 SOCKET_LIBS = @SOCKET_LIBS@
 STRIP = @STRIP@
+UNWIND_CFLAGS = @UNWIND_CFLAGS@
+UNWIND_LIBS = @UNWIND_LIBS@
 USE_NLS = @USE_NLS@
 VALGRIND_CFLAGS = @VALGRIND_CFLAGS@
 VALGRIND_LIBS = @VALGRIND_LIBS@
diff --git a/common/gtk-doc.mak b/common/gtk-doc.mak
index 4beebcf..3f83491 100644
--- a/common/gtk-doc.mak
+++ b/common/gtk-doc.mak
@@ -125,7 +125,7 @@
 	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)
+	gtkdoc-mkdb --module=$(DOC_MODULE) $${_source_dir}  --expand-content-files="$(expand_content_files)" --main-sgml-file=$(DOC_MAIN_SGML_FILE) --output-format=xml $(MKDB_OPTIONS)
 	@cp ../version.entities xml
 	@touch sgml-build.stamp
 
diff --git a/common/m4/Makefile.in b/common/m4/Makefile.in
index 26ebf92..781c59a 100644
--- a/common/m4/Makefile.in
+++ b/common/m4/Makefile.in
@@ -228,6 +228,7 @@
 GMSGFMT_015 = @GMSGFMT_015@
 GREP = @GREP@
 GSL_LIBS = @GSL_LIBS@
+GSTCONFIG_USE_MSVC_DECLSPEC = @GSTCONFIG_USE_MSVC_DECLSPEC@
 GST_AGE = @GST_AGE@
 GST_ALL_CFLAGS = @GST_ALL_CFLAGS@
 GST_ALL_CXXFLAGS = @GST_ALL_CXXFLAGS@
@@ -235,17 +236,14 @@
 GST_ALL_LIBS = @GST_ALL_LIBS@
 GST_API_VERSION = @GST_API_VERSION@
 GST_CURRENT = @GST_CURRENT@
-GST_DISABLE_ALLOC_TRACE_DEFINE = @GST_DISABLE_ALLOC_TRACE_DEFINE@
 GST_DISABLE_GST_DEBUG_DEFINE = @GST_DISABLE_GST_DEBUG_DEFINE@
 GST_DISABLE_GST_TRACER_HOOKS_DEFINE = @GST_DISABLE_GST_TRACER_HOOKS_DEFINE@
 GST_DISABLE_OPTION_PARSING_DEFINE = @GST_DISABLE_OPTION_PARSING_DEFINE@
 GST_DISABLE_PARSE_DEFINE = @GST_DISABLE_PARSE_DEFINE@
 GST_DISABLE_PLUGIN_DEFINE = @GST_DISABLE_PLUGIN_DEFINE@
 GST_DISABLE_REGISTRY_DEFINE = @GST_DISABLE_REGISTRY_DEFINE@
-GST_DISABLE_TRACE_DEFINE = @GST_DISABLE_TRACE_DEFINE@
 GST_HAVE_MONOTONIC_CLOCK_DEFINE = @GST_HAVE_MONOTONIC_CLOCK_DEFINE@
 GST_HAVE_POSIX_TIMERS_DEFINE = @GST_HAVE_POSIX_TIMERS_DEFINE@
-GST_HAVE_UNALIGNED_ACCESS_DEFINE = @GST_HAVE_UNALIGNED_ACCESS_DEFINE@
 GST_LEVEL_DEFAULT = @GST_LEVEL_DEFAULT@
 GST_LIBVERSION = @GST_LIBVERSION@
 GST_LIB_LDFLAGS = @GST_LIB_LDFLAGS@
@@ -370,6 +368,8 @@
 SHELL = @SHELL@
 SOCKET_LIBS = @SOCKET_LIBS@
 STRIP = @STRIP@
+UNWIND_CFLAGS = @UNWIND_CFLAGS@
+UNWIND_LIBS = @UNWIND_LIBS@
 USE_NLS = @USE_NLS@
 VALGRIND_CFLAGS = @VALGRIND_CFLAGS@
 VALGRIND_LIBS = @VALGRIND_LIBS@
diff --git a/config.h.in b/config.h.in
index b13b309..dde8e5e 100644
--- a/config.h.in
+++ b/config.h.in
@@ -79,6 +79,9 @@
 /* Define to 1 if you have the `alarm' function. */
 #undef HAVE_ALARM
 
+/* Have backtrace */
+#undef HAVE_BACKTRACE
+
 /* Define to 1 if you have the MacOS X function CFLocaleCopyCurrent in the
    CoreFoundation framework. */
 #undef HAVE_CFLOCALECOPYCURRENT
@@ -164,6 +167,9 @@
 /* Define to 1 if you have the <dlfcn.h> header file. */
 #undef HAVE_DLFCN_H
 
+/* Define to 1 if you have the <execinfo.h> header file. */
+#undef HAVE_EXECINFO_H
+
 /* Define to 1 if you have the `fgetpos' function. */
 #undef HAVE_FGETPOS
 
@@ -397,15 +403,15 @@
 /* Have __uint128_t type */
 #undef HAVE_UINT128_T
 
-/* defined if unaligned memory access works correctly */
-#undef HAVE_UNALIGNED_ACCESS
-
 /* Define to 1 if you have the <unistd.h> header file. */
 #undef HAVE_UNISTD_H
 
 /* Define to 1 if the system has the type `unsigned long long int'. */
 #undef HAVE_UNSIGNED_LONG_LONG_INT
 
+/* libunwind available */
+#undef HAVE_UNWIND
+
 /* Define if valgrind should be used */
 #undef HAVE_VALGRIND
 
diff --git a/configure b/configure
index ce1b90e..b8c0441 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 1.9.1.
+# Generated by GNU Autoconf 2.69 for GStreamer 1.9.2.
 #
 # Report bugs to <http://bugzilla.gnome.org/enter_bug.cgi?product=GStreamer>.
 #
@@ -591,8 +591,8 @@
 # Identity of this package.
 PACKAGE_NAME='GStreamer'
 PACKAGE_TARNAME='gstreamer'
-PACKAGE_VERSION='1.9.1'
-PACKAGE_STRING='GStreamer 1.9.1'
+PACKAGE_VERSION='1.9.2'
+PACKAGE_STRING='GStreamer 1.9.2'
 PACKAGE_BUGREPORT='http://bugzilla.gnome.org/enter_bug.cgi?product=GStreamer'
 PACKAGE_URL=''
 
@@ -683,6 +683,8 @@
 GST_LICENSE
 HAVE_CHECK_FALSE
 HAVE_CHECK_TRUE
+UNWIND_LIBS
+UNWIND_CFLAGS
 HAVE_GTK_FALSE
 HAVE_GTK_TRUE
 GTK_LIBS
@@ -803,7 +805,6 @@
 am__fastdepCCAS_TRUE
 CCASDEPMODE
 CCAS
-GST_HAVE_UNALIGNED_ACCESS_DEFINE
 HOST_CPU
 HAVE_CPU_CRISV32_FALSE
 HAVE_CPU_CRISV32_TRUE
@@ -861,6 +862,7 @@
 BASH_COMPLETION_DIR
 BASH_COMPLETION_LIBS
 BASH_COMPLETION_CFLAGS
+GSTCONFIG_USE_MSVC_DECLSPEC
 GST_PKG_CONFIG_PATH
 GST_PACKAGE_ORIGIN
 GST_PACKAGE_NAME
@@ -884,12 +886,6 @@
 GST_DISABLE_REGISTRY_FALSE
 GST_DISABLE_REGISTRY_TRUE
 GST_DISABLE_REGISTRY_DEFINE
-GST_DISABLE_ALLOC_TRACE_FALSE
-GST_DISABLE_ALLOC_TRACE_TRUE
-GST_DISABLE_ALLOC_TRACE_DEFINE
-GST_DISABLE_TRACE_FALSE
-GST_DISABLE_TRACE_TRUE
-GST_DISABLE_TRACE_DEFINE
 GST_DISABLE_OPTION_PARSING_FALSE
 GST_DISABLE_OPTION_PARSING_TRUE
 GST_DISABLE_OPTION_PARSING_DEFINE
@@ -1087,8 +1083,6 @@
 enable_gst_tracer_hooks
 enable_parse
 enable_option_parsing
-enable_trace
-enable_alloc_trace
 enable_registry
 enable_plugin
 enable_debug
@@ -1151,7 +1145,9 @@
 GIO_CFLAGS
 GIO_LIBS
 GTK_CFLAGS
-GTK_LIBS'
+GTK_LIBS
+UNWIND_CFLAGS
+UNWIND_LIBS'
 
 
 # Initialize some variables set by options.
@@ -1702,7 +1698,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 1.9.1 to adapt to many kinds of systems.
+\`configure' configures GStreamer 1.9.2 to adapt to many kinds of systems.
 
 Usage: $0 [OPTION]... [VAR=VALUE]...
 
@@ -1774,7 +1770,7 @@
 
 if test -n "$ac_init_help"; then
   case $ac_init_help in
-     short | recursive ) echo "Configuration of GStreamer 1.9.1:";;
+     short | recursive ) echo "Configuration of GStreamer 1.9.2:";;
    esac
   cat <<\_ACEOF
 
@@ -1807,8 +1803,6 @@
   --disable-parse         disable command-line parser
   --disable-option-parsing
                           disable option parsing when gst_init
-  --disable-trace         disable historic tracing subsystem
-  --disable-alloc-trace   disable allocation tracing
   --disable-registry      disable plugin registry
   --disable-plugin        disable plugin
   --disable-debug         disable addition of -g debugging info
@@ -1915,6 +1909,9 @@
   GIO_LIBS    linker flags for GIO, overriding pkg-config
   GTK_CFLAGS  C compiler flags for GTK, overriding pkg-config
   GTK_LIBS    linker flags for GTK, overriding pkg-config
+  UNWIND_CFLAGS
+              C compiler flags for UNWIND, overriding pkg-config
+  UNWIND_LIBS linker flags for UNWIND, overriding pkg-config
 
 Use these variables to override the choices made by `configure' or to help
 it to find libraries and programs with nonstandard names/locations.
@@ -1982,7 +1979,7 @@
 test -n "$ac_init_help" && exit $ac_status
 if $ac_init_version; then
   cat <<\_ACEOF
-GStreamer configure 1.9.1
+GStreamer configure 1.9.2
 generated by GNU Autoconf 2.69
 
 Copyright (C) 2012 Free Software Foundation, Inc.
@@ -2841,7 +2838,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 $as_me 1.9.1, which was
+It was created by GStreamer $as_me 1.9.2, which was
 generated by GNU Autoconf 2.69.  Invocation command line was
 
   $ $0 $@
@@ -3822,7 +3819,7 @@
 
 # Define the identity of the package.
  PACKAGE='gstreamer'
- VERSION='1.9.1'
+ VERSION='1.9.2'
 
 
 cat >>confdefs.h <<_ACEOF
@@ -4033,9 +4030,9 @@
 
 
 
-  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)
+  PACKAGE_VERSION_MAJOR=$(echo 1.9.2 | cut -d'.' -f1)
+  PACKAGE_VERSION_MINOR=$(echo 1.9.2 | cut -d'.' -f2)
+  PACKAGE_VERSION_MICRO=$(echo 1.9.2 | cut -d'.' -f3)
 
 
 
@@ -4046,7 +4043,7 @@
   { $as_echo "$as_me:${as_lineno-$LINENO}: checking nano version" >&5
 $as_echo_n "checking nano version... " >&6; }
 
-  NANO=$(echo 1.9.1 | cut -d'.' -f4)
+  NANO=$(echo 1.9.2 | cut -d'.' -f4)
 
   if test x"$NANO" = x || test "x$NANO" = "x0" ; then
     { $as_echo "$as_me:${as_lineno-$LINENO}: result: 0 (release)" >&5
@@ -8889,10 +8886,10 @@
 done
 
 
-  GST_CURRENT=901
+  GST_CURRENT=902
   GST_REVISION=0
-  GST_AGE=901
-  GST_LIBVERSION=901:0:901
+  GST_AGE=902
+  GST_LIBVERSION=902:0:902
 
 
 
@@ -15746,74 +15743,6 @@
 
 
 
-  # Check whether --enable-trace was given.
-if test "${enable_trace+set}" = set; then :
-  enableval=$enable_trace;
-      case "${enableval}" in
-        yes) GST_DISABLE_TRACE=no ;;
-        no) GST_DISABLE_TRACE=yes ;;
-        *) as_fn_error $? "bad value ${enableval} for --enable-trace" "$LINENO" 5 ;;
-       esac
-
-else
-  GST_DISABLE_TRACE=no
-fi
-
-  if test x$GST_DISABLE_TRACE = xyes; then
-    { $as_echo "$as_me:${as_lineno-$LINENO}: disabled subsystem historic tracing subsystem" >&5
-$as_echo "$as_me: disabled subsystem historic tracing subsystem" >&6;}
-    GST_DISABLE_TRACE_DEFINE="#define GST_DISABLE_TRACE 1"
-  else
-    GST_DISABLE_TRACE_DEFINE="/* #undef GST_DISABLE_TRACE */"
-  fi
-
-
-
- if test "x$GST_DISABLE_TRACE" = "xyes"; then
-  GST_DISABLE_TRACE_TRUE=
-  GST_DISABLE_TRACE_FALSE='#'
-else
-  GST_DISABLE_TRACE_TRUE='#'
-  GST_DISABLE_TRACE_FALSE=
-fi
-
-
-
-
-  # Check whether --enable-alloc-trace was given.
-if test "${enable_alloc_trace+set}" = set; then :
-  enableval=$enable_alloc_trace;
-      case "${enableval}" in
-        yes) GST_DISABLE_ALLOC_TRACE=no ;;
-        no) GST_DISABLE_ALLOC_TRACE=yes ;;
-        *) as_fn_error $? "bad value ${enableval} for --enable-alloc-trace" "$LINENO" 5 ;;
-       esac
-
-else
-  GST_DISABLE_ALLOC_TRACE=no
-fi
-
-  if test x$GST_DISABLE_ALLOC_TRACE = xyes; then
-    { $as_echo "$as_me:${as_lineno-$LINENO}: disabled subsystem allocation tracing" >&5
-$as_echo "$as_me: disabled subsystem allocation tracing" >&6;}
-    GST_DISABLE_ALLOC_TRACE_DEFINE="#define GST_DISABLE_ALLOC_TRACE 1"
-  else
-    GST_DISABLE_ALLOC_TRACE_DEFINE="/* #undef GST_DISABLE_ALLOC_TRACE */"
-  fi
-
-
-
- if test "x$GST_DISABLE_ALLOC_TRACE" = "xyes"; then
-  GST_DISABLE_ALLOC_TRACE_TRUE=
-  GST_DISABLE_ALLOC_TRACE_FALSE='#'
-else
-  GST_DISABLE_ALLOC_TRACE_TRUE='#'
-  GST_DISABLE_ALLOC_TRACE_FALSE=
-fi
-
-
-
-
   # Check whether --enable-registry was given.
 if test "${enable_registry+set}" = set; then :
   enableval=$enable_registry;
@@ -16444,6 +16373,11 @@
   fi
 
 
+# We only use this when building with MSVC, which is only done with the
+# alternate Meson build system files
+GSTCONFIG_USE_MSVC_DECLSPEC=0
+
+
 
 # Check whether --with-bash-completion-dir was given.
 if test "${with_bash_completion_dir+set}" = set; then :
@@ -17576,74 +17510,6 @@
 
 
 
-  { $as_echo "$as_me:${as_lineno-$LINENO}: checking if unaligned memory access works correctly" >&5
-$as_echo_n "checking if unaligned memory access works correctly... " >&6; }
-  if test x"$as_cv_unaligned_access" = x ; then
-    case $host in
-      alpha*|arc*|arm*|aarch64*|hp*|mips*|sh*|sparc*|ia64*)
-        $as_echo_n "(blacklisted) " >&6
-        as_cv_unaligned_access=no
-	;;
-      i?86*|x86_64*|amd64*|powerpc*|m68k*|cris*)
-        $as_echo_n "(whitelisted) " >&6
-        as_cv_unaligned_access=yes
-	;;
-    esac
-  else
-    $as_echo_n "(cached) " >&6
-  fi
-  if test x"$as_cv_unaligned_access" = x ; then
-    if test "$cross_compiling" = yes; then :
-  { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
-$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
-as_fn_error $? "cannot run test program while cross compiling
-See \`config.log' for more details" "$LINENO" 5; }
-else
-  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
-
-int main(int argc, char **argv)
-{
-  char array[] = "ABCDEFGH";
-  unsigned int iarray[2];
-  memcpy(iarray,array,8);
-#define GET(x) (*(unsigned int *)((char *)iarray + (x)))
-  if(GET(0) != 0x41424344 && GET(0) != 0x44434241) return 1;
-  if(GET(1) != 0x42434445 && GET(1) != 0x45444342) return 1;
-  if(GET(2) != 0x43444546 && GET(2) != 0x46454443) return 1;
-  if(GET(3) != 0x44454647 && GET(3) != 0x47464544) return 1;
-  return 0;
-}
-
-_ACEOF
-if ac_fn_c_try_run "$LINENO"; then :
-  as_cv_unaligned_access="yes"
-else
-  as_cv_unaligned_access="no"
-fi
-rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
-  conftest.$ac_objext conftest.beam conftest.$ac_ext
-fi
-
-  fi
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $as_cv_unaligned_access" >&5
-$as_echo "$as_cv_unaligned_access" >&6; }
-  if test "$as_cv_unaligned_access" = "yes"; then
-
-cat >>confdefs.h <<_ACEOF
-#define HAVE_UNALIGNED_ACCESS 1
-_ACEOF
-
-  fi
-
-if test x${as_cv_unaligned_access} = xyes ; then
-  GST_HAVE_UNALIGNED_ACCESS_DEFINE="#define GST_HAVE_UNALIGNED_ACCESS 1"
-else
-  GST_HAVE_UNALIGNED_ACCESS_DEFINE="#define GST_HAVE_UNALIGNED_ACCESS 0"
-fi
-
-
-
 
 
   case $host_os in
@@ -27348,6 +27214,107 @@
 fi
 
 
+
+pkg_failed=no
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for UNWIND" >&5
+$as_echo_n "checking for UNWIND... " >&6; }
+
+if test -n "$PKG_CONFIG"; then
+    if test -n "$UNWIND_CFLAGS"; then
+        pkg_cv_UNWIND_CFLAGS="$UNWIND_CFLAGS"
+    else
+        if test -n "$PKG_CONFIG" && \
+    { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"libunwind\""; } >&5
+  ($PKG_CONFIG --exists --print-errors "libunwind") 2>&5
+  ac_status=$?
+  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+  test $ac_status = 0; }; then
+  pkg_cv_UNWIND_CFLAGS=`$PKG_CONFIG --cflags "libunwind" 2>/dev/null`
+else
+  pkg_failed=yes
+fi
+    fi
+else
+	pkg_failed=untried
+fi
+if test -n "$PKG_CONFIG"; then
+    if test -n "$UNWIND_LIBS"; then
+        pkg_cv_UNWIND_LIBS="$UNWIND_LIBS"
+    else
+        if test -n "$PKG_CONFIG" && \
+    { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"libunwind\""; } >&5
+  ($PKG_CONFIG --exists --print-errors "libunwind") 2>&5
+  ac_status=$?
+  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+  test $ac_status = 0; }; then
+  pkg_cv_UNWIND_LIBS=`$PKG_CONFIG --libs "libunwind" 2>/dev/null`
+else
+  pkg_failed=yes
+fi
+    fi
+else
+	pkg_failed=untried
+fi
+
+
+
+if test $pkg_failed = yes; then
+
+if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then
+        _pkg_short_errors_supported=yes
+else
+        _pkg_short_errors_supported=no
+fi
+        if test $_pkg_short_errors_supported = yes; then
+	        UNWIND_PKG_ERRORS=`$PKG_CONFIG --short-errors --errors-to-stdout --print-errors "libunwind"`
+        else
+	        UNWIND_PKG_ERRORS=`$PKG_CONFIG --errors-to-stdout --print-errors "libunwind"`
+        fi
+	# Put the nasty error message in config.log where it belongs
+	echo "$UNWIND_PKG_ERRORS" >&5
+
+	{ $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+                HAVE_UNWIND=no
+elif test $pkg_failed = untried; then
+	HAVE_UNWIND=no
+else
+	UNWIND_CFLAGS=$pkg_cv_UNWIND_CFLAGS
+	UNWIND_LIBS=$pkg_cv_UNWIND_LIBS
+        { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+$as_echo "yes" >&6; }
+	HAVE_UNWIND=yes
+fi
+
+ac_fn_c_check_func "$LINENO" "backtrace" "ac_cv_func_backtrace"
+if test "x$ac_cv_func_backtrace" = xyes; then :
+
+  for ac_header in execinfo.h
+do :
+  ac_fn_c_check_header_mongrel "$LINENO" "execinfo.h" "ac_cv_header_execinfo_h" "$ac_includes_default"
+if test "x$ac_cv_header_execinfo_h" = xyes; then :
+  cat >>confdefs.h <<_ACEOF
+#define HAVE_EXECINFO_H 1
+_ACEOF
+
+
+$as_echo "#define HAVE_BACKTRACE 1" >>confdefs.h
+
+
+fi
+
+done
+
+
+fi
+
+
+if test "x$HAVE_UNWIND" = "xyes"; then
+
+$as_echo "#define HAVE_UNWIND 1" >>confdefs.h
+
+fi
+
 # Check whether --enable-check was given.
 if test "${enable_check+set}" = set; then :
   enableval=$enable_check;
@@ -29061,14 +29028,6 @@
   as_fn_error $? "conditional \"GST_DISABLE_OPTION_PARSING\" was never defined.
 Usually this means the macro was only invoked conditionally." "$LINENO" 5
 fi
-if test -z "${GST_DISABLE_TRACE_TRUE}" && test -z "${GST_DISABLE_TRACE_FALSE}"; then
-  as_fn_error $? "conditional \"GST_DISABLE_TRACE\" was never defined.
-Usually this means the macro was only invoked conditionally." "$LINENO" 5
-fi
-if test -z "${GST_DISABLE_ALLOC_TRACE_TRUE}" && test -z "${GST_DISABLE_ALLOC_TRACE_FALSE}"; then
-  as_fn_error $? "conditional \"GST_DISABLE_ALLOC_TRACE\" was never defined.
-Usually this means the macro was only invoked conditionally." "$LINENO" 5
-fi
 if test -z "${GST_DISABLE_REGISTRY_TRUE}" && test -z "${GST_DISABLE_REGISTRY_FALSE}"; then
   as_fn_error $? "conditional \"GST_DISABLE_REGISTRY\" was never defined.
 Usually this means the macro was only invoked conditionally." "$LINENO" 5
@@ -29703,7 +29662,7 @@
 # report actual input values of CONFIG_FILES etc. instead of their
 # values after options handling.
 ac_log="
-This file was extended by GStreamer $as_me 1.9.1, which was
+This file was extended by GStreamer $as_me 1.9.2, which was
 generated by GNU Autoconf 2.69.  Invocation command line was
 
   CONFIG_FILES    = $CONFIG_FILES
@@ -29769,7 +29728,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 config.status 1.9.1
+GStreamer config.status 1.9.2
 configured by $0, generated by GNU Autoconf 2.69,
   with options \\"\$ac_cs_config\\"
 
@@ -31078,7 +31037,6 @@
     cat <<_LT_EOF >> "$cfgfile"
 #! $SHELL
 # Generated automatically by $as_me ($PACKAGE) $VERSION
-# Libtool was configured on host `(hostname || uname -n) 2>/dev/null | sed 1q`:
 # NOTE: Changes made to this file will be lost: look at ltmain.sh.
 
 # Provide generalized library-building support services.
@@ -32396,8 +32354,6 @@
 if test "x${GST_DISABLE_GST_TRACER_HOOKS}" = "xno"; then enable_gst_tracer_hooks="yes"; fi
 if test "x${GST_DISABLE_PARSE}" = "xno"; then enable_parse="yes"; fi
 if test "x${GST_DISABLE_OPTION_PARSING}" = "xno"; then enable_option_parsing="yes"; fi
-if test "x${GST_DISABLE_TRACE}" = "xno"; then enable_trace="yes"; fi
-if test "x${GST_DISABLE_ALLOC_TRACE}" = "xno"; then enable_alloc_trace="yes"; fi
 if test "x${GST_DISABLE_PLUGIN}" = "xno"; then enable_plugin="yes"; fi
 if test "x${GST_DISABLE_REGISTRY}" = "xno"; then enable_registry="yes"; fi
 
@@ -32418,13 +32374,12 @@
 	Tracing subsystem hooks    : ${enable_gst_tracer_hooks}
 	Command-line parser        : ${enable_parse}
 	Option parsing in gst_init : ${enable_option_parsing}
-	Historic tracing subsystem : ${enable_trace}
-	Allocation tracing         : ${enable_alloc_trace}
 	Plugin registry            : ${enable_registry}
 	Plugin support	           : ${enable_plugin}
 	Static plugins             : ${enable_static_plugins}
 	Unit testing support       : ${BUILD_CHECK}
 	PTP clock support          : ${HAVE_PTP}
+	libunwind support          : ${HAVE_UNWIND}
 
 	Debug                      : ${USE_DEBUG}
 	Profiling                  : ${USE_PROFILING}
diff --git a/configure.ac b/configure.ac
index 451f0eb..bd0901c 100644
--- a/configure.ac
+++ b/configure.ac
@@ -4,7 +4,7 @@
 dnl when going to/from release please set the nano (fourth number) right !
 dnl releases only do Wall, git and prerelease does Werror too
 dnl
-AC_INIT([GStreamer],[1.9.1],[http://bugzilla.gnome.org/enter_bug.cgi?product=GStreamer],[gstreamer])
+AC_INIT([GStreamer],[1.9.2],[http://bugzilla.gnome.org/enter_bug.cgi?product=GStreamer],[gstreamer])
 AG_GST_INIT
 
 dnl initialize automake (we require GNU make)
@@ -62,7 +62,7 @@
 dnl      1.10.9 (who knows) => 1009
 dnl
 dnl sets GST_LT_LDFLAGS
-AS_LIBTOOL(GST, 901, 0, 901)
+AS_LIBTOOL(GST, 902, 0, 902)
 
 dnl *** autotools stuff ****
 
@@ -101,10 +101,6 @@
   AC_DEFINE(GST_DISABLE_OPTION_PARSING, 1,
     [Define if option parsing is disabled])
 fi
-AG_GST_CHECK_SUBSYSTEM_DISABLE(TRACE,[historic tracing subsystem])
-AM_CONDITIONAL(GST_DISABLE_TRACE, test "x$GST_DISABLE_TRACE" = "xyes")
-AG_GST_CHECK_SUBSYSTEM_DISABLE(ALLOC_TRACE,[allocation tracing])
-AM_CONDITIONAL(GST_DISABLE_ALLOC_TRACE, test "x$GST_DISABLE_ALLOC_TRACE" = "xyes")
 AG_GST_CHECK_SUBSYSTEM_DISABLE(REGISTRY,[plugin registry])
 AM_CONDITIONAL(GST_DISABLE_REGISTRY, test "x$GST_DISABLE_REGISTRY" = "xyes")
 dnl define a substitution to use in docs/gst/gstreamer.types
@@ -135,6 +131,11 @@
   ["${srcdir}/gstreamer.doap"],
   [$PACKAGE_VERSION_MAJOR.$PACKAGE_VERSION_MINOR.$PACKAGE_VERSION_MICRO])
 
+# We only use this when building with MSVC, which is only done with the
+# alternate Meson build system files
+GSTCONFIG_USE_MSVC_DECLSPEC=0
+AC_SUBST(GSTCONFIG_USE_MSVC_DECLSPEC)
+
 dnl check for bash completion
 AC_ARG_WITH([bash-completion-dir],
     AS_HELP_STRING([--with-bash-completion-dir[=PATH]],
@@ -415,17 +416,6 @@
 HOST_CPU=$host_cpu
 AC_SUBST(HOST_CPU)
 
-dnl common/m4/gst-arch.m4
-dnl check for unaligned access
-AG_GST_UNALIGNED_ACCESS
-dnl create a configure variable for gst/gstconfig.h
-if test x${as_cv_unaligned_access} = xyes ; then
-  GST_HAVE_UNALIGNED_ACCESS_DEFINE="#define GST_HAVE_UNALIGNED_ACCESS 1"
-else
-  GST_HAVE_UNALIGNED_ACCESS_DEFINE="#define GST_HAVE_UNALIGNED_ACCESS 0"
-fi
-AC_SUBST(GST_HAVE_UNALIGNED_ACCESS_DEFINE)
-
 dnl check for platform specific settings
 AG_GST_PLATFORM
 
@@ -797,6 +787,20 @@
 fi
 AM_CONDITIONAL(HAVE_GTK, test "x$HAVE_GTK" = "xyes")
 
+dnl libunwind is optionally used by the leaks tracer
+PKG_CHECK_MODULES(UNWIND, libunwind, HAVE_UNWIND=yes, HAVE_UNWIND=no)
+
+dnl Check for backtrace() from libc
+AC_CHECK_FUNC(backtrace, [
+  AC_CHECK_HEADERS([execinfo.h], [
+    AC_DEFINE(HAVE_BACKTRACE,1,[Have backtrace])
+  ], [], [])
+])
+
+if test "x$HAVE_UNWIND" = "xyes"; then
+  AC_DEFINE(HAVE_UNWIND, 1, [libunwind available])
+fi
+
 dnl building of unit test libraries
 AC_ARG_ENABLE(check,
   AS_HELP_STRING([--disable-check],[disable building unit test libraries]),
@@ -1095,8 +1099,6 @@
 if test "x${GST_DISABLE_GST_TRACER_HOOKS}" = "xno"; then enable_gst_tracer_hooks="yes"; fi
 if test "x${GST_DISABLE_PARSE}" = "xno"; then enable_parse="yes"; fi
 if test "x${GST_DISABLE_OPTION_PARSING}" = "xno"; then enable_option_parsing="yes"; fi
-if test "x${GST_DISABLE_TRACE}" = "xno"; then enable_trace="yes"; fi
-if test "x${GST_DISABLE_ALLOC_TRACE}" = "xno"; then enable_alloc_trace="yes"; fi
 if test "x${GST_DISABLE_PLUGIN}" = "xno"; then enable_plugin="yes"; fi
 if test "x${GST_DISABLE_REGISTRY}" = "xno"; then enable_registry="yes"; fi
 
@@ -1117,13 +1119,12 @@
 	Tracing subsystem hooks    : ${enable_gst_tracer_hooks}
 	Command-line parser        : ${enable_parse}
 	Option parsing in gst_init : ${enable_option_parsing}
-	Historic tracing subsystem : ${enable_trace}
-	Allocation tracing         : ${enable_alloc_trace}
 	Plugin registry            : ${enable_registry}
 	Plugin support	           : ${enable_plugin}
 	Static plugins             : ${enable_static_plugins}
 	Unit testing support       : ${BUILD_CHECK}
 	PTP clock support          : ${HAVE_PTP}
+	libunwind support          : ${HAVE_UNWIND}
 
 	Debug                      : ${USE_DEBUG}
 	Profiling                  : ${USE_PROFILING}
diff --git a/data/Makefile.in b/data/Makefile.in
index ba04dc0..bd05529 100644
--- a/data/Makefile.in
+++ b/data/Makefile.in
@@ -261,6 +261,7 @@
 GMSGFMT_015 = @GMSGFMT_015@
 GREP = @GREP@
 GSL_LIBS = @GSL_LIBS@
+GSTCONFIG_USE_MSVC_DECLSPEC = @GSTCONFIG_USE_MSVC_DECLSPEC@
 GST_AGE = @GST_AGE@
 GST_ALL_CFLAGS = @GST_ALL_CFLAGS@
 GST_ALL_CXXFLAGS = @GST_ALL_CXXFLAGS@
@@ -268,17 +269,14 @@
 GST_ALL_LIBS = @GST_ALL_LIBS@
 GST_API_VERSION = @GST_API_VERSION@
 GST_CURRENT = @GST_CURRENT@
-GST_DISABLE_ALLOC_TRACE_DEFINE = @GST_DISABLE_ALLOC_TRACE_DEFINE@
 GST_DISABLE_GST_DEBUG_DEFINE = @GST_DISABLE_GST_DEBUG_DEFINE@
 GST_DISABLE_GST_TRACER_HOOKS_DEFINE = @GST_DISABLE_GST_TRACER_HOOKS_DEFINE@
 GST_DISABLE_OPTION_PARSING_DEFINE = @GST_DISABLE_OPTION_PARSING_DEFINE@
 GST_DISABLE_PARSE_DEFINE = @GST_DISABLE_PARSE_DEFINE@
 GST_DISABLE_PLUGIN_DEFINE = @GST_DISABLE_PLUGIN_DEFINE@
 GST_DISABLE_REGISTRY_DEFINE = @GST_DISABLE_REGISTRY_DEFINE@
-GST_DISABLE_TRACE_DEFINE = @GST_DISABLE_TRACE_DEFINE@
 GST_HAVE_MONOTONIC_CLOCK_DEFINE = @GST_HAVE_MONOTONIC_CLOCK_DEFINE@
 GST_HAVE_POSIX_TIMERS_DEFINE = @GST_HAVE_POSIX_TIMERS_DEFINE@
-GST_HAVE_UNALIGNED_ACCESS_DEFINE = @GST_HAVE_UNALIGNED_ACCESS_DEFINE@
 GST_LEVEL_DEFAULT = @GST_LEVEL_DEFAULT@
 GST_LIBVERSION = @GST_LIBVERSION@
 GST_LIB_LDFLAGS = @GST_LIB_LDFLAGS@
@@ -403,6 +401,8 @@
 SHELL = @SHELL@
 SOCKET_LIBS = @SOCKET_LIBS@
 STRIP = @STRIP@
+UNWIND_CFLAGS = @UNWIND_CFLAGS@
+UNWIND_LIBS = @UNWIND_LIBS@
 USE_NLS = @USE_NLS@
 VALGRIND_CFLAGS = @VALGRIND_CFLAGS@
 VALGRIND_LIBS = @VALGRIND_LIBS@
diff --git a/docs/Makefile.in b/docs/Makefile.in
index 67e32b7..93496a0 100644
--- a/docs/Makefile.in
+++ b/docs/Makefile.in
@@ -293,6 +293,7 @@
 GMSGFMT_015 = @GMSGFMT_015@
 GREP = @GREP@
 GSL_LIBS = @GSL_LIBS@
+GSTCONFIG_USE_MSVC_DECLSPEC = @GSTCONFIG_USE_MSVC_DECLSPEC@
 GST_AGE = @GST_AGE@
 GST_ALL_CFLAGS = @GST_ALL_CFLAGS@
 GST_ALL_CXXFLAGS = @GST_ALL_CXXFLAGS@
@@ -300,17 +301,14 @@
 GST_ALL_LIBS = @GST_ALL_LIBS@
 GST_API_VERSION = @GST_API_VERSION@
 GST_CURRENT = @GST_CURRENT@
-GST_DISABLE_ALLOC_TRACE_DEFINE = @GST_DISABLE_ALLOC_TRACE_DEFINE@
 GST_DISABLE_GST_DEBUG_DEFINE = @GST_DISABLE_GST_DEBUG_DEFINE@
 GST_DISABLE_GST_TRACER_HOOKS_DEFINE = @GST_DISABLE_GST_TRACER_HOOKS_DEFINE@
 GST_DISABLE_OPTION_PARSING_DEFINE = @GST_DISABLE_OPTION_PARSING_DEFINE@
 GST_DISABLE_PARSE_DEFINE = @GST_DISABLE_PARSE_DEFINE@
 GST_DISABLE_PLUGIN_DEFINE = @GST_DISABLE_PLUGIN_DEFINE@
 GST_DISABLE_REGISTRY_DEFINE = @GST_DISABLE_REGISTRY_DEFINE@
-GST_DISABLE_TRACE_DEFINE = @GST_DISABLE_TRACE_DEFINE@
 GST_HAVE_MONOTONIC_CLOCK_DEFINE = @GST_HAVE_MONOTONIC_CLOCK_DEFINE@
 GST_HAVE_POSIX_TIMERS_DEFINE = @GST_HAVE_POSIX_TIMERS_DEFINE@
-GST_HAVE_UNALIGNED_ACCESS_DEFINE = @GST_HAVE_UNALIGNED_ACCESS_DEFINE@
 GST_LEVEL_DEFAULT = @GST_LEVEL_DEFAULT@
 GST_LIBVERSION = @GST_LIBVERSION@
 GST_LIB_LDFLAGS = @GST_LIB_LDFLAGS@
@@ -435,6 +433,8 @@
 SHELL = @SHELL@
 SOCKET_LIBS = @SOCKET_LIBS@
 STRIP = @STRIP@
+UNWIND_CFLAGS = @UNWIND_CFLAGS@
+UNWIND_LIBS = @UNWIND_LIBS@
 USE_NLS = @USE_NLS@
 VALGRIND_CFLAGS = @VALGRIND_CFLAGS@
 VALGRIND_LIBS = @VALGRIND_LIBS@
diff --git a/docs/design/Makefile.in b/docs/design/Makefile.in
index 621dd6a..31070d3 100644
--- a/docs/design/Makefile.in
+++ b/docs/design/Makefile.in
@@ -228,6 +228,7 @@
 GMSGFMT_015 = @GMSGFMT_015@
 GREP = @GREP@
 GSL_LIBS = @GSL_LIBS@
+GSTCONFIG_USE_MSVC_DECLSPEC = @GSTCONFIG_USE_MSVC_DECLSPEC@
 GST_AGE = @GST_AGE@
 GST_ALL_CFLAGS = @GST_ALL_CFLAGS@
 GST_ALL_CXXFLAGS = @GST_ALL_CXXFLAGS@
@@ -235,17 +236,14 @@
 GST_ALL_LIBS = @GST_ALL_LIBS@
 GST_API_VERSION = @GST_API_VERSION@
 GST_CURRENT = @GST_CURRENT@
-GST_DISABLE_ALLOC_TRACE_DEFINE = @GST_DISABLE_ALLOC_TRACE_DEFINE@
 GST_DISABLE_GST_DEBUG_DEFINE = @GST_DISABLE_GST_DEBUG_DEFINE@
 GST_DISABLE_GST_TRACER_HOOKS_DEFINE = @GST_DISABLE_GST_TRACER_HOOKS_DEFINE@
 GST_DISABLE_OPTION_PARSING_DEFINE = @GST_DISABLE_OPTION_PARSING_DEFINE@
 GST_DISABLE_PARSE_DEFINE = @GST_DISABLE_PARSE_DEFINE@
 GST_DISABLE_PLUGIN_DEFINE = @GST_DISABLE_PLUGIN_DEFINE@
 GST_DISABLE_REGISTRY_DEFINE = @GST_DISABLE_REGISTRY_DEFINE@
-GST_DISABLE_TRACE_DEFINE = @GST_DISABLE_TRACE_DEFINE@
 GST_HAVE_MONOTONIC_CLOCK_DEFINE = @GST_HAVE_MONOTONIC_CLOCK_DEFINE@
 GST_HAVE_POSIX_TIMERS_DEFINE = @GST_HAVE_POSIX_TIMERS_DEFINE@
-GST_HAVE_UNALIGNED_ACCESS_DEFINE = @GST_HAVE_UNALIGNED_ACCESS_DEFINE@
 GST_LEVEL_DEFAULT = @GST_LEVEL_DEFAULT@
 GST_LIBVERSION = @GST_LIBVERSION@
 GST_LIB_LDFLAGS = @GST_LIB_LDFLAGS@
@@ -370,6 +368,8 @@
 SHELL = @SHELL@
 SOCKET_LIBS = @SOCKET_LIBS@
 STRIP = @STRIP@
+UNWIND_CFLAGS = @UNWIND_CFLAGS@
+UNWIND_LIBS = @UNWIND_LIBS@
 USE_NLS = @USE_NLS@
 VALGRIND_CFLAGS = @VALGRIND_CFLAGS@
 VALGRIND_LIBS = @VALGRIND_LIBS@
diff --git a/docs/design/part-tracing.txt b/docs/design/part-tracing.txt
index 20791f7..e396474 100644
--- a/docs/design/part-tracing.txt
+++ b/docs/design/part-tracing.txt
@@ -264,6 +264,13 @@
 -----
 - track creation/destruction of GstObject and GstMiniObject
 - log those which are still alive when app is exiting and raise an error if any
+- If the GST_LEAKS_TRACER_SIG env variable is defined:
+  - log alive objects when receiving the SIGUSR1 signal.
+  - create a checkpoint and print a list of objects created and destroyed since
+    the previous checkpoint.
+- If the GST_LEAKS_TRACER_STACK_TRACE env variable is defined log the creation
+  stack trace of leaked objects. This may significantly increase memory
+  consumption.
 
 User interfaces
 ===============
diff --git a/docs/faq/Makefile.in b/docs/faq/Makefile.in
index 8aff779..c73aaba 100644
--- a/docs/faq/Makefile.in
+++ b/docs/faq/Makefile.in
@@ -282,6 +282,7 @@
 GMSGFMT_015 = @GMSGFMT_015@
 GREP = @GREP@
 GSL_LIBS = @GSL_LIBS@
+GSTCONFIG_USE_MSVC_DECLSPEC = @GSTCONFIG_USE_MSVC_DECLSPEC@
 GST_AGE = @GST_AGE@
 GST_ALL_CFLAGS = @GST_ALL_CFLAGS@
 GST_ALL_CXXFLAGS = @GST_ALL_CXXFLAGS@
@@ -289,17 +290,14 @@
 GST_ALL_LIBS = @GST_ALL_LIBS@
 GST_API_VERSION = @GST_API_VERSION@
 GST_CURRENT = @GST_CURRENT@
-GST_DISABLE_ALLOC_TRACE_DEFINE = @GST_DISABLE_ALLOC_TRACE_DEFINE@
 GST_DISABLE_GST_DEBUG_DEFINE = @GST_DISABLE_GST_DEBUG_DEFINE@
 GST_DISABLE_GST_TRACER_HOOKS_DEFINE = @GST_DISABLE_GST_TRACER_HOOKS_DEFINE@
 GST_DISABLE_OPTION_PARSING_DEFINE = @GST_DISABLE_OPTION_PARSING_DEFINE@
 GST_DISABLE_PARSE_DEFINE = @GST_DISABLE_PARSE_DEFINE@
 GST_DISABLE_PLUGIN_DEFINE = @GST_DISABLE_PLUGIN_DEFINE@
 GST_DISABLE_REGISTRY_DEFINE = @GST_DISABLE_REGISTRY_DEFINE@
-GST_DISABLE_TRACE_DEFINE = @GST_DISABLE_TRACE_DEFINE@
 GST_HAVE_MONOTONIC_CLOCK_DEFINE = @GST_HAVE_MONOTONIC_CLOCK_DEFINE@
 GST_HAVE_POSIX_TIMERS_DEFINE = @GST_HAVE_POSIX_TIMERS_DEFINE@
-GST_HAVE_UNALIGNED_ACCESS_DEFINE = @GST_HAVE_UNALIGNED_ACCESS_DEFINE@
 GST_LEVEL_DEFAULT = @GST_LEVEL_DEFAULT@
 GST_LIBVERSION = @GST_LIBVERSION@
 GST_LIB_LDFLAGS = @GST_LIB_LDFLAGS@
@@ -424,6 +422,8 @@
 SHELL = @SHELL@
 SOCKET_LIBS = @SOCKET_LIBS@
 STRIP = @STRIP@
+UNWIND_CFLAGS = @UNWIND_CFLAGS@
+UNWIND_LIBS = @UNWIND_LIBS@
 USE_NLS = @USE_NLS@
 VALGRIND_CFLAGS = @VALGRIND_CFLAGS@
 VALGRIND_LIBS = @VALGRIND_LIBS@
diff --git a/docs/gst/Makefile.in b/docs/gst/Makefile.in
index 20a5d6d..4cdcddf 100644
--- a/docs/gst/Makefile.in
+++ b/docs/gst/Makefile.in
@@ -251,6 +251,7 @@
 GMSGFMT_015 = @GMSGFMT_015@
 GREP = @GREP@
 GSL_LIBS = @GSL_LIBS@
+GSTCONFIG_USE_MSVC_DECLSPEC = @GSTCONFIG_USE_MSVC_DECLSPEC@
 GST_AGE = @GST_AGE@
 GST_ALL_CFLAGS = @GST_ALL_CFLAGS@
 GST_ALL_CXXFLAGS = @GST_ALL_CXXFLAGS@
@@ -258,17 +259,14 @@
 GST_ALL_LIBS = @GST_ALL_LIBS@
 GST_API_VERSION = @GST_API_VERSION@
 GST_CURRENT = @GST_CURRENT@
-GST_DISABLE_ALLOC_TRACE_DEFINE = @GST_DISABLE_ALLOC_TRACE_DEFINE@
 GST_DISABLE_GST_DEBUG_DEFINE = @GST_DISABLE_GST_DEBUG_DEFINE@
 GST_DISABLE_GST_TRACER_HOOKS_DEFINE = @GST_DISABLE_GST_TRACER_HOOKS_DEFINE@
 GST_DISABLE_OPTION_PARSING_DEFINE = @GST_DISABLE_OPTION_PARSING_DEFINE@
 GST_DISABLE_PARSE_DEFINE = @GST_DISABLE_PARSE_DEFINE@
 GST_DISABLE_PLUGIN_DEFINE = @GST_DISABLE_PLUGIN_DEFINE@
 GST_DISABLE_REGISTRY_DEFINE = @GST_DISABLE_REGISTRY_DEFINE@
-GST_DISABLE_TRACE_DEFINE = @GST_DISABLE_TRACE_DEFINE@
 GST_HAVE_MONOTONIC_CLOCK_DEFINE = @GST_HAVE_MONOTONIC_CLOCK_DEFINE@
 GST_HAVE_POSIX_TIMERS_DEFINE = @GST_HAVE_POSIX_TIMERS_DEFINE@
-GST_HAVE_UNALIGNED_ACCESS_DEFINE = @GST_HAVE_UNALIGNED_ACCESS_DEFINE@
 GST_LEVEL_DEFAULT = @GST_LEVEL_DEFAULT@
 GST_LIBVERSION = @GST_LIBVERSION@
 GST_LIB_LDFLAGS = @GST_LIB_LDFLAGS@
@@ -393,6 +391,8 @@
 SHELL = @SHELL@
 SOCKET_LIBS = @SOCKET_LIBS@
 STRIP = @STRIP@
+UNWIND_CFLAGS = @UNWIND_CFLAGS@
+UNWIND_LIBS = @UNWIND_LIBS@
 USE_NLS = @USE_NLS@
 VALGRIND_CFLAGS = @VALGRIND_CFLAGS@
 VALGRIND_LIBS = @VALGRIND_LIBS@
@@ -931,7 +931,7 @@
 @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@	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/gst/gst-universe.svg b/docs/gst/gst-universe.svg
index 61067f9..e69de29 100644
--- a/docs/gst/gst-universe.svg
+++ b/docs/gst/gst-universe.svg
@@ -1,310 +0,0 @@
-<?xml version="1.0" encoding="UTF-8" standalone="no"?>
-<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"
- "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
-<!-- Generated by graphviz version 2.38.0 (20140413.2041)
- -->
-<!-- Title: pipeline Pages: 1 -->
-<svg width="712pt" height="632pt"
- viewBox="0.00 0.00 712.00 632.00" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
-<g id="graph0" class="graph" transform="scale(1 1) rotate(0) translate(4 628)">
-<title>pipeline</title>
-<polygon fill="white" stroke="none" points="-4,4 -4,-628 708,-628 708,4 -4,4"/>
-<!-- application -->
-<g id="node1" class="node"><title>application</title>
-<polygon fill="#ffdddd" stroke="black" points="581,-624 513,-624 513,-588 581,-588 581,-624"/>
-<text text-anchor="middle" x="547" y="-603.8" font-family="Bitstream Vera Sans" font-size="9.00">application</text>
-</g>
-<!-- bus -->
-<g id="node3" class="node"><title>bus</title>
-<g id="a_node3"><a xlink:href="GstBus.html" xlink:title="bus" target="_top">
-<polygon fill="#eeeeee" stroke="black" points="123,-464 69,-464 69,-428 123,-428 123,-464"/>
-<text text-anchor="middle" x="96" y="-443.8" font-family="Bitstream Vera Sans" font-size="9.00">bus</text>
-</a>
-</g>
-</g>
-<!-- application&#45;&gt;bus -->
-<g id="edge24" class="edge"><title>application&#45;&gt;bus</title>
-<path fill="none" stroke="black" d="M512.839,-602.11C431.071,-594.787 226.336,-573.934 165,-544 133.348,-528.553 124.98,-520.285 107,-490 104.171,-485.236 102.064,-479.755 100.496,-474.337"/>
-<polygon fill="black" stroke="black" points="103.805,-473.124 98.0966,-464.198 96.9935,-474.736 103.805,-473.124"/>
-<text text-anchor="middle" x="181" y="-524.4" font-family="Bitstream Vera Sans" font-size="7.00">listen on</text>
-</g>
-<!-- event -->
-<g id="node9" class="node"><title>event</title>
-<g id="a_node9"><a xlink:href="gstreamer-GstEvent.html" xlink:title="event" target="_top">
-<polygon fill="#ddffdd" stroke="black" points="595,-304 541,-304 541,-268 595,-268 595,-304"/>
-<text text-anchor="middle" x="568" y="-283.8" font-family="Bitstream Vera Sans" font-size="9.00">event</text>
-</a>
-</g>
-</g>
-<!-- application&#45;&gt;event -->
-<g id="edge26" class="edge"><title>application&#45;&gt;event</title>
-<path fill="none" stroke="black" d="M581.083,-590.104C604.731,-577.208 632,-556.041 632,-527 632,-527 632,-527 632,-365 632,-344.901 629.961,-338.152 618,-322 613.933,-316.508 608.741,-311.561 603.25,-307.234"/>
-<polygon fill="black" stroke="black" points="605.244,-304.357 595.086,-301.346 601.149,-310.034 605.244,-304.357"/>
-<text text-anchor="middle" x="641" y="-444.4" font-family="Bitstream Vera Sans" font-size="7.00">send</text>
-</g>
-<!-- pipeline -->
-<g id="node13" class="node"><title>pipeline</title>
-<g id="a_node13"><a xlink:href="GstPipeline.html" xlink:title="pipeline" target="_top">
-<polygon fill="#ccccff" stroke="black" points="260,-544 206,-544 206,-508 260,-508 260,-544"/>
-<text text-anchor="middle" x="233" y="-523.8" font-family="Bitstream Vera Sans" font-size="9.00">pipeline</text>
-</a>
-</g>
-</g>
-<!-- application&#45;&gt;pipeline -->
-<g id="edge23" class="edge"><title>application&#45;&gt;pipeline</title>
-<path fill="none" stroke="black" d="M512.799,-596.504C453.447,-581.761 331.849,-551.555 270.363,-536.281"/>
-<polygon fill="black" stroke="black" points="270.868,-532.8 260.319,-533.786 269.181,-539.594 270.868,-532.8"/>
-<text text-anchor="middle" x="406.5" y="-564.4" font-family="Bitstream Vera Sans" font-size="7.00">has</text>
-</g>
-<!-- query -->
-<g id="node16" class="node"><title>query</title>
-<g id="a_node16"><a xlink:href="gstreamer-GstQuery.html" xlink:title="query" target="_top">
-<polygon fill="#ddffdd" stroke="black" points="690,-304 636,-304 636,-268 690,-268 690,-304"/>
-<text text-anchor="middle" x="663" y="-283.8" font-family="Bitstream Vera Sans" font-size="9.00">query</text>
-</a>
-</g>
-</g>
-<!-- application&#45;&gt;query -->
-<g id="edge25" class="edge"><title>application&#45;&gt;query</title>
-<path fill="none" stroke="black" d="M581.003,-600.877C622.154,-593.772 686,-575.011 686,-527 686,-527 686,-527 686,-365 686,-347.449 680.577,-328.551 674.997,-313.753"/>
-<polygon fill="black" stroke="black" points="678.147,-312.205 671.174,-304.229 671.651,-314.813 678.147,-312.205"/>
-<text text-anchor="middle" x="695" y="-444.4" font-family="Bitstream Vera Sans" font-size="7.00">send</text>
-</g>
-<!-- bin -->
-<g id="node2" class="node"><title>bin</title>
-<g id="a_node2"><a xlink:href="GstBin.html" xlink:title="bin" target="_top">
-<polygon fill="#ccccff" stroke="black" points="346,-464 292,-464 292,-428 346,-428 346,-464"/>
-<text text-anchor="middle" x="319" y="-443.8" font-family="Bitstream Vera Sans" font-size="9.00">bin</text>
-</a>
-</g>
-</g>
-<!-- element -->
-<g id="node7" class="node"><title>element</title>
-<g id="a_node7"><a xlink:href="GstElement.html" xlink:title="element" target="_top">
-<polygon fill="#ccccff" stroke="black" points="382.5,-384 327.5,-384 327.5,-348 382.5,-348 382.5,-384"/>
-<text text-anchor="middle" x="355" y="-363.8" font-family="Bitstream Vera Sans" font-size="9.00">element</text>
-</a>
-</g>
-</g>
-<!-- bin&#45;&gt;element -->
-<g id="edge1" class="edge"><title>bin&#45;&gt;element</title>
-<path fill="none" stroke="black" d="M316.513,-427.631C316.068,-419.539 316.592,-409.964 320,-402 321.509,-398.474 323.555,-395.114 325.905,-391.97"/>
-<polygon fill="black" stroke="black" points="328.757,-394.024 332.678,-384.181 323.475,-389.431 328.757,-394.024"/>
-<text text-anchor="middle" x="326.5" y="-404.4" font-family="Bitstream Vera Sans" font-size="7.00">is&#45;a</text>
-</g>
-<!-- bin&#45;&gt;element -->
-<g id="edge12" class="edge"><title>bin&#45;&gt;element</title>
-<path fill="none" stroke="black" d="M326.99,-427.689C331.604,-417.692 337.505,-404.906 342.7,-393.651"/>
-<polygon fill="black" stroke="black" points="346.02,-394.809 347.033,-384.262 339.664,-391.875 346.02,-394.809"/>
-<text text-anchor="middle" x="349" y="-404.4" font-family="Bitstream Vera Sans" font-size="7.00">has n</text>
-</g>
-<!-- message -->
-<g id="node10" class="node"><title>message</title>
-<g id="a_node10"><a xlink:href="gstreamer-GstMessage.html" xlink:title="message" target="_top">
-<polygon fill="#ddffdd" stroke="black" points="131.5,-304 72.5,-304 72.5,-268 131.5,-268 131.5,-304"/>
-<text text-anchor="middle" x="102" y="-283.8" font-family="Bitstream Vera Sans" font-size="9.00">message</text>
-</a>
-</g>
-</g>
-<!-- bus&#45;&gt;message -->
-<g id="edge19" class="edge"><title>bus&#45;&gt;message</title>
-<path fill="none" stroke="black" d="M96.6535,-427.79C97.6905,-400.485 99.7217,-346.994 100.96,-314.38"/>
-<polygon fill="black" stroke="black" points="104.465,-314.314 101.347,-304.188 97.4702,-314.048 104.465,-314.314"/>
-<text text-anchor="middle" x="114" y="-364.4" font-family="Bitstream Vera Sans" font-size="7.00">receive</text>
-</g>
-<!-- buffer -->
-<g id="node4" class="node"><title>buffer</title>
-<g id="a_node4"><a xlink:href="gstreamer-GstBuffer.html" xlink:title="buffer" target="_top">
-<polygon fill="#ddffdd" stroke="black" points="528,-250 474,-250 474,-214 528,-214 528,-250"/>
-<text text-anchor="middle" x="501" y="-229.8" font-family="Bitstream Vera Sans" font-size="9.00">buffer</text>
-</a>
-</g>
-</g>
-<!-- caps -->
-<g id="node5" class="node"><title>caps</title>
-<g id="a_node5"><a xlink:href="gstreamer-GstCaps.html" xlink:title="caps" target="_top">
-<polygon fill="#eeeeee" stroke="black" points="479,-116 425,-116 425,-80 479,-80 479,-116"/>
-<text text-anchor="middle" x="452" y="-95.8" font-family="Bitstream Vera Sans" font-size="9.00">caps</text>
-</a>
-</g>
-</g>
-<!-- buffer&#45;&gt;caps -->
-<g id="edge10" class="edge"><title>buffer&#45;&gt;caps</title>
-<path fill="none" stroke="black" d="M495.075,-213.734C490.094,-199.326 482.729,-178.272 476,-160 471.721,-148.382 470.521,-145.526 466,-134 464.925,-131.258 463.795,-128.399 462.662,-125.548"/>
-<polygon fill="black" stroke="black" points="465.838,-124.063 458.882,-116.072 459.336,-126.657 465.838,-124.063"/>
-<text text-anchor="middle" x="499" y="-176.4" font-family="Bitstream Vera Sans" font-size="7.00">has n</text>
-</g>
-<!-- structure -->
-<g id="node18" class="node"><title>structure</title>
-<g id="a_node18"><a xlink:href="gstreamer-GstStructure.html" xlink:title="structure" target="_top">
-<polygon fill="#eeeeee" stroke="black" points="482,-36 422,-36 422,-0 482,-0 482,-36"/>
-<text text-anchor="middle" x="452" y="-15.8" font-family="Bitstream Vera Sans" font-size="9.00">structure</text>
-</a>
-</g>
-</g>
-<!-- caps&#45;&gt;structure -->
-<g id="edge11" class="edge"><title>caps&#45;&gt;structure</title>
-<path fill="none" stroke="black" d="M452,-79.6893C452,-69.8938 452,-57.4218 452,-46.335"/>
-<polygon fill="black" stroke="black" points="455.5,-46.2623 452,-36.2623 448.5,-46.2624 455.5,-46.2623"/>
-<text text-anchor="middle" x="462" y="-56.4" font-family="Bitstream Vera Sans" font-size="7.00">has n</text>
-</g>
-<!-- clock -->
-<g id="node6" class="node"><title>clock</title>
-<g id="a_node6"><a xlink:href="GstClock.html" xlink:title="clock" target="_top">
-<polygon fill="#eeeeee" stroke="black" points="204,-304 150,-304 150,-268 204,-268 204,-304"/>
-<text text-anchor="middle" x="177" y="-283.8" font-family="Bitstream Vera Sans" font-size="9.00">clock</text>
-</a>
-</g>
-</g>
-<!-- element&#45;&gt;buffer -->
-<g id="edge17" class="edge"><title>element&#45;&gt;buffer</title>
-<path fill="none" stroke="black" d="M381.372,-347.917C390.161,-342.221 400.004,-335.839 409,-330 426.785,-318.456 433.595,-318.569 449,-304 463.157,-290.611 476.114,-272.942 485.553,-258.58"/>
-<polygon fill="black" stroke="black" points="488.516,-260.443 490.955,-250.132 482.618,-256.672 488.516,-260.443"/>
-<text text-anchor="middle" x="450.5" y="-324.4" font-family="Bitstream Vera Sans" font-size="7.00">send &amp; receive</text>
-</g>
-<!-- element&#45;&gt;clock -->
-<g id="edge7" class="edge"><title>element&#45;&gt;clock</title>
-<path fill="none" stroke="black" d="M327.234,-360.439C301.305,-355.435 262.052,-345.921 231,-330 220.979,-324.862 211.039,-317.702 202.471,-310.697"/>
-<polygon fill="black" stroke="black" points="204.602,-307.915 194.718,-304.1 200.065,-313.246 204.602,-307.915"/>
-<text text-anchor="middle" x="253.5" y="-324.4" font-family="Bitstream Vera Sans" font-size="7.00">may provide</text>
-</g>
-<!-- element_factory -->
-<g id="node8" class="node"><title>element_factory</title>
-<g id="a_node8"><a xlink:href="GstElementFactory.html" xlink:title="element factory" target="_top">
-<polygon fill="#eeeeee" stroke="black" points="312,-304 222,-304 222,-268 312,-268 312,-304"/>
-<text text-anchor="middle" x="267" y="-283.8" font-family="Bitstream Vera Sans" font-size="9.00">element factory</text>
-</a>
-</g>
-</g>
-<!-- element&#45;&gt;element_factory -->
-<g id="edge14" class="edge"><title>element&#45;&gt;element_factory</title>
-<path fill="none" stroke="black" d="M327.192,-356.36C313.019,-350.764 296.414,-342.208 285,-330 280.68,-325.38 277.32,-319.573 274.737,-313.734"/>
-<polygon fill="black" stroke="black" points="277.899,-312.2 271.09,-304.082 271.351,-314.674 277.899,-312.2"/>
-<text text-anchor="middle" x="313" y="-324.4" font-family="Bitstream Vera Sans" font-size="7.00">is created from</text>
-</g>
-<!-- element&#45;&gt;event -->
-<g id="edge16" class="edge"><title>element&#45;&gt;event</title>
-<path fill="none" stroke="black" d="M382.632,-359.605C409.75,-353.864 452.014,-343.715 487,-330 502.175,-324.051 518.167,-315.984 531.895,-308.443"/>
-<polygon fill="black" stroke="black" points="533.988,-311.282 541,-303.34 530.565,-305.176 533.988,-311.282"/>
-<text text-anchor="middle" x="533.5" y="-324.4" font-family="Bitstream Vera Sans" font-size="7.00">send &amp; receive</text>
-</g>
-<!-- element&#45;&gt;message -->
-<g id="edge18" class="edge"><title>element&#45;&gt;message</title>
-<path fill="none" stroke="black" d="M327.415,-360.675C295.511,-355.266 241.648,-344.871 197,-330 178.015,-323.677 157.714,-314.798 140.773,-306.749"/>
-<polygon fill="black" stroke="black" points="142.263,-303.582 131.737,-302.384 139.219,-309.885 142.263,-303.582"/>
-<text text-anchor="middle" x="206" y="-324.4" font-family="Bitstream Vera Sans" font-size="7.00">send</text>
-</g>
-<!-- pad -->
-<g id="node11" class="node"><title>pad</title>
-<g id="a_node11"><a xlink:href="GstPad.html" xlink:title="pad" target="_top">
-<polygon fill="#ccccff" stroke="black" points="440,-304 386,-304 386,-268 440,-268 440,-304"/>
-<text text-anchor="middle" x="413" y="-283.8" font-family="Bitstream Vera Sans" font-size="9.00">pad</text>
-</a>
-</g>
-</g>
-<!-- element&#45;&gt;pad -->
-<g id="edge6" class="edge"><title>element&#45;&gt;pad</title>
-<path fill="none" stroke="black" d="M367.872,-347.689C375.606,-337.288 385.585,-323.869 394.191,-312.294"/>
-<polygon fill="black" stroke="black" points="397.005,-314.375 400.164,-304.262 391.388,-310.199 397.005,-314.375"/>
-<text text-anchor="middle" x="396" y="-324.4" font-family="Bitstream Vera Sans" font-size="7.00">has n</text>
-</g>
-<!-- pad_template -->
-<g id="node12" class="node"><title>pad_template</title>
-<g id="a_node12"><a xlink:href="GstPadTemplate.html" xlink:title="pad template" target="_top">
-<polygon fill="#eeeeee" stroke="black" points="416,-196 336,-196 336,-160 416,-160 416,-196"/>
-<text text-anchor="middle" x="376" y="-175.8" font-family="Bitstream Vera Sans" font-size="9.00">pad template</text>
-</a>
-</g>
-</g>
-<!-- element&#45;&gt;pad_template -->
-<g id="edge5" class="edge"><title>element&#45;&gt;pad_template</title>
-<path fill="none" stroke="black" d="M354.373,-347.762C353.894,-328.315 353.779,-295.775 357,-268 359.427,-247.075 364.48,-223.805 368.765,-206.309"/>
-<polygon fill="black" stroke="black" points="372.254,-206.785 371.303,-196.233 365.466,-205.075 372.254,-206.785"/>
-<text text-anchor="middle" x="367" y="-284.4" font-family="Bitstream Vera Sans" font-size="7.00">has n</text>
-</g>
-<!-- element&#45;&gt;query -->
-<g id="edge15" class="edge"><title>element&#45;&gt;query</title>
-<path fill="none" stroke="black" d="M382.676,-362.596C423.319,-358.573 501.235,-348.981 565,-330 586.078,-323.726 608.616,-314.061 626.757,-305.482"/>
-<polygon fill="black" stroke="black" points="628.322,-308.613 635.811,-301.118 625.283,-302.307 628.322,-308.613"/>
-<text text-anchor="middle" x="603" y="-324.4" font-family="Bitstream Vera Sans" font-size="7.00">answers</text>
-</g>
-<!-- plugin_feature -->
-<g id="node15" class="node"><title>plugin_feature</title>
-<g id="a_node15"><a xlink:href="GstPluginFeature.html" xlink:title="plugin feature" target="_top">
-<polygon fill="#eeeeee" stroke="black" points="164.5,-196 81.5,-196 81.5,-160 164.5,-160 164.5,-196"/>
-<text text-anchor="middle" x="123" y="-175.8" font-family="Bitstream Vera Sans" font-size="9.00">plugin feature</text>
-</a>
-</g>
-</g>
-<!-- element_factory&#45;&gt;plugin_feature -->
-<g id="edge22" class="edge"><title>element_factory&#45;&gt;plugin_feature</title>
-<path fill="none" stroke="black" d="M243.864,-267.969C219.76,-250.226 181.821,-222.299 154.885,-202.471"/>
-<polygon fill="black" stroke="black" points="156.685,-199.45 146.557,-196.341 152.536,-205.088 156.685,-199.45"/>
-<text text-anchor="middle" x="223.5" y="-230.4" font-family="Bitstream Vera Sans" font-size="7.00">is&#45;a</text>
-</g>
-<!-- pad&#45;&gt;caps -->
-<g id="edge8" class="edge"><title>pad&#45;&gt;caps</title>
-<path fill="none" stroke="black" d="M427.945,-267.881C431.87,-262.494 435.655,-256.298 438,-250 446.192,-227.992 449.765,-163.333 451.179,-126.151"/>
-<polygon fill="black" stroke="black" points="454.682,-126.128 451.537,-116.011 447.686,-125.881 454.682,-126.128"/>
-<text text-anchor="middle" x="460" y="-176.4" font-family="Bitstream Vera Sans" font-size="7.00">has n</text>
-</g>
-<!-- pad&#45;&gt;pad_template -->
-<g id="edge13" class="edge"><title>pad&#45;&gt;pad_template</title>
-<path fill="none" stroke="black" d="M393.78,-267.685C389.148,-262.473 384.748,-256.417 382,-250 376.16,-236.361 374.475,-219.918 374.334,-206.291"/>
-<polygon fill="black" stroke="black" points="377.837,-206.131 374.502,-196.075 370.838,-206.016 377.837,-206.131"/>
-<text text-anchor="middle" x="410" y="-230.4" font-family="Bitstream Vera Sans" font-size="7.00">is created from</text>
-</g>
-<!-- pad_template&#45;&gt;caps -->
-<g id="edge9" class="edge"><title>pad_template&#45;&gt;caps</title>
-<path fill="none" stroke="black" d="M392.867,-159.689C403.198,-149.086 416.586,-135.346 428.009,-123.622"/>
-<polygon fill="black" stroke="black" points="430.708,-125.867 435.18,-116.262 425.695,-120.982 430.708,-125.867"/>
-<text text-anchor="middle" x="427" y="-136.4" font-family="Bitstream Vera Sans" font-size="7.00">has n</text>
-</g>
-<!-- pipeline&#45;&gt;bin -->
-<g id="edge2" class="edge"><title>pipeline&#45;&gt;bin</title>
-<path fill="none" stroke="black" d="M252.086,-507.689C263.888,-496.985 279.215,-483.084 292.221,-471.288"/>
-<polygon fill="black" stroke="black" points="294.911,-473.573 299.967,-464.262 290.209,-468.388 294.911,-473.573"/>
-<text text-anchor="middle" x="285.5" y="-484.4" font-family="Bitstream Vera Sans" font-size="7.00">is&#45;a</text>
-</g>
-<!-- pipeline&#45;&gt;bus -->
-<g id="edge3" class="edge"><title>pipeline&#45;&gt;bus</title>
-<path fill="none" stroke="black" d="M205.982,-522.778C180.69,-519.425 143.13,-511.024 118,-490 112.766,-485.621 108.637,-479.682 105.439,-473.616"/>
-<polygon fill="black" stroke="black" points="108.477,-471.842 101.154,-464.186 102.104,-474.738 108.477,-471.842"/>
-<text text-anchor="middle" x="128" y="-484.4" font-family="Bitstream Vera Sans" font-size="7.00">has 1</text>
-</g>
-<!-- pipeline&#45;&gt;clock -->
-<g id="edge4" class="edge"><title>pipeline&#45;&gt;clock</title>
-<path fill="none" stroke="black" d="M225.721,-507.939C211.912,-474.538 182.365,-397.851 172,-330 171.232,-324.971 171.219,-319.596 171.617,-314.408"/>
-<polygon fill="black" stroke="black" points="175.126,-314.553 172.897,-304.196 168.18,-313.682 175.126,-314.553"/>
-<text text-anchor="middle" x="201" y="-404.4" font-family="Bitstream Vera Sans" font-size="7.00">has 1</text>
-</g>
-<!-- plugin -->
-<g id="node14" class="node"><title>plugin</title>
-<g id="a_node14"><a xlink:href="GstPlugin.html" xlink:title="plugin" target="_top">
-<polygon fill="#eeeeee" stroke="black" points="54,-304 0,-304 0,-268 54,-268 54,-304"/>
-<text text-anchor="middle" x="27" y="-283.8" font-family="Bitstream Vera Sans" font-size="9.00">plugin</text>
-</a>
-</g>
-</g>
-<!-- plugin&#45;&gt;plugin_feature -->
-<g id="edge21" class="edge"><title>plugin&#45;&gt;plugin_feature</title>
-<path fill="none" stroke="black" d="M42.4241,-267.969C58.1458,-250.61 82.6955,-223.503 100.567,-203.769"/>
-<polygon fill="black" stroke="black" points="103.177,-206.102 107.295,-196.341 97.9882,-201.403 103.177,-206.102"/>
-<text text-anchor="middle" x="100" y="-230.4" font-family="Bitstream Vera Sans" font-size="7.00">has n</text>
-</g>
-<!-- registry -->
-<g id="node17" class="node"><title>registry</title>
-<g id="a_node17"><a xlink:href="GstRegistry.html" xlink:title="registry" target="_top">
-<polygon fill="#eeeeee" stroke="black" points="54,-384 0,-384 0,-348 54,-348 54,-384"/>
-<text text-anchor="middle" x="27" y="-363.8" font-family="Bitstream Vera Sans" font-size="9.00">registry</text>
-</a>
-</g>
-</g>
-<!-- registry&#45;&gt;plugin -->
-<g id="edge20" class="edge"><title>registry&#45;&gt;plugin</title>
-<path fill="none" stroke="black" d="M27,-347.689C27,-337.894 27,-325.422 27,-314.335"/>
-<polygon fill="black" stroke="black" points="30.5001,-314.262 27,-304.262 23.5001,-314.262 30.5001,-314.262"/>
-<text text-anchor="middle" x="37" y="-324.4" font-family="Bitstream Vera Sans" font-size="7.00">has n</text>
-</g>
-</g>
-</svg>
diff --git a/docs/gst/gstreamer-sections.txt b/docs/gst/gstreamer-sections.txt
index 23521ed..9355155 100644
--- a/docs/gst/gstreamer-sections.txt
+++ b/docs/gst/gstreamer-sections.txt
@@ -36,8 +36,6 @@
 GstQuarkId
 GstPluginLoader
 GstPluginLoaderFuncs
-GstAllocTrace
-GstAllocTraceFlags
 </SECTION>
 
 <SECTION>
@@ -260,6 +258,11 @@
 gst_buffer_add_parent_buffer_meta
 gst_buffer_get_parent_buffer_meta
 
+gst_buffer_get_flags
+gst_buffer_set_flags
+gst_buffer_unset_flags
+gst_buffer_has_flags
+
 <SUBSECTION Standard>
 GstBufferClass
 GST_BUFFER
@@ -698,8 +701,6 @@
 <TITLE>GstConfig</TITLE>
 GST_DISABLE_GST_DEBUG
 GST_DISABLE_PARSE
-GST_DISABLE_TRACE
-GST_DISABLE_ALLOC_TRACE
 GST_DISABLE_REGISTRY
 GST_DISABLE_PLUGIN
 <SUBSECTION Private>
@@ -813,8 +814,12 @@
 GST_ELEMENT_PADS
 GST_ELEMENT_START_TIME
 GST_ELEMENT_ERROR
+GST_ELEMENT_ERROR_WITH_DETAILS
+GST_ELEMENT_FLOW_ERROR
 GST_ELEMENT_WARNING
+GST_ELEMENT_WARNING_WITH_DETAILS
 GST_ELEMENT_INFO
+GST_ELEMENT_INFO_WITH_DETAILS
 GST_ELEMENT_IS_LOCKED_STATE
 
 <SUBSECTION element-metadata>
@@ -899,6 +904,8 @@
 
 <SUBSECTION element-messages>
 gst_element_message_full
+gst_element_message_full_with_details
+gst_make_element_message_details
 gst_element_post_message
 
 <SUBSECTION element-query>
@@ -1178,6 +1185,9 @@
 
 gst_event_new_stream_collection
 gst_event_parse_stream_collection
+
+gst_event_new_stream_group_done
+gst_event_parse_stream_group_done
 <SUBSECTION Standard>
 GstEventClass
 GST_EVENT
@@ -1579,11 +1589,17 @@
 
 gst_message_new_eos
 gst_message_new_error
+gst_message_new_error_with_details
 gst_message_parse_error
+gst_message_parse_error_details
 gst_message_new_warning
+gst_message_new_warning_with_details
 gst_message_parse_warning
+gst_message_parse_warning_details
 gst_message_new_info
+gst_message_new_info_with_details
 gst_message_parse_info
+gst_message_parse_info_details
 gst_message_new_tag
 gst_message_parse_tag
 gst_message_new_buffering
@@ -1667,6 +1683,11 @@
 gst_message_streams_selected_get_size
 gst_message_streams_selected_get_stream
 
+gst_message_new_redirect
+gst_message_add_redirect_entry
+gst_message_parse_redirect_entry
+gst_message_get_num_redirect_entries
+
 <SUBSECTION Standard>
 GstMessageClass
 GST_MESSAGE
diff --git a/docs/gst/html/GstAllocator.html b/docs/gst/html/GstAllocator.html
index e474769..d9ed084 100644
--- a/docs/gst/html/GstAllocator.html
+++ b/docs/gst/html/GstAllocator.html
@@ -28,7 +28,7 @@
 <div class="refnamediv"><table width="100%"><tr>
 <td valign="top">
 <h2><span class="refentrytitle"><a name="GstAllocator.top_of_page"></a>GstAllocator</span></h2>
-<p>GstAllocator</p>
+<p>GstAllocator — allocate memory blocks</p>
 </td>
 <td class="gallery_image" valign="top" align="right"></td>
 </tr></table></div>
@@ -167,6 +167,15 @@
 </div>
 <div class="refsect1">
 <a name="GstAllocator.description"></a><h2>Description</h2>
+<p>Memory is usually created by allocators with a <a class="link" href="GstAllocator.html#gst-allocator-alloc" title="gst_allocator_alloc ()"><code class="function">gst_allocator_alloc()</code></a>
+method call. When <a href="/usr/share/gtk-doc/html/glibglib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a> is used as the allocator, the default allocator will
+be used.</p>
+<p>New allocators can be registered with <a class="link" href="GstAllocator.html#gst-allocator-register" title="gst_allocator_register ()"><code class="function">gst_allocator_register()</code></a>.
+Allocators are identified by name and can be retrieved with
+<a class="link" href="GstAllocator.html#gst-allocator-find" title="gst_allocator_find ()"><code class="function">gst_allocator_find()</code></a>. <a class="link" href="GstAllocator.html#gst-allocator-set-default" title="gst_allocator_set_default ()"><code class="function">gst_allocator_set_default()</code></a> can be used to change the
+default allocator.</p>
+<p>New memory can be created with <a class="link" href="GstAllocator.html#gst-memory-new-wrapped" title="gst_memory_new_wrapped ()"><code class="function">gst_memory_new_wrapped()</code></a> that wraps the memory
+allocated elsewhere.</p>
 </div>
 <div class="refsect1">
 <a name="GstAllocator.functions_details"></a><h2>Functions</h2>
@@ -174,6 +183,33 @@
 <a name="gst-allocator-find"></a><h3>gst_allocator_find ()</h3>
 <pre class="programlisting"><a class="link" href="GstAllocator.html" title="GstAllocator"><span class="returnvalue">GstAllocator</span></a> *
 gst_allocator_find (<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>Find a previously registered allocator with <em class="parameter"><code>name</code></em>
+. When <em class="parameter"><code>name</code></em>
+ is <a href="/usr/share/gtk-doc/html/glibglib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a>, the
+default allocator will be returned.</p>
+<div class="refsect3">
+<a name="gst-allocator-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>name</p></td>
+<td class="parameter_description"><p> the name of the allocator. </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-allocator-find.returns"></a><h4>Returns</h4>
+<p> a <a class="link" href="GstAllocator.html" title="GstAllocator"><span class="type">GstAllocator</span></a> or <a href="/usr/share/gtk-doc/html/glibglib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a> when
+the allocator with <em class="parameter"><code>name</code></em>
+was not registered. Use <a class="link" href="GstObject.html#gst-object-unref" title="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>][<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>
 </div>
 <hr>
 <div class="refsect2">
@@ -181,30 +217,132 @@
 <pre class="programlisting"><span class="returnvalue">void</span>
 gst_allocator_register (<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><a class="link" href="GstAllocator.html" title="GstAllocator"><span class="type">GstAllocator</span></a> *allocator</code></em>);</pre>
+<p>Registers the memory <em class="parameter"><code>allocator</code></em>
+ with <em class="parameter"><code>name</code></em>
+. This function takes ownership of
+<em class="parameter"><code>allocator</code></em>
+.</p>
+<div class="refsect3">
+<a name="gst-allocator-register.parameters"></a><h4>Parameters</h4>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
+<colgroup>
+<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 allocator</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>allocator</p></td>
+<td class="parameter_description"><p> <a class="link" href="GstAllocator.html" title="GstAllocator"><span class="type">GstAllocator</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">
 <a name="gst-allocator-set-default"></a><h3>gst_allocator_set_default ()</h3>
 <pre class="programlisting"><span class="returnvalue">void</span>
 gst_allocator_set_default (<em class="parameter"><code><a class="link" href="GstAllocator.html" title="GstAllocator"><span class="type">GstAllocator</span></a> *allocator</code></em>);</pre>
+<p>Set the default allocator. This function takes ownership of <em class="parameter"><code>allocator</code></em>
+.</p>
+<div class="refsect3">
+<a name="gst-allocator-set-default.parameters"></a><h4>Parameters</h4>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
+<colgroup>
+<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> a <a class="link" href="GstAllocator.html" title="GstAllocator"><span class="type">GstAllocator</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">
 <a name="gst-allocation-params-init"></a><h3>gst_allocation_params_init ()</h3>
 <pre class="programlisting"><span class="returnvalue">void</span>
 gst_allocation_params_init (<em class="parameter"><code><a class="link" href="GstAllocator.html#GstAllocationParams"><span class="type">GstAllocationParams</span></a> *params</code></em>);</pre>
+<p>Initialize <em class="parameter"><code>params</code></em>
+ to its default values</p>
+<div class="refsect3">
+<a name="gst-allocation-params-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>params</p></td>
+<td class="parameter_description"><p>a <a class="link" href="GstAllocator.html#GstAllocationParams"><span class="type">GstAllocationParams</span></a></p></td>
+<td class="parameter_annotations"> </td>
+</tr></tbody>
+</table></div>
+</div>
 </div>
 <hr>
 <div class="refsect2">
 <a name="gst-allocation-params-copy"></a><h3>gst_allocation_params_copy ()</h3>
 <pre class="programlisting"><a class="link" href="GstAllocator.html#GstAllocationParams"><span class="returnvalue">GstAllocationParams</span></a> *
 gst_allocation_params_copy (<em class="parameter"><code>const <a class="link" href="GstAllocator.html#GstAllocationParams"><span class="type">GstAllocationParams</span></a> *params</code></em>);</pre>
+<p>Create a copy of <em class="parameter"><code>params</code></em>
+.</p>
+<p>Free-function: gst_allocation_params_free</p>
+<div class="refsect3">
+<a name="gst-allocation-params-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>params</p></td>
+<td class="parameter_description"><p> a <a class="link" href="GstAllocator.html#GstAllocationParams"><span class="type">GstAllocationParams</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-allocation-params-copy.returns"></a><h4>Returns</h4>
+<p> a new #<a class="link" href="GstAllocator.html#GstAllocationParams"><span class="type">GstAllocationParams</span></a>, free with
+<a class="link" href="GstAllocator.html#gst-allocation-params-free" title="gst_allocation_params_free ()"><code class="function">gst_allocation_params_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-allocation-params-free"></a><h3>gst_allocation_params_free ()</h3>
 <pre class="programlisting"><span class="returnvalue">void</span>
 gst_allocation_params_free (<em class="parameter"><code><a class="link" href="GstAllocator.html#GstAllocationParams"><span class="type">GstAllocationParams</span></a> *params</code></em>);</pre>
+<p>Free <em class="parameter"><code>params</code></em>
+</p>
+<div class="refsect3">
+<a name="gst-allocation-params-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>params</p></td>
+<td class="parameter_description"><p> a <a class="link" href="GstAllocator.html#GstAllocationParams"><span class="type">GstAllocationParams</span></a>. </p></td>
+<td class="parameter_annotations"><span class="annotation">[<acronym title="Parameter for input. Default is transfer none."><span class="acronym">in</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">
@@ -213,6 +351,55 @@
 gst_allocator_alloc (<em class="parameter"><code><a class="link" href="GstAllocator.html" title="GstAllocator"><span class="type">GstAllocator</span></a> *allocator</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="GstAllocator.html#GstAllocationParams"><span class="type">GstAllocationParams</span></a> *params</code></em>);</pre>
+<p>Use <em class="parameter"><code>allocator</code></em>
+ to allocate a new memory block with memory that is at least
+<em class="parameter"><code>size</code></em>
+ big.</p>
+<p>The optional <em class="parameter"><code>params</code></em>
+ can specify the prefix and padding for the memory. If
+<a href="/usr/share/gtk-doc/html/glibglib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a> is passed, no flags, no extra prefix/padding and a default alignment is
+used.</p>
+<p>The prefix/padding will be filled with 0 if flags contains
+<a class="link" href="GstMemory.html#GST-MEMORY-FLAG-ZERO-PREFIXED:CAPS"><span class="type">GST_MEMORY_FLAG_ZERO_PREFIXED</span></a> and <a class="link" href="GstMemory.html#GST-MEMORY-FLAG-ZERO-PADDED:CAPS"><span class="type">GST_MEMORY_FLAG_ZERO_PADDED</span></a> respectively.</p>
+<p>When <em class="parameter"><code>allocator</code></em>
+ is <a href="/usr/share/gtk-doc/html/glibglib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a>, the default allocator will be used.</p>
+<p>The alignment in <em class="parameter"><code>params</code></em>
+ is given as a bitmask so that <em class="parameter"><code>align</code></em>
+ + 1 equals
+the amount of bytes to align to. For example, to align to 8 bytes,
+use an alignment of 7.</p>
+<div class="refsect3">
+<a name="gst-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> a <a class="link" href="GstAllocator.html" title="GstAllocator"><span class="type">GstAllocator</span></a> to use. </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>size</p></td>
+<td class="parameter_description"><p>size of the visible memory area</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>params</p></td>
+<td class="parameter_description"><p> optional parameters. </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-allocator-alloc.returns"></a><h4>Returns</h4>
+<p> a new <a class="link" href="GstMemory.html" title="GstMemory"><span class="type">GstMemory</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">
@@ -220,6 +407,30 @@
 <pre class="programlisting"><span class="returnvalue">void</span>
 gst_allocator_free (<em class="parameter"><code><a class="link" href="GstAllocator.html" title="GstAllocator"><span class="type">GstAllocator</span></a> *allocator</code></em>,
                     <em class="parameter"><code><a class="link" href="GstMemory.html" title="GstMemory"><span class="type">GstMemory</span></a> *memory</code></em>);</pre>
+<p>Free <em class="parameter"><code>memory</code></em>
+ that was previously allocated with <a class="link" href="GstAllocator.html#gst-allocator-alloc" title="gst_allocator_alloc ()"><code class="function">gst_allocator_alloc()</code></a>.</p>
+<div class="refsect3">
+<a name="gst-allocator-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>allocator</p></td>
+<td class="parameter_description"><p> a <a class="link" href="GstAllocator.html" title="GstAllocator"><span class="type">GstAllocator</span></a> to use. </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>memory</p></td>
+<td class="parameter_description"><p> the memory to free. </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">
@@ -232,6 +443,67 @@
                         <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 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>Allocate a new memory block that wraps the given <em class="parameter"><code>data</code></em>
+.</p>
+<p>The prefix/padding must be filled with 0 if <em class="parameter"><code>flags</code></em>
+ contains
+<a class="link" href="GstMemory.html#GST-MEMORY-FLAG-ZERO-PREFIXED:CAPS"><span class="type">GST_MEMORY_FLAG_ZERO_PREFIXED</span></a> and <a class="link" href="GstMemory.html#GST-MEMORY-FLAG-ZERO-PADDED:CAPS"><span class="type">GST_MEMORY_FLAG_ZERO_PADDED</span></a> respectively.</p>
+<div class="refsect3">
+<a name="gst-memory-new-wrapped.parameters"></a><h4>Parameters</h4>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
+<colgroup>
+<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="GstMemory.html#GstMemoryFlags" title="enum GstMemoryFlags"><span class="type">GstMemoryFlags</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
+wrap. </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][<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>maxsize</p></td>
+<td class="parameter_description"><p>allocated size of <em class="parameter"><code>data</code></em>
+</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>offset</p></td>
+<td class="parameter_description"><p>offset in <em class="parameter"><code>data</code></em>
+</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>size</p></td>
+<td class="parameter_description"><p>size of valid data</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"><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>notify</p></td>
+<td class="parameter_description"><p> called with <em class="parameter"><code>user_data</code></em>
+when the memory is freed. </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="The callback is valid until first called."><span class="acronym">scope async</span></acronym>][<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 class="refsect3">
+<a name="gst-memory-new-wrapped.returns"></a><h4>Returns</h4>
+<p> a new <a class="link" href="GstMemory.html" title="GstMemory"><span class="type">GstMemory</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>
 </div>
 <div class="refsect1">
@@ -240,6 +512,8 @@
 <a name="gst-memory-alignment"></a><h3>gst_memory_alignment</h3>
 <pre class="programlisting">GST_EXPORT gsize gst_memory_alignment;
 </pre>
+<p>The default memory alignment in bytes - 1
+an alignment of 7 would be the same as what <code class="function">malloc()</code> guarantees.</p>
 </div>
 <hr>
 <div class="refsect2">
@@ -256,6 +530,58 @@
   GstMemoryUnmapFullFunction mem_unmap_full;
 } GstAllocator;
 </pre>
+<p>The <a class="link" href="GstAllocator.html" title="GstAllocator"><span class="type">GstAllocator</span></a> is used to create new memory.</p>
+<div class="refsect3">
+<a name="GstAllocator.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="GstMemory.html#GstMemoryMapFunction" title="GstMemoryMapFunction ()"><span class="type">GstMemoryMapFunction</span></a> <em class="structfield"><code><a name="GstAllocator-struct.mem-map"></a>mem_map</code></em>;</p></td>
+<td class="struct_member_description"><p>the implementation of the GstMemoryMapFunction</p></td>
+<td class="struct_member_annotations"> </td>
+</tr>
+<tr>
+<td class="struct_member_name"><p><a class="link" href="GstMemory.html#GstMemoryUnmapFunction" title="GstMemoryUnmapFunction ()"><span class="type">GstMemoryUnmapFunction</span></a> <em class="structfield"><code><a name="GstAllocator-struct.mem-unmap"></a>mem_unmap</code></em>;</p></td>
+<td class="struct_member_description"><p>the implementation of the GstMemoryUnmapFunction</p></td>
+<td class="struct_member_annotations"> </td>
+</tr>
+<tr>
+<td class="struct_member_name"><p><a class="link" href="GstMemory.html#GstMemoryCopyFunction" title="GstMemoryCopyFunction ()"><span class="type">GstMemoryCopyFunction</span></a> <em class="structfield"><code><a name="GstAllocator-struct.mem-copy"></a>mem_copy</code></em>;</p></td>
+<td class="struct_member_description"><p>the implementation of the GstMemoryCopyFunction</p></td>
+<td class="struct_member_annotations"> </td>
+</tr>
+<tr>
+<td class="struct_member_name"><p><a class="link" href="GstMemory.html#GstMemoryShareFunction" title="GstMemoryShareFunction ()"><span class="type">GstMemoryShareFunction</span></a> <em class="structfield"><code><a name="GstAllocator-struct.mem-share"></a>mem_share</code></em>;</p></td>
+<td class="struct_member_description"><p>the implementation of the GstMemoryShareFunction</p></td>
+<td class="struct_member_annotations"> </td>
+</tr>
+<tr>
+<td class="struct_member_name"><p><a class="link" href="GstMemory.html#GstMemoryIsSpanFunction" title="GstMemoryIsSpanFunction ()"><span class="type">GstMemoryIsSpanFunction</span></a> <em class="structfield"><code><a name="GstAllocator-struct.mem-is-span"></a>mem_is_span</code></em>;</p></td>
+<td class="struct_member_description"><p>the implementation of the GstMemoryIsSpanFunction</p></td>
+<td class="struct_member_annotations"> </td>
+</tr>
+<tr>
+<td class="struct_member_name"><p><a class="link" href="GstMemory.html#GstMemoryMapFullFunction" title="GstMemoryMapFullFunction ()"><span class="type">GstMemoryMapFullFunction</span></a> <em class="structfield"><code><a name="GstAllocator-struct.mem-map-full"></a>mem_map_full</code></em>;</p></td>
+<td class="struct_member_description"><p>the implementation of the GstMemoryMapFullFunction.
+Will be used instead of <em class="parameter"><code>mem_map</code></em>
+if present. (Since 1.6)</p></td>
+<td class="struct_member_annotations"> </td>
+</tr>
+<tr>
+<td class="struct_member_name"><p><a class="link" href="GstMemory.html#GstMemoryUnmapFullFunction" title="GstMemoryUnmapFullFunction ()"><span class="type">GstMemoryUnmapFullFunction</span></a> <em class="structfield"><code><a name="GstAllocator-struct.mem-unmap-full"></a>mem_unmap_full</code></em>;</p></td>
+<td class="struct_member_description"><p>the implementation of the GstMemoryUnmapFullFunction.
+Will be used instead of <em class="parameter"><code>mem_unmap</code></em>
+if present. (Since 1.6)</p></td>
+<td class="struct_member_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
 </div>
 <hr>
 <div class="refsect2">
@@ -268,10 +594,39 @@
   void         (*free)       (GstAllocator *allocator, GstMemory *memory);
 };
 </pre>
+<p>The <a class="link" href="GstAllocator.html" title="GstAllocator"><span class="type">GstAllocator</span></a> is used to create new memory.</p>
+<div class="refsect3">
+<a name="GstAllocatorClass.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="GstObject.html#GstObjectClass" title="struct GstObjectClass"><span class="type">GstObjectClass</span></a> <em class="structfield"><code><a name="GstAllocatorClass.object-class"></a>object_class</code></em>;</p></td>
+<td class="struct_member_description"><p>Object parent class</p></td>
+<td class="struct_member_annotations"> </td>
+</tr>
+<tr>
+<td class="struct_member_name"><p><em class="structfield"><code><a name="GstAllocatorClass.alloc"></a>alloc</code></em> ()</p></td>
+<td class="struct_member_description"><p>implementation that acquires memory</p></td>
+<td class="struct_member_annotations"> </td>
+</tr>
+<tr>
+<td class="struct_member_name"><p><em class="structfield"><code><a name="GstAllocatorClass.free"></a>free</code></em> ()</p></td>
+<td class="struct_member_description"><p>implementation that releases memory</p></td>
+<td class="struct_member_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
 </div>
 <hr>
 <div class="refsect2">
 <a name="GstAllocatorFlags"></a><h3>enum GstAllocatorFlags</h3>
+<p>Flags for allocators.</p>
 <div class="refsect3">
 <a name="GstAllocatorFlags.members"></a><h4>Members</h4>
 <div class="informaltable"><table class="informaltable" width="100%" border="0">
@@ -283,13 +638,17 @@
 <tbody>
 <tr>
 <td class="enum_member_name"><p><a name="GST-ALLOCATOR-FLAG-CUSTOM-ALLOC:CAPS"></a>GST_ALLOCATOR_FLAG_CUSTOM_ALLOC</p></td>
-<td> </td>
-<td> </td>
+<td class="enum_member_description">
+<p>The allocator has a custom alloc function.</p>
+</td>
+<td class="enum_member_annotations"> </td>
 </tr>
 <tr>
 <td class="enum_member_name"><p><a name="GST-ALLOCATOR-FLAG-LAST:CAPS"></a>GST_ALLOCATOR_FLAG_LAST</p></td>
-<td> </td>
-<td> </td>
+<td class="enum_member_description">
+<p>first flag that can be used for custom purposes</p>
+</td>
+<td class="enum_member_annotations"> </td>
 </tr>
 </tbody>
 </table></div>
@@ -305,14 +664,52 @@
   gsize          padding;
 };
 </pre>
+<p>Parameters to control the allocation of memory</p>
+<div class="refsect3">
+<a name="GstAllocationParams.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="GstMemory.html#GstMemoryFlags" title="enum GstMemoryFlags"><span class="type">GstMemoryFlags</span></a> <em class="structfield"><code><a name="GstAllocationParams-struct.flags"></a>flags</code></em>;</p></td>
+<td class="struct_member_description"><p>flags to control allocation</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="GstAllocationParams-struct.align"></a>align</code></em>;</p></td>
+<td class="struct_member_description"><p>the desired alignment of the memory</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="GstAllocationParams-struct.prefix"></a>prefix</code></em>;</p></td>
+<td class="struct_member_description"><p>the desired prefix</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="GstAllocationParams-struct.padding"></a>padding</code></em>;</p></td>
+<td class="struct_member_description"><p>the desired padding</p></td>
+<td class="struct_member_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
 </div>
 <hr>
 <div class="refsect2">
 <a name="GST-ALLOCATOR-SYSMEM:CAPS"></a><h3>GST_ALLOCATOR_SYSMEM</h3>
 <pre class="programlisting">#define GST_ALLOCATOR_SYSMEM   "SystemMemory"
 </pre>
+<p>The allocator name for the default system memory allocator</p>
 </div>
 </div>
+<div class="refsect1">
+<a name="GstAllocator.see-also"></a><h2>See Also</h2>
+<p><a class="link" href="GstMemory.html" title="GstMemory"><span class="type">GstMemory</span></a></p>
+</div>
 </div>
 <div class="footer">
 <hr>Generated by GTK-Doc V1.25</div>
diff --git a/docs/gst/html/GstBin.html b/docs/gst/html/GstBin.html
index 3190b4a..8687f53 100644
--- a/docs/gst/html/GstBin.html
+++ b/docs/gst/html/GstBin.html
@@ -31,7 +31,7 @@
 <div class="refnamediv"><table width="100%"><tr>
 <td valign="top">
 <h2><span class="refentrytitle"><a name="GstBin.top_of_page"></a>GstBin</span></h2>
-<p>GstBin</p>
+<p>GstBin — Base class and element that can contain other elements</p>
 </td>
 <td class="gallery_image" valign="top" align="right"></td>
 </tr></table></div>
@@ -311,6 +311,142 @@
 </div>
 <div class="refsect1">
 <a name="GstBin.description"></a><h2>Description</h2>
+<p><a class="link" href="GstBin.html" title="GstBin"><span class="type">GstBin</span></a> is an element that can contain other <a class="link" href="GstElement.html" title="GstElement"><span class="type">GstElement</span></a>, allowing them to be
+managed as a group.
+Pads from the child elements can be ghosted to the bin, see <a class="link" href="GstGhostPad.html" title="GstGhostPad"><span class="type">GstGhostPad</span></a>.
+This makes the bin look like any other elements and enables creation of
+higher-level abstraction elements.</p>
+<p>A new <a class="link" href="GstBin.html" title="GstBin"><span class="type">GstBin</span></a> is created with <a class="link" href="GstBin.html#gst-bin-new" title="gst_bin_new ()"><code class="function">gst_bin_new()</code></a>. Use a <a class="link" href="GstPipeline.html" title="GstPipeline"><span class="type">GstPipeline</span></a> instead if you
+want to create a toplevel bin because a normal bin doesn't have a bus or
+handle clock distribution of its own.</p>
+<p>After the bin has been created you will typically add elements to it with
+<a class="link" href="GstBin.html#gst-bin-add" title="gst_bin_add ()"><code class="function">gst_bin_add()</code></a>. You can remove elements with <a class="link" href="GstBin.html#gst-bin-remove" title="gst_bin_remove ()"><code class="function">gst_bin_remove()</code></a>.</p>
+<p>An element can be retrieved from a bin with <a class="link" href="GstBin.html#gst-bin-get-by-name" title="gst_bin_get_by_name ()"><code class="function">gst_bin_get_by_name()</code></a>, using the
+elements name. <a class="link" href="GstBin.html#gst-bin-get-by-name-recurse-up" title="gst_bin_get_by_name_recurse_up ()"><code class="function">gst_bin_get_by_name_recurse_up()</code></a> is mainly used for internal
+purposes and will query the parent bins when the element is not found in the
+current bin.</p>
+<p>An iterator of elements in a bin can be retrieved with
+<a class="link" href="GstBin.html#gst-bin-iterate-elements" title="gst_bin_iterate_elements ()"><code class="function">gst_bin_iterate_elements()</code></a>. Various other iterators exist to retrieve the
+elements in a bin.</p>
+<p>gst_object_unref() is used to drop your reference to the bin.</p>
+<p>The <a class="link" href="GstBin.html#GstBin-element-added" title="The “element-added” signal"><span class="type">“element-added”</span></a> signal is fired whenever a new element is added to
+the bin. Likewise the <a class="link" href="GstBin.html#GstBin-element-removed" title="The “element-removed” signal"><span class="type">“element-removed”</span></a> signal is fired whenever an
+element is removed from the bin.</p>
+<div class="refsect2">
+<a name="id-1.3.6.10.9"></a><h3>Notes</h3>
+<p>
+A <a class="link" href="GstBin.html" title="GstBin"><span class="type">GstBin</span></a> internally intercepts every <a class="link" href="GstMessage.html" title="GstMessage"><span class="type">GstMessage</span></a> posted by its children and
+implements the following default behaviour for each of them:
+</p>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
+<col align="left" valign="top">
+<col>
+</colgroup>
+<tbody>
+<tr>
+<td><p><span class="term">GST_MESSAGE_EOS</span></p></td>
+<td><p>This message is only posted by sinks in the PLAYING
+    state. If all sinks posted the EOS message, this bin will post and EOS
+    message upwards.</p></td>
+</tr>
+<tr>
+<td><p><span class="term">GST_MESSAGE_SEGMENT_START</span></p></td>
+<td><p>just collected and never forwarded upwards.
+    The messages are used to decide when all elements have completed playback
+    of their segment.</p></td>
+</tr>
+<tr>
+<td><p><span class="term">GST_MESSAGE_SEGMENT_DONE</span></p></td>
+<td><p> Is posted by <a class="link" href="GstBin.html" title="GstBin"><span class="type">GstBin</span></a> when all elements that posted
+    a SEGMENT_START have posted a SEGMENT_DONE.</p></td>
+</tr>
+<tr>
+<td><p><span class="term">GST_MESSAGE_DURATION_CHANGED</span></p></td>
+<td><p> Is posted by an element that detected a change
+    in the stream duration. The default bin behaviour is to clear any
+    cached duration values so that the next duration query will perform
+    a full duration recalculation. The duration change is posted to the
+    application so that it can refetch the new duration with a duration
+    query. Note that these messages can be posted before the bin is
+    prerolled, in which case the duration query might fail.
+    </p></td>
+</tr>
+<tr>
+<td><p><span class="term">GST_MESSAGE_CLOCK_LOST</span></p></td>
+<td><p> This message is posted by an element when it
+    can no longer provide a clock. The default bin behaviour is to
+    check if the lost clock was the one provided by the bin. If so and
+    the bin is currently in the PLAYING state, the message is forwarded to
+    the bin parent.
+    This message is also generated when a clock provider is removed from
+    the bin. If this message is received by the application, it should
+    PAUSE the pipeline and set it back to PLAYING to force a new clock
+    distribution.
+    </p></td>
+</tr>
+<tr>
+<td><p><span class="term">GST_MESSAGE_CLOCK_PROVIDE</span></p></td>
+<td><p> This message is generated when an element
+    can provide a clock. This mostly happens when a new clock
+    provider is added to the bin. The default behaviour of the bin is to
+    mark the currently selected clock as dirty, which will perform a clock
+    recalculation the next time the bin is asked to provide a clock.
+    This message is never sent tot the application but is forwarded to
+    the parent of the bin.
+    </p></td>
+</tr>
+<tr>
+<td><p><span class="term">OTHERS</span></p></td>
+<td><p> posted upwards.</p></td>
+</tr>
+</tbody>
+</table></div>
+<p>
+
+
+A <a class="link" href="GstBin.html" title="GstBin"><span class="type">GstBin</span></a> implements the following default behaviour for answering to a
+<a class="link" href="GstQuery.html" title="GstQuery"><span class="type">GstQuery</span></a>:
+</p>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
+<col align="left" valign="top">
+<col>
+</colgroup>
+<tbody>
+<tr>
+<td><p><span class="term">GST_QUERY_DURATION</span></p></td>
+<td><p>If the query has been asked before with the same format
+    and the bin is a toplevel bin (ie. has no parent),
+    use the cached previous value. If no previous value was cached, the
+    query is sent to all sink elements in the bin and the MAXIMUM of all
+    values is returned. If the bin is a toplevel bin the value is cached.
+    If no sinks are available in the bin, the query fails.
+    </p></td>
+</tr>
+<tr>
+<td><p><span class="term">GST_QUERY_POSITION</span></p></td>
+<td><p>The query is sent to all sink elements in the bin and the
+    MAXIMUM of all values is returned. If no sinks are available in the bin,
+    the query fails.
+    </p></td>
+</tr>
+<tr>
+<td><p><span class="term">OTHERS</span></p></td>
+<td><p>the query is forwarded to all sink elements, the result
+    of the first sink that answers the query successfully is returned. If no
+    sink is in the bin, the query fails.</p></td>
+</tr>
+</tbody>
+</table></div>
+<p>
+
+A <a class="link" href="GstBin.html" title="GstBin"><span class="type">GstBin</span></a> will by default forward any event sent to it to all sink elements.
+If all the sinks return <a href="/usr/share/gtk-doc/html/glibglib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a>, the bin will also return <a href="/usr/share/gtk-doc/html/glibglib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a>, else <a href="/usr/share/gtk-doc/html/glibglib-Standard-Macros.html#FALSE:CAPS"><code class="literal">FALSE</code></a> is
+returned. If no sinks are in the bin, the event handler will return <a href="/usr/share/gtk-doc/html/glibglib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a>.
+
+</p>
+</div>
 </div>
 <div class="refsect1">
 <a name="GstBin.functions_details"></a><h2>Functions</h2>
@@ -318,6 +454,27 @@
 <a name="gst-bin-new"></a><h3>gst_bin_new ()</h3>
 <pre class="programlisting"><a class="link" href="GstElement.html" title="GstElement"><span class="returnvalue">GstElement</span></a> *
 gst_bin_new (<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>Creates a new bin with the given name.</p>
+<div class="refsect3">
+<a name="gst-bin-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 new bin. </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-bin-new.returns"></a><h4>Returns</h4>
+<p> a new <a class="link" href="GstBin.html" title="GstBin"><span class="type">GstBin</span></a>. </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">
@@ -325,6 +482,45 @@
 <pre class="programlisting"><a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
 gst_bin_add (<em class="parameter"><code><a class="link" href="GstBin.html" title="GstBin"><span class="type">GstBin</span></a> *bin</code></em>,
              <em class="parameter"><code><a class="link" href="GstElement.html" title="GstElement"><span class="type">GstElement</span></a> *element</code></em>);</pre>
+<p>Adds the given element to the bin.  Sets the element's parent, and thus
+takes ownership of the element. An element can only be added to one bin.</p>
+<p>If the element's pads are linked to other pads, the pads will be unlinked
+before the element is added to the bin.</p>
+<div class="note">
+When you add an element to an already-running pipeline, you will have to
+take care to set the state of the newly-added element to the desired
+state (usually PLAYING or PAUSED, same you set the pipeline to originally)
+with <a class="link" href="GstElement.html#gst-element-set-state" title="gst_element_set_state ()"><code class="function">gst_element_set_state()</code></a>, or use <a class="link" href="GstElement.html#gst-element-sync-state-with-parent" title="gst_element_sync_state_with_parent ()"><code class="function">gst_element_sync_state_with_parent()</code></a>.
+The bin or pipeline will not take care of this for you.
+</div>
+<p>MT safe.</p>
+<div class="refsect3">
+<a name="gst-bin-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>bin</p></td>
+<td class="parameter_description"><p>a <a class="link" href="GstBin.html" title="GstBin"><span class="type">GstBin</span></a></p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>element</p></td>
+<td class="parameter_description"><p> the <a class="link" href="GstElement.html" title="GstElement"><span class="type">GstElement</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-bin-add.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 element could be added, <a href="/usr/share/gtk-doc/html/glibglib-Standard-Macros.html#FALSE:CAPS"><code class="literal">FALSE</code></a> if
+the bin does not want to accept the element.</p>
+</div>
 </div>
 <hr>
 <div class="refsect2">
@@ -332,6 +528,42 @@
 <pre class="programlisting"><a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
 gst_bin_remove (<em class="parameter"><code><a class="link" href="GstBin.html" title="GstBin"><span class="type">GstBin</span></a> *bin</code></em>,
                 <em class="parameter"><code><a class="link" href="GstElement.html" title="GstElement"><span class="type">GstElement</span></a> *element</code></em>);</pre>
+<p>Removes the element from the bin, unparenting it as well.
+Unparenting the element means that the element will be dereferenced,
+so if the bin holds the only reference to the element, the element
+will be freed in the process of removing it from the bin.  If you
+want the element to still exist after removing, you need to call
+<a class="link" href="GstObject.html#gst-object-ref" title="gst_object_ref ()"><code class="function">gst_object_ref()</code></a> before removing it from the bin.</p>
+<p>If the element's pads are linked to other pads, the pads will be unlinked
+before the element is removed from the bin.</p>
+<p>MT safe.</p>
+<div class="refsect3">
+<a name="gst-bin-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>bin</p></td>
+<td class="parameter_description"><p>a <a class="link" href="GstBin.html" title="GstBin"><span class="type">GstBin</span></a></p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>element</p></td>
+<td class="parameter_description"><p> the <a class="link" href="GstElement.html" title="GstElement"><span class="type">GstElement</span></a> to remove. </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-bin-remove.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 element could be removed, <a href="/usr/share/gtk-doc/html/glibglib-Standard-Macros.html#FALSE:CAPS"><code class="literal">FALSE</code></a> if
+the bin does not want to remove the element.</p>
+</div>
 </div>
 <hr>
 <div class="refsect2">
@@ -339,6 +571,38 @@
 <pre class="programlisting"><a class="link" href="GstElement.html" title="GstElement"><span class="returnvalue">GstElement</span></a> *
 gst_bin_get_by_name (<em class="parameter"><code><a class="link" href="GstBin.html" title="GstBin"><span class="type">GstBin</span></a> *bin</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>Gets the element with the given name from a bin. This
+function recurses into child bins.</p>
+<p>Returns <a href="/usr/share/gtk-doc/html/glibglib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a> if no element with the given name is found in the bin.</p>
+<p>MT safe.  Caller owns returned reference.</p>
+<div class="refsect3">
+<a name="gst-bin-get-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>bin</p></td>
+<td class="parameter_description"><p>a <a class="link" href="GstBin.html" title="GstBin"><span class="type">GstBin</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 element name to search for</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<div class="refsect3">
+<a name="gst-bin-get-by-name.returns"></a><h4>Returns</h4>
+<p> the <a class="link" href="GstElement.html" title="GstElement"><span class="type">GstElement</span></a> with the given
+name, 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>][<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>
 </div>
 <hr>
 <div class="refsect2">
@@ -346,6 +610,39 @@
 <pre class="programlisting"><a class="link" href="GstElement.html" title="GstElement"><span class="returnvalue">GstElement</span></a> *
 gst_bin_get_by_name_recurse_up (<em class="parameter"><code><a class="link" href="GstBin.html" title="GstBin"><span class="type">GstBin</span></a> *bin</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>Gets the element with the given name from this bin. If the
+element is not found, a recursion is performed on the parent bin.</p>
+<p>Returns <a href="/usr/share/gtk-doc/html/glibglib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a> if:</p>
+<div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; "><li class="listitem"><p>no element with the given name is found in the bin</p></li></ul></div>
+<p>MT safe.  Caller owns returned reference.</p>
+<div class="refsect3">
+<a name="gst-bin-get-by-name-recurse-up.parameters"></a><h4>Parameters</h4>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
+<colgroup>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
+</colgroup>
+<tbody>
+<tr>
+<td class="parameter_name"><p>bin</p></td>
+<td class="parameter_description"><p>a <a class="link" href="GstBin.html" title="GstBin"><span class="type">GstBin</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 element name to search for</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<div class="refsect3">
+<a name="gst-bin-get-by-name-recurse-up.returns"></a><h4>Returns</h4>
+<p> the <a class="link" href="GstElement.html" title="GstElement"><span class="type">GstElement</span></a> with the given
+name, 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>][<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>
 </div>
 <hr>
 <div class="refsect2">
@@ -353,36 +650,191 @@
 <pre class="programlisting"><a class="link" href="GstElement.html" title="GstElement"><span class="returnvalue">GstElement</span></a> *
 gst_bin_get_by_interface (<em class="parameter"><code><a class="link" href="GstBin.html" title="GstBin"><span class="type">GstBin</span></a> *bin</code></em>,
                           <em class="parameter"><code><a href="/usr/share/gtk-doc/html/gobjectgobject-Type-Information.html#GType"><span class="type">GType</span></a> iface</code></em>);</pre>
+<p>Looks for an element inside the bin that implements the given
+interface. If such an element is found, it returns the element.
+You can cast this element to the given interface afterwards.  If you want
+all elements that implement the interface, use
+<a class="link" href="GstBin.html#gst-bin-iterate-all-by-interface" title="gst_bin_iterate_all_by_interface ()"><code class="function">gst_bin_iterate_all_by_interface()</code></a>. This function recurses into child bins.</p>
+<p>MT safe.  Caller owns returned reference.</p>
+<div class="refsect3">
+<a name="gst-bin-get-by-interface.parameters"></a><h4>Parameters</h4>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
+<colgroup>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
+</colgroup>
+<tbody>
+<tr>
+<td class="parameter_name"><p>bin</p></td>
+<td class="parameter_description"><p>a <a class="link" href="GstBin.html" title="GstBin"><span class="type">GstBin</span></a></p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>iface</p></td>
+<td class="parameter_description"><p>the <a href="/usr/share/gtk-doc/html/gobjectgobject-Type-Information.html#GType"><span class="type">GType</span></a> of an interface</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<div class="refsect3">
+<a name="gst-bin-get-by-interface.returns"></a><h4>Returns</h4>
+<p> A <a class="link" href="GstElement.html" title="GstElement"><span class="type">GstElement</span></a> inside the bin implementing the interface. </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-bin-iterate-elements"></a><h3>gst_bin_iterate_elements ()</h3>
 <pre class="programlisting"><a class="link" href="gstreamer-GstIterator.html#GstIterator" title="struct GstIterator"><span class="returnvalue">GstIterator</span></a> *
 gst_bin_iterate_elements (<em class="parameter"><code><a class="link" href="GstBin.html" title="GstBin"><span class="type">GstBin</span></a> *bin</code></em>);</pre>
+<p>Gets an iterator for the elements in this bin.</p>
+<p>MT safe.  Caller owns returned value.</p>
+<div class="refsect3">
+<a name="gst-bin-iterate-elements.parameters"></a><h4>Parameters</h4>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
+<colgroup>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
+</colgroup>
+<tbody><tr>
+<td class="parameter_name"><p>bin</p></td>
+<td class="parameter_description"><p>a <a class="link" href="GstBin.html" title="GstBin"><span class="type">GstBin</span></a></p></td>
+<td class="parameter_annotations"> </td>
+</tr></tbody>
+</table></div>
+</div>
+<div class="refsect3">
+<a name="gst-bin-iterate-elements.returns"></a><h4>Returns</h4>
+<p> a <a class="link" href="gstreamer-GstIterator.html#GstIterator" title="struct GstIterator"><span class="type">GstIterator</span></a> of <a class="link" href="GstElement.html" title="GstElement"><span class="type">GstElement</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>][<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>
 </div>
 <hr>
 <div class="refsect2">
 <a name="gst-bin-iterate-recurse"></a><h3>gst_bin_iterate_recurse ()</h3>
 <pre class="programlisting"><a class="link" href="gstreamer-GstIterator.html#GstIterator" title="struct GstIterator"><span class="returnvalue">GstIterator</span></a> *
 gst_bin_iterate_recurse (<em class="parameter"><code><a class="link" href="GstBin.html" title="GstBin"><span class="type">GstBin</span></a> *bin</code></em>);</pre>
+<p>Gets an iterator for the elements in this bin.
+This iterator recurses into GstBin children.</p>
+<p>MT safe.  Caller owns returned value.</p>
+<div class="refsect3">
+<a name="gst-bin-iterate-recurse.parameters"></a><h4>Parameters</h4>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
+<colgroup>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
+</colgroup>
+<tbody><tr>
+<td class="parameter_name"><p>bin</p></td>
+<td class="parameter_description"><p>a <a class="link" href="GstBin.html" title="GstBin"><span class="type">GstBin</span></a></p></td>
+<td class="parameter_annotations"> </td>
+</tr></tbody>
+</table></div>
+</div>
+<div class="refsect3">
+<a name="gst-bin-iterate-recurse.returns"></a><h4>Returns</h4>
+<p> a <a class="link" href="gstreamer-GstIterator.html#GstIterator" title="struct GstIterator"><span class="type">GstIterator</span></a> of <a class="link" href="GstElement.html" title="GstElement"><span class="type">GstElement</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>][<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>
 </div>
 <hr>
 <div class="refsect2">
 <a name="gst-bin-iterate-sinks"></a><h3>gst_bin_iterate_sinks ()</h3>
 <pre class="programlisting"><a class="link" href="gstreamer-GstIterator.html#GstIterator" title="struct GstIterator"><span class="returnvalue">GstIterator</span></a> *
 gst_bin_iterate_sinks (<em class="parameter"><code><a class="link" href="GstBin.html" title="GstBin"><span class="type">GstBin</span></a> *bin</code></em>);</pre>
+<p>Gets an iterator for all elements in the bin that have the
+<a class="link" href="GstElement.html#GST-ELEMENT-FLAG-SINK:CAPS"><span class="type">GST_ELEMENT_FLAG_SINK</span></a> flag set.</p>
+<p>MT safe.  Caller owns returned value.</p>
+<div class="refsect3">
+<a name="gst-bin-iterate-sinks.parameters"></a><h4>Parameters</h4>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
+<colgroup>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
+</colgroup>
+<tbody><tr>
+<td class="parameter_name"><p>bin</p></td>
+<td class="parameter_description"><p>a <a class="link" href="GstBin.html" title="GstBin"><span class="type">GstBin</span></a></p></td>
+<td class="parameter_annotations"> </td>
+</tr></tbody>
+</table></div>
+</div>
+<div class="refsect3">
+<a name="gst-bin-iterate-sinks.returns"></a><h4>Returns</h4>
+<p> a <a class="link" href="gstreamer-GstIterator.html#GstIterator" title="struct GstIterator"><span class="type">GstIterator</span></a> of <a class="link" href="GstElement.html" title="GstElement"><span class="type">GstElement</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>][<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>
 </div>
 <hr>
 <div class="refsect2">
 <a name="gst-bin-iterate-sorted"></a><h3>gst_bin_iterate_sorted ()</h3>
 <pre class="programlisting"><a class="link" href="gstreamer-GstIterator.html#GstIterator" title="struct GstIterator"><span class="returnvalue">GstIterator</span></a> *
 gst_bin_iterate_sorted (<em class="parameter"><code><a class="link" href="GstBin.html" title="GstBin"><span class="type">GstBin</span></a> *bin</code></em>);</pre>
+<p>Gets an iterator for the elements in this bin in topologically
+sorted order. This means that the elements are returned from
+the most downstream elements (sinks) to the sources.</p>
+<p>This function is used internally to perform the state changes
+of the bin elements and for clock selection.</p>
+<p>MT safe.  Caller owns returned value.</p>
+<div class="refsect3">
+<a name="gst-bin-iterate-sorted.parameters"></a><h4>Parameters</h4>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
+<colgroup>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
+</colgroup>
+<tbody><tr>
+<td class="parameter_name"><p>bin</p></td>
+<td class="parameter_description"><p>a <a class="link" href="GstBin.html" title="GstBin"><span class="type">GstBin</span></a></p></td>
+<td class="parameter_annotations"> </td>
+</tr></tbody>
+</table></div>
+</div>
+<div class="refsect3">
+<a name="gst-bin-iterate-sorted.returns"></a><h4>Returns</h4>
+<p> a <a class="link" href="gstreamer-GstIterator.html#GstIterator" title="struct GstIterator"><span class="type">GstIterator</span></a> of <a class="link" href="GstElement.html" title="GstElement"><span class="type">GstElement</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>][<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>
 </div>
 <hr>
 <div class="refsect2">
 <a name="gst-bin-iterate-sources"></a><h3>gst_bin_iterate_sources ()</h3>
 <pre class="programlisting"><a class="link" href="gstreamer-GstIterator.html#GstIterator" title="struct GstIterator"><span class="returnvalue">GstIterator</span></a> *
 gst_bin_iterate_sources (<em class="parameter"><code><a class="link" href="GstBin.html" title="GstBin"><span class="type">GstBin</span></a> *bin</code></em>);</pre>
+<p>Gets an iterator for all elements in the bin that have the
+<a class="link" href="GstElement.html#GST-ELEMENT-FLAG-SOURCE:CAPS"><span class="type">GST_ELEMENT_FLAG_SOURCE</span></a> flag set.</p>
+<p>MT safe.  Caller owns returned value.</p>
+<div class="refsect3">
+<a name="gst-bin-iterate-sources.parameters"></a><h4>Parameters</h4>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
+<colgroup>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
+</colgroup>
+<tbody><tr>
+<td class="parameter_name"><p>bin</p></td>
+<td class="parameter_description"><p>a <a class="link" href="GstBin.html" title="GstBin"><span class="type">GstBin</span></a></p></td>
+<td class="parameter_annotations"> </td>
+</tr></tbody>
+</table></div>
+</div>
+<div class="refsect3">
+<a name="gst-bin-iterate-sources.returns"></a><h4>Returns</h4>
+<p> a <a class="link" href="gstreamer-GstIterator.html#GstIterator" title="struct GstIterator"><span class="type">GstIterator</span></a> of <a class="link" href="GstElement.html" title="GstElement"><span class="type">GstElement</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>][<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>
 </div>
 <hr>
 <div class="refsect2">
@@ -390,12 +842,72 @@
 <pre class="programlisting"><a class="link" href="gstreamer-GstIterator.html#GstIterator" title="struct GstIterator"><span class="returnvalue">GstIterator</span></a> *
 gst_bin_iterate_all_by_interface (<em class="parameter"><code><a class="link" href="GstBin.html" title="GstBin"><span class="type">GstBin</span></a> *bin</code></em>,
                                   <em class="parameter"><code><a href="/usr/share/gtk-doc/html/gobjectgobject-Type-Information.html#GType"><span class="type">GType</span></a> iface</code></em>);</pre>
+<p>Looks for all elements inside the bin that implements the given
+interface. You can safely cast all returned elements to the given interface.
+The function recurses inside child bins. The iterator will yield a series
+of <a class="link" href="GstElement.html" title="GstElement"><span class="type">GstElement</span></a> that should be unreffed after use.</p>
+<p>MT safe.  Caller owns returned value.</p>
+<div class="refsect3">
+<a name="gst-bin-iterate-all-by-interface.parameters"></a><h4>Parameters</h4>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
+<colgroup>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
+</colgroup>
+<tbody>
+<tr>
+<td class="parameter_name"><p>bin</p></td>
+<td class="parameter_description"><p>a <a class="link" href="GstBin.html" title="GstBin"><span class="type">GstBin</span></a></p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>iface</p></td>
+<td class="parameter_description"><p>the <a href="/usr/share/gtk-doc/html/gobjectgobject-Type-Information.html#GType"><span class="type">GType</span></a> of an interface</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<div class="refsect3">
+<a name="gst-bin-iterate-all-by-interface.returns"></a><h4>Returns</h4>
+<p> a <a class="link" href="gstreamer-GstIterator.html#GstIterator" title="struct GstIterator"><span class="type">GstIterator</span></a> of <a class="link" href="GstElement.html" title="GstElement"><span class="type">GstElement</span></a>
+for all elements in the bin implementing the given interface,
+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>][<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>
 </div>
 <hr>
 <div class="refsect2">
 <a name="gst-bin-recalculate-latency"></a><h3>gst_bin_recalculate_latency ()</h3>
 <pre class="programlisting"><a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
 gst_bin_recalculate_latency (<em class="parameter"><code><a class="link" href="GstBin.html" title="GstBin"><span class="type">GstBin</span></a> *bin</code></em>);</pre>
+<p>Query <em class="parameter"><code>bin</code></em>
+ for the current latency using and reconfigures this latency to all the
+elements with a LATENCY event.</p>
+<p>This method is typically called on the pipeline when a <a class="link" href="GstMessage.html#GST-MESSAGE-LATENCY:CAPS"><span class="type">GST_MESSAGE_LATENCY</span></a>
+is posted on the bus.</p>
+<p>This function simply emits the 'do-latency' signal so any custom latency
+calculations will be performed.</p>
+<div class="refsect3">
+<a name="gst-bin-recalculate-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>bin</p></td>
+<td class="parameter_description"><p>a <a class="link" href="GstBin.html" title="GstBin"><span class="type">GstBin</span></a></p></td>
+<td class="parameter_annotations"> </td>
+</tr></tbody>
+</table></div>
+</div>
+<div class="refsect3">
+<a name="gst-bin-recalculate-latency.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 latency could be queried and reconfigured.</p>
+</div>
 </div>
 <hr>
 <div class="refsect2">
@@ -404,6 +916,36 @@
 gst_bin_add_many (<em class="parameter"><code><a class="link" href="GstBin.html" title="GstBin"><span class="type">GstBin</span></a> *bin</code></em>,
                   <em class="parameter"><code><a class="link" href="GstElement.html" title="GstElement"><span class="type">GstElement</span></a> *element_1</code></em>,
                   <em class="parameter"><code>...</code></em>);</pre>
+<p>Adds a <a href="/usr/share/gtk-doc/html/glibglib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a>-terminated list of elements to a bin.  This function is
+equivalent to calling <a class="link" href="GstBin.html#gst-bin-add" title="gst_bin_add ()"><code class="function">gst_bin_add()</code></a> for each member of the list. The return
+value of each <a class="link" href="GstBin.html#gst-bin-add" title="gst_bin_add ()"><code class="function">gst_bin_add()</code></a> is ignored.</p>
+<div class="refsect3">
+<a name="gst-bin-add-many.parameters"></a><h4>Parameters</h4>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
+<colgroup>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
+</colgroup>
+<tbody>
+<tr>
+<td class="parameter_name"><p>bin</p></td>
+<td class="parameter_description"><p>a <a class="link" href="GstBin.html" title="GstBin"><span class="type">GstBin</span></a></p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>element_1</p></td>
+<td class="parameter_description"><p> the <a class="link" href="GstElement.html" title="GstElement"><span class="type">GstElement</span></a> element to add to the bin. </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>...</p></td>
+<td class="parameter_description"><p> additional elements to add to the bin. </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">
@@ -412,6 +954,35 @@
 gst_bin_remove_many (<em class="parameter"><code><a class="link" href="GstBin.html" title="GstBin"><span class="type">GstBin</span></a> *bin</code></em>,
                      <em class="parameter"><code><a class="link" href="GstElement.html" title="GstElement"><span class="type">GstElement</span></a> *element_1</code></em>,
                      <em class="parameter"><code>...</code></em>);</pre>
+<p>Remove a list of elements from a bin. This function is equivalent
+to calling <a class="link" href="GstBin.html#gst-bin-remove" title="gst_bin_remove ()"><code class="function">gst_bin_remove()</code></a> with each member of the list.</p>
+<div class="refsect3">
+<a name="gst-bin-remove-many.parameters"></a><h4>Parameters</h4>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
+<colgroup>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
+</colgroup>
+<tbody>
+<tr>
+<td class="parameter_name"><p>bin</p></td>
+<td class="parameter_description"><p>a <a class="link" href="GstBin.html" title="GstBin"><span class="type">GstBin</span></a></p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>element_1</p></td>
+<td class="parameter_description"><p> the first <a class="link" href="GstElement.html" title="GstElement"><span class="type">GstElement</span></a> to remove from the bin. </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>...</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 list of elements to remove from the bin. </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">
@@ -419,36 +990,161 @@
 <pre class="programlisting"><a class="link" href="GstPad.html" title="GstPad"><span class="returnvalue">GstPad</span></a> *
 gst_bin_find_unlinked_pad (<em class="parameter"><code><a class="link" href="GstBin.html" title="GstBin"><span class="type">GstBin</span></a> *bin</code></em>,
                            <em class="parameter"><code><a class="link" href="GstPad.html#GstPadDirection" title="enum GstPadDirection"><span class="type">GstPadDirection</span></a> direction</code></em>);</pre>
+<p>Recursively looks for elements with an unlinked pad of the given
+direction within the specified bin and returns an unlinked pad
+if one is found, or <a href="/usr/share/gtk-doc/html/glibglib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a> otherwise. If a pad is found, the caller
+owns a reference to it and should use <a class="link" href="GstObject.html#gst-object-unref" title="gst_object_unref ()"><code class="function">gst_object_unref()</code></a> on the
+pad when it is not needed any longer.</p>
+<div class="refsect3">
+<a name="gst-bin-find-unlinked-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>bin</p></td>
+<td class="parameter_description"><p>bin in which to look for elements with unlinked pads</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>direction</p></td>
+<td class="parameter_description"><p>whether to look for an unlinked source or sink pad</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<div class="refsect3">
+<a name="gst-bin-find-unlinked-pad.returns"></a><h4>Returns</h4>
+<p> unlinked pad of the given
+direction, <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>][<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>
 </div>
 <hr>
 <div class="refsect2">
 <a name="gst-bin-sync-children-states"></a><h3>gst_bin_sync_children_states ()</h3>
 <pre class="programlisting"><a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
 gst_bin_sync_children_states (<em class="parameter"><code><a class="link" href="GstBin.html" title="GstBin"><span class="type">GstBin</span></a> *bin</code></em>);</pre>
+<p>Synchronizes the state of every child of <em class="parameter"><code>bin</code></em>
+ with the state
+of <em class="parameter"><code>bin</code></em>
+. See also <a class="link" href="GstElement.html#gst-element-sync-state-with-parent" title="gst_element_sync_state_with_parent ()"><code class="function">gst_element_sync_state_with_parent()</code></a>.</p>
+<div class="refsect3">
+<a name="gst-bin-sync-children-states.parameters"></a><h4>Parameters</h4>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
+<colgroup>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
+</colgroup>
+<tbody><tr>
+<td class="parameter_name"><p>bin</p></td>
+<td class="parameter_description"><p>a <a class="link" href="GstBin.html" title="GstBin"><span class="type">GstBin</span></a></p></td>
+<td class="parameter_annotations"> </td>
+</tr></tbody>
+</table></div>
+</div>
+<div class="refsect3">
+<a name="gst-bin-sync-children-states.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 syncing the state was successful for all children,
+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: <a class="link" href="ix03.html#api-index-1.6">1.6</a></p>
 </div>
 <hr>
 <div class="refsect2">
 <a name="GST-BIN-IS-NO-RESYNC:CAPS"></a><h3>GST_BIN_IS_NO_RESYNC()</h3>
 <pre class="programlisting">#define GST_BIN_IS_NO_RESYNC(bin)        (GST_OBJECT_FLAG_IS_SET(bin,GST_BIN_FLAG_NO_RESYNC))
 </pre>
+<p>Check if <em class="parameter"><code>bin</code></em>
+ will resync its state change when elements are added and
+removed.</p>
+<div class="refsect3">
+<a name="GST-BIN-IS-NO-RESYNC.parameters"></a><h4>Parameters</h4>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
+<colgroup>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
+</colgroup>
+<tbody><tr>
+<td class="parameter_name"><p>bin</p></td>
+<td class="parameter_description"><p>A <a class="link" href="GstBin.html" title="GstBin"><span class="type">GstBin</span></a></p></td>
+<td class="parameter_annotations"> </td>
+</tr></tbody>
+</table></div>
+</div>
+<p class="since">Since: <a class="link" href="ix08.html#api-index-1.0.5">1.0.5</a></p>
 </div>
 <hr>
 <div class="refsect2">
 <a name="GST-BIN-CHILDREN:CAPS"></a><h3>GST_BIN_CHILDREN()</h3>
 <pre class="programlisting">#define GST_BIN_CHILDREN(bin)		(GST_BIN_CAST(bin)-&gt;children)
 </pre>
+<p>Gets the list with children in a bin.</p>
+<div class="refsect3">
+<a name="GST-BIN-CHILDREN.parameters"></a><h4>Parameters</h4>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
+<colgroup>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
+</colgroup>
+<tbody><tr>
+<td class="parameter_name"><p>bin</p></td>
+<td class="parameter_description"><p>a <a class="link" href="GstBin.html" title="GstBin"><span class="type">GstBin</span></a></p></td>
+<td class="parameter_annotations"> </td>
+</tr></tbody>
+</table></div>
+</div>
 </div>
 <hr>
 <div class="refsect2">
 <a name="GST-BIN-CHILDREN-COOKIE:CAPS"></a><h3>GST_BIN_CHILDREN_COOKIE()</h3>
 <pre class="programlisting">#define GST_BIN_CHILDREN_COOKIE(bin) (GST_BIN_CAST(bin)-&gt;children_cookie)
 </pre>
+<p>Gets the children cookie that watches the children list.</p>
+<div class="refsect3">
+<a name="GST-BIN-CHILDREN-COOKIE.parameters"></a><h4>Parameters</h4>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
+<colgroup>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
+</colgroup>
+<tbody><tr>
+<td class="parameter_name"><p>bin</p></td>
+<td class="parameter_description"><p>a <a class="link" href="GstBin.html" title="GstBin"><span class="type">GstBin</span></a></p></td>
+<td class="parameter_annotations"> </td>
+</tr></tbody>
+</table></div>
+</div>
 </div>
 <hr>
 <div class="refsect2">
 <a name="GST-BIN-NUMCHILDREN:CAPS"></a><h3>GST_BIN_NUMCHILDREN()</h3>
 <pre class="programlisting">#define GST_BIN_NUMCHILDREN(bin) (GST_BIN_CAST(bin)-&gt;numchildren)
 </pre>
+<p>Gets the number of children in a bin.</p>
+<div class="refsect3">
+<a name="GST-BIN-NUMCHILDREN.parameters"></a><h4>Parameters</h4>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
+<colgroup>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
+</colgroup>
+<tbody><tr>
+<td class="parameter_name"><p>bin</p></td>
+<td class="parameter_description"><p>a <a class="link" href="GstBin.html" title="GstBin"><span class="type">GstBin</span></a></p></td>
+<td class="parameter_annotations"> </td>
+</tr></tbody>
+</table></div>
+</div>
 </div>
 </div>
 <div class="refsect1">
@@ -473,6 +1169,72 @@
   GstElement    *clock_provider;
 };
 </pre>
+<p>The GstBin base class. Subclasses can access these fields provided
+the LOCK is taken.</p>
+<div class="refsect3">
+<a name="GstBin.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="GstBin-struct.numchildren"></a>numchildren</code></em>;</p></td>
+<td class="struct_member_description"><p>the number of children in this bin</p></td>
+<td class="struct_member_annotations"> </td>
+</tr>
+<tr>
+<td class="struct_member_name"><p><a href="/usr/share/gtk-doc/html/glibglib-Doubly-Linked-Lists.html#GList"><span class="type">GList</span></a> *<em class="structfield"><code><a name="GstBin-struct.children"></a>children</code></em>;</p></td>
+<td class="struct_member_description"><p> the list of children in this bin. </p></td>
+<td class="struct_member_annotations"><span class="annotation">[<acronym title="Generics and defining elements of containers and arrays."><span class="acronym">element-type</span></acronym> Gst.Element]</span></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="GstBin-struct.children-cookie"></a>children_cookie</code></em>;</p></td>
+<td class="struct_member_description"><p>updated whenever <em class="parameter"><code>children</code></em>
+changes</p></td>
+<td class="struct_member_annotations"> </td>
+</tr>
+<tr>
+<td class="struct_member_name"><p><a class="link" href="GstBus.html" title="GstBus"><span class="type">GstBus</span></a> *<em class="structfield"><code><a name="GstBin-struct.child-bus"></a>child_bus</code></em>;</p></td>
+<td class="struct_member_description"><p>internal bus for handling child messages</p></td>
+<td class="struct_member_annotations"> </td>
+</tr>
+<tr>
+<td class="struct_member_name"><p><a href="/usr/share/gtk-doc/html/glibglib-Doubly-Linked-Lists.html#GList"><span class="type">GList</span></a> *<em class="structfield"><code><a name="GstBin-struct.messages"></a>messages</code></em>;</p></td>
+<td class="struct_member_description"><p> queued and cached messages. </p></td>
+<td class="struct_member_annotations"><span class="annotation">[<acronym title="Generics and defining elements of containers and arrays."><span class="acronym">element-type</span></acronym> Gst.Message]</span></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="GstBin-struct.polling"></a>polling</code></em>;</p></td>
+<td class="struct_member_description"><p>the bin is currently calculating its 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#gboolean"><span class="type">gboolean</span></a> <em class="structfield"><code><a name="GstBin-struct.state-dirty"></a>state_dirty</code></em>;</p></td>
+<td class="struct_member_description"><p>the bin needs to recalculate its state (deprecated)</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="GstBin-struct.clock-dirty"></a>clock_dirty</code></em>;</p></td>
+<td class="struct_member_description"><p>the bin needs to select a new clock</p></td>
+<td class="struct_member_annotations"> </td>
+</tr>
+<tr>
+<td class="struct_member_name"><p><a class="link" href="GstClock.html" title="GstClock"><span class="type">GstClock</span></a> *<em class="structfield"><code><a name="GstBin-struct.provided-clock"></a>provided_clock</code></em>;</p></td>
+<td class="struct_member_description"><p>the last clock selected</p></td>
+<td class="struct_member_annotations"> </td>
+</tr>
+<tr>
+<td class="struct_member_name"><p><a class="link" href="GstElement.html" title="GstElement"><span class="type">GstElement</span></a> *<em class="structfield"><code><a name="GstBin-struct.clock-provider"></a>clock_provider</code></em>;</p></td>
+<td class="struct_member_description"><p>the element that provided <em class="parameter"><code>provided_clock</code></em>
+</p></td>
+<td class="struct_member_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
 </div>
 <hr>
 <div class="refsect2">
@@ -491,10 +1253,65 @@
   void          (*deep_element_removed) (GstBin *bin, GstBin *sub_bin, GstElement *child);
 };
 </pre>
+<p>Subclasses can override the <em class="parameter"><code>add_element</code></em>
+ and <em class="parameter"><code>remove_element</code></em>
+ to
+update the list of children in the bin.</p>
+<p>The <em class="parameter"><code>handle_message</code></em>
+ method can be overridden to implement custom
+message handling.  <em class="parameter"><code>handle_message</code></em>
+ takes ownership of the message, just like
+<a class="link" href="GstElement.html#gst-element-post-message" title="gst_element_post_message ()"><span class="type">gst_element_post_message</span></a>.</p>
+<p>The <em class="parameter"><code>element_added_deep</code></em>
+ vfunc will be called when a new element has been
+added to any bin inside this bin, so it will also be called if a new child
+was added to a sub-bin of this bin. <a class="link" href="GstBin.html" title="GstBin"><span class="type">GstBin</span></a> implementations that override
+this message should chain up to the parent class implementation so the
+element-added-deep signal is emitted on all parents.</p>
+<div class="refsect3">
+<a name="GstBinClass.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="GstBinClass.add-element"></a>add_element</code></em> ()</p></td>
+<td class="struct_member_description"><p>method to add an element to a bin</p></td>
+<td class="struct_member_annotations"> </td>
+</tr>
+<tr>
+<td class="struct_member_name"><p><em class="structfield"><code><a name="GstBinClass.remove-element"></a>remove_element</code></em> ()</p></td>
+<td class="struct_member_description"><p>method to remove an element from a bin</p></td>
+<td class="struct_member_annotations"> </td>
+</tr>
+<tr>
+<td class="struct_member_name"><p><em class="structfield"><code><a name="GstBinClass.handle-message"></a>handle_message</code></em> ()</p></td>
+<td class="struct_member_description"><p>method to handle a message from the children</p></td>
+<td class="struct_member_annotations"> </td>
+</tr>
+<tr>
+<td class="struct_member_name"><p><em class="structfield"><code><a name="GstBinClass.deep-element-added"></a>deep_element_added</code></em> ()</p></td>
+<td> </td>
+<td> </td>
+</tr>
+<tr>
+<td class="struct_member_name"><p><em class="structfield"><code><a name="GstBinClass.deep-element-removed"></a>deep_element_removed</code></em> ()</p></td>
+<td> </td>
+<td> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
 </div>
 <hr>
 <div class="refsect2">
 <a name="GstBinFlags"></a><h3>enum GstBinFlags</h3>
+<p>GstBinFlags are a set of flags specific to bins. Most are set/used
+internally. They can be checked using the <a class="link" href="GstObject.html#GST-OBJECT-FLAG-IS-SET:CAPS" title="GST_OBJECT_FLAG_IS_SET()"><code class="function">GST_OBJECT_FLAG_IS_SET()</code></a> macro,
+and (un)set using <a class="link" href="GstObject.html#GST-OBJECT-FLAG-SET:CAPS" title="GST_OBJECT_FLAG_SET()"><code class="function">GST_OBJECT_FLAG_SET()</code></a> and <a class="link" href="GstObject.html#GST-OBJECT-FLAG-UNSET:CAPS" title="GST_OBJECT_FLAG_UNSET()"><code class="function">GST_OBJECT_FLAG_UNSET()</code></a>.</p>
 <div class="refsect3">
 <a name="GstBinFlags.members"></a><h4>Members</h4>
 <div class="informaltable"><table class="informaltable" width="100%" border="0">
@@ -506,13 +1323,19 @@
 <tbody>
 <tr>
 <td class="enum_member_name"><p><a name="GST-BIN-FLAG-NO-RESYNC:CAPS"></a>GST_BIN_FLAG_NO_RESYNC</p></td>
-<td> </td>
-<td> </td>
+<td class="enum_member_description">
+<p>don't resync a state change when elements are
+            added or linked in the bin (Since 1.0.5)</p>
+</td>
+<td class="enum_member_annotations"> </td>
 </tr>
 <tr>
 <td class="enum_member_name"><p><a name="GST-BIN-FLAG-LAST:CAPS"></a>GST_BIN_FLAG_LAST</p></td>
-<td> </td>
-<td> </td>
+<td class="enum_member_description">
+<p>the last enum in the series of flags for bins.
+Derived classes can use this as first value in a list of flags.</p>
+</td>
+<td class="enum_member_annotations"> </td>
 </tr>
 </tbody>
 </table></div>
@@ -524,7 +1347,9 @@
 <div class="refsect2">
 <a name="GstBin--async-handling"></a><h3>The <code class="literal">“async-handling”</code> property</h3>
 <pre class="programlisting">  “async-handling”           <a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a></pre>
-<p>The bin will handle Asynchronous state changes.</p>
+<p>If set to <a href="/usr/share/gtk-doc/html/glibglib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a>, the bin will handle asynchronous state changes.
+This should be used only if the bin subclass is modifying the state
+of its children on its own.</p>
 <p>Flags: Read / Write</p>
 <p>Default value: FALSE</p>
 </div>
@@ -532,7 +1357,13 @@
 <div class="refsect2">
 <a name="GstBin--message-forward"></a><h3>The <code class="literal">“message-forward”</code> property</h3>
 <pre class="programlisting">  “message-forward”          <a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a></pre>
-<p>Forwards all children messages.</p>
+<p>Forward all children messages, even those that would normally be filtered by
+the bin. This can be interesting when one wants to be notified of the EOS
+state of individual elements, for example.</p>
+<p>The messages are converted to an ELEMENT message with the bin as the
+source. The structure of the message is named 'GstBinForwarded' and contains
+a field named 'message' of type GST_TYPE_MESSAGE that contains the original
+forwarded message.</p>
 <p>Flags: Read / Write</p>
 <p>Default value: FALSE</p>
 </div>
@@ -542,46 +1373,203 @@
 <div class="refsect2">
 <a name="GstBin-deep-element-added"></a><h3>The <code class="literal">“deep-element-added”</code> signal</h3>
 <pre class="programlisting"><span class="returnvalue">void</span>
-user_function (<a class="link" href="GstBin.html" title="GstBin"><span class="type">GstBin</span></a>     *gstbin,
-               <a class="link" href="GstBin.html" title="GstBin"><span class="type">GstBin</span></a>     *arg1,
-               <a class="link" href="GstElement.html" title="GstElement"><span class="type">GstElement</span></a> *arg2,
+user_function (<a class="link" href="GstBin.html" title="GstBin"><span class="type">GstBin</span></a>     *bin,
+               <a class="link" href="GstBin.html" title="GstBin"><span class="type">GstBin</span></a>     *sub_bin,
+               <a class="link" href="GstElement.html" title="GstElement"><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>Will be emitted after the element was added to sub_bin.</p>
+<div class="refsect3">
+<a name="GstBin-deep-element-added.parameters"></a><h4>Parameters</h4>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
+<colgroup>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
+</colgroup>
+<tbody>
+<tr>
+<td class="parameter_name"><p>bin</p></td>
+<td class="parameter_description"><p>the <a class="link" href="GstBin.html" title="GstBin"><span class="type">GstBin</span></a></p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>sub_bin</p></td>
+<td class="parameter_description"><p>the <a class="link" href="GstBin.html" title="GstBin"><span class="type">GstBin</span></a> the element was added to</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>element</p></td>
+<td class="parameter_description"><p>the <a class="link" href="GstElement.html" title="GstElement"><span class="type">GstElement</span></a> that was added to <em class="parameter"><code>sub_bin</code></em>
+</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-FIRST:CAPS">Run First</a></p>
+<p class="since">Since: 1.10</p>
 </div>
 <hr>
 <div class="refsect2">
 <a name="GstBin-deep-element-removed"></a><h3>The <code class="literal">“deep-element-removed”</code> signal</h3>
 <pre class="programlisting"><span class="returnvalue">void</span>
-user_function (<a class="link" href="GstBin.html" title="GstBin"><span class="type">GstBin</span></a>     *gstbin,
-               <a class="link" href="GstBin.html" title="GstBin"><span class="type">GstBin</span></a>     *arg1,
-               <a class="link" href="GstElement.html" title="GstElement"><span class="type">GstElement</span></a> *arg2,
+user_function (<a class="link" href="GstBin.html" title="GstBin"><span class="type">GstBin</span></a>     *bin,
+               <a class="link" href="GstBin.html" title="GstBin"><span class="type">GstBin</span></a>     *sub_bin,
+               <a class="link" href="GstElement.html" title="GstElement"><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>Will be emitted after the element was removed from sub_bin.</p>
+<div class="refsect3">
+<a name="GstBin-deep-element-removed.parameters"></a><h4>Parameters</h4>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
+<colgroup>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
+</colgroup>
+<tbody>
+<tr>
+<td class="parameter_name"><p>bin</p></td>
+<td class="parameter_description"><p>the <a class="link" href="GstBin.html" title="GstBin"><span class="type">GstBin</span></a></p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>sub_bin</p></td>
+<td class="parameter_description"><p>the <a class="link" href="GstBin.html" title="GstBin"><span class="type">GstBin</span></a> the element was removed from</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>element</p></td>
+<td class="parameter_description"><p>the <a class="link" href="GstElement.html" title="GstElement"><span class="type">GstElement</span></a> that was removed from <em class="parameter"><code>sub_bin</code></em>
+</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-FIRST:CAPS">Run First</a></p>
+<p class="since">Since: 1.10</p>
 </div>
 <hr>
 <div class="refsect2">
 <a name="GstBin-do-latency"></a><h3>The <code class="literal">“do-latency”</code> signal</h3>
 <pre class="programlisting"><a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
-user_function (<a class="link" href="GstBin.html" title="GstBin"><span class="type">GstBin</span></a>  *gstbin,
+user_function (<a class="link" href="GstBin.html" title="GstBin"><span class="type">GstBin</span></a>  *bin,
                <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 bin needs to perform latency calculations. This
+signal is only emitted for toplevel bins or when async-handling is
+enabled.</p>
+<p>Only one signal handler is invoked. If no signals are connected, the
+default handler is invoked, which will query and distribute the lowest
+possible latency to all sinks.</p>
+<p>Connect to this signal if the default latency calculations are not
+sufficient, like when you need different latencies for different sinks in
+the same pipeline.</p>
+<div class="refsect3">
+<a name="GstBin-do-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>bin</p></td>
+<td class="parameter_description"><p>the <a class="link" href="GstBin.html" title="GstBin"><span class="type">GstBin</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="GstBin-element-added"></a><h3>The <code class="literal">“element-added”</code> signal</h3>
 <pre class="programlisting"><span class="returnvalue">void</span>
-user_function (<a class="link" href="GstBin.html" title="GstBin"><span class="type">GstBin</span></a>     *gstbin,
-               <a class="link" href="GstElement.html" title="GstElement"><span class="type">GstElement</span></a> *arg1,
+user_function (<a class="link" href="GstBin.html" title="GstBin"><span class="type">GstBin</span></a>     *bin,
+               <a class="link" href="GstElement.html" title="GstElement"><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>Will be emitted after the element was added to the bin.</p>
+<div class="refsect3">
+<a name="GstBin-element-added.parameters"></a><h4>Parameters</h4>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
+<colgroup>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
+</colgroup>
+<tbody>
+<tr>
+<td class="parameter_name"><p>bin</p></td>
+<td class="parameter_description"><p>the <a class="link" href="GstBin.html" title="GstBin"><span class="type">GstBin</span></a></p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>element</p></td>
+<td class="parameter_description"><p>the <a class="link" href="GstElement.html" title="GstElement"><span class="type">GstElement</span></a> that was added to the bin</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-FIRST:CAPS">Run First</a></p>
 </div>
 <hr>
 <div class="refsect2">
 <a name="GstBin-element-removed"></a><h3>The <code class="literal">“element-removed”</code> signal</h3>
 <pre class="programlisting"><span class="returnvalue">void</span>
-user_function (<a class="link" href="GstBin.html" title="GstBin"><span class="type">GstBin</span></a>     *gstbin,
-               <a class="link" href="GstElement.html" title="GstElement"><span class="type">GstElement</span></a> *arg1,
+user_function (<a class="link" href="GstBin.html" title="GstBin"><span class="type">GstBin</span></a>     *bin,
+               <a class="link" href="GstElement.html" title="GstElement"><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>Will be emitted after the element was removed from the bin.</p>
+<div class="refsect3">
+<a name="GstBin-element-removed.parameters"></a><h4>Parameters</h4>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
+<colgroup>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
+</colgroup>
+<tbody>
+<tr>
+<td class="parameter_name"><p>bin</p></td>
+<td class="parameter_description"><p>the <a class="link" href="GstBin.html" title="GstBin"><span class="type">GstBin</span></a></p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>element</p></td>
+<td class="parameter_description"><p>the <a class="link" href="GstElement.html" title="GstElement"><span class="type">GstElement</span></a> that was removed from the bin</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-FIRST:CAPS">Run First</a></p>
 </div>
 </div>
diff --git a/docs/gst/html/GstBuffer.html b/docs/gst/html/GstBuffer.html
index 40eaf3c..e49229c 100644
--- a/docs/gst/html/GstBuffer.html
+++ b/docs/gst/html/GstBuffer.html
@@ -28,7 +28,7 @@
 <div class="refnamediv"><table width="100%"><tr>
 <td valign="top">
 <h2><span class="refentrytitle"><a name="GstBuffer.top_of_page"></a>GstBuffer</span></h2>
-<p>GstBuffer</p>
+<p>GstBuffer — Data-passing buffer type</p>
 </td>
 <td class="gallery_image" valign="top" align="right"></td>
 </tr></table></div>
@@ -570,6 +570,38 @@
 <a class="link" href="GstBuffer.html#gst-buffer-get-parent-buffer-meta" title="gst_buffer_get_parent_buffer_meta()">gst_buffer_get_parent_buffer_meta</a><span class="c_punctuation">()</span>
 </td>
 </tr>
+<tr>
+<td class="function_type">
+<a class="link" href="GstBuffer.html#GstBufferFlags" title="enum GstBufferFlags"><span class="returnvalue">GstBufferFlags</span></a>
+</td>
+<td class="function_name">
+<a class="link" href="GstBuffer.html#gst-buffer-get-flags" title="gst_buffer_get_flags ()">gst_buffer_get_flags</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="function_type">
+<a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
+</td>
+<td class="function_name">
+<a class="link" href="GstBuffer.html#gst-buffer-set-flags" title="gst_buffer_set_flags ()">gst_buffer_set_flags</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="function_type">
+<a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
+</td>
+<td class="function_name">
+<a class="link" href="GstBuffer.html#gst-buffer-unset-flags" title="gst_buffer_unset_flags ()">gst_buffer_unset_flags</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
+<tr>
+<td class="function_type">
+<a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
+</td>
+<td class="function_name">
+<a class="link" href="GstBuffer.html#gst-buffer-has-flags" title="gst_buffer_has_flags ()">gst_buffer_has_flags</a> <span class="c_punctuation">()</span>
+</td>
+</tr>
 </tbody>
 </table></div>
 </div>
@@ -625,6 +657,95 @@
 </div>
 <div class="refsect1">
 <a name="GstBuffer.description"></a><h2>Description</h2>
+<p>Buffers are the basic unit of data transfer in GStreamer. They contain the
+timing and offset along with other arbitrary metadata that is associated
+with the <a class="link" href="GstMemory.html" title="GstMemory"><span class="type">GstMemory</span></a> blocks that the buffer contains.</p>
+<p>Buffers are usually created with <a class="link" href="GstBuffer.html#gst-buffer-new" title="gst_buffer_new ()"><code class="function">gst_buffer_new()</code></a>. After a buffer has been
+created one will typically allocate memory for it and add it to the buffer.
+The following example creates a buffer that can hold a given video frame
+with a given width, height and bits per plane.</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</pre></td>
+        <td class="listing_code"><pre class="programlisting">GstBuffer <span class="gtkdoc opt">*</span>buffer<span class="gtkdoc opt">;</span>
+GstMemory <span class="gtkdoc opt">*</span>memory<span class="gtkdoc opt">;</span>
+gint size<span class="gtkdoc opt">,</span> width<span class="gtkdoc opt">,</span> height<span class="gtkdoc opt">,</span> bpp<span class="gtkdoc opt">;</span>
+<span class="gtkdoc opt">...</span>
+size <span class="gtkdoc opt">=</span> width <span class="gtkdoc opt">*</span> height <span class="gtkdoc opt">*</span> bpp<span class="gtkdoc opt">;</span>
+buffer <span class="gtkdoc opt">=</span> <span class="function"><a href="GstBuffer.html#gst-buffer-new">gst_buffer_new</a></span> <span class="gtkdoc opt">();</span>
+memory <span class="gtkdoc opt">=</span> <span class="function"><a href="GstAllocator.html#gst-allocator-alloc">gst_allocator_alloc</a></span> <span class="gtkdoc opt">(</span>NULL<span class="gtkdoc opt">,</span> size<span class="gtkdoc opt">,</span> NULL<span class="gtkdoc opt">);</span>
+<span class="function"><a href="GstBuffer.html#gst-buffer-insert-memory">gst_buffer_insert_memory</a></span> <span class="gtkdoc opt">(</span>buffer<span class="gtkdoc opt">, -</span><span class="number">1</span><span class="gtkdoc opt">,</span> memory<span class="gtkdoc opt">);</span>
+<span class="gtkdoc opt">...</span></pre></td>
+      </tr>
+    </tbody>
+  </table>
+</div>
+
+<p></p>
+<p>Alternatively, use <a class="link" href="GstBuffer.html#gst-buffer-new-allocate" title="gst_buffer_new_allocate ()"><code class="function">gst_buffer_new_allocate()</code></a> to create a buffer with
+preallocated data of a given size.</p>
+<p>Buffers can contain a list of <a class="link" href="GstMemory.html" title="GstMemory"><span class="type">GstMemory</span></a> objects. You can retrieve how many
+memory objects with <a class="link" href="GstBuffer.html#gst-buffer-n-memory" title="gst_buffer_n_memory ()"><code class="function">gst_buffer_n_memory()</code></a> and you can get a pointer
+to memory with <a class="link" href="GstBuffer.html#gst-buffer-peek-memory" title="gst_buffer_peek_memory ()"><code class="function">gst_buffer_peek_memory()</code></a></p>
+<p>A buffer will usually have timestamps, and a duration, but neither of these
+are guaranteed (they may be set to <a class="link" href="GstClock.html#GST-CLOCK-TIME-NONE:CAPS" title="GST_CLOCK_TIME_NONE"><span class="type">GST_CLOCK_TIME_NONE</span></a>). Whenever a
+meaningful value can be given for these, they should be set. The timestamps
+and duration are measured in nanoseconds (they are <a class="link" href="GstClock.html#GstClockTime" title="GstClockTime"><span class="type">GstClockTime</span></a> values).</p>
+<p>The buffer DTS refers to the timestamp when the buffer should be decoded and
+is usually monotonically increasing. The buffer PTS refers to the timestamp when
+the buffer content should be presented to the user and is not always
+monotonically increasing.</p>
+<p>A buffer can also have one or both of a start and an end offset. These are
+media-type specific. For video buffers, the start offset will generally be
+the frame number. For audio buffers, it will be the number of samples
+produced so far. For compressed data, it could be the byte offset in a
+source or destination file. Likewise, the end offset will be the offset of
+the end of the buffer. These can only be meaningfully interpreted if you
+know the media type of the buffer (the preceding CAPS event). Either or both
+can be set to <a class="link" href="GstBuffer.html#GST-BUFFER-OFFSET-NONE:CAPS" title="GST_BUFFER_OFFSET_NONE"><span class="type">GST_BUFFER_OFFSET_NONE</span></a>.</p>
+<p>gst_buffer_ref() is used to increase the refcount of a buffer. This must be
+done when you want to keep a handle to the buffer after pushing it to the
+next element. The buffer refcount determines the writability of the buffer, a
+buffer is only writable when the refcount is exactly 1, i.e. when the caller
+has the only reference to the buffer.</p>
+<p>To efficiently create a smaller buffer out of an existing one, you can
+use <a class="link" href="GstBuffer.html#gst-buffer-copy-region" title="gst_buffer_copy_region ()"><code class="function">gst_buffer_copy_region()</code></a>. This method tries to share the memory objects
+between the two buffers.</p>
+<p>If a plug-in wants to modify the buffer data or metadata in-place, it should
+first obtain a buffer that is safe to modify by using
+<a class="link" href="GstBuffer.html#gst-buffer-make-writable" title="gst_buffer_make_writable()"><code class="function">gst_buffer_make_writable()</code></a>.  This function is optimized so that a copy will
+only be made when it is necessary.</p>
+<p>Several flags of the buffer can be set and unset with the
+<a class="link" href="GstBuffer.html#GST-BUFFER-FLAG-SET:CAPS" title="GST_BUFFER_FLAG_SET()"><code class="function">GST_BUFFER_FLAG_SET()</code></a> and <a class="link" href="GstBuffer.html#GST-BUFFER-FLAG-UNSET:CAPS" title="GST_BUFFER_FLAG_UNSET()"><code class="function">GST_BUFFER_FLAG_UNSET()</code></a> macros. Use
+<a class="link" href="GstBuffer.html#GST-BUFFER-FLAG-IS-SET:CAPS" title="GST_BUFFER_FLAG_IS_SET()"><code class="function">GST_BUFFER_FLAG_IS_SET()</code></a> to test if a certain <a class="link" href="GstBuffer.html#GstBufferFlags" title="enum GstBufferFlags"><span class="type">GstBufferFlags</span></a> flag is set.</p>
+<p>Buffers can be efficiently merged into a larger buffer with
+<a class="link" href="GstBuffer.html#gst-buffer-append" title="gst_buffer_append ()"><code class="function">gst_buffer_append()</code></a>. Copying of memory will only be done when absolutely
+needed.</p>
+<p>Arbitrary extra metadata can be set on a buffer with <a class="link" href="GstBuffer.html#gst-buffer-add-meta" title="gst_buffer_add_meta ()"><code class="function">gst_buffer_add_meta()</code></a>.
+Metadata can be retrieved with <a class="link" href="GstBuffer.html#gst-buffer-get-meta" title="gst_buffer_get_meta ()"><code class="function">gst_buffer_get_meta()</code></a>. See also <a class="link" href="gstreamer-GstMeta.html#GstMeta" title="struct GstMeta"><span class="type">GstMeta</span></a></p>
+<p>An element should either unref the buffer or push it out on a src pad
+using <a class="link" href="GstPad.html#gst-pad-push" title="gst_pad_push ()"><code class="function">gst_pad_push()</code></a> (see <a class="link" href="GstPad.html" title="GstPad"><span class="type">GstPad</span></a>).</p>
+<p>Buffers are usually freed by unreffing them with <a class="link" href="GstBuffer.html#gst-buffer-unref" title="gst_buffer_unref ()"><code class="function">gst_buffer_unref()</code></a>. When
+the refcount drops to 0, any memory and metadata pointed to by the buffer is
+unreffed as well. Buffers allocated from a <a class="link" href="GstBufferPool.html" title="GstBufferPool"><span class="type">GstBufferPool</span></a> will be returned to
+the pool when the refcount drops to 0.</p>
+<p>The <a class="link" href="GstBuffer.html#GstParentBufferMeta" title="struct GstParentBufferMeta"><span class="type">GstParentBufferMeta</span></a> is a meta which can be attached to a <a class="link" href="GstBuffer.html" title="GstBuffer"><span class="type">GstBuffer</span></a>
+to hold a reference to another buffer that is only released when the child
+<a class="link" href="GstBuffer.html" title="GstBuffer"><span class="type">GstBuffer</span></a> is released.</p>
+<p>Typically, <a class="link" href="GstBuffer.html#GstParentBufferMeta" title="struct GstParentBufferMeta"><span class="type">GstParentBufferMeta</span></a> is used when the child buffer is directly
+using the <a class="link" href="GstMemory.html" title="GstMemory"><span class="type">GstMemory</span></a> of the parent buffer, and wants to prevent the parent
+buffer from being returned to a buffer pool until the <a class="link" href="GstMemory.html" title="GstMemory"><span class="type">GstMemory</span></a> is available
+for re-use. (Since 1.6)</p>
 </div>
 <div class="refsect1">
 <a name="GstBuffer.functions_details"></a><h2>Functions</h2>
@@ -632,102 +753,395 @@
 <a name="GST-BUFFER-FLAGS:CAPS"></a><h3>GST_BUFFER_FLAGS()</h3>
 <pre class="programlisting">#define GST_BUFFER_FLAGS(buf)                   GST_MINI_OBJECT_FLAGS(buf)
 </pre>
+<p>A flags word containing <a class="link" href="GstBuffer.html#GstBufferFlags" title="enum GstBufferFlags"><span class="type">GstBufferFlags</span></a> flags set on this buffer.</p>
+<div class="refsect3">
+<a name="GST-BUFFER-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>buf</p></td>
+<td class="parameter_description"><p>a <a class="link" href="GstBuffer.html" title="GstBuffer"><span class="type">GstBuffer</span></a>.</p></td>
+<td class="parameter_annotations"> </td>
+</tr></tbody>
+</table></div>
+</div>
 </div>
 <hr>
 <div class="refsect2">
 <a name="GST-BUFFER-FLAG-IS-SET:CAPS"></a><h3>GST_BUFFER_FLAG_IS_SET()</h3>
 <pre class="programlisting">#define GST_BUFFER_FLAG_IS_SET(buf,flag)        GST_MINI_OBJECT_FLAG_IS_SET (buf, flag)
 </pre>
+<p>Gives the status of a specific flag on a buffer.</p>
+<div class="refsect3">
+<a name="GST-BUFFER-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>buf</p></td>
+<td class="parameter_description"><p>a <a class="link" href="GstBuffer.html" title="GstBuffer"><span class="type">GstBuffer</span></a>.</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>flag</p></td>
+<td class="parameter_description"><p>the <a class="link" href="GstBuffer.html#GstBufferFlags" title="enum GstBufferFlags"><span class="type">GstBufferFlags</span></a> flag to check.</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
 </div>
 <hr>
 <div class="refsect2">
 <a name="GST-BUFFER-FLAG-SET:CAPS"></a><h3>GST_BUFFER_FLAG_SET()</h3>
 <pre class="programlisting">#define GST_BUFFER_FLAG_SET(buf,flag)           GST_MINI_OBJECT_FLAG_SET (buf, flag)
 </pre>
+<p>Sets a buffer flag on a buffer.</p>
+<div class="refsect3">
+<a name="GST-BUFFER-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>buf</p></td>
+<td class="parameter_description"><p>a <a class="link" href="GstBuffer.html" title="GstBuffer"><span class="type">GstBuffer</span></a>.</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>flag</p></td>
+<td class="parameter_description"><p>the <a class="link" href="GstBuffer.html#GstBufferFlags" title="enum GstBufferFlags"><span class="type">GstBufferFlags</span></a> flag to set.</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
 </div>
 <hr>
 <div class="refsect2">
 <a name="GST-BUFFER-FLAG-UNSET:CAPS"></a><h3>GST_BUFFER_FLAG_UNSET()</h3>
 <pre class="programlisting">#define GST_BUFFER_FLAG_UNSET(buf,flag)         GST_MINI_OBJECT_FLAG_UNSET (buf, flag)
 </pre>
+<p>Clears a buffer flag.</p>
+<div class="refsect3">
+<a name="GST-BUFFER-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>buf</p></td>
+<td class="parameter_description"><p>a <a class="link" href="GstBuffer.html" title="GstBuffer"><span class="type">GstBuffer</span></a>.</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>flag</p></td>
+<td class="parameter_description"><p>the <a class="link" href="GstBuffer.html#GstBufferFlags" title="enum GstBufferFlags"><span class="type">GstBufferFlags</span></a> flag to clear.</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
 </div>
 <hr>
 <div class="refsect2">
 <a name="GST-BUFFER-PTS:CAPS"></a><h3>GST_BUFFER_PTS()</h3>
 <pre class="programlisting">#define GST_BUFFER_PTS(buf)                     (GST_BUFFER_CAST(buf)-&gt;pts)
 </pre>
+<p>The presentation timestamp (pts) in nanoseconds (as a <a class="link" href="GstClock.html#GstClockTime" title="GstClockTime"><span class="type">GstClockTime</span></a>)
+of the data in the buffer. This is the timestamp when the media should be
+presented to the user.
+Value will be <a class="link" href="GstClock.html#GST-CLOCK-TIME-NONE:CAPS" title="GST_CLOCK_TIME_NONE"><code class="literal">GST_CLOCK_TIME_NONE</code></a> if the pts is unknown.</p>
+<div class="refsect3">
+<a name="GST-BUFFER-PTS.parameters"></a><h4>Parameters</h4>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
+<colgroup>
+<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 class="link" href="GstBuffer.html" title="GstBuffer"><span class="type">GstBuffer</span></a>.:</p></td>
+<td class="parameter_annotations"> </td>
+</tr></tbody>
+</table></div>
+</div>
 </div>
 <hr>
 <div class="refsect2">
 <a name="GST-BUFFER-DTS:CAPS"></a><h3>GST_BUFFER_DTS()</h3>
 <pre class="programlisting">#define GST_BUFFER_DTS(buf)                     (GST_BUFFER_CAST(buf)-&gt;dts)
 </pre>
+<p>The decoding timestamp (dts) in nanoseconds (as a <a class="link" href="GstClock.html#GstClockTime" title="GstClockTime"><span class="type">GstClockTime</span></a>)
+of the data in the buffer. This is the timestamp when the media should be
+decoded or processed otherwise.
+Value will be <a class="link" href="GstClock.html#GST-CLOCK-TIME-NONE:CAPS" title="GST_CLOCK_TIME_NONE"><code class="literal">GST_CLOCK_TIME_NONE</code></a> if the dts is unknown.</p>
+<div class="refsect3">
+<a name="GST-BUFFER-DTS.parameters"></a><h4>Parameters</h4>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
+<colgroup>
+<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 class="link" href="GstBuffer.html" title="GstBuffer"><span class="type">GstBuffer</span></a>.:</p></td>
+<td class="parameter_annotations"> </td>
+</tr></tbody>
+</table></div>
+</div>
 </div>
 <hr>
 <div class="refsect2">
 <a name="GST-BUFFER-DTS-OR-PTS:CAPS"></a><h3>GST_BUFFER_DTS_OR_PTS()</h3>
 <pre class="programlisting">#define GST_BUFFER_DTS_OR_PTS(buf)              (GST_BUFFER_DTS_IS_VALID(buf) ? GST_BUFFER_DTS(buf) : GST_BUFFER_PTS (buf))
 </pre>
+<p>Returns the buffer decoding timestamp (dts) if valid, else the buffer
+presentation time (pts)</p>
+<div class="refsect3">
+<a name="GST-BUFFER-DTS-OR-PTS.parameters"></a><h4>Parameters</h4>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
+<colgroup>
+<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 class="link" href="GstBuffer.html" title="GstBuffer"><span class="type">GstBuffer</span></a>.:</p></td>
+<td class="parameter_annotations"> </td>
+</tr></tbody>
+</table></div>
+</div>
+<p class="since">Since: 1.8</p>
 </div>
 <hr>
 <div class="refsect2">
 <a name="GST-BUFFER-DURATION:CAPS"></a><h3>GST_BUFFER_DURATION()</h3>
 <pre class="programlisting">#define GST_BUFFER_DURATION(buf)                (GST_BUFFER_CAST(buf)-&gt;duration)
 </pre>
+<p>The duration in nanoseconds (as a <a class="link" href="GstClock.html#GstClockTime" title="GstClockTime"><span class="type">GstClockTime</span></a>) of the data in the buffer.
+Value will be <a class="link" href="GstClock.html#GST-CLOCK-TIME-NONE:CAPS" title="GST_CLOCK_TIME_NONE"><code class="literal">GST_CLOCK_TIME_NONE</code></a> if the duration is unknown.</p>
+<div class="refsect3">
+<a name="GST-BUFFER-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>buf</p></td>
+<td class="parameter_description"><p>a <a class="link" href="GstBuffer.html" title="GstBuffer"><span class="type">GstBuffer</span></a>.</p></td>
+<td class="parameter_annotations"> </td>
+</tr></tbody>
+</table></div>
+</div>
 </div>
 <hr>
 <div class="refsect2">
 <a name="GST-BUFFER-OFFSET:CAPS"></a><h3>GST_BUFFER_OFFSET()</h3>
 <pre class="programlisting">#define GST_BUFFER_OFFSET(buf)                  (GST_BUFFER_CAST(buf)-&gt;offset)
 </pre>
+<p>The offset in the source file of the beginning of this buffer.</p>
+<div class="refsect3">
+<a name="GST-BUFFER-OFFSET.parameters"></a><h4>Parameters</h4>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
+<colgroup>
+<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 class="link" href="GstBuffer.html" title="GstBuffer"><span class="type">GstBuffer</span></a>.</p></td>
+<td class="parameter_annotations"> </td>
+</tr></tbody>
+</table></div>
+</div>
 </div>
 <hr>
 <div class="refsect2">
 <a name="GST-BUFFER-OFFSET-END:CAPS"></a><h3>GST_BUFFER_OFFSET_END()</h3>
 <pre class="programlisting">#define GST_BUFFER_OFFSET_END(buf)              (GST_BUFFER_CAST(buf)-&gt;offset_end)
 </pre>
+<p>The offset in the source file of the end of this buffer.</p>
+<div class="refsect3">
+<a name="GST-BUFFER-OFFSET-END.parameters"></a><h4>Parameters</h4>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
+<colgroup>
+<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 class="link" href="GstBuffer.html" title="GstBuffer"><span class="type">GstBuffer</span></a>.</p></td>
+<td class="parameter_annotations"> </td>
+</tr></tbody>
+</table></div>
+</div>
 </div>
 <hr>
 <div class="refsect2">
 <a name="GST-BUFFER-DURATION-IS-VALID:CAPS"></a><h3>GST_BUFFER_DURATION_IS_VALID()</h3>
 <pre class="programlisting">#define GST_BUFFER_DURATION_IS_VALID(buffer)    (GST_CLOCK_TIME_IS_VALID (GST_BUFFER_DURATION (buffer)))
 </pre>
+<p>Tests if the duration is known.</p>
+<div class="refsect3">
+<a name="GST-BUFFER-DURATION-IS-VALID.parameters"></a><h4>Parameters</h4>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
+<colgroup>
+<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 class="link" href="GstBuffer.html" title="GstBuffer"><span class="type">GstBuffer</span></a></p></td>
+<td class="parameter_annotations"> </td>
+</tr></tbody>
+</table></div>
+</div>
 </div>
 <hr>
 <div class="refsect2">
 <a name="GST-BUFFER-PTS-IS-VALID:CAPS"></a><h3>GST_BUFFER_PTS_IS_VALID()</h3>
 <pre class="programlisting">#define GST_BUFFER_PTS_IS_VALID(buffer)   (GST_CLOCK_TIME_IS_VALID (GST_BUFFER_PTS (buffer)))
 </pre>
+<p>Tests if the pts is known.</p>
+<div class="refsect3">
+<a name="GST-BUFFER-PTS-IS-VALID.parameters"></a><h4>Parameters</h4>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
+<colgroup>
+<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 class="link" href="GstBuffer.html" title="GstBuffer"><span class="type">GstBuffer</span></a></p></td>
+<td class="parameter_annotations"> </td>
+</tr></tbody>
+</table></div>
+</div>
 </div>
 <hr>
 <div class="refsect2">
 <a name="GST-BUFFER-DTS-IS-VALID:CAPS"></a><h3>GST_BUFFER_DTS_IS_VALID()</h3>
 <pre class="programlisting">#define GST_BUFFER_DTS_IS_VALID(buffer)   (GST_CLOCK_TIME_IS_VALID (GST_BUFFER_DTS (buffer)))
 </pre>
+<p>Tests if the dts is known.</p>
+<div class="refsect3">
+<a name="GST-BUFFER-DTS-IS-VALID.parameters"></a><h4>Parameters</h4>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
+<colgroup>
+<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 class="link" href="GstBuffer.html" title="GstBuffer"><span class="type">GstBuffer</span></a></p></td>
+<td class="parameter_annotations"> </td>
+</tr></tbody>
+</table></div>
+</div>
 </div>
 <hr>
 <div class="refsect2">
 <a name="GST-BUFFER-OFFSET-IS-VALID:CAPS"></a><h3>GST_BUFFER_OFFSET_IS_VALID()</h3>
 <pre class="programlisting">#define GST_BUFFER_OFFSET_IS_VALID(buffer)      (GST_BUFFER_OFFSET (buffer) != GST_BUFFER_OFFSET_NONE)
 </pre>
+<p>Tests if the start offset is known.</p>
+<div class="refsect3">
+<a name="GST-BUFFER-OFFSET-IS-VALID.parameters"></a><h4>Parameters</h4>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
+<colgroup>
+<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 class="link" href="GstBuffer.html" title="GstBuffer"><span class="type">GstBuffer</span></a></p></td>
+<td class="parameter_annotations"> </td>
+</tr></tbody>
+</table></div>
+</div>
 </div>
 <hr>
 <div class="refsect2">
 <a name="GST-BUFFER-OFFSET-END-IS-VALID:CAPS"></a><h3>GST_BUFFER_OFFSET_END_IS_VALID()</h3>
 <pre class="programlisting">#define GST_BUFFER_OFFSET_END_IS_VALID(buffer)  (GST_BUFFER_OFFSET_END (buffer) != GST_BUFFER_OFFSET_NONE)
 </pre>
+<p>Tests if the end offset is known.</p>
+<div class="refsect3">
+<a name="GST-BUFFER-OFFSET-END-IS-VALID.parameters"></a><h4>Parameters</h4>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
+<colgroup>
+<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 class="link" href="GstBuffer.html" title="GstBuffer"><span class="type">GstBuffer</span></a></p></td>
+<td class="parameter_annotations"> </td>
+</tr></tbody>
+</table></div>
+</div>
 </div>
 <hr>
 <div class="refsect2">
 <a name="GST-BUFFER-IS-DISCONT:CAPS"></a><h3>GST_BUFFER_IS_DISCONT()</h3>
 <pre class="programlisting">#define GST_BUFFER_IS_DISCONT(buffer)   (GST_BUFFER_FLAG_IS_SET (buffer, GST_BUFFER_FLAG_DISCONT))
 </pre>
+<p>Tests if the buffer marks a discontinuity in the stream.</p>
+<div class="refsect3">
+<a name="GST-BUFFER-IS-DISCONT.parameters"></a><h4>Parameters</h4>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
+<colgroup>
+<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 class="link" href="GstBuffer.html" title="GstBuffer"><span class="type">GstBuffer</span></a></p></td>
+<td class="parameter_annotations"> </td>
+</tr></tbody>
+</table></div>
+</div>
 </div>
 <hr>
 <div class="refsect2">
 <a name="gst-buffer-new"></a><h3>gst_buffer_new ()</h3>
 <pre class="programlisting"><a class="link" href="GstBuffer.html" title="GstBuffer"><span class="returnvalue">GstBuffer</span></a> *
 gst_buffer_new (<em class="parameter"><code><span class="type">void</span></code></em>);</pre>
+<p>Creates a newly allocated buffer without any data.</p>
+<p>MT safe.</p>
+<div class="refsect3">
+<a name="gst-buffer-new.returns"></a><h4>Returns</h4>
+<p> the new <a class="link" href="GstBuffer.html" title="GstBuffer"><span class="type">GstBuffer</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">
@@ -736,6 +1150,49 @@
 gst_buffer_new_allocate (<em class="parameter"><code><a class="link" href="GstAllocator.html" title="GstAllocator"><span class="type">GstAllocator</span></a> *allocator</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="GstAllocator.html#GstAllocationParams"><span class="type">GstAllocationParams</span></a> *params</code></em>);</pre>
+<p>Tries to create a newly allocated buffer with data of the given size and
+extra parameters from <em class="parameter"><code>allocator</code></em>
+. If the requested amount of memory can't be
+allocated, <a href="/usr/share/gtk-doc/html/glibglib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a> will be returned. The allocated buffer memory is not cleared.</p>
+<p>When <em class="parameter"><code>allocator</code></em>
+ is <a href="/usr/share/gtk-doc/html/glibglib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a>, the default memory allocator will be used.</p>
+<p>Note that when <em class="parameter"><code>size</code></em>
+ == 0, the buffer will not have memory associated with it.</p>
+<p>MT safe.</p>
+<div class="refsect3">
+<a name="gst-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>allocator</p></td>
+<td class="parameter_description"><p> the <a class="link" href="GstAllocator.html" title="GstAllocator"><span class="type">GstAllocator</span></a> to use, or <a href="/usr/share/gtk-doc/html/glibglib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a> to use the
+default allocator. </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>size</p></td>
+<td class="parameter_description"><p>the size in bytes of the new buffer's data.</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>params</p></td>
+<td class="parameter_description"><p> optional parameters. </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-buffer-new-allocate.returns"></a><h4>Returns</h4>
+<p> a new <a class="link" href="GstBuffer.html" title="GstBuffer"><span class="type">GstBuffer</span></a>, or <a href="/usr/share/gtk-doc/html/glibglib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a> if
+the memory couldn't be allocated. </p>
+<p><span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>][<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>
 </div>
 <hr>
 <div class="refsect2">
@@ -743,6 +1200,38 @@
 <pre class="programlisting"><a class="link" href="GstBuffer.html" title="GstBuffer"><span class="returnvalue">GstBuffer</span></a> *
 gst_buffer_new_wrapped (<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> size</code></em>);</pre>
+<p>Creates a new buffer that wraps the given <em class="parameter"><code>data</code></em>
+. The memory will be freed
+with g_free and will be marked writable.</p>
+<p>MT safe.</p>
+<div class="refsect3">
+<a name="gst-buffer-new-wrapped.parameters"></a><h4>Parameters</h4>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
+<colgroup>
+<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 wrap. </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][<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>allocated 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-buffer-new-wrapped.returns"></a><h4>Returns</h4>
+<p> a new <a class="link" href="GstBuffer.html" title="GstBuffer"><span class="type">GstBuffer</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">
@@ -755,18 +1244,131 @@
                              <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 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>Allocate a new buffer that wraps the given memory. <em class="parameter"><code>data</code></em>
+ must point to
+<em class="parameter"><code>maxsize</code></em>
+ of memory, the wrapped buffer will have the region from <em class="parameter"><code>offset</code></em>
+ and
+<em class="parameter"><code>size</code></em>
+ visible.</p>
+<p>When the buffer is destroyed, <em class="parameter"><code>notify</code></em>
+ will be called with <em class="parameter"><code>user_data</code></em>
+.</p>
+<p>The prefix/padding must be filled with 0 if <em class="parameter"><code>flags</code></em>
+ contains
+<a class="link" href="GstMemory.html#GST-MEMORY-FLAG-ZERO-PREFIXED:CAPS"><span class="type">GST_MEMORY_FLAG_ZERO_PREFIXED</span></a> and <a class="link" href="GstMemory.html#GST-MEMORY-FLAG-ZERO-PADDED:CAPS"><span class="type">GST_MEMORY_FLAG_ZERO_PADDED</span></a> respectively.</p>
+<div class="refsect3">
+<a name="gst-buffer-new-wrapped-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>flags</p></td>
+<td class="parameter_description"><p><a class="link" href="GstMemory.html#GstMemoryFlags" title="enum GstMemoryFlags"><span class="type">GstMemoryFlags</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 wrap. </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][<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>maxsize</p></td>
+<td class="parameter_description"><p>allocated size of <em class="parameter"><code>data</code></em>
+</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>offset</p></td>
+<td class="parameter_description"><p>offset in <em class="parameter"><code>data</code></em>
+</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>size</p></td>
+<td class="parameter_description"><p>size of valid data</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"><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>notify</p></td>
+<td class="parameter_description"><p> called with <em class="parameter"><code>user_data</code></em>
+when the memory is freed. </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="The callback is valid until first called."><span class="acronym">scope async</span></acronym>][<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 class="refsect3">
+<a name="gst-buffer-new-wrapped-full.returns"></a><h4>Returns</h4>
+<p> a new <a class="link" href="GstBuffer.html" title="GstBuffer"><span class="type">GstBuffer</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-buffer-ref"></a><h3>gst_buffer_ref ()</h3>
 <pre class="programlisting"><a class="link" href="GstBuffer.html" title="GstBuffer"><span class="returnvalue">GstBuffer</span></a> *
 gst_buffer_ref (<em class="parameter"><code><a class="link" href="GstBuffer.html" title="GstBuffer"><span class="type">GstBuffer</span></a> *buf</code></em>);</pre>
+<p>Increases the refcount of the given buffer by one.</p>
+<p>Note that the refcount affects the writability
+of <em class="parameter"><code>buf</code></em>
+ and its metadata, see <a class="link" href="GstBuffer.html#gst-buffer-is-writable" title="gst_buffer_is_writable()"><code class="function">gst_buffer_is_writable()</code></a>.
+It is important to note that keeping additional references to
+GstBuffer instances can potentially increase the number
+of memcpy operations in a pipeline.</p>
+<div class="refsect3">
+<a name="gst-buffer-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>buf</p></td>
+<td class="parameter_description"><p>a <a class="link" href="GstBuffer.html" title="GstBuffer"><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-ref.returns"></a><h4>Returns</h4>
+<p> <em class="parameter"><code>buf</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-buffer-unref"></a><h3>gst_buffer_unref ()</h3>
 <pre class="programlisting"><span class="returnvalue">void</span>
 gst_buffer_unref (<em class="parameter"><code><a class="link" href="GstBuffer.html" title="GstBuffer"><span class="type">GstBuffer</span></a> *buf</code></em>);</pre>
+<p>Decreases the refcount of the buffer. If the refcount reaches 0, the buffer
+with the associated metadata and memory will be freed.</p>
+<div class="refsect3">
+<a name="gst-buffer-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>buf</p></td>
+<td class="parameter_description"><p> a <a class="link" href="GstBuffer.html" title="GstBuffer"><span class="type">GstBuffer</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">
@@ -775,12 +1377,79 @@
 gst_buffer_get_sizes (<em class="parameter"><code><a class="link" href="GstBuffer.html" title="GstBuffer"><span class="type">GstBuffer</span></a> *buffer</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</code></em>,
                       <em class="parameter"><code><a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#gsize"><span class="type">gsize</span></a> *maxsize</code></em>);</pre>
+<p>Get the total size of the memory blocks in <em class="parameter"><code>b</code></em>
+.</p>
+<p>When not <a href="/usr/share/gtk-doc/html/glibglib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a>, <em class="parameter"><code>offset</code></em>
+ will contain the offset of the data in the
+first memory block in <em class="parameter"><code>buffer</code></em>
+ and <em class="parameter"><code>maxsize</code></em>
+ will contain the sum of
+the size and <em class="parameter"><code>offset</code></em>
+ and the amount of extra padding on the last
+memory block.  <em class="parameter"><code>offset</code></em>
+ and <em class="parameter"><code>maxsize</code></em>
+ can be used to resize the
+buffer memory blocks with <a class="link" href="GstBuffer.html#gst-buffer-resize" title="gst_buffer_resize ()"><code class="function">gst_buffer_resize()</code></a>.</p>
+<div class="refsect3">
+<a name="gst-buffer-get-sizes.parameters"></a><h4>Parameters</h4>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
+<colgroup>
+<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 class="link" href="GstBuffer.html" title="GstBuffer"><span class="type">GstBuffer</span></a>.</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>offset</p></td>
+<td class="parameter_description"><p> a pointer to the 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>maxsize</p></td>
+<td class="parameter_description"><p> a pointer to the maxsize. </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-buffer-get-sizes.returns"></a><h4>Returns</h4>
+<p> total size of the memory blocks in <em class="parameter"><code>buffer</code></em>
+.</p>
+</div>
 </div>
 <hr>
 <div class="refsect2">
 <a name="gst-buffer-get-size"></a><h3>gst_buffer_get_size ()</h3>
 <pre class="programlisting"><a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#gsize"><span class="returnvalue">gsize</span></a>
 gst_buffer_get_size (<em class="parameter"><code><a class="link" href="GstBuffer.html" title="GstBuffer"><span class="type">GstBuffer</span></a> *buffer</code></em>);</pre>
+<p>Get the total size of the memory blocks in <em class="parameter"><code>buffer</code></em>
+.</p>
+<div class="refsect3">
+<a name="gst-buffer-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>buffer</p></td>
+<td class="parameter_description"><p>a <a class="link" href="GstBuffer.html" title="GstBuffer"><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-size.returns"></a><h4>Returns</h4>
+<p> total size of the memory blocks in <em class="parameter"><code>buffer</code></em>
+.</p>
+</div>
 </div>
 <hr>
 <div class="refsect2">
@@ -791,6 +1460,69 @@
                             <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>,
                             <em class="parameter"><code><a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#gsize"><span class="type">gsize</span></a> *offset</code></em>,
                             <em class="parameter"><code><a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#gsize"><span class="type">gsize</span></a> *maxsize</code></em>);</pre>
+<p>Get the total size of <em class="parameter"><code>length</code></em>
+ memory blocks stating from <em class="parameter"><code>idx</code></em>
+ in <em class="parameter"><code>buffer</code></em>
+.</p>
+<p>When not <a href="/usr/share/gtk-doc/html/glibglib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a>, <em class="parameter"><code>offset</code></em>
+ will contain the offset of the data in the
+memory block in <em class="parameter"><code>buffer</code></em>
+ at <em class="parameter"><code>idx</code></em>
+ and <em class="parameter"><code>maxsize</code></em>
+ will contain the sum of the size
+and <em class="parameter"><code>offset</code></em>
+ and the amount of extra padding on the memory block at <em class="parameter"><code>idx</code></em>
+ +
+<em class="parameter"><code>length</code></em>
+ -1.
+<em class="parameter"><code>offset</code></em>
+ and <em class="parameter"><code>maxsize</code></em>
+ can be used to resize the buffer memory blocks with
+<a class="link" href="GstBuffer.html#gst-buffer-resize-range" title="gst_buffer_resize_range ()"><code class="function">gst_buffer_resize_range()</code></a>.</p>
+<div class="refsect3">
+<a name="gst-buffer-get-sizes-range.parameters"></a><h4>Parameters</h4>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
+<colgroup>
+<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 class="link" href="GstBuffer.html" title="GstBuffer"><span class="type">GstBuffer</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>length</p></td>
+<td class="parameter_description"><p>a length</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>offset</p></td>
+<td class="parameter_description"><p> a pointer to the 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>maxsize</p></td>
+<td class="parameter_description"><p> a pointer to the maxsize. </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-buffer-get-sizes-range.returns"></a><h4>Returns</h4>
+<p> total size of <em class="parameter"><code>length</code></em>
+memory blocks starting at <em class="parameter"><code>idx</code></em>
+in <em class="parameter"><code>buffer</code></em>
+.</p>
+</div>
 </div>
 <hr>
 <div class="refsect2">
@@ -801,6 +1533,52 @@
                          <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>,
                          <em class="parameter"><code><a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#gssize"><span class="type">gssize</span></a> offset</code></em>,
                          <em class="parameter"><code><a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#gssize"><span class="type">gssize</span></a> size</code></em>);</pre>
+<p>Set the total size of the <em class="parameter"><code>length</code></em>
+ memory blocks starting at <em class="parameter"><code>idx</code></em>
+ in
+<em class="parameter"><code>buffer</code></em>
+</p>
+<div class="refsect3">
+<a name="gst-buffer-resize-range.parameters"></a><h4>Parameters</h4>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
+<colgroup>
+<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 class="link" href="GstBuffer.html" title="GstBuffer"><span class="type">GstBuffer</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>length</p></td>
+<td class="parameter_description"><p>a length</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>offset</p></td>
+<td class="parameter_description"><p>the offset adjustment</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>size</p></td>
+<td class="parameter_description"><p>the new size or -1 to just adjust the offset</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<div class="refsect3">
+<a name="gst-buffer-resize-range.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 resizing succeeded, <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">
@@ -809,6 +1587,35 @@
 gst_buffer_resize (<em class="parameter"><code><a class="link" href="GstBuffer.html" title="GstBuffer"><span class="type">GstBuffer</span></a> *buffer</code></em>,
                    <em class="parameter"><code><a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#gssize"><span class="type">gssize</span></a> offset</code></em>,
                    <em class="parameter"><code><a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#gssize"><span class="type">gssize</span></a> size</code></em>);</pre>
+<p>Set the offset and total size of the memory blocks in <em class="parameter"><code>buffer</code></em>
+.</p>
+<div class="refsect3">
+<a name="gst-buffer-resize.parameters"></a><h4>Parameters</h4>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
+<colgroup>
+<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 class="link" href="GstBuffer.html" title="GstBuffer"><span class="type">GstBuffer</span></a>.</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>offset</p></td>
+<td class="parameter_description"><p>the offset adjustment</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>size</p></td>
+<td class="parameter_description"><p>the new size or -1 to just adjust the offset</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
 </div>
 <hr>
 <div class="refsect2">
@@ -816,12 +1623,45 @@
 <pre class="programlisting"><span class="returnvalue">void</span>
 gst_buffer_set_size (<em class="parameter"><code><a class="link" href="GstBuffer.html" title="GstBuffer"><span class="type">GstBuffer</span></a> *buffer</code></em>,
                      <em class="parameter"><code><a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#gssize"><span class="type">gssize</span></a> size</code></em>);</pre>
+<p>Set the total size of the memory blocks in <em class="parameter"><code>buffer</code></em>
+.</p>
+<div class="refsect3">
+<a name="gst-buffer-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>buffer</p></td>
+<td class="parameter_description"><p>a <a class="link" href="GstBuffer.html" title="GstBuffer"><span class="type">GstBuffer</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 new size</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
 </div>
 <hr>
 <div class="refsect2">
 <a name="gst-buffer-get-max-memory"></a><h3>gst_buffer_get_max_memory ()</h3>
 <pre class="programlisting"><a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#guint"><span class="returnvalue">guint</span></a>
 gst_buffer_get_max_memory (<em class="parameter"><code><span class="type">void</span></code></em>);</pre>
+<p>Get the maximum amount of memory blocks that a buffer can hold. This is a
+compile time constant that can be queried with the function.</p>
+<p>When more memory blocks are added, existing memory blocks will be merged
+together to make room for the new block.</p>
+<div class="refsect3">
+<a name="gst-buffer-get-max-memory.returns"></a><h4>Returns</h4>
+<p> the maximum amount of memory blocks that a buffer can hold.</p>
+</div>
+<p class="since">Since: <a class="link" href="ix06.html#api-index-1.2">1.2</a></p>
 </div>
 <hr>
 <div class="refsect2">
@@ -829,12 +1669,68 @@
 <pre class="programlisting"><a class="link" href="GstMemory.html" title="GstMemory"><span class="returnvalue">GstMemory</span></a> *
 gst_buffer_peek_memory (<em class="parameter"><code><a class="link" href="GstBuffer.html" title="GstBuffer"><span class="type">GstBuffer</span></a> *buffer</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 memory block at <em class="parameter"><code>idx</code></em>
+ in <em class="parameter"><code>buffer</code></em>
+. The memory block stays valid until
+the memory block in <em class="parameter"><code>buffer</code></em>
+ is removed, replaced or merged, typically with
+any call that modifies the memory in <em class="parameter"><code>buffer</code></em>
+.</p>
+<div class="refsect3">
+<a name="gst-buffer-peek-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>buffer</p></td>
+<td class="parameter_description"><p>a <a class="link" href="GstBuffer.html" title="GstBuffer"><span class="type">GstBuffer</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-buffer-peek-memory.returns"></a><h4>Returns</h4>
+<p> the <a class="link" href="GstMemory.html" title="GstMemory"><span class="type">GstMemory</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>
 </div>
 <hr>
 <div class="refsect2">
 <a name="gst-buffer-n-memory"></a><h3>gst_buffer_n_memory ()</h3>
 <pre class="programlisting"><a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#guint"><span class="returnvalue">guint</span></a>
 gst_buffer_n_memory (<em class="parameter"><code><a class="link" href="GstBuffer.html" title="GstBuffer"><span class="type">GstBuffer</span></a> *buffer</code></em>);</pre>
+<p>Get the amount of memory blocks that this buffer has. This amount is never
+larger than what <a class="link" href="GstBuffer.html#gst-buffer-get-max-memory" title="gst_buffer_get_max_memory ()"><code class="function">gst_buffer_get_max_memory()</code></a> returns.</p>
+<div class="refsect3">
+<a name="gst-buffer-n-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>buffer</p></td>
+<td class="parameter_description"><p>a <a class="link" href="GstBuffer.html" title="GstBuffer"><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-n-memory.returns"></a><h4>Returns</h4>
+<p> the number of memory blocks this buffer is made of.</p>
+</div>
 </div>
 <hr>
 <div class="refsect2">
@@ -843,6 +1739,42 @@
 gst_buffer_insert_memory (<em class="parameter"><code><a class="link" href="GstBuffer.html" title="GstBuffer"><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> idx</code></em>,
                           <em class="parameter"><code><a class="link" href="GstMemory.html" title="GstMemory"><span class="type">GstMemory</span></a> *mem</code></em>);</pre>
+<p>Insert the memory block <em class="parameter"><code>mem</code></em>
+ to <em class="parameter"><code>buffer</code></em>
+ at <em class="parameter"><code>idx</code></em>
+. This function takes ownership
+of <em class="parameter"><code>mem</code></em>
+ and thus doesn't increase its refcount.</p>
+<p>Only <a class="link" href="GstBuffer.html#gst-buffer-get-max-memory" title="gst_buffer_get_max_memory ()"><code class="function">gst_buffer_get_max_memory()</code></a> can be added to a buffer. If more memory is
+added, existing memory blocks will automatically be merged to make room for
+the new memory.</p>
+<div class="refsect3">
+<a name="gst-buffer-insert-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>buffer</p></td>
+<td class="parameter_description"><p>a <a class="link" href="GstBuffer.html" title="GstBuffer"><span class="type">GstBuffer</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 add the memory at, or -1 to append it to the end</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>mem</p></td>
+<td class="parameter_description"><p> a <a class="link" href="GstMemory.html" title="GstMemory"><span class="type">GstMemory</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">
@@ -852,6 +1784,50 @@
                                  <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 href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#gint"><span class="type">gint</span></a> length</code></em>,
                                  <em class="parameter"><code><a class="link" href="GstMemory.html" title="GstMemory"><span class="type">GstMemory</span></a> *mem</code></em>);</pre>
+<p>Replaces <em class="parameter"><code>length</code></em>
+ memory blocks in <em class="parameter"><code>buffer</code></em>
+ starting at <em class="parameter"><code>idx</code></em>
+ with <em class="parameter"><code>mem</code></em>
+.</p>
+<p>If <em class="parameter"><code>length</code></em>
+ is -1, all memory starting from <em class="parameter"><code>idx</code></em>
+ will be removed and
+replaced with <em class="parameter"><code>mem</code></em>
+.</p>
+<p><em class="parameter"><code>buffer</code></em>
+ should be writable.</p>
+<div class="refsect3">
+<a name="gst-buffer-replace-memory-range.parameters"></a><h4>Parameters</h4>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
+<colgroup>
+<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 class="link" href="GstBuffer.html" title="GstBuffer"><span class="type">GstBuffer</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>length</p></td>
+<td class="parameter_description"><p>a length should not be 0</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>mem</p></td>
+<td class="parameter_description"><p> a <a class="link" href="GstMemory.html" title="GstMemory"><span class="type">GstMemory</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">
@@ -860,6 +1836,48 @@
 gst_buffer_get_memory_range (<em class="parameter"><code><a class="link" href="GstBuffer.html" title="GstBuffer"><span class="type">GstBuffer</span></a> *buffer</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 href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#gint"><span class="type">gint</span></a> length</code></em>);</pre>
+<p>Get <em class="parameter"><code>length</code></em>
+ memory blocks in <em class="parameter"><code>buffer</code></em>
+ starting at <em class="parameter"><code>idx</code></em>
+. The memory blocks will
+be merged into one large <a class="link" href="GstMemory.html" title="GstMemory"><span class="type">GstMemory</span></a>.</p>
+<p>If <em class="parameter"><code>length</code></em>
+ is -1, all memory starting from <em class="parameter"><code>idx</code></em>
+ is merged.</p>
+<div class="refsect3">
+<a name="gst-buffer-get-memory-range.parameters"></a><h4>Parameters</h4>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
+<colgroup>
+<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 class="link" href="GstBuffer.html" title="GstBuffer"><span class="type">GstBuffer</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>length</p></td>
+<td class="parameter_description"><p>a length</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<div class="refsect3">
+<a name="gst-buffer-get-memory-range.returns"></a><h4>Returns</h4>
+<p> a <a class="link" href="GstMemory.html" title="GstMemory"><span class="type">GstMemory</span></a> that contains the merged data of <em class="parameter"><code>length</code></em>
+blocks starting at <em class="parameter"><code>idx</code></em>
+. Use <a class="link" href="GstMemory.html#gst-memory-unref" title="gst_memory_unref ()"><code class="function">gst_memory_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">
@@ -868,6 +1886,40 @@
 gst_buffer_remove_memory_range (<em class="parameter"><code><a class="link" href="GstBuffer.html" title="GstBuffer"><span class="type">GstBuffer</span></a> *buffer</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 href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#gint"><span class="type">gint</span></a> length</code></em>);</pre>
+<p>Remove <em class="parameter"><code>length</code></em>
+ memory blocks in <em class="parameter"><code>buffer</code></em>
+ starting from <em class="parameter"><code>idx</code></em>
+.</p>
+<p><em class="parameter"><code>length</code></em>
+ can be -1, in which case all memory starting from <em class="parameter"><code>idx</code></em>
+ is removed.</p>
+<div class="refsect3">
+<a name="gst-buffer-remove-memory-range.parameters"></a><h4>Parameters</h4>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
+<colgroup>
+<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 class="link" href="GstBuffer.html" title="GstBuffer"><span class="type">GstBuffer</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>length</p></td>
+<td class="parameter_description"><p>a length</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
 </div>
 <hr>
 <div class="refsect2">
@@ -879,6 +1931,79 @@
                         <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 href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#guint"><span class="type">guint</span></a> *length</code></em>,
                         <em class="parameter"><code><a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#gsize"><span class="type">gsize</span></a> *skip</code></em>);</pre>
+<p>Find the memory blocks that span <em class="parameter"><code>size</code></em>
+ bytes starting from <em class="parameter"><code>offset</code></em>
+
+in <em class="parameter"><code>buffer</code></em>
+.</p>
+<p>When this function returns <a href="/usr/share/gtk-doc/html/glibglib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a>, <em class="parameter"><code>idx</code></em>
+ will contain the index of the first
+memory block where the byte for <em class="parameter"><code>offset</code></em>
+ can be found and <em class="parameter"><code>length</code></em>
+ contains the
+number of memory blocks containing the <em class="parameter"><code>size</code></em>
+ remaining bytes. <em class="parameter"><code>skip</code></em>
+ contains
+the number of bytes to skip in the memory block at <em class="parameter"><code>idx</code></em>
+ to get to the byte
+for <em class="parameter"><code>offset</code></em>
+.</p>
+<p><em class="parameter"><code>size</code></em>
+ can be -1 to get all the memory blocks after <em class="parameter"><code>idx</code></em>
+.</p>
+<div class="refsect3">
+<a name="gst-buffer-find-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>buffer</p></td>
+<td class="parameter_description"><p>a <a class="link" href="GstBuffer.html" title="GstBuffer"><span class="type">GstBuffer</span></a>.</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>offset</p></td>
+<td class="parameter_description"><p>an offset</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>size</p></td>
+<td class="parameter_description"><p>a size</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>idx</p></td>
+<td class="parameter_description"><p> pointer to index. </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>length</p></td>
+<td class="parameter_description"><p> pointer to length. </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>skip</p></td>
+<td class="parameter_description"><p> pointer to skip. </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-buffer-find-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>size</code></em>
+bytes starting from <em class="parameter"><code>offset</code></em>
+could be found in
+<em class="parameter"><code>buffer</code></em>
+and <em class="parameter"><code>idx</code></em>
+, <em class="parameter"><code>length</code></em>
+and <em class="parameter"><code>skip</code></em>
+will be filled.</p>
+</div>
 </div>
 <hr>
 <div class="refsect2">
@@ -886,6 +2011,35 @@
 <pre class="programlisting"><span class="returnvalue">void</span>
 gst_buffer_prepend_memory (<em class="parameter"><code><a class="link" href="GstBuffer.html" title="GstBuffer"><span class="type">GstBuffer</span></a> *buffer</code></em>,
                            <em class="parameter"><code><a class="link" href="GstMemory.html" title="GstMemory"><span class="type">GstMemory</span></a> *mem</code></em>);</pre>
+<p>Prepend the memory block <em class="parameter"><code>mem</code></em>
+ to <em class="parameter"><code>buffer</code></em>
+. This function takes
+ownership of <em class="parameter"><code>mem</code></em>
+ and thus doesn't increase its refcount.</p>
+<p>This function is identical to <a class="link" href="GstBuffer.html#gst-buffer-insert-memory" title="gst_buffer_insert_memory ()"><code class="function">gst_buffer_insert_memory()</code></a> with an index of 0.
+See <a class="link" href="GstBuffer.html#gst-buffer-insert-memory" title="gst_buffer_insert_memory ()"><code class="function">gst_buffer_insert_memory()</code></a> for more details.</p>
+<div class="refsect3">
+<a name="gst-buffer-prepend-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>buffer</p></td>
+<td class="parameter_description"><p>a <a class="link" href="GstBuffer.html" title="GstBuffer"><span class="type">GstBuffer</span></a>.</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>mem</p></td>
+<td class="parameter_description"><p> a <a class="link" href="GstMemory.html" title="GstMemory"><span class="type">GstMemory</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">
@@ -893,6 +2047,35 @@
 <pre class="programlisting"><span class="returnvalue">void</span>
 gst_buffer_append_memory (<em class="parameter"><code><a class="link" href="GstBuffer.html" title="GstBuffer"><span class="type">GstBuffer</span></a> *buffer</code></em>,
                           <em class="parameter"><code><a class="link" href="GstMemory.html" title="GstMemory"><span class="type">GstMemory</span></a> *mem</code></em>);</pre>
+<p>Append the memory block <em class="parameter"><code>mem</code></em>
+ to <em class="parameter"><code>buffer</code></em>
+. This function takes
+ownership of <em class="parameter"><code>mem</code></em>
+ and thus doesn't increase its refcount.</p>
+<p>This function is identical to <a class="link" href="GstBuffer.html#gst-buffer-insert-memory" title="gst_buffer_insert_memory ()"><code class="function">gst_buffer_insert_memory()</code></a> with an index of -1.
+See <a class="link" href="GstBuffer.html#gst-buffer-insert-memory" title="gst_buffer_insert_memory ()"><code class="function">gst_buffer_insert_memory()</code></a> for more details.</p>
+<div class="refsect3">
+<a name="gst-buffer-append-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>buffer</p></td>
+<td class="parameter_description"><p>a <a class="link" href="GstBuffer.html" title="GstBuffer"><span class="type">GstBuffer</span></a>.</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>mem</p></td>
+<td class="parameter_description"><p> a <a class="link" href="GstMemory.html" title="GstMemory"><span class="type">GstMemory</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">
@@ -901,6 +2084,37 @@
 gst_buffer_replace_memory (<em class="parameter"><code><a class="link" href="GstBuffer.html" title="GstBuffer"><span class="type">GstBuffer</span></a> *buffer</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="GstMemory.html" title="GstMemory"><span class="type">GstMemory</span></a> *mem</code></em>);</pre>
+<p>Replaces the memory block at index <em class="parameter"><code>idx</code></em>
+ in <em class="parameter"><code>buffer</code></em>
+ with <em class="parameter"><code>mem</code></em>
+.</p>
+<div class="refsect3">
+<a name="gst-buffer-replace-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>buffer</p></td>
+<td class="parameter_description"><p>a <a class="link" href="GstBuffer.html" title="GstBuffer"><span class="type">GstBuffer</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>mem</p></td>
+<td class="parameter_description"><p> a <a class="link" href="GstMemory.html" title="GstMemory"><span class="type">GstMemory</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">
@@ -908,6 +2122,31 @@
 <pre class="programlisting"><span class="returnvalue">void</span>
 gst_buffer_replace_all_memory (<em class="parameter"><code><a class="link" href="GstBuffer.html" title="GstBuffer"><span class="type">GstBuffer</span></a> *buffer</code></em>,
                                <em class="parameter"><code><a class="link" href="GstMemory.html" title="GstMemory"><span class="type">GstMemory</span></a> *mem</code></em>);</pre>
+<p>Replaces all memory in <em class="parameter"><code>buffer</code></em>
+ with <em class="parameter"><code>mem</code></em>
+.</p>
+<div class="refsect3">
+<a name="gst-buffer-replace-all-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>buffer</p></td>
+<td class="parameter_description"><p>a <a class="link" href="GstBuffer.html" title="GstBuffer"><span class="type">GstBuffer</span></a>.</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>mem</p></td>
+<td class="parameter_description"><p> a <a class="link" href="GstMemory.html" title="GstMemory"><span class="type">GstMemory</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">
@@ -915,12 +2154,68 @@
 <pre class="programlisting"><a class="link" href="GstMemory.html" title="GstMemory"><span class="returnvalue">GstMemory</span></a> *
 gst_buffer_get_memory (<em class="parameter"><code><a class="link" href="GstBuffer.html" title="GstBuffer"><span class="type">GstBuffer</span></a> *buffer</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 memory block at index <em class="parameter"><code>idx</code></em>
+ in <em class="parameter"><code>buffer</code></em>
+.</p>
+<div class="refsect3">
+<a name="gst-buffer-get-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>buffer</p></td>
+<td class="parameter_description"><p>a <a class="link" href="GstBuffer.html" title="GstBuffer"><span class="type">GstBuffer</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-buffer-get-memory.returns"></a><h4>Returns</h4>
+<p> a <a class="link" href="GstMemory.html" title="GstMemory"><span class="type">GstMemory</span></a> that contains the data of the
+memory block at <em class="parameter"><code>idx</code></em>
+. Use <a class="link" href="GstMemory.html#gst-memory-unref" title="gst_memory_unref ()"><code class="function">gst_memory_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-buffer-get-all-memory"></a><h3>gst_buffer_get_all_memory ()</h3>
 <pre class="programlisting"><a class="link" href="GstMemory.html" title="GstMemory"><span class="returnvalue">GstMemory</span></a> *
 gst_buffer_get_all_memory (<em class="parameter"><code><a class="link" href="GstBuffer.html" title="GstBuffer"><span class="type">GstBuffer</span></a> *buffer</code></em>);</pre>
+<p>Get all the memory block in <em class="parameter"><code>buffer</code></em>
+. The memory blocks will be merged
+into one large <a class="link" href="GstMemory.html" title="GstMemory"><span class="type">GstMemory</span></a>.</p>
+<div class="refsect3">
+<a name="gst-buffer-get-all-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>buffer</p></td>
+<td class="parameter_description"><p>a <a class="link" href="GstBuffer.html" title="GstBuffer"><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-all-memory.returns"></a><h4>Returns</h4>
+<p> a <a class="link" href="GstMemory.html" title="GstMemory"><span class="type">GstMemory</span></a> that contains the merged memory.
+Use <a class="link" href="GstMemory.html#gst-memory-unref" title="gst_memory_unref ()"><code class="function">gst_memory_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">
@@ -928,18 +2223,86 @@
 <pre class="programlisting"><span class="returnvalue">void</span>
 gst_buffer_remove_memory (<em class="parameter"><code><a class="link" href="GstBuffer.html" title="GstBuffer"><span class="type">GstBuffer</span></a> *buffer</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 memory block in <em class="parameter"><code>b</code></em>
+ at index <em class="parameter"><code>i</code></em>
+.</p>
+<div class="refsect3">
+<a name="gst-buffer-remove-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>buffer</p></td>
+<td class="parameter_description"><p>a <a class="link" href="GstBuffer.html" title="GstBuffer"><span class="type">GstBuffer</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>
 <hr>
 <div class="refsect2">
 <a name="gst-buffer-remove-all-memory"></a><h3>gst_buffer_remove_all_memory ()</h3>
 <pre class="programlisting"><span class="returnvalue">void</span>
 gst_buffer_remove_all_memory (<em class="parameter"><code><a class="link" href="GstBuffer.html" title="GstBuffer"><span class="type">GstBuffer</span></a> *buffer</code></em>);</pre>
+<p>Remove all the memory blocks in <em class="parameter"><code>buffer</code></em>
+.</p>
+<div class="refsect3">
+<a name="gst-buffer-remove-all-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>buffer</p></td>
+<td class="parameter_description"><p>a <a class="link" href="GstBuffer.html" title="GstBuffer"><span class="type">GstBuffer</span></a>.</p></td>
+<td class="parameter_annotations"> </td>
+</tr></tbody>
+</table></div>
+</div>
 </div>
 <hr>
 <div class="refsect2">
 <a name="gst-buffer-is-all-memory-writable"></a><h3>gst_buffer_is_all_memory_writable ()</h3>
 <pre class="programlisting"><a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
 gst_buffer_is_all_memory_writable (<em class="parameter"><code><a class="link" href="GstBuffer.html" title="GstBuffer"><span class="type">GstBuffer</span></a> *buffer</code></em>);</pre>
+<p>Check if all memory blocks in <em class="parameter"><code>buffer</code></em>
+ are writable.</p>
+<p>Note that this function does not check if <em class="parameter"><code>buffer</code></em>
+ is writable, use
+<a class="link" href="GstBuffer.html#gst-buffer-is-writable" title="gst_buffer_is_writable()"><code class="function">gst_buffer_is_writable()</code></a> to check that if needed.</p>
+<div class="refsect3">
+<a name="gst-buffer-is-all-memory-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>buffer</p></td>
+<td class="parameter_description"><p>a <a class="link" href="GstBuffer.html" title="GstBuffer"><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-is-all-memory-writable.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 all memory blocks in <em class="parameter"><code>buffer</code></em>
+are writable</p>
+</div>
+<p class="since">Since: <a class="link" href="ix04.html#api-index-1.4">1.4</a></p>
 </div>
 <hr>
 <div class="refsect2">
@@ -948,6 +2311,48 @@
 gst_buffer_is_memory_range_writable (<em class="parameter"><code><a class="link" href="GstBuffer.html" title="GstBuffer"><span class="type">GstBuffer</span></a> *buffer</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 href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#gint"><span class="type">gint</span></a> length</code></em>);</pre>
+<p>Check if <em class="parameter"><code>length</code></em>
+ memory blocks in <em class="parameter"><code>buffer</code></em>
+ starting from <em class="parameter"><code>idx</code></em>
+ are writable.</p>
+<p><em class="parameter"><code>length</code></em>
+ can be -1 to check all the memory blocks after <em class="parameter"><code>idx</code></em>
+.</p>
+<p>Note that this function does not check if <em class="parameter"><code>buffer</code></em>
+ is writable, use
+<a class="link" href="GstBuffer.html#gst-buffer-is-writable" title="gst_buffer_is_writable()"><code class="function">gst_buffer_is_writable()</code></a> to check that if needed.</p>
+<div class="refsect3">
+<a name="gst-buffer-is-memory-range-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>buffer</p></td>
+<td class="parameter_description"><p>a <a class="link" href="GstBuffer.html" title="GstBuffer"><span class="type">GstBuffer</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>length</p></td>
+<td class="parameter_description"><p>a length should not be 0</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<div class="refsect3">
+<a name="gst-buffer-is-memory-range-writable.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 memory range is writable</p>
+</div>
+<p class="since">Since: <a class="link" href="ix04.html#api-index-1.4">1.4</a></p>
 </div>
 <hr>
 <div class="refsect2">
@@ -956,6 +2361,55 @@
 gst_buffer_map (<em class="parameter"><code><a class="link" href="GstBuffer.html" title="GstBuffer"><span class="type">GstBuffer</span></a> *buffer</code></em>,
                 <em class="parameter"><code><a class="link" href="GstMemory.html#GstMapInfo" title="GstMapInfo"><span class="type">GstMapInfo</span></a> *info</code></em>,
                 <em class="parameter"><code><a class="link" href="GstMemory.html#GstMapFlags" title="enum GstMapFlags"><span class="type">GstMapFlags</span></a> flags</code></em>);</pre>
+<p>This function fills <em class="parameter"><code>info</code></em>
+ with the <a class="link" href="GstMemory.html#GstMapInfo" title="GstMapInfo"><span class="type">GstMapInfo</span></a> of all merged memory
+blocks in <em class="parameter"><code>buffer</code></em>
+.</p>
+<p><em class="parameter"><code>flags</code></em>
+ describe the desired access of the memory. When <em class="parameter"><code>flags</code></em>
+ is
+<a class="link" href="GstMemory.html#GST-MAP-WRITE:CAPS"><span class="type">GST_MAP_WRITE</span></a>, <em class="parameter"><code>buffer</code></em>
+ should be writable (as returned from
+<a class="link" href="GstBuffer.html#gst-buffer-is-writable" title="gst_buffer_is_writable()"><code class="function">gst_buffer_is_writable()</code></a>).</p>
+<p>When <em class="parameter"><code>buffer</code></em>
+ is writable but the memory isn't, a writable copy will
+automatically be created and returned. The readonly copy of the
+buffer memory will then also be replaced with this writable copy.</p>
+<p>The memory in <em class="parameter"><code>info</code></em>
+ should be unmapped with <a class="link" href="GstBuffer.html#gst-buffer-unmap" title="gst_buffer_unmap ()"><code class="function">gst_buffer_unmap()</code></a> after
+usage.</p>
+<div class="refsect3">
+<a name="gst-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 class="link" href="GstBuffer.html" title="GstBuffer"><span class="type">GstBuffer</span></a>.</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>info</p></td>
+<td class="parameter_description"><p> info about the mapping. </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>flags</p></td>
+<td class="parameter_description"><p>flags for the mapping</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<div class="refsect3">
+<a name="gst-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 the map succeeded and <em class="parameter"><code>info</code></em>
+contains valid data.</p>
+</div>
 </div>
 <hr>
 <div class="refsect2">
@@ -966,6 +2420,70 @@
                       <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>,
                       <em class="parameter"><code><a class="link" href="GstMemory.html#GstMapInfo" title="GstMapInfo"><span class="type">GstMapInfo</span></a> *info</code></em>,
                       <em class="parameter"><code><a class="link" href="GstMemory.html#GstMapFlags" title="enum GstMapFlags"><span class="type">GstMapFlags</span></a> flags</code></em>);</pre>
+<p>This function fills <em class="parameter"><code>info</code></em>
+ with the <a class="link" href="GstMemory.html#GstMapInfo" title="GstMapInfo"><span class="type">GstMapInfo</span></a> of <em class="parameter"><code>length</code></em>
+ merged memory blocks
+starting at <em class="parameter"><code>idx</code></em>
+ in <em class="parameter"><code>buffer</code></em>
+. When <em class="parameter"><code>length</code></em>
+ is -1, all memory blocks starting
+from <em class="parameter"><code>idx</code></em>
+ are merged and mapped.</p>
+<p><em class="parameter"><code>flags</code></em>
+ describe the desired access of the memory. When <em class="parameter"><code>flags</code></em>
+ is
+<a class="link" href="GstMemory.html#GST-MAP-WRITE:CAPS"><span class="type">GST_MAP_WRITE</span></a>, <em class="parameter"><code>buffer</code></em>
+ should be writable (as returned from
+<a class="link" href="GstBuffer.html#gst-buffer-is-writable" title="gst_buffer_is_writable()"><code class="function">gst_buffer_is_writable()</code></a>).</p>
+<p>When <em class="parameter"><code>buffer</code></em>
+ is writable but the memory isn't, a writable copy will
+automatically be created and returned. The readonly copy of the buffer memory
+will then also be replaced with this writable copy.</p>
+<p>The memory in <em class="parameter"><code>info</code></em>
+ should be unmapped with <a class="link" href="GstBuffer.html#gst-buffer-unmap" title="gst_buffer_unmap ()"><code class="function">gst_buffer_unmap()</code></a> after usage.</p>
+<div class="refsect3">
+<a name="gst-buffer-map-range.parameters"></a><h4>Parameters</h4>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
+<colgroup>
+<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 class="link" href="GstBuffer.html" title="GstBuffer"><span class="type">GstBuffer</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>length</p></td>
+<td class="parameter_description"><p>a length</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>info</p></td>
+<td class="parameter_description"><p> info about the mapping. </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>flags</p></td>
+<td class="parameter_description"><p>flags for the mapping</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<div class="refsect3">
+<a name="gst-buffer-map-range.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 map succeeded and <em class="parameter"><code>info</code></em>
+contains valid
+data.</p>
+</div>
 </div>
 <hr>
 <div class="refsect2">
@@ -973,6 +2491,29 @@
 <pre class="programlisting"><span class="returnvalue">void</span>
 gst_buffer_unmap (<em class="parameter"><code><a class="link" href="GstBuffer.html" title="GstBuffer"><span class="type">GstBuffer</span></a> *buffer</code></em>,
                   <em class="parameter"><code><a class="link" href="GstMemory.html#GstMapInfo" title="GstMapInfo"><span class="type">GstMapInfo</span></a> *info</code></em>);</pre>
+<p>Release the memory previously mapped with <a class="link" href="GstBuffer.html#gst-buffer-map" title="gst_buffer_map ()"><code class="function">gst_buffer_map()</code></a>.</p>
+<div class="refsect3">
+<a name="gst-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>buffer</p></td>
+<td class="parameter_description"><p>a <a class="link" href="GstBuffer.html" title="GstBuffer"><span class="type">GstBuffer</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="GstMemory.html#GstMapInfo" title="GstMapInfo"><span class="type">GstMapInfo</span></a></p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
 </div>
 <hr>
 <div class="refsect2">
@@ -982,6 +2523,48 @@
                    <em class="parameter"><code><a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#gsize"><span class="type">gsize</span></a> offset</code></em>,
                    <em class="parameter"><code><a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#gconstpointer"><span class="type">gconstpointer</span></a> mem</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>Compare <em class="parameter"><code>size</code></em>
+ bytes starting from <em class="parameter"><code>offset</code></em>
+ in <em class="parameter"><code>buffer</code></em>
+ with the memory in <em class="parameter"><code>mem</code></em>
+.</p>
+<div class="refsect3">
+<a name="gst-buffer-memcmp.parameters"></a><h4>Parameters</h4>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
+<colgroup>
+<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 class="link" href="GstBuffer.html" title="GstBuffer"><span class="type">GstBuffer</span></a>.</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 <em class="parameter"><code>buffer</code></em>
+</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>mem</p></td>
+<td class="parameter_description"><p> the memory to compare. </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 to compare</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<div class="refsect3">
+<a name="gst-buffer-memcmp.returns"></a><h4>Returns</h4>
+<p> 0 if the memory is equal.</p>
+</div>
 </div>
 <hr>
 <div class="refsect2">
@@ -991,6 +2574,49 @@
                     <em class="parameter"><code><a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#gsize"><span class="type">gsize</span></a> offset</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> size</code></em>);</pre>
+<p>Copy <em class="parameter"><code>size</code></em>
+ bytes starting from <em class="parameter"><code>offset</code></em>
+ in <em class="parameter"><code>buffer</code></em>
+ to <em class="parameter"><code>dest</code></em>
+.</p>
+<div class="refsect3">
+<a name="gst-buffer-extract.parameters"></a><h4>Parameters</h4>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
+<colgroup>
+<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 class="link" href="GstBuffer.html" title="GstBuffer"><span class="type">GstBuffer</span></a>.</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>offset</p></td>
+<td class="parameter_description"><p>the offset to extract</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>dest</p></td>
+<td class="parameter_description"><p>the destination address</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 extract</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<div class="refsect3">
+<a name="gst-buffer-extract.returns"></a><h4>Returns</h4>
+<p> The amount of bytes extracted. This value can be lower than <em class="parameter"><code>size</code></em>
+when <em class="parameter"><code>buffer</code></em>
+did not contain enough data.</p>
+</div>
 </div>
 <hr>
 <div class="refsect2">
@@ -1001,6 +2627,51 @@
                         <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 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> *dest_size</code></em>);</pre>
+<p>Extracts a copy of at most <em class="parameter"><code>size</code></em>
+ bytes the data at <em class="parameter"><code>offset</code></em>
+ into
+newly-allocated memory. <em class="parameter"><code>dest</code></em>
+ must be freed using <a href="/usr/share/gtk-doc/html/glibglib-Memory-Allocation.html#g-free"><code class="function">g_free()</code></a> when done.</p>
+<div class="refsect3">
+<a name="gst-buffer-extract-dup.parameters"></a><h4>Parameters</h4>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
+<colgroup>
+<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 class="link" href="GstBuffer.html" title="GstBuffer"><span class="type">GstBuffer</span></a></p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>offset</p></td>
+<td class="parameter_description"><p>the offset to extract</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 extract</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>dest</p></td>
+<td class="parameter_description"><p> A pointer where
+the destination array will be written. </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=dest_size][<acronym title="Generics and defining elements of containers and arrays."><span class="acronym">element-type</span></acronym> guint8][<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_size</p></td>
+<td class="parameter_description"><p> A location where the size of <em class="parameter"><code>dest</code></em>
+can be written. </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>
+<p class="since">Since: <a class="link" href="ix07.html#api-index-1.0.10">1.0.10</a></p>
 </div>
 <hr>
 <div class="refsect2">
@@ -1010,6 +2681,49 @@
                  <em class="parameter"><code><a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#gsize"><span class="type">gsize</span></a> offset</code></em>,
                  <em class="parameter"><code><a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#gconstpointer"><span class="type">gconstpointer</span></a> src</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>Copy <em class="parameter"><code>size</code></em>
+ bytes from <em class="parameter"><code>src</code></em>
+ to <em class="parameter"><code>buffer</code></em>
+ at <em class="parameter"><code>offset</code></em>
+.</p>
+<div class="refsect3">
+<a name="gst-buffer-fill.parameters"></a><h4>Parameters</h4>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
+<colgroup>
+<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 class="link" href="GstBuffer.html" title="GstBuffer"><span class="type">GstBuffer</span></a>.</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>offset</p></td>
+<td class="parameter_description"><p>the offset to fill</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>src</p></td>
+<td class="parameter_description"><p> the source address. </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 to fill</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<div class="refsect3">
+<a name="gst-buffer-fill.returns"></a><h4>Returns</h4>
+<p> The amount of bytes copied. This value can be lower than <em class="parameter"><code>size</code></em>
+when <em class="parameter"><code>buffer</code></em>
+did not contain enough data.</p>
+</div>
 </div>
 <hr>
 <div class="refsect2">
@@ -1019,12 +2733,82 @@
                    <em class="parameter"><code><a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#gsize"><span class="type">gsize</span></a> offset</code></em>,
                    <em class="parameter"><code><a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#guint8"><span class="type">guint8</span></a> val</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>Fill <em class="parameter"><code>buf</code></em>
+ with <em class="parameter"><code>size</code></em>
+ bytes with <em class="parameter"><code>val</code></em>
+ starting from <em class="parameter"><code>offset</code></em>
+.</p>
+<div class="refsect3">
+<a name="gst-buffer-memset.parameters"></a><h4>Parameters</h4>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
+<colgroup>
+<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 class="link" href="GstBuffer.html" title="GstBuffer"><span class="type">GstBuffer</span></a>.</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 <em class="parameter"><code>buffer</code></em>
+</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>val</p></td>
+<td class="parameter_description"><p>the value to set</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 class="refsect3">
+<a name="gst-buffer-memset.returns"></a><h4>Returns</h4>
+<p> The amount of bytes filled. This value can be lower than <em class="parameter"><code>size</code></em>
+when <em class="parameter"><code>buffer</code></em>
+did not contain enough data.</p>
+</div>
 </div>
 <hr>
 <div class="refsect2">
 <a name="gst-buffer-copy"></a><h3>gst_buffer_copy ()</h3>
 <pre class="programlisting"><a class="link" href="GstBuffer.html" title="GstBuffer"><span class="returnvalue">GstBuffer</span></a> *
 gst_buffer_copy (<em class="parameter"><code>const <a class="link" href="GstBuffer.html" title="GstBuffer"><span class="type">GstBuffer</span></a> *buf</code></em>);</pre>
+<p>Create a copy of the given buffer. This will only copy the buffer's
+data to a newly allocated memory if needed (if the type of memory
+requires it), otherwise the underlying data is just referenced.
+Check <a class="link" href="GstBuffer.html#gst-buffer-copy-deep" title="gst_buffer_copy_deep ()"><code class="function">gst_buffer_copy_deep()</code></a> if you want to force the data
+to be copied to newly allocated memory.</p>
+<div class="refsect3">
+<a name="gst-buffer-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>buf</p></td>
+<td class="parameter_description"><p>a <a class="link" href="GstBuffer.html" title="GstBuffer"><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-copy.returns"></a><h4>Returns</h4>
+<p> a new copy of <em class="parameter"><code>buf</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">
@@ -1035,6 +2819,58 @@
                       <em class="parameter"><code><a class="link" href="GstBuffer.html#GstBufferCopyFlags" title="enum GstBufferCopyFlags"><span class="type">GstBufferCopyFlags</span></a> flags</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</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>Copies the information from <em class="parameter"><code>src</code></em>
+ into <em class="parameter"><code>dest</code></em>
+.</p>
+<p>If <em class="parameter"><code>dest</code></em>
+ already contains memory and <em class="parameter"><code>flags</code></em>
+ contains GST_BUFFER_COPY_MEMORY,
+the memory from <em class="parameter"><code>src</code></em>
+ will be appended to <em class="parameter"><code>dest</code></em>
+.</p>
+<p><em class="parameter"><code>flags</code></em>
+ indicate which fields will be copied.</p>
+<div class="refsect3">
+<a name="gst-buffer-copy-into.parameters"></a><h4>Parameters</h4>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
+<colgroup>
+<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 destination <a class="link" href="GstBuffer.html" title="GstBuffer"><span class="type">GstBuffer</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 <a class="link" href="GstBuffer.html" title="GstBuffer"><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>flags indicating what metadata fields should be copied.</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>offset</p></td>
+<td class="parameter_description"><p>offset to copy from</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>size</p></td>
+<td class="parameter_description"><p>total size to copy. If -1, all data is copied.</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<div class="refsect3">
+<a name="gst-buffer-copy-into.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 copying succeeded, <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">
@@ -1044,24 +2880,160 @@
                         <em class="parameter"><code><a class="link" href="GstBuffer.html#GstBufferCopyFlags" title="enum GstBufferCopyFlags"><span class="type">GstBufferCopyFlags</span></a> flags</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</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>Creates a sub-buffer from <em class="parameter"><code>parent</code></em>
+ at <em class="parameter"><code>offset</code></em>
+ and <em class="parameter"><code>size</code></em>
+.
+This sub-buffer uses the actual memory space of the parent buffer.
+This function will copy the offset and timestamp fields when the
+offset is 0. If not, they will be set to <a class="link" href="GstClock.html#GST-CLOCK-TIME-NONE:CAPS" title="GST_CLOCK_TIME_NONE"><span class="type">GST_CLOCK_TIME_NONE</span></a> and
+<a class="link" href="GstBuffer.html#GST-BUFFER-OFFSET-NONE:CAPS" title="GST_BUFFER_OFFSET_NONE"><span class="type">GST_BUFFER_OFFSET_NONE</span></a>.
+If <em class="parameter"><code>offset</code></em>
+ equals 0 and <em class="parameter"><code>size</code></em>
+ equals the total size of <em class="parameter"><code>buffer</code></em>
+, the
+duration and offset end fields are also copied. If not they will be set
+to <a class="link" href="GstClock.html#GST-CLOCK-TIME-NONE:CAPS" title="GST_CLOCK_TIME_NONE"><span class="type">GST_CLOCK_TIME_NONE</span></a> and <a class="link" href="GstBuffer.html#GST-BUFFER-OFFSET-NONE:CAPS" title="GST_BUFFER_OFFSET_NONE"><span class="type">GST_BUFFER_OFFSET_NONE</span></a>.</p>
+<p>MT safe.</p>
+<div class="refsect3">
+<a name="gst-buffer-copy-region.parameters"></a><h4>Parameters</h4>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
+<colgroup>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
+</colgroup>
+<tbody>
+<tr>
+<td class="parameter_name"><p>parent</p></td>
+<td class="parameter_description"><p>a <a class="link" href="GstBuffer.html" title="GstBuffer"><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>the <a class="link" href="GstBuffer.html#GstBufferCopyFlags" title="enum GstBufferCopyFlags"><span class="type">GstBufferCopyFlags</span></a></p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>offset</p></td>
+<td class="parameter_description"><p>the offset into parent <a class="link" href="GstBuffer.html" title="GstBuffer"><span class="type">GstBuffer</span></a> at which the new sub-buffer
+begins.</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 new <a class="link" href="GstBuffer.html" title="GstBuffer"><span class="type">GstBuffer</span></a> sub-buffer, in bytes. If -1, all
+data is copied.</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<div class="refsect3">
+<a name="gst-buffer-copy-region.returns"></a><h4>Returns</h4>
+<p> the new <a class="link" href="GstBuffer.html" title="GstBuffer"><span class="type">GstBuffer</span></a> or <a href="/usr/share/gtk-doc/html/glibglib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a> if the arguments were
+invalid. </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-buffer-copy-deep"></a><h3>gst_buffer_copy_deep ()</h3>
 <pre class="programlisting"><a class="link" href="GstBuffer.html" title="GstBuffer"><span class="returnvalue">GstBuffer</span></a> *
 gst_buffer_copy_deep (<em class="parameter"><code>const <a class="link" href="GstBuffer.html" title="GstBuffer"><span class="type">GstBuffer</span></a> *buf</code></em>);</pre>
+<p>Create a copy of the given buffer. This will make a newly allocated
+copy of the data the source buffer contains.</p>
+<div class="refsect3">
+<a name="gst-buffer-copy-deep.parameters"></a><h4>Parameters</h4>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
+<colgroup>
+<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 class="link" href="GstBuffer.html" title="GstBuffer"><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-copy-deep.returns"></a><h4>Returns</h4>
+<p> a new copy of <em class="parameter"><code>buf</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: <a class="link" href="ix03.html#api-index-1.6">1.6</a></p>
 </div>
 <hr>
 <div class="refsect2">
 <a name="gst-buffer-is-writable"></a><h3>gst_buffer_is_writable()</h3>
 <pre class="programlisting">#define         gst_buffer_is_writable(buf)     gst_mini_object_is_writable (GST_MINI_OBJECT_CAST (buf))
 </pre>
+<p>Tests if you can safely write to a buffer's metadata or its memory array.
+It is only safe to change buffer metadata when the current reference is
+writable, i.e. nobody can see the modifications you will make.</p>
+<div class="refsect3">
+<a name="gst-buffer-is-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>buf</p></td>
+<td class="parameter_description"><p>a <a class="link" href="GstBuffer.html" title="GstBuffer"><span class="type">GstBuffer</span></a></p></td>
+<td class="parameter_annotations"> </td>
+</tr></tbody>
+</table></div>
+</div>
 </div>
 <hr>
 <div class="refsect2">
 <a name="gst-buffer-make-writable"></a><h3>gst_buffer_make_writable()</h3>
 <pre class="programlisting">#define         gst_buffer_make_writable(buf)   GST_BUFFER_CAST (gst_mini_object_make_writable (GST_MINI_OBJECT_CAST (buf)))
 </pre>
+<p>Returns a writable copy of <em class="parameter"><code>buf</code></em>
+. If the source buffer is
+already writable, this will simply return the same buffer.</p>
+<p>Use this function to ensure that a buffer can be safely modified before
+making changes to it, including changing the metadata such as PTS/DTS.</p>
+<p>If the reference count of the source buffer <em class="parameter"><code>buf</code></em>
+ is exactly one, the caller
+is the sole owner and this function will return the buffer object unchanged.</p>
+<p>If there is more than one reference on the object, a copy will be made using
+<a class="link" href="GstBuffer.html#gst-buffer-copy" title="gst_buffer_copy ()"><code class="function">gst_buffer_copy()</code></a>. The passed-in <em class="parameter"><code>buf</code></em>
+ will be unreffed in that case, and the
+caller will now own a reference to the new returned buffer object. Note
+that this just copies the buffer structure itself, the underlying memory is
+not copied if it can be shared amongst multiple buffers.</p>
+<p>In short, this function unrefs the buf in the argument and refs the buffer
+that it returns. Don't access the argument after calling this function unless
+you have an additional reference to it.</p>
+<div class="refsect3">
+<a name="gst-buffer-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>buf</p></td>
+<td class="parameter_description"><p> a <a class="link" href="GstBuffer.html" title="GstBuffer"><span class="type">GstBuffer</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-buffer-make-writable.returns"></a><h4>Returns</h4>
+<p> a writable buffer which may or may not be the
+same as <em class="parameter"><code>buf</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">
@@ -1069,6 +3041,44 @@
 <pre class="programlisting"><a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
 gst_buffer_replace (<em class="parameter"><code><a class="link" href="GstBuffer.html" title="GstBuffer"><span class="type">GstBuffer</span></a> **obuf</code></em>,
                     <em class="parameter"><code><a class="link" href="GstBuffer.html" title="GstBuffer"><span class="type">GstBuffer</span></a> *nbuf</code></em>);</pre>
+<p>Modifies a pointer to a <a class="link" href="GstBuffer.html" title="GstBuffer"><span class="type">GstBuffer</span></a> to point to a different <a class="link" href="GstBuffer.html" title="GstBuffer"><span class="type">GstBuffer</span></a>. The
+modification is done atomically (so this is useful for ensuring thread safety
+in some cases), and the reference counts are updated appropriately (the old
+buffer is unreffed, the new is reffed).</p>
+<p>Either <em class="parameter"><code>nbuf</code></em>
+ or the <a class="link" href="GstBuffer.html" title="GstBuffer"><span class="type">GstBuffer</span></a> pointed to by <em class="parameter"><code>obuf</code></em>
+ may be <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-buffer-replace.parameters"></a><h4>Parameters</h4>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
+<colgroup>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
+</colgroup>
+<tbody>
+<tr>
+<td class="parameter_name"><p>obuf</p></td>
+<td class="parameter_description"><p> pointer to a pointer to
+a <a class="link" href="GstBuffer.html" title="GstBuffer"><span class="type">GstBuffer</span></a> to be replaced. </p></td>
+<td class="parameter_annotations"><span class="annotation">[<acronym title="Parameter for input and for returning results. Default is transfer full."><span class="acronym">inout</span></acronym>][<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>][<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></td>
+</tr>
+<tr>
+<td class="parameter_name"><p>nbuf</p></td>
+<td class="parameter_description"><p> pointer to a <a class="link" href="GstBuffer.html" title="GstBuffer"><span class="type">GstBuffer</span></a> that will
+replace the buffer pointed to by <em class="parameter"><code>obuf</code></em>
+. </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-buffer-replace.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>obuf</code></em>
+was different from <em class="parameter"><code>nbuf</code></em>
+.</p>
+</div>
 </div>
 <hr>
 <div class="refsect2">
@@ -1076,6 +3086,40 @@
 <pre class="programlisting"><a class="link" href="GstBuffer.html" title="GstBuffer"><span class="returnvalue">GstBuffer</span></a> *
 gst_buffer_append (<em class="parameter"><code><a class="link" href="GstBuffer.html" title="GstBuffer"><span class="type">GstBuffer</span></a> *buf1</code></em>,
                    <em class="parameter"><code><a class="link" href="GstBuffer.html" title="GstBuffer"><span class="type">GstBuffer</span></a> *buf2</code></em>);</pre>
+<p>Append all the memory from <em class="parameter"><code>buf2</code></em>
+ to <em class="parameter"><code>buf1</code></em>
+. The result buffer will contain a
+concatenation of the memory of <em class="parameter"><code>buf1</code></em>
+ and <em class="parameter"><code>buf2</code></em>
+.</p>
+<div class="refsect3">
+<a name="gst-buffer-append.parameters"></a><h4>Parameters</h4>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
+<colgroup>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
+</colgroup>
+<tbody>
+<tr>
+<td class="parameter_name"><p>buf1</p></td>
+<td class="parameter_description"><p> the first source <a class="link" href="GstBuffer.html" title="GstBuffer"><span class="type">GstBuffer</span></a> to append. </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>buf2</p></td>
+<td class="parameter_description"><p> the second source <a class="link" href="GstBuffer.html" title="GstBuffer"><span class="type">GstBuffer</span></a> to append. </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-buffer-append.returns"></a><h4>Returns</h4>
+<p> the new <a class="link" href="GstBuffer.html" title="GstBuffer"><span class="type">GstBuffer</span></a> that contains the memory
+of the two source buffers. </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">
@@ -1085,6 +3129,55 @@
                           <em class="parameter"><code><a class="link" href="GstBuffer.html" title="GstBuffer"><span class="type">GstBuffer</span></a> *buf2</code></em>,
                           <em class="parameter"><code><a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#gssize"><span class="type">gssize</span></a> offset</code></em>,
                           <em class="parameter"><code><a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#gssize"><span class="type">gssize</span></a> size</code></em>);</pre>
+<p>Append <em class="parameter"><code>size</code></em>
+ bytes at <em class="parameter"><code>offset</code></em>
+ from <em class="parameter"><code>buf2</code></em>
+ to <em class="parameter"><code>buf1</code></em>
+. The result buffer will
+contain a concatenation of the memory of <em class="parameter"><code>buf1</code></em>
+ and the requested region of
+<em class="parameter"><code>buf2</code></em>
+.</p>
+<div class="refsect3">
+<a name="gst-buffer-append-region.parameters"></a><h4>Parameters</h4>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
+<colgroup>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
+</colgroup>
+<tbody>
+<tr>
+<td class="parameter_name"><p>buf1</p></td>
+<td class="parameter_description"><p> the first source <a class="link" href="GstBuffer.html" title="GstBuffer"><span class="type">GstBuffer</span></a> to append. </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>buf2</p></td>
+<td class="parameter_description"><p> the second source <a class="link" href="GstBuffer.html" title="GstBuffer"><span class="type">GstBuffer</span></a> to append. </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>offset</p></td>
+<td class="parameter_description"><p>the offset in <em class="parameter"><code>buf2</code></em>
+</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>size</p></td>
+<td class="parameter_description"><p>the size or -1 of <em class="parameter"><code>buf2</code></em>
+</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<div class="refsect3">
+<a name="gst-buffer-append-region.returns"></a><h4>Returns</h4>
+<p> the new <a class="link" href="GstBuffer.html" title="GstBuffer"><span class="type">GstBuffer</span></a> that contains the memory
+of the two source buffers. </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">
@@ -1092,6 +3185,43 @@
 <pre class="programlisting"><a class="link" href="gstreamer-GstMeta.html#GstMeta" title="struct GstMeta"><span class="returnvalue">GstMeta</span></a> *
 gst_buffer_get_meta (<em class="parameter"><code><a class="link" href="GstBuffer.html" title="GstBuffer"><span class="type">GstBuffer</span></a> *buffer</code></em>,
                      <em class="parameter"><code><a href="/usr/share/gtk-doc/html/gobjectgobject-Type-Information.html#GType"><span class="type">GType</span></a> api</code></em>);</pre>
+<p>Get the metadata for <em class="parameter"><code>api</code></em>
+ on buffer. When there is no such metadata, <a href="/usr/share/gtk-doc/html/glibglib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a> is
+returned. If multiple metadata with the given <em class="parameter"><code>api</code></em>
+ are attached to this
+buffer only the first one is returned.  To handle multiple metadata with a
+given API use <a class="link" href="GstBuffer.html#gst-buffer-iterate-meta" title="gst_buffer_iterate_meta ()"><code class="function">gst_buffer_iterate_meta()</code></a> or <a class="link" href="GstBuffer.html#gst-buffer-foreach-meta" title="gst_buffer_foreach_meta ()"><code class="function">gst_buffer_foreach_meta()</code></a> instead
+and check the meta-&gt;info.api member for the API type.</p>
+<div class="refsect3">
+<a name="gst-buffer-get-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 class="link" href="GstBuffer.html" title="GstBuffer"><span class="type">GstBuffer</span></a></p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>api</p></td>
+<td class="parameter_description"><p>the <a href="/usr/share/gtk-doc/html/gobjectgobject-Type-Information.html#GType"><span class="type">GType</span></a> of an API</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<div class="refsect3">
+<a name="gst-buffer-get-meta.returns"></a><h4>Returns</h4>
+<p> the metadata for <em class="parameter"><code>api</code></em>
+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>][<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>
 </div>
 <hr>
 <div class="refsect2">
@@ -1100,6 +3230,45 @@
 gst_buffer_add_meta (<em class="parameter"><code><a class="link" href="GstBuffer.html" title="GstBuffer"><span class="type">GstBuffer</span></a> *buffer</code></em>,
                      <em class="parameter"><code>const <a class="link" href="gstreamer-GstMeta.html#GstMetaInfo" title="struct GstMetaInfo"><span class="type">GstMetaInfo</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> params</code></em>);</pre>
+<p>Add metadata for <em class="parameter"><code>info</code></em>
+ to <em class="parameter"><code>buffer</code></em>
+ using the parameters in <em class="parameter"><code>params</code></em>
+.</p>
+<div class="refsect3">
+<a name="gst-buffer-add-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 class="link" href="GstBuffer.html" title="GstBuffer"><span class="type">GstBuffer</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="gstreamer-GstMeta.html#GstMetaInfo" title="struct GstMetaInfo"><span class="type">GstMetaInfo</span></a></p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>params</p></td>
+<td class="parameter_description"><p>params for <em class="parameter"><code>info</code></em>
+</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<div class="refsect3">
+<a name="gst-buffer-add-meta.returns"></a><h4>Returns</h4>
+<p> the metadata for the api in <em class="parameter"><code>info</code></em>
+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">
@@ -1107,6 +3276,37 @@
 <pre class="programlisting"><a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
 gst_buffer_remove_meta (<em class="parameter"><code><a class="link" href="GstBuffer.html" title="GstBuffer"><span class="type">GstBuffer</span></a> *buffer</code></em>,
                         <em class="parameter"><code><a class="link" href="gstreamer-GstMeta.html#GstMeta" title="struct GstMeta"><span class="type">GstMeta</span></a> *meta</code></em>);</pre>
+<p>Remove the metadata for <em class="parameter"><code>meta</code></em>
+ on <em class="parameter"><code>buffer</code></em>
+.</p>
+<div class="refsect3">
+<a name="gst-buffer-remove-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 class="link" href="GstBuffer.html" title="GstBuffer"><span class="type">GstBuffer</span></a></p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>meta</p></td>
+<td class="parameter_description"><p>a <a class="link" href="gstreamer-GstMeta.html#GstMeta" title="struct GstMeta"><span class="type">GstMeta</span></a></p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<div class="refsect3">
+<a name="gst-buffer-remove-meta.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 metadata existed and was removed, <a href="/usr/share/gtk-doc/html/glibglib-Standard-Macros.html#FALSE:CAPS"><code class="literal">FALSE</code></a> if no such
+metadata was on <em class="parameter"><code>buffer</code></em>
+.</p>
+</div>
 </div>
 <hr>
 <div class="refsect2">
@@ -1114,6 +3314,40 @@
 <pre class="programlisting"><a class="link" href="gstreamer-GstMeta.html#GstMeta" title="struct GstMeta"><span class="returnvalue">GstMeta</span></a> *
 gst_buffer_iterate_meta (<em class="parameter"><code><a class="link" href="GstBuffer.html" title="GstBuffer"><span class="type">GstBuffer</span></a> *buffer</code></em>,
                          <em class="parameter"><code><a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> *state</code></em>);</pre>
+<p>Retrieve the next <a class="link" href="gstreamer-GstMeta.html#GstMeta" title="struct GstMeta"><span class="type">GstMeta</span></a> after <em class="parameter"><code>current</code></em>
+. If <em class="parameter"><code>state</code></em>
+ points
+to <a href="/usr/share/gtk-doc/html/glibglib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a>, the first metadata is returned.</p>
+<p><em class="parameter"><code>state</code></em>
+ will be updated with an opaque state pointer</p>
+<div class="refsect3">
+<a name="gst-buffer-iterate-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 class="link" href="GstBuffer.html" title="GstBuffer"><span class="type">GstBuffer</span></a></p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>state</p></td>
+<td class="parameter_description"><p>an opaque state pointer</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<div class="refsect3">
+<a name="gst-buffer-iterate-meta.returns"></a><h4>Returns</h4>
+<p> The next <a class="link" href="gstreamer-GstMeta.html#GstMeta" title="struct GstMeta"><span class="type">GstMeta</span></a> or <a href="/usr/share/gtk-doc/html/glibglib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a>
+when there are no more items. </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="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>
 </div>
 <hr>
 <div class="refsect2">
@@ -1122,6 +3356,46 @@
 <span class="c_punctuation">(</span>*GstBufferForeachMetaFunc<span class="c_punctuation">)</span> (<em class="parameter"><code><a class="link" href="GstBuffer.html" title="GstBuffer"><span class="type">GstBuffer</span></a> *buffer</code></em>,
                              <em class="parameter"><code><a class="link" href="gstreamer-GstMeta.html#GstMeta" title="struct GstMeta"><span class="type">GstMeta</span></a> **meta</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>A function that will be called from <a class="link" href="GstBuffer.html#gst-buffer-foreach-meta" title="gst_buffer_foreach_meta ()"><code class="function">gst_buffer_foreach_meta()</code></a>. The <em class="parameter"><code>meta</code></em>
+
+field will point to a the reference of the meta.</p>
+<p><em class="parameter"><code>buffer</code></em>
+ should not be modified from this callback.</p>
+<p>When this function returns <a href="/usr/share/gtk-doc/html/glibglib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a>, the next meta will be
+returned. When <a href="/usr/share/gtk-doc/html/glibglib-Standard-Macros.html#FALSE:CAPS"><code class="literal">FALSE</code></a> is returned, <a class="link" href="GstBuffer.html#gst-buffer-foreach-meta" title="gst_buffer_foreach_meta ()"><code class="function">gst_buffer_foreach_meta()</code></a> will return.</p>
+<p>When <em class="parameter"><code>meta</code></em>
+ is set to <a href="/usr/share/gtk-doc/html/glibglib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a>, the item will be removed from the buffer.</p>
+<div class="refsect3">
+<a name="GstBufferForeachMetaFunc.parameters"></a><h4>Parameters</h4>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
+<colgroup>
+<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 class="link" href="GstBuffer.html" title="GstBuffer"><span class="type">GstBuffer</span></a></p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>meta</p></td>
+<td class="parameter_description"><p> a pointer to a <a class="link" href="gstreamer-GstMeta.html#GstMeta" title="struct GstMeta"><span class="type">GstMeta</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="NULL may be passed as the value in, out, in-out; or as a return value."><span class="acronym">nullable</span></acronym>]</span></td>
+</tr>
+<tr>
+<td class="parameter_name"><p>user_data</p></td>
+<td class="parameter_description"><p>user data passed to <a class="link" href="GstBuffer.html#gst-buffer-foreach-meta" title="gst_buffer_foreach_meta ()"><code class="function">gst_buffer_foreach_meta()</code></a></p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<div class="refsect3">
+<a name="GstBufferForeachMetaFunc.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> when <a class="link" href="GstBuffer.html#gst-buffer-foreach-meta" title="gst_buffer_foreach_meta ()"><code class="function">gst_buffer_foreach_meta()</code></a> should stop</p>
+</div>
 </div>
 <hr>
 <div class="refsect2">
@@ -1130,6 +3404,48 @@
 gst_buffer_foreach_meta (<em class="parameter"><code><a class="link" href="GstBuffer.html" title="GstBuffer"><span class="type">GstBuffer</span></a> *buffer</code></em>,
                          <em class="parameter"><code><a class="link" href="GstBuffer.html#GstBufferForeachMetaFunc" title="GstBufferForeachMetaFunc ()"><span class="type">GstBufferForeachMetaFunc</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>Call <em class="parameter"><code>func</code></em>
+ with <em class="parameter"><code>user_data</code></em>
+ for each meta in <em class="parameter"><code>buffer</code></em>
+.</p>
+<p><em class="parameter"><code>func</code></em>
+ can modify the passed meta pointer or its contents. The return value
+of <em class="parameter"><code>func</code></em>
+ define if this function returns or if the remaining metadata items
+in the buffer should be skipped.</p>
+<div class="refsect3">
+<a name="gst-buffer-foreach-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 class="link" href="GstBuffer.html" title="GstBuffer"><span class="type">GstBuffer</span></a></p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>func</p></td>
+<td class="parameter_description"><p> a <a class="link" href="GstBuffer.html#GstBufferForeachMetaFunc" title="GstBufferForeachMetaFunc ()"><span class="type">GstBufferForeachMetaFunc</span></a> to call. </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 passed to <em class="parameter"><code>func</code></em>
+. </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-buffer-foreach-meta.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> when <em class="parameter"><code>func</code></em>
+returned <a href="/usr/share/gtk-doc/html/glibglib-Standard-Macros.html#FALSE:CAPS"><code class="literal">FALSE</code></a> for one of the metadata.</p>
+</div>
 </div>
 <hr>
 <div class="refsect2">
@@ -1137,11 +3453,166 @@
 <pre class="programlisting"><a class="link" href="GstBuffer.html#GstParentBufferMeta" title="struct GstParentBufferMeta"><span class="returnvalue">GstParentBufferMeta</span></a> *
 gst_buffer_add_parent_buffer_meta (<em class="parameter"><code><a class="link" href="GstBuffer.html" title="GstBuffer"><span class="type">GstBuffer</span></a> *buffer</code></em>,
                                    <em class="parameter"><code><a class="link" href="GstBuffer.html" title="GstBuffer"><span class="type">GstBuffer</span></a> *ref</code></em>);</pre>
+<p>Add a <a class="link" href="GstBuffer.html#GstParentBufferMeta" title="struct GstParentBufferMeta"><span class="type">GstParentBufferMeta</span></a> to <em class="parameter"><code>buffer</code></em>
+ that holds a reference on
+<em class="parameter"><code>ref</code></em>
+ until the buffer is freed.</p>
+<div class="refsect3">
+<a name="gst-buffer-add-parent-buffer-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 class="link" href="GstBuffer.html" title="GstBuffer"><span class="type">GstBuffer</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>ref</p></td>
+<td class="parameter_description"><p> a <a class="link" href="GstBuffer.html" title="GstBuffer"><span class="type">GstBuffer</span></a> to ref. </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-buffer-add-parent-buffer-meta.returns"></a><h4>Returns</h4>
+<p> The <a class="link" href="GstBuffer.html#GstParentBufferMeta" title="struct GstParentBufferMeta"><span class="type">GstParentBufferMeta</span></a> that was added to the buffer. </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: <a class="link" href="ix03.html#api-index-1.6">1.6</a></p>
 </div>
 <hr>
 <div class="refsect2">
 <a name="gst-buffer-get-parent-buffer-meta"></a><h3>gst_buffer_get_parent_buffer_meta()</h3>
 <pre class="programlisting">#define             gst_buffer_get_parent_buffer_meta(b)</pre>
+<p>Find and return a <a class="link" href="GstBuffer.html#GstParentBufferMeta" title="struct GstParentBufferMeta"><span class="type">GstParentBufferMeta</span></a> if one exists on the
+buffer</p>
+<div class="refsect3">
+<a name="gst-buffer-get-parent-buffer-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>b</p></td>
+<td class="parameter_description"><p>a <a class="link" href="GstBuffer.html" title="GstBuffer"><span class="type">GstBuffer</span></a></p></td>
+<td class="parameter_annotations"> </td>
+</tr></tbody>
+</table></div>
+</div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gst-buffer-get-flags"></a><h3>gst_buffer_get_flags ()</h3>
+<pre class="programlisting"><a class="link" href="GstBuffer.html#GstBufferFlags" title="enum GstBufferFlags"><span class="returnvalue">GstBufferFlags</span></a>
+gst_buffer_get_flags (<em class="parameter"><code><a class="link" href="GstBuffer.html" title="GstBuffer"><span class="type">GstBuffer</span></a> *buffer</code></em>);</pre>
+<p>Get the <a class="link" href="GstBuffer.html#GstBufferFlags" title="enum GstBufferFlags"><span class="type">GstBufferFlags</span></a> flags set on this buffer.</p>
+<div class="refsect3">
+<a name="gst-buffer-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>buffer</p></td>
+<td class="parameter_description"><p>a <a class="link" href="GstBuffer.html" title="GstBuffer"><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-flags.returns"></a><h4>Returns</h4>
+<p> the flags set on this buffer.</p>
+</div>
+<p class="since">Since: 1.10</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gst-buffer-set-flags"></a><h3>gst_buffer_set_flags ()</h3>
+<pre class="programlisting"><a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
+gst_buffer_set_flags (<em class="parameter"><code><a class="link" href="GstBuffer.html" title="GstBuffer"><span class="type">GstBuffer</span></a> *buffer</code></em>,
+                      <em class="parameter"><code><a class="link" href="GstBuffer.html#GstBufferFlags" title="enum GstBufferFlags"><span class="type">GstBufferFlags</span></a> flags</code></em>);</pre>
+<p>Sets one or more buffer flags on a buffer.</p>
+<div class="refsect3">
+<a name="gst-buffer-set-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>buffer</p></td>
+<td class="parameter_description"><p>a <a class="link" href="GstBuffer.html" title="GstBuffer"><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>the <a class="link" href="GstBuffer.html#GstBufferFlags" title="enum GstBufferFlags"><span class="type">GstBufferFlags</span></a> to set.</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<div class="refsect3">
+<a name="gst-buffer-set-flags.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>flags</code></em>
+were successfully set on buffer.</p>
+</div>
+<p class="since">Since: 1.10</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gst-buffer-unset-flags"></a><h3>gst_buffer_unset_flags ()</h3>
+<pre class="programlisting"><a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
+gst_buffer_unset_flags (<em class="parameter"><code><a class="link" href="GstBuffer.html" title="GstBuffer"><span class="type">GstBuffer</span></a> *buffer</code></em>,
+                        <em class="parameter"><code><a class="link" href="GstBuffer.html#GstBufferFlags" title="enum GstBufferFlags"><span class="type">GstBufferFlags</span></a> flags</code></em>);</pre>
+<p>Clears one or more buffer flags.</p>
+<div class="refsect3">
+<a name="gst-buffer-unset-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>buffer</p></td>
+<td class="parameter_description"><p>a <a class="link" href="GstBuffer.html" title="GstBuffer"><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>the <a class="link" href="GstBuffer.html#GstBufferFlags" title="enum GstBufferFlags"><span class="type">GstBufferFlags</span></a> to clear</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<div class="refsect3">
+<a name="gst-buffer-unset-flags.returns"></a><h4>Returns</h4>
+<p> true if <em class="parameter"><code>flags</code></em>
+is successfully cleared from buffer.</p>
+</div>
+<p class="since">Since: 1.10</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="gst-buffer-has-flags"></a><h3>gst_buffer_has_flags ()</h3>
+<pre class="programlisting"><a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
+gst_buffer_has_flags (<em class="parameter"><code><a class="link" href="GstBuffer.html" title="GstBuffer"><span class="type">GstBuffer</span></a> *buffer</code></em>,
+                      <em class="parameter"><code><a class="link" href="GstBuffer.html#GstBufferFlags" title="enum GstBufferFlags"><span class="type">GstBufferFlags</span></a> flags</code></em>);</pre>
 </div>
 </div>
 <div class="refsect1">
@@ -1163,10 +3634,71 @@
   guint64                offset_end;
 };
 </pre>
+<p>The structure of a <a class="link" href="GstBuffer.html" title="GstBuffer"><span class="type">GstBuffer</span></a>. Use the associated macros to access the public
+variables.</p>
+<div class="refsect3">
+<a name="GstBuffer.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="gstreamer-GstMiniObject.html#GstMiniObject" title="struct GstMiniObject"><span class="type">GstMiniObject</span></a> <em class="structfield"><code><a name="GstBuffer-struct.mini-object"></a>mini_object</code></em>;</p></td>
+<td class="struct_member_description"><p>the parent structure</p></td>
+<td class="struct_member_annotations"> </td>
+</tr>
+<tr>
+<td class="struct_member_name"><p><a class="link" href="GstBufferPool.html" title="GstBufferPool"><span class="type">GstBufferPool</span></a> *<em class="structfield"><code><a name="GstBuffer-struct.pool"></a>pool</code></em>;</p></td>
+<td class="struct_member_description"><p>pointer to the pool owner of the buffer</p></td>
+<td class="struct_member_annotations"> </td>
+</tr>
+<tr>
+<td class="struct_member_name"><p><a class="link" href="GstClock.html#GstClockTime" title="GstClockTime"><span class="type">GstClockTime</span></a> <em class="structfield"><code><a name="GstBuffer-struct.pts"></a>pts</code></em>;</p></td>
+<td class="struct_member_description"><p>presentation timestamp of the buffer, can be <a class="link" href="GstClock.html#GST-CLOCK-TIME-NONE:CAPS" title="GST_CLOCK_TIME_NONE"><span class="type">GST_CLOCK_TIME_NONE</span></a> when the
+pts is not known or relevant. The pts contains the timestamp when the
+media should be presented to the user.</p></td>
+<td class="struct_member_annotations"> </td>
+</tr>
+<tr>
+<td class="struct_member_name"><p><a class="link" href="GstClock.html#GstClockTime" title="GstClockTime"><span class="type">GstClockTime</span></a> <em class="structfield"><code><a name="GstBuffer-struct.dts"></a>dts</code></em>;</p></td>
+<td class="struct_member_description"><p>decoding timestamp of the buffer, can be <a class="link" href="GstClock.html#GST-CLOCK-TIME-NONE:CAPS" title="GST_CLOCK_TIME_NONE"><span class="type">GST_CLOCK_TIME_NONE</span></a> when the
+dts is not known or relevant. The dts contains the timestamp when the
+media should be processed.</p></td>
+<td class="struct_member_annotations"> </td>
+</tr>
+<tr>
+<td class="struct_member_name"><p><a class="link" href="GstClock.html#GstClockTime" title="GstClockTime"><span class="type">GstClockTime</span></a> <em class="structfield"><code><a name="GstBuffer-struct.duration"></a>duration</code></em>;</p></td>
+<td class="struct_member_description"><p>duration in time of the buffer data, can be <a class="link" href="GstClock.html#GST-CLOCK-TIME-NONE:CAPS" title="GST_CLOCK_TIME_NONE"><span class="type">GST_CLOCK_TIME_NONE</span></a>
+when the duration is not known or relevant.</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="GstBuffer-struct.offset"></a>offset</code></em>;</p></td>
+<td class="struct_member_description"><p>a media specific offset for the buffer data.
+For video frames, this is the frame number of this buffer.
+For audio samples, this is the offset of the first sample in this buffer.
+For file data or compressed data this is the byte offset of the first
+byte in this 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="GstBuffer-struct.offset-end"></a>offset_end</code></em>;</p></td>
+<td class="struct_member_description"><p>the last offset contained in this buffer. It has the same
+format as <em class="parameter"><code>offset</code></em>
+.</p></td>
+<td class="struct_member_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
 </div>
 <hr>
 <div class="refsect2">
 <a name="GstBufferFlags"></a><h3>enum GstBufferFlags</h3>
+<p>A set of buffer flags used to describe properties of a <a class="link" href="GstBuffer.html" title="GstBuffer"><span class="type">GstBuffer</span></a>.</p>
 <div class="refsect3">
 <a name="GstBufferFlags.members"></a><h4>Members</h4>
 <div class="informaltable"><table class="informaltable" width="100%" border="0">
@@ -1178,68 +3710,112 @@
 <tbody>
 <tr>
 <td class="enum_member_name"><p><a name="GST-BUFFER-FLAG-LIVE:CAPS"></a>GST_BUFFER_FLAG_LIVE</p></td>
-<td> </td>
-<td> </td>
+<td class="enum_member_description">
+<p>the buffer is live data and should be discarded in
+                              the PAUSED state.</p>
+</td>
+<td class="enum_member_annotations"> </td>
 </tr>
 <tr>
 <td class="enum_member_name"><p><a name="GST-BUFFER-FLAG-DECODE-ONLY:CAPS"></a>GST_BUFFER_FLAG_DECODE_ONLY</p></td>
-<td> </td>
-<td> </td>
+<td class="enum_member_description">
+<p>the buffer contains data that should be dropped
+                              because it will be clipped against the segment
+                              boundaries or because it does not contain data
+                              that should be shown to the user.</p>
+</td>
+<td class="enum_member_annotations"> </td>
 </tr>
 <tr>
 <td class="enum_member_name"><p><a name="GST-BUFFER-FLAG-DISCONT:CAPS"></a>GST_BUFFER_FLAG_DISCONT</p></td>
-<td> </td>
-<td> </td>
+<td class="enum_member_description">
+<p>the buffer marks a data discontinuity in the stream.
+                              This typically occurs after a seek or a dropped buffer
+                              from a live or network source.</p>
+</td>
+<td class="enum_member_annotations"> </td>
 </tr>
 <tr>
 <td class="enum_member_name"><p><a name="GST-BUFFER-FLAG-RESYNC:CAPS"></a>GST_BUFFER_FLAG_RESYNC</p></td>
-<td> </td>
-<td> </td>
+<td class="enum_member_description">
+<p>the buffer timestamps might have a discontinuity
+                              and this buffer is a good point to resynchronize.</p>
+</td>
+<td class="enum_member_annotations"> </td>
 </tr>
 <tr>
 <td class="enum_member_name"><p><a name="GST-BUFFER-FLAG-CORRUPTED:CAPS"></a>GST_BUFFER_FLAG_CORRUPTED</p></td>
-<td> </td>
-<td> </td>
+<td class="enum_member_description">
+<p>the buffer data is corrupted.</p>
+</td>
+<td class="enum_member_annotations"> </td>
 </tr>
 <tr>
 <td class="enum_member_name"><p><a name="GST-BUFFER-FLAG-MARKER:CAPS"></a>GST_BUFFER_FLAG_MARKER</p></td>
-<td> </td>
-<td> </td>
+<td class="enum_member_description">
+<p>the buffer contains a media specific marker. for
+                              video this is typically the end of a frame boundary, for audio
+                              this is usually the start of a talkspurt.</p>
+</td>
+<td class="enum_member_annotations"> </td>
 </tr>
 <tr>
 <td class="enum_member_name"><p><a name="GST-BUFFER-FLAG-HEADER:CAPS"></a>GST_BUFFER_FLAG_HEADER</p></td>
-<td> </td>
-<td> </td>
+<td class="enum_member_description">
+<p>the buffer contains header information that is
+                              needed to decode the following data.</p>
+</td>
+<td class="enum_member_annotations"> </td>
 </tr>
 <tr>
 <td class="enum_member_name"><p><a name="GST-BUFFER-FLAG-GAP:CAPS"></a>GST_BUFFER_FLAG_GAP</p></td>
-<td> </td>
-<td> </td>
+<td class="enum_member_description">
+<p>the buffer has been created to fill a gap in the
+                              stream and contains media neutral data (elements can
+                              switch to optimized code path that ignores the buffer
+                              content).</p>
+</td>
+<td class="enum_member_annotations"> </td>
 </tr>
 <tr>
 <td class="enum_member_name"><p><a name="GST-BUFFER-FLAG-DROPPABLE:CAPS"></a>GST_BUFFER_FLAG_DROPPABLE</p></td>
-<td> </td>
-<td> </td>
+<td class="enum_member_description">
+<p>the buffer can be dropped without breaking the
+                              stream, for example to reduce bandwidth.</p>
+</td>
+<td class="enum_member_annotations"> </td>
 </tr>
 <tr>
 <td class="enum_member_name"><p><a name="GST-BUFFER-FLAG-DELTA-UNIT:CAPS"></a>GST_BUFFER_FLAG_DELTA_UNIT</p></td>
-<td> </td>
-<td> </td>
+<td class="enum_member_description">
+<p>this unit cannot be decoded independently.</p>
+</td>
+<td class="enum_member_annotations"> </td>
 </tr>
 <tr>
 <td class="enum_member_name"><p><a name="GST-BUFFER-FLAG-TAG-MEMORY:CAPS"></a>GST_BUFFER_FLAG_TAG_MEMORY</p></td>
-<td> </td>
-<td> </td>
+<td class="enum_member_description">
+<p>this flag is set when memory of the buffer
+                              is added/removed</p>
+</td>
+<td class="enum_member_annotations"> </td>
 </tr>
 <tr>
 <td class="enum_member_name"><p><a name="GST-BUFFER-FLAG-SYNC-AFTER:CAPS"></a>GST_BUFFER_FLAG_SYNC_AFTER</p></td>
-<td> </td>
-<td> </td>
+<td class="enum_member_description">
+<p>Elements which write to disk or permanent
+				 storage should ensure the data is synced after
+				 writing the contents of this buffer. (Since 1.6)</p>
+</td>
+<td class="enum_member_annotations"> </td>
 </tr>
 <tr>
 <td class="enum_member_name"><p><a name="GST-BUFFER-FLAG-LAST:CAPS"></a>GST_BUFFER_FLAG_LAST</p></td>
-<td> </td>
-<td> </td>
+<td class="enum_member_description">
+<p>additional media specific flags can be added starting from
+                              this flag.</p>
+</td>
+<td class="enum_member_annotations"> </td>
 </tr>
 </tbody>
 </table></div>
@@ -1250,10 +3826,13 @@
 <a name="GST-BUFFER-OFFSET-NONE:CAPS"></a><h3>GST_BUFFER_OFFSET_NONE</h3>
 <pre class="programlisting">#define GST_BUFFER_OFFSET_NONE  ((guint64)-1)
 </pre>
+<p>Constant for no-offset return results.</p>
 </div>
 <hr>
 <div class="refsect2">
 <a name="GstBufferCopyFlags"></a><h3>enum GstBufferCopyFlags</h3>
+<p>A set of flags that can be provided to the <a class="link" href="GstBuffer.html#gst-buffer-copy-into" title="gst_buffer_copy_into ()"><code class="function">gst_buffer_copy_into()</code></a>
+function to specify which items should be copied.</p>
 <div class="refsect3">
 <a name="GstBufferCopyFlags.members"></a><h4>Members</h4>
 <div class="informaltable"><table class="informaltable" width="100%" border="0">
@@ -1265,38 +3844,60 @@
 <tbody>
 <tr>
 <td class="enum_member_name"><p><a name="GST-BUFFER-COPY-NONE:CAPS"></a>GST_BUFFER_COPY_NONE</p></td>
-<td> </td>
-<td> </td>
+<td class="enum_member_description">
+<p>copy nothing</p>
+</td>
+<td class="enum_member_annotations"> </td>
 </tr>
 <tr>
 <td class="enum_member_name"><p><a name="GST-BUFFER-COPY-FLAGS:CAPS"></a>GST_BUFFER_COPY_FLAGS</p></td>
-<td> </td>
-<td> </td>
+<td class="enum_member_description">
+<p>flag indicating that buffer flags should be copied</p>
+</td>
+<td class="enum_member_annotations"> </td>
 </tr>
 <tr>
 <td class="enum_member_name"><p><a name="GST-BUFFER-COPY-TIMESTAMPS:CAPS"></a>GST_BUFFER_COPY_TIMESTAMPS</p></td>
-<td> </td>
-<td> </td>
+<td class="enum_member_description">
+<p>flag indicating that buffer pts, dts,
+  duration, offset and offset_end should be copied</p>
+</td>
+<td class="enum_member_annotations"> </td>
 </tr>
 <tr>
 <td class="enum_member_name"><p><a name="GST-BUFFER-COPY-META:CAPS"></a>GST_BUFFER_COPY_META</p></td>
-<td> </td>
-<td> </td>
+<td class="enum_member_description">
+<p>flag indicating that buffer meta should be
+  copied</p>
+</td>
+<td class="enum_member_annotations"> </td>
 </tr>
 <tr>
 <td class="enum_member_name"><p><a name="GST-BUFFER-COPY-MEMORY:CAPS"></a>GST_BUFFER_COPY_MEMORY</p></td>
-<td> </td>
-<td> </td>
+<td class="enum_member_description">
+<p>flag indicating that buffer memory should be reffed
+  and appended to already existing memory. Unless the memory is marked as
+  NO_SHARE, no actual copy of the memory is made but it is simply reffed.
+  Add <em class="parameter"><code>GST_BUFFER_COPY_DEEP</code></em>
+ to force a real copy.</p>
+</td>
+<td class="enum_member_annotations"> </td>
 </tr>
 <tr>
 <td class="enum_member_name"><p><a name="GST-BUFFER-COPY-MERGE:CAPS"></a>GST_BUFFER_COPY_MERGE</p></td>
-<td> </td>
-<td> </td>
+<td class="enum_member_description">
+<p>flag indicating that buffer memory should be
+  merged</p>
+</td>
+<td class="enum_member_annotations"> </td>
 </tr>
 <tr>
 <td class="enum_member_name"><p><a name="GST-BUFFER-COPY-DEEP:CAPS"></a>GST_BUFFER_COPY_DEEP</p></td>
-<td> </td>
-<td> </td>
+<td class="enum_member_description">
+<p>flag indicating that memory should always be
+  copied instead of reffed (Since 1.2)</p>
+</td>
+<td class="enum_member_annotations"> </td>
 </tr>
 </tbody>
 </table></div>
@@ -1306,12 +3907,16 @@
 <div class="refsect2">
 <a name="GST-BUFFER-COPY-METADATA:CAPS"></a><h3>GST_BUFFER_COPY_METADATA</h3>
 <pre class="programlisting">#define             GST_BUFFER_COPY_METADATA</pre>
+<p>Combination of all possible metadata fields that can be copied with
+<a class="link" href="GstBuffer.html#gst-buffer-copy-into" title="gst_buffer_copy_into ()"><code class="function">gst_buffer_copy_into()</code></a>.</p>
 </div>
 <hr>
 <div class="refsect2">
 <a name="GST-BUFFER-COPY-ALL:CAPS"></a><h3>GST_BUFFER_COPY_ALL</h3>
 <pre class="programlisting">#define GST_BUFFER_COPY_ALL  ((GstBufferCopyFlags)(GST_BUFFER_COPY_METADATA | GST_BUFFER_COPY_MEMORY))
 </pre>
+<p>Combination of all possible fields that can be copied with
+<a class="link" href="GstBuffer.html#gst-buffer-copy-into" title="gst_buffer_copy_into ()"><code class="function">gst_buffer_copy_into()</code></a>.</p>
 </div>
 <hr>
 <div class="refsect2">
@@ -1322,7 +3927,41 @@
   GstBuffer *buffer;
 };
 </pre>
+<p>The <a class="link" href="GstBuffer.html#GstParentBufferMeta" title="struct GstParentBufferMeta"><span class="type">GstParentBufferMeta</span></a> is a <a class="link" href="gstreamer-GstMeta.html#GstMeta" title="struct GstMeta"><span class="type">GstMeta</span></a> which can be attached to a <a class="link" href="GstBuffer.html" title="GstBuffer"><span class="type">GstBuffer</span></a>
+to hold a reference to another buffer that is only released when the child
+<a class="link" href="GstBuffer.html" title="GstBuffer"><span class="type">GstBuffer</span></a> is released.</p>
+<p>Typically, <a class="link" href="GstBuffer.html#GstParentBufferMeta" title="struct GstParentBufferMeta"><span class="type">GstParentBufferMeta</span></a> is used when the child buffer is directly
+using the <a class="link" href="GstMemory.html" title="GstMemory"><span class="type">GstMemory</span></a> of the parent buffer, and wants to prevent the parent
+buffer from being returned to a buffer pool until the <a class="link" href="GstMemory.html" title="GstMemory"><span class="type">GstMemory</span></a> is available
+for re-use.</p>
+<div class="refsect3">
+<a name="GstParentBufferMeta.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="gstreamer-GstMeta.html#GstMeta" title="struct GstMeta"><span class="type">GstMeta</span></a> <em class="structfield"><code><a name="GstParentBufferMeta.parent"></a>parent</code></em>;</p></td>
+<td class="struct_member_description"><p>the parent <a class="link" href="gstreamer-GstMeta.html#GstMeta" title="struct GstMeta"><span class="type">GstMeta</span></a> structure</p></td>
+<td class="struct_member_annotations"> </td>
+</tr>
+<tr>
+<td class="struct_member_name"><p><a class="link" href="GstBuffer.html" title="GstBuffer"><span class="type">GstBuffer</span></a> *<em class="structfield"><code><a name="GstParentBufferMeta.buffer"></a>buffer</code></em>;</p></td>
+<td class="struct_member_description"><p>the <a class="link" href="GstBuffer.html" title="GstBuffer"><span class="type">GstBuffer</span></a> on which a reference is being held.</p></td>
+<td class="struct_member_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
 </div>
+<p class="since">Since: <a class="link" href="ix03.html#api-index-1.6">1.6</a></p>
+</div>
+</div>
+<div class="refsect1">
+<a name="GstBuffer.see-also"></a><h2>See Also</h2>
+<p><a class="link" href="GstPad.html" title="GstPad"><span class="type">GstPad</span></a>, <a class="link" href="gstreamer-GstMiniObject.html#GstMiniObject" title="struct GstMiniObject"><span class="type">GstMiniObject</span></a>, <a class="link" href="GstMemory.html" title="GstMemory"><span class="type">GstMemory</span></a>, <a class="link" href="gstreamer-GstMeta.html#GstMeta" title="struct GstMeta"><span class="type">GstMeta</span></a>, <a class="link" href="GstBufferPool.html" title="GstBufferPool"><span class="type">GstBufferPool</span></a></p>
 </div>
 </div>
 <div class="footer">
diff --git a/docs/gst/html/GstBufferList.html b/docs/gst/html/GstBufferList.html
index 80dd7f6..2fc36b4 100644
--- a/docs/gst/html/GstBufferList.html
+++ b/docs/gst/html/GstBufferList.html
@@ -28,7 +28,7 @@
 <div class="refnamediv"><table width="100%"><tr>
 <td valign="top">
 <h2><span class="refentrytitle"><a name="GstBufferList.top_of_page"></a>GstBufferList</span></h2>
-<p>GstBufferList</p>
+<p>GstBufferList — Lists of buffers for data-passing</p>
 </td>
 <td class="gallery_image" valign="top" align="right"></td>
 </tr></table></div>
@@ -183,6 +183,12 @@
 </div>
 <div class="refsect1">
 <a name="GstBufferList.description"></a><h2>Description</h2>
+<p>Buffer lists are an object containing a list of buffers.</p>
+<p>Buffer lists are created with <a class="link" href="GstBufferList.html#gst-buffer-list-new" title="gst_buffer_list_new ()"><code class="function">gst_buffer_list_new()</code></a> and filled with data
+using a <a class="link" href="GstBufferList.html#gst-buffer-list-insert" title="gst_buffer_list_insert ()"><code class="function">gst_buffer_list_insert()</code></a>.</p>
+<p>Buffer lists can be pushed on a srcpad with <a class="link" href="GstPad.html#gst-pad-push-list" title="gst_pad_push_list ()"><code class="function">gst_pad_push_list()</code></a>. This is
+interesting when multiple buffers need to be pushed in one go because it
+can reduce the amount of overhead for pushing each buffer individually.</p>
 </div>
 <div class="refsect1">
 <a name="GstBufferList.functions_details"></a><h2>Functions</h2>
@@ -190,24 +196,105 @@
 <a name="gst-buffer-list-new"></a><h3>gst_buffer_list_new ()</h3>
 <pre class="programlisting"><a class="link" href="GstBufferList.html" title="GstBufferList"><span class="returnvalue">GstBufferList</span></a> *
 gst_buffer_list_new (<em class="parameter"><code><span class="type">void</span></code></em>);</pre>
+<p>Creates a new, empty <a class="link" href="GstBufferList.html" title="GstBufferList"><span class="type">GstBufferList</span></a>. The caller is responsible for unreffing
+the returned <a class="link" href="GstBufferList.html" title="GstBufferList"><span class="type">GstBufferList</span></a>.</p>
+<p>Free-function: gst_buffer_list_unref</p>
+<div class="refsect3">
+<a name="gst-buffer-list-new.returns"></a><h4>Returns</h4>
+<p> the new <a class="link" href="GstBufferList.html" title="GstBufferList"><span class="type">GstBufferList</span></a>. <a class="link" href="GstBufferList.html#gst-buffer-list-unref" title="gst_buffer_list_unref ()"><code class="function">gst_buffer_list_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-buffer-list-new-sized"></a><h3>gst_buffer_list_new_sized ()</h3>
 <pre class="programlisting"><a class="link" href="GstBufferList.html" title="GstBufferList"><span class="returnvalue">GstBufferList</span></a> *
 gst_buffer_list_new_sized (<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>Creates a new, empty <a class="link" href="GstBufferList.html" title="GstBufferList"><span class="type">GstBufferList</span></a>. The caller is responsible for unreffing
+the returned <a class="link" href="GstBufferList.html" title="GstBufferList"><span class="type">GstBufferList</span></a>. The list will have <em class="parameter"><code>size</code></em>
+ space preallocated so
+that memory reallocations can be avoided.</p>
+<p>Free-function: gst_buffer_list_unref</p>
+<div class="refsect3">
+<a name="gst-buffer-list-new-sized.parameters"></a><h4>Parameters</h4>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
+<colgroup>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
+</colgroup>
+<tbody><tr>
+<td class="parameter_name"><p>size</p></td>
+<td class="parameter_description"><p>an initial reserved size</p></td>
+<td class="parameter_annotations"> </td>
+</tr></tbody>
+</table></div>
+</div>
+<div class="refsect3">
+<a name="gst-buffer-list-new-sized.returns"></a><h4>Returns</h4>
+<p> the new <a class="link" href="GstBufferList.html" title="GstBufferList"><span class="type">GstBufferList</span></a>. <a class="link" href="GstBufferList.html#gst-buffer-list-unref" title="gst_buffer_list_unref ()"><code class="function">gst_buffer_list_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-buffer-list-length"></a><h3>gst_buffer_list_length ()</h3>
 <pre class="programlisting"><a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#guint"><span class="returnvalue">guint</span></a>
 gst_buffer_list_length (<em class="parameter"><code><a class="link" href="GstBufferList.html" title="GstBufferList"><span class="type">GstBufferList</span></a> *list</code></em>);</pre>
+<p>Returns the number of buffers in <em class="parameter"><code>list</code></em>
+.</p>
+<div class="refsect3">
+<a name="gst-buffer-list-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>list</p></td>
+<td class="parameter_description"><p>a <a class="link" href="GstBufferList.html" title="GstBufferList"><span class="type">GstBufferList</span></a></p></td>
+<td class="parameter_annotations"> </td>
+</tr></tbody>
+</table></div>
+</div>
+<div class="refsect3">
+<a name="gst-buffer-list-length.returns"></a><h4>Returns</h4>
+<p> the number of buffers in the buffer list</p>
+</div>
 </div>
 <hr>
 <div class="refsect2">
 <a name="gst-buffer-list-add"></a><h3>gst_buffer_list_add()</h3>
 <pre class="programlisting">#define gst_buffer_list_add(l,b) gst_buffer_list_insert((l),-1,(b));
 </pre>
+<p>Append <em class="parameter"><code>b</code></em>
+ at the end of <em class="parameter"><code>l</code></em>
+.</p>
+<div class="refsect3">
+<a name="gst-buffer-list-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>l</p></td>
+<td class="parameter_description"><p>a <a class="link" href="GstBufferList.html" title="GstBufferList"><span class="type">GstBufferList</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="GstBuffer.html" title="GstBuffer"><span class="type">GstBuffer</span></a></p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
 </div>
 <hr>
 <div class="refsect2">
@@ -216,6 +303,40 @@
 gst_buffer_list_insert (<em class="parameter"><code><a class="link" href="GstBufferList.html" title="GstBufferList"><span class="type">GstBufferList</span></a> *list</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="GstBuffer.html" title="GstBuffer"><span class="type">GstBuffer</span></a> *buffer</code></em>);</pre>
+<p>Insert <em class="parameter"><code>buffer</code></em>
+ at <em class="parameter"><code>idx</code></em>
+ in <em class="parameter"><code>list</code></em>
+. Other buffers are moved to make room for
+this new buffer.</p>
+<p>A -1 value for <em class="parameter"><code>idx</code></em>
+ will append the buffer at the end.</p>
+<div class="refsect3">
+<a name="gst-buffer-list-insert.parameters"></a><h4>Parameters</h4>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
+<colgroup>
+<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 class="link" href="GstBufferList.html" title="GstBufferList"><span class="type">GstBufferList</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>buffer</p></td>
+<td class="parameter_description"><p> a <a class="link" href="GstBuffer.html" title="GstBuffer"><span class="type">GstBuffer</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">
@@ -224,42 +345,207 @@
 gst_buffer_list_remove (<em class="parameter"><code><a class="link" href="GstBufferList.html" title="GstBufferList"><span class="type">GstBufferList</span></a> *list</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 href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#guint"><span class="type">guint</span></a> length</code></em>);</pre>
+<p>Remove <em class="parameter"><code>length</code></em>
+ buffers starting from <em class="parameter"><code>idx</code></em>
+ in <em class="parameter"><code>list</code></em>
+. The following buffers
+are moved to close the gap.</p>
+<div class="refsect3">
+<a name="gst-buffer-list-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>list</p></td>
+<td class="parameter_description"><p>a <a class="link" href="GstBufferList.html" title="GstBufferList"><span class="type">GstBufferList</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>length</p></td>
+<td class="parameter_description"><p>the amount to remove</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
 </div>
 <hr>
 <div class="refsect2">
 <a name="gst-buffer-list-ref"></a><h3>gst_buffer_list_ref ()</h3>
 <pre class="programlisting"><a class="link" href="GstBufferList.html" title="GstBufferList"><span class="returnvalue">GstBufferList</span></a> *
 gst_buffer_list_ref (<em class="parameter"><code><a class="link" href="GstBufferList.html" title="GstBufferList"><span class="type">GstBufferList</span></a> *list</code></em>);</pre>
+<p>Increases the refcount of the given buffer list by one.</p>
+<p>Note that the refcount affects the writability of <em class="parameter"><code>list</code></em>
+ and its data, see
+<a class="link" href="GstBufferList.html#gst-buffer-list-make-writable" title="gst_buffer_list_make_writable()"><code class="function">gst_buffer_list_make_writable()</code></a>. It is important to note that keeping
+additional references to GstBufferList instances can potentially increase
+the number of memcpy operations in a pipeline.</p>
+<div class="refsect3">
+<a name="gst-buffer-list-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>list</p></td>
+<td class="parameter_description"><p>a <a class="link" href="GstBufferList.html" title="GstBufferList"><span class="type">GstBufferList</span></a></p></td>
+<td class="parameter_annotations"> </td>
+</tr></tbody>
+</table></div>
+</div>
+<div class="refsect3">
+<a name="gst-buffer-list-ref.returns"></a><h4>Returns</h4>
+<p> <em class="parameter"><code>list</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-buffer-list-unref"></a><h3>gst_buffer_list_unref ()</h3>
 <pre class="programlisting"><span class="returnvalue">void</span>
 gst_buffer_list_unref (<em class="parameter"><code><a class="link" href="GstBufferList.html" title="GstBufferList"><span class="type">GstBufferList</span></a> *list</code></em>);</pre>
+<p>Decreases the refcount of the buffer list. If the refcount reaches 0, the
+buffer list will be freed.</p>
+<div class="refsect3">
+<a name="gst-buffer-list-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>list</p></td>
+<td class="parameter_description"><p> a <a class="link" href="GstBufferList.html" title="GstBufferList"><span class="type">GstBufferList</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">
 <a name="gst-buffer-list-copy"></a><h3>gst_buffer_list_copy ()</h3>
 <pre class="programlisting"><a class="link" href="GstBufferList.html" title="GstBufferList"><span class="returnvalue">GstBufferList</span></a> *
 gst_buffer_list_copy (<em class="parameter"><code>const <a class="link" href="GstBufferList.html" title="GstBufferList"><span class="type">GstBufferList</span></a> *list</code></em>);</pre>
+<p>Create a shallow copy of the given buffer list. This will make a newly
+allocated copy of the source list with copies of buffer pointers. The
+refcount of buffers pointed to will be increased by one.</p>
+<div class="refsect3">
+<a name="gst-buffer-list-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>list</p></td>
+<td class="parameter_description"><p>a <a class="link" href="GstBufferList.html" title="GstBufferList"><span class="type">GstBufferList</span></a></p></td>
+<td class="parameter_annotations"> </td>
+</tr></tbody>
+</table></div>
+</div>
+<div class="refsect3">
+<a name="gst-buffer-list-copy.returns"></a><h4>Returns</h4>
+<p> a new copy of <em class="parameter"><code>list</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-buffer-list-copy-deep"></a><h3>gst_buffer_list_copy_deep ()</h3>
 <pre class="programlisting"><a class="link" href="GstBufferList.html" title="GstBufferList"><span class="returnvalue">GstBufferList</span></a> *
 gst_buffer_list_copy_deep (<em class="parameter"><code>const <a class="link" href="GstBufferList.html" title="GstBufferList"><span class="type">GstBufferList</span></a> *list</code></em>);</pre>
+<p>Create a copy of the given buffer list. This will make a newly allocated
+copy of the buffer that the source buffer list contains.</p>
+<div class="refsect3">
+<a name="gst-buffer-list-copy-deep.parameters"></a><h4>Parameters</h4>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
+<colgroup>
+<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 class="link" href="GstBufferList.html" title="GstBufferList"><span class="type">GstBufferList</span></a></p></td>
+<td class="parameter_annotations"> </td>
+</tr></tbody>
+</table></div>
+</div>
+<div class="refsect3">
+<a name="gst-buffer-list-copy-deep.returns"></a><h4>Returns</h4>
+<p> a new copy of <em class="parameter"><code>list</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: <a class="link" href="ix03.html#api-index-1.6">1.6</a></p>
 </div>
 <hr>
 <div class="refsect2">
 <a name="gst-buffer-list-is-writable"></a><h3>gst_buffer_list_is_writable()</h3>
 <pre class="programlisting">#define gst_buffer_list_is_writable(list) gst_mini_object_is_writable (GST_MINI_OBJECT_CAST (list))
 </pre>
+<p>Tests if you can safely add buffers and groups into a buffer list.</p>
+<div class="refsect3">
+<a name="gst-buffer-list-is-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>list</p></td>
+<td class="parameter_description"><p>a <a class="link" href="GstBufferList.html" title="GstBufferList"><span class="type">GstBufferList</span></a></p></td>
+<td class="parameter_annotations"> </td>
+</tr></tbody>
+</table></div>
+</div>
 </div>
 <hr>
 <div class="refsect2">
 <a name="gst-buffer-list-make-writable"></a><h3>gst_buffer_list_make_writable()</h3>
 <pre class="programlisting">#define gst_buffer_list_make_writable(list) GST_BUFFER_LIST_CAST (gst_mini_object_make_writable (GST_MINI_OBJECT_CAST (list)))
 </pre>
+<p>Makes a writable buffer list from the given buffer list. If the source buffer
+list is already writable, this will simply return the same buffer list. A
+copy will otherwise be made using <a class="link" href="GstBufferList.html#gst-buffer-list-copy" title="gst_buffer_list_copy ()"><code class="function">gst_buffer_list_copy()</code></a>.</p>
+<div class="refsect3">
+<a name="gst-buffer-list-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>list</p></td>
+<td class="parameter_description"><p> a <a class="link" href="GstBufferList.html" title="GstBufferList"><span class="type">GstBufferList</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-buffer-list-make-writable.returns"></a><h4>Returns</h4>
+<p> a writable list, which may or may not be the
+same as <em class="parameter"><code>list</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">
@@ -268,6 +554,51 @@
 <span class="c_punctuation">(</span>*GstBufferListFunc<span class="c_punctuation">)</span> (<em class="parameter"><code><a class="link" href="GstBuffer.html" title="GstBuffer"><span class="type">GstBuffer</span></a> **buffer</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 href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> user_data</code></em>);</pre>
+<p>A function that will be called from <a class="link" href="GstBufferList.html#gst-buffer-list-foreach" title="gst_buffer_list_foreach ()"><code class="function">gst_buffer_list_foreach()</code></a>. The <em class="parameter"><code>buffer</code></em>
+
+field will point to a the reference of the buffer at <em class="parameter"><code>idx</code></em>
+.</p>
+<p>When this function returns <a href="/usr/share/gtk-doc/html/glibglib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a>, the next buffer will be
+returned. When <a href="/usr/share/gtk-doc/html/glibglib-Standard-Macros.html#FALSE:CAPS"><code class="literal">FALSE</code></a> is returned, <a class="link" href="GstBufferList.html#gst-buffer-list-foreach" title="gst_buffer_list_foreach ()"><code class="function">gst_buffer_list_foreach()</code></a> will return.</p>
+<p>When <em class="parameter"><code>buffer</code></em>
+ is set to <a href="/usr/share/gtk-doc/html/glibglib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a>, the item will be removed from the bufferlist.
+When <em class="parameter"><code>buffer</code></em>
+ has been made writable, the new buffer reference can be assigned
+to <em class="parameter"><code>buffer</code></em>
+. This function is responsible for unreffing the old buffer when
+removing or modifying.</p>
+<div class="refsect3">
+<a name="GstBufferListFunc.parameters"></a><h4>Parameters</h4>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
+<colgroup>
+<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> pointer the buffer. </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 may be passed as the value in, out, in-out; or as a return value."><span class="acronym">nullable</span></acronym>]</span></td>
+</tr>
+<tr>
+<td class="parameter_name"><p>idx</p></td>
+<td class="parameter_description"><p>the index of <em class="parameter"><code>buffer</code></em>
+</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 <a class="link" href="GstBufferList.html#gst-buffer-list-foreach" title="gst_buffer_list_foreach ()"><code class="function">gst_buffer_list_foreach()</code></a></p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<div class="refsect3">
+<a name="GstBufferListFunc.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> when <a class="link" href="GstBufferList.html#gst-buffer-list-foreach" title="gst_buffer_list_foreach ()"><code class="function">gst_buffer_list_foreach()</code></a> should stop</p>
+</div>
 </div>
 <hr>
 <div class="refsect2">
@@ -276,6 +607,51 @@
 gst_buffer_list_foreach (<em class="parameter"><code><a class="link" href="GstBufferList.html" title="GstBufferList"><span class="type">GstBufferList</span></a> *list</code></em>,
                          <em class="parameter"><code><a class="link" href="GstBufferList.html#GstBufferListFunc" title="GstBufferListFunc ()"><span class="type">GstBufferListFunc</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>Call <em class="parameter"><code>func</code></em>
+ with <em class="parameter"><code>data</code></em>
+ for each buffer in <em class="parameter"><code>list</code></em>
+.</p>
+<p><em class="parameter"><code>func</code></em>
+ can modify the passed buffer pointer or its contents. The return value
+of <em class="parameter"><code>func</code></em>
+ define if this function returns or if the remaining buffers in
+the list should be skipped.</p>
+<div class="refsect3">
+<a name="gst-buffer-list-foreach.parameters"></a><h4>Parameters</h4>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
+<colgroup>
+<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 class="link" href="GstBufferList.html" title="GstBufferList"><span class="type">GstBufferList</span></a></p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>func</p></td>
+<td class="parameter_description"><p> a <a class="link" href="GstBufferList.html#GstBufferListFunc" title="GstBufferListFunc ()"><span class="type">GstBufferListFunc</span></a> to call. </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 passed to <em class="parameter"><code>func</code></em>
+. </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-buffer-list-foreach.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>func</code></em>
+returned <a href="/usr/share/gtk-doc/html/glibglib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a> for each buffer in <em class="parameter"><code>list</code></em>
+or when
+<em class="parameter"><code>list</code></em>
+is empty.</p>
+</div>
 </div>
 <hr>
 <div class="refsect2">
@@ -283,6 +659,39 @@
 <pre class="programlisting"><a class="link" href="GstBuffer.html" title="GstBuffer"><span class="returnvalue">GstBuffer</span></a> *
 gst_buffer_list_get (<em class="parameter"><code><a class="link" href="GstBufferList.html" title="GstBufferList"><span class="type">GstBufferList</span></a> *list</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 buffer at <em class="parameter"><code>idx</code></em>
+.</p>
+<div class="refsect3">
+<a name="gst-buffer-list-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>list</p></td>
+<td class="parameter_description"><p>a <a class="link" href="GstBufferList.html" title="GstBufferList"><span class="type">GstBufferList</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-buffer-list-get.returns"></a><h4>Returns</h4>
+<p> the buffer at <em class="parameter"><code>idx</code></em>
+in <em class="parameter"><code>group</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 buffer. The buffer remains valid as
+long as <em class="parameter"><code>list</code></em>
+is valid and buffer is not removed from the list. </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="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>
 </div>
 </div>
 <div class="refsect1">
@@ -290,8 +699,13 @@
 <div class="refsect2">
 <a name="GstBufferList-struct"></a><h3>GstBufferList</h3>
 <pre class="programlisting">typedef struct _GstBufferList GstBufferList;</pre>
+<p>Opaque list of grouped buffers.</p>
 </div>
 </div>
+<div class="refsect1">
+<a name="GstBufferList.see-also"></a><h2>See Also</h2>
+<p><a class="link" href="GstPad.html" title="GstPad"><span class="type">GstPad</span></a>, <a class="link" href="gstreamer-GstMiniObject.html#GstMiniObject" title="struct GstMiniObject"><span class="type">GstMiniObject</span></a></p>
+</div>
 </div>
 <div class="footer">
 <hr>Generated by GTK-Doc V1.25</div>
diff --git a/docs/gst/html/GstBufferPool.html b/docs/gst/html/GstBufferPool.html
index bbe74af..243bc43 100644
--- a/docs/gst/html/GstBufferPool.html
+++ b/docs/gst/html/GstBufferPool.html
@@ -28,7 +28,7 @@
 <div class="refnamediv"><table width="100%"><tr>
 <td valign="top">
 <h2><span class="refentrytitle"><a name="GstBufferPool.top_of_page"></a>GstBufferPool</span></h2>
-<p>GstBufferPool</p>
+<p>GstBufferPool — Pool for buffers</p>
 </td>
 <td class="gallery_image" valign="top" align="right"></td>
 </tr></table></div>
@@ -241,6 +241,34 @@
 </div>
 <div class="refsect1">
 <a name="GstBufferPool.description"></a><h2>Description</h2>
+<p>A <a class="link" href="GstBufferPool.html" title="GstBufferPool"><span class="type">GstBufferPool</span></a> is an object that can be used to pre-allocate and recycle
+buffers of the same size and with the same properties.</p>
+<p>A <a class="link" href="GstBufferPool.html" title="GstBufferPool"><span class="type">GstBufferPool</span></a> is created with <a class="link" href="GstBufferPool.html#gst-buffer-pool-new" title="gst_buffer_pool_new ()"><code class="function">gst_buffer_pool_new()</code></a>.</p>
+<p>Once a pool is created, it needs to be configured. A call to
+<a class="link" href="GstBufferPool.html#gst-buffer-pool-get-config" title="gst_buffer_pool_get_config ()"><code class="function">gst_buffer_pool_get_config()</code></a> returns the current configuration structure from
+the pool. With <a class="link" href="GstBufferPool.html#gst-buffer-pool-config-set-params" title="gst_buffer_pool_config_set_params ()"><code class="function">gst_buffer_pool_config_set_params()</code></a> and
+<a class="link" href="GstBufferPool.html#gst-buffer-pool-config-set-allocator" title="gst_buffer_pool_config_set_allocator ()"><code class="function">gst_buffer_pool_config_set_allocator()</code></a> the bufferpool parameters and
+allocator can be configured. Other properties can be configured in the pool
+depending on the pool implementation.</p>
+<p>A bufferpool can have extra options that can be enabled with
+<a class="link" href="GstBufferPool.html#gst-buffer-pool-config-add-option" title="gst_buffer_pool_config_add_option ()"><code class="function">gst_buffer_pool_config_add_option()</code></a>. The available options can be retrieved
+with <a class="link" href="GstBufferPool.html#gst-buffer-pool-get-options" title="gst_buffer_pool_get_options ()"><code class="function">gst_buffer_pool_get_options()</code></a>. Some options allow for additional
+configuration properties to be set.</p>
+<p>After the configuration structure has been configured,
+<a class="link" href="GstBufferPool.html#gst-buffer-pool-set-config" title="gst_buffer_pool_set_config ()"><code class="function">gst_buffer_pool_set_config()</code></a> updates the configuration in the pool. This can
+fail when the configuration structure is not accepted.</p>
+<p>After the a pool has been configured, it can be activated with
+<a class="link" href="GstBufferPool.html#gst-buffer-pool-set-active" title="gst_buffer_pool_set_active ()"><code class="function">gst_buffer_pool_set_active()</code></a>. This will preallocate the configured resources
+in the pool.</p>
+<p>When the pool is active, <a class="link" href="GstBufferPool.html#gst-buffer-pool-acquire-buffer" title="gst_buffer_pool_acquire_buffer ()"><code class="function">gst_buffer_pool_acquire_buffer()</code></a> can be used to
+retrieve a buffer from the pool.</p>
+<p>Buffers allocated from a bufferpool will automatically be returned to the
+pool with <a class="link" href="GstBufferPool.html#gst-buffer-pool-release-buffer" title="gst_buffer_pool_release_buffer ()"><code class="function">gst_buffer_pool_release_buffer()</code></a> when their refcount drops to 0.</p>
+<p>The bufferpool can be deactivated again with <a class="link" href="GstBufferPool.html#gst-buffer-pool-set-active" title="gst_buffer_pool_set_active ()"><code class="function">gst_buffer_pool_set_active()</code></a>.
+All further <a class="link" href="GstBufferPool.html#gst-buffer-pool-acquire-buffer" title="gst_buffer_pool_acquire_buffer ()"><code class="function">gst_buffer_pool_acquire_buffer()</code></a> calls will return an error. When
+all buffers are returned to the pool they will be freed.</p>
+<p>Use <a class="link" href="GstObject.html#gst-object-unref" title="gst_object_unref ()"><code class="function">gst_object_unref()</code></a> to release the reference to a bufferpool. If the
+refcount of the pool reaches 0, the pool will be freed.</p>
 </div>
 <div class="refsect1">
 <a name="GstBufferPool.functions_details"></a><h2>Functions</h2>
@@ -248,12 +276,35 @@
 <a name="GST-BUFFER-POOL-IS-FLUSHING:CAPS"></a><h3>GST_BUFFER_POOL_IS_FLUSHING()</h3>
 <pre class="programlisting">#define GST_BUFFER_POOL_IS_FLUSHING(pool)  (g_atomic_int_get (&amp;pool-&gt;flushing))
 </pre>
+<p>Check if the bufferpool is flushing. Subclasses might want to check the
+state of the pool in the acquire function.</p>
+<div class="refsect3">
+<a name="GST-BUFFER-POOL-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>pool</p></td>
+<td class="parameter_description"><p>a GstBufferPool</p></td>
+<td class="parameter_annotations"> </td>
+</tr></tbody>
+</table></div>
+</div>
 </div>
 <hr>
 <div class="refsect2">
 <a name="gst-buffer-pool-new"></a><h3>gst_buffer_pool_new ()</h3>
 <pre class="programlisting"><a class="link" href="GstBufferPool.html" title="GstBufferPool"><span class="returnvalue">GstBufferPool</span></a> *
 gst_buffer_pool_new (<em class="parameter"><code><span class="type">void</span></code></em>);</pre>
+<p>Creates a new <a class="link" href="GstBufferPool.html" title="GstBufferPool"><span class="type">GstBufferPool</span></a> instance.</p>
+<div class="refsect3">
+<a name="gst-buffer-pool-new.returns"></a><h4>Returns</h4>
+<p> a new <a class="link" href="GstBufferPool.html" title="GstBufferPool"><span class="type">GstBufferPool</span></a> instance. </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">
@@ -264,6 +315,49 @@
                                    <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> *min_buffers</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_buffers</code></em>);</pre>
+<p>Get the configuration values from <em class="parameter"><code>config</code></em>
+.</p>
+<div class="refsect3">
+<a name="gst-buffer-pool-config-get-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>config</p></td>
+<td class="parameter_description"><p> a <a class="link" href="GstBufferPool.html" title="GstBufferPool"><span class="type">GstBufferPool</span></a> configuration. </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>caps</p></td>
+<td class="parameter_description"><p> the caps of buffers. </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="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>size</p></td>
+<td class="parameter_description"><p> the size of each buffer, not including prefix and padding. </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>min_buffers</p></td>
+<td class="parameter_description"><p> the minimum amount of buffers to allocate. </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_buffers</p></td>
+<td class="parameter_description"><p> the maximum amount of buffers to allocate or 0 for unlimited. </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-buffer-pool-config-get-params.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 all parameters could be fetched.</p>
+</div>
 </div>
 <hr>
 <div class="refsect2">
@@ -274,6 +368,45 @@
                                    <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> min_buffers</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_buffers</code></em>);</pre>
+<p>Configure <em class="parameter"><code>config</code></em>
+ with the given parameters.</p>
+<div class="refsect3">
+<a name="gst-buffer-pool-config-set-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>config</p></td>
+<td class="parameter_description"><p>a <a class="link" href="GstBufferPool.html" title="GstBufferPool"><span class="type">GstBufferPool</span></a> configuration</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>caps</p></td>
+<td class="parameter_description"><p>caps for the buffers</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 each buffer, not including prefix and padding</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>min_buffers</p></td>
+<td class="parameter_description"><p>the minimum amount of buffers to allocate.</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>max_buffers</p></td>
+<td class="parameter_description"><p>the maximum amount of buffers to allocate or 0 for unlimited.</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
 </div>
 <hr>
 <div class="refsect2">
@@ -285,6 +418,59 @@
                                 <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> min_buffers</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_buffers</code></em>);</pre>
+<p>Validate that changes made to <em class="parameter"><code>config</code></em>
+ are still valid in the context of the
+expected parameters. This function is a helper that can be used to validate
+changes made by a pool to a config when <a class="link" href="GstBufferPool.html#gst-buffer-pool-set-config" title="gst_buffer_pool_set_config ()"><code class="function">gst_buffer_pool_set_config()</code></a>
+returns <a href="/usr/share/gtk-doc/html/glibglib-Standard-Macros.html#FALSE:CAPS"><code class="literal">FALSE</code></a>. This expects that <em class="parameter"><code>caps</code></em>
+ haven't changed and that
+<em class="parameter"><code>min_buffers</code></em>
+ aren't lower then what we initially expected.
+This does not check if options or allocator parameters are still valid,
+won't check if size have changed, since changing the size is valid to adapt
+padding.</p>
+<div class="refsect3">
+<a name="gst-buffer-pool-config-validate-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>config</p></td>
+<td class="parameter_description"><p> a <a class="link" href="GstBufferPool.html" title="GstBufferPool"><span class="type">GstBufferPool</span></a> configuration. </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>caps</p></td>
+<td class="parameter_description"><p> the excepted caps of buffers. </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>size</p></td>
+<td class="parameter_description"><p>the expected size of each buffer, not including prefix and padding</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>min_buffers</p></td>
+<td class="parameter_description"><p>the expected minimum amount of buffers to allocate.</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>max_buffers</p></td>
+<td class="parameter_description"><p>the expect maximum amount of buffers to allocate or 0 for unlimited.</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<div class="refsect3">
+<a name="gst-buffer-pool-config-validate-params.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 parameters are valid in this context.</p>
+</div>
+<p class="since">Since: <a class="link" href="ix04.html#api-index-1.4">1.4</a></p>
 </div>
 <hr>
 <div class="refsect2">
@@ -293,6 +479,41 @@
 gst_buffer_pool_config_get_allocator (<em class="parameter"><code><a class="link" href="GstStructure.html" title="GstStructure"><span class="type">GstStructure</span></a> *config</code></em>,
                                       <em class="parameter"><code><a class="link" href="GstAllocator.html" title="GstAllocator"><span class="type">GstAllocator</span></a> **allocator</code></em>,
                                       <em class="parameter"><code><a class="link" href="GstAllocator.html#GstAllocationParams"><span class="type">GstAllocationParams</span></a> *params</code></em>);</pre>
+<p>Get the <em class="parameter"><code>allocator</code></em>
+ and <em class="parameter"><code>params</code></em>
+ from <em class="parameter"><code>config</code></em>
+.</p>
+<div class="refsect3">
+<a name="gst-buffer-pool-config-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>config</p></td>
+<td class="parameter_description"><p> a <a class="link" href="GstBufferPool.html" title="GstBufferPool"><span class="type">GstBufferPool</span></a> configuration. </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>allocator</p></td>
+<td class="parameter_description"><p> a <a class="link" href="GstAllocator.html" title="GstAllocator"><span class="type">GstAllocator</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"><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="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>params</p></td>
+<td class="parameter_description"><p> <a class="link" href="GstAllocator.html#GstAllocationParams"><span class="type">GstAllocationParams</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"><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-buffer-pool-config-get-allocator.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 values are set. </p>
+</div>
 </div>
 <hr>
 <div class="refsect2">
@@ -301,12 +522,81 @@
 gst_buffer_pool_config_set_allocator (<em class="parameter"><code><a class="link" href="GstStructure.html" title="GstStructure"><span class="type">GstStructure</span></a> *config</code></em>,
                                       <em class="parameter"><code><a class="link" href="GstAllocator.html" title="GstAllocator"><span class="type">GstAllocator</span></a> *allocator</code></em>,
                                       <em class="parameter"><code>const <a class="link" href="GstAllocator.html#GstAllocationParams"><span class="type">GstAllocationParams</span></a> *params</code></em>);</pre>
+<p>Set the <em class="parameter"><code>allocator</code></em>
+ and <em class="parameter"><code>params</code></em>
+ on <em class="parameter"><code>config</code></em>
+.</p>
+<p>One of <em class="parameter"><code>allocator</code></em>
+ and <em class="parameter"><code>params</code></em>
+ can be <a href="/usr/share/gtk-doc/html/glibglib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a>, but not both. When <em class="parameter"><code>allocator</code></em>
+
+is <a href="/usr/share/gtk-doc/html/glibglib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a>, the default allocator of the pool will use the values in <em class="parameter"><code>param</code></em>
+
+to perform its allocation. When <em class="parameter"><code>param</code></em>
+ is <a href="/usr/share/gtk-doc/html/glibglib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a>, the pool will use the
+provided <em class="parameter"><code>allocator</code></em>
+ with its default <a class="link" href="GstAllocator.html#GstAllocationParams"><span class="type">GstAllocationParams</span></a>.</p>
+<p>A call to <a class="link" href="GstBufferPool.html#gst-buffer-pool-set-config" title="gst_buffer_pool_set_config ()"><code class="function">gst_buffer_pool_set_config()</code></a> can update the allocator and params
+with the values that it is able to do. Some pools are, for example, not able
+to operate with different allocators or cannot allocate with the values
+specified in <em class="parameter"><code>params</code></em>
+. Use <a class="link" href="GstBufferPool.html#gst-buffer-pool-get-config" title="gst_buffer_pool_get_config ()"><code class="function">gst_buffer_pool_get_config()</code></a> to get the currently
+used values.</p>
+<div class="refsect3">
+<a name="gst-buffer-pool-config-set-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>config</p></td>
+<td class="parameter_description"><p>a <a class="link" href="GstBufferPool.html" title="GstBufferPool"><span class="type">GstBufferPool</span></a> configuration</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>allocator</p></td>
+<td class="parameter_description"><p> a <a class="link" href="GstAllocator.html" title="GstAllocator"><span class="type">GstAllocator</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>params</p></td>
+<td class="parameter_description"><p> <a class="link" href="GstAllocator.html#GstAllocationParams"><span class="type">GstAllocationParams</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>
 <hr>
 <div class="refsect2">
 <a name="gst-buffer-pool-config-n-options"></a><h3>gst_buffer_pool_config_n_options ()</h3>
 <pre class="programlisting"><a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#guint"><span class="returnvalue">guint</span></a>
 gst_buffer_pool_config_n_options (<em class="parameter"><code><a class="link" href="GstStructure.html" title="GstStructure"><span class="type">GstStructure</span></a> *config</code></em>);</pre>
+<p>Retrieve the number of values currently stored in the options array of the
+<em class="parameter"><code>config</code></em>
+ structure.</p>
+<div class="refsect3">
+<a name="gst-buffer-pool-config-n-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>config</p></td>
+<td class="parameter_description"><p>a <a class="link" href="GstBufferPool.html" title="GstBufferPool"><span class="type">GstBufferPool</span></a> configuration</p></td>
+<td class="parameter_annotations"> </td>
+</tr></tbody>
+</table></div>
+</div>
+<div class="refsect3">
+<a name="gst-buffer-pool-config-n-options.returns"></a><h4>Returns</h4>
+<p> the options array size as a <a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#guint"><span class="type">guint</span></a>.</p>
+</div>
 </div>
 <hr>
 <div class="refsect2">
@@ -314,6 +604,34 @@
 <pre class="programlisting"><span class="returnvalue">void</span>
 gst_buffer_pool_config_add_option (<em class="parameter"><code><a class="link" href="GstStructure.html" title="GstStructure"><span class="type">GstStructure</span></a> *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> *option</code></em>);</pre>
+<p>Enabled the option in <em class="parameter"><code>config</code></em>
+. This will instruct the <em class="parameter"><code>bufferpool</code></em>
+ to enable
+the specified option on the buffers that it allocates.</p>
+<p>The supported options by <em class="parameter"><code>pool</code></em>
+ can be retrieved with <a class="link" href="GstBufferPool.html#gst-buffer-pool-get-options" title="gst_buffer_pool_get_options ()"><code class="function">gst_buffer_pool_get_options()</code></a>.</p>
+<div class="refsect3">
+<a name="gst-buffer-pool-config-add-option.parameters"></a><h4>Parameters</h4>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
+<colgroup>
+<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 class="link" href="GstBufferPool.html" title="GstBufferPool"><span class="type">GstBufferPool</span></a> configuration</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>option</p></td>
+<td class="parameter_description"><p>an option to add</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
 </div>
 <hr>
 <div class="refsect2">
@@ -321,6 +639,37 @@
 <pre class="programlisting">const <a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> *
 gst_buffer_pool_config_get_option (<em class="parameter"><code><a class="link" href="GstStructure.html" title="GstStructure"><span class="type">GstStructure</span></a> *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> index</code></em>);</pre>
+<p>Parse an available <em class="parameter"><code>config</code></em>
+ and get the option at <em class="parameter"><code>index</code></em>
+ of the options API
+array.</p>
+<div class="refsect3">
+<a name="gst-buffer-pool-config-get-option.parameters"></a><h4>Parameters</h4>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
+<colgroup>
+<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 class="link" href="GstBufferPool.html" title="GstBufferPool"><span class="type">GstBufferPool</span></a> configuration</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>index</p></td>
+<td class="parameter_description"><p>position in the option array to read</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<div class="refsect3">
+<a name="gst-buffer-pool-config-get-option.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> of the option at <em class="parameter"><code>index</code></em>
+.</p>
+</div>
 </div>
 <hr>
 <div class="refsect2">
@@ -328,12 +677,67 @@
 <pre class="programlisting"><a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
 gst_buffer_pool_config_has_option (<em class="parameter"><code><a class="link" href="GstStructure.html" title="GstStructure"><span class="type">GstStructure</span></a> *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> *option</code></em>);</pre>
+<p>Check if <em class="parameter"><code>config</code></em>
+ contains <em class="parameter"><code>option</code></em>
+.</p>
+<div class="refsect3">
+<a name="gst-buffer-pool-config-has-option.parameters"></a><h4>Parameters</h4>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
+<colgroup>
+<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 class="link" href="GstBufferPool.html" title="GstBufferPool"><span class="type">GstBufferPool</span></a> configuration</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>option</p></td>
+<td class="parameter_description"><p>an option</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<div class="refsect3">
+<a name="gst-buffer-pool-config-has-option.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 options array contains <em class="parameter"><code>option</code></em>
+.</p>
+</div>
 </div>
 <hr>
 <div class="refsect2">
 <a name="gst-buffer-pool-get-options"></a><h3>gst_buffer_pool_get_options ()</h3>
 <pre class="programlisting">const <a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a> **
 gst_buffer_pool_get_options (<em class="parameter"><code><a class="link" href="GstBufferPool.html" title="GstBufferPool"><span class="type">GstBufferPool</span></a> *pool</code></em>);</pre>
+<p>Get a <a href="/usr/share/gtk-doc/html/glibglib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a> terminated array of string with supported bufferpool options for
+<em class="parameter"><code>pool</code></em>
+. An option would typically be enabled with
+<a class="link" href="GstBufferPool.html#gst-buffer-pool-config-add-option" title="gst_buffer_pool_config_add_option ()"><code class="function">gst_buffer_pool_config_add_option()</code></a>.</p>
+<div class="refsect3">
+<a name="gst-buffer-pool-get-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>pool</p></td>
+<td class="parameter_description"><p>a <a class="link" href="GstBufferPool.html" title="GstBufferPool"><span class="type">GstBufferPool</span></a></p></td>
+<td class="parameter_annotations"> </td>
+</tr></tbody>
+</table></div>
+</div>
+<div class="refsect3">
+<a name="gst-buffer-pool-get-options.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. </p>
+<p><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></p>
+</div>
 </div>
 <hr>
 <div class="refsect2">
@@ -341,12 +745,66 @@
 <pre class="programlisting"><a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
 gst_buffer_pool_has_option (<em class="parameter"><code><a class="link" href="GstBufferPool.html" title="GstBufferPool"><span class="type">GstBufferPool</span></a> *pool</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> *option</code></em>);</pre>
+<p>Check if the bufferpool supports <em class="parameter"><code>option</code></em>
+.</p>
+<div class="refsect3">
+<a name="gst-buffer-pool-has-option.parameters"></a><h4>Parameters</h4>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
+<colgroup>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
+</colgroup>
+<tbody>
+<tr>
+<td class="parameter_name"><p>pool</p></td>
+<td class="parameter_description"><p>a <a class="link" href="GstBufferPool.html" title="GstBufferPool"><span class="type">GstBufferPool</span></a></p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>option</p></td>
+<td class="parameter_description"><p>an option</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<div class="refsect3">
+<a name="gst-buffer-pool-has-option.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 buffer pool contains <em class="parameter"><code>option</code></em>
+.</p>
+</div>
 </div>
 <hr>
 <div class="refsect2">
 <a name="gst-buffer-pool-get-config"></a><h3>gst_buffer_pool_get_config ()</h3>
 <pre class="programlisting"><a class="link" href="GstStructure.html" title="GstStructure"><span class="returnvalue">GstStructure</span></a> *
 gst_buffer_pool_get_config (<em class="parameter"><code><a class="link" href="GstBufferPool.html" title="GstBufferPool"><span class="type">GstBufferPool</span></a> *pool</code></em>);</pre>
+<p>Get a copy of the current configuration of the pool. This configuration
+can either be modified and used for the <a class="link" href="GstBufferPool.html#gst-buffer-pool-set-config" title="gst_buffer_pool_set_config ()"><code class="function">gst_buffer_pool_set_config()</code></a> call
+or it must be freed after usage.</p>
+<div class="refsect3">
+<a name="gst-buffer-pool-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>pool</p></td>
+<td class="parameter_description"><p>a <a class="link" href="GstBufferPool.html" title="GstBufferPool"><span class="type">GstBufferPool</span></a></p></td>
+<td class="parameter_annotations"> </td>
+</tr></tbody>
+</table></div>
+</div>
+<div class="refsect3">
+<a name="gst-buffer-pool-get-config.returns"></a><h4>Returns</h4>
+<p> a copy of the current configuration of <em class="parameter"><code>pool</code></em>
+. use
+<a class="link" href="GstStructure.html#gst-structure-free" title="gst_structure_free ()"><code class="function">gst_structure_free()</code></a> after usage or <a class="link" href="GstBufferPool.html#gst-buffer-pool-set-config" title="gst_buffer_pool_set_config ()"><code class="function">gst_buffer_pool_set_config()</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">
@@ -354,6 +812,48 @@
 <pre class="programlisting"><a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
 gst_buffer_pool_set_config (<em class="parameter"><code><a class="link" href="GstBufferPool.html" title="GstBufferPool"><span class="type">GstBufferPool</span></a> *pool</code></em>,
                             <em class="parameter"><code><a class="link" href="GstStructure.html" title="GstStructure"><span class="type">GstStructure</span></a> *config</code></em>);</pre>
+<p>Set the configuration of the pool. If the pool is already configured, and
+the configuration haven't change, this function will return <a href="/usr/share/gtk-doc/html/glibglib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a>. If the
+pool is active, this method will return <a href="/usr/share/gtk-doc/html/glibglib-Standard-Macros.html#FALSE:CAPS"><code class="literal">FALSE</code></a> and active configuration
+will remain. Buffers allocated form this pool must be returned or else this
+function will do nothing and return <a href="/usr/share/gtk-doc/html/glibglib-Standard-Macros.html#FALSE:CAPS"><code class="literal">FALSE</code></a>.</p>
+<p><em class="parameter"><code>config</code></em>
+ is a <a class="link" href="GstStructure.html" title="GstStructure"><span class="type">GstStructure</span></a> that contains the configuration parameters for
+the pool. A default and mandatory set of parameters can be configured with
+<a class="link" href="GstBufferPool.html#gst-buffer-pool-config-set-params" title="gst_buffer_pool_config_set_params ()"><code class="function">gst_buffer_pool_config_set_params()</code></a>, <a class="link" href="GstBufferPool.html#gst-buffer-pool-config-set-allocator" title="gst_buffer_pool_config_set_allocator ()"><code class="function">gst_buffer_pool_config_set_allocator()</code></a>
+and <a class="link" href="GstBufferPool.html#gst-buffer-pool-config-add-option" title="gst_buffer_pool_config_add_option ()"><code class="function">gst_buffer_pool_config_add_option()</code></a>.</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="GstBufferPool.html#gst-buffer-pool-get-config" title="gst_buffer_pool_get_config ()"><code class="function">gst_buffer_pool_get_config()</code></a>.</p>
+<p>This function takes ownership of <em class="parameter"><code>config</code></em>
+.</p>
+<div class="refsect3">
+<a name="gst-buffer-pool-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>pool</p></td>
+<td class="parameter_description"><p>a <a class="link" href="GstBufferPool.html" title="GstBufferPool"><span class="type">GstBufferPool</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 class="link" href="GstStructure.html" title="GstStructure"><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-buffer-pool-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 the configuration could be set.</p>
+</div>
 </div>
 <hr>
 <div class="refsect2">
@@ -361,12 +861,69 @@
 <pre class="programlisting"><a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
 gst_buffer_pool_set_active (<em class="parameter"><code><a class="link" href="GstBufferPool.html" title="GstBufferPool"><span class="type">GstBufferPool</span></a> *pool</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>Control the active state of <em class="parameter"><code>pool</code></em>
+. When the pool is inactive, new calls to
+<a class="link" href="GstBufferPool.html#gst-buffer-pool-acquire-buffer" title="gst_buffer_pool_acquire_buffer ()"><code class="function">gst_buffer_pool_acquire_buffer()</code></a> will return with <a class="link" href="GstPad.html#GST-FLOW-FLUSHING:CAPS"><code class="literal">GST_FLOW_FLUSHING</code></a>.</p>
+<p>Activating the bufferpool will preallocate all resources in the pool based on
+the configuration of the pool.</p>
+<p>Deactivating will free the resources again when there are no outstanding
+buffers. When there are outstanding buffers, they will be freed as soon as
+they are all returned to the pool.</p>
+<div class="refsect3">
+<a name="gst-buffer-pool-set-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>pool</p></td>
+<td class="parameter_description"><p>a <a class="link" href="GstBufferPool.html" title="GstBufferPool"><span class="type">GstBufferPool</span></a></p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>active</p></td>
+<td class="parameter_description"><p>the new active state</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<div class="refsect3">
+<a name="gst-buffer-pool-set-active.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> when the pool was not configured or when preallocation of the
+buffers failed.</p>
+</div>
 </div>
 <hr>
 <div class="refsect2">
 <a name="gst-buffer-pool-is-active"></a><h3>gst_buffer_pool_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_buffer_pool_is_active (<em class="parameter"><code><a class="link" href="GstBufferPool.html" title="GstBufferPool"><span class="type">GstBufferPool</span></a> *pool</code></em>);</pre>
+<p>Check if <em class="parameter"><code>pool</code></em>
+ is active. A pool can be activated with the
+<a class="link" href="GstBufferPool.html#gst-buffer-pool-set-active" title="gst_buffer_pool_set_active ()"><code class="function">gst_buffer_pool_set_active()</code></a> call.</p>
+<div class="refsect3">
+<a name="gst-buffer-pool-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>pool</p></td>
+<td class="parameter_description"><p>a <a class="link" href="GstBufferPool.html" title="GstBufferPool"><span class="type">GstBufferPool</span></a></p></td>
+<td class="parameter_annotations"> </td>
+</tr></tbody>
+</table></div>
+</div>
+<div class="refsect3">
+<a name="gst-buffer-pool-is-active.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 the pool is active.</p>
+</div>
 </div>
 <hr>
 <div class="refsect2">
@@ -374,6 +931,32 @@
 <pre class="programlisting"><span class="returnvalue">void</span>
 gst_buffer_pool_set_flushing (<em class="parameter"><code><a class="link" href="GstBufferPool.html" title="GstBufferPool"><span class="type">GstBufferPool</span></a> *pool</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>Enable or disable the flushing state of a <em class="parameter"><code>pool</code></em>
+ without freeing or
+allocating buffers.</p>
+<div class="refsect3">
+<a name="gst-buffer-pool-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>pool</p></td>
+<td class="parameter_description"><p>a <a class="link" href="GstBufferPool.html" title="GstBufferPool"><span class="type">GstBufferPool</span></a></p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>flushing</p></td>
+<td class="parameter_description"><p>whether to start or stop flushing</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<p class="since">Since: <a class="link" href="ix04.html#api-index-1.4">1.4</a></p>
 </div>
 <hr>
 <div class="refsect2">
@@ -382,6 +965,45 @@
 gst_buffer_pool_acquire_buffer (<em class="parameter"><code><a class="link" href="GstBufferPool.html" title="GstBufferPool"><span class="type">GstBufferPool</span></a> *pool</code></em>,
                                 <em class="parameter"><code><a class="link" href="GstBuffer.html" title="GstBuffer"><span class="type">GstBuffer</span></a> **buffer</code></em>,
                                 <em class="parameter"><code><a class="link" href="GstBufferPool.html#GstBufferPoolAcquireParams" title="struct GstBufferPoolAcquireParams"><span class="type">GstBufferPoolAcquireParams</span></a> *params</code></em>);</pre>
+<p>Acquire a buffer from <em class="parameter"><code>pool</code></em>
+. <em class="parameter"><code>buffer</code></em>
+ should point to a memory location that
+can hold a pointer to the new buffer.</p>
+<p><em class="parameter"><code>params</code></em>
+ can be <a href="/usr/share/gtk-doc/html/glibglib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a> or contain optional parameters to influence the
+allocation.</p>
+<div class="refsect3">
+<a name="gst-buffer-pool-acquire-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>pool</p></td>
+<td class="parameter_description"><p>a <a class="link" href="GstBufferPool.html" title="GstBufferPool"><span class="type">GstBufferPool</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 location for a <a class="link" href="GstBuffer.html" title="GstBuffer"><span class="type">GstBuffer</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>
+<tr>
+<td class="parameter_name"><p>params</p></td>
+<td class="parameter_description"><p> parameters. </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-buffer-pool-acquire-buffer.returns"></a><h4>Returns</h4>
+<p> a <a class="link" href="GstPad.html#GstFlowReturn" title="enum GstFlowReturn"><span class="type">GstFlowReturn</span></a> such as <a class="link" href="GstPad.html#GST-FLOW-FLUSHING:CAPS"><code class="literal">GST_FLOW_FLUSHING</code></a> when the pool is
+inactive.</p>
+</div>
 </div>
 <hr>
 <div class="refsect2">
@@ -389,6 +1011,37 @@
 <pre class="programlisting"><span class="returnvalue">void</span>
 gst_buffer_pool_release_buffer (<em class="parameter"><code><a class="link" href="GstBufferPool.html" title="GstBufferPool"><span class="type">GstBufferPool</span></a> *pool</code></em>,
                                 <em class="parameter"><code><a class="link" href="GstBuffer.html" title="GstBuffer"><span class="type">GstBuffer</span></a> *buffer</code></em>);</pre>
+<p>Release <em class="parameter"><code>buffer</code></em>
+ to <em class="parameter"><code>pool</code></em>
+. <em class="parameter"><code>buffer</code></em>
+ should have previously been allocated from
+<em class="parameter"><code>pool</code></em>
+ with <a class="link" href="GstBufferPool.html#gst-buffer-pool-acquire-buffer" title="gst_buffer_pool_acquire_buffer ()"><code class="function">gst_buffer_pool_acquire_buffer()</code></a>.</p>
+<p>This function is usually called automatically when the last ref on <em class="parameter"><code>buffer</code></em>
+
+disappears.</p>
+<div class="refsect3">
+<a name="gst-buffer-pool-release-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>pool</p></td>
+<td class="parameter_description"><p>a <a class="link" href="GstBufferPool.html" title="GstBufferPool"><span class="type">GstBufferPool</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 class="link" href="GstBuffer.html" title="GstBuffer"><span class="type">GstBuffer</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>
 </div>
 <div class="refsect1">
@@ -396,6 +1049,8 @@
 <div class="refsect2">
 <a name="GstBufferPool-struct"></a><h3>GstBufferPool</h3>
 <pre class="programlisting">typedef struct _GstBufferPool GstBufferPool;</pre>
+<p>The structure of a <a class="link" href="GstBufferPool.html" title="GstBufferPool"><span class="type">GstBufferPool</span></a>. Use the associated macros to access the public
+variables.</p>
 </div>
 <hr>
 <div class="refsect2">
@@ -420,10 +1075,106 @@
   void           (*flush_stop)     (GstBufferPool *pool);
 };
 </pre>
+<p>The GstBufferPool class.</p>
+<div class="refsect3">
+<a name="GstBufferPoolClass.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="GstObject.html#GstObjectClass" title="struct GstObjectClass"><span class="type">GstObjectClass</span></a> <em class="structfield"><code><a name="GstBufferPoolClass.object-class"></a>object_class</code></em>;</p></td>
+<td class="struct_member_description"><p>Object parent class</p></td>
+<td class="struct_member_annotations"> </td>
+</tr>
+<tr>
+<td class="struct_member_name"><p><em class="structfield"><code><a name="GstBufferPoolClass.get-options"></a>get_options</code></em> ()</p></td>
+<td class="struct_member_description"><p>get a list of options supported by this pool</p></td>
+<td class="struct_member_annotations"> </td>
+</tr>
+<tr>
+<td class="struct_member_name"><p><em class="structfield"><code><a name="GstBufferPoolClass.set-config"></a>set_config</code></em> ()</p></td>
+<td class="struct_member_description"><p>apply the bufferpool configuration. The default configuration
+will parse the default config parameters</p></td>
+<td class="struct_member_annotations"> </td>
+</tr>
+<tr>
+<td class="struct_member_name"><p><em class="structfield"><code><a name="GstBufferPoolClass.start"></a>start</code></em> ()</p></td>
+<td class="struct_member_description"><p>start the bufferpool. The default implementation will preallocate
+min-buffers buffers and put them in the queue</p></td>
+<td class="struct_member_annotations"> </td>
+</tr>
+<tr>
+<td class="struct_member_name"><p><em class="structfield"><code><a name="GstBufferPoolClass.stop"></a>stop</code></em> ()</p></td>
+<td class="struct_member_description"><p>stop the bufferpool. the default implementation will free the
+preallocated buffers. This function is called when all the buffers are
+returned to the pool.</p></td>
+<td class="struct_member_annotations"> </td>
+</tr>
+<tr>
+<td class="struct_member_name"><p><em class="structfield"><code><a name="GstBufferPoolClass.acquire-buffer"></a>acquire_buffer</code></em> ()</p></td>
+<td class="struct_member_description"><p>get a new buffer from the pool. The default implementation
+will take a buffer from the queue and optionally wait for a buffer to
+be released when there are no buffers available.</p></td>
+<td class="struct_member_annotations"> </td>
+</tr>
+<tr>
+<td class="struct_member_name"><p><em class="structfield"><code><a name="GstBufferPoolClass.alloc-buffer"></a>alloc_buffer</code></em> ()</p></td>
+<td class="struct_member_description"><p>allocate a buffer. the default implementation allocates
+buffers from the configured memory allocator and with the configured
+parameters. All metadata that is present on the allocated buffer will
+be marked as <a class="link" href="gstreamer-GstMeta.html#GST-META-FLAG-POOLED:CAPS"><span class="type">GST_META_FLAG_POOLED</span></a> and <a class="link" href="gstreamer-GstMeta.html#GST-META-FLAG-LOCKED:CAPS"><span class="type">GST_META_FLAG_LOCKED</span></a> and will
+not be removed from the buffer in <em class="parameter"><code>reset_buffer</code></em>
+. The buffer should
+have the GST_BUFFER_FLAG_TAG_MEMORY cleared.</p></td>
+<td class="struct_member_annotations"> </td>
+</tr>
+<tr>
+<td class="struct_member_name"><p><em class="structfield"><code><a name="GstBufferPoolClass.reset-buffer"></a>reset_buffer</code></em> ()</p></td>
+<td class="struct_member_description"><p>reset the buffer to its state when it was freshly allocated.
+The default implementation will clear the flags, timestamps and
+will remove the metadata without the <a class="link" href="gstreamer-GstMeta.html#GST-META-FLAG-POOLED:CAPS"><span class="type">GST_META_FLAG_POOLED</span></a> flag (even
+the metadata with <a class="link" href="gstreamer-GstMeta.html#GST-META-FLAG-LOCKED:CAPS"><span class="type">GST_META_FLAG_LOCKED</span></a>). If the
+<a class="link" href="GstBuffer.html#GST-BUFFER-FLAG-TAG-MEMORY:CAPS"><span class="type">GST_BUFFER_FLAG_TAG_MEMORY</span></a> was set, this function can also try to
+restore the memory and clear the <a class="link" href="GstBuffer.html#GST-BUFFER-FLAG-TAG-MEMORY:CAPS"><span class="type">GST_BUFFER_FLAG_TAG_MEMORY</span></a> again.</p></td>
+<td class="struct_member_annotations"> </td>
+</tr>
+<tr>
+<td class="struct_member_name"><p><em class="structfield"><code><a name="GstBufferPoolClass.release-buffer"></a>release_buffer</code></em> ()</p></td>
+<td class="struct_member_description"><p>release a buffer back in the pool. The default
+implementation will put the buffer back in the queue and notify any
+blocking acquire_buffer calls when the <a class="link" href="GstBuffer.html#GST-BUFFER-FLAG-TAG-MEMORY:CAPS"><span class="type">GST_BUFFER_FLAG_TAG_MEMORY</span></a>
+is not set on the buffer. If <a class="link" href="GstBuffer.html#GST-BUFFER-FLAG-TAG-MEMORY:CAPS"><span class="type">GST_BUFFER_FLAG_TAG_MEMORY</span></a> is set, the
+buffer will be freed with <em class="parameter"><code>free_buffer</code></em>
+.</p></td>
+<td class="struct_member_annotations"> </td>
+</tr>
+<tr>
+<td class="struct_member_name"><p><em class="structfield"><code><a name="GstBufferPoolClass.free-buffer"></a>free_buffer</code></em> ()</p></td>
+<td class="struct_member_description"><p>free a buffer. The default implementation unrefs the buffer.</p></td>
+<td class="struct_member_annotations"> </td>
+</tr>
+<tr>
+<td class="struct_member_name"><p><em class="structfield"><code><a name="GstBufferPoolClass.flush-start"></a>flush_start</code></em> ()</p></td>
+<td class="struct_member_description"><p>enter the flushing state. (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="GstBufferPoolClass.flush-stop"></a>flush_stop</code></em> ()</p></td>
+<td class="struct_member_description"><p>leave the flushign state. (Since 1.4)</p></td>
+<td class="struct_member_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
 </div>
 <hr>
 <div class="refsect2">
 <a name="GstBufferPoolAcquireFlags"></a><h3>enum GstBufferPoolAcquireFlags</h3>
+<p>Additional flags to control the allocation of a buffer</p>
 <div class="refsect3">
 <a name="GstBufferPoolAcquireFlags.members"></a><h4>Members</h4>
 <div class="informaltable"><table class="informaltable" width="100%" border="0">
@@ -435,28 +1186,41 @@
 <tbody>
 <tr>
 <td class="enum_member_name"><p><a name="GST-BUFFER-POOL-ACQUIRE-FLAG-NONE:CAPS"></a>GST_BUFFER_POOL_ACQUIRE_FLAG_NONE</p></td>
-<td> </td>
-<td> </td>
+<td class="enum_member_description">
+<p>no flags</p>
+</td>
+<td class="enum_member_annotations"> </td>
 </tr>
 <tr>
 <td class="enum_member_name"><p><a name="GST-BUFFER-POOL-ACQUIRE-FLAG-KEY-UNIT:CAPS"></a>GST_BUFFER_POOL_ACQUIRE_FLAG_KEY_UNIT</p></td>
-<td> </td>
-<td> </td>
+<td class="enum_member_description">
+<p>buffer is keyframe</p>
+</td>
+<td class="enum_member_annotations"> </td>
 </tr>
 <tr>
 <td class="enum_member_name"><p><a name="GST-BUFFER-POOL-ACQUIRE-FLAG-DONTWAIT:CAPS"></a>GST_BUFFER_POOL_ACQUIRE_FLAG_DONTWAIT</p></td>
-<td> </td>
-<td> </td>
+<td class="enum_member_description">
+<p>when the bufferpool is empty, acquire_buffer
+will by default block until a buffer is released into the pool again. Setting
+this flag makes acquire_buffer return <a class="link" href="GstPad.html#GST-FLOW-EOS:CAPS"><span class="type">GST_FLOW_EOS</span></a> instead of blocking.</p>
+</td>
+<td class="enum_member_annotations"> </td>
 </tr>
 <tr>
 <td class="enum_member_name"><p><a name="GST-BUFFER-POOL-ACQUIRE-FLAG-DISCONT:CAPS"></a>GST_BUFFER_POOL_ACQUIRE_FLAG_DISCONT</p></td>
-<td> </td>
-<td> </td>
+<td class="enum_member_description">
+<p>buffer is discont</p>
+</td>
+<td class="enum_member_annotations"> </td>
 </tr>
 <tr>
 <td class="enum_member_name"><p><a name="GST-BUFFER-POOL-ACQUIRE-FLAG-LAST:CAPS"></a>GST_BUFFER_POOL_ACQUIRE_FLAG_LAST</p></td>
-<td> </td>
-<td> </td>
+<td class="enum_member_description">
+<p>last flag, subclasses can use private flags
+   starting from this value.</p>
+</td>
+<td class="enum_member_annotations"> </td>
 </tr>
 </tbody>
 </table></div>
@@ -472,9 +1236,54 @@
   GstBufferPoolAcquireFlags flags;
 };
 </pre>
+<p>Parameters passed to the <a class="link" href="GstBufferPool.html#gst-buffer-pool-acquire-buffer" title="gst_buffer_pool_acquire_buffer ()"><code class="function">gst_buffer_pool_acquire_buffer()</code></a> function to control the
+allocation of the buffer.</p>
+<p>The default implementation ignores the <em class="parameter"><code>start</code></em>
+ and <em class="parameter"><code>stop</code></em>
+ members but other
+implementations can use this extra information to decide what buffer to
+return.</p>
+<div class="refsect3">
+<a name="GstBufferPoolAcquireParams.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="gstreamer-GstFormat.html#GstFormat" title="enum GstFormat"><span class="type">GstFormat</span></a> <em class="structfield"><code><a name="GstBufferPoolAcquireParams.format"></a>format</code></em>;</p></td>
+<td class="struct_member_description"><p>the format of <em class="parameter"><code>start</code></em>
+and <em class="parameter"><code>stop</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#gint64"><span class="type">gint64</span></a> <em class="structfield"><code><a name="GstBufferPoolAcquireParams.start"></a>start</code></em>;</p></td>
+<td class="struct_member_description"><p>the start position</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#gint64"><span class="type">gint64</span></a> <em class="structfield"><code><a name="GstBufferPoolAcquireParams.stop"></a>stop</code></em>;</p></td>
+<td class="struct_member_description"><p>the stop position</p></td>
+<td class="struct_member_annotations"> </td>
+</tr>
+<tr>
+<td class="struct_member_name"><p><a class="link" href="GstBufferPool.html#GstBufferPoolAcquireFlags" title="enum GstBufferPoolAcquireFlags"><span class="type">GstBufferPoolAcquireFlags</span></a> <em class="structfield"><code><a name="GstBufferPoolAcquireParams.flags"></a>flags</code></em>;</p></td>
+<td class="struct_member_description"><p>additional flags</p></td>
+<td class="struct_member_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
 </div>
 </div>
 </div>
+<div class="refsect1">
+<a name="GstBufferPool.see-also"></a><h2>See Also</h2>
+<p><a class="link" href="GstBuffer.html" title="GstBuffer"><span class="type">GstBuffer</span></a></p>
+</div>
+</div>
 <div class="footer">
 <hr>Generated by GTK-Doc V1.25</div>
 </body>
diff --git a/docs/gst/html/GstBus.html b/docs/gst/html/GstBus.html
index 14d79ab..80fcfde 100644
--- a/docs/gst/html/GstBus.html
+++ b/docs/gst/html/GstBus.html
@@ -30,7 +30,7 @@
 <div class="refnamediv"><table width="100%"><tr>
 <td valign="top">
 <h2><span class="refentrytitle"><a name="GstBus.top_of_page"></a>GstBus</span></h2>
-<p>GstBus</p>
+<p>GstBus — Asynchronous message bus subsystem</p>
 </td>
 <td class="gallery_image" valign="top" align="right"></td>
 </tr></table></div>
@@ -312,6 +312,37 @@
 </div>
 <div class="refsect1">
 <a name="GstBus.description"></a><h2>Description</h2>
+<p>The <a class="link" href="GstBus.html" title="GstBus"><span class="type">GstBus</span></a> is an object responsible for delivering <a class="link" href="GstMessage.html" title="GstMessage"><span class="type">GstMessage</span></a> packets in
+a first-in first-out way from the streaming threads (see <a class="link" href="GstTask.html" title="GstTask"><span class="type">GstTask</span></a>) to the
+application.</p>
+<p>Since the application typically only wants to deal with delivery of these
+messages from one thread, the GstBus will marshall the messages between
+different threads. This is important since the actual streaming of media
+is done in another thread than the application.</p>
+<p>The GstBus provides support for <a href="/usr/share/gtk-doc/html/glibglib-The-Main-Event-Loop.html#GSource"><span class="type">GSource</span></a> based notifications. This makes it
+possible to handle the delivery in the glib mainloop.</p>
+<p>The <a href="/usr/share/gtk-doc/html/glibglib-The-Main-Event-Loop.html#GSource"><span class="type">GSource</span></a> callback function <a class="link" href="GstBus.html#gst-bus-async-signal-func" title="gst_bus_async_signal_func ()"><code class="function">gst_bus_async_signal_func()</code></a> can be used to
+convert all bus messages into signal emissions.</p>
+<p>A message is posted on the bus with the <a class="link" href="GstBus.html#gst-bus-post" title="gst_bus_post ()"><code class="function">gst_bus_post()</code></a> method. With the
+<a class="link" href="GstBus.html#gst-bus-peek" title="gst_bus_peek ()"><code class="function">gst_bus_peek()</code></a> and <a class="link" href="GstBus.html#gst-bus-pop" title="gst_bus_pop ()"><code class="function">gst_bus_pop()</code></a> methods one can look at or retrieve a
+previously posted message.</p>
+<p>The bus can be polled with the <a class="link" href="GstBus.html#gst-bus-poll" title="gst_bus_poll ()"><code class="function">gst_bus_poll()</code></a> method. This methods blocks
+up to the specified timeout value until one of the specified messages types
+is posted on the bus. The application can then <a class="link" href="GstBus.html#gst-bus-pop" title="gst_bus_pop ()"><code class="function">gst_bus_pop()</code></a> the messages
+from the bus to handle them.
+Alternatively the application can register an asynchronous bus function
+using <a class="link" href="GstBus.html#gst-bus-add-watch-full" title="gst_bus_add_watch_full ()"><code class="function">gst_bus_add_watch_full()</code></a> or <a class="link" href="GstBus.html#gst-bus-add-watch" title="gst_bus_add_watch ()"><code class="function">gst_bus_add_watch()</code></a>. This function will
+install a <a href="/usr/share/gtk-doc/html/glibglib-The-Main-Event-Loop.html#GSource"><span class="type">GSource</span></a> in the default glib main loop and will deliver messages
+a short while after they have been posted. Note that the main loop should
+be running for the asynchronous callbacks.</p>
+<p>It is also possible to get messages from the bus without any thread
+marshalling with the <a class="link" href="GstBus.html#gst-bus-set-sync-handler" title="gst_bus_set_sync_handler ()"><code class="function">gst_bus_set_sync_handler()</code></a> method. This makes it
+possible to react to a message in the same thread that posted the
+message on the bus. This should only be used if the application is able
+to deal with messages from different threads.</p>
+<p>Every <a class="link" href="GstPipeline.html" title="GstPipeline"><span class="type">GstPipeline</span></a> has one bus.</p>
+<p>Note that a <a class="link" href="GstPipeline.html" title="GstPipeline"><span class="type">GstPipeline</span></a> will set its bus into flushing state when changing
+from READY to NULL state.</p>
 </div>
 <div class="refsect1">
 <a name="GstBus.functions_details"></a><h2>Functions</h2>
@@ -321,6 +352,44 @@
 <span class="c_punctuation">(</span>*GstBusFunc<span class="c_punctuation">)</span> (<em class="parameter"><code><a class="link" href="GstBus.html" title="GstBus"><span class="type">GstBus</span></a> *bus</code></em>,
                <em class="parameter"><code><a class="link" href="GstMessage.html" title="GstMessage"><span class="type">GstMessage</span></a> *message</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>Specifies the type of function passed to <a class="link" href="GstBus.html#gst-bus-add-watch" title="gst_bus_add_watch ()"><code class="function">gst_bus_add_watch()</code></a> or
+<a class="link" href="GstBus.html#gst-bus-add-watch-full" title="gst_bus_add_watch_full ()"><code class="function">gst_bus_add_watch_full()</code></a>, which is called from the mainloop when a message
+is available on the bus.</p>
+<p>The message passed to the function will be unreffed after execution of this
+function so it should not be freed in the function.</p>
+<p>Note that this function is used as a GSourceFunc which means that returning
+<a href="/usr/share/gtk-doc/html/glibglib-Standard-Macros.html#FALSE:CAPS"><code class="literal">FALSE</code></a> will remove the GSource from the mainloop.</p>
+<div class="refsect3">
+<a name="GstBusFunc.parameters"></a><h4>Parameters</h4>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
+<colgroup>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
+</colgroup>
+<tbody>
+<tr>
+<td class="parameter_name"><p>bus</p></td>
+<td class="parameter_description"><p>the <a class="link" href="GstBus.html" title="GstBus"><span class="type">GstBus</span></a> that sent the message</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>message</p></td>
+<td class="parameter_description"><p>the <a class="link" href="GstMessage.html" title="GstMessage"><span class="type">GstMessage</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 that has been given, when registering the handler</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<div class="refsect3">
+<a name="GstBusFunc.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 the event source should be removed.</p>
+</div>
 </div>
 <hr>
 <div class="refsect2">
@@ -329,12 +398,54 @@
 <span class="c_punctuation">(</span>*GstBusSyncHandler<span class="c_punctuation">)</span> (<em class="parameter"><code><a class="link" href="GstBus.html" title="GstBus"><span class="type">GstBus</span></a> *bus</code></em>,
                       <em class="parameter"><code><a class="link" href="GstMessage.html" title="GstMessage"><span class="type">GstMessage</span></a> *message</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>Handler will be invoked synchronously, when a new message has been injected
+into the bus. This function is mostly used internally. Only one sync handler
+can be attached to a given bus.</p>
+<p>If the handler returns GST_BUS_DROP, it should unref the message, else the
+message should not be unreffed by the sync handler.</p>
+<div class="refsect3">
+<a name="GstBusSyncHandler.parameters"></a><h4>Parameters</h4>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
+<colgroup>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
+</colgroup>
+<tbody>
+<tr>
+<td class="parameter_name"><p>bus</p></td>
+<td class="parameter_description"><p>the <a class="link" href="GstBus.html" title="GstBus"><span class="type">GstBus</span></a> that sent the message</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>message</p></td>
+<td class="parameter_description"><p>the <a class="link" href="GstMessage.html" title="GstMessage"><span class="type">GstMessage</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 that has been given, when registering the handler</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<div class="refsect3">
+<a name="GstBusSyncHandler.returns"></a><h4>Returns</h4>
+<p> <a class="link" href="GstBus.html#GstBusSyncReply" title="enum GstBusSyncReply"><span class="type">GstBusSyncReply</span></a> stating what to do with the message</p>
+</div>
 </div>
 <hr>
 <div class="refsect2">
 <a name="gst-bus-new"></a><h3>gst_bus_new ()</h3>
 <pre class="programlisting"><a class="link" href="GstBus.html" title="GstBus"><span class="returnvalue">GstBus</span></a> *
 gst_bus_new (<em class="parameter"><code><span class="type">void</span></code></em>);</pre>
+<p>Creates a new <a class="link" href="GstBus.html" title="GstBus"><span class="type">GstBus</span></a> instance.</p>
+<div class="refsect3">
+<a name="gst-bus-new.returns"></a><h4>Returns</h4>
+<p> a new <a class="link" href="GstBus.html" title="GstBus"><span class="type">GstBus</span></a> instance. </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,24 +453,126 @@
 <pre class="programlisting"><a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
 gst_bus_post (<em class="parameter"><code><a class="link" href="GstBus.html" title="GstBus"><span class="type">GstBus</span></a> *bus</code></em>,
               <em class="parameter"><code><a class="link" href="GstMessage.html" title="GstMessage"><span class="type">GstMessage</span></a> *message</code></em>);</pre>
+<p>Post a message on the given bus. Ownership of the message
+is taken by the bus.</p>
+<div class="refsect3">
+<a name="gst-bus-post.parameters"></a><h4>Parameters</h4>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
+<colgroup>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
+</colgroup>
+<tbody>
+<tr>
+<td class="parameter_name"><p>bus</p></td>
+<td class="parameter_description"><p>a <a class="link" href="GstBus.html" title="GstBus"><span class="type">GstBus</span></a> to post on</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>message</p></td>
+<td class="parameter_description"><p> the <a class="link" href="GstMessage.html" title="GstMessage"><span class="type">GstMessage</span></a> to post. </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-bus-post.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 posted, <a href="/usr/share/gtk-doc/html/glibglib-Standard-Macros.html#FALSE:CAPS"><code class="literal">FALSE</code></a> if the bus is flushing.</p>
+<p>MT safe.</p>
+</div>
 </div>
 <hr>
 <div class="refsect2">
 <a name="gst-bus-have-pending"></a><h3>gst_bus_have_pending ()</h3>
 <pre class="programlisting"><a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
 gst_bus_have_pending (<em class="parameter"><code><a class="link" href="GstBus.html" title="GstBus"><span class="type">GstBus</span></a> *bus</code></em>);</pre>
+<p>Check if there are pending messages on the bus that
+should be handled.</p>
+<div class="refsect3">
+<a name="gst-bus-have-pending.parameters"></a><h4>Parameters</h4>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
+<colgroup>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
+</colgroup>
+<tbody><tr>
+<td class="parameter_name"><p>bus</p></td>
+<td class="parameter_description"><p>a <a class="link" href="GstBus.html" title="GstBus"><span class="type">GstBus</span></a> to check</p></td>
+<td class="parameter_annotations"> </td>
+</tr></tbody>
+</table></div>
+</div>
+<div class="refsect3">
+<a name="gst-bus-have-pending.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 are messages on the bus to be handled, <a href="/usr/share/gtk-doc/html/glibglib-Standard-Macros.html#FALSE:CAPS"><code class="literal">FALSE</code></a>
+otherwise.</p>
+<p>MT safe.</p>
+</div>
 </div>
 <hr>
 <div class="refsect2">
 <a name="gst-bus-peek"></a><h3>gst_bus_peek ()</h3>
 <pre class="programlisting"><a class="link" href="GstMessage.html" title="GstMessage"><span class="returnvalue">GstMessage</span></a> *
 gst_bus_peek (<em class="parameter"><code><a class="link" href="GstBus.html" title="GstBus"><span class="type">GstBus</span></a> *bus</code></em>);</pre>
+<p>Peek the message on the top of the bus' queue. The message will remain
+on the bus' message queue. A reference is returned, and needs to be unreffed
+by the caller.</p>
+<div class="refsect3">
+<a name="gst-bus-peek.parameters"></a><h4>Parameters</h4>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
+<colgroup>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
+</colgroup>
+<tbody><tr>
+<td class="parameter_name"><p>bus</p></td>
+<td class="parameter_description"><p>a <a class="link" href="GstBus.html" title="GstBus"><span class="type">GstBus</span></a></p></td>
+<td class="parameter_annotations"> </td>
+</tr></tbody>
+</table></div>
+</div>
+<div class="refsect3">
+<a name="gst-bus-peek.returns"></a><h4>Returns</h4>
+<p> the <a class="link" href="GstMessage.html" title="GstMessage"><span class="type">GstMessage</span></a> that is on the
+bus, or <a href="/usr/share/gtk-doc/html/glibglib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a> if the bus is empty.</p>
+<p>MT safe. </p>
+<p><span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>][<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>
 </div>
 <hr>
 <div class="refsect2">
 <a name="gst-bus-pop"></a><h3>gst_bus_pop ()</h3>
 <pre class="programlisting"><a class="link" href="GstMessage.html" title="GstMessage"><span class="returnvalue">GstMessage</span></a> *
 gst_bus_pop (<em class="parameter"><code><a class="link" href="GstBus.html" title="GstBus"><span class="type">GstBus</span></a> *bus</code></em>);</pre>
+<p>Get a message from the bus.</p>
+<div class="refsect3">
+<a name="gst-bus-pop.parameters"></a><h4>Parameters</h4>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
+<colgroup>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
+</colgroup>
+<tbody><tr>
+<td class="parameter_name"><p>bus</p></td>
+<td class="parameter_description"><p>a <a class="link" href="GstBus.html" title="GstBus"><span class="type">GstBus</span></a> to pop</p></td>
+<td class="parameter_annotations"> </td>
+</tr></tbody>
+</table></div>
+</div>
+<div class="refsect3">
+<a name="gst-bus-pop.returns"></a><h4>Returns</h4>
+<p> the <a class="link" href="GstMessage.html" title="GstMessage"><span class="type">GstMessage</span></a> that is on the
+bus, or <a href="/usr/share/gtk-doc/html/glibglib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a> if the bus is empty. The message is taken from
+the bus and needs to be unreffed with <a class="link" href="GstMessage.html#gst-message-unref" title="gst_message_unref ()"><code class="function">gst_message_unref()</code></a> after
+usage.</p>
+<p>MT safe. </p>
+<p><span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>][<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>
 </div>
 <hr>
 <div class="refsect2">
@@ -367,6 +580,49 @@
 <pre class="programlisting"><a class="link" href="GstMessage.html" title="GstMessage"><span class="returnvalue">GstMessage</span></a> *
 gst_bus_pop_filtered (<em class="parameter"><code><a class="link" href="GstBus.html" title="GstBus"><span class="type">GstBus</span></a> *bus</code></em>,
                       <em class="parameter"><code><a class="link" href="GstMessage.html#GstMessageType" title="enum GstMessageType"><span class="type">GstMessageType</span></a> types</code></em>);</pre>
+<p>Get a message matching <em class="parameter"><code>type</code></em>
+ from the bus.  Will discard all messages on
+the bus that do not match <em class="parameter"><code>type</code></em>
+ and that have been posted before the first
+message that does match <em class="parameter"><code>type</code></em>
+.  If there is no message matching <em class="parameter"><code>type</code></em>
+ on
+the bus, all messages will be discarded. It is not possible to use message
+enums beyond <a class="link" href="GstMessage.html#GST-MESSAGE-EXTENDED:CAPS"><span class="type">GST_MESSAGE_EXTENDED</span></a> in the <em class="parameter"><code>events</code></em>
+ mask.</p>
+<div class="refsect3">
+<a name="gst-bus-pop-filtered.parameters"></a><h4>Parameters</h4>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
+<colgroup>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
+</colgroup>
+<tbody>
+<tr>
+<td class="parameter_name"><p>bus</p></td>
+<td class="parameter_description"><p>a <a class="link" href="GstBus.html" title="GstBus"><span class="type">GstBus</span></a> to pop</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>types</p></td>
+<td class="parameter_description"><p>message types to take into account</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<div class="refsect3">
+<a name="gst-bus-pop-filtered.returns"></a><h4>Returns</h4>
+<p> the next <a class="link" href="GstMessage.html" title="GstMessage"><span class="type">GstMessage</span></a> matching
+<em class="parameter"><code>type</code></em>
+that is on the bus, or <a href="/usr/share/gtk-doc/html/glibglib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a> if the bus is empty or there
+is no message matching <em class="parameter"><code>type</code></em>
+. The message is taken from the bus
+and needs to be unreffed with <a class="link" href="GstMessage.html#gst-message-unref" title="gst_message_unref ()"><code class="function">gst_message_unref()</code></a> after usage.</p>
+<p>MT safe. </p>
+<p><span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>][<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>
 </div>
 <hr>
 <div class="refsect2">
@@ -374,6 +630,43 @@
 <pre class="programlisting"><a class="link" href="GstMessage.html" title="GstMessage"><span class="returnvalue">GstMessage</span></a> *
 gst_bus_timed_pop (<em class="parameter"><code><a class="link" href="GstBus.html" title="GstBus"><span class="type">GstBus</span></a> *bus</code></em>,
                    <em class="parameter"><code><a class="link" href="GstClock.html#GstClockTime" title="GstClockTime"><span class="type">GstClockTime</span></a> timeout</code></em>);</pre>
+<p>Get a message from the bus, waiting up to the specified timeout.</p>
+<p>If <em class="parameter"><code>timeout</code></em>
+ is 0, this function behaves like <a class="link" href="GstBus.html#gst-bus-pop" title="gst_bus_pop ()"><code class="function">gst_bus_pop()</code></a>. If <em class="parameter"><code>timeout</code></em>
+ is
+<a class="link" href="GstClock.html#GST-CLOCK-TIME-NONE:CAPS" title="GST_CLOCK_TIME_NONE"><span class="type">GST_CLOCK_TIME_NONE</span></a>, this function will block forever until a message was
+posted on the bus.</p>
+<div class="refsect3">
+<a name="gst-bus-timed-pop.parameters"></a><h4>Parameters</h4>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
+<colgroup>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
+</colgroup>
+<tbody>
+<tr>
+<td class="parameter_name"><p>bus</p></td>
+<td class="parameter_description"><p>a <a class="link" href="GstBus.html" title="GstBus"><span class="type">GstBus</span></a> to pop</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-bus-timed-pop.returns"></a><h4>Returns</h4>
+<p> the <a class="link" href="GstMessage.html" title="GstMessage"><span class="type">GstMessage</span></a> that is on the
+bus after the specified timeout or <a href="/usr/share/gtk-doc/html/glibglib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a> if the bus is empty
+after the timeout expired.  The message is taken from the bus
+and needs to be unreffed with <a class="link" href="GstMessage.html#gst-message-unref" title="gst_message_unref ()"><code class="function">gst_message_unref()</code></a> after usage.</p>
+<p>MT safe. </p>
+<p><span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>][<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>
 </div>
 <hr>
 <div class="refsect2">
@@ -382,6 +675,53 @@
 gst_bus_timed_pop_filtered (<em class="parameter"><code><a class="link" href="GstBus.html" title="GstBus"><span class="type">GstBus</span></a> *bus</code></em>,
                             <em class="parameter"><code><a class="link" href="GstClock.html#GstClockTime" title="GstClockTime"><span class="type">GstClockTime</span></a> timeout</code></em>,
                             <em class="parameter"><code><a class="link" href="GstMessage.html#GstMessageType" title="enum GstMessageType"><span class="type">GstMessageType</span></a> types</code></em>);</pre>
+<p>Get a message from the bus whose type matches the message type mask <em class="parameter"><code>types</code></em>
+,
+waiting up to the specified timeout (and discarding any messages that do not
+match the mask provided).</p>
+<p>If <em class="parameter"><code>timeout</code></em>
+ is 0, this function behaves like <a class="link" href="GstBus.html#gst-bus-pop-filtered" title="gst_bus_pop_filtered ()"><code class="function">gst_bus_pop_filtered()</code></a>. If
+<em class="parameter"><code>timeout</code></em>
+ is <a class="link" href="GstClock.html#GST-CLOCK-TIME-NONE:CAPS" title="GST_CLOCK_TIME_NONE"><span class="type">GST_CLOCK_TIME_NONE</span></a>, this function will block forever until a
+matching message was posted on the bus.</p>
+<div class="refsect3">
+<a name="gst-bus-timed-pop-filtered.parameters"></a><h4>Parameters</h4>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
+<colgroup>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
+</colgroup>
+<tbody>
+<tr>
+<td class="parameter_name"><p>bus</p></td>
+<td class="parameter_description"><p>a <a class="link" href="GstBus.html" title="GstBus"><span class="type">GstBus</span></a> to pop from</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>timeout</p></td>
+<td class="parameter_description"><p>a timeout in nanoseconds, or GST_CLOCK_TIME_NONE to wait forever</p></td>
+<td class="parameter_annotations">