gnomemm r1615 - in gstreamermm/trunk: . gstreamer/src tools/extra_defs_gen tools/m4



Author: jaalburqu
Date: Mon Jul 21 03:25:26 2008
New Revision: 1615
URL: http://svn.gnome.org/viewvc/gnomemm?rev=1615&view=rev

Log:
2008-07-20  Josà Alburquerque  <jaalburqu svn gnome org>

	* gstreamer/src/Makefile_list_of_hg.am_fragment:
	* gstreamer/src/basesink.ccg:
	* gstreamer/src/basesink.hg: Added Gst::BaseSink with methods,
	properties and vfuncs (included class docs).  Left
	buffer_alloc_vfunc() as a TODO (can't figure out how to convert
	GstBuffer** to C++ type).

	* gstreamer/src/basesrc.hg: Corrected docs.

	* gstreamer/src/gst_docs.xml:
	* gstreamer/src/gst_methods.defs:
	* gstreamer/src/gst_signals.defs:
	* tools/extra_defs_gen/generate_defs_gst.cc: Added
	GST_TYPE_{BASE_SINK, BASE_TRANSFORM, PUSH_SRC, ADAPTER, COLLECT_PADS,
	DATA_QUEUE} GTypes and regenerated defs to include new API since
	last regeneration.
	* gstreamer/src/gst_vfuncs.defs: Added GstBaseSink vfuncs.

	* tools/m4/convert_gst.m4: Added ClockTimeDiff <==> GstClockTimeDiff
	conversions.

Added:
   gstreamermm/trunk/gstreamer/src/basesink.ccg
   gstreamermm/trunk/gstreamer/src/basesink.hg
Modified:
   gstreamermm/trunk/ChangeLog
   gstreamermm/trunk/gstreamer/src/Makefile_list_of_hg.am_fragment
   gstreamermm/trunk/gstreamer/src/basesrc.hg
   gstreamermm/trunk/gstreamer/src/gst_docs.xml
   gstreamermm/trunk/gstreamer/src/gst_methods.defs
   gstreamermm/trunk/gstreamer/src/gst_signals.defs
   gstreamermm/trunk/gstreamer/src/gst_vfuncs.defs
   gstreamermm/trunk/tools/extra_defs_gen/generate_defs_gst.cc
   gstreamermm/trunk/tools/m4/convert_gst.m4

Modified: gstreamermm/trunk/gstreamer/src/Makefile_list_of_hg.am_fragment
==============================================================================
--- gstreamermm/trunk/gstreamer/src/Makefile_list_of_hg.am_fragment	(original)
+++ gstreamermm/trunk/gstreamer/src/Makefile_list_of_hg.am_fragment	Mon Jul 21 03:25:26 2008
@@ -10,7 +10,7 @@
 	iterator.hg message.hg pad.hg padtemplate.hg parse.hg pipeline.hg \
 	plugin.hg pluginfeature.hg query.hg registry.hg segment.hg \
 	structure.hg systemclock.hg tagsetter.hg task.hg urihandler.hg \
-	value.hg xml.hg basesrc.hg
+	value.hg xml.hg basesrc.hg basesink.hg
 
 #TODO: Add ghostpad.hg when bug #539108 is fixed (and patch in bug is applied)
 

Added: gstreamermm/trunk/gstreamer/src/basesink.ccg
==============================================================================
--- (empty file)
+++ gstreamermm/trunk/gstreamer/src/basesink.ccg	Mon Jul 21 03:25:26 2008
@@ -0,0 +1,26 @@
+// -*- Mode: C++; indent-tabs-mode: nil; c-basic-offset: 2 -*-
+
+/* gstreamermm - a C++ wrapper for gstreamer
+ *
+ * Copyright 2008 The gstreamermm Development Team
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Library General Public
+ * License as published by the Free Software Foundation; either
+ * version 2 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+ * Library General Public License for more details.
+ *
+ * You should have received a copy of the GNU Library General Public
+ * License along with this library; if not, write to the Free
+ * Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+ */
+
+#include <gst/base/gstbasesink.h>
+#include <gstreamermm/pad.h>
+
+_PINCLUDE(glibmm/private/object_p.h)
+_PINCLUDE(gstreamermm/private/element_p.h)

Added: gstreamermm/trunk/gstreamer/src/basesink.hg
==============================================================================
--- (empty file)
+++ gstreamermm/trunk/gstreamer/src/basesink.hg	Mon Jul 21 03:25:26 2008
@@ -0,0 +1,241 @@
+// -*- Mode: C++; indent-tabs-mode: nil; c-basic-offset: 2 -*-
+
+/* gstreamermm - a C++ wrapper for gstreamer
+ *
+ * Copyright 2008 The gstreamermm Development Team
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Library General Public
+ * License as published by the Free Software Foundation; either
+ * version 2 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+ * Library General Public License for more details.
+ *
+ * You should have received a copy of the GNU Library General Public
+ * License along with this library; if not, write to the Free
+ * Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+ */
+
+#include <gstreamermm/element.h>
+#include <gstreamermm/buffer.h>
+#include <gstreamermm/pad.h>
+
+_DEFS(gstreamermm,gst)
+
+namespace Gst
+{
+
+/** Gst::BaseSink â Base class for sink elements.
+ * Gst::BaseSink is the base class for sink elements in GStreamer, such as
+ * xvimagesink or filesink. It is a layer on top of Gst::Element that provides
+ * a simplified interface to plugin writers. Gst::BaseSink handles many details
+ * for you, for example: preroll, clock synchronization, state changes,
+ * activation in push or pull mode, and queries.
+ *
+ * In most cases, when writing sink elements, there is no need to implement
+ * class methods from Gst::Element or to set functions on pads, because the
+ * Gst::BaseSink infrastructure should be sufficient.
+ *
+ * TODO: correct paragraph below for C++ and include example from C API:
+ *
+ * Gst::BaseSink provides support for exactly one sink pad, which should be
+ * named "sink". A sink implementation (subclass of Gst::BaseSink) should
+ * install a pad template in its base_init function, like so:
+ *
+ * Gst::BaseSink will handle the prerolling correctly. This means that it will
+ * return Gst::STATE_CHANGE_ASYNC from a state change to PAUSED until the first
+ * buffer arrives in this element. The base class will call the
+ * Gst::BaseSink::preroll_vfunc() vmethod with this preroll buffer and will
+ * then commit the state change to the next asynchronously pending state.
+ *
+ * When the element is set to PLAYING, Gst::BaseSink will synchronise on the
+ * clock using the times returned from get_times_vfunc(). If this function
+ * returns Gst::CLOCK_TIME_NONE for the start time, no synchronisation will be
+ * done.  Synchronisation can be disabled entirely by setting the object "sync"
+ * property to FALSE.
+ *
+ * After synchronisation the virtual method Gst::BaseSink::render_vfunc() will
+ * be called. Subclasses should minimally implement this method.
+ *
+ * Since GStreamer 0.10.3 subclasses that synchronise on the clock in the
+ * render_vfunc() vmethod are supported as well. These classes typically
+ * receive a buffer in the render method and can then potentially block on the
+ * clock while rendering. A typical example is an audiosink. Since GStreamer
+ * 0.10.11 these subclasses can use wait_preroll() to perform the blocking
+ * wait.
+ *
+ * Upon receiving the EOS event in the PLAYING state, Gst::BaseSink will wait
+ * for the clock to reach the time indicated by the stop time of the last
+ * get_times_vfunc() call before posting an EOS message. When the element
+ * receives EOS in PAUSED, preroll completes, the event is queued and an EOS
+ * message is posted when going to PLAYING.
+ *
+ * Gst::BaseSink will internally use the Gst::EVENT_NEWSEGMENT events to
+ * schedule synchronisation and clipping of buffers. Buffers that fall
+ * completely outside of the current segment are dropped. Buffers that fall
+ * partially in the segment are rendered (and prerolled). Subclasses should do
+ * any subbuffer clipping themselves when needed.
+ *
+ * Gst::BaseSink will by default report the current playback position in
+ * Gst::FORMAT_TIME based on the current clock time and segment information. If
+ * no clock has been set on the element, the query will be forwarded upstream.
+ *
+ * The set_caps_vfunc() function will be called when the subclass should
+ * configure itself to process a specific media type.
+ *
+ * The start_vfunc() and stop_vfunc() virtual methods will be called when
+ * resources should be allocated. Any preroll_vfunc(), render_vfunc() and
+ * set_caps_vfunc() function will be called between the start_vfunc() and
+ * stop_vfunc() calls.
+ *
+ * The event_vfunc() virtual method will be called when an event is received by
+ * Gst::BaseSink. Normally this method should only be overriden by very
+ * specific elements (such as file sinks) which need to handle the newsegment
+ * event specially.
+ *
+ * Gst::BaseSink provides an overridable buffer_alloc_vfunc() function that can
+ * be used by sinks that want to do reverse negotiation or to provide custom
+ * buffers (hardware buffers for example) to upstream elements.
+ *
+ * The unlock_vfunc() method is called when the elements should unblock any
+ * blocking operations they perform in the render_vfunc() method. This is
+ * mostly useful when the render_vfunc() method performs a blocking write on a
+ * file descriptor, for example.
+ *
+ * The max-lateness property affects how the sink deals with buffers that
+ * arrive too late in the sink. A buffer arrives too late in the sink when the
+ * presentation time (as a combination of the last segment, buffer timestamp
+ * and element base_time) plus the duration is before the current time of the
+ * clock. If the frame is later than max-lateness, the sink will drop the
+ * buffer without calling the render method. This feature is disabled if sync
+ * is disabled, the get_times_vfunc() method does not return a valid start time
+ * or max-lateness is set to -1 (the default). Subclasses can use
+ * set_max_lateness() to configure the max-lateness value.
+ *
+ * The qos property will enable the quality-of-service features of the basesink
+ * which gather statistics about the real-time performance of the clock
+ * synchronisation. For each buffer received in the sink, statistics are
+ * gathered and a QOS event is sent upstream with these numbers. This
+ * information can then be used by upstream elements to reduce their processing
+ * rate, for example.
+ *
+ * Since GStreamer 0.10.15 the async property can be used to instruct the sink
+ * to never perform an ASYNC state change. This feature is mostly usable when
+ * dealing with non-synchronized streams or sparse streams.
+ *
+ * Last reviewed on 2007-08-29 (0.10.15)
+ */
+class BaseSink
+: public Element
+{
+  _CLASS_GOBJECT(BaseSink, GstBaseSink, GST_BASE_SINK, Element, GstElement)
+
+public:
+  _WRAP_METHOD(bool query_latency(bool& live, bool& upstream_live, ClockTime& min_latency, ClockTime& max_latency), gst_base_sink_query_latency)
+  _WRAP_METHOD(ClockTime get_latency(), gst_base_sink_get_latency)
+  _WRAP_METHOD(FlowReturn wait_preroll(), gst_base_sink_wait_preroll)
+  _WRAP_METHOD(ClockReturn wait_clock(ClockTime time, ClockTimeDiff& jitter), gst_base_sink_wait_clock)
+  _WRAP_METHOD(FlowReturn wait_eos(ClockTime time, ClockTimeDiff& jitter), gst_base_sink_wait_eos)
+  _WRAP_METHOD(void set_sync(bool sync), gst_base_sink_set_sync)
+  _WRAP_METHOD(bool get_sync(), gst_base_sink_get_sync)
+  _WRAP_METHOD(void set_max_lateness(gint64 max_lateness), gst_base_sink_set_max_lateness)
+  _WRAP_METHOD(gint64 get_max_lateness(), gst_base_sink_get_max_lateness)
+  _WRAP_METHOD(void set_qos_enabled(bool enabled), gst_base_sink_set_qos_enabled)
+  _WRAP_METHOD(bool is_qos_enabled(), gst_base_sink_is_qos_enabled)
+  _WRAP_METHOD(void set_async_enabled(bool enabled), gst_base_sink_set_async_enabled) 
+  _WRAP_METHOD(bool is_async_enabled(), gst_base_sink_is_async_enabled)
+  _WRAP_METHOD(void set_ts_offset(ClockTimeDiff offset), gst_base_sink_set_ts_offset)
+  _WRAP_METHOD(ClockTimeDiff get_ts_offset(), gst_base_sink_get_ts_offset)
+  _WRAP_METHOD(void set_render_delay(ClockTime delay), gst_base_sink_set_render_delay)
+  _WRAP_METHOD(ClockTime get_render_delay(), gst_base_sink_get_render_delay)
+  _WRAP_METHOD(Glib::RefPtr<Buffer> get_last_buffer(), gst_base_sink_get_last_buffer)
+
+  /** Gets the sink Gst::Pad object of the element.
+   */
+  _MEMBER_GET(sink_pad, sinkpad, Glib::RefPtr<Pad>, GstPad*)
+
+  _WRAP_PROPERTY("async", bool)
+  _WRAP_PROPERTY("last-buffer", Glib::RefPtr<Buffer>)
+  _WRAP_PROPERTY("max-lateness", gint64)
+  _WRAP_PROPERTY("preroll-queue-len", guint)
+  _WRAP_PROPERTY("qos", bool)
+  _WRAP_PROPERTY("sync", bool)
+  _WRAP_PROPERTY("ts-offset", gint64)
+
+#m4 _CONVERSION(`Glib::RefPtr<Caps>', `GstCaps*', `($3)->gobj()')
+  /** Called to get sink pad caps from the subclass.
+   */
+  _WRAP_VFUNC(Glib::RefPtr<Caps> get_caps(), "get_caps")
+
+#m4 _CONVERSION(`GstCaps*', `const Glib::RefPtr<Caps>&', `Glib::wrap($3)')
+  /** Notify subclass of changed caps.
+   */
+  _WRAP_VFUNC(bool set_caps(const Glib::RefPtr<Caps>& caps), "set_caps")
+
+//TODO: #m4 _CONVERSION(`Glib::RefPtr<Buffer>&', `GstBuffer**', `*($3)')
+  //_WRAP_VFUNC(FlowReturn buffer_alloc(guint64 offset, guint size, Glib::RefPtr<Buffer>& buffer), "buffer_alloc")
+
+#m4 _CONVERSION(`GstBuffer*', `const Glib::RefPtr<Buffer>&', `Gst::wrap($3)')
+#m4 _CONVERSION(`GstClockTime*', `ClockTime&', `*($3)')
+  /** Called to get the start and end times for synchronising the passed buffer
+   * to the clock.
+   */
+  _WRAP_VFUNC(void get_times(const Glib::RefPtr<Buffer>& buffer, ClockTime& start, ClockTime& end), "get_times")
+
+  /** Start processing. Ideal for opening resources in the subclass.
+   */
+  _WRAP_VFUNC(bool start(), "start")
+
+  /** Stop processing. Subclasses should use this to close resources.
+   */
+  _WRAP_VFUNC(bool stop(), "stop")
+
+  /** Unlock any pending access to the resource. Subclasses should unblock any
+   * blocked function ASAP.
+   */
+  _WRAP_VFUNC(bool unlock(), "unlock")
+
+  /** Override this to handle events arriving on the sink pad.
+   */
+  _WRAP_VFUNC(bool event(const Glib::RefPtr<Event>& event), "event")
+
+  /** Called to present the preroll buffer if desired.
+   */
+  _WRAP_VFUNC(FlowReturn preroll(const Glib::RefPtr<Buffer>& buffer), "preroll")
+
+  /** Called when a buffer should be presented or output, at the correct moment
+   * if the Gst::BaseSink has been set to sync to the clock.
+   */
+  _WRAP_VFUNC(FlowReturn render(const Glib::RefPtr<Buffer>& buffer), "render")
+
+  /** Subclasses should override this when they need to perform special
+   * processing when changing to the PLAYING state asynchronously. Called with
+   * the OBJECT_LOCK held.
+   */
+  _WRAP_VFUNC(StateChangeReturn async_play(), "async_play")
+
+  /** Subclasses should override this when they can provide an alternate method
+   * of spawning a thread to drive the pipeline in pull mode. Should start or
+   * stop the pulling thread, depending on the value of the "active" argument.
+   * Called after actually activating the sink pad in pull mode. The default
+   * implementation starts a task on the sink pad. 
+   */
+  _WRAP_VFUNC(bool activate_pull(bool active), "activate_pull")
+
+  /** Only useful in pull mode, this vmethod will be called in response to
+   * Gst::Pad::fixate_caps() being called on the sink pad. Implement if you
+   * have ideas about what should be the default values for the caps you
+   * support.
+   */
+  _WRAP_VFUNC(void fixate(const Glib::RefPtr<Caps>& caps), "fixate")
+
+  /** Clear the previous unlock request. Subclasses should clear any state they
+   * set during unlock_vfunc(), such as clearing command queues.
+   */
+  _WRAP_VFUNC(bool unlock_stop(), "unlock_stop")
+};
+
+} //namespace Gst

Modified: gstreamermm/trunk/gstreamer/src/basesrc.hg
==============================================================================
--- gstreamermm/trunk/gstreamer/src/basesrc.hg	(original)
+++ gstreamermm/trunk/gstreamer/src/basesrc.hg	Mon Jul 21 03:25:26 2008
@@ -77,7 +77,7 @@
  * publish this rate. Use set_live() to activate the live source mode.
  *
  * A live source does not produce data in the PAUSED state. This means that the
- * Gst::BaseSrc::create method will not be called in PAUSED but only in
+ * Gst::BaseSrc::create_vfunc() method will not be called in PAUSED but only in
  * PLAYING. To signal the pipeline that the element will not produce data, the
  * return value from the READY to PAUSED state will be
  * Gst::STATE_CHANGE_NO_PREROLL.
@@ -88,22 +88,22 @@
  * and running.
  *
  * Live sources that synchronize and block on the clock (an audio source, for
- * example) can since GStreamer 0.10.12 use wait_playing() when the ::create
- * function was interrupted by a state change to PAUSED.
+ * example) can since GStreamer 0.10.12 use wait_playing() when the
+ * create_vfunc() function was interrupted by a state change to PAUSED.
  *
- * The Gst::BaseSrc::get_times method can be used to implement pseudo-live
- * sources. It only makes sense to implement the ::get_times function if the
- * source is a live source. The ::get_times function should return timestamps
- * starting from 0, as if it were a non-live source. The base class will make
- * sure that the timestamps are transformed into the current running_time. The
- * base source will then wait for the calculated running_time before pushing
- * out the buffer.
+ * The Gst::BaseSrc::get_times_vfunc() method can be used to implement
+ * pseudo-live sources. It only makes sense to implement the get_times_vfunc()
+ * function if the source is a live source. The get_times_vfunc() function
+ * should return timestamps starting from 0, as if it were a non-live source.
+ * The base class will make sure that the timestamps are transformed into the
+ * current running_time. The base source will then wait for the calculated
+ * running_time before pushing out the buffer.
  *
  * For live sources, the base class will by default report a latency of 0. For
  * pseudo live sources, the base class will by default measure the difference
- * between the first buffer timestamp and the start time of get_times and will
- * report this value as the latency. Subclasses should override the query
- * function when this behaviour is not acceptable.
+ * between the first buffer timestamp and the start time of get_times_vfunc()
+ * and will report this value as the latency. Subclasses should override the
+ * query_vfunc() function when this behaviour is not acceptable.
  *
  * TODO: Edit below paragraph for C++ and include C++ example from C API (if
  * necessary):
@@ -230,7 +230,7 @@
    * be opened now. This vfunc is optional, but should be implemented if
    * possible to avoid unnecessary start/stop cycles. The default
    * implementation will open and close the resource to find out whether
-   * get_range is supported, and that is usually undesirable.
+   * get_range() is supported, and that is usually undesirable.
    */
   _WRAP_VFUNC(bool check_get_range(), "check_get_range")
 
@@ -240,15 +240,15 @@
   _WRAP_VFUNC(void fixate(const Glib::RefPtr<Caps>& caps), "fixate")
 
   /** Clear the previous unlock request. Subclasses should clear any state they
-   * set during unlock(), such as clearing command queues.
+   * set during unlock_vfunc(), such as clearing command queues.
    */
   _WRAP_VFUNC(bool unlock_stop(), "unlock_stop")
 
-  /** Prepare the GstSegment that will be passed to the do_seek vmethod for
-   * executing a seek request. Sub-classes should override this if they support
-   * seeking in formats other than the configured native format. By default, it
-   * tries to convert the seek arguments to the configured native format and
-   * prepare a segment in that format.
+  /** Prepare the GstSegment that will be passed to the do_seek_vfunc() vmethod
+   * for executing a seek request. Sub-classes should override this if they
+   * support seeking in formats other than the configured native format. By
+   * default, it tries to convert the seek arguments to the configured native
+   * format and prepare a segment in that format.
    */
   _WRAP_VFUNC(bool prepare_seek_segment(const Glib::RefPtr<Event>& seek, Segment segment), "prepare_seek_segment")
 };

Modified: gstreamermm/trunk/gstreamer/src/gst_docs.xml
==============================================================================
--- gstreamermm/trunk/gstreamer/src/gst_docs.xml	(original)
+++ gstreamermm/trunk/gstreamer/src/gst_docs.xml	Mon Jul 21 03:25:26 2008
@@ -133,27 +133,19 @@
 </return>
 </function>
 
-<function name="gst_buffer_join">
+<function name="gst_element_factory_get_description">
 <description>
-Create a new buffer that is the concatenation of the two source
-buffers, and unrefs the original source buffers.
-
-If the buffers point to contiguous areas of memory, the buffer
-is created without copying the data.
+Gets the description for this factory.
 
 
 </description>
 <parameters>
-<parameter name="buf1">
-<parameter_description> the first source #GstBuffer.
-</parameter_description>
-</parameter>
-<parameter name="buf2">
-<parameter_description> the second source #GstBuffer.
+<parameter name="factory">
+<parameter_description> a #GstElementFactory
 </parameter_description>
 </parameter>
 </parameters>
-<return> the new #GstBuffer which is the concatenation of the source buffers.
+<return> the description
 </return>
 </function>
 
@@ -685,19 +677,27 @@
 </return>
 </function>
 
-<function name="gst_element_factory_get_description">
+<function name="gst_buffer_join">
 <description>
-Gets the description for this factory.
+Create a new buffer that is the concatenation of the two source
+buffers, and unrefs the original source buffers.
+
+If the buffers point to contiguous areas of memory, the buffer
+is created without copying the data.
 
 
 </description>
 <parameters>
-<parameter name="factory">
-<parameter_description> a #GstElementFactory
+<parameter name="buf1">
+<parameter_description> the first source #GstBuffer.
+</parameter_description>
+</parameter>
+<parameter name="buf2">
+<parameter_description> the second source #GstBuffer.
 </parameter_description>
 </parameter>
 </parameters>
-<return> the description
+<return> the new #GstBuffer which is the concatenation of the source buffers.
 </return>
 </function>
 
@@ -951,7 +951,7 @@
 </parameter_description>
 </parameter>
 <parameter name="child">
-<parameter_description> the newly added child
+<parameter_description> the removed child
 </parameter_description>
 </parameter>
 </parameters>
@@ -1541,48 +1541,49 @@
 </return>
 </function>
 
-<function name="gst_poll_restart">
+<function name="gst_tag_merge_use_first">
 <description>
-Restart any gst_poll_wait() that is in progress. This function is typically
-used after adding or removing descriptors to @set.
-
-If @set is not controllable, then this call will have no effect.
-
-Since: 0.10.18
+This is a convenience function for the func argument of gst_tag_register().
+It creates a copy of the first value from the list.
 
 </description>
 <parameters>
-<parameter name="set">
-<parameter_description> a #GstPoll.
+<parameter name="dest">
+<parameter_description> uninitialized GValue to store result in
+</parameter_description>
+</parameter>
+<parameter name="src">
+<parameter_description> GValue to copy from
 </parameter_description>
 </parameter>
 </parameters>
 <return></return>
 </function>
 
-<function name="gst_object_replace">
+<function name="gst_bin_iterate_sorted">
 <description>
-Unrefs the #GstObject pointed to by @oldobj, refs @newobj and
-puts @newobj in * oldobj  Be carefull when calling this
-function, it does not take any locks. You might want to lock
-the object owning @oldobj pointer before calling this
-function.
+Gets an iterator for the elements in this bin in topologically
+sorted order. This means that the elements are returned from
+the most downstream elements (sinks) to the sources.
+
+This function is used internally to perform the state changes
+of the bin elements and for clock selection.
+
+Each element yielded by the iterator will have its refcount increased, so
+unref after use.
+
+MT safe.  Caller owns returned value.
 
-Make sure not to LOCK @oldobj because it might be unreffed
-which could cause a deadlock when it is disposed.
 
 </description>
 <parameters>
-<parameter name="oldobj">
-<parameter_description> pointer to a place of a #GstObject to replace
-</parameter_description>
-</parameter>
-<parameter name="newobj">
-<parameter_description> a new #GstObject
+<parameter name="bin">
+<parameter_description> a #GstBin
 </parameter_description>
 </parameter>
 </parameters>
-<return></return>
+<return> a #GstIterator of #GstElement, or NULL
+</return>
 </function>
 
 <function name="gst_structure_from_string">
@@ -1686,9 +1687,10 @@
 Retrieves a pad from @element by name. Tries gst_element_get_static_pad()
 first, then gst_element_get_request_pad().
 
-&amp;lt;note&amp;gt;Usage of this function is not recommended as it is unclear if the reference
+Deprecated: This function is deprecated as it&apos;s unclear if the reference
 to the result pad should be released with gst_object_unref() in case of a static pad
-or gst_element_release_request_pad() in case of a request pad.&amp;lt;/note&amp;gt;
+or gst_element_release_request_pad() in case of a request pad.
+Use gst_element_get_static_pad() or gst_element_get_request_pad() instead.
 
 
 </description>
@@ -2559,7 +2561,8 @@
 The upstream element can use the @diff and @timestamp values to decide
 whether to process more buffers. For possitive @diff, all buffers with
 timestamp &amp;lt;= @timestamp + @diff will certainly arrive late in the sink
-as well. 
+as well. A (negative) @diff value so that @timestamp + @diff would yield a
+result smaller than 0 is not allowed.
 
 The application can use general event probes to intercept the QoS
 event and implement custom application specific QoS handling.
@@ -2996,24 +2999,6 @@
 </return>
 </function>
 
-<function name="gst_preset_get_property_names">
-<description>
-Get a the names of the GObject properties that can be used for presets.
-
-
-</description>
-<parameters>
-<parameter name="preset">
-<parameter_description> a #GObject that implements #GstPreset
-</parameter_description>
-</parameter>
-</parameters>
-<return> an array of property names which should be freed with g_strfreev() after use.
-
-Since: 0.10.20
-</return>
-</function>
-
 <function name="gst_pipeline_set_new_stream_time">
 <description>
 Set the new stream time of @pipeline to @time. The stream time is used to
@@ -4947,22 +4932,19 @@
 </return>
 </function>
 
-<function name="gst_pad_set_setcaps_function">
+<function name="gst_value_set_date">
 <description>
-Sets the given setcaps function for the pad.  The setcaps function
-will be called whenever a buffer with a new media type is pushed or
-pulled from the pad. The pad/element needs to update its internal
-structures to process the new media type. If this new type is not
-acceptable, the setcaps function should return FALSE.
+Sets the contents of @value to coorespond to @date.  The actual
+#GDate structure is copied before it is used.
 
 </description>
 <parameters>
-<parameter name="pad">
-<parameter_description> a #GstPad.
+<parameter name="value">
+<parameter_description> a GValue initialized to GST_TYPE_DATE
 </parameter_description>
 </parameter>
-<parameter name="setcaps">
-<parameter_description> the #GstPadSetCapsFunction to set.
+<parameter name="date">
+<parameter_description> the date to set the value to
 </parameter_description>
 </parameter>
 </parameters>
@@ -7218,20 +7200,24 @@
 </return>
 </function>
 
-<function name="gst_index_factory_make">
+<function name="gst_element_provide_clock">
 <description>
-Create a new #GstIndex instance from the
-indexfactory with the given name.
+Get the clock provided by the given element.
+&amp;lt;note&amp;gt;An element is only required to provide a clock in the PAUSED
+state. Some elements can provide a clock in other states.&amp;lt;/note&amp;gt;
 
 
 </description>
 <parameters>
-<parameter name="name">
-<parameter_description> the name of the factory used to create the instance
+<parameter name="element">
+<parameter_description> a #GstElement to query
 </parameter_description>
 </parameter>
 </parameters>
-<return> A new #GstIndex instance.
+<return> the GstClock provided by the element or %NULL
+if no clock could be provided.  Unref after usage.
+
+MT safe.
 </return>
 </function>
 
@@ -8305,19 +8291,19 @@
 <return></return>
 </function>
 
-<function name="gst_tag_merge_use_first">
+<function name="gst_poll_restart">
 <description>
-This is a convenience function for the func argument of gst_tag_register().
-It creates a copy of the first value from the list.
+Restart any gst_poll_wait() that is in progress. This function is typically
+used after adding or removing descriptors to @set.
+
+If @set is not controllable, then this call will have no effect.
+
+Since: 0.10.18
 
 </description>
 <parameters>
-<parameter name="dest">
-<parameter_description> uninitialized GValue to store result in
-</parameter_description>
-</parameter>
-<parameter name="src">
-<parameter_description> GValue to copy from
+<parameter name="set">
+<parameter_description> a #GstPoll.
 </parameter_description>
 </parameter>
 </parameters>
@@ -8433,29 +8419,41 @@
 </return>
 </function>
 
-<function name="gst_bin_iterate_sorted">
+<function name="gst_filter_run">
 <description>
-Gets an iterator for the elements in this bin in topologically
-sorted order. This means that the elements are returned from
-the most downstream elements (sinks) to the sources.
-
-This function is used internally to perform the state changes
-of the bin elements and for clock selection.
-
-Each element yielded by the iterator will have its refcount increased, so
-unref after use.
+Iterates over the elements in @list, calling @func with the
+list item data for each item.  If @func returns TRUE, @data is
+prepended to the list of results returned.  If @first is true,
+the search is halted after the first result is found.
 
-MT safe.  Caller owns returned value.
+Since gst_filter_run() knows nothing about the type of @data, no
+reference will be taken (if @data refers to an object) and no copy of
+ data wil be made in any other way when prepending @data to the list of
+results.
 
 
 </description>
 <parameters>
-<parameter name="bin">
-<parameter_description> a #GstBin
+<parameter name="list">
+<parameter_description> a linked list
+</parameter_description>
+</parameter>
+<parameter name="func">
+<parameter_description> the function to execute for each item
+</parameter_description>
+</parameter>
+<parameter name="first">
+<parameter_description> flag to stop execution after a successful item
+</parameter_description>
+</parameter>
+<parameter name="user_data">
+<parameter_description> user data
 </parameter_description>
 </parameter>
 </parameters>
-<return> a #GstIterator of #GstElement, or NULL
+<return> the list of results. Free with g_list_free() when no longer needed
+(the data contained in the list is a flat copy and does need to be
+unreferenced or freed).
 </return>
 </function>
 
@@ -10169,25 +10167,6 @@
 </return>
 </function>
 
-<function name="gst_value_set_date">
-<description>
-Sets the contents of @value to coorespond to @date.  The actual
-#GDate structure is copied before it is used.
-
-</description>
-<parameters>
-<parameter name="value">
-<parameter_description> a GValue initialized to GST_TYPE_DATE
-</parameter_description>
-</parameter>
-<parameter name="date">
-<parameter_description> the date to set the value to
-</parameter_description>
-</parameter>
-</parameters>
-<return></return>
-</function>
-
 <function name="gst_structure_get_fourcc">
 <description>
 Sets the #GstFourcc pointed to by @value corresponding to the value of the
@@ -11694,19 +11673,19 @@
 </return>
 </function>
 
-<function name="gst_structure_get_name">
+<function name="gst_element_factory_get_author">
 <description>
-Get the name of @structure as a string.
+Gets the author for this factory.
 
 
 </description>
 <parameters>
-<parameter name="structure">
-<parameter_description> a #GstStructure
+<parameter name="factory">
+<parameter_description> a #GstElementFactory
 </parameter_description>
 </parameter>
 </parameters>
-<return> the name of the structure.
+<return> the author
 </return>
 </function>
 
@@ -11850,6 +11829,34 @@
 </return>
 </function>
 
+<function name="gst_base_sink_set_render_delay">
+<description>
+Set the render delay in @sink to @delay. The render delay is the time 
+between actual rendering of a buffer and its synchronisation time. Some
+devices might delay media rendering which can be compensated for with this
+function. 
+
+After calling this function, this sink will report additional latency and
+other sinks will adjust their latency to delay the rendering of their media.
+
+This function is usually called by subclasses.
+
+Since: 0.10.21
+
+</description>
+<parameters>
+<parameter name="sink">
+<parameter_description> a #GstBaseSink
+</parameter_description>
+</parameter>
+<parameter name="delay">
+<parameter_description> the new delay
+</parameter_description>
+</parameter>
+</parameters>
+<return></return>
+</function>
+
 <function name="gst_structure_fixate_field_nearest_int">
 <description>
 Fixates a #GstStructure by changing the given field to the nearest
@@ -12610,24 +12617,48 @@
 </return>
 </function>
 
-<function name="gst_message_parse_segment_start">
+<function name="gst_control_source_get_value">
 <description>
-Extracts the position and format from the segment start message.
+Gets the value for this #GstControlSource at a given timestamp.
 
-MT safe.
 
 </description>
 <parameters>
-<parameter name="message">
-<parameter_description> A valid #GstMessage of type GST_MESSAGE_SEGMENT_START.
+<parameter name="self">
+<parameter_description> the #GstControlSource object
 </parameter_description>
 </parameter>
-<parameter name="format">
-<parameter_description> Result location for the format, or NULL
+<parameter name="timestamp">
+<parameter_description> the time for which the value should be returned
 </parameter_description>
 </parameter>
-<parameter name="position">
-<parameter_description> Result location for the position, or NULL
+<parameter name="value">
+<parameter_description> the value
+</parameter_description>
+</parameter>
+</parameters>
+<return> FALSE if the value couldn&apos;t be returned, TRUE otherwise.
+</return>
+</function>
+
+<function name="gst_message_parse_segment_start">
+<description>
+Extracts the position and format from the segment start message.
+
+MT safe.
+
+</description>
+<parameters>
+<parameter name="message">
+<parameter_description> A valid #GstMessage of type GST_MESSAGE_SEGMENT_START.
+</parameter_description>
+</parameter>
+<parameter name="format">
+<parameter_description> Result location for the format, or NULL
+</parameter_description>
+</parameter>
+<parameter name="position">
+<parameter_description> Result location for the position, or NULL
 </parameter_description>
 </parameter>
 </parameters>
@@ -12854,28 +12885,29 @@
 </return>
 </function>
 
-<function name="gst_control_source_get_value">
+<function name="gst_object_replace">
 <description>
-Gets the value for this #GstControlSource at a given timestamp.
+Unrefs the #GstObject pointed to by @oldobj, refs @newobj and
+puts @newobj in * oldobj  Be carefull when calling this
+function, it does not take any locks. You might want to lock
+the object owning @oldobj pointer before calling this
+function.
 
+Make sure not to LOCK @oldobj because it might be unreffed
+which could cause a deadlock when it is disposed.
 
 </description>
 <parameters>
-<parameter name="self">
-<parameter_description> the #GstControlSource object
-</parameter_description>
-</parameter>
-<parameter name="timestamp">
-<parameter_description> the time for which the value should be returned
+<parameter name="oldobj">
+<parameter_description> pointer to a place of a #GstObject to replace
 </parameter_description>
 </parameter>
-<parameter name="value">
-<parameter_description> the value
+<parameter name="newobj">
+<parameter_description> a new #GstObject
 </parameter_description>
 </parameter>
 </parameters>
-<return> FALSE if the value couldn&apos;t be returned, TRUE otherwise.
-</return>
+<return></return>
 </function>
 
 <function name="gst_object_ref">
@@ -13743,38 +13775,42 @@
 </return>
 </function>
 
-<function name="gst_element_factory_get_longname">
+<function name="gst_pad_set_getrange_function">
 <description>
-Gets the longname for this factory
-
+Sets the given getrange function for the pad. The getrange function is
+called to produce a new #GstBuffer to start the processing pipeline. see
+#GstPadGetRangeFunction for a description of the getrange function.
 
 </description>
 <parameters>
-<parameter name="factory">
-<parameter_description> a #GstElementFactory
+<parameter name="pad">
+<parameter_description> a source #GstPad.
+</parameter_description>
+</parameter>
+<parameter name="get">
+<parameter_description> the #GstPadGetRangeFunction to set.
 </parameter_description>
 </parameter>
 </parameters>
-<return> the longname
-</return>
+<return></return>
 </function>
 
-<function name="gst_value_list_append_value">
+<function name="gst_preset_get_property_names">
 <description>
-Appends @append_value to the GstValueList in @value.
+Get a the names of the GObject properties that can be used for presets.
+
 
 </description>
 <parameters>
-<parameter name="value">
-<parameter_description> a #GValue of type #GST_TYPE_LIST
-</parameter_description>
-</parameter>
-<parameter name="append_value">
-<parameter_description> the value to append
+<parameter name="preset">
+<parameter_description> a #GObject that implements #GstPreset
 </parameter_description>
 </parameter>
 </parameters>
-<return></return>
+<return> an array of property names which should be freed with g_strfreev() after use.
+
+Since: 0.10.20
+</return>
 </function>
 
 <function name="gst_structure_has_field_typed">
@@ -14365,24 +14401,20 @@
 </return>
 </function>
 
-<function name="gst_pad_set_getrange_function">
+<function name="gst_element_factory_get_longname">
 <description>
-Sets the given getrange function for the pad. The getrange function is
-called to produce a new #GstBuffer to start the processing pipeline. see
-#GstPadGetRangeFunction for a description of the getrange function.
+Gets the longname for this factory
+
 
 </description>
 <parameters>
-<parameter name="pad">
-<parameter_description> a source #GstPad.
-</parameter_description>
-</parameter>
-<parameter name="get">
-<parameter_description> the #GstPadGetRangeFunction to set.
+<parameter name="factory">
+<parameter_description> a #GstElementFactory
 </parameter_description>
 </parameter>
 </parameters>
-<return></return>
+<return> the longname
+</return>
 </function>
 
 <function name="gst_base_src_set_live">
@@ -14908,6 +14940,23 @@
 </return>
 </function>
 
+<function name="gst_value_get_mini_object">
+<description>
+Get the contents of a %GST_TYPE_MINI_OBJECT derived #GValue.
+Does not increase the refcount of the returned object.
+
+
+</description>
+<parameters>
+<parameter name="value">
+<parameter_description>   a valid #GValue of %GST_TYPE_MINI_OBJECT derived type
+</parameter_description>
+</parameter>
+</parameters>
+<return> mini object contents of @value
+</return>
+</function>
+
 <function name="GstXML">
 <description>
 Signals that a new object has been deserialized.
@@ -16141,6 +16190,25 @@
 </return>
 </function>
 
+<function name="gst_base_sink_get_render_delay">
+<description>
+Get the render delay of @sink. see gst_base_sink_set_render_delay() for more
+information about the render delay.
+
+
+</description>
+<parameters>
+<parameter name="sink">
+<parameter_description> a #GstBaseSink
+</parameter_description>
+</parameter>
+</parameters>
+<return> the render delay of @sink.
+
+Since: 0.10.21
+</return>
+</function>
+
 <function name="gst_caps_do_simplify">
 <description>
 Modifies the given @caps inplace into a representation that represents the
@@ -16233,20 +16301,28 @@
 <return></return>
 </function>
 
-<function name="gst_value_get_mini_object">
+<function name="gst_index_entry_assoc_map">
 <description>
-Get the contents of a %GST_TYPE_MINI_OBJECT derived #GValue.
-Does not increase the refcount of the returned object.
+Gets alternative formats associated with the indexentry.
 
 
 </description>
 <parameters>
+<parameter name="entry">
+<parameter_description> the index to search
+</parameter_description>
+</parameter>
+<parameter name="format">
+<parameter_description> the format of the value the find
+</parameter_description>
+</parameter>
 <parameter name="value">
-<parameter_description>   a valid #GValue of %GST_TYPE_MINI_OBJECT derived type
+<parameter_description> a pointer to store the value
 </parameter_description>
 </parameter>
 </parameters>
-<return> mini object contents of @value
+<return> TRUE if there was a value associated with the given
+format.
 </return>
 </function>
 
@@ -18924,24 +19000,20 @@
 </return>
 </function>
 
-<function name="gst_element_provide_clock">
+<function name="gst_index_factory_make">
 <description>
-Get the clock provided by the given element.
-&amp;lt;note&amp;gt;An element is only required to provide a clock in the PAUSED
-state. Some elements can provide a clock in other states.&amp;lt;/note&amp;gt;
+Create a new #GstIndex instance from the
+indexfactory with the given name.
 
 
 </description>
 <parameters>
-<parameter name="element">
-<parameter_description> a #GstElement to query
+<parameter name="name">
+<parameter_description> the name of the factory used to create the instance
 </parameter_description>
 </parameter>
 </parameters>
-<return> the GstClock provided by the element or %NULL
-if no clock could be provided.  Unref after usage.
-
-MT safe.
+<return> A new #GstIndex instance.
 </return>
 </function>
 
@@ -19281,28 +19353,28 @@
 </return>
 </function>
 
-<function name="gst_index_entry_assoc_map">
+<function name="gst_pad_activate_push">
 <description>
-Gets alternative formats associated with the indexentry.
+Activates or deactivates the given pad in push mode via dispatching to the
+pad&apos;s activatepushfunc. For use from within pad activation functions only.
+
+If you don&apos;t know what this is, you probably don&apos;t want to call it.
 
 
 </description>
 <parameters>
-<parameter name="entry">
-<parameter_description> the index to search
-</parameter_description>
-</parameter>
-<parameter name="format">
-<parameter_description> the format of the value the find
+<parameter name="pad">
+<parameter_description> the #GstPad to activate or deactivate.
 </parameter_description>
 </parameter>
-<parameter name="value">
-<parameter_description> a pointer to store the value
+<parameter name="active">
+<parameter_description> whether the pad should be active or not.
 </parameter_description>
 </parameter>
 </parameters>
-<return> TRUE if there was a value associated with the given
-format.
+<return> %TRUE if the operation was successful.
+
+MT safe.
 </return>
 </function>
 
@@ -19709,38 +19781,19 @@
 </return>
 </function>
 
-<function name="gst_element_link_pads_filtered">
+<function name="gst_element_factory_get_klass">
 <description>
-Links the two named pads of the source and destination elements. Side effect
-is that if one of the pads has no parent, it becomes a child of the parent of
-the other element. If they have different parents, the link fails. If @caps
-is not #NULL, makes sure that the caps of the link is a subset of @caps.
+Gets the class for this factory.
 
 
 </description>
 <parameters>
-<parameter name="src">
-<parameter_description> a #GstElement containing the source pad.
-</parameter_description>
-</parameter>
-<parameter name="srcpadname">
-<parameter_description> the name of the #GstPad in source element or NULL for any pad.
-</parameter_description>
-</parameter>
-<parameter name="dest">
-<parameter_description> the #GstElement containing the destination pad.
-</parameter_description>
-</parameter>
-<parameter name="destpadname">
-<parameter_description> the name of the #GstPad in destination element or NULL for any pad.
-</parameter_description>
-</parameter>
-<parameter name="filter">
-<parameter_description> the #GstCaps to filter the link, or #NULL for no filter.
+<parameter name="factory">
+<parameter_description> a #GstElementFactory
 </parameter_description>
 </parameter>
 </parameters>
-<return> TRUE if the pads could be linked, FALSE otherwise.
+<return> the class
 </return>
 </function>
 
@@ -19916,29 +19969,26 @@
 </return>
 </function>
 
-<function name="gst_pad_activate_push">
+<function name="gst_pad_set_setcaps_function">
 <description>
-Activates or deactivates the given pad in push mode via dispatching to the
-pad&apos;s activatepushfunc. For use from within pad activation functions only.
-
-If you don&apos;t know what this is, you probably don&apos;t want to call it.
-
+Sets the given setcaps function for the pad.  The setcaps function
+will be called whenever a buffer with a new media type is pushed or
+pulled from the pad. The pad/element needs to update its internal
+structures to process the new media type. If this new type is not
+acceptable, the setcaps function should return FALSE.
 
 </description>
 <parameters>
 <parameter name="pad">
-<parameter_description> the #GstPad to activate or deactivate.
+<parameter_description> a #GstPad.
 </parameter_description>
 </parameter>
-<parameter name="active">
-<parameter_description> whether the pad should be active or not.
+<parameter name="setcaps">
+<parameter_description> the #GstPadSetCapsFunction to set.
 </parameter_description>
 </parameter>
 </parameters>
-<return> %TRUE if the operation was successful.
-
-MT safe.
-</return>
+<return></return>
 </function>
 
 <function name="gst_event_parse_new_segment_full">
@@ -20185,19 +20235,19 @@
 <return></return>
 </function>
 
-<function name="gst_element_factory_get_author">
+<function name="gst_structure_get_name">
 <description>
-Gets the author for this factory.
+Get the name of @structure as a string.
 
 
 </description>
 <parameters>
-<parameter name="factory">
-<parameter_description> a #GstElementFactory
+<parameter name="structure">
+<parameter_description> a #GstStructure
 </parameter_description>
 </parameter>
 </parameters>
-<return> the author
+<return> the name of the structure.
 </return>
 </function>
 
@@ -21360,26 +21410,29 @@
 </return>
 </function>
 
-<function name="gst_poll_add_fd">
+<function name="gst_query_set_buffering_percent">
 <description>
-Add a file descriptor to the file descriptor set.
+Set the percentage of buffered data. This is a value between 0 and 100.
+The @busy indicator is %TRUE when the buffering is in progress.
 
+Since: 0.10.20
 
 </description>
 <parameters>
-<parameter name="set">
-<parameter_description> a file descriptor set.
+<parameter name="query">
+<parameter_description> A valid #GstQuery of type GST_QUERY_BUFFERING.
 </parameter_description>
 </parameter>
-<parameter name="fd">
-<parameter_description> a file descriptor.
+<parameter name="busy">
+<parameter_description> if buffering is busy
+</parameter_description>
+</parameter>
+<parameter name="percent">
+<parameter_description> a buffering percent
 </parameter_description>
 </parameter>
 </parameters>
-<return> %TRUE if the file descriptor was successfully added to the set.
-
-Since: 0.10.18
-</return>
+<return></return>
 </function>
 
 <function name="gst_element_set_index">
@@ -21910,6 +21963,24 @@
 </return>
 </function>
 
+<function name="gst_value_list_append_value">
+<description>
+Appends @append_value to the GstValueList in @value.
+
+</description>
+<parameters>
+<parameter name="value">
+<parameter_description> a #GValue of type #GST_TYPE_LIST
+</parameter_description>
+</parameter>
+<parameter name="append_value">
+<parameter_description> the value to append
+</parameter_description>
+</parameter>
+</parameters>
+<return></return>
+</function>
+
 <function name="gst_tag_list_get_boolean">
 <description>
 Copies the contents for the given tag into the value, merging multiple values
@@ -22606,44 +22677,6 @@
 <return></return>
 </function>
 
-<function name="gst_filter_run">
-<description>
-Iterates over the elements in @list, calling @func with the
-list item data for each item.  If @func returns TRUE, @data is
-prepended to the list of results returned.  If @first is true,
-the search is halted after the first result is found.
-
-Since gst_filter_run() knows nothing about the type of @data, no
-reference will be taken (if @data refers to an object) and no copy of
- data wil be made in any other way when prepending @data to the list of
-results.
-
-
-</description>
-<parameters>
-<parameter name="list">
-<parameter_description> a linked list
-</parameter_description>
-</parameter>
-<parameter name="func">
-<parameter_description> the function to execute for each item
-</parameter_description>
-</parameter>
-<parameter name="first">
-<parameter_description> flag to stop execution after a successful item
-</parameter_description>
-</parameter>
-<parameter name="user_data">
-<parameter_description> user data
-</parameter_description>
-</parameter>
-</parameters>
-<return> the list of results. Free with g_list_free() when no longer needed
-(the data contained in the list is a flat copy and does need to be
-unreferenced or freed).
-</return>
-</function>
-
 <function name="gst_element_change_state">
 <description>
 Perform @transition on @element.
@@ -23181,19 +23214,38 @@
 <return></return>
 </function>
 
-<function name="gst_element_factory_get_klass">
+<function name="gst_element_link_pads_filtered">
 <description>
-Gets the class for this factory.
+Links the two named pads of the source and destination elements. Side effect
+is that if one of the pads has no parent, it becomes a child of the parent of
+the other element. If they have different parents, the link fails. If @caps
+is not #NULL, makes sure that the caps of the link is a subset of @caps.
 
 
 </description>
 <parameters>
-<parameter name="factory">
-<parameter_description> a #GstElementFactory
+<parameter name="src">
+<parameter_description> a #GstElement containing the source pad.
+</parameter_description>
+</parameter>
+<parameter name="srcpadname">
+<parameter_description> the name of the #GstPad in source element or NULL for any pad.
+</parameter_description>
+</parameter>
+<parameter name="dest">
+<parameter_description> the #GstElement containing the destination pad.
+</parameter_description>
+</parameter>
+<parameter name="destpadname">
+<parameter_description> the name of the #GstPad in destination element or NULL for any pad.
+</parameter_description>
+</parameter>
+<parameter name="filter">
+<parameter_description> the #GstCaps to filter the link, or #NULL for no filter.
 </parameter_description>
 </parameter>
 </parameters>
-<return> the class
+<return> TRUE if the pads could be linked, FALSE otherwise.
 </return>
 </function>
 
@@ -23420,29 +23472,26 @@
 </return>
 </function>
 
-<function name="gst_query_set_buffering_percent">
+<function name="gst_poll_add_fd">
 <description>
-Set the percentage of buffered data. This is a value between 0 and 100.
-The @busy indicator is %TRUE when the buffering is in progress.
+Add a file descriptor to the file descriptor set.
 
-Since: 0.10.20
 
 </description>
 <parameters>
-<parameter name="query">
-<parameter_description> A valid #GstQuery of type GST_QUERY_BUFFERING.
-</parameter_description>
-</parameter>
-<parameter name="busy">
-<parameter_description> if buffering is busy
+<parameter name="set">
+<parameter_description> a file descriptor set.
 </parameter_description>
 </parameter>
-<parameter name="percent">
-<parameter_description> a buffering percent
+<parameter name="fd">
+<parameter_description> a file descriptor.
 </parameter_description>
 </parameter>
 </parameters>
-<return></return>
+<return> %TRUE if the file descriptor was successfully added to the set.
+
+Since: 0.10.18
+</return>
 </function>
 
 <function name="gst_object_suggest_next_sync">
@@ -23546,6 +23595,23 @@
 This function will run a main loop from the default main context when
 polling.
 
+You should never use this function, since it is pure evil. This is
+especially true for GUI applications based on Gtk+ or Qt, but also for any
+other non-trivial application that uses the GLib main loop. As this function
+runs a GLib main loop, any callback attached to the default GLib main
+context may be invoked. This could be timeouts, GUI events, I/O events etc.;
+even if gst_bus_poll() is called with a 0 timeout. Any of these callbacks
+may do things you do not expect, e.g. destroy the main application window or
+some other resource; change other application state; display a dialog and
+run another main loop until the user clicks it away. In short, using this
+function may add a lot of complexity to your code through unexpected
+re-entrancy and unexpected changes to your application&apos;s state.
+
+For 0 timeouts use gst_bus_pop_filtered() instead of this function; for
+other short timeouts use gst_bus_timed_pop_filtered(); everything else is
+better handled by setting up an asynchronous bus watch and doing things
+from there.
+
 
 </description>
 <parameters>
@@ -23559,7 +23625,8 @@
 </parameter_description>
 </parameter>
 <parameter name="timeout">
-<parameter_description> the poll timeout, as a #GstClockTimeDiff, or -1 to poll indefinitely.
+<parameter_description> the poll timeout, as a #GstClockTimeDiff, or -1 to poll
+indefinitely.
 </parameter_description>
 </parameter>
 </parameters>
@@ -23727,33 +23794,28 @@
 <return></return>
 </function>
 
-<function name="gst_element_register">
+<function name="gst_tag_list_merge">
 <description>
-Create a new elementfactory capable of instantiating objects of the
- type and add the factory to @plugin.
+Merges the two given lists into a new list. If one of the lists is NULL, a
+copy of the other is returned. If both lists are NULL, NULL is returned.
 
 
 </description>
 <parameters>
-<parameter name="plugin">
-<parameter_description> #GstPlugin to register the element with, or NULL for a static
-element (note that passing NULL only works in GStreamer 0.10.13 and later)
-</parameter_description>
-</parameter>
-<parameter name="name">
-<parameter_description> name of elements of this type
+<parameter name="list1">
+<parameter_description> first list to merge
 </parameter_description>
 </parameter>
-<parameter name="rank">
-<parameter_description> rank of element (higher rank means more importance when autoplugging)
+<parameter name="list2">
+<parameter_description> second list to merge
 </parameter_description>
 </parameter>
-<parameter name="type">
-<parameter_description> GType of element to register
+<parameter name="mode">
+<parameter_description> the mode to use
 </parameter_description>
 </parameter>
 </parameters>
-<return> TRUE, if the registering succeeded, FALSE on error
+<return> the new list
 </return>
 </function>
 
@@ -23884,28 +23946,33 @@
 </return>
 </function>
 
-<function name="gst_tag_list_merge">
+<function name="gst_element_register">
 <description>
-Merges the two given lists into a new list. If one of the lists is NULL, a
-copy of the other is returned. If both lists are NULL, NULL is returned.
+Create a new elementfactory capable of instantiating objects of the
+ type and add the factory to @plugin.
 
 
 </description>
 <parameters>
-<parameter name="list1">
-<parameter_description> first list to merge
+<parameter name="plugin">
+<parameter_description> #GstPlugin to register the element with, or NULL for a static
+element (note that passing NULL only works in GStreamer 0.10.13 and later)
 </parameter_description>
 </parameter>
-<parameter name="list2">
-<parameter_description> second list to merge
+<parameter name="name">
+<parameter_description> name of elements of this type
 </parameter_description>
 </parameter>
-<parameter name="mode">
-<parameter_description> the mode to use
+<parameter name="rank">
+<parameter_description> rank of element (higher rank means more importance when autoplugging)
+</parameter_description>
+</parameter>
+<parameter name="type">
+<parameter_description> GType of element to register
 </parameter_description>
 </parameter>
 </parameters>
-<return> the new list
+<return> TRUE, if the registering succeeded, FALSE on error
 </return>
 </function>
 

Modified: gstreamermm/trunk/gstreamer/src/gst_methods.defs
==============================================================================
--- gstreamermm/trunk/gstreamer/src/gst_methods.defs	(original)
+++ gstreamermm/trunk/gstreamer/src/gst_methods.defs	Mon Jul 21 03:25:26 2008
@@ -499,6 +499,8 @@
     '("demux" "GST_STREAM_ERROR_DEMUX")
     '("mux" "GST_STREAM_ERROR_MUX")
     '("format" "GST_STREAM_ERROR_FORMAT")
+    '("decrypt" "GST_STREAM_ERROR_DECRYPT")
+    '("decrypt-nokey" "GST_STREAM_ERROR_DECRYPT_NOKEY")
     '("num-errors" "GST_STREAM_ERROR_NUM_ERRORS")
   )
 )
@@ -843,6 +845,16 @@
   )
 )
 
+(define-flags ParseFlags
+  (in-module "Gst")
+  (c-name "GstParseFlags")
+  (gtype-id "GST_TYPE_PARSE_FLAGS")
+  (values
+    '("none" "GST_PARSE_FLAG_NONE")
+    '("fatal-errors" "GST_PARSE_FLAG_FATAL_ERRORS")
+  )
+)
+
 (define-flags PipelineFlags
   (in-module "Gst")
   (c-name "GstPipelineFlags")
@@ -900,6 +912,19 @@
     '("segment" "GST_QUERY_SEGMENT")
     '("convert" "GST_QUERY_CONVERT")
     '("formats" "GST_QUERY_FORMATS")
+    '("buffering" "GST_QUERY_BUFFERING")
+  )
+)
+
+(define-enum BufferingMode
+  (in-module "Gst")
+  (c-name "GstBufferingMode")
+  (gtype-id "GST_TYPE_BUFFERING_MODE")
+  (values
+    '("stream" "GST_BUFFERING_STREAM")
+    '("download" "GST_BUFFERING_DOWNLOAD")
+    '("timeshift" "GST_BUFFERING_TIMESHIFT")
+    '("live" "GST_BUFFERING_LIVE")
   )
 )
 
@@ -2750,6 +2775,11 @@
   (return-type "GType")
 )
 
+(define-function gst_buffering_mode_get_type
+  (c-name "gst_buffering_mode_get_type")
+  (return-type "GType")
+)
+
 (define-function gst_tag_merge_mode_get_type
   (c-name "gst_tag_merge_mode_get_type")
   (return-type "GType")
@@ -2785,6 +2815,11 @@
   (return-type "GType")
 )
 
+(define-function gst_parse_flags_get_type
+  (c-name "gst_parse_flags_get_type")
+  (return-type "GType")
+)
+
 
 
 ;; From gsterror.h
@@ -2856,6 +2891,15 @@
   (return-type "const-GstStructure*")
 )
 
+(define-method has_name
+  (of-object "GstEvent")
+  (c-name "gst_event_has_name")
+  (return-type "gboolean")
+  (parameters
+    '("const-gchar*" "name")
+  )
+)
+
 (define-function gst_event_new_flush_start
   (c-name "gst_event_new_flush_start")
   (return-type "GstEvent*")
@@ -3931,7 +3975,17 @@
   (parameters
     '("GstObject*" "src")
     '("GError*" "error")
-    '("gchar*" "debug")
+    '("const-gchar*" "debug")
+  )
+)
+
+(define-method parse_error
+  (of-object "GstMessage")
+  (c-name "gst_message_parse_error")
+  (return-type "none")
+  (parameters
+    '("GError**" "gerror")
+    '("gchar**" "debug")
   )
 )
 
@@ -3941,7 +3995,17 @@
   (parameters
     '("GstObject*" "src")
     '("GError*" "error")
-    '("gchar*" "debug")
+    '("const-gchar*" "debug")
+  )
+)
+
+(define-method parse_warning
+  (of-object "GstMessage")
+  (c-name "gst_message_parse_warning")
+  (return-type "none")
+  (parameters
+    '("GError**" "gerror")
+    '("gchar**" "debug")
   )
 )
 
@@ -3951,7 +4015,17 @@
   (parameters
     '("GstObject*" "src")
     '("GError*" "error")
-    '("gchar*" "debug")
+    '("const-gchar*" "debug")
+  )
+)
+
+(define-method parse_info
+  (of-object "GstMessage")
+  (c-name "gst_message_parse_info")
+  (return-type "none")
+  (parameters
+    '("GError**" "gerror")
+    '("gchar**" "debug")
   )
 )
 
@@ -3964,6 +4038,15 @@
   )
 )
 
+(define-method parse_tag
+  (of-object "GstMessage")
+  (c-name "gst_message_parse_tag")
+  (return-type "none")
+  (parameters
+    '("GstTagList**" "tag_list")
+  )
+)
+
 (define-function gst_message_new_buffering
   (c-name "gst_message_new_buffering")
   (return-type "GstMessage*")
@@ -3973,6 +4056,39 @@
   )
 )
 
+(define-method parse_buffering
+  (of-object "GstMessage")
+  (c-name "gst_message_parse_buffering")
+  (return-type "none")
+  (parameters
+    '("gint*" "percent")
+  )
+)
+
+(define-method set_buffering_stats
+  (of-object "GstMessage")
+  (c-name "gst_message_set_buffering_stats")
+  (return-type "none")
+  (parameters
+    '("GstBufferingMode" "mode")
+    '("gint" "avg_in")
+    '("gint" "avg_out")
+    '("gint64" "buffering_left")
+  )
+)
+
+(define-method parse_buffering_stats
+  (of-object "GstMessage")
+  (c-name "gst_message_parse_buffering_stats")
+  (return-type "none")
+  (parameters
+    '("GstBufferingMode*" "mode")
+    '("gint*" "avg_in")
+    '("gint*" "avg_out")
+    '("gint64*" "buffering_left")
+  )
+)
+
 (define-function gst_message_new_state_changed
   (c-name "gst_message_new_state_changed")
   (return-type "GstMessage*")
@@ -3984,6 +4100,17 @@
   )
 )
 
+(define-method parse_state_changed
+  (of-object "GstMessage")
+  (c-name "gst_message_parse_state_changed")
+  (return-type "none")
+  (parameters
+    '("GstState*" "oldstate")
+    '("GstState*" "newstate")
+    '("GstState*" "pending")
+  )
+)
+
 (define-function gst_message_new_state_dirty
   (c-name "gst_message_new_state_dirty")
   (return-type "GstMessage*")
@@ -4002,6 +4129,16 @@
   )
 )
 
+(define-method parse_clock_provide
+  (of-object "GstMessage")
+  (c-name "gst_message_parse_clock_provide")
+  (return-type "none")
+  (parameters
+    '("GstClock**" "clock")
+    '("gboolean*" "ready")
+  )
+)
+
 (define-function gst_message_new_clock_lost
   (c-name "gst_message_new_clock_lost")
   (return-type "GstMessage*")
@@ -4011,6 +4148,15 @@
   )
 )
 
+(define-method parse_clock_lost
+  (of-object "GstMessage")
+  (c-name "gst_message_parse_clock_lost")
+  (return-type "none")
+  (parameters
+    '("GstClock**" "clock")
+  )
+)
+
 (define-function gst_message_new_new_clock
   (c-name "gst_message_new_new_clock")
   (return-type "GstMessage*")
@@ -4020,6 +4166,15 @@
   )
 )
 
+(define-method parse_new_clock
+  (of-object "GstMessage")
+  (c-name "gst_message_parse_new_clock")
+  (return-type "none")
+  (parameters
+    '("GstClock**" "clock")
+  )
+)
+
 (define-function gst_message_new_application
   (c-name "gst_message_new_application")
   (return-type "GstMessage*")
@@ -4048,6 +4203,16 @@
   )
 )
 
+(define-method parse_segment_start
+  (of-object "GstMessage")
+  (c-name "gst_message_parse_segment_start")
+  (return-type "none")
+  (parameters
+    '("GstFormat*" "format")
+    '("gint64*" "position")
+  )
+)
+
 (define-function gst_message_new_segment_done
   (c-name "gst_message_new_segment_done")
   (return-type "GstMessage*")
@@ -4058,30 +4223,33 @@
   )
 )
 
-(define-function gst_message_new_duration
-  (c-name "gst_message_new_duration")
-  (return-type "GstMessage*")
+(define-method parse_segment_done
+  (of-object "GstMessage")
+  (c-name "gst_message_parse_segment_done")
+  (return-type "none")
   (parameters
-    '("GstObject*" "src")
-    '("GstFormat" "format")
-    '("gint64" "duration")
+    '("GstFormat*" "format")
+    '("gint64*" "position")
   )
 )
 
-(define-function gst_message_new_async_start
-  (c-name "gst_message_new_async_start")
+(define-function gst_message_new_duration
+  (c-name "gst_message_new_duration")
   (return-type "GstMessage*")
   (parameters
     '("GstObject*" "src")
-    '("gboolean" "new_base_time")
+    '("GstFormat" "format")
+    '("gint64" "duration")
   )
 )
 
-(define-function gst_message_new_async_done
-  (c-name "gst_message_new_async_done")
-  (return-type "GstMessage*")
+(define-method parse_duration
+  (of-object "GstMessage")
+  (c-name "gst_message_parse_duration")
+  (return-type "none")
   (parameters
-    '("GstObject*" "src")
+    '("GstFormat*" "format")
+    '("gint64*" "duration")
   )
 )
 
@@ -4093,139 +4261,39 @@
   )
 )
 
-(define-function gst_message_new_custom
-  (c-name "gst_message_new_custom")
-  (return-type "GstMessage*")
-  (parameters
-    '("GstMessageType" "type")
-    '("GstObject*" "src")
-    '("GstStructure*" "structure")
-  )
-)
-
-(define-method parse_error
-  (of-object "GstMessage")
-  (c-name "gst_message_parse_error")
-  (return-type "none")
-  (parameters
-    '("GError**" "gerror")
-    '("gchar**" "debug")
-  )
-)
-
-(define-method parse_warning
-  (of-object "GstMessage")
-  (c-name "gst_message_parse_warning")
-  (return-type "none")
-  (parameters
-    '("GError**" "gerror")
-    '("gchar**" "debug")
-  )
-)
-
-(define-method parse_info
-  (of-object "GstMessage")
-  (c-name "gst_message_parse_info")
-  (return-type "none")
-  (parameters
-    '("GError**" "gerror")
-    '("gchar**" "debug")
-  )
-)
-
-(define-method parse_tag
-  (of-object "GstMessage")
-  (c-name "gst_message_parse_tag")
-  (return-type "none")
-  (parameters
-    '("GstTagList**" "tag_list")
-  )
-)
-
-(define-method parse_buffering
-  (of-object "GstMessage")
-  (c-name "gst_message_parse_buffering")
-  (return-type "none")
-  (parameters
-    '("gint*" "percent")
-  )
-)
-
-(define-method parse_state_changed
-  (of-object "GstMessage")
-  (c-name "gst_message_parse_state_changed")
-  (return-type "none")
-  (parameters
-    '("GstState*" "oldstate")
-    '("GstState*" "newstate")
-    '("GstState*" "pending")
-  )
-)
-
-(define-method parse_clock_provide
-  (of-object "GstMessage")
-  (c-name "gst_message_parse_clock_provide")
-  (return-type "none")
-  (parameters
-    '("GstClock**" "clock")
-    '("gboolean*" "ready")
-  )
-)
-
-(define-method parse_clock_lost
-  (of-object "GstMessage")
-  (c-name "gst_message_parse_clock_lost")
-  (return-type "none")
-  (parameters
-    '("GstClock**" "clock")
-  )
-)
-
-(define-method parse_new_clock
-  (of-object "GstMessage")
-  (c-name "gst_message_parse_new_clock")
-  (return-type "none")
-  (parameters
-    '("GstClock**" "clock")
-  )
-)
-
-(define-method parse_segment_start
-  (of-object "GstMessage")
-  (c-name "gst_message_parse_segment_start")
-  (return-type "none")
+(define-function gst_message_new_async_start
+  (c-name "gst_message_new_async_start")
+  (return-type "GstMessage*")
   (parameters
-    '("GstFormat*" "format")
-    '("gint64*" "position")
+    '("GstObject*" "src")
+    '("gboolean" "new_base_time")
   )
 )
 
-(define-method parse_segment_done
+(define-method parse_async_start
   (of-object "GstMessage")
-  (c-name "gst_message_parse_segment_done")
+  (c-name "gst_message_parse_async_start")
   (return-type "none")
   (parameters
-    '("GstFormat*" "format")
-    '("gint64*" "position")
+    '("gboolean*" "new_base_time")
   )
 )
 
-(define-method parse_duration
-  (of-object "GstMessage")
-  (c-name "gst_message_parse_duration")
-  (return-type "none")
+(define-function gst_message_new_async_done
+  (c-name "gst_message_new_async_done")
+  (return-type "GstMessage*")
   (parameters
-    '("GstFormat*" "format")
-    '("gint64*" "duration")
+    '("GstObject*" "src")
   )
 )
 
-(define-method parse_async_start
-  (of-object "GstMessage")
-  (c-name "gst_message_parse_async_start")
-  (return-type "none")
+(define-function gst_message_new_custom
+  (c-name "gst_message_new_custom")
+  (return-type "GstMessage*")
   (parameters
-    '("gboolean*" "new_base_time")
+    '("GstMessageType" "type")
+    '("GstObject*" "src")
+    '("GstStructure*" "structure")
   )
 )
 
@@ -5181,6 +5249,24 @@
   (return-type "GQuark")
 )
 
+(define-function gst_parse_context_new
+  (c-name "gst_parse_context_new")
+  (is-constructor-of "GstParseContext")
+  (return-type "GstParseContext*")
+)
+
+(define-method get_missing_elements
+  (of-object "GstParseContext")
+  (c-name "gst_parse_context_get_missing_elements")
+  (return-type "gchar**")
+)
+
+(define-method free
+  (of-object "GstParseContext")
+  (c-name "gst_parse_context_free")
+  (return-type "none")
+)
+
 (define-function gst_parse_launch
   (c-name "gst_parse_launch")
   (return-type "GstElement*")
@@ -5199,6 +5285,28 @@
   )
 )
 
+(define-function gst_parse_launch_full
+  (c-name "gst_parse_launch_full")
+  (return-type "GstElement*")
+  (parameters
+    '("const-gchar*" "pipeline_description")
+    '("GstParseContext*" "context")
+    '("GstParseFlags" "flags")
+    '("GError**" "error")
+  )
+)
+
+(define-function gst_parse_launchv_full
+  (c-name "gst_parse_launchv_full")
+  (return-type "GstElement*")
+  (parameters
+    '("const-gchar**" "argv")
+    '("GstParseContext*" "context")
+    '("GstParseFlags" "flags")
+    '("GError**" "error")
+  )
+)
+
 
 
 ;; From gstpipeline.h
@@ -5645,6 +5753,86 @@
 
 
 
+;; From gstpreset.h
+
+(define-function gst_preset_get_type
+  (c-name "gst_preset_get_type")
+  (return-type "GType")
+)
+
+(define-method get_preset_names
+  (of-object "GstPreset")
+  (c-name "gst_preset_get_preset_names")
+  (return-type "gchar**")
+)
+
+(define-method get_property_names
+  (of-object "GstPreset")
+  (c-name "gst_preset_get_property_names")
+  (return-type "gchar**")
+)
+
+(define-method load_preset
+  (of-object "GstPreset")
+  (c-name "gst_preset_load_preset")
+  (return-type "gboolean")
+  (parameters
+    '("const-gchar*" "name")
+  )
+)
+
+(define-method save_preset
+  (of-object "GstPreset")
+  (c-name "gst_preset_save_preset")
+  (return-type "gboolean")
+  (parameters
+    '("const-gchar*" "name")
+  )
+)
+
+(define-method rename_preset
+  (of-object "GstPreset")
+  (c-name "gst_preset_rename_preset")
+  (return-type "gboolean")
+  (parameters
+    '("const-gchar*" "old_name")
+    '("const-gchar*" "new_name")
+  )
+)
+
+(define-method delete_preset
+  (of-object "GstPreset")
+  (c-name "gst_preset_delete_preset")
+  (return-type "gboolean")
+  (parameters
+    '("const-gchar*" "name")
+  )
+)
+
+(define-method set_meta
+  (of-object "GstPreset")
+  (c-name "gst_preset_set_meta")
+  (return-type "gboolean")
+  (parameters
+    '("const-gchar*" "name")
+    '("const-gchar*" "tag")
+    '("const-gchar*" "value")
+  )
+)
+
+(define-method get_meta
+  (of-object "GstPreset")
+  (c-name "gst_preset_get_meta")
+  (return-type "gboolean")
+  (parameters
+    '("const-gchar*" "name")
+    '("const-gchar*" "tag")
+    '("gchar**" "value")
+  )
+)
+
+
+
 ;; From gstquery.h
 
 (define-method get_name
@@ -5941,6 +6129,82 @@
   )
 )
 
+(define-function gst_query_new_buffering
+  (c-name "gst_query_new_buffering")
+  (return-type "GstQuery*")
+  (parameters
+    '("GstFormat" "format")
+  )
+)
+
+(define-method set_buffering_percent
+  (of-object "GstQuery")
+  (c-name "gst_query_set_buffering_percent")
+  (return-type "none")
+  (parameters
+    '("gboolean" "busy")
+    '("gint" "percent")
+  )
+)
+
+(define-method parse_buffering_percent
+  (of-object "GstQuery")
+  (c-name "gst_query_parse_buffering_percent")
+  (return-type "none")
+  (parameters
+    '("gboolean*" "busy")
+    '("gint*" "percent")
+  )
+)
+
+(define-method set_buffering_stats
+  (of-object "GstQuery")
+  (c-name "gst_query_set_buffering_stats")
+  (return-type "none")
+  (parameters
+    '("GstBufferingMode" "mode")
+    '("gint" "avg_in")
+    '("gint" "avg_out")
+    '("gint64" "buffering_left")
+  )
+)
+
+(define-method parse_buffering_stats
+  (of-object "GstQuery")
+  (c-name "gst_query_parse_buffering_stats")
+  (return-type "none")
+  (parameters
+    '("GstBufferingMode*" "mode")
+    '("gint*" "avg_in")
+    '("gint*" "avg_out")
+    '("gint64*" "buffering_left")
+  )
+)
+
+(define-method set_buffering_range
+  (of-object "GstQuery")
+  (c-name "gst_query_set_buffering_range")
+  (return-type "none")
+  (parameters
+    '("GstFormat" "format")
+    '("gint64" "start")
+    '("gint64" "stop")
+    '("gint64" "estimated_total")
+  )
+)
+
+(define-method parse_buffering_range
+  (of-object "GstQuery")
+  (c-name "gst_query_parse_buffering_range")
+  (return-type "none")
+  (parameters
+    '("GstFormat*" "format")
+    '("gint64*" "start")
+    '("gint64*" "stop")
+    '("gint64*" "estimated_total")
+  )
+)
+
 
 
 ;; From gstregistry.h
@@ -6142,6 +6406,12 @@
   (return-type "GstSegment*")
 )
 
+(define-method copy
+  (of-object "GstSegment")
+  (c-name "gst_segment_copy")
+  (return-type "GstSegment*")
+)
+
 (define-method free
   (of-object "GstSegment")
   (c-name "gst_segment_free")
@@ -7539,6 +7809,18 @@
   )
 )
 
+(define-method suggest_simple
+  (of-object "GstTypeFind")
+  (c-name "gst_type_find_suggest_simple")
+  (return-type "none")
+  (parameters
+    '("guint" "probability")
+    '("const-char*" "media_type")
+    '("const-char*" "fieldname")
+  )
+  (varargs #t)
+)
+
 (define-method get_length
   (of-object "GstTypeFind")
   (c-name "gst_type_find_get_length")
@@ -8112,6 +8394,15 @@
   (varargs #t)
 )
 
+(define-method find_unlinked_pad
+  (of-object "GstBin")
+  (c-name "gst_bin_find_unlinked_pad")
+  (return-type "GstPad*")
+  (parameters
+    '("GstPadDirection" "direction")
+  )
+)
+
 (define-method find_unconnected_pad
   (of-object "GstBin")
   (c-name "gst_bin_find_unconnected_pad")
@@ -8167,6 +8458,17 @@
   )
 )
 
+(define-method add_data_probe_full
+  (of-object "GstPad")
+  (c-name "gst_pad_add_data_probe_full")
+  (return-type "gulong")
+  (parameters
+    '("GCallback" "handler")
+    '("gpointer" "data")
+    '("GDestroyNotify" "notify")
+  )
+)
+
 (define-method remove_data_probe
   (of-object "GstPad")
   (c-name "gst_pad_remove_data_probe")
@@ -8186,6 +8488,17 @@
   )
 )
 
+(define-method add_event_probe_full
+  (of-object "GstPad")
+  (c-name "gst_pad_add_event_probe_full")
+  (return-type "gulong")
+  (parameters
+    '("GCallback" "handler")
+    '("gpointer" "data")
+    '("GDestroyNotify" "notify")
+  )
+)
+
 (define-method remove_event_probe
   (of-object "GstPad")
   (c-name "gst_pad_remove_event_probe")
@@ -8205,6 +8518,17 @@
   )
 )
 
+(define-method add_buffer_probe_full
+  (of-object "GstPad")
+  (c-name "gst_pad_add_buffer_probe_full")
+  (return-type "gulong")
+  (parameters
+    '("GCallback" "handler")
+    '("gpointer" "data")
+    '("GDestroyNotify" "notify")
+  )
+)
+
 (define-method remove_buffer_probe
   (of-object "GstPad")
   (c-name "gst_pad_remove_buffer_probe")
@@ -8238,7 +8562,19 @@
   (return-type "GstElement*")
   (parameters
     '("const-gchar*" "bin_description")
-    '("gboolean" "ghost_unconnected_pads")
+    '("gboolean" "ghost_unlinked_pads")
+    '("GError**" "err")
+  )
+)
+
+(define-function gst_parse_bin_from_description_full
+  (c-name "gst_parse_bin_from_description_full")
+  (return-type "GstElement*")
+  (parameters
+    '("const-gchar*" "bin_description")
+    '("gboolean" "ghost_unlinked_pads")
+    '("GstParseContext*" "context")
+    '("GstParseFlags" "flags")
     '("GError**" "err")
   )
 )
@@ -9017,6 +9353,31 @@
   (return-type "GstClockTime")
 )
 
+(define-method set_render_delay
+  (of-object "GstBaseSink")
+  (c-name "gst_base_sink_set_render_delay")
+  (return-type "none")
+  (parameters
+    '("GstClockTime" "delay")
+  )
+)
+
+(define-method get_render_delay
+  (of-object "GstBaseSink")
+  (c-name "gst_base_sink_get_render_delay")
+  (return-type "GstClockTime")
+)
+
+(define-method wait_clock
+  (of-object "GstBaseSink")
+  (c-name "gst_base_sink_wait_clock")
+  (return-type "GstClockReturn")
+  (parameters
+    '("GstClockTime" "time")
+    '("GstClockTimeDiff*" "jitter")
+  )
+)
+
 (define-method wait_eos
   (of-object "GstBaseSink")
   (c-name "gst_base_sink_wait_eos")
@@ -10236,6 +10597,35 @@
   )
 )
 
+(define-function gst_check_setup_src_pad_by_name
+  (c-name "gst_check_setup_src_pad_by_name")
+  (return-type "GstPad*")
+  (parameters
+    '("GstElement*" "element")
+    '("GstStaticPadTemplate*" "template")
+    '("gchar*" "name")
+  )
+)
+
+(define-function gst_check_setup_sink_pad_by_name
+  (c-name "gst_check_setup_sink_pad_by_name")
+  (return-type "GstPad*")
+  (parameters
+    '("GstElement*" "element")
+    '("GstStaticPadTemplate*" "template")
+    '("gchar*" "name")
+  )
+)
+
+(define-function gst_check_teardown_pad_by_name
+  (c-name "gst_check_teardown_pad_by_name")
+  (return-type "none")
+  (parameters
+    '("GstElement*" "element")
+    '("gchar*" "name")
+  )
+)
+
 (define-function gst_check_teardown_src_pad
   (c-name "gst_check_teardown_src_pad")
   (return-type "none")

Modified: gstreamermm/trunk/gstreamer/src/gst_signals.defs
==============================================================================
--- gstreamermm/trunk/gstreamer/src/gst_signals.defs	(original)
+++ gstreamermm/trunk/gstreamer/src/gst_signals.defs	Mon Jul 21 03:25:26 2008
@@ -1,66 +1,3 @@
-;; Note: the following signals need to be modified manually each time
-;; this file is regenerated:
-;; sync-message (GstBus)
-;; message (GstBus)
-;; child-added (GstChildProxy)
-;; child-removed (GstChildProxy)
-;; parent-set (GstObject)
-;; parent-unset (GstObject)
-;; have-data (GstPad)
-;; plugin-added (GstRegistry)
-;; feature-added (GstRegistry)
-;; object-loaded (GstXML)
-;;
-;; The following signals must also be written out:
-;; new-uri (GstURIHandler)
-
-;; From GstBaseSrc
-
-(define-property name
-  (of-object "GstBaseSrc")
-  (prop-type "GParamString")
-  (docs "The name of the object")
-  (readable #t)
-  (writable #t)
-  (construct-only #f)
-)
-
-(define-property blocksize
-  (of-object "GstBaseSrc")
-  (prop-type "GParamULong")
-  (docs "Size in bytes to read per buffer (0 = default)")
-  (readable #t)
-  (writable #t)
-  (construct-only #f)
-)
-
-(define-property num-buffers
-  (of-object "GstBaseSrc")
-  (prop-type "GParamInt")
-  (docs "Number of buffers to output before sending EOS")
-  (readable #t)
-  (writable #t)
-  (construct-only #f)
-)
-
-(define-property typefind
-  (of-object "GstBaseSrc")
-  (prop-type "GParamBoolean")
-  (docs "Run typefind before negotiating")
-  (readable #t)
-  (writable #t)
-  (construct-only #f)
-)
-
-(define-property do-timestamp
-  (of-object "GstBaseSrc")
-  (prop-type "GParamBoolean")
-  (docs "Apply current stream time to buffers")
-  (readable #t)
-  (writable #t)
-  (construct-only #f)
-)
-
 ;; From GstBus
 
 (define-signal sync-message
@@ -342,7 +279,7 @@
   (return-type "void")
   (when "last")
   (parameters
-    '("GObject*" "p0")
+    '("GstObject*" "p0")
   )
 )
 
@@ -351,7 +288,7 @@
   (return-type "void")
   (when "last")
   (parameters
-    '("GObject*" "p0")
+    '("GstObject*" "p0")
   )
 )
 
@@ -676,3 +613,245 @@
   (construct-only #f)
 )
 
+;; From GstBaseSrc
+
+(define-property name
+  (of-object "GstBaseSrc")
+  (prop-type "GParamString")
+  (docs "The name of the object")
+  (readable #t)
+  (writable #t)
+  (construct-only #f)
+)
+
+(define-property blocksize
+  (of-object "GstBaseSrc")
+  (prop-type "GParamULong")
+  (docs "Size in bytes to read per buffer (0 = default)")
+  (readable #t)
+  (writable #t)
+  (construct-only #f)
+)
+
+(define-property num-buffers
+  (of-object "GstBaseSrc")
+  (prop-type "GParamInt")
+  (docs "Number of buffers to output before sending EOS")
+  (readable #t)
+  (writable #t)
+  (construct-only #f)
+)
+
+(define-property typefind
+  (of-object "GstBaseSrc")
+  (prop-type "GParamBoolean")
+  (docs "Run typefind before negotiating")
+  (readable #t)
+  (writable #t)
+  (construct-only #f)
+)
+
+(define-property do-timestamp
+  (of-object "GstBaseSrc")
+  (prop-type "GParamBoolean")
+  (docs "Apply current stream time to buffers")
+  (readable #t)
+  (writable #t)
+  (construct-only #f)
+)
+
+;; From GstBaseSink
+
+(define-property name
+  (of-object "GstBaseSink")
+  (prop-type "GParamString")
+  (docs "The name of the object")
+  (readable #t)
+  (writable #t)
+  (construct-only #f)
+)
+
+(define-property preroll-queue-len
+  (of-object "GstBaseSink")
+  (prop-type "GParamUInt")
+  (docs "Number of buffers to queue during preroll")
+  (readable #t)
+  (writable #t)
+  (construct-only #f)
+)
+
+(define-property sync
+  (of-object "GstBaseSink")
+  (prop-type "GParamBoolean")
+  (docs "Sync on the clock")
+  (readable #t)
+  (writable #t)
+  (construct-only #f)
+)
+
+(define-property max-lateness
+  (of-object "GstBaseSink")
+  (prop-type "GParamInt64")
+  (docs "Maximum number of nanoseconds that a buffer can be late before it is dropped (-1 unlimited)")
+  (readable #t)
+  (writable #t)
+  (construct-only #f)
+)
+
+(define-property qos
+  (of-object "GstBaseSink")
+  (prop-type "GParamBoolean")
+  (docs "Generate Quality-of-Service events upstream")
+  (readable #t)
+  (writable #t)
+  (construct-only #f)
+)
+
+(define-property async
+  (of-object "GstBaseSink")
+  (prop-type "GParamBoolean")
+  (docs "Go asynchronously to PAUSED")
+  (readable #t)
+  (writable #t)
+  (construct-only #f)
+)
+
+(define-property ts-offset
+  (of-object "GstBaseSink")
+  (prop-type "GParamInt64")
+  (docs "Timestamp offset in nanoseconds")
+  (readable #t)
+  (writable #t)
+  (construct-only #f)
+)
+
+(define-property last-buffer
+  (of-object "GstBaseSink")
+  (prop-type "GParamSpecMiniObject")
+  (docs "The last buffer received in the sink")
+  (readable #t)
+  (writable #f)
+  (construct-only #f)
+)
+
+;; From GstBaseTransform
+
+(define-property name
+  (of-object "GstBaseTransform")
+  (prop-type "GParamString")
+  (docs "The name of the object")
+  (readable #t)
+  (writable #t)
+  (construct-only #f)
+)
+
+(define-property qos
+  (of-object "GstBaseTransform")
+  (prop-type "GParamBoolean")
+  (docs "Handle Quality-of-Service events")
+  (readable #t)
+  (writable #t)
+  (construct-only #f)
+)
+
+;; From GstPushSrc
+
+(define-property name
+  (of-object "GstPushSrc")
+  (prop-type "GParamString")
+  (docs "The name of the object")
+  (readable #t)
+  (writable #t)
+  (construct-only #f)
+)
+
+(define-property blocksize
+  (of-object "GstPushSrc")
+  (prop-type "GParamULong")
+  (docs "Size in bytes to read per buffer (0 = default)")
+  (readable #t)
+  (writable #t)
+  (construct-only #f)
+)
+
+(define-property num-buffers
+  (of-object "GstPushSrc")
+  (prop-type "GParamInt")
+  (docs "Number of buffers to output before sending EOS")
+  (readable #t)
+  (writable #t)
+  (construct-only #f)
+)
+
+(define-property typefind
+  (of-object "GstPushSrc")
+  (prop-type "GParamBoolean")
+  (docs "Run typefind before negotiating")
+  (readable #t)
+  (writable #t)
+  (construct-only #f)
+)
+
+(define-property do-timestamp
+  (of-object "GstPushSrc")
+  (prop-type "GParamBoolean")
+  (docs "Apply current stream time to buffers")
+  (readable #t)
+  (writable #t)
+  (construct-only #f)
+)
+
+;; From GstAdapter
+
+;; From GstCollectPads
+
+(define-property name
+  (of-object "GstCollectPads")
+  (prop-type "GParamString")
+  (docs "The name of the object")
+  (readable #t)
+  (writable #t)
+  (construct-only #f)
+)
+
+;; From GstDataQueue
+
+(define-signal empty
+  (of-object "GstDataQueue")
+  (return-type "void")
+  (when "first")
+)
+
+(define-signal full
+  (of-object "GstDataQueue")
+  (return-type "void")
+  (when "first")
+)
+
+(define-property current-level-visible
+  (of-object "GstDataQueue")
+  (prop-type "GParamUInt")
+  (docs "Current number of visible items in the queue")
+  (readable #t)
+  (writable #f)
+  (construct-only #f)
+)
+
+(define-property current-level-bytes
+  (of-object "GstDataQueue")
+  (prop-type "GParamUInt")
+  (docs "Current amount of data in the queue (bytes)")
+  (readable #t)
+  (writable #f)
+  (construct-only #f)
+)
+
+(define-property current-level-time
+  (of-object "GstDataQueue")
+  (prop-type "GParamUInt64")
+  (docs "Current amount of data in the queue (in ns)")
+  (readable #t)
+  (writable #f)
+  (construct-only #f)
+)
+

Modified: gstreamermm/trunk/gstreamer/src/gst_vfuncs.defs
==============================================================================
--- gstreamermm/trunk/gstreamer/src/gst_vfuncs.defs	(original)
+++ gstreamermm/trunk/gstreamer/src/gst_vfuncs.defs	Mon Jul 21 03:25:26 2008
@@ -313,3 +313,104 @@
    '("GstSegment*" "segment")
   )
 )
+
+; GstBaseSink
+
+(define-vfunc get_caps
+  (of-object "GstBaseSink")
+  (return-type "GstCaps*")
+)
+
+(define-vfunc set_caps
+  (of-object "GstBaseSink")
+  (return-type "gboolean")
+  (parameters
+   '("GstCaps*" "caps")
+  )
+)
+
+(define-vfunc buffer_alloc
+  (of-object "GstBaseSink")
+  (return-type "GstFlowReturn")
+  (parameters
+   '("guint64" "offset")
+   '("guint" "size")
+   '("GstCaps*" "caps")
+   '("GstBuffer**" "buf")
+  )
+)
+
+(define-vfunc get_times
+  (of-object "GstBaseSink")
+  (return-type "void")
+  (parameters
+   '("GstBuffer*" "buffer")
+   '("GstClockTime*" "start")
+   '("GstClockTime*" "end")
+  )
+)
+
+(define-vfunc start
+  (of-object "GstBaseSink")
+  (return-type "gboolean")
+)
+
+(define-vfunc stop
+  (of-object "GstBaseSink")
+  (return-type "gboolean")
+)
+
+(define-vfunc unlock
+  (of-object "GstBaseSink")
+  (return-type "gboolean")
+)
+
+(define-vfunc event
+  (of-object "GstBaseSink")
+  (return-type "gboolean")
+  (parameters
+   '("GstEvent*" "event")
+  )
+)
+
+(define-vfunc preroll
+  (of-object "GstBaseSink")
+  (return-type "GstFlowReturn")
+  (parameters
+   '("GstBuffer*" "buffer")
+  )
+)
+
+(define-vfunc render
+  (of-object "GstBaseSink")
+  (return-type "GstFlowReturn")
+  (parameters
+   '("GstBuffer*" "buffer")
+  )
+)
+
+(define-vfunc async_play
+  (of-object "GstBaseSink")
+  (return-type "GstStateChangeReturn")
+)
+
+(define-vfunc activate_pull
+  (of-object "GstBaseSink")
+  (return-type "gboolean")
+  (parameters
+   '("gboolean" "active")
+  )
+)
+
+(define-vfunc fixate
+  (of-object "GstBaseSink")
+  (return-type "void")
+  (parameters
+   '("GstCaps*" "caps")
+  )
+)
+
+(define-vfunc unlock_stop
+  (of-object "GstBaseSink")
+  (return-type "gboolean")
+)

Modified: gstreamermm/trunk/tools/extra_defs_gen/generate_defs_gst.cc
==============================================================================
--- gstreamermm/trunk/tools/extra_defs_gen/generate_defs_gst.cc	(original)
+++ gstreamermm/trunk/tools/extra_defs_gen/generate_defs_gst.cc	Mon Jul 21 03:25:26 2008
@@ -22,12 +22,17 @@
 #include <glib.h>
 #include <gst/gst.h>
 #include <gst/base/gstbasesrc.h>
+#include <gst/base/gstbasesink.h>
+#include <gst/base/gstbasetransform.h>
+#include <gst/base/gstpushsrc.h>
+#include <gst/base/gstadapter.h>
+#include <gst/base/gstcollectpads.h>
+#include <gst/base/gstdataqueue.h>
 
 int main (int argc, char *argv[])
 {
   gst_init (&argc, &argv);
-  std::cout << get_defs(GST_TYPE_BASE_SRC)
-            << get_defs(GST_TYPE_BUS)
+  std::cout << get_defs(GST_TYPE_BUS)
             << get_defs(GST_TYPE_BIN)
             << get_defs(GST_TYPE_BUFFER)
             << get_defs(GST_TYPE_CAPS)
@@ -61,6 +66,14 @@
             << get_defs(GST_TYPE_TYPE_FIND)
             << get_defs(GST_TYPE_TYPE_FIND_FACTORY)
             << get_defs(GST_TYPE_URI_HANDLER)
-            << get_defs(GST_TYPE_XML);
+            << get_defs(GST_TYPE_XML)
+            << get_defs(GST_TYPE_BASE_SRC)
+            << get_defs(GST_TYPE_BASE_SINK)
+            << get_defs(GST_TYPE_BASE_TRANSFORM)
+            << get_defs(GST_TYPE_PUSH_SRC)
+            << get_defs(GST_TYPE_ADAPTER)
+            << get_defs(GST_TYPE_COLLECT_PADS)
+            << get_defs(GST_TYPE_DATA_QUEUE)
+            ;
   return 0;
 }

Modified: gstreamermm/trunk/tools/m4/convert_gst.m4
==============================================================================
--- gstreamermm/trunk/tools/m4/convert_gst.m4	(original)
+++ gstreamermm/trunk/tools/m4/convert_gst.m4	Mon Jul 21 03:25:26 2008
@@ -151,7 +151,8 @@
 
 #Basic Gstreamermm Conversions
 _CONVERSION(`ClockTime&',`GstClockTime*',`(GstClockTime*)(&($3))')
-_CONVERSION(`ClockTimeDiff',`GstClockTimeDiff',`GstClockTimeDiff ($3)')
+_CONVERSION(`ClockTimeDiff',`GstClockTimeDiff',`GstClockTimeDiff($3)')
+_CONVERSION(`GstClockTimeDiff',`ClockTimeDiff',`ClockTimeDiff($3)')
 _CONVERSION(`ClockTimeDiff&',`GstClockTimeDiff*',`(GstClockTimeDiff*)(&($3))')
 _CONVERSION(`Format&',`GstFormat*',`(($2) &($3))')
 _CONVERSION(`GstClockTimeDiff*',`ClockTimeDiff&',`(ClockTimeDiff&)(*($3))')



[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]