diff --git a/ChangeLog b/ChangeLog
index 23fa97e..e9e08dc 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,9 +1,3289 @@
-=== release 0.10.32 ===
+=== release 0.10.34 ===
 
-2011-01-21  Tim-Philipp Müller <tim.muller@collabora.co.uk>
+2011-05-14  Tim-Philipp Müller <tim.muller@collabora.co.uk>
 
 	* configure.ac:
-	  releasing 0.10.32, "Take Me to the Bonus Level"
+	  releasing 0.10.34, "Misfits"
+
+2011-05-04 15:31:56 +0300  Vincent Penquerc'h <vincent.penquerch@collabora.co.uk>
+
+	* libs/gst/base/gstbasesrc.c:
+	  basesrc: do not set first buffer timestamp to 0 for live sources
+	  Doing so avoids a large timestamp gap between first and second buffer
+	  for live sources which take time to start up.
+	  The first buffer now has a "live" timestamp based on the running time,
+	  as other buffers do.
+	  https://bugzilla.gnome.org/show_bug.cgi?id=649369
+
+2011-05-10 11:11:15 +0200  Mark Nauwelaerts <mark.nauwelaerts@collabora.co.uk>
+
+	* plugins/elements/gstmultiqueue.c:
+	  multiqueue: ensure thread safety when adding a pad
+	  This seems to be a regression, and was causing crashes.
+	  https://bugzilla.gnome.org/show_bug.cgi?id=649878
+
+=== release 0.10.33 ===
+
+2011-05-10 08:55:10 +0100  Tim-Philipp Müller <tim.muller@collabora.co.uk>
+
+	* ChangeLog:
+	* NEWS:
+	* RELEASE:
+	* configure.ac:
+	* docs/plugins/inspect/plugin-coreelements.xml:
+	* docs/plugins/inspect/plugin-coreindexers.xml:
+	* gstreamer.doap:
+	* 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/es.po:
+	* po/eu.po:
+	* po/fi.po:
+	* po/fr.po:
+	* po/gl.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:
+	* win32/common/config.h:
+	* win32/common/gstversion.h:
+	  Release 0.10.33
+	  Highlights:
+	  - new parser base class: GstBaseParse
+	  - new core element: funnel
+	  - OSX multi-arch fixes
+	  - new QoS type for QoS events
+	  - new progress message API to notify applications of asynchronous operations
+	  - countless other fixes and improvements
+
+2011-05-06 23:40:58 +0100  Tim-Philipp Müller <tim.muller@collabora.co.uk>
+
+	* libs/gst/base/gstbaseparse.c:
+	  baseparse: don't post loads of empty taglists
+	  Only post bitrate updates if there's something to post, don't
+	  post empty taglists if nothing changed.
+
+2011-05-06 11:35:36 +0300  Stefan Kost <ensonic@users.sf.net>
+
+	* gst/gstinfo.h:
+	  info: avoid redefinition of symbols when debugging is off
+	  The refactoring of gst_debug_add_log_function() now causes build failure when
+	  debug-logging is turned off. Just move it to the conditional part of the header.
+
+2011-05-04 15:29:42 +0100  Tim-Philipp Müller <tim.muller@collabora.co.uk>
+
+	* tests/check/gst/gstminiobject.c:
+	  tests: fix compiler warning in new miniobject test
+	  gst/gstminiobject.c: In function ‘test_dup_null_mini_object’:
+	  gst/gstminiobject.c:459:7: warning: assignment from incompatible pointer type
+
+2011-05-02 11:30:06 -0300  Thiago Santos <thiago.sousa.santos@collabora.co.uk>
+
+	* gst/gstminiobject.c:
+	* tests/check/gst/gstminiobject.c:
+	  miniobject: Fix dup_mini_object function to handle NULL gvalues
+	  g_value_dup_object handles gvalues that contain NULL pointers,
+	  gst_value_dup_mini_object should do the same.
+	  https://bugzilla.gnome.org/show_bug.cgi?id=649195
+
+2011-05-03 13:55:43 +0300  Stefan Kost <ensonic@users.sf.net>
+
+	* libs/gst/base/gstbaseparse.c:
+	  docs: it its %TRUE (constant)
+	  As spotted by Tim.
+
+2011-05-02 16:22:56 +0300  Stefan Kost <ensonic@users.sf.net>
+
+	* gst/gstelementfactory.c:
+	  docs: fix copy'n'paste doc header mistake
+
+2011-05-02 16:20:24 +0300  Stefan Kost <ensonic@users.sf.net>
+
+	* gst/gstelement.h:
+	* gst/gstpluginfeature.h:
+	  docs: add two trivial doc blobs
+
+2011-05-02 16:03:29 +0300  Stefan Kost <ensonic@users.sf.net>
+
+	* libs/gst/base/gstbaseparse.c:
+	  docs: add missing parameter docs
+
+2011-05-02 16:00:52 +0300  Stefan Kost <ensonic@users.sf.net>
+
+	* libs/gst/dataprotocol/dataprotocol.h:
+	  docs: add docs for GstDPPacketizer
+
+2011-05-02 15:52:58 +0300  Stefan Kost <ensonic@users.sf.net>
+
+	* gst/gstcaps.h:
+	  docs: improve the syntax for the capsintersectmode docs
+
+2011-05-02 15:48:01 +0300  Stefan Kost <ensonic@users.sf.net>
+
+	* gst/gstelement.c:
+	  docs: fixup broken xref
+
+2011-05-02 15:46:59 +0300  Stefan Kost <ensonic@users.sf.net>
+
+	* docs/gst/gstreamer-sections.txt:
+	* docs/libs/gstreamer-libs-sections.txt:
+	  docs: add new api to -section.txt
+
+2011-05-02 15:35:52 +0300  Stefan Kost <ensonic@users.sf.net>
+
+	* gst/gstatomicqueue.h:
+	  docs: fix gtk-doc syntax
+
+2011-05-02 15:30:13 +0300  Stefan Kost <ensonic@users.sf.net>
+
+	* plugins/elements/gstfunnel.c:
+	  docs: don't duplicate info that we take from element-details
+
+2011-04-28 15:37:02 +0300  Stefan Kost <ensonic@users.sf.net>
+
+	* docs/gst/gstreamer-sections.txt:
+	  docs: remove non existing symbol
+
+2011-04-28 15:05:28 +0300  Stefan Kost <ensonic@users.sf.net>
+
+	* gst/gstbufferlist.c:
+	* gst/gstsystemclock.h:
+	  docs: we don't need to document private members in opaque structs
+
+2011-04-30 16:55:36 +0100  Tim-Philipp Müller <tim.muller@collabora.co.uk>
+
+	* configure.ac:
+	* docs/plugins/inspect/plugin-coreelements.xml:
+	* docs/plugins/inspect/plugin-coreindexers.xml:
+	* docs/plugins/inspect/plugin-staticelements.xml:
+	* po/de.po:
+	* po/fr.po:
+	* win32/common/config.h:
+	* win32/common/gstversion.h:
+	  0.10.32.4 pre-release
+
+2011-04-29 23:44:55 +0100  Tim-Philipp Müller <tim.muller@collabora.co.uk>
+
+	* gst/gstpluginfeature.h:
+	  pluginfeature: include plugin.h in header where we use a GstPlugin pointer
+	  Should fix issue with gstreamermm build where <gst/gstindex.h> is included
+	  directly instead of gst/gst.h.
+
+2011-04-27 11:49:11 +0100  Tim-Philipp Müller <tim.muller@collabora.co.uk>
+
+	* configure.ac:
+	* docs/plugins/inspect/plugin-coreelements.xml:
+	* docs/plugins/inspect/plugin-coreindexers.xml:
+	* po/bg.po:
+	* po/nl.po:
+	* po/pl.po:
+	* po/ru.po:
+	* win32/common/config.h:
+	* win32/common/gstversion.h:
+	  0.10.32.3 pre-release
+
+2011-04-26 15:42:46 +0100  Tim-Philipp Müller <tim.muller@collabora.co.uk>
+
+	* gst/gst_private.h:
+	* gst/gstbin.c:
+	* gst/gstbus.c:
+	* gst/gstbus.h:
+	  Revert lockfree GstBus for the release
+	  Drop in old GstBus code for the release to play it safe, since
+	  regressions that are apparently hard to track down and reproduce
+	  have been reported (on windows/OSX mostly) against the lockfree
+	  version, and more time is needed to fix them.
+	  This reverts commit 03391a897001d35d1d290f27dd12e98a8b729fb4.
+	  This reverts commit 43cdbc17e6f944cdf02aeed78d1d5f6bde5190c9.
+	  This reverts commit 80eb160e0f62350271f061daa5f289d9d4277cf4.
+	  This reverts commit c41b0ade28790ffdb0e484b41cd7929c4e145dec.
+	  This reverts commit 874d60e5899dd5b89854679d1a4ad016a58ba4e0.
+	  This reverts commit 79370d4b1781af9c9a65f2d1e3498124d8c4c413.
+	  This reverts commit 2cb3e5235196eb71fb25e0a4a4b8749d6d0a8453.
+	  This reverts commit bd1c40011434c1efaa696dc98ef855ef9cce9b28.
+	  This reverts commit 4bf8f1524f6e3374b3f3bc57322337723d06b928.
+	  This reverts commit 14d7db1b527b05f029819057aef5c123ac7e013d.
+	  https://bugzilla.gnome.org/show_bug.cgi?id=647493
+
+2011-04-15 22:00:11 -0700  David Schleef <ds@schleef.org>
+
+	* gst/gstutils.c:
+	  minor inline documentation fix
+
+2011-04-24 14:02:51 +0100  Tim-Philipp Müller <tim.muller@collabora.co.uk>
+
+	* common:
+	  Automatic update of common submodule
+	  From c3cafe1 to 46dfcea
+
+2011-04-24 11:44:19 +0100  Tim-Philipp Müller <tim.muller@collabora.co.uk>
+
+	* tests/check/gst/gstbin.c:
+	  tests: clean up properly in the bin test_link_structure_change unit test
+	  Don't forget to set the pipeline back to NULL state, which makes
+	  valgrind happy again.
+
+2011-04-24 09:58:53 +0100  Tim-Philipp Müller <tim.muller@collabora.co.uk>
+
+	* gst/gstregistry.c:
+	  registry: when removing a cached-but-no-longer-existing plugin, only remove features that belong to it
+	  When a plugin file no longer exists, e.g. because it's been removed or
+	  renamed, don't remove all features in the registry based on the *name*
+	  of the plugin they belong to, but only remove those who actually belong
+	  to that particular plugin (object/pointer).
+	  This fixes issues of plugin features disappearing when a plugin .so file
+	  is renamed.
+	  https://bugzilla.gnome.org/show_bug.cgi?id=604094
+
+2011-04-24 09:53:39 +0100  Tim-Philipp Müller <tim.muller@collabora.co.uk>
+
+	* gst/gstelementfactory.c:
+	* gst/gstpluginfeature.c:
+	* gst/gstpluginfeature.h:
+	* gst/gstregistrychunks.c:
+	* gst/gsttypefind.c:
+	  pluginfeature: store pointer to plugin in addition to the plugin name
+	  So we can reliably remove plugin features for a specific plugin later.
+	  https://bugzilla.gnome.org/show_bug.cgi?id=604094
+
+2011-04-24 11:05:58 +0100  Tim-Philipp Müller <tim.muller@collabora.co.uk>
+
+	* gst/gstregistry.c:
+	  registry: use TRACE log level to log files that don't look like plugins
+	  Cuts down the noise in uninstalled setups.
+
+2011-04-19 20:35:04 -0300  Thiago Santos <thiago.sousa.santos@collabora.co.uk>
+
+	* libs/gst/base/gstbasetransform.c:
+	  basetransform: fix negotiation regression
+	  Fixup patch for 83597767b169dd6c39a07b6144a650c1f098825a
+	  Use a separate variable for knowing if a pad alloc has been made
+	  instead of checking for the flow return that might not be the
+	  result of the pad alloc
+	  https://bugzilla.gnome.org/show_bug.cgi?id=648220
+
+2011-04-21 12:33:10 +0100  Tim-Philipp Müller <tim.muller@collabora.co.uk>
+
+	* tests/check/gst/gstpipeline.c:
+	  tests: add simple pipeline-in-pipeline unit test
+	  https://bugzilla.gnome.org/show_bug.cgi?id=648297
+
+2011-04-20 15:39:16 +0200  Mark Nauwelaerts <mark.nauwelaerts@collabora.co.uk>
+
+	* gst/gstbus.c:
+	  bus: also allow popping a message without timeout if no poll available
+	  ... which happens in particular flushing a bus, possibly as part
+	  of a state change, e.g. when having a pipeline in a pipeline
+	  and then changing state back to NULL. The interior pipeline
+	  will/might then flush the bus, which is a child bus from the
+	  parent which does not have a poll anymore these days.
+	  https://bugzilla.gnome.org/show_bug.cgi?id=648297
+
+2011-04-19 14:05:23 +0200  Havard Graff <havard.graff@tandberg.com>
+
+	* gst/gstpad.c:
+	  pad: unlock before freeing the cache to avoid deadlock
+	  https://bugzilla.gnome.org/show_bug.cgi?id=648199
+
+2011-04-14 10:15:26 +0200  Havard Graff <havard.graff@tandberg.com>
+
+	* libs/gst/base/gstbasetransform.c:
+	  basetransform: don't unref trans until the function is done using it
+	  trans->priv->force_alloc = FALSE would crash if the ref held is the last
+	  https://bugzilla.gnome.org/show_bug.cgi?id=648215
+
+2011-04-19 13:23:19 +0100  Tim-Philipp Müller <tim.muller@collabora.co.uk>
+
+	* gst/gstindex.c:
+	  docs: add note/warning to gst_index_get_writer_id() docs about the OBJECT_LOCK
+	  https://bugzilla.gnome.org/show_bug.cgi?id=646811
+
+2011-04-19 13:05:53 +0100  Tim-Philipp Müller <tim.muller@collabora.co.uk>
+
+	* libs/gst/base/gstbaseparse.c:
+	  baseparse: don't deadlock when setting external index
+	  Protect index with its own lock. gst_index_get_writer_id() may take
+	  the object lock internally (the default resolver, GST_INDEX_RESOLVER_PATH,
+	  will anyway), so if we're using that to protect the index as well,
+	  we'll deadlock.
+	  https://bugzilla.gnome.org/show_bug.cgi?id=646811
+
+2011-04-19 11:51:30 +0100  Tim-Philipp Müller <tim.muller@collabora.co.uk>
+
+	* libs/gst/base/gstbaseparse.c:
+	  baseparse: make fmtlist constant
+
+2011-04-19 11:48:05 +0100  Tim-Philipp Müller <tim.muller@collabora.co.uk>
+
+	* gst/gstquery.c:
+	* gst/gstquery.h:
+	  query: const-ify formats arguments to gst_query_set_formatsv()
+
+2011-04-16 15:20:08 +0100  Tim-Philipp Müller <tim.muller@collabora.co.uk>
+
+	* libs/gst/base/gstbaseparse.c:
+	  docs: remove reference to baseparse API that didn't make it
+
+2011-04-16 14:56:03 +0100  Tim-Philipp Müller <tim.muller@collabora.co.uk>
+
+	* configure.ac:
+	* docs/plugins/gstreamer-plugins.args:
+	* docs/plugins/inspect/plugin-coreelements.xml:
+	* docs/plugins/inspect/plugin-coreindexers.xml:
+	* win32/common/config.h:
+	* win32/common/gstenumtypes.c:
+	* win32/common/gstenumtypes.h:
+	* win32/common/gstversion.h:
+	  0.10.32.2 pre-release
+
+2011-04-16 14:54:00 +0100  Tim-Philipp Müller <tim.muller@collabora.co.uk>
+
+	* 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/es.po:
+	* po/eu.po:
+	* po/fi.po:
+	* po/fr.po:
+	* po/gl.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
+
+2011-04-16 14:52:40 +0100  Tim-Philipp Müller <tim.muller@collabora.co.uk>
+
+	* tools/gst-launch.c:
+	  gst-launch: remove newline from translatable string
+
+2011-04-16 13:49:45 +0100  Tim-Philipp Müller <tim.muller@collabora.co.uk>
+
+	* gst/Makefile.am:
+	  gst: gobject-introspection scanner doesn't need to scan or update plugin info
+
+2011-04-16 14:34:08 +0200  Sebastian Dröge <sebastian.droege@collabora.co.uk>
+
+	* gst/Makefile.am:
+	  gst: make sure gobject-introspection scanner calls gst_init()
+	  https://bugzilla.gnome.org/show_bug.cgi?id=647922
+
+2011-04-16 10:45:16 +0100  Tim-Philipp Müller <tim.muller@collabora.co.uk>
+
+	* libs/gst/base/Makefile.am:
+	* libs/gst/check/Makefile.am:
+	* libs/gst/controller/Makefile.am:
+	* libs/gst/dataprotocol/Makefile.am:
+	* libs/gst/net/Makefile.am:
+	  libs: gobject-introspection scanner doesn't need to scan or update plugin info
+	  Make sure the scanner doesn't load or introspect or check any plugins,
+	  (especially not outside the build directory).
+
+2011-04-16 10:33:21 +0100  Tim-Philipp Müller <tim.muller@collabora.co.uk>
+
+	* libs/gst/base/Makefile.am:
+	* libs/gst/check/Makefile.am:
+	* libs/gst/controller/Makefile.am:
+	* libs/gst/dataprotocol/Makefile.am:
+	* libs/gst/net/Makefile.am:
+	  libs: make sure gobject-introspection scanner calls gst_init()
+	  https://bugzilla.gnome.org/show_bug.cgi?id=647922
+
+2011-04-16 10:17:24 +0100  Tim-Philipp Müller <tim.muller@collabora.co.uk>
+
+	* win32/common/libgstbase.def:
+	  win32: add new baseparse API to libgstbase.def
+
+2011-04-16 09:32:17 +0200  Sebastian Dröge <sebastian.droege@collabora.co.uk>
+
+	* win32/common/libgstreamer.def:
+	  win32: Add exports for the GstParseContext and GstBufferListIterator types
+
+2011-04-15 20:58:51 +0100  Tim-Philipp Müller <tim.muller@collabora.co.uk>
+
+	* gst/gstpluginloader.c:
+	  pluginloader: only run gst-plugin-scanner with /usr/bin/arch wrapper on OS X >= 10.5
+	  Based on patch by: Daniel Macks <dmacks@netspace.org>
+	  Earlier versions of OSX don't support proper multiarch and
+	  trying to use /usr/bin/arch -foo with those versions would
+	  just break things.
+	  https://bugzilla.gnome.org/show_bug.cgi?id=615357
+
+2011-04-15 19:07:55 +0100  Tim-Philipp Müller <tim.muller@collabora.co.uk>
+
+	* docs/libs/gstreamer-libs-sections.txt:
+	* libs/gst/base/gstbaseparse.c:
+	* libs/gst/base/gstbaseparse.h:
+	  baseparse: expose gst_base_parse_frame_free() for completeness
+	  API: gst_base_parse_frame_free()
+
+2011-04-15 18:52:18 +0100  Tim-Philipp Müller <tim.muller@collabora.co.uk>
+
+	* libs/gst/base/gstbaseparse.c:
+	  baseparse: init frames on the stack with gst_base_parse_frame_init()
+	  Frames must now be inited this way, can't just zero them
+	  out and use them.
+
+2011-04-15 18:38:46 +0100  Tim-Philipp Müller <tim.muller@collabora.co.uk>
+
+	* libs/gst/base/gstbaseparse.c:
+	  baseparse: more debug logging, minor clean-up
+	  Trace frames, split out code to queue a frame for later.
+
+2011-04-15 18:00:21 +0100  Tim-Philipp Müller <tim.muller@collabora.co.uk>
+
+	* libs/gst/base/gstbaseparse.c:
+	* libs/gst/base/gstbaseparse.h:
+	  baseparse: change gst_base_parse_frame_init() to not take a GstBaseParse argument
+
+2011-04-15 17:41:02 +0100  Tim-Philipp Müller <tim.muller@collabora.co.uk>
+
+	* libs/gst/base/gstbaseparse.c:
+	* libs/gst/base/gstbaseparse.h:
+	  baseparse: make GstBaseParseFrame handling more bindings-friendly
+	  Change semantics of gst_base_parse_push_frame() and make it take
+	  ownership of the whole frame, not just the frame contents. This
+	  is more in line with how gst_pad_push() etc. work. Just transfering
+	  the content, but not the container of something that's not really
+	  known to be a container is hard to annotate properly and probably
+	  won't work. We mark frames allocated on the stack now with a private
+	  flag in gst_base_parse_frame_init(), so gst_base_parse_frame_free()
+	  only frees the contents in that case but not the frame struct itself.
+	  https://bugzilla.gnome.org/show_bug.cgi?id=518857
+	  API: gst_base_parse_frame_new()
+
+2011-04-15 15:02:20 +0100  Tim-Philipp Müller <tim.muller@collabora.co.uk>
+
+	* libs/gst/base/gstbaseparse.c:
+	* libs/gst/base/gstbaseparse.h:
+	  baseparse: register boxed type for GstBaseFrameParse
+	  To make this usable for bindings.
+	  https://bugzilla.gnome.org/show_bug.cgi?id=518857
+
+2011-04-15 13:57:47 +0200  Sebastian Dröge <sebastian.droege@collabora.co.uk>
+
+	* plugins/elements/gstqueue2.c:
+	  queue2: Add missing ) to the ring-buffer-max-size property description
+
+2011-04-15 10:53:56 +0200  Robert Swain <robert.swain@collabora.co.uk>
+
+	* libs/gst/base/gstbaseparse.c:
+	  baseparse: Remove unused but set variable
+	  GCC 4.6.0 spits warnings about these.
+
+2011-04-14 16:06:16 +0200  Sebastian Dröge <sebastian.droege@collabora.co.uk>
+
+	* gst/gst.c:
+	* gst/gstbufferlist.c:
+	* gst/gstbufferlist.h:
+	  bufferlist: Add boxed type for GstBufferListIterator for gobject-introspection
+
+2011-04-14 15:59:28 +0200  Sebastian Dröge <sebastian.droege@collabora.co.uk>
+
+	* gst/gst.c:
+	* gst/gstparse.c:
+	* gst/gstparse.h:
+	  parse: Add boxed type for GstParseContext for gobject-introspection
+
+2011-04-14 15:51:24 +0200  Sebastian Dröge <sebastian.droege@collabora.co.uk>
+
+	* gst/gstbufferlist.c:
+	* gst/gstfilter.c:
+	* gst/gstinterface.c:
+	* gst/gstiterator.c:
+	* gst/gstminiobject.c:
+	* gst/gstregistry.c:
+	* gst/gststructure.c:
+	* gst/gstutils.c:
+	  gst: Add some more gobject-introspection annotations
+
+2011-04-14 09:07:48 +0200  Sebastian Dröge <sebastian.droege@collabora.co.uk>
+
+	* plugins/elements/gstmultiqueue.c:
+	  multiqueue: Don't leak the sinkpad name
+
+2011-04-14 09:07:25 +0200  Sebastian Dröge <sebastian.droege@collabora.co.uk>
+
+	* tests/check/elements/multiqueue.c:
+	  multiqueue: Don't leak pads in the named pads unit test
+
+2011-04-14 08:59:14 +0200  Sebastian Dröge <sebastian.droege@collabora.co.uk>
+
+	* gst/gstutils.c:
+	  utils: Fix caps leaks in gst_element_factory_can_accept_{any,all}_caps_in_direction()
+
+2011-04-13 09:20:13 -0700  David Schleef <ds@schleef.org>
+
+	* gst/parse/parse.l:
+	* tests/check/pipelines/parse-launch.c:
+	  parser: Allow element names to begin with digits
+
+2011-04-13 10:24:33 -0700  David Schleef <ds@schleef.org>
+
+	* tests/check/gst/gstutils.c:
+	  tests: Add test for greatest common divisor
+
+2011-01-06 18:11:31 +0100  Ole André Vadla Ravnås <oravnas@cisco.com>
+
+	* plugins/elements/gstfunnel.c:
+	* plugins/elements/gstinputselector.c:
+	* plugins/elements/gstoutputselector.c:
+	* plugins/elements/gstqueue.c:
+	* plugins/elements/gsttee.c:
+	  elements: Fix pad callbacks so they handle when parent goes away
+	  1) We need to lock and get a strong ref to the parent, if still there.
+	  2) If it has gone away, we need to handle that gracefully.
+	  This is necessary in order to safely modify a running pipeline. Has been
+	  observed when a streaming thread is doing a buffer_alloc() while an
+	  application thread sends an event on a pad further downstream, and from
+	  within a pad probe (holding STREAM_LOCK) carries out the pipeline plumbing
+	  while the streaming thread has its buffer_alloc() in progress.
+
+2011-01-06 18:11:31 +0100  Ole André Vadla Ravnås <oravnas@cisco.com>
+
+	* libs/gst/base/gstbasesink.c:
+	* libs/gst/base/gstbasetransform.c:
+	  base: Fix pad callbacks so they handle when parent goes away
+	  1) We need to lock and get a strong ref to the parent, if still there.
+	  2) If it has gone away, we need to handle that gracefully.
+	  This is necessary in order to safely modify a running pipeline. Has been
+	  observed when a streaming thread is doing a buffer_alloc() while an
+	  application thread sends an event on a pad further downstream, and from
+	  within a pad probe (holding STREAM_LOCK) carries out the pipeline plumbing
+	  while the streaming thread has its buffer_alloc() in progress.
+
+2011-01-06 18:11:31 +0100  Ole André Vadla Ravnås <oravnas@cisco.com>
+
+	* gst/gstghostpad.c:
+	  ghostpad: Fix pad callbacks so they handle when parent goes away
+	  1) We need to lock and get a strong ref to the parent, if still there.
+	  2) If it has gone away, we need to handle that gracefully.
+	  This is necessary in order to safely modify a running pipeline. Has been
+	  observed when a streaming thread is doing a buffer_alloc() while an
+	  application thread sends an event on a pad further downstream, and from
+	  within a pad probe (holding STREAM_LOCK) carries out the pipeline plumbing
+	  while the streaming thread has its buffer_alloc() in progress.
+
+2011-04-13 17:26:54 +0200  Janne Grunau <janne.grunau@collabora.co.uk>
+
+	* plugins/elements/gstqueue2.c:
+	  queue2: prevent calculation with GST_CLOCK_TIME_NONE in update_time_level()
+
+2011-04-11 15:08:30 +0100  Tim-Philipp Müller <tim.muller@collabora.co.uk>
+
+	* tests/check/elements/multiqueue.c:
+	* tests/check/elements/queue2.c:
+	* tests/check/gst/gstvalue.c:
+	* tests/check/libs/test_transform.c:
+	  tests: fix unusued-but-assigned-variable warnings with gcc 4.6
+
+2011-04-11 13:04:32 +0100  Tim-Philipp Müller <tim.muller@collabora.co.uk>
+
+	* tests/check/gst/gstbin.c:
+	  tests: disable test_many_bins unit test for now
+	  It fails on the OSX bot (both with git and the last release), and
+	  it doesn't really test anything useful, so may just as well disable
+	  it for now.
+
+2011-04-11 12:51:36 +0100  Tim-Philipp Müller <tim.muller@collabora.co.uk>
+
+	* gst/gstpluginloader.c:
+	  pluginloader: fix compiler warnings
+	  Cast string constants to make compiler happy.
+
+2011-04-11 12:04:34 +0100  Tim-Philipp Müller <tim.muller@collabora.co.uk>
+
+	* tests/check/gst/gstbin.c:
+	  tests: allow more time for the test_many_bins pipeline to preroll
+	  Hopefully makes this test work on the OSX build bot and other
+	  not-so-powerful machines.
+	  https://bugzilla.gnome.org/show_bug.cgi?id=646624
+
+2011-04-11 11:29:00 +0100  Jan Schmidt <thaytan@mad.scientist.com>
+
+	* gst/gstpluginloader.c:
+	  pluginloader: make sure gst-plugin-scanner is called with the right arch on OSX
+	  On OSX, GStreamer might be built as a 'fat/universal' binary containing
+	  both 32-bit and 64-bit code. We must take care that gst-plugin-scanner
+	  is executed with the same architecture as the GStreamer core, otherwise
+	  bad things may happen and core/scanner will not be able to communicate
+	  properly.
+	  Should fix issues with (32-bit) firefox using a 32-bit GStreamer core
+	  which then spawns a 'universal' gst-plugin-scanner binary which gets
+	  run in 64-bit mode, causing 100% cpu usage / busy loops or just hanging
+	  firefox until killed.
+	  https://bugzilla.gnome.org/show_bug.cgi?id=615357
+
+2011-04-11 11:05:24 +0200  Robert Swain <robert.swain@collabora.co.uk>
+
+	* gst/gstpad.c:
+	  pad: Allow tracking of buffers in GST_SCHEDULING debug output
+	  As GST_SCHEDULING reports when buffers pass through pads due to
+	  gst_pad_push calls, they are a good way of tracking the progress of
+	  buffers through pipelines. As such, adding output of the buffer pointers
+	  to these messages allows tracking of specific buffers, easing debugging.
+
+2011-01-27 14:33:08 +0100  Alessandro Decina <alessandro.d@gmail.com>
+
+	* .gitignore:
+	* Android.mk:
+	* android/NOTICE:
+	* android/base.mk:
+	* android/controller.mk:
+	* android/dataprotocol.mk:
+	* android/elements.mk:
+	* android/gst-inspect.mk:
+	* android/gst-launch.mk:
+	* android/gst-plugin-scanner.mk:
+	* android/gst.mk:
+	* android/gst/gstconfig.h:
+	* android/gst/gstenumtypes.c:
+	* android/gst/gstenumtypes.h:
+	* android/gst/gstmarshal.c:
+	* android/gst/gstmarshal.h:
+	* android/gst/gstversion.h:
+	* android/gst/parse/grammar.output:
+	* android/gst/parse/grammar.tab.c:
+	* android/gst/parse/grammar.tab.h:
+	* android/gst/parse/lex._gst_parse_yy.c:
+	* android/indexers.mk:
+	* android/net.mk:
+	* android/tools.mk:
+	* gst/Makefile.am:
+	* gst/parse/Makefile.am:
+	* libs/Makefile.am:
+	* libs/gst/Makefile.am:
+	* libs/gst/base/Makefile.am:
+	* libs/gst/controller/Makefile.am:
+	* libs/gst/dataprotocol/Makefile.am:
+	* libs/gst/helpers/Makefile.am:
+	* libs/gst/net/Makefile.am:
+	* plugins/Makefile.am:
+	* plugins/elements/Makefile.am:
+	* plugins/indexers/Makefile.am:
+	* tools/Makefile.am:
+	  android: make it ready for androgenizer
+	  Remove the android/ top dir
+	  Fixe the Makefile.am to be androgenized
+	  To build gstreamer for android we are now using androgenizer which generates the needed Android.mk files.
+	  Androgenizer can be found here: http://git.collabora.co.uk/?p=user/derek/androgenizer.git
+
+2011-04-09 23:54:20 +0100  Tim-Philipp Müller <tim.muller@collabora.co.uk>
+
+	* gst/gsttrace.c:
+	  trace: don't put code with side effects into g_return_if_fail()
+
+2011-04-09 22:57:46 +0100  Tim-Philipp Müller <tim.muller@collabora.co.uk>
+
+	* libs/gst/base/gstbaseparse.c:
+	  docs: minor fixes for baseparse docs
+	  Class vfunc references still aren't right, no idea what
+	  the correct markup for those is.
+
+2011-04-09 18:04:55 +0100  Tim-Philipp Müller <tim.muller@collabora.co.uk>
+
+	* gst/gstelement.c:
+	  element: unref event in default_send_event in case element has no pads
+	  Spotted by  Haakon Sporsheim.
+
+2011-04-08 19:07:02 +0100  Tim-Philipp Müller <tim.muller@collabora.co.uk>
+
+	* libs/gst/base/gstbaseparse.c:
+	  baseparse: minor variable name clean-up
+
+2011-04-08 15:31:14 +0100  Tim-Philipp Müller <tim.muller@collabora.co.uk>
+
+	* docs/libs/gstreamer-libs-sections.txt:
+	* docs/plugins/gstreamer-plugins.args:
+	* libs/gst/base/gstbaseparse.c:
+	* libs/gst/base/gstbaseparse.h:
+	* win32/common/libgstbase.def:
+	  baseparse: rename _set_frame_props() to _set_frame_rate()
+	  Seems like the best fit to what it does, and is shorter than
+	  set_frame_properties() which might also have been confusing
+	  because of GstBaseParseFrame.
+	  https://bugzilla.gnome.org/show_bug.cgi?id=518857
+
+2011-04-06 17:43:27 +0100  Tim-Philipp Müller <tim.muller@collabora.co.uk>
+
+	* docs/libs/gstreamer-libs-sections.txt:
+	* libs/gst/base/gstbaseparse.c:
+	* libs/gst/base/gstbaseparse.h:
+	  baseparse: replace format flags with gst_base_parse_set_{passthrough,syncable,has_timing_info}
+	  This is more in line with e.g. GstBaseTransform's API, and makes for nicer
+	  to read code. No getters for now since I don't see any use case for them,
+	  the API is for subclasses, which usually know what format they're
+	  dealing with already and hence know what they've set.
+	  https://bugzilla.gnome.org/show_bug.cgi?id=518857
+
+2011-04-04 17:58:59 +0100  Tim-Philipp Müller <tim.muller@collabora.co.uk>
+
+	* libs/gst/base/gstbaseparse.c:
+	* libs/gst/base/gstbaseparse.h:
+	  baseparse: make DRAIN and SYNC flags on baseparse, not the frame, and change to DRAINING and LOST_SYNC
+	  The first because it seems a better fit conceptually, the second
+	  to express booleanness. Also change the accessor macros for subclasses
+	  to GST_BASE_PARSE_DRAINING and GST_BASE_PARSE_LOST_SYNC.
+	  https://bugzilla.gnome.org/show_bug.cgi?id=518857
+
+2011-04-02 14:18:57 +0100  Tim-Philipp Müller <tim.muller@collabora.co.uk>
+
+	* libs/gst/base/gstbaseparse.h:
+	  baseparse: add some padding to GstBaseParseFrame
+	  Esp. since it's usually allocated on the stack.
+	  https://bugzilla.gnome.org/show_bug.cgi?id=518857
+
+2011-04-02 14:08:46 +0100  Tim-Philipp Müller <tim.muller@collabora.co.uk>
+
+	* libs/gst/base/gstbaseparse.h:
+	  baseparse: fix typo in docs for GST_BASE_PARSE_FORMAT_FLAG_PASSTHROUGH
+	  https://bugzilla.gnome.org/show_bug.cgi?id=518857
+
+2011-04-02 14:04:42 +0100  Tim-Philipp Müller <tim.muller@collabora.co.uk>
+
+	* libs/gst/base/gstbaseparse.c:
+	  baseparse: use GQueue instead of GList for queued frames
+	  and make buffer metadata writable before setting caps on queued
+	  buffer.
+	  https://bugzilla.gnome.org/show_bug.cgi?id=646341
+
+2011-04-02 13:02:01 +0100  Zaheer Abbas Merali <zaheermerali@gmail.com>
+
+	* libs/gst/base/gstbaseparse.c:
+	* libs/gst/base/gstbaseparse.h:
+	  baseparse: add GST_BASE_PARSE_FLOW_QUEUED to queue buffers until caps are known
+	  This is useful for parser like flacparse or h264parse which may need to process
+	  some buffers before they can construct the final caps, in which case they may
+	  want to delay pushing the initial buffers until the full and proper caps are
+	  known.
+	  https://bugzilla.gnome.org/show_bug.cgi?id=646341
+
+2011-03-31 15:50:22 +0100  Tim-Philipp Müller <tim.muller@collabora.co.uk>
+
+	* docs/libs/gstreamer-libs-docs.sgml:
+	* docs/libs/gstreamer-libs-sections.txt:
+	* libs/gst/base/gstbaseparse.c:
+	* libs/gst/base/gstbaseparse.h:
+	  baseparse: add to docs and fix up gtk-doc markup a little
+	  And add Since markers.
+
+2011-03-31 14:48:47 +0100  Tim-Philipp Müller <tim.muller@collabora.co.uk>
+
+	* libs/gst/base/gstbaseparse.c:
+	* libs/gst/base/gstbaseparse.h:
+	  baseparse: replace set_seek() with _set_average_bitrate() and FLAG_SYNCABLE
+	  This makes more sense conceptually, since the bitrate may be used
+	  to estimate a seek position if there's no seek table or just for
+	  duration reporting/estimation if we can't seek. Also, even if the
+	  format is not syncable, we could still seek by pushing data from the
+	  start and using the segment to make downstream clip.
+	  https://bugzilla.gnome.org/show_bug.cgi?id=518857
+
+2011-03-24 17:30:53 +0000  Tim-Philipp Müller <tim.muller@collabora.co.uk>
+
+	* libs/gst/base/gstbaseparse.c:
+	* libs/gst/base/gstbaseparse.h:
+	  baseparse: rename GstBaseFormat to GstBaseFormatFlags and fix up associated API
+	  Also change gst_base_parse_set_format(parse,flags,switch_on) to
+	  gst_base_parse_set_format_flags(parse,flags) which is more in line
+	  with the rest of our API and how the function is used.
+
+2011-03-13 23:43:52 +0000  Tim-Philipp Müller <tim.muller@collabora.co.uk>
+
+	* libs/gst/base/gstbaseparse.c:
+	* libs/gst/base/gstbaseparse.h:
+	  baseparse: don't expose GstAdapter in public header
+	  None of the existing subclasses needs access to that, so there's
+	  no reason to expose it for now.
+	  https://bugzilla.gnome.org/show_bug.cgi?id=518857
+
+2011-03-13 23:38:12 +0000  Tim-Philipp Müller <tim.muller@collabora.co.uk>
+
+	* libs/gst/base/gstbaseparse.c:
+	* libs/gst/base/gstbaseparse.h:
+	  baseparse: move various segment-related members into the private instance struct
+	  If none of the existing subclasses uses these, there's probably no
+	  need to expose them at the moment. Keep the segment itself exposed
+	  though.
+	  https://bugzilla.gnome.org/show_bug.cgi?id=518857
+
+2011-03-13 23:30:51 +0000  Tim-Philipp Müller <tim.muller@collabora.co.uk>
+
+	* libs/gst/base/gstbaseparse.h:
+	  baseparse: remove unused GST_BASE_PARSE_{SINK,SRC}_NAME
+	  https://bugzilla.gnome.org/show_bug.cgi?id=518857
+
+2011-03-12 16:16:22 +0000  Tim-Philipp Müller <tim.muller@collabora.co.uk>
+
+	* libs/gst/base/gstbaseparse.h:
+	  baseparse: re-indent header
+
+2011-03-12 15:34:33 +0000  Tim-Philipp Müller <tim.muller@collabora.co.uk>
+
+	* libs/gst/base/gstbaseparse.c:
+	  baseparse: fix up GType name and make _get_type() function thread-safe
+	  Rename GType from GstBaseParseBad to GstBaseParse.
+
+2011-03-12 15:29:38 +0000  Tim-Philipp Müller <tim.muller@collabora.co.uk>
+
+	* libs/gst/base/Makefile.am:
+	  libs: add GstBaseParse which was moved from -bad
+
+2011-02-23 17:24:14 -0800  David Schleef <ds@schleef.org>
+
+	* libs/gst/base/gstbaseparse.c:
+	  baseparse: make_metadata_writable() fix
+
+2011-02-21 13:24:03 +0000  Tim-Philipp Müller <tim.muller@collabora.co.uk>
+
+	* libs/gst/base/gstbaseparse.c:
+	  baseparse: rename GType from GstAudioBaseParseBad to GstBaseParseBad
+	  We use it for video as well now.
+
+2011-02-18 15:05:31 +0200  Stefan Kost <ensonic@users.sf.net>
+
+	* libs/gst/base/gstbaseparse.c:
+	  baseparse: trim trailing whitespace
+
+2011-02-18 15:05:03 +0200  Stefan Kost <ensonic@users.sf.net>
+
+	* libs/gst/base/gstbaseparse.c:
+	  baseparse: use delta-unit flags instead of none
+
+2011-02-17 13:22:28 -0800  David Schleef <ds@schleef.org>
+
+	* libs/gst/base/gstbaseparse.h:
+	  baseparse: update documentation for API changes
+
+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
+
+2011-02-07 14:46:57 +0100  Mark Nauwelaerts <mark.nauwelaerts@collabora.co.uk>
+
+	* gst/audioparsers/gstbaseparse.c:
+	  baseparse: tune QUERY_SEEKING response
+	  Even if we currently do not have a duration yet, assume seekable if
+	  it looks like we'll likely be able to determine it later on
+	  (which coincides with needed information to perform seeking).
+	  Fixes #641047.
+
+2011-02-08 23:39:24 +0530  Arun Raghavan <arun.raghavan@collabora.co.uk>
+
+	* gst/audioparsers/gstbaseparse.c:
+	  baseparse: Update min/max bitrate before first posting them
+	  This avoids posting an initial min-bitrate of G_UINTMAX and max-bitrate
+	  of 0.
+	  https://bugzilla.gnome.org/show_bug.cgi?id=641857
+
+2011-01-21 14:53:39 +0100  Mark Nauwelaerts <mark.nauwelaerts@collabora.co.uk>
+
+	* gst/audioparsers/gstbaseparse.c:
+	  baseparse: tune default duration estimate update interval
+	  Rather than a fixed default frame count, estimate frame count to aim for
+	  an interval duration depending on fps if available, otherwise use old
+	  fixed default.
+
+2011-01-14 15:16:04 +0100  Mark Nauwelaerts <mark.nauwelaerts@collabora.co.uk>
+
+	* gst/audioparsers/gstbaseparse.c:
+	  baseparse: reverse playback; mind keyframes for fragment boundary
+
+2011-01-12 14:40:37 +0100  Mark Nauwelaerts <mark.nauwelaerts@collabora.co.uk>
+
+	* gst/audioparsers/gstbaseparse.c:
+	  baseparse: ensure non-empty candidate frames
+
+2011-01-11 15:24:23 +0100  Mark Nauwelaerts <mark.nauwelaerts@collabora.co.uk>
+
+	* gst/audioparsers/gstbaseparse.c:
+	  baseparse: clarify some debug statements
+
+2011-01-11 15:24:02 +0100  Mark Nauwelaerts <mark.nauwelaerts@collabora.co.uk>
+
+	* gst/audioparsers/gstbaseparse.c:
+	  baseparse: properly track upstream timestamps
+	  ... rather than with a delay.
+
+2011-01-11 15:23:29 +0100  Mark Nauwelaerts <mark.nauwelaerts@collabora.co.uk>
+
+	* gst/audioparsers/gstbaseparse.c:
+	  baseparse: need proper frame duration to obtain sensible frame bitrate
+
+2011-01-11 15:22:51 +0100  Mark Nauwelaerts <mark.nauwelaerts@collabora.co.uk>
+
+	* gst/audioparsers/gstbaseparse.c:
+	  baseparse: proper initial values for index tracking variables
+
+2011-01-11 12:05:13 +0100  Mark Nauwelaerts <mark.nauwelaerts@collabora.co.uk>
+
+	* gst/audioparsers/gstbaseparse.c:
+	  baseparse: arrange for consistent event handling
+
+2011-01-10 16:59:59 +0100  Mark Nauwelaerts <mark.nauwelaerts@collabora.co.uk>
+
+	* gst/audioparsers/gstbaseparse.h:
+	  baseparse: header style cleaning
+
+2011-01-10 17:07:38 +0100  Mark Nauwelaerts <mark.nauwelaerts@collabora.co.uk>
+
+	* gst/audioparsers/gstbaseparse.c:
+	  baseparse: provide some more initial frame metadata in parse_frame
+	  ... and document accordingly.
+
+2011-01-10 16:56:36 +0100  Mark Nauwelaerts <mark.nauwelaerts@collabora.co.uk>
+
+	* gst/audioparsers/gstbaseparse.c:
+	* gst/audioparsers/gstbaseparse.h:
+	  baseparse: refactor passthrough into format flags
+	  Also add a format flag to signal baseparse that subclass/format can provide
+	  (parsed) timestamp rather than an estimated one.  In particular, such "strong"
+	  timestamp then allows to e.g. determine duration.
+
+2011-01-10 15:34:48 +0100  Mark Nauwelaerts <mark.nauwelaerts@collabora.co.uk>
+
+	* gst/audioparsers/gstbaseparse.c:
+	* gst/audioparsers/gstbaseparse.h:
+	  baseparse: introduce a baseparse frame to serve as context
+	  ... and adjust subclass parsers accordingly
+
+2011-01-07 16:39:51 +0100  Mark Nauwelaerts <mark.nauwelaerts@collabora.co.uk>
+
+	* gst/audioparsers/gstbaseparse.c:
+	* gst/audioparsers/gstbaseparse.h:
+	  baseparse: restrict duration scanning to pull mode and avoid extra set_caps call
+
+2011-01-07 15:58:49 +0100  Mark Nauwelaerts <mark.nauwelaerts@collabora.co.uk>
+
+	* gst/audioparsers/gstbaseparse.c:
+	* gst/audioparsers/gstbaseparse.h:
+	  baseparse: update some documentation
+	  Also add some more debug.
+
+2011-01-06 11:41:44 +0100  Mark Nauwelaerts <mark.nauwelaerts@collabora.co.uk>
+
+	* gst/audioparsers/gstbaseparse.c:
+	  baseparse: allow increasing min_size for current frame parsing only
+	  Also check that subclass actually either directs to skip bytes or
+	  increases expected frame size to avoid going nowhere in bogus
+	  indefinite looping.
+
+2011-01-14 15:26:37 +0100  Mark Nauwelaerts <mark.nauwelaerts@collabora.co.uk>
+
+	* gst/audioparsers/gstbaseparse.c:
+	  baesparse: fix refactor regression in loop based parsing
+
+2011-01-06 11:16:56 +0100  Mark Nauwelaerts <mark.nauwelaerts@collabora.co.uk>
+
+	* gst/audioparsers/gstbaseparse.c:
+	  baseparse: pass all available data to subclass rather than minimum
+	  Also reduce some adapter calls and add a few debug statements.
+
+2010-12-10 15:59:49 +0100  Mark Nauwelaerts <mark.nauwelaerts@collabora.co.uk>
+
+	* gst/audioparsers/gstbaseparse.c:
+	  baseparse: fix reverse playback handling
+
+2010-12-10 14:56:13 +0100  Mark Nauwelaerts <mark.nauwelaerts@collabora.co.uk>
+
+	* gst/audioparsers/gstbaseparse.c:
+	  baseparse: minor typo and debug statement cleanup
+
+2010-12-10 14:40:05 +0100  Mark Nauwelaerts <mark.nauwelaerts@collabora.co.uk>
+
+	* gst/audioparsers/gstbaseparse.c:
+	* gst/audioparsers/gstbaseparse.h:
+	  baseparse: reduce locking
+	  ... which is either already mute and/or implicitly handled by STREAM_LOCK.
+
+2011-01-14 14:08:38 +0100  Mark Nauwelaerts <mark.nauwelaerts@collabora.co.uk>
+
+	* gst/audioparsers/gstbaseparse.c:
+	  baseparse: avoid loop in frame locating interpolation
+
+2011-01-14 16:30:11 -0300  Thiago Santos <thiago.sousa.santos@collabora.co.uk>
+
+	* gst/audioparsers/gstbaseparse.c:
+	  audioparsers: baseparse: Be careful to not lose the event ref
+	  Don't unref the event if it hasn't been handled, because the caller
+	  assumes it is still valid and might reuse it.
+	  I ran into this problem when transcoding an AVI (with mp3 inside)
+	  to gpp.
+	  https://bugzilla.gnome.org/show_bug.cgi?id=639555
+
+2011-01-13 16:27:04 +0000  Tim-Philipp Müller <tim.muller@collabora.co.uk>
+
+	* gst/audioparsers/gstbaseparse.c:
+	  docs: minor baseparse docs/comment fixes
+	  Remove copy'n'paste leftovers.
+
+2010-11-08 19:58:31 +0100  Mark Nauwelaerts <mark.nauwelaerts@collabora.co.uk>
+
+	* gst/audioparsers/gstbaseparse.c:
+	  baseparse: increase keyframe awareness
+	  ... which is not particular relevant for audio parsing, but more so
+	  in video cases.  In particular, auto-determine if dealing with video (caps).
+
+2010-11-30 15:41:02 +0100  Mark Nauwelaerts <mark.nauwelaerts@collabora.co.uk>
+
+	* gst/audioparsers/gstbaseparse.c:
+	  baseparse: avoid unexpected stray metadata
+
+2010-11-30 15:40:28 +0100  Mark Nauwelaerts <mark.nauwelaerts@collabora.co.uk>
+
+	* gst/audioparsers/gstbaseparse.c:
+	  baseparse: use proper _NONE output value when applicable
+
+2010-11-25 18:56:42 +0100  Edward Hervey <bilboed@bilboed.com>
+
+	* gst/audioparsers/gstbaseparse.c:
+	  audioparsers: Remove dead assignments
+
+2010-11-25 17:14:23 +0100  Andoni Morales Alastruey <amorales@flumotion.com>
+
+	* gst/audioparsers/gstbaseparse.c:
+	  audioparse: fix possible division-by-zero
+	  https://bugzilla.gnome.org/show_bug.cgi?id=635786
+
+2010-11-17 16:23:42 +0100  Mark Nauwelaerts <mark.nauwelaerts@collabora.co.uk>
+
+	* gst/audioparsers/gstbaseparse.c:
+	  baseparse: use correct offset when adding index entry
+	  ... bearing in mind that BUFFER_OFFSET is media specific and may not
+	  reflect the basic offset after having been parsed.
+
+2010-11-17 14:30:09 +0100  Mark Nauwelaerts <mark.nauwelaerts@collabora.co.uk>
+
+	* gst/audioparsers/gstbaseparse.c:
+	  baseparse: enhancements for timestamp marked framed formats
+	  That is, as such formats allow subclass to extract position from frame,
+	  it is possible to extract duration (if not otherwise provided)
+	  from (near) last frame, and a seek can fairly accurately target the required
+	  position.
+	  Fixes #631389.
+
+2010-11-16 17:06:14 +0100  Mark Nauwelaerts <mark.nauwelaerts@collabora.co.uk>
+
+	* gst/audioparsers/gstbaseparse.c:
+	  baseparse: refactor frame scanning peformed by _loop
+
+2010-11-16 18:04:00 +0100  Mark Nauwelaerts <mark.nauwelaerts@collabora.co.uk>
+
+	* gst/audioparsers/gstbaseparse.c:
+	  baseparse: slightly optimize sending of pending newsegment events
+
+2010-11-16 17:04:35 +0100  Mark Nauwelaerts <mark.nauwelaerts@collabora.co.uk>
+
+	* gst/audioparsers/gstbaseparse.c:
+	  baseparse: minor fixes and enhancements
+	  Arrange for upstream as well as downstream flushing when seeking.
+	  Also determine upstream size as well as seekability.  Adjust some comments
+	  to reality and employ debug statement in proper order.
+
+2010-10-29 14:08:58 +0200  Mark Nauwelaerts <mark.nauwelaerts@collabora.co.uk>
+
+	* gst/audioparsers/gstbaseparse.c:
+	  baseparse: use only upstream duration if it provides one
+
+2010-10-25 14:15:50 +0200  Mark Nauwelaerts <mark.nauwelaerts@collabora.co.uk>
+
+	* gst/audioparsers/gstbaseparse.c:
+	  baseparse: reflow update_bitrate code
+	  ... which makes local variables represent real state better, and avoids
+	  triggering unneeded updates/actions.
+
+2010-10-25 14:13:51 +0200  Mark Nauwelaerts <mark.nauwelaerts@collabora.co.uk>
+
+	* gst/audioparsers/gstbaseparse.c:
+	  baseparse: add some debug statements
+
+2010-10-11 17:49:46 +0200  Mark Nauwelaerts <mark.nauwelaerts@collabora.co.uk>
+
+	* gst/audioparsers/gstbaseparse.c:
+	  baseparse: perform bitrate handling and posting after newsegment sending
+
+2010-10-11 17:36:19 +0200  Mark Nauwelaerts <mark.nauwelaerts@collabora.co.uk>
+
+	* gst/audioparsers/gstbaseparse.c:
+	  baseparse: immediately post subclass provided bitrate
+
+2010-10-05 11:17:52 +0100  Tim-Philipp Müller <tim.muller@collabora.co.uk>
+
+	* gst/audioparsers/gstbaseparse.c:
+	  Revert "baseparse: add skip property"
+	  This reverts commit b5a3d60363d837a10f0533c141ec93d10b742312.
+	  Reverting this for now, since no one really seems to remember why this
+	  property exists or what it could possibly be good for. It seems to have
+	  been in the original mp3parse since the beginning of time and was back-
+	  ported from there.
+
+2010-10-03 23:50:29 +0200  Sebastian Dröge <sebastian.droege@collabora.co.uk>
+
+	* gst/audioparsers/gstbaseparse.c:
+	  audioparser: Let the format string agree with the parameters to fix compiler warning
+
+2010-09-22 15:44:43 +0530  Arun Raghavan <arun.raghavan@collabora.co.uk>
+
+	* gst/audioparsers/gstbaseparse.c:
+	  baseparse: Fix debug output
+	  We lose the reference to the buffer after gst_pad_push(), so the debug
+	  print should happen before.
+	  https://bugzilla.gnome.org/show_bug.cgi?id=622276
+
+2010-09-29 16:12:42 +0200  Mark Nauwelaerts <mark.nauwelaerts@collabora.co.uk>
+
+	* gst/audioparsers/gstbaseparse.c:
+	  baseparse: support reverse playback
+	  ... in pull mode or upstream driven.
+
+2010-09-27 12:16:43 +0200  Mark Nauwelaerts <mark.nauwelaerts@collabora.co.uk>
+
+	* gst/audioparsers/gstbaseparse.c:
+	  baseparse: remove done TODOs and update documentation
+
+2010-09-25 14:40:54 +0200  Mark Nauwelaerts <mark.nauwelaerts@collabora.co.uk>
+
+	* gst/audioparsers/gstbaseparse.c:
+	  baseparse: use determined seekability in answering SEEKING query
+
+2010-09-25 14:32:06 +0200  Mark Nauwelaerts <mark.nauwelaerts@collabora.co.uk>
+
+	* gst/audioparsers/gstbaseparse.c:
+	  baseparse: add skip property
+
+2010-09-22 15:07:09 +0200  Mark Nauwelaerts <mark.nauwelaerts@collabora.co.uk>
+
+	* gst/audioparsers/gstbaseparse.c:
+	* gst/audioparsers/gstbaseparse.h:
+	  baseparse: use _set_frame_props to configure frame lead_in and lead_out
+	  ... provided a corresponding decoder with sufficient leading and following
+	  frames to carry out full decoding for a particular segment.
+
+2010-09-22 14:13:17 +0200  Mark Nauwelaerts <mark.nauwelaerts@collabora.co.uk>
+
+	* gst/audioparsers/gstbaseparse.c:
+	* gst/audioparsers/gstbaseparse.h:
+	  baseparse: use _set_duration to configure duration update interval
+	  ... as it logically belongs there as one or the other; either subclass
+	  can provide a duration, or an estimate must be made (reguarly updated).
+
+2010-09-22 13:55:20 +0200  Mark Nauwelaerts <mark.nauwelaerts@collabora.co.uk>
+
+	* gst/audioparsers/gstbaseparse.c:
+	  baseparse: localize use of provided fps information
+
+2010-09-22 12:13:12 +0200  Mark Nauwelaerts <mark.nauwelaerts@collabora.co.uk>
+
+	* gst/audioparsers/gstbaseparse.c:
+	  baseparse: seek table and accurate seek support
+
+2010-09-21 13:57:10 +0200  Mark Nauwelaerts <mark.nauwelaerts@collabora.co.uk>
+
+	* gst/audioparsers/gstbaseparse.c:
+	  baseparse: proper and more extended segment and seek handling
+	  That is, loop pause handling, segment seek support, newsegment for gaps, etc
+
+2010-09-21 10:57:04 +0200  Mark Nauwelaerts <mark.nauwelaerts@collabora.co.uk>
+
+	* gst/audioparsers/gstbaseparse.c:
+	* gst/audioparsers/gstbaseparse.h:
+	  baseparse: add index support
+
+2010-09-21 09:59:56 +0200  Mark Nauwelaerts <mark.nauwelaerts@collabora.co.uk>
+
+	* gst/audioparsers/gstbaseparse.c:
+	  baseparse: refactor state reset
+
+2010-09-20 16:39:37 +0200  Mark Nauwelaerts <mark.nauwelaerts@collabora.co.uk>
+
+	* gst/audioparsers/gstbaseparse.c:
+	  baseparse: prevent indefinite resyncing
+
+2010-09-20 13:57:55 +0200  Mark Nauwelaerts <mark.nauwelaerts@collabora.co.uk>
+
+	* gst/audioparsers/gstbaseparse.c:
+	  baseparse: specific EOS handling if no output so far
+
+2010-09-20 13:31:57 +0200  Mark Nauwelaerts <mark.nauwelaerts@collabora.co.uk>
+
+	* gst/audioparsers/gstbaseparse.c:
+	  baseparse: adjust _set_frame_prop documentation and set default as claimed
+
+2010-09-20 13:30:54 +0200  Mark Nauwelaerts <mark.nauwelaerts@collabora.co.uk>
+
+	* gst/audioparsers/gstbaseparse.c:
+	  baseparse: fix bitrate copy-and-paste and update heuristic
+
+2010-09-17 18:33:29 +0200  Mark Nauwelaerts <mark.nauwelaerts@collabora.co.uk>
+
+	* gst/audioparsers/gstbaseparse.c:
+	  baseparse: post duration message if average bitrates is updated
+
+2010-09-17 18:24:22 +0200  Mark Nauwelaerts <mark.nauwelaerts@collabora.co.uk>
+
+	* gst/audioparsers/gstbaseparse.c:
+	* gst/audioparsers/gstbaseparse.h:
+	  baseparse: remove is_seekable vmethod and use a set_seek instead
+	  Seekability, like duration, etc is unlikely to change (frequently), and
+	  the default assumption covers most cases, so let subclass set when needed.
+	  At the same time, allow subclass to indicate if it has seek-metadata (table)
+	  available, and possibly have it provide an average bitrate.
+
+2010-09-17 17:21:46 +0200  Mark Nauwelaerts <mark.nauwelaerts@collabora.co.uk>
+
+	* gst/audioparsers/gstbaseparse.c:
+	* gst/audioparsers/gstbaseparse.h:
+	  baseparse: add another hook for subclass prior to pushing buffer
+	  ... and allow subclass to perform custom segment clipping, or to
+	  emit tags or messages at this time.
+
+2010-09-17 17:19:37 +0200  Mark Nauwelaerts <mark.nauwelaerts@collabora.co.uk>
+
+	* gst/audioparsers/gstbaseparse.c:
+	  baseparse: 0 converts to 0 by default
+
+2010-09-16 18:56:46 +0200  Mark Nauwelaerts <mark.nauwelaerts@collabora.co.uk>
+
+	* gst/audioparsers/gstbaseparse.c:
+	* gst/audioparsers/gstbaseparse.h:
+	  baseparse: refactor conversion using helper function and export default convert
+
+2010-09-16 18:35:47 +0200  Mark Nauwelaerts <mark.nauwelaerts@collabora.co.uk>
+
+	* gst/audioparsers/gstbaseparse.c:
+	  baseparse: streamline query handling
+
+2010-09-16 11:51:20 +0200  Mark Nauwelaerts <mark.nauwelaerts@collabora.co.uk>
+
+	* gst/audioparsers/gstbaseparse.c:
+	* gst/audioparsers/gstbaseparse.h:
+	  baseparse: cleanup struct and remove unused member
+
+2010-09-22 16:07:24 +0530  Arun Raghavan <arun.raghavan@collabora.co.uk>
+
+	* gst/audioparsers/gstbaseparse.c:
+	  baseparse: Allow chaining of subclass event handlers
+	  This allows the child class to chain its event handler with
+	  GstBaseParse, so that subclasses don't have to duplicate all the default
+	  event handling logic.
+	  https://bugzilla.gnome.org/show_bug.cgi?id=622276
+
+2010-08-27 18:35:10 +0200  Sebastian Dröge <sebastian.droege@collabora.co.uk>
+
+	* gst/audioparsers/gstbaseparse.c:
+	  baseparse: Don't use GST_FLOW_IS_FATAL()
+	  Also don't post an error message for UNEXPECTED and do it
+	  for NOT_LINKED.
+
+2010-09-06 14:12:00 +0200  Mark Nauwelaerts <mark.nauwelaerts@collabora.co.uk>
+
+	* gst/audioparsers/gstbaseparse.c:
+	  baseparse: non-TIME seek event is simply not handled
+
+2010-06-15 15:34:05 +0200  Mark Nauwelaerts <mark.nauwelaerts@collabora.co.uk>
+
+	* gst/audioparsers/gstbaseparse.c:
+	  baseparse: fix seek event ref handling
+
+2010-06-15 15:33:37 +0200  Mark Nauwelaerts <mark.nauwelaerts@collabora.co.uk>
+
+	* gst/audioparsers/gstbaseparse.c:
+	  baseparse: prevent arithmetic overflows in pull mode buffer cache handling
+
+2010-06-15 15:32:34 +0200  Mark Nauwelaerts <mark.nauwelaerts@collabora.co.uk>
+
+	* gst/audioparsers/gstbaseparse.c:
+	  baseparse: fix seek handling
+	  Allow a few more seek event type combinations, and really use the result
+	  of gst_segment_set_seek to perform the seek.  Also add some debug.
+
+2010-03-26 18:56:49 +0000  Arun Raghavan <arun.raghavan@collabora.co.uk>
+
+	* gst/audioparsers/gstbaseparse.c:
+	  baseparse: Don't emit bitrate tags too early
+	  We wait to parse a minimum number of frames (10, arbitrarily) before
+	  emiting bitrate tags so that our early estimates are not wildly
+	  inaccurate for streams that start with a silence. If the stream ends
+	  before that, we just emit the tags anyway.
+	  While it _would_ be nicer to be specify the threshold to start pushing
+	  the tags in terms of duration, this would introduce more complexity than
+	  this merits.
+	  https://bugzilla.gnome.org/show_bug.cgi?id=614991
+
+2010-03-26 18:20:24 +0100  Sebastian Dröge <sebastian.droege@collabora.co.uk>
+
+	* gst/audioparsers/gstbaseparse.c:
+	  baseparse: Set the last stop to the buffer starttime if the duration is invalid
+	  ...instead of not setting it at all.
+
+2010-03-26 18:19:00 +0100  Joshua M. Doe <josh@joshdoe.com>
+
+	* gst/audioparsers/gstbaseparse.c:
+	  baseparse: Send NEWSEGMENT event with correct start and position
+	  Instead of taking the last stop (which could be buffer endtime instead
+	  of starttime) always take the buffer starttime.
+	  Fixes bug #614016.
+
+2010-03-25 17:09:17 +0000  Tim-Philipp Müller <tim.muller@collabora.co.uk>
+
+	* gst/audioparsers/gstbaseparse.c:
+	* gst/audioparsers/gstbaseparse.h:
+	  audioparsers: remove unused GstBaseParseClassPrivate structure
+
+2010-03-25 11:22:58 +0000  Arun Raghavan <arun.raghavan@collabora.co.uk>
+
+	* gst/audioparsers/gstbaseparse.c:
+	* gst/audioparsers/gstbaseparse.h:
+	  audioparsers: Add bitrate calculation to baseparse
+	  This makes baseparse keep a running average of the stream bitrate, as
+	  well as the minimum and maximum bitrates. Subclasses can override a
+	  vfunc to make sure that per-frame overhead from the container is not
+	  accounted for in the bitrate calculation.
+	  We take care not to override the bitrate, minimum-bitrate, and
+	  maximum-bitrate tags if they have been posted upstream. We also
+	  rate-limit the emission of bitrate so that it is only triggered by a
+	  change of >10 kbps.
+
+2010-01-14 11:50:33 +0100  Mark Nauwelaerts <mark.nauwelaerts@collabora.co.uk>
+
+	* gst/audioparsers/gstbaseparse.c:
+	  audioparsers: rename baseparse GType name to avoid possible conflicts
+
+2010-01-05 15:05:05 +0100  Mark Nauwelaerts <mark.nauwelaerts@collabora.co.uk>
+
+	* gst/audioparsers/gstbaseparse.c:
+	  audioparsers: documentation fixes
+
+2009-12-21 18:18:39 +0100  Mark Nauwelaerts <mark.nauwelaerts@collabora.co.uk>
+
+	* gst/audioparsers/gstbaseparse.c:
+	  baseparse: adjust seek handling and newsegment sending
+	  Perform sanity check on type of seek, and only perform one that is
+	  appropriately supported.  Adjust downstream newsegment event
+	  to first buffer timestamp that is sent downstream.
+
+2009-12-21 11:59:45 +0100  Mark Nauwelaerts <mark.nauwelaerts@collabora.co.uk>
+
+	* gst/audioparsers/gstbaseparse.c:
+	  baseparse: minor refactor cleanup
+	  Also add some debug logging.
+
+2009-12-18 21:02:40 +0100  Mark Nauwelaerts <mark.nauwelaerts@collabora.co.uk>
+
+	* gst/audioparsers/gstbaseparse.c:
+	  baseparse: implement leftover draining in pull mode
+
+2009-12-16 18:38:33 +0100  Mark Nauwelaerts <mark.nauwelaerts@collabora.co.uk>
+
+	* gst/audioparsers/gstbaseparse.c:
+	  baseparse: provide default conversion using bps if no fps available
+	  Also store estimated duration as such, rather than pretending otherwise
+	  (e.g. set by subclass).
+
+2009-12-18 13:30:29 +0100  Mark Nauwelaerts <mark.nauwelaerts@collabora.co.uk>
+
+	* gst/audioparsers/gstbaseparse.c:
+	  baseparse: check for remaining data when draining in push mode
+
+2009-12-18 13:30:07 +0100  Mark Nauwelaerts <mark.nauwelaerts@collabora.co.uk>
+
+	* gst/audioparsers/gstbaseparse.c:
+	  baseparse: fix pull mode cache size comparison
+
+2009-12-11 10:25:16 -0800  Michael Smith <msmith@songbirdnest.com>
+
+	* gst/audioparsers/gstbaseparse.c:
+	  audioparse: fix a format string as reported on irc.
+
+2009-10-29 15:18:37 +0100  Mark Nauwelaerts <mark.nauwelaerts@collabora.co.uk>
+
+	* gst/audioparsers/gstbaseparse.c:
+	* gst/audioparsers/gstbaseparse.h:
+	  baseparse: custom bufferflag indicates not to count frame in stats
+
+2009-11-27 17:27:32 +0100  Mark Nauwelaerts <mark.nauwelaerts@collabora.co.uk>
+
+	* gst/audioparsers/gstbaseparse.c:
+	  audioparsers: reference GstBaseParse now lives here
+
+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
+
+2009-10-29 16:05:00 +0100  Mark Nauwelaerts <mark.nauwelaerts@collabora.co.uk>
+
+	* gst/aacparse/gstbaseparse.c:
+	  baseparse: reset passthrough mode to default (disabled) on activation
+
+2009-10-29 15:16:59 +0100  Mark Nauwelaerts <mark.nauwelaerts@collabora.co.uk>
+
+	* gst/aacparse/gstbaseparse.c:
+	  baseparse: ensure buffer metadata is writable
+
+2009-10-28 14:06:13 +0100  Mark Nauwelaerts <mark.nauwelaerts@collabora.co.uk>
+
+	* gst/aacparse/gstbaseparse.c:
+	* gst/aacparse/gstbaseparse.h:
+	  baseparse: fix/enhance DISCONT marking
+	  In particular, consider DISCONT == !sync, and allow subclass to query
+	  sync state, as it may want to perform additional checks depending
+	  on whether sync was achieved earlier on.
+	  Also arrange for subclass to query whether leftover data is being drained.
+
+2009-11-23 15:48:25 +0100  Mark Nauwelaerts <mark.nauwelaerts@collabora.co.uk>
+
+	* gst/aacparse/gstbaseparse.c:
+	* gst/aacparse/gstbaseparse.h:
+	  baseparse: add timestamp handling, and default conversion
+	  In particular, (optionally) provide baseparse with a notion of frames per second
+	  (and therefore also frame duration) and have it track frame and byte counts.
+	  This way, subclass can provide baseparse with fps and have it provide default
+	  buffer time metadata and conversions, though subclass can still install
+	  callbacks to handle such itself.
+
+2009-10-28 12:02:03 +0100  Mark Nauwelaerts <mark.nauwelaerts@collabora.co.uk>
+
+	* gst/aacparse/gstbaseparse.c:
+	  baseparse: documentation fixes
+
+2009-10-28 12:00:08 +0100  Mark Nauwelaerts <mark.nauwelaerts@collabora.co.uk>
+
+	* gst/aacparse/gstbaseparse.c:
+	  baseparse: use_fixed_caps for src pad
+	  After all, stream is as-is, and there is little molding to downstream's
+	  taste that can be done.  If subclass can and wants to do so, it can
+	  still override as such.
+
+2009-11-20 17:32:13 +0100  Julien Moutte <julien@fluendo.com>
+
+	* gst/aacparse/gstbaseparse.c:
+	  aacparse: Fix compilation warnings
+
+2009-10-11 11:22:11 +0200  Josep Torra <n770galaxy@gmail.com>
+
+	* gst/aacparse/gstbaseparse.c:
+	  aacparse: fix warnings in macosx snow leopard
+
+2009-09-25 17:02:53 +0200  Mark Nauwelaerts <mark.nauwelaerts@collabora.co.uk>
+
+	* gst/aacparse/gstbaseparse.c:
+	* gst/aacparse/gstbaseparse.h:
+	  aacparse: forego (bogus) parsing of already parsed (raw) input
+
+2009-08-07 13:07:17 +0200  Mark Nauwelaerts <mark.nauwelaerts@collabora.co.uk>
+
+	* gst/aacparse/gstbaseparse.c:
+	  baseparse: prevent infinite loop when draining
+
+2009-08-07 13:06:28 +0200  Mark Nauwelaerts <mark.nauwelaerts@collabora.co.uk>
+
+	* gst/aacparse/gstbaseparse.c:
+	  baseparse: fix minor memory leak
+
+2009-07-14 14:08:04 +0200  Sebastian Dröge <sebastian.droege@collabora.co.uk>
+
+	* gst/aacparse/gstbaseparse.c:
+	* gst/aacparse/gstbaseparse.h:
+	  aacparse: Add function for the baseparse subclass to push buffers downstream
+	  Also handle the case gracefully where the subclass decides to drop
+	  the first buffers and has no caps set yet. It's still required to
+	  have valid caps set when the first buffer should be passed downstream.
+
+2009-07-14 14:07:44 +0200  Sebastian Dröge <sebastian.droege@collabora.co.uk>
+
+	* gst/aacparse/gstbaseparse.c:
+	  baseparse: Fix seek event leaking
+
+2009-06-01 13:56:18 +0100  Tim-Philipp Müller <tim.muller@collabora.co.uk>
+
+	* gst/aacparse/gstbaseparse.c:
+	  baseparse: propagate return value of GstBaseParse::set_sink_caps()
+	  gst_base_parse_sink_setcaps() presumably should fail if the subclass
+	  returns FALSE from its ::set_sink_caps() function.
+
+2009-06-01 13:47:01 +0100  Tim-Philipp Müller <tim.muller@collabora.co.uk>
+
+	* gst/aacparse/gstbaseparse.c:
+	  baseparse: don't try to GST_LOG an already-freed caps string
+	  The proper way to log caps is via GST_PTR_FORMAT anyway.
+
+2009-05-26 19:43:53 +0200  Mark Nauwelaerts <mark.nauwelaerts@collabora.co.uk>
+
+	* gst/aacparse/gstbaseparse.c:
+	  baseparse: fix debug category
+
+2009-04-27 22:39:15 +0200  Mark Nauwelaerts <mark.nauwelaerts@collabora.co.uk>
+
+	* gst/aacparse/gstbaseparse.c:
+	  baseparse: fix (regression in) newsegment handling
+	  (aacparse, amrparse, flacparse).  Fixes #580133.
+
+2009-04-07 04:53:02 +0300  René Stadler <mail@renestadler.de>
+
+	* gst/aacparse/gstbaseparse.c:
+	  baseparse: Fix slightly broken buffer-in-segment check (aacparse, amrparse, flacparse)
+
+2009-04-05 03:50:19 +0300  René Stadler <mail@renestadler.de>
+
+	* gst/aacparse/gstbaseparse.c:
+	  baseparse: Fix push mode seeking (aacparse, amrparse)
+	  Sending the flush-start event forward before taking the stream lock actually
+	  works, in contrast to deadlocking in downstream preroll_wait (hunk 1).
+	  After that we get the chain function being stuck in a busy loop. This is fixed
+	  by updating the minimum frame size inside the synchronization loop because the
+	  subclass asks for more data in this way (hunk 2).
+	  Finally, this leads to a very probable crash because the subclass can find a
+	  valid frame with a size greater than the currently available data in the
+	  adapter. This makes the subsequent gst_adapter_take_buffer call return NULL,
+	  which is not expected (hunk 3).
+
+2009-03-31 16:07:46 +0200  Mark Nauwelaerts <mark.nauwelaerts@collabora.co.uk>
+
+	* gst/aacparse/gstbaseparse.c:
+	  baseparse: Delay newsegment as long as possible.
+	  If newsegment is sent (too) early, caps may not yet be fixed/set,
+	  and downstream may not have been linked.
+
+2009-02-27 11:24:37 +0200  Stefan Kost <ensonic@users.sf.net>
+
+	* gst/aacparse/gstbaseparse.c:
+	  baseparse: revert last change and properly fix
+	  Baseparse internaly breaks the semantics of a _chain function by calling it with
+	  buffer==NULL. The reson I belived it was okay to remove it was that there is
+	  also an unchecked access to buffer later in _chain. Actually that code is wrong,
+	  as it most probably wants to set discont on the outgoing buffer.
+
+2009-02-26 11:02:06 +0200  Stefan Kost <ensonic@users.sf.net>
+
+	* gst/aacparse/gstbaseparse.c:
+	  baseparse: remove checks for buffer==NULL
+	  Accordifn to docs for GstPadChainFunction buffer cannot be NULL. If we would
+	  leave the check, we would also need more such check below.
+
+2009-01-30 18:18:10 +0000  Jan Schmidt <jan.schmidt@sun.com>
+
+	* gst/aacparse/gstbaseparse.c:
+	  Fix the return value of the default parse_frame function.
+	  Fix the return value of the default parse_frame function in both
+	  copies of GstBaseParse
+
+2008-11-13 14:21:39 +0000  Stefan Kost <ensonic@users.sourceforge.net>
+
+	  gst/: Fix baseparse type name.
+	  Original commit message from CVS:
+	  * gst/aacparse/gstbaseparse.c:
+	  * gst/amrparse/gstbaseparse.c:
+	  Fix baseparse type name.
+
+2008-11-13 12:59:34 +0000  Stefan Kost <ensonic@users.sourceforge.net>
+
+	  Add two new baseparse based parsers (aac and amr) from Bug #518857.
+	  Original commit message from CVS:
+	  * configure.ac:
+	  * gst/aacparse/Makefile.am:
+	  * gst/aacparse/gstaacparse.c:
+	  * gst/aacparse/gstaacparse.h:
+	  * gst/aacparse/gstbaseparse.c:
+	  * gst/aacparse/gstbaseparse.h:
+	  * gst/amrparse/Makefile.am:
+	  * gst/amrparse/gstamrparse.c:
+	  * gst/amrparse/gstamrparse.h:
+	  * gst/amrparse/gstbaseparse.c:
+	  * gst/amrparse/gstbaseparse.h:
+	  Add two new baseparse based parsers (aac and amr) from Bug #518857.
+
+2011-03-20 00:56:08 +0100  Havard Graff <havard.graff@tandberg.com>
+
+	* plugins/elements/gstqueue.c:
+	* plugins/elements/gstqueue2.c:
+	  queue[2]: Make src query MT-safe
+	  It is possible that the element might be going down while the event arrives
+
+2011-03-20 00:56:08 +0100  Havard Graff <havard.graff@tandberg.com>
+
+	* libs/gst/base/gstbasesrc.c:
+	  basesrc: Make src query MT-safe
+	  It is possible that the element might be going down while the event arrives
+
+2011-04-08 14:56:37 +0200  Sebastian Dröge <sebastian.droege@collabora.co.uk>
+
+	* plugins/elements/gstqueue.c:
+	* plugins/elements/gstqueue2.c:
+	  queue[2]: Unref events if the parent element disappeared
+
+2011-03-21 16:01:05 +0100  Havard Graff <havard.graff@tandberg.com>
+
+	* plugins/elements/gstqueue.c:
+	* plugins/elements/gstqueue2.c:
+	  queue[2]: Make upstream events MT-safe
+
+2011-04-08 14:55:09 +0200  Sebastian Dröge <sebastian.droege@collabora.co.uk>
+
+	* libs/gst/base/gstbasesrc.c:
+	* libs/gst/base/gstbasetransform.c:
+	  base: Unref events if the parent element disappeared
+	  And also unref events if the basetransform subclass has no
+	  event handler and the event is not forwarded at all.
+
+2011-03-21 16:01:05 +0100  Havard Graff <havard.graff@tandberg.com>
+
+	* libs/gst/base/gstbasesrc.c:
+	* libs/gst/base/gstbasetransform.c:
+	  base: Make upstream events MT-safe
+
+2011-03-29 11:57:06 +0200  Stian Selnes <stiaseln@cisco.com>
+
+	* plugins/elements/gstqueue.c:
+	* plugins/elements/gstqueue2.c:
+	  gstqueue, gstqueue2: check if parent of pad is NULL in _getcaps
+	  Parent of the pad (the queue) may be set to NULL while there is
+	  a buffer alloc going on.
+
+2011-04-08 14:50:10 +0200  Sebastian Dröge <sebastian.droege@collabora.co.uk>
+
+	* plugins/elements/gstinputselector.c:
+	  inputselector: Fix getcaps and event function from last commit
+	  Return ANY caps if the parent disappeared, i.e. the template caps
+	  and don't leak events if the parent disappeared.
+
+2011-04-01 08:46:14 +0200  Havard Graff <havard.graff@tandberg.com>
+
+	* plugins/elements/gstinputselector.c:
+	  inputselector: Protect against pad-parent disappearing
+
+2010-12-14 16:06:46 +0100  Stian Selnes <stian.selnes@tandberg.com>
+
+	* gst/gstiterator.c:
+	  iterator: resync to avoid infinite loop
+
+2011-04-08 09:20:28 +0200  Sebastian Dröge <sebastian.droege@collabora.co.uk>
+
+	* tests/check/gst/gstutils.c:
+	  utils: Fix uninitialized variable compiler warnings
+
+2011-04-08 09:15:10 +0200  Sebastian Dröge <sebastian.droege@collabora.co.uk>
+
+	* gst/gstbus.c:
+	  bus: Removed unused GCond
+
+2011-04-08 09:07:59 +0200  Sebastian Dröge <sebastian.droege@collabora.co.uk>
+
+	* plugins/elements/gstmultiqueue.c:
+	  multiqueue: Add another check for the flushing flag after taking the lock
+	  This prevents another potential deadlock when flushing the pad
+	  at exactly the right time.
+
+2011-04-07 11:24:35 +0200  Sebastian Dröge <sebastian.droege@collabora.co.uk>
+
+	* gst/gstbus.c:
+	  bus: Immediately drop messages after calling the sync handler if this is a synchronous bus
+	  Otherwise we might wait forever for the message to be popped from
+	  the queue if a sync handler returned GST_BUS_ASYNC.
+	  https://bugzilla.gnome.org/show_bug.cgi?id=647005
+
+2011-04-07 11:19:57 +0200  Sebastian Dröge <sebastian.droege@collabora.co.uk>
+
+	* gst/gst_private.h:
+	* gst/gstbin.c:
+	* gst/gstbus.c:
+	  bus: Use a construct-only property to distinguish between child buses and normal buses
+	  This allows to only create the socketpair when it is really required instead
+	  of always creating it and immediately destroying it again for child buses.
+	  https://bugzilla.gnome.org/show_bug.cgi?id=647005
+
+2011-04-07 20:47:25 +0100  Tim-Philipp Müller <tim.muller@collabora.co.uk>
+
+	* tests/check/Makefile.am:
+	* tests/check/elements/.gitignore:
+	* tests/check/elements/queue2.c:
+	  tests: add some basic unit tests for queue2
+
+2011-04-07 20:45:22 +0100  Tim-Philipp Müller <tim.muller@collabora.co.uk>
+
+	* plugins/elements/gstqueue2.c:
+	  queue2: fix buffer leak on eos when using the ring buffer
+
+2011-01-11 14:27:35 +0100  Idar Tollefsen <itollefs@cisco.com>
+
+	* plugins/elements/gstqueue2.c:
+	  queue2: Fixes memory leak on out_flushing error in gst_queue2_create_read.
+	  https://bugzilla.gnome.org/show_bug.cgi?id=646972
+
+2011-04-07 19:44:44 +0100  Tim-Philipp Müller <tim.muller@collabora.co.uk>
+
+	* plugins/elements/gstqueue2.c:
+	  queue2: fix minor memory leak
+
+2011-04-07 17:34:10 +0100  Tim-Philipp Müller <tim.muller@collabora.co.uk>
+
+	* plugins/elements/gstfunnel.c:
+	  funnel: minor element description fix
+
+2011-04-07 16:08:34 +0300  Stefan Kost <ensonic@users.sf.net>
+
+	* docs/random/draft-missing-plugins.txt:
+	  docs: remove file as we have docs/design/part-missing-plugins.txt
+
+2011-04-07 10:48:04 +0200  Sebastian Dröge <sebastian.droege@collabora.co.uk>
+
+	* libs/gst/base/gstbasesrc.c:
+	  basesrc: Handle tag and custom downstream events the same
+	  Especially drop tag events when flushing to not send them over
+	  and over again.
+	  Should've been in the last commit already but I forgot to call
+	  git rebase --continue...
+
+2011-04-07 10:40:16 +0200  Sebastian Dröge <sebastian.droege@collabora.co.uk>
+
+	* libs/gst/base/gstbasesrc.c:
+	  bla
+
+2011-04-07 10:29:41 +0200  Sebastian Dröge <sebastian.droege@collabora.co.uk>
+
+	* libs/gst/base/gstbasesrc.c:
+	  basesrc: Send syncronized custom downstream/both events downstream from the streaming thread
+	  Instead of just silently dropping them. The same was done for tag events
+	  before already.
+	  Fixes bug #635718.
+
+2011-04-06 14:06:49 +0200  Sebastian Dröge <sebastian.droege@collabora.co.uk>
+
+	* gst/gst_private.h:
+	* gst/gstbin.c:
+	* gst/gstbus.c:
+	  bus: Add private API to set a GstBus in child mode
+	  This is used by GstBin to create a child bus without
+	  a socketpair because child buses will always work
+	  synchronous. Otherwise too many sockets could be
+	  created and the limit of file descriptors for the
+	  process could be reached.
+	  Fixes bug #646624.
+
+2011-04-06 13:56:49 +0200  Sebastian Dröge <sebastian.droege@collabora.co.uk>
+
+	* gst/gstbus.c:
+	  Revert "bus: Only create the signalling socket pair when required"
+	  This reverts commit 4bf8f1524f6e3374b3f3bc57322337723d06b928.
+
+2011-04-06 13:56:46 +0200  Sebastian Dröge <sebastian.droege@collabora.co.uk>
+
+	* gst/gstbus.c:
+	  Revert "bus: Check if pending messages are in the queue"
+	  This reverts commit bd1c40011434c1efaa696dc98ef855ef9cce9b28.
+
+2011-04-06 11:38:57 +0100  Tim-Philipp Müller <tim.muller@collabora.co.uk>
+
+	* tests/check/gst/gstbin.c:
+	  checks: make tests_many_bins in bin unit test a bit faster
+	  Not doing expensive checks when linking elements makes things
+	  much faster.
+
+2011-04-06 11:30:18 +0100  Tim-Philipp Müller <tim.muller@collabora.co.uk>
+
+	* tests/check/gst/gstbin.c:
+	  checks: add some queues to test_many_bins unit test
+	  To limit the number of calls in a row per thread.
+
+2011-04-06 12:03:18 +0200  Sebastian Dröge <sebastian.droege@collabora.co.uk>
+
+	* gst/gstbus.c:
+	  bus: Check if pending messages are in the queue
+	  We can't rely completely on the poll fd because the fd might be
+	  created after messages were posted to the bus.
+
+2011-04-06 11:45:27 +0200  Sebastian Dröge <sebastian.droege@collabora.co.uk>
+
+	* tests/check/gst/gstvalue.c:
+	  value: GstDate/GDate has a abbreviation now
+
+2011-04-03 16:11:50 +0100  Tim-Philipp Müller <tim.muller@collabora.co.uk>
+
+	* tests/check/gst/gstbin.c:
+	  checks: add GstBin unit test that creates a lot of bins
+	  Currently fails (in normal circumstances) because we create a
+	  socket pair for each bin's bus and exhaust the number of available
+	  file descriptors.
+	  https://bugzilla.gnome.org/show_bug.cgi?id=646624
+
+2011-04-05 16:22:48 +0200  Sebastian Dröge <sebastian.droege@collabora.co.uk>
+
+	* gst/gstbus.c:
+	  bus: Only create the signalling socket pair when required
+	  Otherwise a new one would be created for every single bus and
+	  the process could easily run out of file descriptors.
+	  Fixes bug #646624.
+
+2011-04-05 14:36:43 +0200  Sebastian Dröge <sebastian.droege@collabora.co.uk>
+
+	* gst/gststructure.c:
+	  structure: Add date as a type abbreviation of GDate
+	  See bug #646696.
+
+2011-04-04 15:56:30 +0300  Stefan Kost <ensonic@users.sf.net>
+
+	* common:
+	  Automatic update of common submodule
+	  From 1ccbe09 to c3cafe1
+
+2011-04-04 03:33:46 +0200  Andoni Morales Alastruey <ylatuya@gmail.com>
+
+	* gst/gstpoll.c:
+	  gstpoll: retry reading the control socket to release properly all wakeups
+	  if set->control_pending is set to 0 but we didn't not succed reading
+	  the control socket, future calls to gst_poll_wait() will be awaiken
+	  by the control socket which will not be released properly because
+	  set->control_pending is already 0, causing an infinite loop.
+
+2011-04-04 10:18:14 +0200  Sebastian Dröge <sebastian.droege@collabora.co.uk>
+
+	* gst/gststructure.c:
+	  structure: Don't allow invalid GDates in all structures and don't allow NULL GDates in taglists
+	  Some code (e.g. gstvorbistag.c) assumes non-NULL GDates in taglists and
+	  explodes otherwise and NULL or invalid GDates don't make much sense anyway.
+
+2011-03-25 15:56:07 +0100  Thomas Kristensen <thomas.kristensen@cisco.com>
+
+	* gst/gstpoll.c:
+	  poll: don't call WSAWaitForMultipleEvents with no events
+	  Fixes error caught by Microsoft Application Verifier.
+
+2011-04-03 16:18:54 +0100  Tim-Philipp Müller <tim.muller@collabora.co.uk>
+
+	* gst/gstevent.h:
+	  docs: add pointer to part-seeking.txt design docs to event seek flags docs
+
+2011-04-03 16:18:14 +0100  Tim-Philipp Müller <tim.muller@collabora.co.uk>
+
+	* tests/check/elements/.gitignore:
+	  checks: ignore new funnel unit test binary
+
+2011-04-02 14:51:18 +0100  Bastien Nocera <hadess@hadess.net>
+
+	* gst/gstutils.h:
+	  utils: Avoid using "type" as name for a variable and a macro argument in GST_BOILERPLATE
+	  This caused "re-declaration" problems.
+	  ./clutter-gst-video-sink.c: In function ‘clutter_gst_video_sink_init_interfaces’:
+	  ./clutter-gst-video-sink.c:231:1: warning: declaration of ‘ClutterGstVideoSink’ shadows a global declaration [-Wshadow]
+	  ./clutter-gst-video-sink.h:64:44: warning: shadowed declaration is here [-Wshadow]
+	  https://bugzilla.gnome.org/show_bug.cgi?id=646531
+
+2011-04-01 13:56:09 +0200  Sebastian Dröge <sebastian.droege@collabora.co.uk>
+
+	* gst/gstelement.c:
+	  element: When requesting an existing pad print a g_critical() instead of using an assertion
+	  Some applications are requesting the same pad name multiple times
+	  and the behaviour is undefined and different from element to element
+	  but we don't want to break applications that work just fine.
+	  In 0.11 this check should be an assertion again, although elements
+	  have to do manual checking if the pad already exists again because
+	  it can't be done in a threadsafe way here.
+
+2011-04-01 13:53:39 +0200  Sebastian Dröge <sebastian.droege@collabora.co.uk>
+
+	* gst/gstelement.c:
+	  element: Use gint64/guint64 string parsing functions
+	  And check that the requested pad names are inside the valid
+	  gint/guint range.
+
+2011-04-01 13:51:31 +0200  Josep Torra <n770galaxy@gmail.com>
+
+	* gst/gstelement.c:
+	  element: strto[u]l() returns a g[u]long
+
+2011-03-31 19:25:30 +0100  Tim-Philipp Müller <tim.muller@collabora.co.uk>
+
+	* docs/design/part-seeking.txt:
+	  design docs: document expected behaviour for ACCURATE and KEY_UNIT seek flags
+
+2011-03-31 10:53:03 +0200  Sebastian Dröge <sebastian.droege@collabora.co.uk>
+
+	* tests/check/gst/struct_x86_64.h:
+	  gstabi: Add some new structures for x86-64
+
+2011-03-31 10:46:40 +0200  Sebastian Dröge <sebastian.droege@collabora.co.uk>
+
+	* tests/check/libs/libsabi.c:
+	* tests/check/libs/struct_x86_64.h:
+	  libsabi: Add lots of new structures for x86-64
+
+2011-03-30 10:48:47 +0200  Sebastian Dröge <sebastian.droege@collabora.co.uk>
+
+	* plugins/elements/gstmultiqueue.c:
+	* tests/check/elements/multiqueue.c:
+	  multiqueue: Make assignment of queue IDs and pad names threadsafe
+	  Also add a test for naming pads by the caller and return NULL
+	  when requesting an already existing pad.
+
+2011-03-29 23:58:43 +0200  Andreas Frisch <fraxinas@opendreambox.org>
+
+	* plugins/elements/gstmultiqueue.c:
+	  multiqueue: Set the single queue ID to the ID of the requested pad if one was given by the caller
+
+2011-03-29 16:22:46 +0200  Sebastian Dröge <sebastian.droege@collabora.co.uk>
+
+	* gst/gstelement.c:
+	  element: Fix sanity checks for request pad templates without %
+
+2011-03-29 11:57:58 +0200  Sebastian Dröge <sebastian.droege@collabora.co.uk>
+
+	* gst/gstelement.c:
+	  element: Add some more sanity checks to the pad name checking of request pads in all cases
+	  Especially check if a pad with that name already exists.
+
+2011-03-29 11:52:06 +0200  Sebastian Dröge <sebastian.droege@collabora.co.uk>
+
+	* gst/gstelement.c:
+	  element: Check %u too when trying to find a pad template for a request pad
+
+2011-03-28 21:01:13 +0200  Fraxinas <andreas.frisch@multimedia-labs.de>
+
+	* plugins/elements/gstmultiqueue.c:
+	  multiqueue: Fix arbitrary sink + source pad naming
+	  Use the string provided by the caller for the sinkpad name
+	  if possible. Note that all sanity checking for this name
+	  is already done in GstElement.
+	  Fixes Bug #645931
+
+2011-03-29 11:18:36 +0200  Sebastian Dröge <sebastian.droege@collabora.co.uk>
+
+	* plugins/elements/gstfunnel.c:
+	  funnel: Add some more documentation about the behaviour of funnel
+
+2011-03-29 11:08:57 +0200  Sebastian Dröge <sebastian.droege@collabora.co.uk>
+
+	* plugins/elements/gstfunnel.c:
+	  funnel: Send a newsegment event after flush-stop
+
+2011-03-29 11:07:48 +0200  Sebastian Dröge <sebastian.droege@collabora.co.uk>
+
+	* plugins/elements/gstfunnel.c:
+	  funnel: Some random cleanup
+
+2011-03-29 10:56:00 +0200  Sebastian Dröge <sebastian.droege@collabora.co.uk>
+
+	* plugins/elements/gstfunnel.c:
+	  funnel: Use a GstPad subclass for the sinkpads instead of using the pad's element private data
+
+2011-03-29 10:42:31 +0200  Sebastian Dröge <sebastian.droege@collabora.co.uk>
+
+	* docs/plugins/gstreamer-plugins-docs.sgml:
+	* docs/plugins/gstreamer-plugins-sections.txt:
+	* docs/plugins/gstreamer-plugins.hierarchy:
+	* docs/plugins/inspect/plugin-coreelements.xml:
+	* docs/plugins/inspect/plugin-staticelements.xml:
+	* plugins/elements/Makefile.am:
+	* plugins/elements/gstelements.c:
+	* plugins/elements/gstfunnel.c:
+	* plugins/elements/gstfunnel.h:
+	* tests/check/Makefile.am:
+	* tests/check/elements/funnel.c:
+	  funnel: Integrate into the build system and rename the types
+
+2011-03-29 10:39:42 +0200  Sebastian Dröge <sebastian.droege@collabora.co.uk>
+
+	* plugins/elements/gstfunnel.c:
+	* plugins/elements/gstfunnel.h:
+	* tests/check/elements/funnel.c:
+	  funnel: Import funnel element from farsight2
+
+2011-03-28 21:21:00 +0530  Arun Raghavan <arun.raghavan@collabora.co.uk>
+
+	* gst/gstbin.c:
+	* libs/gst/base/gstbasesrc.c:
+	  basesrc: Return FALSE if we don't handle an event
+	  basesrc's default event handler returns TRUE regardless of whether the
+	  event is handled or not. This fixes the handler to conform with the
+	  expected behaviour (which is to only return TRUE when the event has
+	  actually benn handled). gst_bin_do_latency_func() depended on this
+	  (incorrect) behaviour, and is now modified as well.
+	  (Remaining 1-liner change in gstbasesrc.c is to keep gst-indent happy)
+
+2011-03-25 22:08:41 +0100  Sebastian Dröge <sebastian.droege@collabora.co.uk>
+
+	* common:
+	  Automatic update of common submodule
+	  From 193b717 to 1ccbe09
+
+2011-03-25 14:55:39 +0200  Stefan Kost <ensonic@users.sf.net>
+
+	* common:
+	  Automatic update of common submodule
+	  From b77e2bf to 193b717
+
+2011-03-25 09:27:58 +0100  Sebastian Dröge <sebastian.droege@collabora.co.uk>
+
+	* common:
+	  Automatic update of common submodule
+	  From d8814b6 to b77e2bf
+
+2011-03-25 08:59:37 +0100  Sebastian Dröge <sebastian.droege@collabora.co.uk>
+
+	* common:
+	  Automatic update of common submodule
+	  From 6aaa286 to d8814b6
+
+2011-03-24 18:48:41 +0200  Stefan Kost <ensonic@users.sf.net>
+
+	* common:
+	  Automatic update of common submodule
+	  From 6aec6b9 to 6aaa286
+
+2011-03-24 18:27:09 +0200  Stefan Kost <ensonic@users.sf.net>
+
+	* docs/plugins/gstreamer-plugins-sections.txt:
+	* plugins/elements/gstqueue.h:
+	  docs: fix some gtk-doc warnings
+	  Document the queue leaky enums.
+
+2011-03-24 18:25:08 +0200  Stefan Kost <ensonic@users.sf.net>
+
+	* plugins/elements/gstqueue2.c:
+	  queue2: set max value for to the matching one for the datatype
+	  The property is guint64, so use G_MAXUINT64 instead of G_MAXUINT.
+
+2011-03-24 13:22:57 +0200  Stefan Kost <ensonic@users.sf.net>
+
+	* libs/gst/base/gstbasesrc.c:
+	* libs/gst/base/gstbasesrc.h:
+	* libs/gst/base/gstbasetransform.h:
+	* libs/gst/base/gstcollectpads.c:
+	  docs: cleanup and xref fixes
+	  Deal with the hints from gtk-doc and fix the xrefs. Apply a work-around for ()
+	  precedence over @. Move "MT Safe" text to doc body in many places. Trim eol
+	  whitespaces.
+
+2011-03-23 16:42:24 +0200  Stefan Kost <ensonic@users.sf.net>
+
+	* libs/gst/base/gstbasesink.c:
+	  basesink: print flow return as a name in debug log
+
+2011-03-23 17:13:58 +0200  Stefan Kost <ensonic@users.sf.net>
+
+	* docs/libs/Makefile.am:
+	* docs/plugins/Makefile.am:
+	  docs: do xrefs for non installed books too
+	  Get the xrefs from the builddir for the books in the same packages. This fixes
+	  the cross references if one does not have the docs already installed.
+
+2010-04-19 20:39:53 +0200  Edward Hervey <bilboed@bilboed.com>
+
+	* libs/gst/base/gstbasesrc.c:
+	  basesrc: Keep downstream caps order when fixating
+	  This allows use to use the first intersecting format prefered by downstream.
+	  https://bugzilla.gnome.org/show_bug.cgi?id=617045
+
+2010-04-19 20:40:56 +0200  Edward Hervey <bilboed@bilboed.com>
+
+	* libs/gst/base/gstbasetransform.c:
+	  basetransform: Retain caps order when getting caps
+	  If the element gave us caps in a specific order, let's retain that
+	  by intersecting against the template but retaining the order given
+	  by the element.
+	  https://bugzilla.gnome.org/show_bug.cgi?id=617045
+
+2011-02-25 10:25:26 -0300  Thiago Santos <thiago.sousa.santos@collabora.co.uk>
+
+	* tests/check/gst/gstcaps.c:
+	  tests: caps: Tests for the new caps intersection mode
+	  Adds test cases for the caps 'first' intersect mode
+	  Adds another test for the 'zigzag' mode
+	  Fixes #617045
+
+2011-02-25 08:50:12 -0300  Edward Hervey <bilboed@bilboed.com>
+
+	* gst/gst.c:
+	* gst/gstcaps.c:
+	* gst/gstcaps.h:
+	* win32/common/libgstreamer.def:
+	  gstcaps: new API : gst_caps_intersect_full
+	  Just like gst_caps_intersect, but adds a new parameter 'mode'
+	  that allows selecting the intersection algorithm to use.
+	  Currently we have GST_CAPS_INTERSECT_MODE_ZIG_ZAG (default) and
+	  GST_CAPS_INTERSECT_MODE_FIRST.
+	  API: gst_caps_intersect_full
+	  API: GstCapsIntersectMode
+	  API: GST_CAPS_INTERSECT_MODE_ZIG_ZAG
+	  API: GST_CAPS_INTERSECT_MODE_FIRST
+	  https://bugzilla.gnome.org/show_bug.cgi?id=617045
+
+2011-03-12 17:01:39 +0000  Tim-Philipp Müller <tim.muller@collabora.co.uk>
+
+	* tests/check/Makefile.am:
+	* tests/check/libs/.gitignore:
+	* tests/check/libs/gstlibscpp.cc:
+	  tests: add libscpp unit test to make sure g++ likes our library headers
+
+2011-03-12 16:58:01 +0000  Tim-Philipp Müller <tim.muller@collabora.co.uk>
+
+	* libs/gst/base/gstbytereader.h:
+	* libs/gst/base/gstbytewriter.h:
+	  bytereader, bytewriter: fix up inline functions to make g++ happy
+	  gstbytereader.h: In function ‘guint8* gst_byte_reader_dup_data_unchecked(GstByteReader*, guint)’:
+	  gstbytereader.h:249:75: error: invalid conversion from ‘void*’ to ‘guint8*’
+	  gstbytewriter.h: In function ‘gboolean _gst_byte_writer_ensure_free_space_inline(GstByteWriter*, guint)’:
+	  gstbytewriter.h:196:75: error: invalid conversion from ‘void*’ to ‘guint8*’
+	  https://bugzilla.gnome.org/show_bug.cgi?id=645595
+
+2011-03-22 16:26:56 -0300  Thiago Santos <thiago.sousa.santos@collabora.co.uk>
+
+	* gst/gstelement.h:
+	  gstelement: Fix typo in the docs
+	  GST_ELEMENT_INFO will post a INFO message, not a WARNING
+
+2011-03-18 08:22:23 -0300  Thiago Santos <thiago.sousa.santos@collabora.co.uk>
+
+	* gst/gsttagsetter.c:
+	  tagsetter: Removing unused debug category
+	  tagsetter's debug category had a typo and was unused. Removing it.
+
+2011-03-18 19:34:57 +0100  Luis de Bethencourt <luis@debethencourt.com>
+
+	* autogen.sh:
+	  autogen: wingo signed comment
+
+2011-03-22 11:04:20 +0100  Sebastian Dröge <sebastian.droege@collabora.co.uk>
+
+	* plugins/elements/gstmultiqueue.c:
+	  multiqueue: Don't leak objects when flushing after dequeueing and before pushing the object
+
+2011-03-21 17:54:10 +0100  Sebastian Dröge <sebastian.droege@collabora.co.uk>
+
+	* plugins/elements/gstmultiqueue.h:
+	  multiqueue: Really remove unused variable
+
+2011-03-21 17:52:13 +0100  Sebastian Dröge <sebastian.droege@collabora.co.uk>
+
+	* plugins/elements/gstmultiqueue.c:
+	* plugins/elements/gstmultiqueue.h:
+	  multiqueue: Increment unique item counter with atomic operations
+	  Before it was only protected by the stream lock but every pad
+	  has its own stream lock, making the protection rather useless.
+
+2011-03-21 17:17:22 +0100  Sebastian Dröge <sebastian.droege@collabora.co.uk>
+
+	* plugins/elements/gstmultiqueue.c:
+	  multiqueue: Unblock all waiting pads when shutting down
+
+2011-03-21 12:39:34 +0100  Sebastian Dröge <sebastian.droege@collabora.co.uk>
+
+	* plugins/elements/gstmultiqueue.c:
+	  multiqueue: Remove unused variable
+
+2011-03-21 16:28:37 +0100  Sebastian Dröge <sebastian.droege@collabora.co.uk>
+
+	* plugins/elements/gstmultiqueue.c:
+	  multiqueue: Exit loop function if the pad is flushing
+	  Fixes possible deadlocks when flushing an unlinked pad that waits
+	  for other pads to advance.
+
+2011-03-19 17:06:12 -0500  Jason D. Clinton <me@jasonclinton.com>
+
+	* gst/gstpoll.c:
+	* libs/gst/controller/gstinterpolation.c:
+	* plugins/elements/gstfilesrc.c:
+	  build: fix build with -Werror with GCC 4.6.0
+	  This touches three areas of code, removes unused variables and discards
+	  return values from two functions with (void).
+	  https://bugzilla.gnome.org/show_bug.cgi?id=645267
+
+2011-03-19 10:39:28 +0100  Sebastian Dröge <sebastian.droege@collabora.co.uk>
+
+	* gst/gstevent.h:
+	  event: Add since marker to GST_EVENT_SINK_MESSAGE
+
+2011-03-19 08:55:57 +0100  Sebastian Dröge <sebastian.droege@collabora.co.uk>
+
+	* plugins/elements/gstinputselector.c:
+	  inputselector: Stop waiting for a pad switch when the pad is flushing
+
+2011-03-19 08:50:06 +0100  Sebastian Dröge <sebastian.droege@collabora.co.uk>
+
+	* plugins/elements/gstinputselector.c:
+	  inputselector: Move locking and signalling macros from the header to the source file
+
+2011-03-17 23:42:48 +0000  Tim-Philipp Müller <tim.muller@collabora.co.uk>
+
+	* gst/gsttask.h:
+	  task: fix GST_TASK_BROADCAST
+	  Surprisingly enough, you can't "breadcast" on a GCond.
+	  Spotted by Rune Sætre.
+	  https://bugzilla.gnome.org/show_bug.cgi?id=645022
+
+2011-03-17 14:21:17 +0100  Sebastian Dröge <sebastian.droege@collabora.co.uk>
+
+	* plugins/elements/gstinputselector.c:
+	  inputselector: Hold the selector lock while reading properties of the active pad
+
+2011-03-17 14:10:49 +0100  Sebastian Dröge <sebastian.droege@collabora.co.uk>
+
+	* plugins/elements/gstinputselector.c:
+	  inputselector: Make sure that EOS is always sent downstream for the active pad
+	  It can happen that the currently active pad got the EOS event
+	  before it was activated and the previously active pad got the
+	  EOS event after it was deactivated. In that case we have to
+	  send the EOS event from an inactive pad downstream.
+
+2011-03-16 18:19:11 +0100  Sebastian Dröge <sebastian.droege@collabora.co.uk>
+
+	* plugins/elements/gstinputselector.c:
+	  inputselector: Return GST_FLOW_OK until the selected pad pushed something downstream
+	  This makes sure that during switches at no point in time all pads
+	  have returned not-linked, which can happen when playing an audio-only
+	  file with playbin2 and switching between the streams for example.
+	  Fixes bug #644935.
+
+2011-03-16 12:01:21 +0100  Sebastian Dröge <sebastian.droege@collabora.co.uk>
+
+	* gst/gstpad.c:
+	  pad: Document that pad blocks only make sense for sink pads in pull mode and src pads in push mode
+	  See bug #644907.
+
+2011-03-16 11:53:53 +0100  Sebastian Dröge <sebastian.droege@collabora.co.uk>
+
+	* gst/gstghostpad.c:
+	  ghostpad: The internally linked pad of the proxypad is the ghostpad
+	  Previously we were returning the peerpad, which is the target
+	  of the ghostpad.
+
+2011-02-25 16:20:49 +0100  Jonas Holmberg <jonas.holmberg@axis.com>
+
+	* gst/gstbufferlist.c:
+	* tests/check/gst/gstbufferlist.c:
+	  bufferlist: Use a GQueue instead of a GList
+	  Adding a buffer to the end of a GstBufferList is supposed to be a fast
+	  operation, but it was not since the iterator does not advance its
+	  nextpointer when adding buffers and GList does not have a tail pointer.
+	  Using a GQueue to store the buffers makes it easier to add buffers to
+	  the end of the list and this operation will now be much more efficient.
+	  Adding an entire GList of buffers using
+	  gst_buffer_list_iterator_add_list() will however have to iterate over
+	  the list being added to be able to update the tail pointer in the
+	  GQueue.
+
+2011-03-10 17:48:26 +0000  Tim-Philipp Müller <tim.muller@collabora.co.uk>
+
+	* gst/gstutils.c:
+	* win32/common/libgstreamer.def:
+	  utils: fix ABI break when compiling gstreamer with -DGST_DISABLE_DEPRECATED
+	  GST_DISABLE_DEPRECATED should only affect visibility of declarations in headers,
+	  not actually remove symbols. See GitDeveloperGuidelines and DeprecatingAPI
+	  pages in wiki.
+	  https://bugzilla.gnome.org/show_bug.cgi?id=402141
+
+2011-03-10 16:46:04 +0100  Edward Hervey <edward.hervey@collabora.co.uk>
+
+	* win32/common/libgstreamer.def:
+	  win32: Update .def file for API addition
+
+2011-03-09 16:15:33 +0200  Stefan Kost <ensonic@users.sf.net>
+
+	* docs/pwg/advanced-types.xml:
+	  pwg: fix element name "videodrop" to "videorate"
+
+2011-03-08 12:11:08 +0200  Stefan Kost <ensonic@users.sf.net>
+
+	* tests/check/gst/gstelementfactory.c:
+	  test: add tests for new element_factory api.
+
+2010-06-23 22:00:04 +0200  Thijs Vermeir <thijsvermeir@gmail.com>
+
+	* gst/gstutils.c:
+	* gst/gstutils.h:
+	* win32/common/libgstreamer.def:
+	  gstutils: replace gst_element_factory_can_{sink,src}_caps
+	  Add new functions to clarify how the caps are compared to the template caps of
+	  the element factory. Improve the docs to point out the difference.
+	  Deprecate: gst_element_factory_can_{src|sink}_caps
+	  API: add gst_element_factory_can_{src|sink}_{any|all}_capps
+	  https://bugzilla.gnome.org/show_bug.cgi?id=402141
+
+2011-03-07 23:13:56 +0200  Stefan Kost <ensonic@users.sf.net>
+
+	* tests/check/gst/gstcaps.c:
+	  tests: add a unit test for gst_caps_new_simple
+	  Add a test for the crash in bug #642271.
+
+2011-03-08 11:55:29 +0200  Stefan Kost <ensonic@users.sf.net>
+
+	* tests/check/gst/gstelementfactory.c:
+	  tests: add test to create a factory
+
+2011-03-08 10:36:30 +0200  Stefan Kost <ensonic@users.sf.net>
+
+	* tests/check/Makefile.am:
+	* tests/check/gst/.gitignore:
+	* tests/check/gst/gstelement.c:
+	* tests/check/gst/gstelementfactory.c:
+	  tests: start a new test suite for element factories
+	  Move one test from gstelement suite.
+
+2011-03-08 11:34:19 +0200  Stefan Kost <ensonic@users.sf.net>
+
+	* gst/gstpadtemplate.c:
+	  padtemplate: add missing ; in example (and trim whitespace)
+
+2011-03-08 09:58:55 +0200  Stefan Kost <ensonic@users.sf.net>
+
+	* gst/gststructure.c:
+	  structure: gst_structure_empty_new() does better error checking
+	  No need to check for media_type!=NULL as the function we call that actual create
+	  the structure does a full check anyway.
+
+2011-03-08 10:06:23 +0200  Stefan Kost <ensonic@users.sf.net>
+
+	* gst/gstcaps.c:
+	* gst/gststructure.c:
+	  caps,structure: trim trailing whitespace
+
+2011-03-04 08:28:25 +1000  Jonathan Matthew <jonathan@d14n.org>
+
+	* gst/gstcaps.c:
+	  caps: don't create broken caps for invalid media types
+	  Check if structure has been created before appending it to the caps. Free the
+	  caps in the case of an error to not conceal it be returning empty caps.
+	  Fixes #642271
+
+2011-03-07 16:21:47 +0200  Stefan Kost <ensonic@users.sf.net>
+
+	* tests/examples/helloworld/helloworld.c:
+	  examples: update hello world example
+	  Our helloworld example thatw e reference from the manual has been a bit
+	  complicated to serve a first contact with gstreamer. Since we have and
+	  promote playbin2 as a playback api use it here.
+	  Based on work from Mathias Hasselmann <mathias.hasselmann@gmx.de>
+	  Fixes #424143
+
+2011-03-02 13:55:36 +0530  Arun Raghavan <arun.raghavan@collabora.co.uk>
+
+	* docs/faq/git.xml:
+	  faq: Minor update to ssh key generation commands
+	  fd.o requires RSA keys, and in general, users would probably want to
+	  make a per-server key file rather than overwrite id_rsa, id_rsa.pub.
+
+2011-02-28 18:43:41 +0100  Mark Nauwelaerts <mark.nauwelaerts@collabora.co.uk>
+
+	* configure.ac:
+	  configure.ac: export plugin description more platform independent
+	  Fixes #642504.
+
+2011-02-28 18:32:07 +0100  Mark Nauwelaerts <mark.nauwelaerts@collabora.co.uk>
+
+	* common:
+	  Automatic update of common submodule
+	  From 1de7f6a to 6aec6b9
+
+2011-02-28 15:01:54 +0000  Tim-Philipp Müller <tim.muller@collabora.co.uk>
+
+	* gst/gstregistry.h:
+	* gst/gstutils.c:
+	* libs/gst/controller/gsthelper.c:
+	  docs: typo fixes
+	  convinience -> convenience
+
+2011-02-28 14:56:23 +0000  Tim-Philipp Müller <tim.muller@collabora.co.uk>
+
+	* tools/gst-inspect.c:
+	  tools: print "pad-added", "pad-removed" and "no-more-pads" signals for elements with sometimes pads
+	  It's often not obvious to people that elements like e.g. uridecodebin
+	  (or demuxers) automatically support the standard signals of the
+	  GstElement class, so let's print the useful pad-related ones for
+	  elements with sometimes pads.
+
+2011-02-28 16:27:01 +0200  Stefan Kost <ensonic@users.sf.net>
+
+	* gst/gstutils.c:
+	  docs: small updates as suggested on a blog
+	  Link from convinience api to the underlying api.
+
+2011-02-24 17:11:49 +0000  Tim-Philipp Müller <tim.muller@collabora.co.uk>
+
+	* gst/gsturi.c:
+	  uri: make win32 buildbot happy
+	  gsturi.c:854:16: error: unused variable 'abs_clean'
+	  gsturi.c:788:1: error: 'gst_file_utils_canonicalise_path' defined but not used
+
+2011-02-24 15:32:00 +0000  Tim-Philipp Müller <tim.muller@collabora.co.uk>
+
+	* plugins/elements/gstfilesink.c:
+	* plugins/elements/gstfilesrc.c:
+	* tests/check/elements/filesrc.c:
+	  filesrc, filesink: fix URI creation regression for non-absolute locations
+	  Passing e.g. location=foo would lead to warnings because g_filename_to_uri()
+	  wants an absolute file path and returns NULL otherwise. Use brand-new
+	  gst_filename_to_uri() instead, which will try harder to create a proper
+	  URI for us.
+	  Also add unit test.
+
+2011-02-24 15:18:43 +0000  Tim-Philipp Müller <tim.muller@collabora.co.uk>
+
+	* docs/gst/gstreamer-sections.txt:
+	* gst/gsturi.c:
+	* gst/gsturi.h:
+	* win32/common/libgstreamer.def:
+	  uri: add gst_filename_to_uri() that takes relative filenames
+	  Add function that (unlike the GLib equivalent) also accepts paths that
+	  aren't absolute and will clean up relative markers such as ./ and ../
+	  before forming a URI.
+	  Fixes warnings with e.g. filesrc location=foo ! typefind caused by the
+	  recent switch to g_filename_to_uri(), but also actually creates valid
+	  URIs for the first time.
+	  Windows code paths could need some more work, e.g. we don't clean up
+	  the relative markers there for now (because path could have \ and /
+	  as separators).
+	  API: gst_filename_to_uri()
+
+2011-02-24 16:20:01 +0200  Stefan Kost <ensonic@users.sf.net>
+
+	* tests/check/gst/gstabi.c:
+	* tests/check/libs/libsabi.c:
+	  tests: refix the tests (missing #endif)
+
+2011-02-24 16:11:17 +0200  Stefan Kost <ensonic@users.sf.net>
+
+	* tests/check/Makefile.am:
+	  Makefile.am: add new abi headers to nodist_HEADERS
+
+2011-02-21 11:24:45 +0200  Stefan Kost <ensonic@users.sf.net>
+
+	* tools/gst-launch.1.in:
+	* tools/gst-launch.c:
+	  gst-launch: add index support
+	  When option "-i" is given, set an index object on the pipeline and compute
+	  statistics for all index writers. Print a sumary when shutting down the
+	  pipeline.
+
+2011-02-24 15:12:14 +0200  Stefan Kost <ensonic@users.sf.net>
+
+	* tests/check/libs/libsabi.c:
+	* tests/check/libs/struct_arm.h:
+	  tests: add abi check data for ARM (libs)
+
+2011-02-24 15:02:37 +0200  Stefan Kost <ensonic@users.sf.net>
+
+	* tests/check/gst/gstabi.c:
+	* tests/check/gst/struct_arm.h:
+	  tests: add abi check data for ARM
+
+2011-02-23 12:33:58 +0200  Stefan Kost <ensonic@users.sf.net>
+
+	* docs/gst/running.xml:
+	  docs: tell that ORC_CODE can contain a list of flags
+
+2011-02-14 18:05:09 -0300  Thiago Santos <thiago.sousa.santos@collabora.co.uk>
+
+	* libs/gst/base/gstbasetransform.c:
+	* tests/check/libs/transform1.c:
+	  basetransform: Be smarter with pad allocs
+	  Avoid doing unnecessary pad-allocs when on passthrough mode.
+	  If multiple basetransform elements are on a pipeline, they
+	  would do a pad-alloc for each received buffer, each element
+	  would do this, so we would have lots of pad allocs on the
+	  pipeline for a single buffer being pushed through it.
+	  This patch attempts to reduce this amount by avoiding
+	  doing pad-allocs if the element has already done it
+	  after the last pushed buffer. So it will only be allowed
+	  to do a new pad-alloc after it has pushed a buffer, so we get
+	  1x1 pad-alloc and buffer ratio
+	  https://bugzilla.gnome.org/show_bug.cgi?id=642373
+
+2011-02-21 13:39:38 +0100  Philip Jägenstedt <philipj@opera.com>
+
+	* gst/gstindex.c:
+	  docs: fix typo in gst_index_new() docs
+	  https://bugzilla.gnome.org/show_bug.cgi?id=642869
+
+2011-02-21 12:44:05 +0000  Tim-Philipp Müller <tim.muller@collabora.co.uk>
+
+	* plugins/elements/gstfakesink.c:
+	  fakesink: print new MEDIA4 flag as well
+
+2011-01-03 11:37:05 +0100  Robert Swain <robert.swain@collabora.co.uk>
+
+	* gst/gstbuffer.h:
+	* gst/gstminiobject.h:
+	  miniobject, buffer: steal miniobject flag for use as MEDIA4 buffer flag
+	  This was required to add a new MEDIA4 buffer flag for indicating
+	  progressive/mixed telecine video buffers. There is no space for
+	  additional flags in GstBuffer, so steal one from GstMiniObject.
+	  https://bugzilla.gnome.org/show_bug.cgi?id=642671
+
+2011-02-20 16:11:27 +0000  Tim-Philipp Müller <tim.muller@collabora.co.uk>
+
+	* gst/gstatomicqueue.c:
+	* gst/gstatomicqueue.h:
+	  docs: add some more Since: markers to atomic queue docs
+
+2011-02-21 11:55:50 +0100  Edward Hervey <edward.hervey@collabora.co.uk>
+
+	* gst/gstelement.c:
+	  Revert "element: Call ->release_pad() to clean up pad"
+	  This commit changes the request pad behaviour for plugins and applications.
+	  Reopens Bug #402562
+	  The proper fix for that bug is to keep track of created request pads.
+	  This reverts commit a5e44ffffaa6d7a8d7af8dcb77e37990996253a5.
+
+2011-02-21 10:03:16 +0200  Stefan Kost <ensonic@users.sf.net>
+
+	* gst/gstindex.c:
+	  index: add FIXME-0.11: comments
+
+2011-02-15 10:57:08 +0200  Stefan Kost <ensonic@users.sf.net>
+
+	* gst/gstindex.c:
+	  docs: improve index docs
+
+2011-02-18 17:09:14 +0200  Stefan Kost <ensonic@users.sf.net>
+
+	* docs/design/part-progress.txt:
+	  docs: spell-check
+
+2011-02-15 19:15:16 -0800  David Schleef <ds@schleef.org>
+
+	* plugins/elements/gstfakesink.c:
+	  fakesink: print buffer flags
+
+2010-12-04 18:53:55 -0800  David Schleef <ds@schleef.org>
+
+	* gst/gstelement.c:
+	  element: Call ->release_pad() to clean up pad
+	  Fixes #636011 and #402562.
+
+2011-02-17 14:50:40 +0200  Stefan Kost <ensonic@users.sf.net>
+
+	* gst/gstindex.c:
+	  index: fix creation of writer id for unparented pads
+	  Also do some cleanup in the impl.
+
+2011-02-17 10:34:37 +0000  Tim-Philipp Müller <tim.muller@collabora.co.uk>
+
+	* gst/gstvalue.c:
+	* tests/check/gst/gstvalue.c:
+	  value: add (de)serialisation function for uchar
+	  .. since we sadly have a plugin in -good that has a uchar property
+	  (cmmlenc)
+	  https://bugzilla.gnome.org/show_bug.cgi?id=642522
+
+2011-02-16 19:54:57 +0100  Wim Taymans <wim.taymans@collabora.co.uk>
+
+	* gst/gstatomicqueue.c:
+	  atomicqueue: fix include order atomicqueue: fix include order# Please enter the commit message for your changes. Lines starting
+
+2010-10-28 13:27:43 +0100  Wim Taymans <wim.taymans@collabora.co.uk>
+
+	* gst/gstbus.c:
+	* gst/gstbus.h:
+	  bus: make the bus almost lockfree
+	  Use new GstPoll functionality to wakeup the mainloop.
+	  Use an atomic queue on the writer side to post the messages.
+	  The reader side it protected with the lock still because we don't want multiple
+	  concurrent readers.
+
+2011-02-16 17:21:52 +0100  Wim Taymans <wim.taymans@collabora.co.uk>
+
+	* win32/common/libgstreamer.def:
+	  defs: fix defs file for new symbols
+
+2011-02-16 17:14:11 +0100  Wim Taymans <wim.taymans@collabora.co.uk>
+
+	* gst/gstatomicqueue.c:
+	  atomicqueue: use correct array sizes
+
+2011-02-16 16:21:58 +0100  Wim Taymans <wim.taymans@collabora.co.uk>
+
+	* gst/gstatomicqueue.c:
+	  atomicqueue: fix docs some more
+
+2011-02-16 16:19:46 +0100  Wim Taymans <wim.taymans@collabora.co.uk>
+
+	* docs/gst/gstreamer-docs.sgml:
+	* docs/gst/gstreamer-sections.txt:
+	* gst/gstatomicqueue.c:
+	* gst/gstatomicqueue.h:
+	  atomicqueue: add refcounting and docs
+
+2011-02-16 12:48:59 +0100  Wim Taymans <wim.taymans@collabora.co.uk>
+
+	* gst/gstatomicqueue.c:
+	  atomicqueue: make sure a min initial_size is used
+
+2010-10-28 16:02:39 +0100  Wim Taymans <wim.taymans@collabora.co.uk>
+
+	* gst/Makefile.am:
+	* gst/gstatomicqueue.c:
+	* gst/gstatomicqueue.h:
+	  atomicqueue: add an atomic queue
+	  Add an atomic queue. The queue can be used from multiple threads simultaneously
+	  and without taking any locks or doing any blocking operations. This makes it
+	  highly scalable for things like the bus, bufferpools and object recycling.
+
+2011-02-16 17:14:46 +0100  Wim Taymans <wim.taymans@collabora.co.uk>
+
+	* tests/check/gst/gstbus.c:
+	  check: fix a leak in the bus unit test
+
+2011-02-16 17:28:15 +0100  Wim Taymans <wim.taymans@collabora.co.uk>
+
+	* gst/gst.c:
+	  deinit: add progress type class unref
+
+2011-02-16 15:13:05 +0200  Stefan Kost <ensonic@users.sf.net>
+
+	* gst/gstutils.c:
+	  utils: tell also what pad a pad is already linked against
+
+2011-02-15 22:56:35 +0100  Sebastian Dröge <sebastian.droege@collabora.co.uk>
+
+	* tests/check/elements/filesink.c:
+	* tests/check/elements/filesrc.c:
+	  file{sink,src}: Check if non-URI characters are escaped, but only for the URI not the location property
+
+2011-02-15 22:49:26 +0100  Sebastian Dröge <sebastian.droege@collabora.co.uk>
+
+	* tests/check/elements/filesink.c:
+	* tests/check/elements/filesrc.c:
+	  file{src,sink}: Fix unit tests
+	  filesink and filesrc should return exactly the same URI as passed
+	  and must not escape path separators.
+
+2011-02-15 22:48:44 +0100  Sebastian Dröge <sebastian.droege@collabora.co.uk>
+
+	* plugins/elements/gstfilesink.c:
+	  filesink: Fix escaping of URIs
+	  Especially don't escape / as path separators
+
+2011-02-15 22:05:31 +0100  Andoni Morales Alastruey <ylatuya@gmail.com>
+
+	* plugins/elements/gstfilesrc.c:
+	  filesrc: Fix escaping of file uris
+	  Fixes bug #642393.
+
+2011-02-15 18:26:00 +0100  Wim Taymans <wim.taymans@collabora.co.uk>
+
+	* gst/gstmessage.c:
+	* gst/gstquark.c:
+	* gst/gstquark.h:
+	  message: add timeout to progress message
+	  Add a timeout member to the progress messages to let the application know about
+	  the timeout so that it can do some gui things with it.
+
+2011-02-15 18:14:16 +0100  Wim Taymans <wim.taymans@collabora.co.uk>
+
+	* docs/design/part-progress.txt:
+	  design: mention timeout in the progress message
+
+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
+
+2011-01-06 18:55:43 +0100  Wim Taymans <wim.taymans@collabora.co.uk>
+
+	* docs/design/draft-progress.txt:
+	* gst/gstmessage.c:
+	* gst/gstmessage.h:
+	* gst/gstquark.c:
+	* gst/gstquark.h:
+	  message: rename category to code
+
+2011-01-06 15:58:47 +0100  Wim Taymans <wim.taymans@collabora.co.uk>
+
+	* gst/gstmessage.c:
+	  message: add new message quark
+
+2011-01-06 15:58:23 +0100  Wim Taymans <wim.taymans@collabora.co.uk>
+
+	* docs/design/draft-progress.txt:
+	  docs: add more standard categories
+
+2011-01-05 13:53:00 +0100  Wim Taymans <wim.taymans@collabora.co.uk>
+
+	* gst/gst.c:
+	  gst: register new type
+
+2011-01-05 13:48:51 +0100  Wim Taymans <wim.taymans@collabora.co.uk>
+
+	* tests/check/gst/gstmessage.c:
+	  check: add progress message unit test
+
+2011-01-05 13:41:08 +0100  Wim Taymans <wim.taymans@collabora.co.uk>
+
+	* docs/gst/gstreamer-sections.txt:
+	* gst/gstmessage.c:
+	* gst/gstmessage.h:
+	* gst/gstquark.c:
+	* gst/gstquark.h:
+	* win32/common/libgstreamer.def:
+	  message: add progress message functions
+
+2011-01-05 13:39:19 +0100  Wim Taymans <wim.taymans@collabora.co.uk>
+
+	* docs/design/draft-progress.txt:
+	  docs: update progress field
+	  Avoid naming the progress free text field 'message' as it conflicts with the
+	  message itself.
+
+2011-02-15 14:42:58 +0100  Mark Nauwelaerts <mark.nauwelaerts@collabora.co.uk>
+
+	* plugins/elements/gstqueue2.c:
+	  queue2: don't read beyond the end of file upstream in pull mode
+	  ... which could lead to a premature eos being reported downstream,
+	  rather than a successful partial read which would result when
+	  performed directly on e.g. basesrc.
+
+2011-01-26 16:46:25 +0800  Chen Rui <rui.chen@tieto.com>
+
+	* gst/gstutils.c:
+	  utils: return real error in compatible link check
+	  We need to ensure we call gst_pad_check_link() with the two pads in the correct
+	  order. The order depends on wheter we iterate src or sink pads.
+	  Signed-off-by: Chen Rui <rui.chen@tieto.com>
+
+2011-02-14 17:31:25 +0100  Wim Taymans <wim.taymans@collabora.co.uk>
+
+	* gst/gstpad.c:
+	  pad: Check sinkpad for flushing
+	  Check the sinkpad for the flushing state before calling the chainfunction on the
+	  pad. We do this by checking the cache (which is also cleared on the srcpad when
+	  the sink is set to flushing).
+	  Fixes #641928
+
+2011-02-11 17:47:17 -0300  Thiago Santos <thiago.sousa.santos@collabora.co.uk>
+
+	* libs/gst/base/gstbasetransform.c:
+	  basetransform: Check for pad alloc caps when suggestion is not fixed
+	  If after computing the suggestion with downstream caps we still have
+	  a non-fixed suggestion caps try to intersect with the input caps
+	  of the pad alloc to avoid useless renegotiations.
+	  https://bugzilla.gnome.org/show_bug.cgi?id=642130
+
+2011-02-14 14:00:38 +0100  Wim Taymans <wim.taymans@collabora.co.uk>
+
+	* libs/gst/base/gstbasesink.c:
+	  basesink: improve duration calculation
+	  Keep track of the average distance between incomming timestamps and
+	  use that to estimate the frame duration when buffers have no duration set on
+	  them.
+
+2011-02-14 13:49:10 +0100  Wim Taymans <wim.taymans@collabora.co.uk>
+
+	* libs/gst/base/gstbasesink.c:
+	  basesink: improve rate calculation
+	  When there is no duration on input buffers, assume the rate is 1.0
+	  instead of (the undefined) 0.0.
+
+2011-02-14 13:47:02 +0100  Wim Taymans <wim.taymans@collabora.co.uk>
+
+	* libs/gst/base/gstbasesink.c:
+	  basesink: improve average duration calculation
+	  Improve the calculation of the duration. When we have no input duration set on
+	  the input buffers stop is set to start and then we end up using a 0 duration in
+	  the average calculation.
+
+2011-02-14 12:21:39 +0100  Wim Taymans <wim.taymans@collabora.co.uk>
+
+	* libs/gst/base/gstbasesink.c:
+	  basesink: rename variable
+	  Rename an internal variable to better reflact what its value means.
+
+2011-02-14 15:39:21 +0200  Stefan Kost <ensonic@users.sf.net>
+
+	* gst/parse/grammar.y:
+	  parse-launch: trim whitespaces
+
+2011-02-14 15:37:23 +0200  Stefan Kost <ensonic@users.sf.net>
+
+	* gst/parse/grammar.y:
+	  parse-launch: fix typo in pad-list length comparision
+	  It was comparing the length with itself.
+	  Fixes #642071.
+
+2011-02-14 12:52:30 +0200  Stefan Kost <ensonic@users.sf.net>
+
+	* common:
+	  Automatic update of common submodule
+	  From f94d739 to 1de7f6a
+
+2011-02-13 22:56:15 +0000  Tim-Philipp Müller <tim.muller@collabora.co.uk>
+
+	* tools/gst-launch.c:
+	  gst-launch: pretty-print datetime tags
+
+2011-02-10 23:30:21 +0000  Tim-Philipp Müller <tim.muller@collabora.co.uk>
+
+	* gstreamer.doap:
+	  gstreamer.doap: update mailing list host
+
+2011-02-10 14:53:34 +0100  Wim Taymans <wim.taymans@collabora.co.uk>
+
+	* libs/gst/base/gstbasesink.c:
+	  basesink: fix some comments
+
+2011-02-10 14:50:04 +0100  Wim Taymans <wim.taymans@collabora.co.uk>
+
+	* libs/gst/base/gstbasesink.c:
+	  basesink: keep track of earliest QoS timestamp
+	  Keep track of the earliest allowed timestamp according to the latest
+	  QoS report and drop buffers before that time. Activate this filter
+	  when throttling is enabled. We could later also activate this in the
+	  other QoS cases.
+	  See #638891
+
+2011-02-10 14:17:12 +0100  Wim Taymans <wim.taymans@collabora.co.uk>
+
+	* libs/gst/base/gstbasesink.c:
+	  basesink: use new QoS type
+	  Use the new QoS type and send throttling QoS messages.
+
+2011-02-10 13:42:05 +0100  Wim Taymans <wim.taymans@collabora.co.uk>
+
+	* docs/libs/gstreamer-libs-sections.txt:
+	* libs/gst/base/gstbasesink.c:
+	* libs/gst/base/gstbasesink.h:
+	* win32/common/libgstbase.def:
+	  basesink: add property to configure a throttle-time
+	  Add a property to configure the throttle time on a sink. The
+	  property is not yet used.
+	  See #638891
+
+2011-02-10 12:02:03 +0100  Wim Taymans <wim.taymans@collabora.co.uk>
+
+	* docs/gst/gstreamer-sections.txt:
+	* gst/gst.c:
+	* gst/gstevent.c:
+	* gst/gstevent.h:
+	* tests/check/gst/gstevent.c:
+	* win32/common/libgstreamer.def:
+	  event: add QoS event type
+	  Add a parameter to the QoS event to specify the QoS event type.
+	  Update docs and add unit test.
+	  See #638891
+
+2011-02-10 12:00:47 +0100  Wim Taymans <wim.taymans@collabora.co.uk>
+
+	* gst/gstclock.c:
+	  clock: fix parameter docs
+
+2011-02-10 10:49:22 +0100  Wim Taymans <wim.taymans@collabora.co.uk>
+
+	* docs/design/part-qos.txt:
+	  design: tweak docs a little
+
+2011-02-10 10:34:57 +0100  Wim Taymans <wim.taymans@collabora.co.uk>
+
+	* docs/design/part-qos.txt:
+	  design: update QoS document
+	  Add new QoS types and talk about the new throttle QoS message.
+
+2011-02-10 13:46:08 +0000  Tim-Philipp Müller <tim.muller@collabora.co.uk>
+
+	* docs/design/draft-bufferpool.txt:
+	  docs: fix some typos in the bufferpool draft
+
+2011-02-10 10:19:38 +0000  Tim-Philipp Müller <tim.muller@collabora.co.uk>
+
+	* gst/gstevent.c:
+	  events: fix g-i annotation for gst_event_new_tag() which takes ownership of the tag list
+
+2011-02-10 00:02:23 +0000  Tim-Philipp Müller <tim.muller@collabora.co.uk>
+
+	* docs/manual/basics-bins.xml:
+	* docs/manual/basics-elements.xml:
+	* docs/manual/basics-pads.xml:
+	* gst/gstbin.c:
+	* gst/gstelement.c:
+	  docs: mention that it's necessary to set the state of elements added to an already-running pipeline
+	  https://bugzilla.gnome.org/show_bug.cgi?id=641631
+
+2011-02-09 16:22:04 +0100  Wim Taymans <wim.taymans@collabora.co.uk>
+
+	* docs/design/draft-bufferpool.txt:
+	  design: add draft for first ideas for a bufferpool feature
+	  Add a first draft with some ideas and use cases for the implementation
+	  for bufferpools. The purpose is to be able to make elements negotiate
+	  their buffer requirements as well as provide an infrastructure to
+	  preallocate and reuse buffers in an easy way.
+
+2011-02-09 15:23:13 +0200  Stefan Kost <ensonic@users.sf.net>
+
+	* gst/gsttaglist.h:
+	  docs: clarify the NOMINAL_BITRATE docs
+	  Tell that its a target bitrate and actual values might be different.
+
+2011-02-03 15:17:13 +0100  Mark Nauwelaerts <mark.nauwelaerts@collabora.co.uk>
+
+	* gst/gstpoll.c:
+	  poll: trigger rebuild setup in _new
+	  Failing to do so in the Windows case (implicitly triggered otherwise)
+	  would have a subsequent _wait return immediately leading to high CPU
+	  usage timeout loops.
+	  Fixes #640675.
+
+2011-02-03 10:53:27 +0000  Tim-Philipp Müller <tim.muller@collabora.co.uk>
+
+	* gst/gstinfo.c:
+	* gst/gstinfo.h:
+	  info: make adding/removing of gst_debug_log_default() work properly
+	  Make adding/removing gst_debug_log_default() work reliably in all
+	  circumstances. The problem was that depending on platform and linker
+	  flags the function argument might resolve to different addresses,
+	  which made it impossible to remove the default log function added
+	  in gst_init() from application code (because the pointer values
+	  didn't match). The new approach should keep things simple by passing
+	  NULL for the default function, which the code in libgstreamer can
+	  then handle.
+	  https://bugzilla.gnome.org/show_bug.cgi?id=625396
+	  https://bugzilla.gnome.org/show_bug.cgi?id=640771
+
+2011-02-03 10:28:01 +0000  Tim-Philipp Müller <tim.muller@collabora.co.uk>
+
+	* gst/gstinfo.c:
+	  Revert "info: use the publicly visible address to fix the tests"
+	  This reverts commit eb56687a6dfd207507a4ca000eae53f93b5e33ea.
+	  While this commit may have fixed a problem on one of the build bots,
+	  it didn't actually fix the original bug reported for win32.
+	  Also, it causes other problems, such as the lookup failing when
+	  called from C++ code (gst-phonon, amarok).
+	  This needs to be fixed differently.
+	  https://bugzilla.gnome.org/show_bug.cgi?id=640771
+	  https://bugzilla.gnome.org/show_bug.cgi?id=625396
+
+2011-02-02 15:35:45 +0100  Mark Nauwelaerts <mark.nauwelaerts@collabora.co.uk>
+
+	* plugins/elements/gstqueue2.c:
+	  queue2: properly identity dequeued event as such
+	  ... which avoids terminating with ERROR rather than UNEXPECTED.
+
+2011-02-02 02:07:58 +0000  Peter Collingbourne <peter@pcc.me.uk>
+
+	* scripts/gst-uninstalled:
+	  gst-uninstalled: use $GST_PREFIX variable
+	  This makes it easier to change the prefix by editing the script.
+	  https://bugzilla.gnome.org/show_bug.cgi?id=641212
+
+2010-08-19 22:43:07 +0300  Sreerenj Balachandran <sreerenj.balachandran@nokia.com>
+
+	* docs/gst/gstreamer-sections.txt:
+	* gst/gsttaglist.c:
+	* gst/gsttaglist.h:
+	  taglist: add a new "encoded-by" tag
+	  Usecase: ID3v2 TENC ("Encoded by") frame.
+	  API: GST_TAG_ENCODED_BY
+	  https://bugzilla.gnome.org/show_bug.cgi?id=627268
+
+2011-01-29 18:02:11 +0100  Mark Nauwelaerts <mark.nauwelaerts@collabora.co.uk>
+
+	* libs/gst/net/gstnettimeprovider.c:
+	* libs/gst/net/gstnettimeprovider.h:
+	  net: use socklen_t where appropriate rather than specific type
+	  In particular, fixes Cygwin build where socklen_t is defined as int
+	  in line with native win32 api definition.
+
+2011-01-31 15:58:18 +0000  Tim-Philipp Müller <tim.muller@collabora.co.uk>
+
+	* gst/gstbus.c:
+	* tests/check/gst/gstbus.c:
+	  bus: honour any per-thread default main context set via g_main_thread_push_thread_default()
+	  Makes gst_bus_add_watch(), gst_bus_add_watch_full(), gst_bus_add_signal_watch(),
+	  and gst_bus_add_signal_watch_full() convenience functions automatically pick up
+	  any non-default main contexts set for the current thread via
+	  g_main_thread_push_thread_default().
+
+2011-01-28 15:36:33 -0500  Olivier Crête <olivier.crete@collabora.co.uk>
+
+	* plugins/elements/gstvalve.c:
+	  valve: Only set discont on the first buffer after drops
+	  Reset the discont member after setting discont on the first buffer after
+	  dropping.
+
+2011-01-28 19:08:08 +0000  Bastien Nocera <hadess@hadess.net>
+
+	* gst/gstelement.c:
+	  GstElement: Fix warning with GCC 4.6
+	  gstelement.c: In function ‘gst_element_get_request_pad’:
+	  gstelement.c:1052:18: error: variable ‘tmp’ set but not used [-Werror=unused-but-set-variable]
+	  https://bugzilla.gnome.org/show_bug.cgi?id=640850
+
+2011-01-27 09:28:07 +0000  Tim-Philipp Müller <tim.muller@collabora.co.uk>
+
+	* plugins/elements/gstidentity.c:
+	  identity: print unset buffer timestamps or durations as 'none'
+	  Like fakesink and fakesrc do.
+
+2011-01-12 16:03:30 +0200  Stefan Kost <ensonic@users.sf.net>
+
+	* plugins/elements/gsttypefindelement.c:
+	  typefind: don't take object lock for reading the found caps
+	  Once we switch to normal mode, we're not typefinding anymore and thus the caps
+	  will not change. Therefore can avoid the object lock in the data-flow path.
+	  The locking was added in order to fix bug #608877.
+
+2011-01-25 09:39:45 +0800  Zhang Wanming <Wanming.Zhang@tieto.com>
+
+	* docs/design/part-gstbin.txt:
+	* docs/design/part-gstghostpad.txt:
+	* docs/random/caps:
+	* docs/random/omega/TODO-0.1.0:
+	* docs/random/thomasvs/capturing:
+	* docs/random/wtay/events:
+	* docs/random/wtay/events3:
+	* docs/slides/outline:
+	  docs: fix a few more typos
+	  https://bugzilla.gnome.org/show_bug.cgi?id=640502
+
+2011-01-25 18:48:40 +0000  Tim-Philipp Müller <tim.muller@collabora.co.uk>
+
+	* plugins/elements/gsttypefindelement.c:
+	  docs: flesh out typefindelement docs some more
+	  Mention that have-type signal may be emitted from streaming
+	  thread or application thread, and fix a typo.
+
+2011-01-12 16:03:57 +0200  Stefan Kost <ensonic@users.sf.net>
+
+	* plugins/elements/gsttypefindelement.c:
+	  typefind: code and comment cleanups
+	  Make code two places of the code the pushes the buffer store more similar. More
+	  comments and debug logging.
+
+2011-01-12 13:05:06 +0200  Stefan Kost <ensonic@users.sf.net>
+
+	* gst/gsttrace.c:
+	  trace: ensure messages are \0 terminated
+
+2011-01-12 12:58:44 +0200  Stefan Kost <ensonic@users.sf.net>
+
+	* libs/gst/net/gstnettimeprovider.c:
+	  nettimeprovider: handle invalid network addresses earlier
+	  Handle inet_aton() return code.
+
+2011-01-12 12:44:59 +0200  Stefan Kost <ensonic@users.sf.net>
+
+	* libs/gst/check/gstconsistencychecker.c:
+	  checks: add a comment to indicate that we intentionally leave out the 'break'
+
+2011-01-12 12:43:04 +0200  Stefan Kost <ensonic@users.sf.net>
+
+	* gst/gstregistrybinary.c:
+	  registry: remove dead code
+	  The GError is only used for the mmap operations. If we have an error we handle
+	  and clean it there already.
+
+2011-01-12 09:33:53 +0200  Stefan Kost <ensonic@users.sf.net>
+
+	* libs/gst/controller/gstcontroller.c:
+	  docs: small controller api docs improvement
+
+2011-01-11 15:09:52 +0200  Stefan Kost <ensonic@users.sf.net>
+
+	* plugins/elements/gsttypefindelement.c:
+	  typefind: canonicalize signal name
+
+2011-01-11 15:09:30 +0200  Stefan Kost <ensonic@users.sf.net>
+
+	* plugins/elements/gsttypefindelement.c:
+	  docs: mention have-type signal in the docs.
+
+2011-01-25 09:15:49 +0000  Tim-Philipp Müller <tim.muller@collabora.co.uk>
+
+	* tools/gst-launch.1.in:
+	  docs: minor gst-launch man page fix
+	  Transmitter/receiver pipelines were mislabelled. Spotted by Majin.
+
+2011-01-25 16:09:18 +1000  Jan Schmidt <thaytan@noraisin.net>
+
+	* tests/check/elements/multiqueue.c:
+	  multiqueue test: Remove workaround for pad_task hangs
+	  Remove code that isn't needed any longer, which sets the multiqueue
+	  to PLAYING and back before unreffing, in order to avoid a deadlock
+	  waiting for gstpad tasks that were never started. The problem seems
+	  to have been fixed long ago.
+
+2011-01-25 00:20:34 +0800  Cai Yuanqing <ckjacket@gmail.com>
+
+	* docs/design/part-MT-refcounting.txt:
+	  design docs: fix 2 typos in part-MT-refcounting
+
+2011-01-24 17:46:15 +0800  Yang Xichuan <xichuan.yang@tieto.com>
+
+	* docs/design/part-gstbin.txt:
+	  design docs: part-gstbin.txt fix typo
+	  Signed-off-by: Yang Xichuan <xichuan.yang@tieto.com>
+
+2011-01-19 15:48:26 +0000  Vincent Penquerc'h <vincent.penquerch@collabora.co.uk>
+
+	* docs/design/part-block.txt:
+	* docs/design/part-bufferlist.txt:
+	* docs/design/part-clocks.txt:
+	* docs/design/part-element-sink.txt:
+	* docs/design/part-overview.txt:
+	* docs/design/part-preroll.txt:
+	* docs/design/part-push-pull.txt:
+	* docs/design/part-scheduling.txt:
+	* docs/design/part-seeking.txt:
+	* docs/design/part-segments.txt:
+	* docs/design/part-states.txt:
+	* docs/design/part-streams.txt:
+	* docs/design/part-synchronisation.txt:
+	  design docs: fix a few typos and a thinko
+
+2011-01-11 17:43:57 +0100  Sebastian Dröge <sebastian.droege@collabora.co.uk>
+
+	* docs/gst/gstreamer-sections.txt:
+	* gst/gstclock.c:
+	* gst/gstclock.h:
+	* win32/common/libgstreamer.def:
+	  clock: API: Add function to re-init periodic GstClockIDs
+
+2011-01-20 14:37:25 +0000  Vincent Penquerc'h <vincent.penquerch@collabora.co.uk>
+
+	* gst/gstpluginloader.c:
+	  gstpluginloader: do not leak the description string
+	  The description string was changed to an inlined string a while back.
+	  (But: no need to intern the const strings here, we just use the interning
+	  to avoid allocating duplicates and make memory management easier,
+	  since the strings will be around for the life-time of the app anyway).
+	  https://bugzilla.gnome.org/show_bug.cgi?id=640071
+
+2011-01-22 15:33:58 +0100  Wim Taymans <wim.taymans@collabora.co.uk>
+
+	* gst/gstbuffer.c:
+	  buffer: clarify docs
+
+2011-01-11 10:33:32 +0100  Wim Taymans <wim.taymans@collabora.co.uk>
+
+	* docs/design/part-buffering.txt:
+	  design: update buffering doc
+	  Add strategies to buffering doc
+
+2011-01-24 11:53:12 +0200  Mart Raudsepp <mart.raudsepp@collabora.co.uk>
+
+	* gst/gstclock.c:
+	* gst/gstclock.h:
+	  docs: add missing "Since: 0.10.32" markers for GstClock
+	  Since tags were missing for gst_clock_single_shot_id_reinit()
+	  and GST_CLOCK_DONE.
+
+2011-01-24 10:56:21 +0200  Mart Raudsepp <mart.raudsepp@collabora.co.uk>
+
+	* plugins/elements/gstqueue2.c:
+	  docs: Fix GstQueue2:ring-buffer-max-size property Since tag (0.10.31, not 0.10.30)
+
+2011-01-24 10:26:45 +0200  Mart Raudsepp <mart.raudsepp@collabora.co.uk>
+
+	* gst/gststructure.c:
+	  docs: add missing "Since: 0.10.31" marker for gst_structure_get_date_time()
+
+2011-01-24 14:22:27 +0000  Tim-Philipp Müller <tim.muller@collabora.co.uk>
+
+	* tests/check/pipelines/parse-launch.c:
+	  tests: add unit test for read-beyond-end-of-string bug
+	  https://bugzilla.gnome.org/show_bug.cgi?id=639674
+
+2011-01-24 14:16:37 +0000  Miguel Angel Cabrera Moya <madmac2501@gmail.com>
+
+	* gst/parse/types.h:
+	  parse-launch: don't read past end of string if last character is an escape char
+	  When the last character of a property value is a backslash
+	  the unescaping code reads one byte pass the end of the string.
+	  https://bugzilla.gnome.org/show_bug.cgi?id=639674
+
+2011-01-14 09:21:23 +0000  Tim-Philipp Müller <tim.muller@collabora.co.uk>
+
+	* docs/manuals.mak:
+	  docs: hack a charset=utf-8 into pwg/adm html versions
+	  So the encoding of the original document is respected and
+	  displays properly in browsers where the encoding autodetection
+	  fails to recognise that it's utf-8.
+	  https://bugzilla.gnome.org/show_bug.cgi?id=639448
+
+2011-01-13 15:41:50 +0000  Tim-Philipp Müller <tim.muller@collabora.co.uk>
+
+	* libs/gst/check/gstcheck.c:
+	  check: don't leak xml file name if GST_CHECK_XML is set
+	  Spotted by nvineeth@gmail.com
+
+2011-01-23 23:45:40 +0000  Tim-Philipp Müller <tim.muller@collabora.co.uk>
+
+	* RELEASE:
+	* configure.ac:
+	* docs/plugins/inspect/plugin-coreelements.xml:
+	* docs/plugins/inspect/plugin-coreindexers.xml:
+	* win32/common/config.h:
+	* win32/common/gstversion.h:
+	  Back to development
+
+=== release 0.10.32 ===
+
+2011-01-21 10:25:32 +0000  Tim-Philipp Müller <tim.muller@collabora.co.uk>
+
+	* ChangeLog:
+	* NEWS:
+	* RELEASE:
+	* configure.ac:
+	* docs/plugins/inspect/plugin-coreelements.xml:
+	* docs/plugins/inspect/plugin-coreindexers.xml:
+	* gstreamer.doap:
+	* win32/common/config.h:
+	* win32/common/gstversion.h:
+	  Release 0.10.32
 
 2011-01-20 19:07:35 +0000  Tim-Philipp Müller <tim.muller@collabora.co.uk>
 
diff --git a/NEWS b/NEWS
index 1c40a37..283b60e 100644
--- a/NEWS
+++ b/NEWS
@@ -1,4 +1,171 @@
-This is GStreamer 0.10.32 "Take Me to the Bonus Level"
+This is GStreamer 0.10.34 "Misfits"
+
+Changes since 0.10.33:
+
+      * Fix multiqueue thread-safety regression
+      * Don't set artificial 0-timestamp on first packet for TIME-based live sources
+      * Otherwise identical to the previous release (0.10.33)
+
+Bugs fixed since 0.10.33:
+
+      * 649369 : basesrc: do not set first buffer timestamp to 0 for live sources
+      * 649878 : multiqueue regression: gst_single_queue_new not MT-safe
+
+Changes since 0.10.32:
+
+      * atomicqueue: add an atomic/lock-free queue structure based
+      * bufferlist: improve _add*() performance
+      * bus: in _add_watch() honour any per-thread default main context set via g_main_thread_push_thread_default()
+      * caps: new gst_caps_intersect_full() to intersect in different modes
+      * clock: add functions to re-init existing periodic GstClockIDs
+      * event: add QoS type (overflow, underflow, throttle) for QoS events
+      * ghostpad: The internally linked pad of the proxypad is the ghostpad
+      * gstpoll: retry reading the control socket to release properly all wakeups
+      * message: new progress message API for asynchronous operations
+      * pad: unlock before freeing the pad cache to avoid deadlock
+      * pad: better handling for when parent goes away during data/query/event flow
+      * parse-launch: allow element names to begin with digits
+      * pluginloader: call gst-plugin-scanner with the right arch on OSX, fixing hangs with firefox
+      * registry: fixes elements (features) disappearing if a plugin or plugin file is renamed
+      * structure: Add "(date)" as a type abbreviation of GDate
+      * structure: Don't allow invalid GDates in all structures and don't allow NULL GDates in taglists
+      * taglist: add a new "encoded-by" tag
+      * uri: add gst_filename_to_uri() that takes relative filenames
+      * utils: add gst_element_factory_can_{src|sink}_{any|all}_caps() to replace can_{sink,src}_caps()
+      * baseparse: new GstBaseParse class for parsers
+      * basesink: improve rate, duration, and average duration calculation
+      * basesink: use new QoS types and add add "throttle-time" property
+      * basesrc: Handle tag and custom downstream events the same
+      * basesrc: keep downstream caps order when fixating, to honour downstream preferences when negotiating
+      * basesrc: Return FALSE if we don't handle an event
+      * basesrc: Send synchronized custom downstream/both events downstream from the streaming thread
+      * basetransform: Be smarter with pad allocs
+      * basetransform: Check for pad alloc caps when suggestion is not fixed
+      * basetransform: Retain caps order when getting caps, to honour downstream preferences when negotiating
+      * funnel: new N-to-1 pipe fitting element imported from farsight
+      * fakesink: print buffer flags
+      * filesink: Fix escaping of URIs
+      * file{sink,src}: Check if non-URI characters are escaped, but only for the URI not the location property
+      * filesrc, filesink: fix URI creation regression for non-absolute locations
+      * filesrc: Fix escaping of file uris
+      * inputselector: Hold the selector lock while reading properties of the active pad
+      * inputselector: Make sure that EOS is always sent downstream for the active pad
+      * inputselector: Return GST_FLOW_OK until the selected pad pushed something downstream
+      * inputselector: Stop waiting for a pad switch when the pad is flushing
+      * multiqueue: fix some potential corner-case deadlocks and some leaks
+      * multiqueue: handle arbitrary sink + source pad naming
+      * queue2: don't read beyond the end of file upstream in pull mode; leak fixes
+      * plugins: make query and event functions more thread-safe, protect against parent-pad disappearing
+      * gst-launch: add GstIndex support
+
+Bugs fixed since 0.10.32:
+
+     * 642356 : [Index] review api and add an example
+      * 402141 : gst_element_factory_can_{sink,src}_caps seems to be broken
+      * 518857 : [API] GstBaseParse: new base class for parsers
+      * 604094 : registry: do not remove features when removing a cached plugin that no longer is present
+      * 615357 : [macosx] Handle multi-arch plugin-scanner
+      * 617045 : [caps] New method for intersecting caps while retaining order
+      * 639674 : parse-launch: improve parsing resilience (for escapes at end of string)
+      * 639962 : design docs: Fix a few typos and a think
+      * 640071 : pluginloader: do not leak the description string of blacklisted plugin
+      * 640437 : design docs: fix 2 typos in part-MT-refcounting
+      * 640502 : fix a few typos
+      * 640622 : gst_element_link_pads_full function return wrong error information
+      * 640675 : high cpu-load with 0.10.32 release
+      * 640850 : GstElement: Fix warning with GCC 4.6
+      * 641212 : gst-uninstalled: use $GST_PREFIX variable
+      * 641928 : gst_pad_push fast path races with pad deactivation
+      * 642071 : Incorrect comparing of number of source and sink links when parsing a launch string
+      * 642130 : [basetransform] Check for pad alloc caps when suggestion is not fixed
+      * 642271 : crash in gst_caps_structure_intersect, encoder_match_media_type
+      * 642373 : [basetransform] Avoid too may pad allocs
+      * 642393 : [filesrc] Fails setting the same uri it's setting in the uri queries.
+      * 642504 : [mingw/cygwin build] correctly export plugin description
+      * 642522 : gstvalue.c does not include a deserialize function for uchar
+      * 642869 : gst_index_new: documentation typo
+      * 643301 : Adding a buffer to a buffer list iterates the list
+      * 643455 : [regression] Lots of dropouts in Empathy voip calls
+      * 644935 : [inputselector] During switching of streams it can happen that all pads returned not-linked last
+      * 645022 : GstTask: typo in GST_TASK_BROADCAST - g_cond_breadcast should probably be g_cond_broadcast
+      * 645267 : build: fix build with -Werror with GCC 4.6.0
+      * 645595 : bytereader, bytewriter: fix warnings when using inline functions with g++
+      * 645746 : [gstpoll] Regression causes 100% cpu usage in multifdsink
+      * 645877 : commit 14d7db1 causes cpu spinning and other bus weirdness
+      * 645931 : [gstmultiqueue] fix arbitrary sink + source pad naming
+      * 646118 : [gstmultiqueue] if arbitrary sink number is specified by caller, use this as single queue id
+      * 646341 : [baseparse] Add a queued flow return so parsers can keep frames in a queue
+      * 646531 : GST_BOILERPLATE: don't use " type " as both a variable name and a macro argument
+      * 646566 : Protect against Pad-Parent disappearing
+      * 646569 : poll: don't call WSAWaitForMultipleEvents with no events
+      * 646624 : GstBin: regression: creating too many bins fails, exhausting allowed file descriptor limit
+      * 646811 : baseparse: deadlock in gst_base_parse_set_index
+      * 646971 : iterator: resync to avoid infinite loop
+      * 647005 : GstBus: Only create the socketpair for async message delivery if required
+      * 647131 : recent multiqueue changes break DVD playback (again)
+      * 647293 : Fix pad callbacks so they handle when parent goes away
+      * 647763 : [bus] Bus is leaked if a watch is installed in the default main context
+      * 647844 : baseparse: Remove unused but set variable
+      * 647922 : [introspection] Needs to call gst_init() before anything else
+      * 648199 : pad: potential deadlock / crash when freeing cache
+      * 648215 : basetransform: unref in wrong place
+      * 648220 : Regression: videoscale fails to negotiate for PAR transformation
+      * 648297 : [bus] regression: critical assertion failure
+      * 649195 : [miniobject] Fix dup_mini_object function to handle NULL gvalues
+      * 635718 : [basesrc] custom, non-OOB events aren't pushed downstream
+      * 625396 : gst_debug_remove_log_function doesn't remove default log handler
+      * 640771 : amarok doesn't start with new phonon gstreamer
+      * 646972 : queue2: Fixes memory leak on out_flushing error in gst_queue2_create_read
+      * 640665 : basesink: drops too many buffers when there's no duration
+
+API additions since 0.10.32:
+
+      * gst_atomic_queue_length()
+      * gst_atomic_queue_new()
+      * gst_atomic_queue_peek()
+      * gst_atomic_queue_pop()
+      * gst_atomic_queue_push()
+      * gst_atomic_queue_ref()
+      * gst_atomic_queue_unref()
+      * gst_buffer_list_iterator_get_type()
+      * gst_caps_intersect_full()
+      * gst_caps_intersect_mode_get_type()
+      * gst_clock_periodic_id_reinit()
+      * gst_element_factory_can_sink_all_caps()
+      * gst_element_factory_can_sink_any_caps()
+      * gst_element_factory_can_src_all_caps()
+      * gst_element_factory_can_src_any_caps()
+      * gst_event_new_qos_full()
+      * gst_event_parse_qos_full()
+      * gst_filename_to_uri()
+      * gst_message_new_progress()
+      * gst_message_parse_progress()
+      * gst_parse_context_get_type()
+      * gst_progress_type_get_type()
+      * gst_qos_type_get_type()
+      * GST_TAG_ENCODED_BY
+      * gst_base_parse_add_index_entry()
+      * gst_base_parse_convert_default()
+      * gst_base_parse_frame_free()
+      * gst_base_parse_frame_get_type()
+      * gst_base_parse_frame_init()
+      * gst_base_parse_frame_new()
+      * gst_base_parse_get_type()
+      * gst_base_parse_push_frame()
+      * gst_base_parse_set_average_bitrate()
+      * gst_base_parse_set_duration()
+      * gst_base_parse_set_frame_rate()
+      * gst_base_parse_set_has_timing_info()
+      * gst_base_parse_set_min_frame_size()
+      * gst_base_parse_set_passthrough()
+      * gst_base_parse_set_syncable()
+      * gst_base_sink_get_throttle_time()
+      * gst_base_sink_set_throttle_time()
+
+API deprecated since 0.10.32:
+
+      * gst_element_factory_can_src_caps()
+      * gst_element_factory_can_sink_caps()
 
 Changes since 0.10.31:
 
diff --git a/RELEASE b/RELEASE
index 3cfb820..2cad94a 100644
--- a/RELEASE
+++ b/RELEASE
@@ -1,5 +1,5 @@
 
-Release notes for GStreamer 0.10.32 "Take Me to the Bonus Level"
+Release notes for GStreamer 0.10.34 "Misfits"
         
 
 
@@ -9,6 +9,12 @@
 
 
 The 0.10.x series is a stable series targeted at end users.
+It is not API or ABI compatible with the stable 0.8.x series.
+It is, however, parallel installable with the 0.8.x series.
+
+
+The 0.10.x series has been reworked for threadsafety.  It also features
+various feature additions and enhancements.
 
 
 This module, gstreamer, only contains core functionality.
@@ -31,64 +37,14 @@
 
 Features of this release
     
-      * GLib requirement is now >= 2.22
-      * New core element: valve (moved from -bad)
-      * New core element: input-selector (N.B. without "select-all" property, use fsfunnel instead) (moved from -bad)
-      * New core element: output-selector (with different negotiation behaviour by default, set pad-negotiation-mode=active for previous behaviour) (moved from -bad)
-      * Performance improvements for many heavily-used code paths: GstPad, GstPoll, GstClock, GstTask, basesink, basesrc, queue2, multiqueue
-      * gobject-introspection: add annotations for most core API
-      * clock: make sync clock wait lockfree
-      * fdsrc/fdsink: reenable on MSVC
-      * registry: fix GStatBuf definition for win32 when building against older glib (fixes unnecessary rescanning of plugins at start-up)
-      * element: add a more flexible way to get request pads from elements
-      * multiqueue: return upon input when already eos
-      * object: fix creation of default name (when creating more than 100000 elements)
-      * pluginloader: fix hangs on OSX
-      * poll: fixes for (p)select backend (used e.g. on OSX)
-      * poll: refactor and make more lockfree; fixes for win32 and OSX (pselect backend)
-      * registry: don't replace valid existing plugins by blacklisted ones
-      * tags: don't produce duplicated entries when merging same value twice
-      * basesink: preroll fixes for async=false case
-      * basesink: rework position reporting code
-      * basetransform: handle downstream giving a buffer with new caps but invalid size
+      * Fix multiqueue thread-safety regression
+      * Don't set artificial 0-timestamp on first packet for TIME-based live sources
+      * Otherwise identical to the previous release (0.10.33)
 
 Bugs fixed in this release
      
-      * 635785 : basesrc: fix deadlock
-      * 638599 : GST_PTR_FORMAT causes crashes if GLib-internal printf is used but system provides register_printf_specifier
-      * 503592 : gstpad.c does many ref/unref of peer pad in dataflow
-      * 564056 : Protect against umask(0177)
-      * 607513 : input-selector segfaults in g_object_notify()
-      * 632168 : [gsttask] MSVC thread names for task debugging
-      * 632447 : reduce static memory allocated by the registry
-      * 632557 : [macros] Define restrict keyword if not available
-      * 632778 : Optimisations to GstBaseSink
-      * 632779 : gstdataqueue: Only emit g_cond_signal when needed
-      * 632780 : queue: Remove useless checks from e406f7
-      * 633918 : [fakesink] [PATCH] print sink-message events like a  message and its structure
-      * 634965 : sinks render buffers in state PAUSED when async is FALSE
-      * 635001 : basesink: fix position reporting in PAUSED
-      * 636268 : configure test fails on FreeBSD
-      * 636455 : basesrc: Avoid taking object locks for just checking tag presence
-      * 637057 : [plugin-scanner] gstpoll fails with select backend
-      * 637300 : [API] request pad based on caps
-      * 637549 : build fails: ./.libs/libgstbase-0.10.so: undefined reference to `gst_clock_single_shot_id_reinit'
-      * 637776 : merging the same tag values again produces lists containing duplicates
-      * 638381 : {input,output}-selector: double-check API before release
-      * 638399 : a few typos in GStreamer
-      * 638900 : [GstPoll] Doesn't compile with MinGW
-      * 638941 : registry scan/loading race and inconsistency
-
-API changed in this release
-     
-- API additions:
-    
-      * gst_clock_single_shot_id_reinit()
-      * gst_element_request_pad()
-      * GstElementClass::request_new_pad_full()
-      * gst_poll_get_read_gpollfd()
-      * gst_value_list_merge()
-      * GST_CLOCK_DONE
+      * 649369 : basesrc: do not set first buffer timestamp to 0 for live sources
+      * 649878 : [multiqueue] regression: gst_single_queue_new not MT-safe
 
 Download
 
@@ -113,31 +69,15 @@
 will create more lists as necessary.
 
         
+Applications
+
+Applications ported to GStreamer 0.10 include Totem, RhythmBox, Sound-Juicer,
+Gnome Media, Flumotion, Amarok, Jamboree, Pitivi, Istanbul, AnnoAmp, Elisa, and others.
+Let us know if you want to be added to this list.
+
+  
 Contributors to this release
     
-      * Andoni Morales Alastruey
-      * Benjamin Gaignard
-      * Benjamin Otte
-      * David Hoyt
-      * David Schleef
-      * Edward Hervey
-      * Havard Graff
-      * Jan Schmidt
-      * Kipp Cannon
-      * Koop Mast
-      * Lasse Laukkanen
       * Mark Nauwelaerts
-      * Michael Smith
-      * Olivier Crete
-      * Olivier Crête
-      * Raimo Järvi
-      * Sebastian Dröge
-      * Stefan Kost
-      * Thiago Santos
-      * Tim-Philipp Müller
-      * Tommi Myöhänen
-      * Wim Taymans
-      * Zhang Wanming
-      * Christian Schaller
-      * Sjoerd Simons
+      * Vincent Penquerc'h
  
diff --git a/configure.ac b/configure.ac
index 8bd2cbd..dc9c33e 100644
--- a/configure.ac
+++ b/configure.ac
@@ -48,7 +48,7 @@
 dnl - interfaces added -> increment AGE
 dnl - interfaces removed -> AGE = 0
 dnl sets GST_LT_LDFLAGS
-AS_LIBTOOL(GST, 28, 0, 28)
+AS_LIBTOOL(GST, 29, 0, 29)
 
 dnl FIXME: this macro doesn't actually work;
 dnl the generated libtool script has no support for the listed tags.
diff --git a/docs/gst/gstreamer-sections.txt b/docs/gst/gstreamer-sections.txt
index 2ddca0c..311fb13 100644
--- a/docs/gst/gstreamer-sections.txt
+++ b/docs/gst/gstreamer-sections.txt
@@ -933,14 +933,43 @@
 <SECTION>
 <FILE>gstghostpad</FILE>
 <TITLE>GstGhostPad</TITLE>
+GstProxyPad
 GstGhostPad
+
 gst_ghost_pad_new
 gst_ghost_pad_new_no_target
 gst_ghost_pad_new_from_template
 gst_ghost_pad_new_no_target_from_template
+
 gst_ghost_pad_set_target
 gst_ghost_pad_get_target
+
 gst_ghost_pad_construct
+
+gst_ghost_pad_setcaps_default
+gst_ghost_pad_unlink_default
+gst_ghost_pad_link_default
+gst_ghost_pad_activate_pull_default
+gst_ghost_pad_activate_push_default
+
+gst_ghost_pad_internal_activate_push_default
+gst_ghost_pad_internal_activate_pull_default
+
+gst_proxy_pad_get_internal
+
+gst_proxy_pad_query_type_default
+gst_proxy_pad_event_default
+gst_proxy_pad_query_default
+gst_proxy_pad_iterate_internal_links_default
+gst_proxy_pad_chain_default
+gst_proxy_pad_chain_list_default
+gst_proxy_pad_getrange_default
+gst_proxy_pad_checkgetrange_default
+gst_proxy_pad_getcaps_default
+gst_proxy_pad_acceptcaps_default
+gst_proxy_pad_fixatecaps_default
+gst_proxy_pad_setcaps_default
+gst_proxy_pad_unlink_default
 <SUBSECTION Standard>
 GstGhostPadClass
 GST_GHOST_PAD
@@ -1393,6 +1422,7 @@
 GstMiniObjectCopyFunction
 GstMiniObjectDisposeFunction
 GstMiniObjectFreeFunction
+GstMiniObjectWeakNotify
 
 GST_MINI_OBJECT_TYPE
 GST_MINI_OBJECT_FLAGS
@@ -1413,6 +1443,9 @@
 gst_mini_object_ref
 gst_mini_object_unref
 
+gst_mini_object_weak_ref
+gst_mini_object_weak_unref
+
 gst_mini_object_replace
 
 <SUBSECTION Standard>
@@ -1540,11 +1573,6 @@
 gst_pad_new_from_template
 gst_pad_new_from_static_template
 
-gst_pad_alloc_buffer
-gst_pad_alloc_buffer_and_set_caps
-gst_pad_set_bufferalloc_function
-GstPadBufferAllocFunction
-
 gst_pad_set_chain_function
 GstPadChainFunction
 
diff --git a/docs/plugins/gstreamer-plugins.args b/docs/plugins/gstreamer-plugins.args
index c7f3571..5d965e6 100644
--- a/docs/plugins/gstreamer-plugins.args
+++ b/docs/plugins/gstreamer-plugins.args
@@ -849,6 +849,16 @@
 </ARG>
 
 <ARG>
+<NAME>GstMultiQueue::sync-by-running-time</NAME>
+<TYPE>gboolean</TYPE>
+<RANGE></RANGE>
+<FLAGS>rw</FLAGS>
+<NICK>Sync By Running Time</NICK>
+<BLURB>Synchronize deactivated or not-linked streams by running time.</BLURB>
+<DEFAULT>FALSE</DEFAULT>
+</ARG>
+
+<ARG>
 <NAME>GstBin::async-handling</NAME>
 <TYPE>gboolean</TYPE>
 <RANGE></RANGE>
@@ -1068,3 +1078,13 @@
 <DEFAULT>FALSE</DEFAULT>
 </ARG>
 
+<ARG>
+<NAME>GstInputSelector::sync-streams</NAME>
+<TYPE>gboolean</TYPE>
+<RANGE></RANGE>
+<FLAGS>rw</FLAGS>
+<NICK>Sync Streams</NICK>
+<BLURB>Synchronize inactive streams to the running time of the active stream.</BLURB>
+<DEFAULT>FALSE</DEFAULT>
+</ARG>
+
diff --git a/docs/plugins/inspect/plugin-coreelements.xml b/docs/plugins/inspect/plugin-coreelements.xml
index b7ca01a..aef69a7 100644
--- a/docs/plugins/inspect/plugin-coreelements.xml
+++ b/docs/plugins/inspect/plugin-coreelements.xml
@@ -3,10 +3,10 @@
   <description>standard GStreamer elements</description>
   <filename>../../plugins/elements/.libs/libgstcoreelements.so</filename>
   <basename>libgstcoreelements.so</basename>
-  <version>0.10.32.4</version>
+  <version>0.10.34.1</version>
   <license>LGPL</license>
   <source>gstreamer</source>
-  <package>GStreamer prerelease</package>
+  <package>GStreamer git</package>
   <origin>Unknown package origin</origin>
   <elements>
     <element>
diff --git a/docs/plugins/inspect/plugin-coreindexers.xml b/docs/plugins/inspect/plugin-coreindexers.xml
index 2ff2118..e8d2401 100644
--- a/docs/plugins/inspect/plugin-coreindexers.xml
+++ b/docs/plugins/inspect/plugin-coreindexers.xml
@@ -3,10 +3,10 @@
   <description>GStreamer core indexers</description>
   <filename>../../plugins/indexers/.libs/libgstcoreindexers.so</filename>
   <basename>libgstcoreindexers.so</basename>
-  <version>0.10.32.4</version>
+  <version>0.10.34.1</version>
   <license>LGPL</license>
   <source>gstreamer</source>
-  <package>GStreamer prerelease</package>
+  <package>GStreamer git</package>
   <origin>Unknown package origin</origin>
   <elements>
   </elements>
diff --git a/gst/gst_private.h b/gst/gst_private.h
index cf0d152..13f2590 100644
--- a/gst/gst_private.h
+++ b/gst/gst_private.h
@@ -51,6 +51,9 @@
 /* for the pad cache */
 #include "gstpad.h"
 
+/* for GstElement */
+#include "gstelement.h"
+
 G_BEGIN_DECLS
 
 /* used by gstparse.c and grammar.y */
@@ -115,6 +118,10 @@
 
 void _priv_gst_pad_invalidate_cache (GstPad *pad);
 
+/* Used in GstBin for manual state handling */
+void _priv_gst_element_state_changed (GstElement *element, GstState oldstate,
+    GstState newstate, GstState pending);
+
 /* used in both gststructure.c and gstcaps.c; numbers are completely made up */
 #define STRUCTURE_ESTIMATED_STRING_LEN(s) (16 + gst_structure_n_fields(s) * 22)
 
diff --git a/gst/gstbin.c b/gst/gstbin.c
index 578c9db..b25f96b 100644
--- a/gst/gstbin.c
+++ b/gst/gstbin.c
@@ -222,6 +222,8 @@
 
 static GstStateChangeReturn gst_bin_change_state_func (GstElement * element,
     GstStateChange transition);
+static void gst_bin_state_changed (GstElement * element, GstState oldstate,
+    GstState newstate, GstState pending);
 static GstStateChangeReturn gst_bin_get_state_func (GstElement * element,
     GstState * state, GstState * pending, GstClockTime timeout);
 static void bin_handle_async_done (GstBin * bin, GstStateChangeReturn ret,
@@ -468,6 +470,7 @@
 
   gstelement_class->change_state =
       GST_DEBUG_FUNCPTR (gst_bin_change_state_func);
+  gstelement_class->state_changed = GST_DEBUG_FUNCPTR (gst_bin_state_changed);
   gstelement_class->get_state = GST_DEBUG_FUNCPTR (gst_bin_get_state_func);
   gstelement_class->get_index = GST_DEBUG_FUNCPTR (gst_bin_get_index_func);
   gstelement_class->set_index = GST_DEBUG_FUNCPTR (gst_bin_set_index_func);
@@ -983,6 +986,7 @@
 is_eos (GstBin * bin, guint32 * seqnum)
 {
   gboolean result;
+  gint n_eos = 0;
   GList *walk, *msgs;
 
   result = TRUE;
@@ -996,6 +1000,7 @@
               find_message (bin, GST_OBJECT_CAST (element), GST_MESSAGE_EOS))) {
         GST_DEBUG ("sink '%s' posted EOS", GST_ELEMENT_NAME (element));
         *seqnum = gst_message_get_seqnum (GST_MESSAGE_CAST (msgs->data));
+        n_eos++;
       } else {
         GST_DEBUG ("sink '%s' did not post EOS yet",
             GST_ELEMENT_NAME (element));
@@ -1004,7 +1009,13 @@
       }
     }
   }
-  return result;
+  /* FIXME: Some tests (e.g. elements/capsfilter) use
+   * pipelines with a dangling sinkpad but no sink element.
+   * These tests assume that no EOS message is ever
+   * posted on the bus so let's keep that behaviour.
+   * In valid pipelines this doesn't make a difference.
+   */
+  return result && n_eos > 0;
 }
 
 static void
@@ -2238,7 +2249,6 @@
   if (!(cont = gst_pad_set_active (pad, *active)))
     g_value_set_boolean (ret, FALSE);
 
-  /* unref the object that was reffed for us by _fold */
   return cont;
 }
 
@@ -2387,6 +2397,19 @@
   return res;
 }
 
+static void
+gst_bin_state_changed (GstElement * element, GstState oldstate,
+    GstState newstate, GstState pending)
+{
+  GstElementClass *pklass = (GstElementClass *) parent_class;
+
+  if (newstate == GST_STATE_PLAYING && pending == GST_STATE_VOID_PENDING)
+    bin_do_eos (GST_BIN_CAST (element));
+
+  if (pklass->state_changed)
+    pklass->state_changed (element, oldstate, newstate, pending);
+}
+
 static GstStateChangeReturn
 gst_bin_change_state_func (GstElement * element, GstStateChange transition)
 {
@@ -2621,8 +2644,6 @@
       gst_element_state_get_name (GST_STATE (element)),
       gst_element_state_change_return_get_name (ret));
 
-  bin_do_eos (bin);
-
   return ret;
 
   /* ERRORS */
@@ -2736,8 +2757,6 @@
   GST_STATE_UNLOCK (bin);
   GST_DEBUG_OBJECT (bin, "state continue done");
 
-  bin_do_eos (bin);
-
   gst_object_unref (bin);
   g_slice_free (BinContinueData, data);
   return;
@@ -2832,9 +2851,8 @@
   GST_OBJECT_UNLOCK (bin);
 
   /* post message */
-  gst_element_post_message (GST_ELEMENT_CAST (bin),
-      gst_message_new_state_changed (GST_OBJECT_CAST (bin),
-          new_state, new_state, new_state));
+  _priv_gst_element_state_changed (GST_ELEMENT_CAST (bin), new_state, new_state,
+      new_state);
 
 post_start:
   if (amessage) {
@@ -2876,8 +2894,8 @@
   GstState current, pending, target;
   GstStateChangeReturn old_ret;
   GstState old_state, old_next;
-  gboolean toplevel;
-  GstMessage *smessage = NULL, *amessage = NULL;
+  gboolean toplevel, state_changed = FALSE;
+  GstMessage *amessage = NULL;
   BinContinueData *cont = NULL;
 
   if (GST_STATE_RETURN (bin) == GST_STATE_CHANGE_FAILURE)
@@ -2956,15 +2974,14 @@
 
   if (old_next != GST_STATE_PLAYING) {
     if (old_state != old_next || old_ret == GST_STATE_CHANGE_ASYNC) {
-      smessage = gst_message_new_state_changed (GST_OBJECT_CAST (bin),
-          old_state, old_next, pending);
+      state_changed = TRUE;
     }
   }
   GST_OBJECT_UNLOCK (bin);
 
-  if (smessage) {
-    GST_DEBUG_OBJECT (bin, "posting state change message");
-    gst_element_post_message (GST_ELEMENT_CAST (bin), smessage);
+  if (state_changed) {
+    _priv_gst_element_state_changed (GST_ELEMENT_CAST (bin), old_state,
+        old_next, pending);
   }
   if (amessage) {
     /* post our combined ASYNC_DONE when all is ASYNC_DONE. */
@@ -2972,9 +2989,6 @@
     gst_element_post_message (GST_ELEMENT_CAST (bin), amessage);
   }
 
-  if (!cont)
-    bin_do_eos (bin);
-
   GST_OBJECT_LOCK (bin);
   if (cont) {
     /* toplevel, start continue state */
diff --git a/gst/gstelement.c b/gst/gstelement.c
index d8afdbb..63b6dbc 100644
--- a/gst/gstelement.c
+++ b/gst/gstelement.c
@@ -2227,6 +2227,28 @@
   }
 }
 
+/* Not static because GstBin has manual state handling too */
+void
+_priv_gst_element_state_changed (GstElement * element, GstState oldstate,
+    GstState newstate, GstState pending)
+{
+  GstElementClass *klass = GST_ELEMENT_GET_CLASS (element);
+  GstMessage *message;
+
+  GST_CAT_INFO_OBJECT (GST_CAT_STATES, element,
+      "notifying about state-changed %s to %s (%s pending)",
+      gst_element_state_get_name (oldstate),
+      gst_element_state_get_name (newstate),
+      gst_element_state_get_name (pending));
+
+  if (klass->state_changed)
+    klass->state_changed (element, oldstate, newstate, pending);
+
+  message = gst_message_new_state_changed (GST_OBJECT_CAST (element),
+      oldstate, newstate, pending);
+  gst_element_post_message (element, message);
+}
+
 /**
  * gst_element_continue_state:
  * @element: a #GstElement to continue the state change of.
@@ -2254,7 +2276,6 @@
   GstStateChangeReturn old_ret;
   GstState old_state, old_next;
   GstState current, next, pending;
-  GstMessage *message;
   GstStateChange transition;
 
   GST_OBJECT_LOCK (element);
@@ -2290,9 +2311,7 @@
       gst_element_state_get_name (old_next),
       gst_element_state_get_name (pending), gst_element_state_get_name (next));
 
-  message = gst_message_new_state_changed (GST_OBJECT_CAST (element),
-      old_state, old_next, pending);
-  gst_element_post_message (element, message);
+  _priv_gst_element_state_changed (element, old_state, old_next, pending);
 
   GST_CAT_INFO_OBJECT (GST_CAT_STATES, element,
       "continue state change %s to %s, final %s",
@@ -2324,16 +2343,9 @@
      * previous return value.
      * We do signal the cond though as a _get_state() might be blocking
      * on it. */
-    if (old_state != old_next || old_ret == GST_STATE_CHANGE_ASYNC) {
-      GST_CAT_INFO_OBJECT (GST_CAT_STATES, element,
-          "posting state-changed %s to %s",
-          gst_element_state_get_name (old_state),
-          gst_element_state_get_name (old_next));
-      message =
-          gst_message_new_state_changed (GST_OBJECT_CAST (element), old_state,
-          old_next, GST_STATE_VOID_PENDING);
-      gst_element_post_message (element, message);
-    }
+    if (old_state != old_next || old_ret == GST_STATE_CHANGE_ASYNC)
+      _priv_gst_element_state_changed (element, old_state, old_next,
+          GST_STATE_VOID_PENDING);
 
     GST_STATE_BROADCAST (element);
 
@@ -2402,9 +2414,7 @@
     GST_ELEMENT_START_TIME (element) = 0;
   GST_OBJECT_UNLOCK (element);
 
-  message = gst_message_new_state_changed (GST_OBJECT_CAST (element),
-      new_state, new_state, new_state);
-  gst_element_post_message (element, message);
+  _priv_gst_element_state_changed (element, new_state, new_state, new_state);
 
   message =
       gst_message_new_async_start (GST_OBJECT_CAST (element), new_base_time);
@@ -2691,7 +2701,6 @@
   if (!(cont = gst_pad_set_active (pad, *active)))
     g_value_set_boolean (ret, FALSE);
 
-  /* unref the object that was reffed for us by _fold */
   return cont;
 }
 
diff --git a/gst/gstelement.h b/gst/gstelement.h
index 7bd958c..fba69a6 100644
--- a/gst/gstelement.h
+++ b/gst/gstelement.h
@@ -597,6 +597,7 @@
  * @get_query_types: get the supported #GstQueryType of this element
  * @query: perform a #GstQuery on the element
  * @request_new_pad_full: called when a new pad is requested. Since: 0.10.32.
+ * @state_changed: called immediately after a new state was set. Since: 0.10.35.
  *
  * GStreamer element class. Override the vmethods to implement the element
  * functionality.
@@ -636,6 +637,8 @@
                                                  GstState * pending, GstClockTime timeout);
   GstStateChangeReturn (*set_state)             (GstElement *element, GstState state);
   GstStateChangeReturn (*change_state)          (GstElement *element, GstStateChange transition);
+  void                 (*state_changed)         (GstElement *element, GstState oldstate,
+                                                 GstState newstate, GstState pending);
 
   /* bus */
   void                  (*set_bus)              (GstElement * element, GstBus * bus);
diff --git a/gst/gstghostpad.c b/gst/gstghostpad.c
index b33a241..8d6584e 100644
--- a/gst/gstghostpad.c
+++ b/gst/gstghostpad.c
@@ -73,7 +73,6 @@
 G_DEFINE_TYPE (GstProxyPad, gst_proxy_pad, GST_TYPE_PAD);
 
 static GstPad *gst_proxy_pad_get_target (GstPad * pad);
-static GstPad *gst_proxy_pad_get_internal (GstPad * pad);
 
 static void gst_proxy_pad_dispose (GObject * object);
 static void gst_proxy_pad_finalize (GObject * object);
@@ -83,12 +82,26 @@
 
 static GParamSpec *pspec_caps = NULL;
 
-static const GstQueryType *
-gst_proxy_pad_do_query_type (GstPad * pad)
+/**
+ * gst_proxy_pad_query_type_default:
+ * @pad: a #GstPad.
+ *
+ * Invoke the default query type handler of the proxy pad.
+ *
+ * Returns: (transfer none) (array zero-terminated=1): a zero-terminated array
+ *     of #GstQueryType.
+ *
+ * Since: 0.10.35
+ */
+const GstQueryType *
+gst_proxy_pad_query_type_default (GstPad * pad)
 {
-  GstPad *target = gst_proxy_pad_get_target (pad);
+  GstPad *target;
   const GstQueryType *res = NULL;
 
+  g_return_val_if_fail (GST_IS_PROXY_PAD (pad), NULL);
+
+  target = gst_proxy_pad_get_target (pad);
   if (target) {
     res = gst_pad_get_query_types (target);
     gst_object_unref (target);
@@ -96,12 +109,28 @@
   return res;
 }
 
-static gboolean
-gst_proxy_pad_do_event (GstPad * pad, GstEvent * event)
+/**
+ * gst_proxy_pad_event_default:
+ * @pad: a #GstPad to push the event to.
+ * @event: (transfer full): the #GstEvent to send to the pad.
+ *
+ * Invoke the default event of the proxy pad.
+ *
+ * Returns: TRUE if the event was handled.
+ *
+ * Since: 0.10.35
+ */
+gboolean
+gst_proxy_pad_event_default (GstPad * pad, GstEvent * event)
 {
   gboolean res = FALSE;
-  GstPad *internal = gst_proxy_pad_get_internal (pad);
+  GstPad *internal;
 
+  g_return_val_if_fail (GST_IS_PROXY_PAD (pad), FALSE);
+  g_return_val_if_fail (GST_IS_EVENT (event), FALSE);
+
+  internal =
+      GST_PAD_CAST (gst_proxy_pad_get_internal (GST_PROXY_PAD_CAST (pad)));
   if (internal) {
     res = gst_pad_push_event (internal, event);
     gst_object_unref (internal);
@@ -110,12 +139,27 @@
   return res;
 }
 
-static gboolean
-gst_proxy_pad_do_query (GstPad * pad, GstQuery ** query)
+/**
+ * gst_proxy_pad_query_default:
+ * @pad: a #GstPad to invoke the default query on.
+ * @query: (transfer none): the #GstQuery to perform.
+ *
+ * Invoke the default query function of the proxy pad.
+ *
+ * Returns: TRUE if the query could be performed.
+ *
+ * Since: 0.10.35
+ */
+gboolean
+gst_proxy_pad_query_default (GstPad * pad, GstQuery ** query)
 {
   gboolean res = FALSE;
-  GstPad *target = gst_proxy_pad_get_target (pad);
+  GstPad *target;
 
+  g_return_val_if_fail (GST_IS_PROXY_PAD (pad), FALSE);
+  g_return_val_if_fail (GST_IS_QUERY (query), FALSE);
+
+  target = gst_proxy_pad_get_target (pad);
   if (target) {
     res = gst_pad_query (target, query);
     gst_object_unref (target);
@@ -124,11 +168,27 @@
   return res;
 }
 
-static GstIterator *
-gst_proxy_pad_do_iterate_internal_links (GstPad * pad)
+/**
+ * gst_proyx_pad_iterate_internal_links_default:
+ * @pad: the #GstPad to get the internal links of.
+ *
+ * Invoke the default iterate internal links function of the proxy pad.
+ *
+ * Returns: a #GstIterator of #GstPad, or NULL if @pad has no parent. Unref each
+ * returned pad with gst_object_unref().
+ *
+ * Since: 0.10.35
+ */
+GstIterator *
+gst_proxy_pad_iterate_internal_links_default (GstPad * pad)
 {
   GstIterator *res = NULL;
-  GstPad *internal = GST_PROXY_PAD_INTERNAL (pad);
+  GstPad *internal;
+
+  g_return_val_if_fail (GST_IS_PROXY_PAD (pad), NULL);
+
+  internal =
+      GST_PAD_CAST (gst_proxy_pad_get_internal (GST_PROXY_PAD_CAST (pad)));
 
   if (internal) {
     GValue v = { 0, };
@@ -137,63 +197,142 @@
     g_value_set_object (&v, internal);
     res = gst_iterator_new_single (GST_TYPE_PAD, &v);
     g_value_unset (&v);
+    gst_object_unref (internal);
   }
 
   return res;
 }
 
-static GstFlowReturn
-gst_proxy_pad_do_chain (GstPad * pad, GstBuffer * buffer)
+/**
+ * gst_proxy_pad_chain_default:
+ * @pad: a sink #GstPad, returns GST_FLOW_ERROR if not.
+ * @buffer: (transfer full): the #GstBuffer to send, return GST_FLOW_ERROR
+ *     if not.
+ *
+ * Invoke the default chain function of the proxy pad.
+ *
+ * Returns: a #GstFlowReturn from the pad.
+ *
+ * Since: 0.10.35
+ */
+GstFlowReturn
+gst_proxy_pad_chain_default (GstPad * pad, GstBuffer * buffer)
 {
   GstFlowReturn res;
-  GstPad *internal = GST_PROXY_PAD_INTERNAL (pad);
+  GstPad *internal;
 
+  g_return_val_if_fail (GST_IS_PROXY_PAD (pad), GST_FLOW_ERROR);
+  g_return_val_if_fail (GST_IS_BUFFER (buffer), GST_FLOW_ERROR);
+
+  internal = GST_PROXY_PAD_INTERNAL (pad);
   res = gst_pad_push (internal, buffer);
 
   return res;
 }
 
-static GstFlowReturn
-gst_proxy_pad_do_chain_list (GstPad * pad, GstBufferList * list)
+/**
+ * gst_proxy_pad_chain_list_default:
+ * @pad: a sink #GstPad, returns GST_FLOW_ERROR if not.
+ * @list: (transfer full): the #GstBufferList to send, return GST_FLOW_ERROR
+ *     if not.
+ *
+ * Invoke the default chain list function of the proxy pad.
+ *
+ * Returns: a #GstFlowReturn from the pad.
+ *
+ * Since: 0.10.35
+ */
+GstFlowReturn
+gst_proxy_pad_chain_list_default (GstPad * pad, GstBufferList * list)
 {
   GstFlowReturn res;
-  GstPad *internal = GST_PROXY_PAD_INTERNAL (pad);
+  GstPad *internal;
 
+  g_return_val_if_fail (GST_IS_PROXY_PAD (pad), GST_FLOW_ERROR);
+  g_return_val_if_fail (GST_IS_BUFFER_LIST (list), GST_FLOW_ERROR);
+
+  internal = GST_PROXY_PAD_INTERNAL (pad);
   res = gst_pad_push_list (internal, list);
 
   return res;
 }
 
-static GstFlowReturn
-gst_proxy_pad_do_getrange (GstPad * pad, guint64 offset, guint size,
+/**
+ * gst_proxy_pad_get_range_default:
+ * @pad: a src #GstPad, returns #GST_FLOW_ERROR if not.
+ * @offset: The start offset of the buffer
+ * @size: The length of the buffer
+ * @buffer: (out callee-allocates): a pointer to hold the #GstBuffer,
+ *     returns #GST_FLOW_ERROR if %NULL.
+ *
+ * Invoke the default getrange function of the proxy pad.
+ *
+ * Returns: a #GstFlowReturn from the pad.
+ *
+ * Since: 0.10.35
+ */
+GstFlowReturn
+gst_proxy_pad_getrange_default (GstPad * pad, guint64 offset, guint size,
     GstBuffer ** buffer)
 {
   GstFlowReturn res;
-  GstPad *internal = GST_PROXY_PAD_INTERNAL (pad);
+  GstPad *internal;
 
+  g_return_val_if_fail (GST_IS_PROXY_PAD (pad), GST_FLOW_ERROR);
+  g_return_val_if_fail (buffer != NULL, GST_FLOW_ERROR);
+
+  internal = GST_PROXY_PAD_INTERNAL (pad);
   res = gst_pad_pull_range (internal, offset, size, buffer);
 
   return res;
 }
 
-static gboolean
-gst_proxy_pad_do_checkgetrange (GstPad * pad)
+/**
+ * gst_proxy_pad_checkgetrange_default:
+ * @pad: a src #GstPad, returns #GST_FLOW_ERROR if not.
+ *
+ * Invoke the default checkgetrange function of the proxy pad.
+ *
+ * Returns: a #gboolean from the pad.
+ *
+ * Since: 0.10.35
+ */
+gboolean
+gst_proxy_pad_checkgetrange_default (GstPad * pad)
 {
   gboolean result;
-  GstPad *internal = GST_PROXY_PAD_INTERNAL (pad);
+  GstPad *internal;
 
+  g_return_val_if_fail (GST_IS_PROXY_PAD (pad), FALSE);
+
+  internal = GST_PROXY_PAD_INTERNAL (pad);
   result = gst_pad_check_pull_range (internal);
 
   return result;
 }
 
-static GstCaps *
-gst_proxy_pad_do_getcaps (GstPad * pad, GstCaps * filter)
+/**
+ * gst_proxy_pad_getcaps_default:
+ * @pad: a #GstPad to get the capabilities of.
+ * @filter: a #GstCaps filter.
+ *
+ * Invoke the default getcaps function of the proxy pad.
+ *
+ * Returns: (transfer full): the caps of the pad with incremented ref-count
+ *
+ * Since: 0.10.35
+ */
+GstCaps *
+gst_proxy_pad_getcaps_default (GstPad * pad, GstCaps * filter)
 {
-  GstPad *target = gst_proxy_pad_get_target (pad);
+  GstPad *target;
   GstCaps *res;
-  GstPadTemplate *templ = GST_PAD_PAD_TEMPLATE (pad);
+  GstPadTemplate *templ;
 
+  g_return_val_if_fail (GST_IS_PROXY_PAD (pad), NULL);
+
+  templ = GST_PAD_PAD_TEMPLATE (pad);
+  target = gst_proxy_pad_get_target (pad);
   if (target) {
     /* if we have a real target, proxy the call */
     res = gst_pad_get_caps (target, filter);
@@ -245,12 +384,27 @@
   return res;
 }
 
-static gboolean
-gst_proxy_pad_do_acceptcaps (GstPad * pad, GstCaps * caps)
+/**
+ * gst_proxy_pad_acceptcaps_default:
+ * @pad: a #GstPad to check
+ * @caps: a #GstCaps to check on the pad
+ *
+ * Invoke the default acceptcaps function of the proxy pad.
+ *
+ * Returns: TRUE if the pad can accept the caps.
+ *
+ * Since: 0.10.35
+ */
+gboolean
+gst_proxy_pad_acceptcaps_default (GstPad * pad, GstCaps * caps)
 {
-  GstPad *target = gst_proxy_pad_get_target (pad);
+  GstPad *target;
   gboolean res;
 
+  g_return_val_if_fail (GST_IS_PROXY_PAD (pad), FALSE);
+  g_return_val_if_fail (caps == NULL || GST_IS_CAPS (caps), FALSE);
+
+  target = gst_proxy_pad_get_target (pad);
   if (target) {
     res = gst_pad_accept_caps (target, caps);
     gst_object_unref (target);
@@ -263,23 +417,52 @@
   return res;
 }
 
-static void
-gst_proxy_pad_do_fixatecaps (GstPad * pad, GstCaps * caps)
+/**
+ * gst_proxy_pad_fixatecaps_default:
+ * @pad: a  #GstPad to fixate
+ * @caps: the  #GstCaps to fixate
+ *
+ * Invoke the default fixatecaps function of the proxy pad.
+ *
+ * Since: 0.10.35
+ */
+void
+gst_proxy_pad_fixatecaps_default (GstPad * pad, GstCaps * caps)
 {
-  GstPad *target = gst_proxy_pad_get_target (pad);
+  GstPad *target;
 
+  g_return_if_fail (GST_IS_PROXY_PAD (pad));
+  g_return_if_fail (GST_IS_CAPS (caps));
+
+  target = gst_proxy_pad_get_target (pad);
   if (target) {
     gst_pad_fixate_caps (target, caps);
     gst_object_unref (target);
   }
 }
 
-static gboolean
-gst_proxy_pad_do_setcaps (GstPad * pad, GstCaps * caps)
+/**
+ * gst_proxy_pad_setcaps_default:
+ * @pad: a  #GstPad to set the capabilities of.
+ * @caps: (transfer none): a #GstCaps to set.
+ *
+ * Invoke the default setcaps function of the proxy pad.
+ *
+ * Returns: TRUE if the caps could be set. FALSE if the caps were not fixed
+ * or bad parameters were provided to this function.
+ *
+ * Since: 0.10.35
+ */
+gboolean
+gst_proxy_pad_setcaps_default (GstPad * pad, GstCaps * caps)
 {
-  GstPad *target = gst_proxy_pad_get_target (pad);
+  GstPad *target;
   gboolean res;
 
+  g_return_val_if_fail (GST_IS_PROXY_PAD (pad), FALSE);
+  g_return_val_if_fail (caps == NULL || GST_IS_CAPS (caps), FALSE);
+
+  target = gst_proxy_pad_get_target (pad);
   if (target) {
     res = gst_pad_set_caps (target, caps);
     gst_object_unref (target);
@@ -353,22 +536,46 @@
   return target;
 }
 
-static GstPad *
-gst_proxy_pad_get_internal (GstPad * pad)
+/**
+ * gst_proxy_pad_get_internal:
+ * @pad: the #GstProxyPad
+ *
+ * Get the internal pad of @pad. Unref target pad after usage.
+ *
+ * The internal pad of a #GstGhostPad is the internally used
+ * pad of opposite direction, which is used to link to the target.
+ *
+ * Returns: (transfer full): the target #GstProxyPad, can be NULL.
+ * Unref target pad after usage.
+ *
+ * Since: 0.10.35
+ */
+GstProxyPad *
+gst_proxy_pad_get_internal (GstProxyPad * pad)
 {
   GstPad *internal;
 
+  g_return_val_if_fail (GST_IS_PROXY_PAD (pad), NULL);
+
   GST_PROXY_LOCK (pad);
   internal = GST_PROXY_PAD_INTERNAL (pad);
   if (internal)
     gst_object_ref (internal);
   GST_PROXY_UNLOCK (pad);
 
-  return internal;
+  return GST_PROXY_PAD_CAST (internal);
 }
 
-static void
-gst_proxy_pad_do_unlink (GstPad * pad)
+/**
+ * gst_proxy_pad_unlink_default:
+ * @pad: a #GstPad to unlink
+ *
+ * Invoke the default unlink function of the proxy pad.
+ *
+ * Since: 0.10.35
+ */
+void
+gst_proxy_pad_unlink_default (GstPad * pad)
 {
   GstPad *internal;
 
@@ -396,19 +603,19 @@
   gobject_class->finalize = gst_proxy_pad_finalize;
 
   /* Register common function pointer descriptions */
-  GST_DEBUG_REGISTER_FUNCPTR (gst_proxy_pad_do_query_type);
-  GST_DEBUG_REGISTER_FUNCPTR (gst_proxy_pad_do_event);
-  GST_DEBUG_REGISTER_FUNCPTR (gst_proxy_pad_do_query);
-  GST_DEBUG_REGISTER_FUNCPTR (gst_proxy_pad_do_iterate_internal_links);
-  GST_DEBUG_REGISTER_FUNCPTR (gst_proxy_pad_do_getcaps);
-  GST_DEBUG_REGISTER_FUNCPTR (gst_proxy_pad_do_acceptcaps);
-  GST_DEBUG_REGISTER_FUNCPTR (gst_proxy_pad_do_fixatecaps);
-  GST_DEBUG_REGISTER_FUNCPTR (gst_proxy_pad_do_setcaps);
-  GST_DEBUG_REGISTER_FUNCPTR (gst_proxy_pad_do_unlink);
-  GST_DEBUG_REGISTER_FUNCPTR (gst_proxy_pad_do_chain);
-  GST_DEBUG_REGISTER_FUNCPTR (gst_proxy_pad_do_chain_list);
-  GST_DEBUG_REGISTER_FUNCPTR (gst_proxy_pad_do_getrange);
-  GST_DEBUG_REGISTER_FUNCPTR (gst_proxy_pad_do_checkgetrange);
+  GST_DEBUG_REGISTER_FUNCPTR (gst_proxy_pad_query_type_default);
+  GST_DEBUG_REGISTER_FUNCPTR (gst_proxy_pad_event_default);
+  GST_DEBUG_REGISTER_FUNCPTR (gst_proxy_pad_query_default);
+  GST_DEBUG_REGISTER_FUNCPTR (gst_proxy_pad_iterate_internal_links_default);
+  GST_DEBUG_REGISTER_FUNCPTR (gst_proxy_pad_getcaps_default);
+  GST_DEBUG_REGISTER_FUNCPTR (gst_proxy_pad_acceptcaps_default);
+  GST_DEBUG_REGISTER_FUNCPTR (gst_proxy_pad_fixatecaps_default);
+  GST_DEBUG_REGISTER_FUNCPTR (gst_proxy_pad_setcaps_default);
+  GST_DEBUG_REGISTER_FUNCPTR (gst_proxy_pad_unlink_default);
+  GST_DEBUG_REGISTER_FUNCPTR (gst_proxy_pad_chain_default);
+  GST_DEBUG_REGISTER_FUNCPTR (gst_proxy_pad_chain_list_default);
+  GST_DEBUG_REGISTER_FUNCPTR (gst_proxy_pad_getrange_default);
+  GST_DEBUG_REGISTER_FUNCPTR (gst_proxy_pad_checkgetrange_default);
 }
 
 static void
@@ -449,17 +656,17 @@
       GST_TYPE_PROXY_PAD, GstProxyPadPrivate);
   GST_PROXY_GET_LOCK (pad) = g_mutex_new ();
 
-  gst_pad_set_query_type_function (pad, gst_proxy_pad_do_query_type);
-  gst_pad_set_event_function (pad, gst_proxy_pad_do_event);
-  gst_pad_set_query_function (pad, gst_proxy_pad_do_query);
+  gst_pad_set_query_type_function (pad, gst_proxy_pad_query_type_default);
+  gst_pad_set_event_function (pad, gst_proxy_pad_event_default);
+  gst_pad_set_query_function (pad, gst_proxy_pad_query_default);
   gst_pad_set_iterate_internal_links_function (pad,
-      gst_proxy_pad_do_iterate_internal_links);
+      gst_proxy_pad_iterate_internal_links_default);
 
-  gst_pad_set_getcaps_function (pad, gst_proxy_pad_do_getcaps);
-  gst_pad_set_acceptcaps_function (pad, gst_proxy_pad_do_acceptcaps);
-  gst_pad_set_fixatecaps_function (pad, gst_proxy_pad_do_fixatecaps);
-  gst_pad_set_setcaps_function (pad, gst_proxy_pad_do_setcaps);
-  gst_pad_set_unlink_function (pad, gst_proxy_pad_do_unlink);
+  gst_pad_set_getcaps_function (pad, gst_proxy_pad_getcaps_default);
+  gst_pad_set_acceptcaps_function (pad, gst_proxy_pad_acceptcaps_default);
+  gst_pad_set_fixatecaps_function (pad, gst_proxy_pad_fixatecaps_default);
+  gst_pad_set_setcaps_function (pad, gst_proxy_pad_setcaps_default);
+  gst_pad_set_unlink_function (pad, gst_proxy_pad_unlink_default);
 }
 
 
@@ -482,13 +689,26 @@
 
 static void gst_ghost_pad_dispose (GObject * object);
 
-/* see gstghostpad design docs */
-static gboolean
-gst_ghost_pad_internal_do_activate_push (GstPad * pad, gboolean active)
+/**
+ * gst_ghost_pad_internal_activate_push_default:
+ * @pad: the #GstPad to activate or deactivate.
+ * @active: whether the pad should be active or not.
+ *
+ * Invoke the default activate push function of a proxy pad that is
+ * owned by a ghost pad.
+ *
+ * Returns: %TRUE if the operation was successful.
+ *
+ * Since: 0.10.35
+ */
+gboolean
+gst_ghost_pad_internal_activate_push_default (GstPad * pad, gboolean active)
 {
   gboolean ret;
   GstPad *other;
 
+  g_return_val_if_fail (GST_IS_PROXY_PAD (pad), FALSE);
+
   GST_LOG_OBJECT (pad, "%sactivate push on %s:%s, we're ok",
       (active ? "" : "de"), GST_DEBUG_PAD_NAME (pad));
 
@@ -500,12 +720,26 @@
   return ret;
 }
 
-static gboolean
-gst_ghost_pad_internal_do_activate_pull (GstPad * pad, gboolean active)
+/**
+ * gst_ghost_pad_internal_activate_pull_default:
+ * @pad: the #GstPad to activate or deactivate.
+ * @active: whether the pad should be active or not.
+ *
+ * Invoke the default activate pull function of a proxy pad that is
+ * owned by a ghost pad.
+ *
+ * Returns: %TRUE if the operation was successful.
+ *
+ * Since: 0.10.35
+ */
+gboolean
+gst_ghost_pad_internal_activate_pull_default (GstPad * pad, gboolean active)
 {
   gboolean ret;
   GstPad *other;
 
+  g_return_val_if_fail (GST_IS_PROXY_PAD (pad), FALSE);
+
   GST_LOG_OBJECT (pad, "%sactivate pull on %s:%s", (active ? "" : "de"),
       GST_DEBUG_PAD_NAME (pad));
 
@@ -513,7 +747,7 @@
     /* we are activated in pull mode by our peer element, which is a sinkpad
      * that wants to operate in pull mode. This activation has to propagate
      * upstream throught the pipeline. We call the internal activation function,
-     * which will trigger gst_ghost_pad_do_activate_pull, which propagates even
+     * which will trigger gst_ghost_pad_activate_pull_default, which propagates even
      * further upstream */
     GST_LOG_OBJECT (pad, "pad is src, activate internal");
     other = GST_PROXY_PAD_INTERNAL (pad);
@@ -533,12 +767,25 @@
   return ret;
 }
 
-static gboolean
-gst_ghost_pad_do_activate_push (GstPad * pad, gboolean active)
+/**
+ * gst_ghost_pad_activate_push_default:
+ * @pad: the #GstPad to activate or deactivate.
+ * @active: whether the pad should be active or not.
+ *
+ * Invoke the default activate push function of a ghost pad.
+ *
+ * Returns: %TRUE if the operation was successful.
+ *
+ * Since: 0.10.35
+ */
+gboolean
+gst_ghost_pad_activate_push_default (GstPad * pad, gboolean active)
 {
   gboolean ret;
   GstPad *other;
 
+  g_return_val_if_fail (GST_IS_GHOST_PAD (pad), FALSE);
+
   GST_LOG_OBJECT (pad, "%sactivate push on %s:%s, proxy internal",
       (active ? "" : "de"), GST_DEBUG_PAD_NAME (pad));
 
@@ -549,12 +796,25 @@
   return ret;
 }
 
-static gboolean
-gst_ghost_pad_do_activate_pull (GstPad * pad, gboolean active)
+/**
+ * gst_ghost_pad_activate_pull_default:
+ * @pad: the #GstPad to activate or deactivate.
+ * @active: whether the pad should be active or not.
+ *
+ * Invoke the default activate pull function of a ghost pad.
+ *
+ * Returns: %TRUE if the operation was successful.
+ *
+ * Since: 0.10.35
+ */
+gboolean
+gst_ghost_pad_activate_pull_default (GstPad * pad, gboolean active)
 {
   gboolean ret;
   GstPad *other;
 
+  g_return_val_if_fail (GST_IS_GHOST_PAD (pad), FALSE);
+
   GST_LOG_OBJECT (pad, "%sactivate pull on %s:%s", (active ? "" : "de"),
       GST_DEBUG_PAD_NAME (pad));
 
@@ -580,12 +840,26 @@
   return ret;
 }
 
-static GstPadLinkReturn
-gst_ghost_pad_do_link (GstPad * pad, GstPad * peer)
+/**
+ * gst_ghost_pad_link_default:
+ * @pad: the #GstPad to link.
+ * @peer: the #GstPad peer
+ *
+ * Invoke the default link function of a ghost pad.
+ *
+ * Returns: #GstPadLinkReturn of the operation
+ *
+ * Since: 0.10.35
+ */
+GstPadLinkReturn
+gst_ghost_pad_link_default (GstPad * pad, GstPad * peer)
 {
   GstPadLinkReturn ret;
   GstPad *internal;
 
+  g_return_val_if_fail (GST_IS_GHOST_PAD (pad), GST_PAD_LINK_REFUSED);
+  g_return_val_if_fail (GST_IS_PAD (peer), GST_PAD_LINK_REFUSED);
+
   GST_DEBUG_OBJECT (pad, "linking ghostpad");
 
   internal = GST_PROXY_PAD_INTERNAL (pad);
@@ -619,11 +893,21 @@
   }
 }
 
-static void
-gst_ghost_pad_do_unlink (GstPad * pad)
+/**
+ * gst_ghost_pad_unlink_default:
+ * @pad: the #GstPad to link.
+ *
+ * Invoke the default unlink function of a ghost pad.
+ *
+ * Since: 0.10.35
+ */
+void
+gst_ghost_pad_unlink_default (GstPad * pad)
 {
   GstPad *internal;
 
+  g_return_if_fail (GST_IS_GHOST_PAD (pad));
+
   internal = GST_PROXY_PAD_INTERNAL (pad);
 
   GST_DEBUG_OBJECT (pad, "unlinking ghostpad");
@@ -722,31 +1006,27 @@
     gst_caps_unref (caps);
 }
 
-static gboolean
-gst_ghost_pad_do_setcaps (GstPad * pad, GstCaps * caps)
+/**
+ * gst_ghost_pad_setcaps_default:
+ * @pad: the #GstPad to link.
+ * @caps: (transfer none): the #GstCaps to set
+ *
+ * Invoke the default setcaps function of a ghost pad.
+ *
+ * Returns: %TRUE if the operation was successful
+ *
+ * Since: 0.10.35
+ */
+gboolean
+gst_ghost_pad_setcaps_default (GstPad * pad, GstCaps * caps)
 {
+  g_return_val_if_fail (GST_IS_GHOST_PAD (pad), FALSE);
+  g_return_val_if_fail (caps == NULL || GST_IS_CAPS (caps), FALSE);
+
   if (GST_PAD_DIRECTION (pad) == GST_PAD_SRC)
     return TRUE;
 
-  return gst_proxy_pad_do_setcaps (pad, caps);
-}
-
-static GstIterator *
-gst_ghost_pad_do_iterate_internal_links (GstPad * pad)
-{
-  GstIterator *res = NULL;
-  GstPad *internal = GST_PROXY_PAD_INTERNAL (GST_GHOST_PAD_CAST (pad));
-
-  if (internal) {
-    GValue v = { 0, };
-
-    g_value_init (&v, GST_TYPE_PAD);
-    g_value_set_object (&v, internal);
-    res = gst_iterator_new_single (GST_TYPE_PAD, &v);
-    g_value_unset (&v);
-  }
-
-  return res;
+  return gst_proxy_pad_setcaps_default (pad, caps);
 }
 
 static void
@@ -760,10 +1040,10 @@
 
   gobject_class->dispose = gst_ghost_pad_dispose;
 
-  GST_DEBUG_REGISTER_FUNCPTR (gst_ghost_pad_do_setcaps);
-  GST_DEBUG_REGISTER_FUNCPTR (gst_ghost_pad_do_activate_pull);
-  GST_DEBUG_REGISTER_FUNCPTR (gst_ghost_pad_do_activate_push);
-  GST_DEBUG_REGISTER_FUNCPTR (gst_ghost_pad_do_link);
+  GST_DEBUG_REGISTER_FUNCPTR (gst_ghost_pad_setcaps_default);
+  GST_DEBUG_REGISTER_FUNCPTR (gst_ghost_pad_activate_pull_default);
+  GST_DEBUG_REGISTER_FUNCPTR (gst_ghost_pad_activate_push_default);
+  GST_DEBUG_REGISTER_FUNCPTR (gst_ghost_pad_link_default);
 }
 
 static void
@@ -772,13 +1052,12 @@
   GST_GHOST_PAD_PRIVATE (pad) = G_TYPE_INSTANCE_GET_PRIVATE (pad,
       GST_TYPE_GHOST_PAD, GstGhostPadPrivate);
 
-  gst_pad_set_setcaps_function (GST_PAD_CAST (pad), gst_ghost_pad_do_setcaps);
+  gst_pad_set_setcaps_function (GST_PAD_CAST (pad),
+      gst_ghost_pad_setcaps_default);
   gst_pad_set_activatepull_function (GST_PAD_CAST (pad),
-      gst_ghost_pad_do_activate_pull);
+      gst_ghost_pad_activate_pull_default);
   gst_pad_set_activatepush_function (GST_PAD_CAST (pad),
-      gst_ghost_pad_do_activate_push);
-  gst_pad_set_iterate_internal_links_function (GST_PAD_CAST (pad),
-      gst_ghost_pad_do_iterate_internal_links);
+      gst_ghost_pad_activate_push_default);
 }
 
 static void
@@ -795,7 +1074,7 @@
   gst_ghost_pad_set_target (GST_GHOST_PAD (pad), NULL);
 
   /* Unlink here so that gst_pad_dispose doesn't. That would lead to a call to
-   * gst_ghost_pad_do_unlink when the ghost pad is in an inconsistent state */
+   * gst_ghost_pad_unlink_default when the ghost pad is in an inconsistent state */
   peer = gst_pad_get_peer (pad);
   if (peer) {
     if (GST_PAD_IS_SRC (pad))
@@ -859,16 +1138,17 @@
 
   /* Set directional padfunctions for ghostpad */
   if (dir == GST_PAD_SINK) {
-    gst_pad_set_chain_function (pad, gst_proxy_pad_do_chain);
-    gst_pad_set_chain_list_function (pad, gst_proxy_pad_do_chain_list);
+    gst_pad_set_chain_function (pad, gst_proxy_pad_chain_default);
+    gst_pad_set_chain_list_function (pad, gst_proxy_pad_chain_list_default);
   } else {
-    gst_pad_set_getrange_function (pad, gst_proxy_pad_do_getrange);
-    gst_pad_set_checkgetrange_function (pad, gst_proxy_pad_do_checkgetrange);
+    gst_pad_set_getrange_function (pad, gst_proxy_pad_getrange_default);
+    gst_pad_set_checkgetrange_function (pad,
+        gst_proxy_pad_checkgetrange_default);
   }
 
   /* link/unlink functions */
-  gst_pad_set_link_function (pad, gst_ghost_pad_do_link);
-  gst_pad_set_unlink_function (pad, gst_ghost_pad_do_unlink);
+  gst_pad_set_link_function (pad, gst_ghost_pad_link_default);
+  gst_pad_set_unlink_function (pad, gst_ghost_pad_unlink_default);
 
   /* INTERNAL PAD, it always exists and is child of the ghostpad */
   otherdir = (dir == GST_PAD_SRC) ? GST_PAD_SINK : GST_PAD_SRC;
@@ -887,12 +1167,13 @@
 
   /* Set directional padfunctions for internal pad */
   if (dir == GST_PAD_SRC) {
-    gst_pad_set_chain_function (internal, gst_proxy_pad_do_chain);
-    gst_pad_set_chain_list_function (internal, gst_proxy_pad_do_chain_list);
+    gst_pad_set_chain_function (internal, gst_proxy_pad_chain_default);
+    gst_pad_set_chain_list_function (internal,
+        gst_proxy_pad_chain_list_default);
   } else {
-    gst_pad_set_getrange_function (internal, gst_proxy_pad_do_getrange);
+    gst_pad_set_getrange_function (internal, gst_proxy_pad_getrange_default);
     gst_pad_set_checkgetrange_function (internal,
-        gst_proxy_pad_do_checkgetrange);
+        gst_proxy_pad_checkgetrange_default);
   }
 
   GST_PROXY_LOCK (pad);
@@ -924,9 +1205,9 @@
 
   /* special activation functions for the internal pad */
   gst_pad_set_activatepull_function (internal,
-      gst_ghost_pad_internal_do_activate_pull);
+      gst_ghost_pad_internal_activate_pull_default);
   gst_pad_set_activatepush_function (internal,
-      gst_ghost_pad_internal_do_activate_push);
+      gst_ghost_pad_internal_activate_push_default);
 
   GST_PROXY_UNLOCK (pad);
 
diff --git a/gst/gstghostpad.h b/gst/gstghostpad.h
index f492a74..37d27a2 100644
--- a/gst/gstghostpad.h
+++ b/gst/gstghostpad.h
@@ -59,6 +59,22 @@
 
 GType gst_proxy_pad_get_type (void);
 
+GstProxyPad*     gst_proxy_pad_get_internal     (GstProxyPad *pad);
+
+
+const GstQueryType* gst_proxy_pad_query_type_default             (GstPad *pad);
+gboolean            gst_proxy_pad_event_default                  (GstPad *pad, GstEvent *event);
+gboolean            gst_proxy_pad_query_default                  (GstPad *pad, GstQuery **query);
+GstIterator*        gst_proxy_pad_iterate_internal_links_default (GstPad *pad);
+GstFlowReturn       gst_proxy_pad_chain_default                  (GstPad *pad, GstBuffer *buf);
+GstFlowReturn       gst_proxy_pad_chain_list_default             (GstPad *pad, GstBufferList *list);
+GstFlowReturn       gst_proxy_pad_getrange_default               (GstPad *pad, guint64 offset, guint size, GstBuffer **buffer);
+gboolean            gst_proxy_pad_checkgetrange_default          (GstPad *pad);
+GstCaps*            gst_proxy_pad_getcaps_default                (GstPad *pad, GstCaps * filter);
+gboolean            gst_proxy_pad_acceptcaps_default             (GstPad *pad, GstCaps *caps);
+void                gst_proxy_pad_fixatecaps_default             (GstPad *pad, GstCaps *caps);
+gboolean            gst_proxy_pad_setcaps_default                (GstPad *pad, GstCaps *caps);
+void                gst_proxy_pad_unlink_default                 (GstPad * pad);
 
 #define GST_TYPE_GHOST_PAD		(gst_ghost_pad_get_type ())
 #define GST_IS_GHOST_PAD(obj)		(G_TYPE_CHECK_INSTANCE_TYPE ((obj), GST_TYPE_GHOST_PAD))
@@ -106,6 +122,15 @@
 
 gboolean	 gst_ghost_pad_construct	(GstGhostPad *gpad);
 
+gboolean         gst_ghost_pad_setcaps_default        (GstPad * pad, GstCaps * caps);
+void             gst_ghost_pad_unlink_default         (GstPad * pad);
+GstPadLinkReturn gst_ghost_pad_link_default           (GstPad * pad, GstPad * peer);
+gboolean         gst_ghost_pad_activate_pull_default  (GstPad * pad, gboolean active);
+gboolean         gst_ghost_pad_activate_push_default  (GstPad * pad, gboolean active);
+
+gboolean         gst_ghost_pad_internal_activate_push_default (GstPad * pad, gboolean active);
+gboolean         gst_ghost_pad_internal_activate_pull_default (GstPad * pad, gboolean active);
+
 G_END_DECLS
 
 #endif /* __GST_GHOST_PAD_H__ */
diff --git a/gst/gstminiobject.c b/gst/gstminiobject.c
index 7ad8179..198325e 100644
--- a/gst/gstminiobject.c
+++ b/gst/gstminiobject.c
@@ -45,8 +45,8 @@
 static GstAllocTrace *_gst_mini_object_trace;
 #endif
 
-#define GST_MINI_OBJECT_GET_CLASS_UNCHECKED(obj) \
-    ((GstMiniObjectClass *) (((GTypeInstance*)(obj))->g_class))
+/* Mutex used for weak referencing */
+G_LOCK_DEFINE_STATIC (weak_refs_mutex);
 
 /* boxed copy and free functions. Don't real copy or free but simply
  * change the refcount */
@@ -109,6 +109,8 @@
   mini_object->refcount = 1;
   mini_object->flags = 0;
   mini_object->size = size;
+  mini_object->n_weak_refs = 0;
+  mini_object->weak_refs = NULL;
 }
 
 /**
@@ -223,6 +225,16 @@
   return mini_object;
 }
 
+static void
+weak_refs_notify (GstMiniObject * obj)
+{
+  guint i;
+
+  for (i = 0; i < obj->n_weak_refs; i++)
+    obj->weak_refs[i].notify (obj->weak_refs[i].data, obj);
+  g_free (obj->weak_refs);
+}
+
 /**
  * gst_mini_object_unref:
  * @mini_object: the mini-object
@@ -253,6 +265,10 @@
     /* decrement the refcount again, if the subclass recycled the object we don't
      * want to free the instance anymore */
     if (G_LIKELY (g_atomic_int_dec_and_test (&mini_object->refcount))) {
+      /* The weak reference stack is freed in the notification function */
+      if (mini_object->n_weak_refs)
+        weak_refs_notify (mini_object);
+
 #ifndef GST_DISABLE_TRACE
       gst_alloc_trace_free (_gst_mini_object_trace, mini_object);
 #endif
@@ -299,3 +315,95 @@
   if (olddata_val)
     gst_mini_object_unref (olddata_val);
 }
+
+/**
+ * gst_mini_object_weak_ref: (skip)
+ * @mini_object: #GstMiniObject to reference weakly
+ * @notify: callback to invoke before the mini object is freed
+ * @data: extra data to pass to notify
+ *
+ * Adds a weak reference callback to a mini object. Weak references are
+ * used for notification when a mini object is finalized. They are called
+ * "weak references" because they allow you to safely hold a pointer
+ * to the mini object without calling gst_mini_object_ref()
+ * (gst_mini_object_ref() adds a strong reference, that is, forces the object
+ * to stay alive).
+ *
+ * Since: 0.10.35
+ */
+void
+gst_mini_object_weak_ref (GstMiniObject * object,
+    GstMiniObjectWeakNotify notify, gpointer data)
+{
+  guint i;
+
+  g_return_if_fail (object != NULL);
+  g_return_if_fail (notify != NULL);
+  g_return_if_fail (GST_MINI_OBJECT_REFCOUNT_VALUE (object) >= 1);
+
+  G_LOCK (weak_refs_mutex);
+
+  if (object->n_weak_refs) {
+    /* Don't add the weak reference if it already exists. */
+    for (i = 0; i < object->n_weak_refs; i++) {
+      if (object->weak_refs[i].notify == notify &&
+          object->weak_refs[i].data == data) {
+        g_warning ("%s: Attempt to re-add existing weak ref %p(%p) failed.",
+            G_STRFUNC, notify, data);
+        goto found;
+      }
+    }
+
+    i = object->n_weak_refs++;
+    object->weak_refs =
+        g_realloc (object->weak_refs, sizeof (object->weak_refs[0]) * i);
+  } else {
+    object->weak_refs = g_malloc0 (sizeof (object->weak_refs[0]));
+    object->n_weak_refs = 1;
+    i = 0;
+  }
+  object->weak_refs[i].notify = notify;
+  object->weak_refs[i].data = data;
+found:
+  G_UNLOCK (weak_refs_mutex);
+}
+
+/**
+ * gst_mini_object_weak_unref: (skip)
+ * @mini_object: #GstMiniObject to remove a weak reference from
+ * @notify: callback to search for
+ * @data: data to search for
+ *
+ * Removes a weak reference callback to a mini object.
+ *
+ * Since: 0.10.35
+ */
+void
+gst_mini_object_weak_unref (GstMiniObject * object,
+    GstMiniObjectWeakNotify notify, gpointer data)
+{
+  gboolean found_one = FALSE;
+
+  g_return_if_fail (object != NULL);
+  g_return_if_fail (notify != NULL);
+
+  G_LOCK (weak_refs_mutex);
+
+  if (object->n_weak_refs) {
+    guint i;
+
+    for (i = 0; i < object->n_weak_refs; i++)
+      if (object->weak_refs[i].notify == notify &&
+          object->weak_refs[i].data == data) {
+        found_one = TRUE;
+        object->n_weak_refs -= 1;
+        if (i != object->n_weak_refs)
+          object->weak_refs[i] = object->weak_refs[object->n_weak_refs];
+
+        break;
+      }
+  }
+  G_UNLOCK (weak_refs_mutex);
+  if (!found_one)
+    g_warning ("%s: couldn't find weak ref %p(%p)", G_STRFUNC, notify, data);
+}
diff --git a/gst/gstminiobject.h b/gst/gstminiobject.h
index fe0a1aa..ff69eb6 100644
--- a/gst/gstminiobject.h
+++ b/gst/gstminiobject.h
@@ -65,6 +65,22 @@
  */
 typedef void (*GstMiniObjectFreeFunction) (GstMiniObject *obj);
 
+ /**
+ * GstMiniObjectWeakNotify:
+ * @data: data that was provided when the weak reference was established
+ * @where_the_mini_object_was: the mini object being finalized
+ * 
+ * A #GstMiniObjectWeakNotify function can be added to a mini object as a
+ * callback that gets triggered when the mini object is finalized. Since the
+ * mini object is already being finalized when the #GstMiniObjectWeakNotify is
+ * called, there's not much you could do with the object, apart from e.g. using
+ * its adress as hash-index or the like.
+ *
+ * Since: 0.10.35
+ */
+typedef void (*GstMiniObjectWeakNotify) (gpointer data,
+    GstMiniObject * where_the_mini_object_was);
+
 /**
  * GST_MINI_OBJECT_FLAGS:
  * @obj: MiniObject to return flags for.
@@ -165,6 +181,15 @@
   GstMiniObjectCopyFunction copy;
   GstMiniObjectDisposeFunction dispose;
   GstMiniObjectFreeFunction free;
+
+  /* < private > */
+  /* Used to keep track of weak ref notifies */
+  guint n_weak_refs;
+  struct
+  {
+    GstMiniObjectWeakNotify notify;
+    gpointer data;
+  } *weak_refs;
 };
 
 GType           gst_mini_object_register        (const gchar *name);
@@ -180,6 +205,13 @@
 GstMiniObject*	gst_mini_object_ref		(GstMiniObject *mini_object);
 void		gst_mini_object_unref		(GstMiniObject *mini_object);
 
+void	        gst_mini_object_weak_ref        (GstMiniObject *object,
+					         GstMiniObjectWeakNotify notify,
+					         gpointer data);
+void	        gst_mini_object_weak_unref	(GstMiniObject *object,
+					         GstMiniObjectWeakNotify notify,
+					         gpointer data);
+
 void		gst_mini_object_replace         (GstMiniObject **olddata, GstMiniObject *newdata);
 
 
diff --git a/gst/gstsystemclock.c b/gst/gstsystemclock.c
index 45d1269..fbd4c3b 100644
--- a/gst/gstsystemclock.c
+++ b/gst/gstsystemclock.c
@@ -326,9 +326,16 @@
   if (sysclock->priv->wakeup_count == 0) {
     GST_CAT_DEBUG (GST_CAT_CLOCK, "writing control");
     while (!gst_poll_write_control (sysclock->priv->timer)) {
-      g_warning
-          ("gstsystemclock: write control failed in wakeup_async, trying again : %d:%s\n",
-          errno, g_strerror (errno));
+      if (errno == EAGAIN || errno == EWOULDBLOCK || errno == EINTR) {
+        g_warning
+            ("gstsystemclock: write control failed in wakeup_async, trying again: %d:%s\n",
+            errno, g_strerror (errno));
+      } else {
+        g_critical
+            ("gstsystemclock: write control failed in wakeup_async: %d:%s\n",
+            errno, g_strerror (errno));
+        return;
+      }
     }
   }
   sysclock->priv->wakeup_count++;
diff --git a/gstreamer.doap b/gstreamer.doap
index 041e8f3..807322b 100644
--- a/gstreamer.doap
+++ b/gstreamer.doap
@@ -40,6 +40,28 @@
 
  <release>
   <Version>
+   <revision>0.10.34</revision>
+   <branch>0.10</branch>
+   <name>Misfits</name>
+   <created>2011-05-13</created>
+   <file-release rdf:resource="http://gstreamer.freedesktop.org/src/gstreamer/gstreamer-0.10.34.tar.bz2" />
+   <file-release rdf:resource="http://gstreamer.freedesktop.org/src/gstreamer/gstreamer-0.10.34.tar.gz" />
+  </Version>
+ </release>
+
+ <release>
+  <Version>
+   <revision>0.10.33</revision>
+   <branch>0.10</branch>
+   <name>Prior Spaceflight Experience is an Advantage</name>
+   <created>2011-05-10</created>
+   <file-release rdf:resource="http://gstreamer.freedesktop.org/src/gstreamer/gstreamer-0.10.33.tar.bz2" />
+   <file-release rdf:resource="http://gstreamer.freedesktop.org/src/gstreamer/gstreamer-0.10.33.tar.gz" />
+  </Version>
+ </release>
+
+ <release>
+  <Version>
    <revision>0.10.32</revision>
    <branch>0.10</branch>
    <name>Take Me to the Bonus Level</name>
diff --git a/libs/gst/base/gstbasesrc.c b/libs/gst/base/gstbasesrc.c
index 7c3407b..88b06e3 100644
--- a/libs/gst/base/gstbasesrc.c
+++ b/libs/gst/base/gstbasesrc.c
@@ -2112,7 +2112,7 @@
 
   /* no timestamp set and we are at offset 0, we can timestamp with 0 */
   if (offset == 0 && src->segment.time == 0
-      && GST_BUFFER_TIMESTAMP (*buf) == -1) {
+      && GST_BUFFER_TIMESTAMP (*buf) == -1 && !src->is_live) {
     *buf = gst_buffer_make_writable (*buf);
     GST_BUFFER_TIMESTAMP (*buf) = 0;
   }
diff --git a/plugins/elements/gstinputselector.c b/plugins/elements/gstinputselector.c
index 661557b..3e11605 100644
--- a/plugins/elements/gstinputselector.c
+++ b/plugins/elements/gstinputselector.c
@@ -95,9 +95,12 @@
 {
   PROP_0,
   PROP_N_PADS,
-  PROP_ACTIVE_PAD
+  PROP_ACTIVE_PAD,
+  PROP_SYNC_STREAMS
 };
 
+#define DEFAULT_SYNC_STREAMS FALSE
+
 #define DEFAULT_PAD_ALWAYS_OK TRUE
 
 enum
@@ -520,6 +523,105 @@
   return self->flushing;
 }
 
+/* must be called with the SELECTOR_LOCK, will block until the running time
+ * of the active pad is after this pad or return TRUE when flushing */
+static gboolean
+gst_input_selector_wait_running_time (GstInputSelector * sel,
+    GstSelectorPad * pad, GstBuffer * buf)
+{
+  GstPad *active_sinkpad;
+  GstSelectorPad *active_selpad;
+  GstSegment *seg, *active_seg;
+  GstClockTime running_time, active_running_time = -1;
+
+  seg = &pad->segment;
+
+  active_sinkpad =
+      gst_input_selector_activate_sinkpad (sel, GST_PAD_CAST (pad));
+  active_selpad = GST_SELECTOR_PAD_CAST (active_sinkpad);
+  active_seg = &active_selpad->segment;
+
+  /* We can only sync if the segments are in time format or
+   * if the active pad had no newsegment event yet */
+  if (seg->format != GST_FORMAT_TIME ||
+      (active_seg->format != GST_FORMAT_TIME
+          && active_seg->format != GST_FORMAT_UNDEFINED))
+    return FALSE;
+
+  /* If we have no valid timestamp we can't sync this buffer */
+  if (!GST_BUFFER_TIMESTAMP_IS_VALID (buf))
+    return FALSE;
+
+  running_time = GST_BUFFER_TIMESTAMP (buf);
+  /* If possible try to get the running time at the end of the buffer */
+  if (GST_BUFFER_DURATION_IS_VALID (buf))
+    running_time += GST_BUFFER_DURATION (buf);
+  if (running_time > seg->stop)
+    running_time = seg->stop;
+  running_time =
+      gst_segment_to_running_time (seg, GST_FORMAT_TIME, running_time);
+  /* If this is outside the segment don't sync */
+  if (running_time == -1)
+    return FALSE;
+
+  /* Get active pad's running time, if no configured segment yet keep at -1 */
+  if (active_seg->format == GST_FORMAT_TIME)
+    active_running_time =
+        gst_segment_to_running_time (active_seg, GST_FORMAT_TIME,
+        active_seg->position);
+
+  /* Wait until
+   *   a) this is the active pad
+   *   b) the pad or the selector is flushing
+   *   c) the selector is not blocked
+   *   d) the active pad has no running time or the active
+   *      pad's running time is before this running time
+   *   e) the active pad has a non-time segment
+   */
+  while (pad != active_selpad && !sel->flushing && !pad->flushing &&
+      (sel->blocked || active_running_time == -1
+          || running_time >= active_running_time)) {
+    if (!sel->blocked)
+      GST_DEBUG_OBJECT (pad,
+          "Waiting for active streams to advance. %" GST_TIME_FORMAT " >= %"
+          GST_TIME_FORMAT, GST_TIME_ARGS (running_time),
+          GST_TIME_ARGS (active_running_time));
+
+    GST_INPUT_SELECTOR_WAIT (sel);
+
+    /* Get new active pad, it might have changed */
+    active_sinkpad =
+        gst_input_selector_activate_sinkpad (sel, GST_PAD_CAST (pad));
+    active_selpad = GST_SELECTOR_PAD_CAST (active_sinkpad);
+    active_seg = &active_selpad->segment;
+
+    /* If the active segment is configured but not to time format
+     * we can't do any syncing at all */
+    if (active_seg->format != GST_FORMAT_TIME
+        && active_seg->format != GST_FORMAT_UNDEFINED)
+      break;
+
+    /* Get the new active pad running time */
+    if (active_seg->format == GST_FORMAT_TIME)
+      active_running_time =
+          gst_segment_to_running_time (active_seg, GST_FORMAT_TIME,
+          active_seg->position);
+    else
+      active_running_time = -1;
+
+    if (!sel->blocked)
+      GST_DEBUG_OBJECT (pad,
+          "Waited for active streams to advance. %" GST_TIME_FORMAT " >= %"
+          GST_TIME_FORMAT, GST_TIME_ARGS (running_time),
+          GST_TIME_ARGS (active_running_time));
+
+  }
+
+  /* Return TRUE if the selector or the pad is flushing */
+  return (sel->flushing || pad->flushing);
+}
+
+
 static GstFlowReturn
 gst_selector_pad_chain (GstPad * pad, GstBuffer * buf)
 {
@@ -549,6 +651,16 @@
   prev_active_sinkpad = sel->active_sinkpad;
   active_sinkpad = gst_input_selector_activate_sinkpad (sel, pad);
 
+  /* In sync mode wait until the active pad has advanced
+   * after the running time of the current buffer */
+  if (sel->sync_streams && active_sinkpad != pad) {
+    if (gst_input_selector_wait_running_time (sel, selpad, buf))
+      goto flushing;
+  }
+
+  /* Might have changed while waiting */
+  active_sinkpad = gst_input_selector_activate_sinkpad (sel, pad);
+
   /* update the segment on the srcpad */
   start_time = GST_BUFFER_TIMESTAMP (buf);
   if (GST_CLOCK_TIME_IS_VALID (start_time)) {
@@ -567,6 +679,10 @@
   if (pad != active_sinkpad)
     goto ignore;
 
+  /* Tell all non-active pads that we advanced the running time */
+  if (sel->sync_streams)
+    GST_INPUT_SELECTOR_BROADCAST (sel);
+
   /* if we have a pending segment, push it out now */
   if (G_UNLIKELY (selpad->segment_pending)) {
     GST_DEBUG_OBJECT (pad,
@@ -764,6 +880,21 @@
           G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS));
 
   /**
+   * GstInputSelector:sync-streams
+   *
+   * If set to %TRUE all inactive streams will be synced to the
+   * running time of the active stream. This makes sure that no
+   * buffers are dropped by input-selector that might be needed
+   * when switching the active pad.
+   *
+   * Since: 0.10.35
+   */
+  g_object_class_install_property (gobject_class, PROP_SYNC_STREAMS,
+      g_param_spec_boolean ("sync-streams", "Sync Streams",
+          "Synchronize inactive streams to the running time of the active stream",
+          DEFAULT_SYNC_STREAMS, G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS));
+
+  /**
    * GstInputSelector::block:
    * @inputselector: the #GstInputSelector
    *
@@ -864,6 +995,7 @@
   sel->active_sinkpad = NULL;
   sel->padcount = 0;
   gst_segment_init (&sel->segment, GST_FORMAT_UNDEFINED);
+  sel->sync_streams = DEFAULT_SYNC_STREAMS;
 
   sel->lock = g_mutex_new ();
   sel->cond = g_cond_new ();
@@ -979,6 +1111,12 @@
 
   active_pad_p = &self->active_sinkpad;
   gst_object_replace ((GstObject **) active_pad_p, GST_OBJECT_CAST (pad));
+
+  /* Wake up all non-active pads in sync mode, they might be
+   * the active pad now */
+  if (self->sync_streams)
+    GST_INPUT_SELECTOR_BROADCAST (self);
+
   GST_DEBUG_OBJECT (self, "New active pad is %" GST_PTR_FORMAT,
       self->active_sinkpad);
 
@@ -1004,6 +1142,13 @@
       GST_INPUT_SELECTOR_UNLOCK (sel);
       break;
     }
+    case PROP_SYNC_STREAMS:
+    {
+      GST_INPUT_SELECTOR_LOCK (sel);
+      sel->sync_streams = g_value_get_boolean (value);
+      GST_INPUT_SELECTOR_UNLOCK (sel);
+      break;
+    }
     default:
       G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec);
       break;
@@ -1027,6 +1172,11 @@
       g_value_set_object (value, sel->active_sinkpad);
       GST_INPUT_SELECTOR_UNLOCK (object);
       break;
+    case PROP_SYNC_STREAMS:
+      GST_INPUT_SELECTOR_LOCK (object);
+      g_value_set_boolean (value, sel->sync_streams);
+      GST_INPUT_SELECTOR_UNLOCK (object);
+      break;
     default:
       G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec);
       break;
diff --git a/plugins/elements/gstinputselector.h b/plugins/elements/gstinputselector.h
index 0ed7a4b..f370999 100644
--- a/plugins/elements/gstinputselector.h
+++ b/plugins/elements/gstinputselector.h
@@ -56,6 +56,7 @@
   GstPad *active_sinkpad;
   guint n_pads;
   guint padcount;
+  gboolean sync_streams;
 
   GstSegment segment;      /* the output segment */
   gboolean pending_close;  /* if we should push a close first */
diff --git a/plugins/elements/gstmultiqueue.c b/plugins/elements/gstmultiqueue.c
index 3139df3..233225d 100644
--- a/plugins/elements/gstmultiqueue.c
+++ b/plugins/elements/gstmultiqueue.c
@@ -156,6 +156,8 @@
   guint32 nextid;               /* ID of the next object waiting to be pushed */
   guint32 oldid;                /* ID of the last object pushed (last in a series) */
   guint32 last_oldid;           /* Previously observed old_id, reset to MAXUINT32 on flush */
+  GstClockTime next_time;       /* End running time of next buffer to be pushed */
+  GstClockTime last_time;       /* Start running time of last pushed buffer */
   GCond *turn;                  /* SingleQueue turn waiting conditional */
 };
 
@@ -179,6 +181,7 @@
 
 static void wake_up_next_non_linked (GstMultiQueue * mq);
 static void compute_high_id (GstMultiQueue * mq);
+static void compute_high_time (GstMultiQueue * mq);
 static void single_queue_overrun_cb (GstDataQueue * dq, GstSingleQueue * sq);
 static void single_queue_underrun_cb (GstDataQueue * dq, GstSingleQueue * sq);
 
@@ -224,6 +227,7 @@
 #define DEFAULT_USE_BUFFERING FALSE
 #define DEFAULT_LOW_PERCENT   10
 #define DEFAULT_HIGH_PERCENT  99
+#define DEFAULT_SYNC_BY_RUNNING_TIME FALSE
 
 enum
 {
@@ -237,6 +241,7 @@
   PROP_USE_BUFFERING,
   PROP_LOW_PERCENT,
   PROP_HIGH_PERCENT,
+  PROP_SYNC_BY_RUNNING_TIME,
   PROP_LAST
 };
 
@@ -382,6 +387,22 @@
           "High threshold for buffering to finish", 0, 100,
           DEFAULT_HIGH_PERCENT, G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS));
 
+  /**
+   * GstMultiQueue:sync-by-running-time
+   * 
+   * If enabled multiqueue will synchronize deactivated or not-linked streams
+   * to the activated and linked streams by taking the running time.
+   * Otherwise multiqueue will synchronize the deactivated or not-linked
+   * streams by keeping the order in which buffers and events arrived compared
+   * to active and linked streams.
+   *
+   * Since: 0.10.35
+   */
+  g_object_class_install_property (gobject_class, PROP_SYNC_BY_RUNNING_TIME,
+      g_param_spec_boolean ("sync-by-running-time", "Sync By Running Time",
+          "Synchronize deactivated or not-linked streams by running time",
+          DEFAULT_SYNC_BY_RUNNING_TIME,
+          G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS));
 
   gobject_class->finalize = gst_multi_queue_finalize;
 
@@ -419,8 +440,11 @@
   mqueue->low_percent = DEFAULT_LOW_PERCENT;
   mqueue->high_percent = DEFAULT_HIGH_PERCENT;
 
+  mqueue->sync_by_running_time = DEFAULT_SYNC_BY_RUNNING_TIME;
+
   mqueue->counter = 1;
   mqueue->highid = -1;
+  mqueue->high_time = GST_CLOCK_TIME_NONE;
 
   mqueue->qlock = g_mutex_new ();
 }
@@ -493,6 +517,9 @@
     case PROP_HIGH_PERCENT:
       mq->high_percent = g_value_get_int (value);
       break;
+    case PROP_SYNC_BY_RUNNING_TIME:
+      mq->sync_by_running_time = g_value_get_boolean (value);
+      break;
     default:
       G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec);
       break;
@@ -535,6 +562,9 @@
     case PROP_HIGH_PERCENT:
       g_value_set_int (value, mq->high_percent);
       break;
+    case PROP_SYNC_BY_RUNNING_TIME:
+      g_value_set_boolean (value, mq->sync_by_running_time);
+      break;
     default:
       G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec);
       break;
@@ -737,8 +767,15 @@
     sq->nextid = 0;
     sq->oldid = 0;
     sq->last_oldid = G_MAXUINT32;
+    sq->next_time = GST_CLOCK_TIME_NONE;
+    sq->last_time = GST_CLOCK_TIME_NONE;
     gst_data_queue_set_flushing (sq->queue, FALSE);
 
+    /* Reset high time to be recomputed next */
+    GST_MULTI_QUEUE_MUTEX_LOCK (mq);
+    mq->high_time = GST_CLOCK_TIME_NONE;
+    GST_MULTI_QUEUE_MUTEX_UNLOCK (mq);
+
     sq->flushing = FALSE;
 
     GST_LOG_OBJECT (mq, "SingleQueue %d : starting task", sq->id);
@@ -932,6 +969,63 @@
   GST_MULTI_QUEUE_MUTEX_UNLOCK (mq);
 }
 
+static GstClockTime
+get_running_time (GstSegment * segment, GstMiniObject * object, gboolean end)
+{
+  GstClockTime time = GST_CLOCK_TIME_NONE;
+
+  if (GST_IS_BUFFER (object)) {
+    GstBuffer *buf = GST_BUFFER_CAST (object);
+
+    if (GST_BUFFER_TIMESTAMP_IS_VALID (buf)) {
+      time = GST_BUFFER_TIMESTAMP (buf);
+      if (end && GST_BUFFER_DURATION_IS_VALID (buf))
+        time += GST_BUFFER_DURATION (buf);
+      if (time > segment->stop)
+        time = segment->stop;
+      time = gst_segment_to_running_time (segment, GST_FORMAT_TIME, time);
+    }
+  } else if (GST_IS_BUFFER_LIST (object)) {
+    GstBufferList *list = GST_BUFFER_LIST_CAST (object);
+    gint i, n;
+    GstBuffer *buf;
+
+    n = gst_buffer_list_len (list);
+    for (i = 0; i < n; i++) {
+      buf = gst_buffer_list_get (list, i);
+      if (GST_BUFFER_TIMESTAMP_IS_VALID (buf)) {
+        time = GST_BUFFER_TIMESTAMP (buf);
+        if (end && GST_BUFFER_DURATION_IS_VALID (buf))
+          time += GST_BUFFER_DURATION (buf);
+        if (time > segment->stop)
+          time = segment->stop;
+        time = gst_segment_to_running_time (segment, GST_FORMAT_TIME, time);
+        if (!end)
+          goto done;
+      } else if (!end) {
+        goto done;
+      }
+    }
+  } else if (GST_IS_EVENT (object)) {
+    GstEvent *event = GST_EVENT_CAST (object);
+
+    /* For newsegment events return the running time of the start position */
+    if (GST_EVENT_TYPE (event) == GST_EVENT_SEGMENT) {
+      GstSegment new_segment = *segment;
+
+      gst_event_parse_segment (event, &new_segment);
+      if (new_segment.format == GST_FORMAT_TIME) {
+        time =
+            gst_segment_to_running_time (&new_segment, GST_FORMAT_TIME,
+            new_segment.start);
+      }
+    }
+  }
+
+done:
+  return time;
+}
+
 static GstFlowReturn
 gst_single_queue_push_one (GstMultiQueue * mq, GstSingleQueue * sq,
     GstMiniObject * object)
@@ -1070,6 +1164,7 @@
   GstMiniObject *object = NULL;
   guint32 newid;
   GstFlowReturn result;
+  GstClockTime next_time;
 
   sq = (GstSingleQueue *) gst_pad_get_element_private (pad);
   mq = sq->mqueue;
@@ -1091,6 +1186,9 @@
   object = gst_multi_queue_item_steal_object (item);
   gst_multi_queue_item_destroy (item);
 
+  /* Get running time of the item. Events will have GST_CLOCK_TIME_NONE */
+  next_time = get_running_time (&sq->src_segment, object, TRUE);
+
   GST_LOG_OBJECT (mq, "SingleQueue %d : newid:%d , oldid:%d",
       sq->id, newid, sq->last_oldid);
 
@@ -1099,9 +1197,9 @@
    * or it's the first loop, or we just passed the previous highid, 
    * we might need to wake some sleeping pad up, so there's extra work 
    * there too */
-  if (sq->srcresult == GST_FLOW_NOT_LINKED ||
-      (sq->last_oldid == G_MAXUINT32) || (newid != (sq->last_oldid + 1)) ||
-      sq->last_oldid > mq->highid) {
+  if (sq->srcresult == GST_FLOW_NOT_LINKED
+      || (sq->last_oldid == G_MAXUINT32) || (newid != (sq->last_oldid + 1))
+      || sq->last_oldid > mq->highid) {
     GST_LOG_OBJECT (mq, "CHECKING sq->srcresult: %s",
         gst_flow_get_name (sq->srcresult));
 
@@ -1116,6 +1214,7 @@
 
     /* Update the nextid so other threads know when to wake us up */
     sq->nextid = newid;
+    sq->next_time = next_time;
 
     /* Update the oldid (the last ID we output) for highid tracking */
     if (sq->last_oldid != G_MAXUINT32)
@@ -1126,10 +1225,20 @@
 
       /* Recompute the highid */
       compute_high_id (mq);
-      while (newid > mq->highid && sq->srcresult == GST_FLOW_NOT_LINKED) {
-        GST_DEBUG_OBJECT (mq, "queue %d sleeping for not-linked wakeup with "
-            "newid %u and highid %u", sq->id, newid, mq->highid);
+      /* Recompute the high time */
+      compute_high_time (mq);
 
+      while (((mq->sync_by_running_time && next_time != GST_CLOCK_TIME_NONE &&
+                  (mq->high_time == GST_CLOCK_TIME_NONE
+                      || next_time >= mq->high_time))
+              || (!mq->sync_by_running_time && newid > mq->highid))
+          && sq->srcresult == GST_FLOW_NOT_LINKED) {
+
+        GST_DEBUG_OBJECT (mq,
+            "queue %d sleeping for not-linked wakeup with "
+            "newid %u, highid %u, next_time %" GST_TIME_FORMAT
+            ", high_time %" GST_TIME_FORMAT, sq->id, newid, mq->highid,
+            GST_TIME_ARGS (next_time), GST_TIME_ARGS (mq->high_time));
 
         /* Wake up all non-linked pads before we sleep */
         wake_up_next_non_linked (mq);
@@ -1143,8 +1252,13 @@
           goto out_flushing;
         }
 
+        /* Recompute the high time */
+        compute_high_time (mq);
+
         GST_DEBUG_OBJECT (mq, "queue %d woken from sleeping for not-linked "
-            "wakeup with newid %u and highid %u", sq->id, newid, mq->highid);
+            "wakeup with newid %u, highid %u, next_time %" GST_TIME_FORMAT
+            ", high_time %" GST_TIME_FORMAT, sq->id, newid, mq->highid,
+            GST_TIME_ARGS (next_time), GST_TIME_ARGS (mq->high_time));
       }
 
       /* Re-compute the high_id in case someone else pushed */
@@ -1154,8 +1268,9 @@
       /* Wake up all non-linked pads */
       wake_up_next_non_linked (mq);
     }
-    /* We're done waiting, we can clear the nextid */
+    /* We're done waiting, we can clear the nextid and nexttime */
     sq->nextid = 0;
+    sq->next_time = GST_CLOCK_TIME_NONE;
 
     GST_MULTI_QUEUE_MUTEX_UNLOCK (mq);
   }
@@ -1166,6 +1281,18 @@
   GST_LOG_OBJECT (mq, "BEFORE PUSHING sq->srcresult: %s",
       gst_flow_get_name (sq->srcresult));
 
+  /* Update time stats */
+  next_time = get_running_time (&sq->src_segment, object, FALSE);
+  if (next_time != GST_CLOCK_TIME_NONE) {
+    if (sq->last_time == GST_CLOCK_TIME_NONE || sq->last_time < next_time)
+      sq->last_time = next_time;
+    if (mq->high_time == GST_CLOCK_TIME_NONE || mq->high_time <= next_time) {
+      /* Wake up all non-linked pads now that we advanceed the high time */
+      mq->high_time = next_time;
+      wake_up_next_non_linked (mq);
+    }
+  }
+
   /* Try to push out the new object */
   result = gst_single_queue_push_one (mq, sq, object);
   sq->srcresult = result;
@@ -1179,6 +1306,7 @@
       gst_flow_get_name (sq->srcresult));
 
   sq->last_oldid = newid;
+
   return;
 
 out_flushing:
@@ -1499,7 +1627,10 @@
     GstSingleQueue *sq = (GstSingleQueue *) tmp->data;
 
     if (sq->srcresult == GST_FLOW_NOT_LINKED) {
-      if (sq->nextid != 0 && sq->nextid <= mq->highid) {
+      if ((mq->sync_by_running_time && mq->high_time != GST_CLOCK_TIME_NONE
+              && sq->next_time != GST_CLOCK_TIME_NONE
+              && sq->next_time >= mq->high_time)
+          || (sq->nextid != 0 && sq->nextid <= mq->highid)) {
         GST_LOG_OBJECT (mq, "Waking up singlequeue %d", sq->id);
         g_cond_signal (sq->turn);
       }
@@ -1550,6 +1681,49 @@
       lowest);
 }
 
+/* WITH LOCK TAKEN */
+static void
+compute_high_time (GstMultiQueue * mq)
+{
+  /* The high-id is either the highest id among the linked pads, or if all
+   * pads are not-linked, it's the lowest not-linked pad */
+  GList *tmp;
+  GstClockTime highest = GST_CLOCK_TIME_NONE;
+  GstClockTime lowest = GST_CLOCK_TIME_NONE;
+
+  for (tmp = mq->queues; tmp; tmp = g_list_next (tmp)) {
+    GstSingleQueue *sq = (GstSingleQueue *) tmp->data;
+
+    GST_LOG_OBJECT (mq,
+        "inspecting sq:%d , next_time:%" GST_TIME_FORMAT ", last_time:%"
+        GST_TIME_FORMAT ", srcresult:%s", sq->id, GST_TIME_ARGS (sq->next_time),
+        GST_TIME_ARGS (sq->last_time), gst_flow_get_name (sq->srcresult));
+
+    if (sq->srcresult == GST_FLOW_NOT_LINKED) {
+      /* No need to consider queues which are not waiting */
+      if (sq->next_time == GST_CLOCK_TIME_NONE) {
+        GST_LOG_OBJECT (mq, "sq:%d is not waiting - ignoring", sq->id);
+        continue;
+      }
+
+      if (lowest == GST_CLOCK_TIME_NONE || sq->next_time < lowest)
+        lowest = sq->next_time;
+    } else if (sq->srcresult != GST_FLOW_UNEXPECTED) {
+      /* If we don't have a global highid, or the global highid is lower than
+       * this single queue's last outputted id, store the queue's one, 
+       * unless the singlequeue is at EOS (srcresult = UNEXPECTED) */
+      if (highest == GST_CLOCK_TIME_NONE || sq->last_time > highest)
+        highest = sq->last_time;
+    }
+  }
+
+  mq->high_time = highest;
+
+  GST_LOG_OBJECT (mq,
+      "High time is now : %" GST_TIME_FORMAT ", lowest non-linked %"
+      GST_TIME_FORMAT, GST_TIME_ARGS (mq->high_time), GST_TIME_ARGS (lowest));
+}
+
 #define IS_FILLED(q, format, value) (((q)->max_size.format) != 0 && \
      ((q)->max_size.format) <= (value))
 
@@ -1738,8 +1912,6 @@
   sq->extra_size.bytes = mqueue->extra_size.bytes;
   sq->extra_size.time = mqueue->extra_size.time;
 
-  GST_MULTI_QUEUE_MUTEX_UNLOCK (mqueue);
-
   GST_DEBUG_OBJECT (mqueue, "Creating GstSingleQueue id:%d", sq->id);
 
   sq->mqueue = mqueue;
@@ -1755,6 +1927,8 @@
 
   sq->nextid = 0;
   sq->oldid = 0;
+  sq->next_time = GST_CLOCK_TIME_NONE;
+  sq->last_time = GST_CLOCK_TIME_NONE;
   sq->turn = g_cond_new ();
 
   sq->sinktime = GST_CLOCK_TIME_NONE;
@@ -1799,6 +1973,8 @@
   gst_pad_set_element_private (sq->sinkpad, (gpointer) sq);
   gst_pad_set_element_private (sq->srcpad, (gpointer) sq);
 
+  GST_MULTI_QUEUE_MUTEX_UNLOCK (mqueue);
+
   /* only activate the pads when we are not in the NULL state
    * and add the pad under the state_lock to prevend state changes
    * between activating and adding */
diff --git a/plugins/elements/gstmultiqueue.h b/plugins/elements/gstmultiqueue.h
index b9c28cd..bb3d840 100644
--- a/plugins/elements/gstmultiqueue.h
+++ b/plugins/elements/gstmultiqueue.h
@@ -50,6 +50,8 @@
 struct _GstMultiQueue {
   GstElement element;
 
+  gboolean sync_by_running_time;
+
   /* number of queues */
   guint	nbqueues;
 
@@ -65,6 +67,7 @@
 
   guint32  counter;	/* incoming object counter, use atomic accesses */
   guint32  highid;	/* contains highest id of last outputted object */
+  GstClockTime high_time; /* highest start running time */
 
   GMutex * qlock;	/* Global queue lock (vs object lock or individual */
 			/* queues lock). Protects nbqueues, queues, global */
diff --git a/plugins/elements/gstqueue2.c b/plugins/elements/gstqueue2.c
index a1e85ff..7704aec 100644
--- a/plugins/elements/gstqueue2.c
+++ b/plugins/elements/gstqueue2.c
@@ -855,6 +855,7 @@
   queue->bytes_in = 0;
   queue->bytes_out = 0;
   queue->byte_in_rate = 0.0;
+  queue->byte_in_period = 0;
   queue->byte_out_rate = 0.0;
   queue->last_in_elapsed = 0.0;
   queue->last_out_elapsed = 0.0;
@@ -867,8 +868,11 @@
 /* Tuning for rate estimation. We use a large window for the input rate because
  * it should be stable when connected to a network. The output rate is less
  * stable (the elements preroll, queues behind a demuxer fill, ...) and should
- * therefore adapt more quickly. */
-#define AVG_IN(avg,val)  ((avg) * 15.0 + (val)) / 16.0
+ * therefore adapt more quickly.
+ * However, initial input rate may be subject to a burst, and should therefore
+ * initially also adapt more quickly to changes, and only later on give higher
+ * weight to previous values. */
+#define AVG_IN(avg,val,w1,w2)  ((avg) * (w1) + (val) * (w2)) / ((w1) + (w2))
 #define AVG_OUT(avg,val) ((avg) * 3.0 + (val)) / 4.0
 
 static void
@@ -890,14 +894,20 @@
     period = elapsed - queue->last_in_elapsed;
 
     GST_DEBUG_OBJECT (queue,
-        "rates: period %f, in %" G_GUINT64_FORMAT, period, queue->bytes_in);
+        "rates: period %f, in %" G_GUINT64_FORMAT ", global period %f",
+        period, queue->bytes_in, queue->byte_in_period);
 
     byte_in_rate = queue->bytes_in / period;
 
     if (queue->byte_in_rate == 0.0)
       queue->byte_in_rate = byte_in_rate;
     else
-      queue->byte_in_rate = AVG_IN (queue->byte_in_rate, byte_in_rate);
+      queue->byte_in_rate = AVG_IN (queue->byte_in_rate, byte_in_rate,
+          (double) queue->byte_in_period, period);
+
+    /* another data point, cap at 16 for long time running average */
+    if (queue->byte_in_period < 16 * RATE_INTERVAL)
+      queue->byte_in_period += period;
 
     /* reset the values to calculate rate over the next interval */
     queue->last_in_elapsed = elapsed;
diff --git a/plugins/elements/gstqueue2.h b/plugins/elements/gstqueue2.h
index 358b43a..ccbead6 100644
--- a/plugins/elements/gstqueue2.h
+++ b/plugins/elements/gstqueue2.h
@@ -116,6 +116,7 @@
   gdouble last_in_elapsed;
   guint64 bytes_in;
   gdouble byte_in_rate;
+  gdouble byte_in_period;
 
   GTimer *out_timer;
   gboolean out_timer_started;
diff --git a/po/af.po b/po/af.po
index f33ca75..a181e82 100644
--- a/po/af.po
+++ b/po/af.po
@@ -7,7 +7,7 @@
 msgstr ""
 "Project-Id-Version: gstreamer 0.9.7\n"
 "Report-Msgid-Bugs-To: http://bugzilla.gnome.org/\n"
-"POT-Creation-Date: 2011-04-16 14:53+0100\n"
+"POT-Creation-Date: 2011-05-10 08:32+0100\n"
 "PO-Revision-Date: 2005-12-05 11:45+0200\n"
 "Last-Translator: Petri Jooste <rkwjpj@puk.ac.za>\n"
 "Language-Team: Afrikaans <i18n@af.org.za>\n"
diff --git a/po/az.po b/po/az.po
index e5aa7ab..4ce2582 100644
--- a/po/az.po
+++ b/po/az.po
@@ -7,7 +7,7 @@
 msgstr ""
 "Project-Id-Version: gstreamer-0.8.0\n"
 "Report-Msgid-Bugs-To: http://bugzilla.gnome.org/\n"
-"POT-Creation-Date: 2011-04-16 14:53+0100\n"
+"POT-Creation-Date: 2011-05-10 08:32+0100\n"
 "PO-Revision-Date: 2004-03-19 18:40+0200\n"
 "Last-Translator: Metin Amiroff <metin@karegen.com>\n"
 "Language-Team: Azerbaijani <translation-team-az@lists.sourceforge.net>\n"
diff --git a/po/be.po b/po/be.po
index 3653b71..dbd76ab 100644
--- a/po/be.po
+++ b/po/be.po
@@ -6,7 +6,7 @@
 msgstr ""
 "Project-Id-Version: gstreamer 0.9.7\n"
 "Report-Msgid-Bugs-To: http://bugzilla.gnome.org/\n"
-"POT-Creation-Date: 2011-04-16 14:53+0100\n"
+"POT-Creation-Date: 2011-05-10 08:32+0100\n"
 "PO-Revision-Date: 2006-01-18 22:26+0200\n"
 "Last-Translator: Ales Nyakhaychyk <nab@mail.by>\n"
 "Language-Team: Belarusian <i18n@mova.org>\n"
diff --git a/po/bg.po b/po/bg.po
index 0d297fe..4c9489d 100644
--- a/po/bg.po
+++ b/po/bg.po
@@ -8,7 +8,7 @@
 msgstr ""
 "Project-Id-Version: gstreamer 0.10.32.2\n"
 "Report-Msgid-Bugs-To: http://bugzilla.gnome.org/\n"
-"POT-Creation-Date: 2011-04-27 11:27+0100\n"
+"POT-Creation-Date: 2011-05-10 08:32+0100\n"
 "PO-Revision-Date: 2011-04-26 22:40+0300\n"
 "Last-Translator: Alexander Shopov <ash@kambanaria.org>\n"
 "Language-Team: Bulgarian <dict@fsa-bg.org>\n"
diff --git a/po/ca.po b/po/ca.po
index 0e7c959..0edb1bf 100644
--- a/po/ca.po
+++ b/po/ca.po
@@ -7,7 +7,7 @@
 msgstr ""
 "Project-Id-Version: gstreamer 0.10.30.3\n"
 "Report-Msgid-Bugs-To: http://bugzilla.gnome.org/\n"
-"POT-Creation-Date: 2011-04-16 14:53+0100\n"
+"POT-Creation-Date: 2011-05-10 08:32+0100\n"
 "PO-Revision-Date: 2010-11-04 19:41+0100\n"
 "Last-Translator: Jordi Mallach <jordi@sindominio.net>\n"
 "Language-Team: Catalan <ca@dodds.net>\n"
diff --git a/po/cs.po b/po/cs.po
index c4767ae..4e42da6 100644
--- a/po/cs.po
+++ b/po/cs.po
@@ -8,7 +8,7 @@
 msgstr ""
 "Project-Id-Version: gstreamer 0.10.20.3\n"
 "Report-Msgid-Bugs-To: http://bugzilla.gnome.org/\n"
-"POT-Creation-Date: 2011-04-16 14:53+0100\n"
+"POT-Creation-Date: 2011-05-10 08:32+0100\n"
 "PO-Revision-Date: 2008-10-12 12:12+0200\n"
 "Last-Translator: Miloslav Trmac <mitr@volny.cz>\n"
 "Language-Team: Czech <translation-team-cs@lists.sourceforge.net>\n"
diff --git a/po/da.po b/po/da.po
index 5fade0e..813661a 100644
--- a/po/da.po
+++ b/po/da.po
@@ -8,7 +8,7 @@
 msgstr ""
 "Project-Id-Version: gstreamer 0.10.30.3\n"
 "Report-Msgid-Bugs-To: http://bugzilla.gnome.org/\n"
-"POT-Creation-Date: 2011-04-16 14:53+0100\n"
+"POT-Creation-Date: 2011-05-10 08:32+0100\n"
 "PO-Revision-Date: 2010-11-06 22:52+0100\n"
 "Last-Translator: Mogens Jaeger <mogensjaeger@gmail.com>\n"
 "Language-Team: Danish <dansk@dansk-gruppen.dk>\n"
diff --git a/po/de.po b/po/de.po
index daa8371..cc8741a 100644
--- a/po/de.po
+++ b/po/de.po
@@ -9,7 +9,7 @@
 msgstr ""
 "Project-Id-Version: gstreamer 0.10.32.2\n"
 "Report-Msgid-Bugs-To: http://bugzilla.gnome.org/\n"
-"POT-Creation-Date: 2011-04-30 15:35+0100\n"
+"POT-Creation-Date: 2011-05-10 08:32+0100\n"
 "PO-Revision-Date: 2011-04-27 23:44+0200\n"
 "Last-Translator: Christian Kirbach <christian.kirbach@googlemail.com>\n"
 "Language-Team: German <translation-team-de@lists.sourceforge.net>\n"
diff --git a/po/el.po b/po/el.po
index 1aa662b..c4409ca 100644
--- a/po/el.po
+++ b/po/el.po
@@ -6,7 +6,7 @@
 msgstr ""
 "Project-Id-Version: gstreamer-0.10.30.3\n"
 "Report-Msgid-Bugs-To: http://bugzilla.gnome.org/\n"
-"POT-Creation-Date: 2011-04-16 14:53+0100\n"
+"POT-Creation-Date: 2011-05-10 08:32+0100\n"
 "PO-Revision-Date: 2010-11-29 11:14+0200\n"
 "Last-Translator: Michael Kotsarinis <mk73628@gmail.com>\n"
 "Language-Team: Greek <team@lists.gnome.gr>\n"
diff --git a/po/en_GB.po b/po/en_GB.po
index ba81f68..f77ab29 100644
--- a/po/en_GB.po
+++ b/po/en_GB.po
@@ -6,7 +6,7 @@
 msgstr ""
 "Project-Id-Version: gstreamer 0.8.1\n"
 "Report-Msgid-Bugs-To: http://bugzilla.gnome.org/\n"
-"POT-Creation-Date: 2011-04-16 14:53+0100\n"
+"POT-Creation-Date: 2011-05-10 08:32+0100\n"
 "PO-Revision-Date: 2004-04-26 10:36-0400\n"
 "Last-Translator: Gareth Owen <gowen72@yahoo.com>\n"
 "Language-Team: English (British) <en_gb@li.org>\n"
diff --git a/po/es.po b/po/es.po
index 872b03f..c579819 100644
--- a/po/es.po
+++ b/po/es.po
@@ -7,7 +7,7 @@
 msgstr ""
 "Project-Id-Version: gstreamer 0.10.30.3\n"
 "Report-Msgid-Bugs-To: http://bugzilla.gnome.org/\n"
-"POT-Creation-Date: 2011-04-16 14:53+0100\n"
+"POT-Creation-Date: 2011-05-10 08:32+0100\n"
 "PO-Revision-Date: 2010-11-01 18:11+0100\n"
 "Last-Translator: Jorge González González <aloriel@gmail.com>\n"
 "Language-Team: Spanish <es@li.org>\n"
diff --git a/po/eu.po b/po/eu.po
index 663b9d9..529077f 100644
--- a/po/eu.po
+++ b/po/eu.po
@@ -8,7 +8,7 @@
 msgstr ""
 "Project-Id-Version: gstreamer-0.10.26.2\n"
 "Report-Msgid-Bugs-To: http://bugzilla.gnome.org/\n"
-"POT-Creation-Date: 2011-04-16 14:53+0100\n"
+"POT-Creation-Date: 2011-05-10 08:32+0100\n"
 "PO-Revision-Date: 2010-03-25 13:10+0100\n"
 "Last-Translator: Mikel Olasagasti Uranga <hey_neken@mundurat.net>\n"
 "Language-Team: Basque <translation-team-eu@lists.sourceforge.net>\n"
diff --git a/po/fi.po b/po/fi.po
index 2ec7471..1add3ba 100644
--- a/po/fi.po
+++ b/po/fi.po
@@ -12,7 +12,7 @@
 msgstr ""
 "Project-Id-Version: gstreamer 0.10.30.3\n"
 "Report-Msgid-Bugs-To: http://bugzilla.gnome.org/\n"
-"POT-Creation-Date: 2011-04-16 14:53+0100\n"
+"POT-Creation-Date: 2011-05-10 08:32+0100\n"
 "PO-Revision-Date: 2010-11-17 23:10+0200\n"
 "Last-Translator: Tommi Vainikainen <Tommi.Vainikainen@iki.fi>\n"
 "Language-Team: Finnish <translation-team-fi@lists.sourceforge.net>\n"
diff --git a/po/fr.po b/po/fr.po
index 4891afe..9641e77 100644
--- a/po/fr.po
+++ b/po/fr.po
@@ -9,7 +9,7 @@
 msgstr ""
 "Project-Id-Version: gstreamer 0.10.32.2\n"
 "Report-Msgid-Bugs-To: http://bugzilla.gnome.org/\n"
-"POT-Creation-Date: 2011-04-30 15:35+0100\n"
+"POT-Creation-Date: 2011-05-10 08:32+0100\n"
 "PO-Revision-Date: 2011-04-28 09:34+0200\n"
 "Last-Translator: Claude Paroz <claude@2xlibre.net>\n"
 "Language-Team: French <traduc@traduc.org>\n"
diff --git a/po/gl.po b/po/gl.po
index 6bae3e8..a58aec8 100644
--- a/po/gl.po
+++ b/po/gl.po
@@ -6,7 +6,7 @@
 msgstr ""
 "Project-Id-Version: gstreamer 0.10.31.2\n"
 "Report-Msgid-Bugs-To: http://bugzilla.gnome.org/\n"
-"POT-Creation-Date: 2011-04-16 14:53+0100\n"
+"POT-Creation-Date: 2011-05-10 08:32+0100\n"
 "PO-Revision-Date: 2011-04-13 05:19+0000\n"
 "Last-Translator: Francisco Diéguez <frandieguez@ubuntu.com>\n"
 "Language-Team: Galician <proxecto@trasno.net>\n"
diff --git a/po/hu.po b/po/hu.po
index 205af59..74b2fd7 100644
--- a/po/hu.po
+++ b/po/hu.po
@@ -7,7 +7,7 @@
 msgstr ""
 "Project-Id-Version: gstreamer 0.10.30.3\n"
 "Report-Msgid-Bugs-To: http://bugzilla.gnome.org/\n"
-"POT-Creation-Date: 2011-04-16 14:53+0100\n"
+"POT-Creation-Date: 2011-05-10 08:32+0100\n"
 "PO-Revision-Date: 2010-11-01 13:39+0100\n"
 "Last-Translator: Gabor Kelemen <kelemeng@gnome.hu>\n"
 "Language-Team: Hungarian <translation-team-hu@lists.sourceforge.net>\n"
diff --git a/po/id.po b/po/id.po
index 44da03d..ea40ed1 100644
--- a/po/id.po
+++ b/po/id.po
@@ -6,7 +6,7 @@
 msgstr ""
 "Project-Id-Version: gstreamer 0.10.29.2\n"
 "Report-Msgid-Bugs-To: http://bugzilla.gnome.org/\n"
-"POT-Creation-Date: 2011-04-16 14:53+0100\n"
+"POT-Creation-Date: 2011-05-10 08:32+0100\n"
 "PO-Revision-Date: 2010-06-29 21:55+0700\n"
 "Last-Translator: Andhika Padmawan <andhika.padmawan@gmail.com>\n"
 "Language-Team: Indonesian <translation-team-id@lists.sourceforge.net>\n"
diff --git a/po/it.po b/po/it.po
index c041ecf..c48f670 100644
--- a/po/it.po
+++ b/po/it.po
@@ -106,7 +106,7 @@
 msgstr ""
 "Project-Id-Version: gstreamer 0.10.30.3\n"
 "Report-Msgid-Bugs-To: http://bugzilla.gnome.org/\n"
-"POT-Creation-Date: 2011-04-16 14:53+0100\n"
+"POT-Creation-Date: 2011-05-10 08:32+0100\n"
 "PO-Revision-Date: 2010-10-25 10:03+0200\n"
 "Last-Translator: Luca Ferretti <elle.uca@infinito.it>\n"
 "Language-Team: Italian <tp@lists.linux.it>\n"
diff --git a/po/ja.po b/po/ja.po
index 33afbfa..dc0d8c5 100644
--- a/po/ja.po
+++ b/po/ja.po
@@ -6,7 +6,7 @@
 msgstr ""
 "Project-Id-Version: gstreamer 0.10.20.3\n"
 "Report-Msgid-Bugs-To: http://bugzilla.gnome.org/\n"
-"POT-Creation-Date: 2011-04-16 14:53+0100\n"
+"POT-Creation-Date: 2011-05-10 08:32+0100\n"
 "PO-Revision-Date: 2008-10-16 19:57+0900\n"
 "Last-Translator: Makoto Kato <makoto.kt@gmail.com>\n"
 "Language-Team: Japanese <translation-team-ja@lists.sourceforge.net>\n"
diff --git a/po/lt.po b/po/lt.po
index dcd575a..119cf67 100644
--- a/po/lt.po
+++ b/po/lt.po
@@ -7,7 +7,7 @@
 msgstr ""
 "Project-Id-Version: gstreamer 0.10.29.2\n"
 "Report-Msgid-Bugs-To: http://bugzilla.gnome.org/\n"
-"POT-Creation-Date: 2011-04-16 14:53+0100\n"
+"POT-Creation-Date: 2011-05-10 08:32+0100\n"
 "PO-Revision-Date: 2010-07-16 00:50+0300\n"
 "Last-Translator: Žygimantas Beručka <uid0@akl.lt>\n"
 "Language-Team: Lithuanian <komp_lt@konferencijos.lt>\n"
diff --git a/po/nb.po b/po/nb.po
index af44e1c..0fd1f5b 100644
--- a/po/nb.po
+++ b/po/nb.po
@@ -6,7 +6,7 @@
 msgstr ""
 "Project-Id-Version: gstreamer 0.10.30.3\n"
 "Report-Msgid-Bugs-To: http://bugzilla.gnome.org/\n"
-"POT-Creation-Date: 2011-04-16 14:53+0100\n"
+"POT-Creation-Date: 2011-05-10 08:32+0100\n"
 "PO-Revision-Date: 2010-10-24 21:36+0200\n"
 "Last-Translator: Kjartan Maraas <kmaraas@gnome.org>\n"
 "Language-Team: Norwegian Bokmaal <i18n-nb@lister.ping.uio.no>\n"
diff --git a/po/nl.po b/po/nl.po
index beea585..6596549 100644
--- a/po/nl.po
+++ b/po/nl.po
@@ -10,7 +10,7 @@
 msgstr ""
 "Project-Id-Version: gstreamer 0.10.32.2\n"
 "Report-Msgid-Bugs-To: http://bugzilla.gnome.org/\n"
-"POT-Creation-Date: 2011-04-27 11:27+0100\n"
+"POT-Creation-Date: 2011-05-10 08:32+0100\n"
 "PO-Revision-Date: 2011-04-26 23:10+0200\n"
 "Last-Translator: Freek de Kruijf <f.de.kruijf@gmail.com>\n"
 "Language-Team: Dutch <vertaling@vrijschrift.org>\n"
diff --git a/po/pl.po b/po/pl.po
index 5f3860b..aa1e2db 100644
--- a/po/pl.po
+++ b/po/pl.po
@@ -6,7 +6,7 @@
 msgstr ""
 "Project-Id-Version: gstreamer 0.10.32.2\n"
 "Report-Msgid-Bugs-To: http://bugzilla.gnome.org/\n"
-"POT-Creation-Date: 2011-04-27 11:27+0100\n"
+"POT-Creation-Date: 2011-05-10 08:32+0100\n"
 "PO-Revision-Date: 2011-04-26 17:54+0200\n"
 "Last-Translator: Jakub Bogusz <qboosh@pld-linux.org>\n"
 "Language-Team: Polish <translation-team-pl@lists.sourceforge.net>\n"
diff --git a/po/pt_BR.po b/po/pt_BR.po
index f31bb9a..d144759 100644
--- a/po/pt_BR.po
+++ b/po/pt_BR.po
@@ -17,7 +17,7 @@
 msgstr ""
 "Project-Id-Version: gstreamer-0.10.31.2\n"
 "Report-Msgid-Bugs-To: http://bugzilla.gnome.org/\n"
-"POT-Creation-Date: 2011-04-16 14:53+0100\n"
+"POT-Creation-Date: 2011-05-10 08:32+0100\n"
 "PO-Revision-Date: 2011-01-08 01:36-0300\n"
 "Last-Translator: Fabrício Godoy <skarllot@gmail.com>\n"
 "Language-Team: Brazilian Portuguese <ldp-br@bazar.conectiva.com.br>\n"
diff --git a/po/ro.po b/po/ro.po
index a0c0677..e7e7e3f 100644
--- a/po/ro.po
+++ b/po/ro.po
@@ -5,7 +5,7 @@
 msgstr ""
 "Project-Id-Version: gstreamer 0.10.29.2\n"
 "Report-Msgid-Bugs-To: http://bugzilla.gnome.org/\n"
-"POT-Creation-Date: 2011-04-16 14:53+0100\n"
+"POT-Creation-Date: 2011-05-10 08:32+0100\n"
 "PO-Revision-Date: 2010-08-16 01:10+0300\n"
 "Last-Translator: Lucian Adrian Grijincu <lucian.grijincu@gmail.com>\n"
 "Language-Team: Romanian <translation-team-ro@lists.sourceforge.net>\n"
diff --git a/po/ru.po b/po/ru.po
index 1ad44b1..2300900 100644
--- a/po/ru.po
+++ b/po/ru.po
@@ -9,7 +9,7 @@
 msgstr ""
 "Project-Id-Version: gstreamer-0.10.32.2\n"
 "Report-Msgid-Bugs-To: http://bugzilla.gnome.org/\n"
-"POT-Creation-Date: 2011-04-27 11:27+0100\n"
+"POT-Creation-Date: 2011-05-10 08:32+0100\n"
 "PO-Revision-Date: 2011-04-26 20:25+0400\n"
 "Last-Translator: Yuri Kozlov <yuray@komyakino.ru>\n"
 "Language-Team: Russian <gnu@mx.ru>\n"
diff --git a/po/rw.po b/po/rw.po
index 8818bc8..6200b2f 100644
--- a/po/rw.po
+++ b/po/rw.po
@@ -15,7 +15,7 @@
 msgstr ""
 "Project-Id-Version: gstreamer 0.8.8\n"
 "Report-Msgid-Bugs-To: http://bugzilla.gnome.org/\n"
-"POT-Creation-Date: 2011-04-16 14:53+0100\n"
+"POT-Creation-Date: 2011-05-10 08:32+0100\n"
 "PO-Revision-Date: 2005-04-04 10:55-0700\n"
 "Last-Translator: Steven Michael Murphy <murf@e-tools.com>\n"
 "Language-Team: Kinyarwanda <translation-team-rw@lists.sourceforge.net>\n"
diff --git a/po/sk.po b/po/sk.po
index cb9c00e..7c266a1 100644
--- a/po/sk.po
+++ b/po/sk.po
@@ -8,7 +8,7 @@
 msgstr ""
 "Project-Id-Version: gstreamer 0.10.30.3\n"
 "Report-Msgid-Bugs-To: http://bugzilla.gnome.org/\n"
-"POT-Creation-Date: 2011-04-16 14:53+0100\n"
+"POT-Creation-Date: 2011-05-10 08:32+0100\n"
 "PO-Revision-Date: 2010-11-08 16:13+0100\n"
 "Last-Translator: Peter Tuhársky <tuharsky@misbb.sk>\n"
 "Language-Team: Slovak <sk-i18n@lists.linux.sk>\n"
diff --git a/po/sl.po b/po/sl.po
index ab5cfa6..20996f5 100644
--- a/po/sl.po
+++ b/po/sl.po
@@ -8,7 +8,7 @@
 msgstr ""
 "Project-Id-Version: gstreamer 0.10.29.2\n"
 "Report-Msgid-Bugs-To: http://bugzilla.gnome.org/\n"
-"POT-Creation-Date: 2011-04-16 14:53+0100\n"
+"POT-Creation-Date: 2011-05-10 08:32+0100\n"
 "PO-Revision-Date: 2010-09-18 20:21+0100\n"
 "Last-Translator: Matej Urbančič <matej.urban@gmail.com>\n"
 "Language-Team: Slovenian <translation-team-sl@lists.sourceforge.net>\n"
diff --git a/po/sq.po b/po/sq.po
index dd89e54..2b35a23 100644
--- a/po/sq.po
+++ b/po/sq.po
@@ -6,7 +6,7 @@
 msgstr ""
 "Project-Id-Version: gstreamer 0.8.4\n"
 "Report-Msgid-Bugs-To: http://bugzilla.gnome.org/\n"
-"POT-Creation-Date: 2011-04-16 14:53+0100\n"
+"POT-Creation-Date: 2011-05-10 08:32+0100\n"
 "PO-Revision-Date: 2004-08-07 23:46+0200\n"
 "Last-Translator: Laurent Dhima <laurenti@alblinux.net>\n"
 "Language-Team: Albanian <begraj@hotmail.com>\n"
diff --git a/po/sr.po b/po/sr.po
index bc9d6ef..272ed70 100644
--- a/po/sr.po
+++ b/po/sr.po
@@ -6,7 +6,7 @@
 msgstr ""
 "Project-Id-Version: gstreamer 0.8.8\n"
 "Report-Msgid-Bugs-To: http://bugzilla.gnome.org/\n"
-"POT-Creation-Date: 2011-04-16 14:53+0100\n"
+"POT-Creation-Date: 2011-05-10 08:32+0100\n"
 "PO-Revision-Date: 2005-01-27 16:58+0100\n"
 "Last-Translator: Danilo Segan <dsegan@gmx.net>\n"
 "Language-Team: Serbian <gnu@prevod.org>\n"
diff --git a/po/sv.po b/po/sv.po
index aaf92b0..adbde56 100644
--- a/po/sv.po
+++ b/po/sv.po
@@ -8,7 +8,7 @@
 msgstr ""
 "Project-Id-Version: gstreamer 0.10.31.2\n"
 "Report-Msgid-Bugs-To: http://bugzilla.gnome.org/\n"
-"POT-Creation-Date: 2011-04-16 14:53+0100\n"
+"POT-Creation-Date: 2011-05-10 08:32+0100\n"
 "PO-Revision-Date: 2011-01-09 19:46+0100\n"
 "Last-Translator: Daniel Nylander <po@danielnylander.se>\n"
 "Language-Team: Swedish <tp-sv@listor.tp-sv.se>\n"
diff --git a/po/tr.po b/po/tr.po
index 04c1941..a4c2a40 100644
--- a/po/tr.po
+++ b/po/tr.po
@@ -6,7 +6,7 @@
 msgstr ""
 "Project-Id-Version: gstreamer 0.8.0\n"
 "Report-Msgid-Bugs-To: http://bugzilla.gnome.org/\n"
-"POT-Creation-Date: 2011-04-16 14:53+0100\n"
+"POT-Creation-Date: 2011-05-10 08:32+0100\n"
 "PO-Revision-Date: 2004-04-03 03:14+0300\n"
 "Last-Translator: Baris Cicek <baris@teamforce.name.tr>\n"
 "Language-Team: Turkish <gnu-tr-u12a@lists.sourceforge.net>\n"
diff --git a/po/uk.po b/po/uk.po
index d2369c6..50b36d9 100644
--- a/po/uk.po
+++ b/po/uk.po
@@ -7,7 +7,7 @@
 msgstr ""
 "Project-Id-Version: gstreamer 0.10.14\n"
 "Report-Msgid-Bugs-To: http://bugzilla.gnome.org/\n"
-"POT-Creation-Date: 2011-04-16 14:53+0100\n"
+"POT-Creation-Date: 2011-05-10 08:32+0100\n"
 "PO-Revision-Date: 2007-09-07 11:16+0300\n"
 "Last-Translator: Maxim V. Dziumanenko <dziumanenko@gmail.com>\n"
 "Language-Team: Ukrainian <translation-team-uk@lists.sourceforge.net>\n"
diff --git a/po/vi.po b/po/vi.po
index cda9a34..d95c7a0 100644
--- a/po/vi.po
+++ b/po/vi.po
@@ -7,7 +7,7 @@
 msgstr ""
 "Project-Id-Version: gstreamer 0.10.29.2\n"
 "Report-Msgid-Bugs-To: http://bugzilla.gnome.org/\n"
-"POT-Creation-Date: 2011-04-16 14:53+0100\n"
+"POT-Creation-Date: 2011-05-10 08:32+0100\n"
 "PO-Revision-Date: 2010-10-03 19:09+1030\n"
 "Last-Translator: Clytie Siddall <clytie@riverland.net.au>\n"
 "Language-Team: Vietnamese <vi-VN@googlegroups.com>\n"
diff --git a/po/zh_CN.po b/po/zh_CN.po
index 2c7a30e..daaf202 100644
--- a/po/zh_CN.po
+++ b/po/zh_CN.po
@@ -6,7 +6,7 @@
 msgstr ""
 "Project-Id-Version: gstreamer 0.10.25.2\n"
 "Report-Msgid-Bugs-To: http://bugzilla.gnome.org/\n"
-"POT-Creation-Date: 2011-04-16 14:53+0100\n"
+"POT-Creation-Date: 2011-05-10 08:32+0100\n"
 "PO-Revision-Date: 2010-02-02 18:58+0800\n"
 "Last-Translator: Ji ZhengYu <zhengyuji@gmail.com>\n"
 "Language-Team: Chinese (simplified) <i18n-zh@googlegroups.com>\n"
diff --git a/po/zh_TW.po b/po/zh_TW.po
index 4dafa17..4a83e21 100644
--- a/po/zh_TW.po
+++ b/po/zh_TW.po
@@ -6,7 +6,7 @@
 msgstr ""
 "Project-Id-Version: gstreamer 0.8.8\n"
 "Report-Msgid-Bugs-To: http://bugzilla.gnome.org/\n"
-"POT-Creation-Date: 2011-04-16 14:53+0100\n"
+"POT-Creation-Date: 2011-05-10 08:32+0100\n"
 "PO-Revision-Date: 2005-04-27 14:55+0800\n"
 "Last-Translator: Abel Cheung <abelcheung@gmail.com>\n"
 "Language-Team: Chinese (traditional) <zh-l10n@linux.org.tw>\n"
diff --git a/tests/check/gst/gstghostpad.c b/tests/check/gst/gstghostpad.c
index b5034f1..a6ed29b 100644
--- a/tests/check/gst/gstghostpad.c
+++ b/tests/check/gst/gstghostpad.c
@@ -255,7 +255,7 @@
 GST_START_TEST (test_link)
 {
   GstElement *b1, *b2, *src, *sink;
-  GstPad *srcpad, *sinkpad, *gpad;
+  GstPad *srcpad, *sinkpad, *gpad, *ppad, *tmp;
   GstPadLinkReturn ret;
 
   b1 = gst_element_factory_make ("pipeline", NULL);
@@ -278,6 +278,14 @@
 
   /* now setup a ghostpad */
   gpad = gst_ghost_pad_new ("sink", sinkpad);
+
+  /* Check if the internal pads are set correctly */
+  ppad = GST_PAD (gst_proxy_pad_get_internal (GST_PROXY_PAD (gpad)));
+  fail_unless (ppad == GST_PAD_PEER (sinkpad));
+  tmp = GST_PAD (gst_proxy_pad_get_internal (GST_PROXY_PAD (ppad)));
+  fail_unless (tmp == gpad);
+  gst_object_unref (tmp);
+  gst_object_unref (ppad);
   gst_object_unref (sinkpad);
   /* need to ref as _add_pad takes ownership */
   gst_object_ref (gpad);
diff --git a/tests/check/gst/gstminiobject.c b/tests/check/gst/gstminiobject.c
index b4ffcb8..237f7e4 100644
--- a/tests/check/gst/gstminiobject.c
+++ b/tests/check/gst/gstminiobject.c
@@ -168,6 +168,33 @@
 
 GST_END_TEST;
 
+/* ======== weak ref test ======== */
+
+static gboolean weak_ref_notify_succeeded = FALSE;
+
+static void
+on_weak_ref_notify (gpointer data, GstMiniObject * where_object_was)
+{
+  weak_ref_notify_succeeded = TRUE;
+}
+
+GST_START_TEST (test_weak_ref)
+{
+  GstBuffer *buffer;
+
+  buffer = gst_buffer_new_and_alloc (4);
+
+  gst_mini_object_weak_ref (GST_MINI_OBJECT (buffer), on_weak_ref_notify,
+      &buffer);
+
+  gst_buffer_unref (buffer);
+
+  fail_unless (weak_ref_notify_succeeded,
+      "No weak reference notification took place.");
+}
+
+GST_END_TEST;
+
 #if 0
 /* ======== recycle test ======== */
 
@@ -434,6 +461,7 @@
   tcase_add_test (tc_chain, test_make_writable);
   tcase_add_test (tc_chain, test_ref_threaded);
   tcase_add_test (tc_chain, test_unref_threaded);
+  tcase_add_test (tc_chain, test_weak_ref);
   //tcase_add_test (tc_chain, test_recycle_threaded);
   tcase_add_test (tc_chain, test_value_collection);
   tcase_add_test (tc_chain, test_dup_null_mini_object);
diff --git a/win32/common/config.h b/win32/common/config.h
index fad9156..74e6fc4 100644
--- a/win32/common/config.h
+++ b/win32/common/config.h
@@ -59,13 +59,13 @@
 #define GST_MAJORMINOR "0.10"
 
 /* package name in plugins */
-#define GST_PACKAGE_NAME "GStreamer prerelease"
+#define GST_PACKAGE_NAME "GStreamer git"
 
 /* package origin */
 #define GST_PACKAGE_ORIGIN "Unknown package origin"
 
 /* GStreamer package release date/time for plugins as YYYY-MM-DD */
-#define GST_PACKAGE_RELEASE_DATETIME "2011-04-30T14:22Z"
+#define GST_PACKAGE_RELEASE_DATETIME "2011-05-14T08:26Z"
 
 /* location of the installed gst-plugin-scanner */
 #define GST_PLUGIN_SCANNER_INSTALLED LIBDIR "\\gst-plugin-scanner"
@@ -340,7 +340,7 @@
 #define PACKAGE_NAME "GStreamer"
 
 /* Define to the full name and version of this package. */
-#define PACKAGE_STRING "GStreamer 0.10.32.4"
+#define PACKAGE_STRING "GStreamer 0.10.34.1"
 
 /* Define to the one symbol short name of this package. */
 #define PACKAGE_TARNAME "gstreamer"
@@ -349,7 +349,7 @@
 #undef PACKAGE_URL
 
 /* Define to the version of this package. */
-#define PACKAGE_VERSION "0.10.32.4"
+#define PACKAGE_VERSION "0.10.34.1"
 
 /* directory where plugins are located */
 #ifdef _DEBUG
@@ -380,7 +380,7 @@
 #undef USE_POISONING
 
 /* Version number of package */
-#define VERSION "0.10.32.4"
+#define VERSION "0.10.34.1"
 
 /* Define WORDS_BIGENDIAN to 1 if your processor stores words with the most
    significant byte first (like Motorola and SPARC, unlike Intel). */
diff --git a/win32/common/gstversion.h b/win32/common/gstversion.h
index 8b749c4..be93d1a 100644
--- a/win32/common/gstversion.h
+++ b/win32/common/gstversion.h
@@ -57,14 +57,14 @@
  *
  * The micro version of GStreamer at compile time:
  */
-#define GST_VERSION_MICRO (32)
+#define GST_VERSION_MICRO (34)
 /**
  * GST_VERSION_NANO:
  *
  * The nano version of GStreamer at compile time:
  * Actual releases have 0, GIT versions have 1, prerelease versions have 2-...
  */
-#define GST_VERSION_NANO (4)
+#define GST_VERSION_NANO (1)
 
 /**
  * GST_CHECK_VERSION:
diff --git a/win32/common/libgstreamer.def b/win32/common/libgstreamer.def
index 06969d0..e545769 100644
--- a/win32/common/libgstreamer.def
+++ b/win32/common/libgstreamer.def
@@ -436,14 +436,21 @@
 	gst_fraction_get_type
 	gst_fraction_range_get_type
 	gst_g_error_get_type
+	gst_ghost_pad_activate_pull_default
+	gst_ghost_pad_activate_push_default
 	gst_ghost_pad_construct
 	gst_ghost_pad_get_target
 	gst_ghost_pad_get_type
+	gst_ghost_pad_internal_activate_pull_default
+	gst_ghost_pad_internal_activate_push_default
+	gst_ghost_pad_link_default
 	gst_ghost_pad_new
 	gst_ghost_pad_new_from_template
 	gst_ghost_pad_new_no_target
 	gst_ghost_pad_new_no_target_from_template
 	gst_ghost_pad_set_target
+	gst_ghost_pad_setcaps_default
+	gst_ghost_pad_unlink_default
 	gst_implements_interface_cast
 	gst_implements_interface_check
 	gst_implements_interface_get_type
@@ -613,6 +620,8 @@
 	gst_mini_object_register
 	gst_mini_object_replace
 	gst_mini_object_unref
+	gst_mini_object_weak_ref
+	gst_mini_object_weak_unref
 	gst_object_check_uniqueness
 	gst_object_default_deep_notify
 	gst_object_default_error
@@ -827,7 +836,22 @@
 	gst_print_element_args
 	gst_print_pad_caps
 	gst_progress_type_get_type
+	gst_proxy_pad_acceptcaps_default
+	gst_proxy_pad_bufferalloc_default
+	gst_proxy_pad_chain_default
+	gst_proxy_pad_chain_list_default
+	gst_proxy_pad_checkgetrange_default
+	gst_proxy_pad_event_default
+	gst_proxy_pad_fixatecaps_default
+	gst_proxy_pad_get_internal
 	gst_proxy_pad_get_type
+	gst_proxy_pad_getcaps_default
+	gst_proxy_pad_getrange_default
+	gst_proxy_pad_iterate_internal_links_default
+	gst_proxy_pad_query_default
+	gst_proxy_pad_query_type_default
+	gst_proxy_pad_setcaps_default
+	gst_proxy_pad_unlink_default
 	gst_qos_type_get_type
 	gst_query_add_allocation_meta
 	gst_query_add_buffering_range
