+++ /dev/null
-<?xml version="1.0"?>
-<!-- This file was automatically generated from C sources - DO NOT EDIT!
-To affect the contents of this file, edit the original C definitions,
-and/or use gtk-doc annotations. -->
-<repository version="1.0"
- xmlns="http://www.gtk.org/introspection/core/1.0"
- xmlns:c="http://www.gtk.org/introspection/c/1.0"
- xmlns:glib="http://www.gtk.org/introspection/glib/1.0">
- <include name="GLib" version="2.0"/>
- <include name="GModule" version="2.0"/>
- <include name="GObject" version="2.0"/>
- <include name="libxml2" version="2.0"/>
- <package name="glib-2.0"/>
- <package name="gmodule-no-export-2.0"/>
- <package name="gobject-2.0"/>
- <package name="gthread-2.0"/>
- <package name="libxml-2.0"/>
- <c:include name="gst/gst.h"/>
- <namespace name="Gst"
- version="0.10"
- shared-library="libgstreamer-0.10.so.0"
- c:prefix="Gst">
- <alias name="ClockID" target="any" c:type="GstClockID"/>
- <alias name="ClockTime" target="uint64" c:type="GstClockTime"/>
- <alias name="ClockTimeDiff" target="int64" c:type="GstClockTimeDiff"/>
- <enumeration name="ActivateMode"
- doc="The status of a GstPad. After activating a pad, which usually happens when the
-parent element goes from READY to PAUSED, the GstActivateMode defines if the
-pad operates in push or pull mode."
- c:type="GstActivateMode">
- <member name="none" value="0" c:identifier="GST_ACTIVATE_NONE"/>
- <member name="push" value="1" c:identifier="GST_ACTIVATE_PUSH"/>
- <member name="pull" value="2" c:identifier="GST_ACTIVATE_PULL"/>
- </enumeration>
- <record name="AllocTrace"
- c:type="GstAllocTrace"
- doc="The main tracing object">
- <field name="name" writable="1">
- <type name="utf8" c:type="gchar*"/>
- </field>
- <field name="flags" writable="1">
- <type name="int" c:type="gint"/>
- </field>
- <field name="live" writable="1">
- <type name="int" c:type="gint"/>
- </field>
- <field name="mem_live" writable="1">
- <type name="GLib.SList" c:type="GSList*"/>
- </field>
- <method name="print"
- c:identifier="gst_alloc_trace_print"
- doc="Print the status of the given GstAllocTrace.">
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- </method>
- <method name="set_flags"
- c:identifier="gst_alloc_trace_set_flags"
- doc="Enable the given features on the given GstAllocTrace object.">
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <parameter name="flags" transfer-ownership="none">
- <type name="AllocTraceFlags" c:type="GstAllocTraceFlags"/>
- </parameter>
- </parameters>
- </method>
- </record>
- <bitfield name="AllocTraceFlags"
- doc="Flags indicating which tracing feature to enable."
- c:type="GstAllocTraceFlags">
- <member name="live" value="1" c:identifier="GST_ALLOC_TRACE_LIVE"/>
- <member name="mem_live"
- value="2"
- c:identifier="GST_ALLOC_TRACE_MEM_LIVE"/>
- </bitfield>
- <bitfield name="AssocFlags"
- doc="that marks a place where one can randomly seek to.
-is one that marks a place where one can relatively seek to.
-Flags for an association entry."
- c:type="GstAssocFlags">
- <member name="none" value="0" c:identifier="GST_ASSOCIATION_FLAG_NONE"/>
- <member name="key_unit"
- value="1"
- c:identifier="GST_ASSOCIATION_FLAG_KEY_UNIT"/>
- <member name="delta_unit"
- value="2"
- c:identifier="GST_ASSOCIATION_FLAG_DELTA_UNIT"/>
- <member name="last"
- value="256"
- c:identifier="GST_ASSOCIATION_FLAG_LAST"/>
- </bitfield>
- <constant name="BUFFER_COPY_ALL" value="0">
- <type name="int"/>
- </constant>
- <constant name="BUFFER_OFFSET_NONE" value="-1">
- <type name="int"/>
- </constant>
- <constant name="BUFFER_TRACE_NAME" value="GstBuffer">
- <type name="utf8"/>
- </constant>
- <class name="Bin"
- c:type="GstBin"
- doc="The GstBin base class. Subclasses can access these fields provided
-the LOCK is taken."
- parent="Element"
- glib:type-name="GstBin"
- glib:get-type="gst_bin_get_type"
- glib:type-struct="BinClass">
- <implements name="ChildProxy"/>
- <constructor name="new"
- c:identifier="gst_bin_new"
- doc="Creates a new bin with the given name.">
- <return-value transfer-ownership="full">
- <type name="Bin" c:type="GstElement*"/>
- </return-value>
- <parameters>
- <parameter name="name" transfer-ownership="none">
- <type name="utf8" c:type="gchar*"/>
- </parameter>
- </parameters>
- </constructor>
- <virtual-method name="add_element">
- <return-value transfer-ownership="none">
- <type name="boolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <parameter name="element" transfer-ownership="none">
- <type name="Element" c:type="GstElement*"/>
- </parameter>
- </parameters>
- </virtual-method>
- <virtual-method name="remove_element">
- <return-value transfer-ownership="none">
- <type name="boolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <parameter name="element" transfer-ownership="none">
- <type name="Element" c:type="GstElement*"/>
- </parameter>
- </parameters>
- </virtual-method>
- <virtual-method name="handle_message">
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <parameter name="message" transfer-ownership="none">
- <type name="Message" c:type="GstMessage*"/>
- </parameter>
- </parameters>
- </virtual-method>
- <method name="add"
- c:identifier="gst_bin_add"
- doc="Adds the given element to the bin. Sets the element's parent, and thus
-takes ownership of the element. An element can only be added to one bin.
-If the element's pads are linked to other pads, the pads will be unlinked
-before the element is added to the bin.
-MT safe.
-the bin does not want to accept the element.">
- <return-value transfer-ownership="none">
- <type name="boolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <parameter name="element" transfer-ownership="none">
- <type name="Element" c:type="GstElement*"/>
- </parameter>
- </parameters>
- </method>
- <method name="remove"
- c:identifier="gst_bin_remove"
- doc="Removes the element from the bin, unparenting it as well.
-Unparenting the element means that the element will be dereferenced,
-so if the bin holds the only reference to the element, the element
-will be freed in the process of removing it from the bin. If you
-want the element to still exist after removing, you need to call
-gst_object_ref() before removing it from the bin.
-If the element's pads are linked to other pads, the pads will be unlinked
-before the element is removed from the bin.
-MT safe.
-the bin does not want to remove the element.">
- <return-value transfer-ownership="none">
- <type name="boolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <parameter name="element" transfer-ownership="none">
- <type name="Element" c:type="GstElement*"/>
- </parameter>
- </parameters>
- </method>
- <method name="get_by_name"
- c:identifier="gst_bin_get_by_name"
- doc="Gets the element with the given name from a bin. This
-function recurses into child bins.
-Returns NULL if no element with the given name is found in the bin.
-MT safe. Caller owns returned reference.">
- <return-value transfer-ownership="full">
- <type name="Element" c:type="GstElement*"/>
- </return-value>
- <parameters>
- <parameter name="name" transfer-ownership="none">
- <type name="utf8" c:type="gchar*"/>
- </parameter>
- </parameters>
- </method>
- <method name="get_by_name_recurse_up"
- c:identifier="gst_bin_get_by_name_recurse_up"
- doc="Gets the element with the given name from this bin. If the
-element is not found, a recursion is performed on the parent bin.
-Returns NULL if:
-- no element with the given name is found in the bin
-MT safe. Caller owns returned reference.">
- <return-value transfer-ownership="full">
- <type name="Element" c:type="GstElement*"/>
- </return-value>
- <parameters>
- <parameter name="name" transfer-ownership="none">
- <type name="utf8" c:type="gchar*"/>
- </parameter>
- </parameters>
- </method>
- <method name="get_by_interface"
- c:identifier="gst_bin_get_by_interface"
- doc="Looks for an element inside the bin that implements the given
-interface. If such an element is found, it returns the element.
-You can cast this element to the given interface afterwards. If you want
-all elements that implement the interface, use
-gst_bin_iterate_all_by_interface(). This function recurses into child bins.
-MT safe. Caller owns returned reference.">
- <return-value transfer-ownership="full">
- <type name="Element" c:type="GstElement*"/>
- </return-value>
- <parameters>
- <parameter name="iface" transfer-ownership="none">
- <type name="GType" c:type="GType"/>
- </parameter>
- </parameters>
- </method>
- <method name="iterate_elements"
- c:identifier="gst_bin_iterate_elements"
- doc="Gets an iterator for the elements in this bin.
-Each element yielded by the iterator will have its refcount increased, so
-unref after use.
-MT safe. Caller owns returned value.">
- <return-value transfer-ownership="full">
- <type name="Iterator" c:type="GstIterator*"/>
- </return-value>
- </method>
- <method name="iterate_sorted"
- c:identifier="gst_bin_iterate_sorted"
- doc="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.">
- <return-value transfer-ownership="full">
- <type name="Iterator" c:type="GstIterator*"/>
- </return-value>
- </method>
- <method name="iterate_recurse"
- c:identifier="gst_bin_iterate_recurse"
- doc="Gets an iterator for the elements in this bin.
-This iterator recurses into GstBin children.
-Each element yielded by the iterator will have its refcount increased, so
-unref after use.
-MT safe. Caller owns returned value.">
- <return-value transfer-ownership="full">
- <type name="Iterator" c:type="GstIterator*"/>
- </return-value>
- </method>
- <method name="iterate_sinks"
- c:identifier="gst_bin_iterate_sinks"
- doc="Gets an iterator for all elements in the bin that have the
-#GST_ELEMENT_IS_SINK flag set.
-Each element yielded by the iterator will have its refcount increased, so
-unref after use.
-MT safe. Caller owns returned value.">
- <return-value transfer-ownership="full">
- <type name="Iterator" c:type="GstIterator*"/>
- </return-value>
- </method>
- <method name="iterate_sources"
- c:identifier="gst_bin_iterate_sources"
- doc="Gets an iterator for all elements in the bin that have no sinkpads and have
-the #GST_ELEMENT_IS_SINK flag unset.
-Each element yielded by the iterator will have its refcount increased, so
-unref after use.
-MT safe. Caller owns returned value.">
- <return-value transfer-ownership="full">
- <type name="Iterator" c:type="GstIterator*"/>
- </return-value>
- </method>
- <method name="iterate_all_by_interface"
- c:identifier="gst_bin_iterate_all_by_interface"
- doc="Looks for all elements inside the bin that implements the given
-interface. You can safely cast all returned elements to the given interface.
-The function recurses inside child bins. The iterator will yield a series
-of #GstElement that should be unreffed after use.
-Each element yielded by the iterator will have its refcount increased, so
-unref after use.
-MT safe. Caller owns returned value.
-implementing the given interface, or NULL">
- <return-value transfer-ownership="full">
- <type name="Iterator" c:type="GstIterator*"/>
- </return-value>
- <parameters>
- <parameter name="iface" transfer-ownership="none">
- <type name="GType" c:type="GType"/>
- </parameter>
- </parameters>
- </method>
- <method name="recalculate_latency"
- c:identifier="gst_bin_recalculate_latency"
- doc="Query @bin for the current latency using and reconfigures this latency to all the
-elements with a LATENCY event.
-This method is typically called on the pipeline when a #GST_MESSAGE_LATENCY
-is posted on the bus.
-This function simply emits the 'do-latency' signal so any custom latency
-calculations will be performed."
- version="0.10.22.">
- <return-value transfer-ownership="none">
- <type name="boolean" c:type="gboolean"/>
- </return-value>
- </method>
- <method name="add_many"
- c:identifier="gst_bin_add_many"
- doc="Adds a NULL-terminated list of elements to a bin. This function is
-equivalent to calling gst_bin_add() for each member of the list. The return
-value of each gst_bin_add() is ignored.">
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <parameter name="element_1" transfer-ownership="none">
- <type name="Element" c:type="GstElement*"/>
- </parameter>
- <parameter transfer-ownership="none">
- <varargs>
- </varargs>
- </parameter>
- </parameters>
- </method>
- <method name="remove_many"
- c:identifier="gst_bin_remove_many"
- doc="Remove a list of elements from a bin. This function is equivalent
-to calling gst_bin_remove() with each member of the list.">
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <parameter name="element_1" transfer-ownership="none">
- <type name="Element" c:type="GstElement*"/>
- </parameter>
- <parameter transfer-ownership="none">
- <varargs>
- </varargs>
- </parameter>
- </parameters>
- </method>
- <method name="find_unlinked_pad"
- c:identifier="gst_bin_find_unlinked_pad"
- doc="Recursively looks for elements with an unlinked pad of the given
-direction within the specified bin and returns an unlinked pad
-if one is found, or NULL otherwise. If a pad is found, the caller
-owns a reference to it and should use gst_object_unref() on the
-pad when it is not needed any longer."
- version="0.10.20">
- <return-value transfer-ownership="full">
- <type name="Pad" c:type="GstPad*"/>
- </return-value>
- <parameters>
- <parameter name="direction" transfer-ownership="none">
- <type name="PadDirection" c:type="GstPadDirection"/>
- </parameter>
- </parameters>
- </method>
- <method name="find_unconnected_pad"
- c:identifier="gst_bin_find_unconnected_pad"
- doc="Recursively looks for elements with an unlinked pad of the given
-direction within the specified bin and returns an unlinked pad
-if one is found, or NULL otherwise. If a pad is found, the caller
-owns a reference to it and should use gst_object_unref() on the
-pad when it is not needed any longer."
- version="0.10.3"
- deprecated="use gst_bin_find_unlinked_pad() instead.">
- <return-value transfer-ownership="full">
- <type name="Pad" c:type="GstPad*"/>
- </return-value>
- <parameters>
- <parameter name="direction" transfer-ownership="none">
- <type name="PadDirection" c:type="GstPadDirection"/>
- </parameter>
- </parameters>
- </method>
- <property name="async-handling" writable="1">
- <type name="boolean" c:type="gboolean"/>
- </property>
- <field name="element">
- <type name="Element" c:type="GstElement"/>
- </field>
- <field name="numchildren">
- <type name="int" c:type="gint"/>
- </field>
- <field name="children">
- <type name="GLib.List" c:type="GList*"/>
- </field>
- <field name="children_cookie">
- <type name="uint32" c:type="guint32"/>
- </field>
- <field name="child_bus">
- <type name="Bus" c:type="GstBus*"/>
- </field>
- <field name="messages">
- <type name="GLib.List" c:type="GList*"/>
- </field>
- <field name="polling">
- <type name="boolean" c:type="gboolean"/>
- </field>
- <field name="state_dirty">
- <type name="boolean" c:type="gboolean"/>
- </field>
- <field name="clock_dirty">
- <type name="boolean" c:type="gboolean"/>
- </field>
- <field name="provided_clock">
- <type name="Clock" c:type="GstClock*"/>
- </field>
- <field name="clock_provider">
- <type name="Element" c:type="GstElement*"/>
- </field>
- <field name="priv">
- <type name="BinPrivate" c:type="GstBinPrivate*"/>
- </field>
- <field name="_gst_reserved">
- <array zero-terminated="0" c:type="gpointer" fixed-size="3">
- <type name="any"/>
- </array>
- </field>
- <glib:signal name="do-latency"
- doc="Will be emitted when the bin needs to perform latency calculations. This
-signal is only emited for toplevel bins or when async-handling is
-enabled.
-Only one signal handler is invoked. If no signals are connected, the
-default handler is invoked, which will query and distribute the lowest
-possible latency to all sinks.
-Connect to this signal if the default latency calculations are not
-sufficient, like when you need different latencies for different sinks in
-the same pipeline."
- version="0.10.22">
- <return-value transfer-ownership="full">
- <type name="boolean" c:type="gboolean"/>
- </return-value>
- </glib:signal>
- <glib:signal name="element-added"
- doc="Will be emitted after the element was added to the bin.">
- <return-value transfer-ownership="full">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <parameter name="element" transfer-ownership="none">
- <type name="Element" c:type="GstElement"/>
- </parameter>
- </parameters>
- </glib:signal>
- <glib:signal name="element-removed"
- doc="Will be emitted after the element was removed from the bin.">
- <return-value transfer-ownership="full">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <parameter name="element" transfer-ownership="none">
- <type name="Element" c:type="GstElement"/>
- </parameter>
- </parameters>
- </glib:signal>
- </class>
- <record name="BinClass"
- c:type="GstBinClass"
- glib:is-gtype-struct-for="Bin"
- doc="Subclasses can override the @add_element and @remove_element to
-update the list of children in the bin.
-The @handle_message method can be overridden to implement custom
-message handling. @handle_message takes ownership of the message, just like
-#gst_element_post_message.">
- <field name="parent_class">
- <type name="ElementClass" c:type="GstElementClass"/>
- </field>
- <field name="pool">
- <type name="GLib.ThreadPool" c:type="GThreadPool*"/>
- </field>
- <field name="element_added">
- <callback name="element_added" c:type="element_added">
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <parameter name="bin" transfer-ownership="none">
- <type name="Bin" c:type="GstBin*"/>
- </parameter>
- <parameter name="child" transfer-ownership="none">
- <type name="Element" c:type="GstElement*"/>
- </parameter>
- </parameters>
- </callback>
- </field>
- <field name="element_removed">
- <callback name="element_removed" c:type="element_removed">
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <parameter name="bin" transfer-ownership="none">
- <type name="Bin" c:type="GstBin*"/>
- </parameter>
- <parameter name="child" transfer-ownership="none">
- <type name="Element" c:type="GstElement*"/>
- </parameter>
- </parameters>
- </callback>
- </field>
- <field name="add_element">
- <callback name="add_element" c:type="add_element">
- <return-value transfer-ownership="none">
- <type name="boolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <parameter name="bin" transfer-ownership="none">
- <type name="Bin" c:type="GstBin*"/>
- </parameter>
- <parameter name="element" transfer-ownership="none">
- <type name="Element" c:type="GstElement*"/>
- </parameter>
- </parameters>
- </callback>
- </field>
- <field name="remove_element">
- <callback name="remove_element" c:type="remove_element">
- <return-value transfer-ownership="none">
- <type name="boolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <parameter name="bin" transfer-ownership="none">
- <type name="Bin" c:type="GstBin*"/>
- </parameter>
- <parameter name="element" transfer-ownership="none">
- <type name="Element" c:type="GstElement*"/>
- </parameter>
- </parameters>
- </callback>
- </field>
- <field name="handle_message">
- <callback name="handle_message" c:type="handle_message">
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <parameter name="bin" transfer-ownership="none">
- <type name="Bin" c:type="GstBin*"/>
- </parameter>
- <parameter name="message" transfer-ownership="none">
- <type name="Message" c:type="GstMessage*"/>
- </parameter>
- </parameters>
- </callback>
- </field>
- <field name="do_latency">
- <callback name="do_latency" c:type="do_latency">
- <return-value transfer-ownership="none">
- <type name="boolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <parameter name="bin" transfer-ownership="none">
- <type name="Bin" c:type="GstBin*"/>
- </parameter>
- </parameters>
- </callback>
- </field>
- <field name="_gst_reserved">
- <array zero-terminated="0" c:type="gpointer" fixed-size="3">
- <type name="any"/>
- </array>
- </field>
- </record>
- <bitfield name="BinFlags"
- doc="Derived classes can use this as first value in a list of flags.
-GstBinFlags are a set of flags specific to bins. Most are set/used
-internally. They can be checked using the GST_OBJECT_FLAG_IS_SET () macro,
-and (un)set using GST_OBJECT_FLAG_SET () and GST_OBJECT_FLAG_UNSET ()."
- c:type="GstBinFlags">
- <member name="bin_flag_last"
- value="33554432"
- c:identifier="GST_BIN_FLAG_LAST"/>
- </bitfield>
- <record name="BinPrivate" c:type="GstBinPrivate">
- </record>
- <record name="Buffer"
- c:type="GstBuffer"
- doc="timestamp is not known or relevant.
-when the duration is not known or relevant.
-For video frames, this is the frame number of this buffer.
-For audio samples, this is the offset of the first sample in this buffer.
-For file data or compressed data this is the byte offset of the first
-byte in this buffer.
-format as @offset.
-When the buffer is freed, this data will freed with @free_func.
-to g_free(). Since 0.10.22.
-The structure of a #GstBuffer. Use the associated macros to access the public
-variables.">
- <field name="mini_object" writable="1">
- <type name="MiniObject" c:type="GstMiniObject"/>
- </field>
- <field name="data" writable="1">
- <type name="any" c:type="guint8*"/>
- </field>
- <field name="size" writable="1">
- <type name="uint" c:type="guint"/>
- </field>
- <field name="timestamp" writable="1">
- <type name="ClockTime" c:type="GstClockTime"/>
- </field>
- <field name="duration" writable="1">
- <type name="ClockTime" c:type="GstClockTime"/>
- </field>
- <field name="caps" writable="1">
- <type name="Caps" c:type="GstCaps*"/>
- </field>
- <field name="offset" writable="1">
- <type name="uint64" c:type="guint64"/>
- </field>
- <field name="offset_end" writable="1">
- <type name="uint64" c:type="guint64"/>
- </field>
- <field name="malloc_data" writable="1">
- <type name="any" c:type="guint8*"/>
- </field>
- <field name="free_func" writable="1">
- <type name="GLib.FreeFunc" c:type="GFreeFunc"/>
- </field>
- <field name="parent" writable="1">
- <type name="Buffer" c:type="GstBuffer*"/>
- </field>
- <field name="_gst_reserved" writable="1">
- <array zero-terminated="0" c:type="gpointer" fixed-size="2">
- <type name="any"/>
- </array>
- </field>
- <constructor name="new"
- c:identifier="gst_buffer_new"
- doc="Creates a newly allocated buffer without any data.
-MT safe.">
- <return-value transfer-ownership="full">
- <type name="Buffer" c:type="GstBuffer*"/>
- </return-value>
- </constructor>
- <constructor name="new_and_alloc"
- c:identifier="gst_buffer_new_and_alloc"
- doc="Creates a newly allocated buffer with data of the given size.
-The buffer memory is not cleared. If the requested amount of
-memory can't be allocated, the program will abort. Use
-gst_buffer_try_new_and_alloc() if you want to handle this case
-gracefully or have gotten the size to allocate from an untrusted
-source such as a media stream.
-Note that when @size == 0, the buffer data pointer will be NULL.
-MT safe.">
- <return-value transfer-ownership="full">
- <type name="Buffer" c:type="GstBuffer*"/>
- </return-value>
- <parameters>
- <parameter name="size" transfer-ownership="none">
- <type name="uint" c:type="guint"/>
- </parameter>
- </parameters>
- </constructor>
- <method name="copy_metadata"
- c:identifier="gst_buffer_copy_metadata"
- doc="Copies the metadata from @src into @dest. The data, size and mallocdata
-fields are not copied.
-all the metadata fields.
-This function is typically called from a custom buffer copy function after
-creating @dest and setting the data, size, mallocdata."
- version="0.10.13">
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <parameter name="src" transfer-ownership="none">
- <type name="Buffer" c:type="GstBuffer*"/>
- </parameter>
- <parameter name="flags" transfer-ownership="none">
- <type name="BufferCopyFlags" c:type="GstBufferCopyFlags"/>
- </parameter>
- </parameters>
- </method>
- <method name="is_metadata_writable"
- c:identifier="gst_buffer_is_metadata_writable"
- doc="Similar to gst_buffer_is_writable, but this only ensures that the
-refcount of the buffer is 1, indicating that the caller is the sole
-owner and can change the buffer metadata, such as caps and timestamps.">
- <return-value transfer-ownership="none">
- <type name="boolean" c:type="gboolean"/>
- </return-value>
- </method>
- <method name="make_metadata_writable"
- c:identifier="gst_buffer_make_metadata_writable"
- doc="Similar to gst_buffer_make_writable, but does not ensure that the buffer
-data array is writable. Instead, this just ensures that the returned buffer
-is solely owned by the caller, by creating a subbuffer of the original
-buffer if necessary.
-After calling this function, @buf should not be referenced anymore. The
-result of this function has guaranteed writable metadata.">
- <return-value transfer-ownership="full">
- <type name="Buffer" c:type="GstBuffer*"/>
- </return-value>
- </method>
- <method name="get_caps"
- c:identifier="gst_buffer_get_caps"
- doc="Gets the media type of the buffer. This can be NULL if there
-is no media type attached to this buffer.
-Returns NULL if there were no caps on this buffer.">
- <return-value transfer-ownership="full">
- <type name="Caps" c:type="GstCaps*"/>
- </return-value>
- </method>
- <method name="set_caps"
- c:identifier="gst_buffer_set_caps"
- doc="Sets the media type on the buffer. The refcount of the caps will
-be increased and any previous caps on the buffer will be
-unreffed.">
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <parameter name="caps" transfer-ownership="none">
- <type name="Caps" c:type="GstCaps*"/>
- </parameter>
- </parameters>
- </method>
- <method name="create_sub"
- c:identifier="gst_buffer_create_sub"
- doc="begins.
-Creates a sub-buffer from @parent at @offset and @size.
-This sub-buffer uses the actual memory space of the parent buffer.
-This function will copy the offset and timestamp fields when the
-offset is 0. If not, they will be set to #GST_CLOCK_TIME_NONE and
-#GST_BUFFER_OFFSET_NONE.
-If @offset equals 0 and @size equals the total size of @buffer, the
-duration and offset end fields are also copied. If not they will be set
-to #GST_CLOCK_TIME_NONE and #GST_BUFFER_OFFSET_NONE.
-MT safe.
-Returns NULL if the arguments were invalid.">
- <return-value transfer-ownership="full">
- <type name="Buffer" c:type="GstBuffer*"/>
- </return-value>
- <parameters>
- <parameter name="offset" transfer-ownership="none">
- <type name="uint" c:type="guint"/>
- </parameter>
- <parameter name="size" transfer-ownership="none">
- <type name="uint" c:type="guint"/>
- </parameter>
- </parameters>
- </method>
- <method name="is_span_fast"
- c:identifier="gst_buffer_is_span_fast"
- doc="Determines whether a gst_buffer_span() can be done without copying
-the contents, that is, whether the data areas are contiguous sub-buffers of
-the same buffer.
-MT safe.
-FALSE if a copy would be required.">
- <return-value transfer-ownership="none">
- <type name="boolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <parameter name="buf2" transfer-ownership="none">
- <type name="Buffer" c:type="GstBuffer*"/>
- </parameter>
- </parameters>
- </method>
- <method name="span"
- c:identifier="gst_buffer_span"
- doc="buffer should start.
-Creates a new buffer that consists of part of buf1 and buf2.
-Logically, buf1 and buf2 are concatenated into a single larger
-buffer, and a new buffer is created at the given offset inside
-this space, with a given length.
-If the two source buffers are children of the same larger buffer,
-and are contiguous, the new buffer will be a child of the shared
-parent, and thus no copying is necessary. you can use
-gst_buffer_is_span_fast() to determine if a memcpy will be needed.
-MT safe.
-Returns NULL if the arguments are invalid.">
- <return-value transfer-ownership="full">
- <type name="Buffer" c:type="GstBuffer*"/>
- </return-value>
- <parameters>
- <parameter name="offset" transfer-ownership="none">
- <type name="uint32" c:type="guint32"/>
- </parameter>
- <parameter name="buf2" transfer-ownership="none">
- <type name="Buffer" c:type="GstBuffer*"/>
- </parameter>
- <parameter name="len" transfer-ownership="none">
- <type name="uint32" c:type="guint32"/>
- </parameter>
- </parameters>
- </method>
- <method name="merge"
- c:identifier="gst_buffer_merge"
- doc="Create a new buffer that is the concatenation of the two source
-buffers. The original source buffers will not be modified or
-unref'd. Make sure you unref the source buffers if they are not used
-anymore afterwards.
-If the buffers point to contiguous areas of memory, the buffer
-is created without copying the data.">
- <return-value transfer-ownership="full">
- <type name="Buffer" c:type="GstBuffer*"/>
- </return-value>
- <parameters>
- <parameter name="buf2" transfer-ownership="none">
- <type name="Buffer" c:type="GstBuffer*"/>
- </parameter>
- </parameters>
- </method>
- <method name="join"
- c:identifier="gst_buffer_join"
- doc="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.
-This is a convenience function for C programmers. See also
-gst_buffer_merge(), which does the same thing without
-unreffing the input parameters. Language bindings without
-explicit reference counting should not wrap this function.">
- <return-value transfer-ownership="full">
- <type name="Buffer" c:type="GstBuffer*"/>
- </return-value>
- <parameters>
- <parameter name="buf2" transfer-ownership="none">
- <type name="Buffer" c:type="GstBuffer*"/>
- </parameter>
- </parameters>
- </method>
- <method name="stamp"
- c:identifier="gst_buffer_stamp"
- doc="Copies additional information (the timestamp, duration, and offset start
-and end) from one buffer to the other.
-This function does not copy any buffer flags or caps and is equivalent to
-gst_buffer_copy_metadata(@dest, @src, GST_BUFFER_COPY_TIMESTAMPS).
-control."
- deprecated="use gst_buffer_copy_metadata() instead, it provides more">
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <parameter name="src" transfer-ownership="none">
- <type name="Buffer" c:type="GstBuffer*"/>
- </parameter>
- </parameters>
- </method>
- </record>
- <record name="BufferClass" c:type="GstBufferClass">
- <field name="mini_object_class" writable="1">
- <type name="MiniObjectClass" c:type="GstMiniObjectClass"/>
- </field>
- </record>
- <bitfield name="BufferCopyFlags"
- doc="offset and offset_end should be copied
-A set of flags that can be provided to the gst_buffer_copy_metadata()
-function to specify which metadata fields should be copied."
- version="0.10.13"
- c:type="GstBufferCopyFlags">
- <member name="flags" value="1" c:identifier="GST_BUFFER_COPY_FLAGS"/>
- <member name="timestamps"
- value="2"
- c:identifier="GST_BUFFER_COPY_TIMESTAMPS"/>
- <member name="caps" value="4" c:identifier="GST_BUFFER_COPY_CAPS"/>
- </bitfield>
- <bitfield name="BufferFlag"
- doc="the buffer should not be modified. The metadata might still be modified.
-displayed.
-This typically occurs after a seek or a dropped buffer from a live or
-network source.
-stream and contains media neutral data (elements can switch to optimized code
-path that ignores the buffer content).
-A set of buffer flags used to describe properties of a #GstBuffer."
- c:type="GstBufferFlag">
- <member name="readonly"
- value="1"
- c:identifier="GST_BUFFER_FLAG_READONLY"/>
- <member name="preroll"
- value="16"
- c:identifier="GST_BUFFER_FLAG_PREROLL"/>
- <member name="discont"
- value="32"
- c:identifier="GST_BUFFER_FLAG_DISCONT"/>
- <member name="in_caps"
- value="64"
- c:identifier="GST_BUFFER_FLAG_IN_CAPS"/>
- <member name="gap" value="128" c:identifier="GST_BUFFER_FLAG_GAP"/>
- <member name="delta_unit"
- value="256"
- c:identifier="GST_BUFFER_FLAG_DELTA_UNIT"/>
- <member name="media1" value="512" c:identifier="GST_BUFFER_FLAG_MEDIA1"/>
- <member name="media2"
- value="1024"
- c:identifier="GST_BUFFER_FLAG_MEDIA2"/>
- <member name="media3"
- value="2048"
- c:identifier="GST_BUFFER_FLAG_MEDIA3"/>
- <member name="last" value="4096" c:identifier="GST_BUFFER_FLAG_LAST"/>
- </bitfield>
- <record name="BufferList"
- c:type="GstBufferList"
- doc="Opaque list of grouped buffers."
- version="0.10.24">
- <constructor name="new"
- c:identifier="gst_buffer_list_new"
- doc="Creates a new, empty #GstBufferList. The caller is responsible for unreffing
-the returned #GstBufferList."
- version="0.10.24">
- <return-value transfer-ownership="full" doc="after usage.">
- <type name="BufferList" c:type="GstBufferList*"/>
- </return-value>
- </constructor>
- <method name="n_groups"
- c:identifier="gst_buffer_list_n_groups"
- doc="Returns the number of groups in @list."
- version="0.10.24">
- <return-value transfer-ownership="none">
- <type name="uint" c:type="guint"/>
- </return-value>
- </method>
- <method name="foreach"
- c:identifier="gst_buffer_list_foreach"
- doc="Call @func with @data for each buffer in @list.
-of @func define if this function returns or if the remaining buffers in a
-group should be skipped."
- version="0.10.24">
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <parameter name="func"
- transfer-ownership="none"
- scope="call"
- closure="2">
- <type name="BufferListFunc" c:type="GstBufferListFunc"/>
- </parameter>
- <parameter name="user_data" transfer-ownership="none">
- <type name="any" c:type="gpointer"/>
- </parameter>
- </parameters>
- </method>
- <method name="get"
- c:identifier="gst_buffer_list_get"
- doc="Get the buffer at @idx in @group.
-Note that this function is not efficient for iterating over the entire list.
-Use an iterator or gst_buffer_list_foreach() instead.
-buffer remains valid as long as @list is valid."
- version="0.10.24">
- <return-value transfer-ownership="full">
- <type name="Buffer" c:type="GstBuffer*"/>
- </return-value>
- <parameters>
- <parameter name="group" transfer-ownership="none">
- <type name="uint" c:type="guint"/>
- </parameter>
- <parameter name="idx" transfer-ownership="none">
- <type name="uint" c:type="guint"/>
- </parameter>
- </parameters>
- </method>
- <method name="iterate"
- c:identifier="gst_buffer_list_iterate"
- doc="Iterate the buffers in @list. The owner of the iterator must also be the
-owner of a reference to @list while the returned iterator is in use.
-gst_buffer_list_iterator_free() after usage"
- version="0.10.24">
- <return-value transfer-ownership="full">
- <type name="BufferListIterator" c:type="GstBufferListIterator*"/>
- </return-value>
- </method>
- </record>
- <record name="BufferListClass" c:type="GstBufferListClass">
- </record>
- <callback name="BufferListDoFunction"
- c:type="GstBufferListDoFunction"
- doc="A function for accessing the last buffer returned by
-gst_buffer_list_iterator_next(). The function can leave @buffer in the list,
-replace @buffer in the list or remove @buffer from the list, depending on
-the return value. If the function returns NULL, @buffer will be removed from
-the list, otherwise @buffer will be replaced with the returned buffer.
-The last buffer returned by gst_buffer_list_iterator_next() will be replaced
-with the buffer returned from the function. The function takes ownership of
-unreffed. If NULL is returned, the buffer will be removed from the list. The
-list must be writable.
-from the list"
- version="0.10.24">
- <return-value transfer-ownership="full">
- <type name="Buffer" c:type="GstBuffer*"/>
- </return-value>
- <parameters>
- <parameter name="buffer" transfer-ownership="none">
- <type name="Buffer" c:type="GstBuffer*"/>
- </parameter>
- <parameter name="user_data" transfer-ownership="none" closure="1">
- <type name="any" c:type="gpointer"/>
- </parameter>
- </parameters>
- </callback>
- <callback name="BufferListFunc"
- c:type="GstBufferListFunc"
- doc="A function that will be called from gst_buffer_list_foreach(). The @buffer
-field will point to a the reference of the buffer at @idx in @group.
-When this function returns #GST_BUFFER_LIST_CONTINUE, the next buffer will be
-returned. When #GST_BUFFER_LIST_SKIP_GROUP is returned, all remaining buffers
-in the current group will be skipped and the first buffer of the next group
-is returned (if any). When GST_BUFFER_LIST_END is returned,
-gst_buffer_list_foreach() will return.
-When @buffer is set to NULL, the item will be removed from the bufferlist.
-When @buffer has been made writable, the new buffer reference can be assigned
-to @buffer. This function is responsible for unreffing the old buffer when
-removing or modifying."
- version="0.10.24">
- <return-value transfer-ownership="full">
- <type name="BufferListItem" c:type="GstBufferListItem"/>
- </return-value>
- <parameters>
- <parameter name="buffer" transfer-ownership="none">
- <type name="Buffer" c:type="GstBuffer**"/>
- </parameter>
- <parameter name="group" transfer-ownership="none">
- <type name="uint" c:type="guint"/>
- </parameter>
- <parameter name="idx" transfer-ownership="none">
- <type name="uint" c:type="guint"/>
- </parameter>
- <parameter name="user_data" transfer-ownership="none" closure="3">
- <type name="any" c:type="gpointer"/>
- </parameter>
- </parameters>
- </callback>
- <enumeration name="BufferListItem"
- doc="The result of the #GstBufferListFunc."
- version="0.10.24"
- c:type="GstBufferListItem">
- <member name="continue"
- value="0"
- c:identifier="GST_BUFFER_LIST_CONTINUE"/>
- <member name="skip_group"
- value="1"
- c:identifier="GST_BUFFER_LIST_SKIP_GROUP"/>
- <member name="end" value="2" c:identifier="GST_BUFFER_LIST_END"/>
- </enumeration>
- <record name="BufferListIterator"
- c:type="GstBufferListIterator"
- doc="Opaque iterator for a #GstBufferList."
- version="0.10.24">
- <method name="free"
- c:identifier="gst_buffer_list_iterator_free"
- doc="Free the iterator."
- version="0.10.24">
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- </method>
- <method name="n_buffers"
- c:identifier="gst_buffer_list_iterator_n_buffers"
- doc="Returns the number of buffers left to iterate in the current group. I.e. the
-number of calls that can be made to gst_buffer_list_iterator_next() before
-it returns NULL.
-This function will not move the implicit cursor or in any other way affect
-the state of the iterator @it."
- version="0.10.24">
- <return-value transfer-ownership="none">
- <type name="uint" c:type="guint"/>
- </return-value>
- </method>
- <method name="next"
- c:identifier="gst_buffer_list_iterator_next"
- doc="Returns the next buffer in the list iterated with @it. If the iterator is at
-the end of a group, NULL will be returned. This function may be called
-repeatedly to iterate through the current group.
-The caller will not get a new ref to the returned #GstBuffer and must not
-unref it."
- version="0.10.24">
- <return-value transfer-ownership="full">
- <type name="Buffer" c:type="GstBuffer*"/>
- </return-value>
- </method>
- <method name="next_group"
- c:identifier="gst_buffer_list_iterator_next_group"
- doc="Advance the iterator @it to the first buffer in the next group. If the
-iterator is at the last group, FALSE will be returned. This function may be
-called repeatedly to iterate through the groups in a buffer list.
-the iterator was already at the last group"
- version="0.10.24">
- <return-value transfer-ownership="none">
- <type name="boolean" c:type="gboolean"/>
- </return-value>
- </method>
- <method name="add"
- c:identifier="gst_buffer_list_iterator_add"
- doc="Inserts @buffer into the #GstBufferList iterated with @it. The buffer is
-inserted into the current group, immediately before the buffer that would be
-returned by gst_buffer_list_iterator_next(). The buffer is inserted before
-the implicit cursor, a subsequent call to gst_buffer_list_iterator_next()
-will return the buffer after the inserted buffer, if any.
-This function takes ownership of @buffer."
- version="0.10.24">
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <parameter name="buffer" transfer-ownership="none">
- <type name="Buffer" c:type="GstBuffer*"/>
- </parameter>
- </parameters>
- </method>
- <method name="add_group"
- c:identifier="gst_buffer_list_iterator_add_group"
- doc="Inserts a new, empty group into the #GstBufferList iterated with @it. The
-group is inserted immediately before the group that would be returned by
-gst_buffer_list_iterator_next_group(). A subsequent call to
-gst_buffer_list_iterator_next_group() will advance the iterator to the group
-after the inserted group, if any."
- version="0.10.24">
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- </method>
- <method name="remove"
- c:identifier="gst_buffer_list_iterator_remove"
- doc="Removes the last buffer returned by gst_buffer_list_iterator_next() from
-the #GstBufferList iterated with @it. gst_buffer_list_iterator_next() must
-have been called on @it before this function is called. This function can
-only be called once per call to gst_buffer_list_iterator_next().
-The removed buffer is unreffed."
- version="0.10.24">
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- </method>
- <method name="steal"
- c:identifier="gst_buffer_list_iterator_steal"
- doc="Returns the last buffer returned by gst_buffer_list_iterator_next() without
-modifying the refcount of the buffer."
- version="0.10.24">
- <return-value transfer-ownership="full">
- <type name="Buffer" c:type="GstBuffer*"/>
- </return-value>
- </method>
- <method name="take"
- c:identifier="gst_buffer_list_iterator_take"
- doc="Replaces the last buffer returned by gst_buffer_list_iterator_next() with
-this function is called. gst_buffer_list_iterator_remove() must not have been
-called since the last call to gst_buffer_list_iterator_next().
-This function unrefs the replaced buffer if it has not been stolen with
-gst_buffer_list_iterator_steal() and takes ownership of @buffer (i.e. the
-refcount of @buffer is not increased)."
- version="0.10.24">
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <parameter name="buffer" transfer-ownership="none">
- <type name="Buffer" c:type="GstBuffer*"/>
- </parameter>
- </parameters>
- </method>
- <method name="do"
- c:identifier="gst_buffer_list_iterator_do"
- doc="Calls the given function for the last buffer returned by
-gst_buffer_list_iterator_next(). gst_buffer_list_iterator_next() must have
-been called on @it before this function is called.
-gst_buffer_list_iterator_remove() and gst_buffer_list_iterator_steal() must
-not have been called since the last call to gst_buffer_list_iterator_next().
-See #GstBufferListDoFunction for more details."
- version="0.10.24">
- <return-value transfer-ownership="full">
- <type name="Buffer" c:type="GstBuffer*"/>
- </return-value>
- <parameters>
- <parameter name="do_func"
- transfer-ownership="none"
- scope="call"
- closure="2">
- <type name="BufferListDoFunction"
- c:type="GstBufferListDoFunction"/>
- </parameter>
- <parameter name="user_data" transfer-ownership="none">
- <type name="any" c:type="gpointer"/>
- </parameter>
- </parameters>
- </method>
- <method name="merge_group"
- c:identifier="gst_buffer_list_iterator_merge_group"
- doc="Merge a buffer list group into a normal #GstBuffer by copying its metadata
-and memcpying its data into consecutive memory. All buffers in the current
-group after the implicit cursor will be merged into one new buffer. The
-metadata of the new buffer will be a copy of the metadata of the buffer that
-would be returned by gst_buffer_list_iterator_next(). If there is no buffer
-in the current group after the implicit cursor, NULL will be returned.
-This function will not move the implicit cursor or in any other way affect
-the state of the iterator @it or the list."
- version="0.10.24">
- <return-value transfer-ownership="full" doc="after usage, or NULL">
- <type name="Buffer" c:type="GstBuffer*"/>
- </return-value>
- </method>
- </record>
- <enumeration name="BufferingMode"
- doc="The different types of buffering methods."
- c:type="GstBufferingMode">
- <member name="stream" value="0" c:identifier="GST_BUFFERING_STREAM"/>
- <member name="download" value="1" c:identifier="GST_BUFFERING_DOWNLOAD"/>
- <member name="timeshift"
- value="2"
- c:identifier="GST_BUFFERING_TIMESHIFT"/>
- <member name="live" value="3" c:identifier="GST_BUFFERING_LIVE"/>
- </enumeration>
- <class name="Bus"
- c:type="GstBus"
- doc="The opaque #GstBus data structure."
- parent="Object"
- glib:type-name="GstBus"
- glib:get-type="gst_bus_get_type"
- glib:type-struct="BusClass">
- <constructor name="new"
- c:identifier="gst_bus_new"
- doc="Creates a new #GstBus instance.">
- <return-value transfer-ownership="full">
- <type name="Bus" c:type="GstBus*"/>
- </return-value>
- </constructor>
- <method name="post"
- c:identifier="gst_bus_post"
- doc="Post a message on the given bus. Ownership of the message
-is taken by the bus.
-MT safe.">
- <return-value transfer-ownership="none">
- <type name="boolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <parameter name="message" transfer-ownership="none">
- <type name="Message" c:type="GstMessage*"/>
- </parameter>
- </parameters>
- </method>
- <method name="have_pending"
- c:identifier="gst_bus_have_pending"
- doc="Check if there are pending messages on the bus that
-should be handled.
-otherwise.
-MT safe.">
- <return-value transfer-ownership="none">
- <type name="boolean" c:type="gboolean"/>
- </return-value>
- </method>
- <method name="peek"
- c:identifier="gst_bus_peek"
- doc="Peek the message on the top of the bus' queue. The message will remain
-on the bus' message queue. A reference is returned, and needs to be unreffed
-by the caller.
-MT safe.">
- <return-value transfer-ownership="full">
- <type name="Message" c:type="GstMessage*"/>
- </return-value>
- </method>
- <method name="pop"
- c:identifier="gst_bus_pop"
- doc="Get a message from the bus.
-The message is taken from the bus and needs to be unreffed with
-gst_message_unref() after usage.
-MT safe.">
- <return-value transfer-ownership="full">
- <type name="Message" c:type="GstMessage*"/>
- </return-value>
- </method>
- <method name="pop_filtered"
- c:identifier="gst_bus_pop_filtered"
- doc="Get a message matching @type from the bus. Will discard all messages on
-the bus that do not match @type and that have been posted before the first
-message that does match @type. If there is no message matching @type on
-the bus, all messages will be discarded.
-the bus is empty or there is no message matching @type.
-The message is taken from the bus and needs to be unreffed with
-gst_message_unref() after usage.
-MT safe."
- version="0.10.15">
- <return-value transfer-ownership="full">
- <type name="Message" c:type="GstMessage*"/>
- </return-value>
- <parameters>
- <parameter name="types" transfer-ownership="none">
- <type name="MessageType" c:type="GstMessageType"/>
- </parameter>
- </parameters>
- </method>
- <method name="timed_pop"
- c:identifier="gst_bus_timed_pop"
- doc="Get a message from the bus, waiting up to the specified timeout.
-If @timeout is 0, this function behaves like gst_bus_pop(). If @timeout is
-#GST_CLOCK_TIME_NONE, this function will block forever until a message was
-posted on the bus.
-or NULL if the bus is empty after the timeout expired.
-The message is taken from the bus and needs to be unreffed with
-gst_message_unref() after usage.
-MT safe."
- version="0.10.12">
- <return-value transfer-ownership="full">
- <type name="Message" c:type="GstMessage*"/>
- </return-value>
- <parameters>
- <parameter name="timeout" transfer-ownership="none">
- <type name="ClockTime" c:type="GstClockTime"/>
- </parameter>
- </parameters>
- </method>
- <method name="timed_pop_filtered"
- c:identifier="gst_bus_timed_pop_filtered"
- doc="Get a message from the bus whose type matches the message type mask @types,
-waiting up to the specified timeout (and discarding any messages that do not
-match the mask provided).
-If @timeout is 0, this function behaves like gst_bus_pop_filtered(). If
-matching message was posted on the bus.
-message was found on the bus until the timeout expired.
-The message is taken from the bus and needs to be unreffed with
-gst_message_unref() after usage.
-MT safe."
- version="0.10.15">
- <return-value transfer-ownership="full">
- <type name="Message" c:type="GstMessage*"/>
- </return-value>
- <parameters>
- <parameter name="timeout" transfer-ownership="none">
- <type name="ClockTime" c:type="GstClockTime"/>
- </parameter>
- <parameter name="types" transfer-ownership="none">
- <type name="MessageType" c:type="GstMessageType"/>
- </parameter>
- </parameters>
- </method>
- <method name="set_flushing"
- c:identifier="gst_bus_set_flushing"
- doc="If @flushing, flush out and unref any messages queued in the bus. Releases
-references to the message origin objects. Will flush future messages until
-gst_bus_set_flushing() sets @flushing to #FALSE.
-MT safe.">
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <parameter name="flushing" transfer-ownership="none">
- <type name="boolean" c:type="gboolean"/>
- </parameter>
- </parameters>
- </method>
- <method name="set_sync_handler"
- c:identifier="gst_bus_set_sync_handler"
- doc="Sets the synchronous handler on the bus. The function will be called
-every time a new message is posted on the bus. Note that the function
-will be called in the same thread context as the posting object. This
-function is usually only called by the creator of the bus. Applications
-should handle messages asynchronously using the gst_bus watch and poll
-functions.
-You cannot replace an existing sync_handler. You can pass NULL to this
-function, which will clear the existing handler.">
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <parameter name="func"
- transfer-ownership="none"
- scope="call"
- closure="2">
- <type name="BusSyncHandler" c:type="GstBusSyncHandler"/>
- </parameter>
- <parameter name="data" transfer-ownership="none">
- <type name="any" c:type="gpointer"/>
- </parameter>
- </parameters>
- </method>
- <method name="create_watch"
- c:identifier="gst_bus_create_watch"
- doc="Create watch for this bus. The GSource will be dispatched whenever
-a message is on the bus. After the GSource is dispatched, the
-message is popped off the bus and unreffed.">
- <return-value transfer-ownership="full">
- <type name="GLib.Source" c:type="GSource*"/>
- </return-value>
- </method>
- <method name="add_watch_full"
- c:identifier="gst_bus_add_watch_full"
- doc="Adds a bus watch to the default main context with the given @priority.
-This function is used to receive asynchronous messages in the main loop.
-There can only be a single bus watch per bus, you must remove it before you
-can set a new one.
-When @func is called, the message belongs to the caller; if you want to
-keep a copy of it, call gst_message_ref() before leaving @func.
-The watch can be removed using g_source_remove() or by returning FALSE
-from @func.
-MT safe.">
- <return-value transfer-ownership="none">
- <type name="uint" c:type="guint"/>
- </return-value>
- <parameters>
- <parameter name="priority" transfer-ownership="none">
- <type name="int" c:type="gint"/>
- </parameter>
- <parameter name="func"
- transfer-ownership="none"
- scope="notified"
- closure="3"
- destroy="4">
- <type name="BusFunc" c:type="GstBusFunc"/>
- </parameter>
- <parameter name="user_data" transfer-ownership="none">
- <type name="any" c:type="gpointer"/>
- </parameter>
- <parameter name="notify" transfer-ownership="none" scope="call">
- <type name="GLib.DestroyNotify" c:type="GDestroyNotify"/>
- </parameter>
- </parameters>
- </method>
- <method name="add_watch"
- c:identifier="gst_bus_add_watch"
- doc="Adds a bus watch to the default main context with the default priority.
-This function is used to receive asynchronous messages in the main loop.
-There can only be a single bus watch per bus, you must remove it before you
-can set a new one.
-The watch can be removed using g_source_remove() or by returning FALSE
-from @func.
-MT safe.">
- <return-value transfer-ownership="none">
- <type name="uint" c:type="guint"/>
- </return-value>
- <parameters>
- <parameter name="func"
- transfer-ownership="none"
- scope="call"
- closure="2">
- <type name="BusFunc" c:type="GstBusFunc"/>
- </parameter>
- <parameter name="user_data" transfer-ownership="none">
- <type name="any" c:type="gpointer"/>
- </parameter>
- </parameters>
- </method>
- <method name="poll"
- c:identifier="gst_bus_poll"
- doc="poll for.
-indefinitely.
-Poll the bus for messages. Will block while waiting for messages to come.
-You can specify a maximum time to poll with the @timeout parameter. If
-All messages not in @events will be popped off the bus and will be ignored.
-Because poll is implemented using the "message" signal enabled by
-gst_bus_add_signal_watch(), calling gst_bus_poll() will cause the "message"
-signal to be emitted for every message that poll sees. Thus a "message"
-signal handler will see the same messages that this function sees -- neither
-will steal messages from the other.
-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'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.
-The message is taken from the bus and needs to be unreffed with
-gst_message_unref() after usage.">
- <return-value transfer-ownership="full">
- <type name="Message" c:type="GstMessage*"/>
- </return-value>
- <parameters>
- <parameter name="events" transfer-ownership="none">
- <type name="MessageType" c:type="GstMessageType"/>
- </parameter>
- <parameter name="timeout" transfer-ownership="none">
- <type name="ClockTimeDiff" c:type="GstClockTimeDiff"/>
- </parameter>
- </parameters>
- </method>
- <method name="async_signal_func"
- c:identifier="gst_bus_async_signal_func"
- doc="A helper #GstBusFunc that can be used to convert all asynchronous messages
-into signals.">
- <return-value transfer-ownership="none">
- <type name="boolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <parameter name="message" transfer-ownership="none">
- <type name="Message" c:type="GstMessage*"/>
- </parameter>
- <parameter name="data" transfer-ownership="none">
- <type name="any" c:type="gpointer"/>
- </parameter>
- </parameters>
- </method>
- <method name="sync_signal_handler"
- c:identifier="gst_bus_sync_signal_handler"
- doc="A helper GstBusSyncHandler that can be used to convert all synchronous
-messages into signals.">
- <return-value transfer-ownership="full">
- <type name="BusSyncReply" c:type="GstBusSyncReply"/>
- </return-value>
- <parameters>
- <parameter name="message" transfer-ownership="none">
- <type name="Message" c:type="GstMessage*"/>
- </parameter>
- <parameter name="data" transfer-ownership="none">
- <type name="any" c:type="gpointer"/>
- </parameter>
- </parameters>
- </method>
- <method name="add_signal_watch"
- c:identifier="gst_bus_add_signal_watch"
- doc="Adds a bus signal watch to the default main context with the default
-priority.
-After calling this statement, the bus will emit the "message" signal for each
-message posted on the bus.
-This function may be called multiple times. To clean up, the caller is
-responsible for calling gst_bus_remove_signal_watch() as many times as this
-function is called.
-MT safe.">
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- </method>
- <method name="add_signal_watch_full"
- c:identifier="gst_bus_add_signal_watch_full"
- doc="Adds a bus signal watch to the default main context with the given priority.
-After calling this statement, the bus will emit the "message" signal for each
-message posted on the bus when the main loop is running.
-This function may be called multiple times. To clean up, the caller is
-responsible for calling gst_bus_remove_signal_watch() as many times as this
-function is called.
-There can only be a single bus watch per bus, you most remove all signal watch
-before you can set another type of watch.
-MT safe.">
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <parameter name="priority" transfer-ownership="none">
- <type name="int" c:type="gint"/>
- </parameter>
- </parameters>
- </method>
- <method name="remove_signal_watch"
- c:identifier="gst_bus_remove_signal_watch"
- doc="Removes a signal watch previously added with gst_bus_add_signal_watch().
-MT safe.">
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- </method>
- <method name="enable_sync_message_emission"
- c:identifier="gst_bus_enable_sync_message_emission"
- doc="Instructs GStreamer to emit the "sync-message" signal after running the bus's
-sync handler. This function is here so that code can ensure that they can
-synchronously receive messages without having to affect what the bin's sync
-handler is.
-This function may be called multiple times. To clean up, the caller is
-responsible for calling gst_bus_disable_sync_message_emission() as many times
-as this function is called.
-While this function looks similar to gst_bus_add_signal_watch(), it is not
-exactly the same -- this function enables <emphasis>synchronous</emphasis> emission of
-signals when messages arrive; gst_bus_add_signal_watch() adds an idle callback
-to pop messages off the bus <emphasis>asynchronously</emphasis>. The sync-message signal
-comes from the thread of whatever object posted the message; the "message"
-signal is marshalled to the main thread via the main loop.
-MT safe.">
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- </method>
- <method name="disable_sync_message_emission"
- c:identifier="gst_bus_disable_sync_message_emission"
- doc="gst_bus_enable_sync_message_emission()
-Instructs GStreamer to stop emitting the "sync-message" signal for this bus.
-See gst_bus_enable_sync_message_emission() for more information.
-In the event that multiple pieces of code have called
-gst_bus_enable_sync_message_emission(), the sync-message emissions will only
-be stopped after all calls to gst_bus_enable_sync_message_emission() were
-"cancelled" by calling this function. In this way the semantics are exactly
-the same as gst_object_ref() that which calls enable should also call
-disable.
-MT safe.">
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- </method>
- <field name="object">
- <type name="Object" c:type="GstObject"/>
- </field>
- <field name="queue">
- <type name="GLib.Queue" c:type="GQueue*"/>
- </field>
- <field name="queue_lock">
- <type name="GLib.Mutex" c:type="GMutex*"/>
- </field>
- <field name="sync_handler">
- <type name="BusSyncHandler" c:type="GstBusSyncHandler"/>
- </field>
- <field name="sync_handler_data">
- <type name="any" c:type="gpointer"/>
- </field>
- <field name="signal_watch_id">
- <type name="uint" c:type="guint"/>
- </field>
- <field name="num_signal_watchers">
- <type name="uint" c:type="guint"/>
- </field>
- <field name="priv">
- <type name="BusPrivate" c:type="GstBusPrivate*"/>
- </field>
- <field name="_gst_reserved">
- <array zero-terminated="0" c:type="gpointer" fixed-size="3">
- <type name="any"/>
- </array>
- </field>
- <glib:signal name="message"
- doc="A message has been posted on the bus. This signal is emitted from a
-GSource added to the mainloop. this signal will only be emitted when
-there is a mainloop running.">
- <return-value transfer-ownership="full">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <parameter name="message" transfer-ownership="none">
- <type name="Message" c:type="GstMessage"/>
- </parameter>
- </parameters>
- </glib:signal>
- <glib:signal name="sync-message"
- doc="A message has been posted on the bus. This signal is emitted from the
-thread that posted the message so one has to be careful with locking.
-This signal will not be emitted by default, you have to set up
-gst_bus_sync_signal_handler() as a sync handler if you want this
-signal to be emitted when a message is posted on the bus, like this:
-<programlisting>
-gst_bus_set_sync_handler (bus, gst_bus_sync_signal_handler, yourdata);
-</programlisting>">
- <return-value transfer-ownership="full">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <parameter name="message" transfer-ownership="none">
- <type name="Message" c:type="GstMessage"/>
- </parameter>
- </parameters>
- </glib:signal>
- </class>
- <record name="BusClass"
- c:type="GstBusClass"
- glib:is-gtype-struct-for="Bus">
- <field name="parent_class">
- <type name="ObjectClass" c:type="GstObjectClass"/>
- </field>
- <field name="message">
- <callback name="message" c:type="message">
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <parameter name="bus" transfer-ownership="none">
- <type name="Bus" c:type="GstBus*"/>
- </parameter>
- <parameter name="message" transfer-ownership="none">
- <type name="Message" c:type="GstMessage*"/>
- </parameter>
- </parameters>
- </callback>
- </field>
- <field name="sync_message">
- <callback name="sync_message" c:type="sync_message">
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <parameter name="bus" transfer-ownership="none">
- <type name="Bus" c:type="GstBus*"/>
- </parameter>
- <parameter name="message" transfer-ownership="none">
- <type name="Message" c:type="GstMessage*"/>
- </parameter>
- </parameters>
- </callback>
- </field>
- <field name="_gst_reserved">
- <array zero-terminated="0" c:type="gpointer" fixed-size="4">
- <type name="any"/>
- </array>
- </field>
- </record>
- <bitfield name="BusFlags"
- doc="The standard flags that a bus may have."
- c:type="GstBusFlags">
- <member name="flushing" value="16" c:identifier="GST_BUS_FLUSHING"/>
- <member name="flag_last" value="32" c:identifier="GST_BUS_FLAG_LAST"/>
- </bitfield>
- <callback name="BusFunc"
- c:type="GstBusFunc"
- doc="Specifies the type of function passed to gst_bus_add_watch() or
-gst_bus_add_watch_full(), which is called from the mainloop when a message
-is available on the bus.
-The message passed to the function will be unreffed after execution of this
-function so it should not be freed in the function.
-Note that this function is used as a GSourceFunc which means that returning
-FALSE will remove the GSource from the mainloop.">
- <return-value transfer-ownership="none">
- <type name="boolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <parameter name="bus" transfer-ownership="none">
- <type name="Bus" c:type="GstBus*"/>
- </parameter>
- <parameter name="message" transfer-ownership="none">
- <type name="Message" c:type="GstMessage*"/>
- </parameter>
- <parameter name="data" transfer-ownership="none">
- <type name="any" c:type="gpointer"/>
- </parameter>
- </parameters>
- </callback>
- <record name="BusPrivate" c:type="GstBusPrivate">
- </record>
- <callback name="BusSyncHandler"
- c:type="GstBusSyncHandler"
- doc="Handler will be invoked synchronously, when a new message has been injected
-into the bus. This function is mostly used internally. Only one sync handler
-can be attached to a given bus.
-If the handler returns GST_BUS_DROP, it should unref the message, else the
-message should not be unreffed by the sync handler.">
- <return-value transfer-ownership="full">
- <type name="BusSyncReply" c:type="GstBusSyncReply"/>
- </return-value>
- <parameters>
- <parameter name="bus" transfer-ownership="none">
- <type name="Bus" c:type="GstBus*"/>
- </parameter>
- <parameter name="message" transfer-ownership="none">
- <type name="Message" c:type="GstMessage*"/>
- </parameter>
- <parameter name="data" transfer-ownership="none">
- <type name="any" c:type="gpointer"/>
- </parameter>
- </parameters>
- </callback>
- <enumeration name="BusSyncReply"
- doc="The result values for a GstBusSyncHandler."
- c:type="GstBusSyncReply">
- <member name="drop" value="0" c:identifier="GST_BUS_DROP"/>
- <member name="pass" value="1" c:identifier="GST_BUS_PASS"/>
- <member name="async" value="2" c:identifier="GST_BUS_ASYNC"/>
- </enumeration>
- <constant name="CAN_INLINE" value="1">
- <type name="int"/>
- </constant>
- <constant name="CLOCK_ENTRY_TRACE_NAME" value="GstClockEntry">
- <type name="utf8"/>
- </constant>
- <constant name="CLOCK_TIME_NONE" value="-1">
- <type name="int"/>
- </constant>
- <record name="Caps"
- c:type="GstCaps"
- doc="Object describing media types."
- glib:type-name="GstCaps"
- glib:get-type="gst_caps_get_type">
- <field name="type" writable="1">
- <type name="GType" c:type="GType"/>
- </field>
- <field name="refcount" writable="1">
- <type name="int" c:type="gint"/>
- </field>
- <field name="flags" writable="1">
- <type name="CapsFlags" c:type="GstCapsFlags"/>
- </field>
- <field name="structs" writable="1">
- <type name="GLib.PtrArray" c:type="GPtrArray*"/>
- </field>
- <field name="_gst_reserved" writable="1">
- <array zero-terminated="0" c:type="gpointer" fixed-size="4">
- <type name="any"/>
- </array>
- </field>
- <constructor name="new_empty"
- c:identifier="gst_caps_new_empty"
- doc="Creates a new #GstCaps that is empty. That is, the returned
-#GstCaps contains no media formats.
-Caller is responsible for unreffing the returned caps.">
- <return-value transfer-ownership="full">
- <type name="Caps" c:type="GstCaps*"/>
- </return-value>
- </constructor>
- <constructor name="new_any"
- c:identifier="gst_caps_new_any"
- doc="Creates a new #GstCaps that indicates that it is compatible with
-any media format.">
- <return-value transfer-ownership="full">
- <type name="Caps" c:type="GstCaps*"/>
- </return-value>
- </constructor>
- <constructor name="new_simple"
- c:identifier="gst_caps_new_simple"
- doc="Creates a new #GstCaps that contains one #GstStructure. The
-structure is defined by the arguments, which have the same format
-as gst_structure_new().
-Caller is responsible for unreffing the returned caps.">
- <return-value transfer-ownership="full">
- <type name="Caps" c:type="GstCaps*"/>
- </return-value>
- <parameters>
- <parameter name="media_type" transfer-ownership="none">
- <type name="utf8" c:type="char*"/>
- </parameter>
- <parameter name="fieldname" transfer-ownership="none">
- <type name="utf8" c:type="char*"/>
- </parameter>
- <parameter transfer-ownership="none">
- <varargs>
- </varargs>
- </parameter>
- </parameters>
- </constructor>
- <constructor name="new_full"
- c:identifier="gst_caps_new_full"
- doc="Creates a new #GstCaps and adds all the structures listed as
-arguments. The list must be NULL-terminated. The structures
-are not copied; the returned #GstCaps owns the structures.">
- <return-value transfer-ownership="full">
- <type name="Caps" c:type="GstCaps*"/>
- </return-value>
- <parameters>
- <parameter name="struct1" transfer-ownership="none">
- <type name="Structure" c:type="GstStructure*"/>
- </parameter>
- <parameter transfer-ownership="none">
- <varargs>
- </varargs>
- </parameter>
- </parameters>
- </constructor>
- <method name="ref"
- c:identifier="gst_caps_ref"
- doc="Add a reference to a #GstCaps object.
-From this point on, until the caller calls gst_caps_unref() or
-gst_caps_make_writable(), it is guaranteed that the caps object will not
-change. This means its structures won't change, etc. To use a #GstCaps
-object, you must always have a refcount on it -- either the one made
-implicitly by e.g. gst_caps_new_simple(), or via taking one explicitly with
-this function.">
- <return-value transfer-ownership="full">
- <type name="Caps" c:type="GstCaps*"/>
- </return-value>
- </method>
- <method name="copy"
- c:identifier="gst_caps_copy"
- doc="Creates a new #GstCaps as a copy of the old @caps. The new caps will have a
-refcount of 1, owned by the caller. The structures are copied as well.
-Note that this function is the semantic equivalent of a gst_caps_ref()
-followed by a gst_caps_make_writable(). If you only want to hold on to a
-reference to the data, you should use gst_caps_ref().
-When you are finished with the caps, call gst_caps_unref() on it.">
- <return-value transfer-ownership="full">
- <type name="Caps" c:type="GstCaps*"/>
- </return-value>
- </method>
- <method name="make_writable"
- c:identifier="gst_caps_make_writable"
- doc="Returns a writable copy of @caps.
-If there is only one reference count on @caps, the caller must be the owner,
-and so this function will return the caps object unchanged. If on the other
-hand there is more than one reference on the object, a new caps object will
-be returned. The caller's reference on @caps will be removed, and instead the
-caller will own a reference to the returned object.
-In short, this function unrefs the caps in the argument and refs the caps
-that it returns. Don't access the argument after calling this function. See">
- <return-value transfer-ownership="full">
- <type name="Caps" c:type="GstCaps*"/>
- </return-value>
- </method>
- <method name="unref"
- c:identifier="gst_caps_unref"
- doc="Unref a #GstCaps and and free all its structures and the
-structures' values when the refcount reaches 0.">
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- </method>
- <method name="append"
- c:identifier="gst_caps_append"
- doc="Appends the structures contained in @caps2 to @caps1. The structures in
-freed. If either caps is ANY, the resulting caps will be ANY.">
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <parameter name="caps2" transfer-ownership="none">
- <type name="Caps" c:type="GstCaps*"/>
- </parameter>
- </parameters>
- </method>
- <method name="merge"
- c:identifier="gst_caps_merge"
- doc="Appends the structures contained in @caps2 to @caps1 if they are not yet
-expressed by @caps1. The structures in @caps2 are not copied -- they are
-transferred to @caps1, and then @caps2 is freed.
-If either caps is ANY, the resulting caps will be ANY."
- version="0.10.10">
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <parameter name="caps2" transfer-ownership="none">
- <type name="Caps" c:type="GstCaps*"/>
- </parameter>
- </parameters>
- </method>
- <method name="append_structure"
- c:identifier="gst_caps_append_structure"
- doc="Appends @structure to @caps. The structure is not copied; @caps
-becomes the owner of @structure.">
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <parameter name="structure" transfer-ownership="none">
- <type name="Structure" c:type="GstStructure*"/>
- </parameter>
- </parameters>
- </method>
- <method name="remove_structure"
- c:identifier="gst_caps_remove_structure"
- doc="removes the stucture with the given index from the list of structures
-contained in @caps.">
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <parameter name="idx" transfer-ownership="none">
- <type name="uint" c:type="guint"/>
- </parameter>
- </parameters>
- </method>
- <method name="merge_structure"
- c:identifier="gst_caps_merge_structure"
- doc="Appends @structure to @caps if its not already expressed by @caps. The
-structure is not copied; @caps becomes the owner of @structure.">
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <parameter name="structure" transfer-ownership="none">
- <type name="Structure" c:type="GstStructure*"/>
- </parameter>
- </parameters>
- </method>
- <method name="get_size"
- c:identifier="gst_caps_get_size"
- doc="Gets the number of structures contained in @caps.">
- <return-value transfer-ownership="none">
- <type name="uint" c:type="guint"/>
- </return-value>
- </method>
- <method name="get_structure"
- c:identifier="gst_caps_get_structure"
- doc="Finds the structure in @caps that has the index @index, and
-returns it.
-non-const GstStructure *. This is for programming convenience --
-the caller should be aware that structures inside a constant
-#GstCaps should not be modified. However, if you know the caps
-are writable, either because you have just copied them or made
-them writable with gst_caps_make_writable(), you may modify the
-structure returned in the usual way, e.g. with functions like
-gst_structure_set().
-You do not need to free or unref the structure returned, it
-belongs to the #GstCaps.">
- <return-value transfer-ownership="full">
- <type name="Structure" c:type="GstStructure*"/>
- </return-value>
- <parameters>
- <parameter name="index" transfer-ownership="none">
- <type name="uint" c:type="guint"/>
- </parameter>
- </parameters>
- </method>
- <method name="copy_nth"
- c:identifier="gst_caps_copy_nth"
- doc="Creates a new #GstCaps and appends a copy of the nth structure
-contained in @caps.">
- <return-value transfer-ownership="full">
- <type name="Caps" c:type="GstCaps*"/>
- </return-value>
- <parameters>
- <parameter name="nth" transfer-ownership="none">
- <type name="uint" c:type="guint"/>
- </parameter>
- </parameters>
- </method>
- <method name="truncate"
- c:identifier="gst_caps_truncate"
- doc="Destructively discard all but the first structure from @caps. Useful when
-fixating. @caps must be writable.">
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- </method>
- <method name="set_value"
- c:identifier="gst_caps_set_value"
- doc="Sets the given @field on all structures of @caps to the given @value.
-This is a convenience function for calling gst_structure_set_value() on
-all structures of @caps."
- version="0.10.26">
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <parameter name="field" transfer-ownership="none">
- <type name="utf8" c:type="char*"/>
- </parameter>
- <parameter name="value" transfer-ownership="none">
- <type name="GObject.Value" c:type="GValue*"/>
- </parameter>
- </parameters>
- </method>
- <method name="set_simple"
- c:identifier="gst_caps_set_simple"
- doc="Sets fields in a #GstCaps. The arguments must be passed in the same
-manner as gst_structure_set(), and be NULL-terminated.
-<note>Prior to GStreamer version 0.10.26, this function failed when
-of GStreamer, you may only call this function when GST_CAPS_IS_SIMPLE()
-is %TRUE for @caps.</note>">
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <parameter name="field" transfer-ownership="none">
- <type name="utf8" c:type="char*"/>
- </parameter>
- <parameter transfer-ownership="none">
- <varargs>
- </varargs>
- </parameter>
- </parameters>
- </method>
- <method name="is_any"
- c:identifier="gst_caps_is_any"
- doc="Determines if @caps represents any media format.">
- <return-value transfer-ownership="none">
- <type name="boolean" c:type="gboolean"/>
- </return-value>
- </method>
- <method name="is_empty"
- c:identifier="gst_caps_is_empty"
- doc="Determines if @caps represents no media formats.">
- <return-value transfer-ownership="none">
- <type name="boolean" c:type="gboolean"/>
- </return-value>
- </method>
- <method name="is_fixed"
- c:identifier="gst_caps_is_fixed"
- doc="Fixed #GstCaps describe exactly one format, that is, they have exactly
-one structure, and each field in the structure describes a fixed type.
-Examples of non-fixed types are GST_TYPE_INT_RANGE and GST_TYPE_LIST.">
- <return-value transfer-ownership="none">
- <type name="boolean" c:type="gboolean"/>
- </return-value>
- </method>
- <method name="is_always_compatible"
- c:identifier="gst_caps_is_always_compatible"
- doc="A given #GstCaps structure is always compatible with another if
-every media format that is in the first is also contained in the
-second. That is, @caps1 is a subset of @caps2.">
- <return-value transfer-ownership="none">
- <type name="boolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <parameter name="caps2" transfer-ownership="none">
- <type name="Caps" c:type="GstCaps*"/>
- </parameter>
- </parameters>
- </method>
- <method name="is_subset"
- c:identifier="gst_caps_is_subset"
- doc="Checks if all caps represented by @subset are also represented by @superset.
-<note>This function does not work reliably if optional properties for caps
-are included on one caps and omitted on the other.</note>">
- <return-value transfer-ownership="none">
- <type name="boolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <parameter name="superset" transfer-ownership="none">
- <type name="Caps" c:type="GstCaps*"/>
- </parameter>
- </parameters>
- </method>
- <method name="is_equal"
- c:identifier="gst_caps_is_equal"
- doc="Checks if the given caps represent the same set of caps.
-<note>This function does not work reliably if optional properties for caps
-are included on one caps and omitted on the other.</note>
-This function deals correctly with passing NULL for any of the caps.">
- <return-value transfer-ownership="none">
- <type name="boolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <parameter name="caps2" transfer-ownership="none">
- <type name="Caps" c:type="GstCaps*"/>
- </parameter>
- </parameters>
- </method>
- <method name="is_equal_fixed"
- c:identifier="gst_caps_is_equal_fixed"
- doc="Tests if two #GstCaps are equal. This function only works on fixed
-#GstCaps.">
- <return-value transfer-ownership="none">
- <type name="boolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <parameter name="caps2" transfer-ownership="none">
- <type name="Caps" c:type="GstCaps*"/>
- </parameter>
- </parameters>
- </method>
- <method name="can_intersect"
- c:identifier="gst_caps_can_intersect"
- doc="Tries intersecting @caps1 and @caps2 and reports wheter the result would not
-be empty"
- version="0.10.25">
- <return-value transfer-ownership="none">
- <type name="boolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <parameter name="caps2" transfer-ownership="none">
- <type name="Caps" c:type="GstCaps*"/>
- </parameter>
- </parameters>
- </method>
- <method name="intersect"
- c:identifier="gst_caps_intersect"
- doc="Creates a new #GstCaps that contains all the formats that are common
-to both @caps1 and @caps2.">
- <return-value transfer-ownership="full">
- <type name="Caps" c:type="GstCaps*"/>
- </return-value>
- <parameters>
- <parameter name="caps2" transfer-ownership="none">
- <type name="Caps" c:type="GstCaps*"/>
- </parameter>
- </parameters>
- </method>
- <method name="subtract"
- c:identifier="gst_caps_subtract"
- doc="Subtracts the @subtrahend from the @minuend.
-<note>This function does not work reliably if optional properties for caps
-are included on one caps and omitted on the other.</note>">
- <return-value transfer-ownership="full">
- <type name="Caps" c:type="GstCaps*"/>
- </return-value>
- <parameters>
- <parameter name="subtrahend" transfer-ownership="none">
- <type name="Caps" c:type="GstCaps*"/>
- </parameter>
- </parameters>
- </method>
- <method name="union"
- c:identifier="gst_caps_union"
- doc="Creates a new #GstCaps that contains all the formats that are in
-either @caps1 and @caps2.">
- <return-value transfer-ownership="full">
- <type name="Caps" c:type="GstCaps*"/>
- </return-value>
- <parameters>
- <parameter name="caps2" transfer-ownership="none">
- <type name="Caps" c:type="GstCaps*"/>
- </parameter>
- </parameters>
- </method>
- <method name="normalize"
- c:identifier="gst_caps_normalize"
- doc="Creates a new #GstCaps that represents the same set of formats as">
- <return-value transfer-ownership="full">
- <type name="Caps" c:type="GstCaps*"/>
- </return-value>
- </method>
- <method name="do_simplify"
- c:identifier="gst_caps_do_simplify"
- doc="Modifies the given @caps inplace into a representation that represents the
-same set of formats, but in a simpler form. Component structures that are
-identical are merged. Component structures that have values that can be
-merged are also merged.">
- <return-value transfer-ownership="none">
- <type name="boolean" c:type="gboolean"/>
- </return-value>
- </method>
- <method name="save_thyself"
- c:identifier="gst_caps_save_thyself"
- doc="Serializes a #GstCaps to XML and adds it as a child node of @parent.">
- <return-value transfer-ownership="full">
- <type name="libxml2.NodePtr" c:type="xmlNodePtr"/>
- </return-value>
- <parameters>
- <parameter name="parent" transfer-ownership="none">
- <type name="libxml2.NodePtr" c:type="xmlNodePtr"/>
- </parameter>
- </parameters>
- </method>
- <method name="replace"
- c:identifier="gst_caps_replace"
- doc="Replaces *caps with @newcaps. Unrefs the #GstCaps in the location
-pointed to by @caps, if applicable, then modifies @caps to point to
-This function does not take any locks so you might want to lock
-the object owning @caps pointer.">
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <parameter name="newcaps" transfer-ownership="none">
- <type name="Caps" c:type="GstCaps*"/>
- </parameter>
- </parameters>
- </method>
- <method name="to_string"
- c:identifier="gst_caps_to_string"
- doc="Converts @caps to a string representation. This string representation
-can be converted back to a #GstCaps by gst_caps_from_string().
-For debugging purposes its easier to do something like this:
-|[
-GST_LOG ("caps are %" GST_PTR_FORMAT, caps);
-]|
-This prints the caps in human readble form.">
- <return-value transfer-ownership="full">
- <type name="utf8" c:type="gchar*"/>
- </return-value>
- </method>
- </record>
- <bitfield name="CapsFlags"
- doc="anything.
-Extra flags for a caps."
- c:type="GstCapsFlags">
- <member name="caps_flags_any"
- value="1"
- c:identifier="GST_CAPS_FLAGS_ANY"/>
- </bitfield>
- <interface name="ChildProxy"
- c:type="GstChildProxy"
- doc="Opaque #GstChildProxy data structure."
- glib:type-name="GstChildProxy"
- glib:get-type="gst_child_proxy_get_type"
- glib:type-struct="ChildProxyInterface">
- <prerequisite name="Object"/>
- <virtual-method name="get_child_by_index" invoker="get_child_by_index">
- <return-value transfer-ownership="full">
- <type name="Object" c:type="GstObject*"/>
- </return-value>
- <parameters>
- <parameter name="index" transfer-ownership="none">
- <type name="uint" c:type="guint"/>
- </parameter>
- </parameters>
- </virtual-method>
- <virtual-method name="get_children_count" invoker="get_children_count">
- <return-value transfer-ownership="none">
- <type name="uint" c:type="guint"/>
- </return-value>
- </virtual-method>
- <method name="get_child_by_name"
- c:identifier="gst_child_proxy_get_child_by_name"
- doc="Looks up a child element by the given name.
-Implementors can use #GstObject together with gst_object_get_name()
-MT safe.">
- <return-value transfer-ownership="full">
- <type name="Object" c:type="GstObject*"/>
- </return-value>
- <parameters>
- <parameter name="name" transfer-ownership="none">
- <type name="utf8" c:type="gchar*"/>
- </parameter>
- </parameters>
- </method>
- <method name="get_child_by_index"
- c:identifier="gst_child_proxy_get_child_by_index"
- doc="Fetches a child by its number.
-after usage.
-MT safe.">
- <return-value transfer-ownership="full" doc="Unref">
- <type name="Object" c:type="GstObject*"/>
- </return-value>
- <parameters>
- <parameter name="index" transfer-ownership="none">
- <type name="uint" c:type="guint"/>
- </parameter>
- </parameters>
- </method>
- <method name="get_children_count"
- c:identifier="gst_child_proxy_get_children_count"
- doc="Gets the number of child objects this parent contains.
-MT safe.">
- <return-value transfer-ownership="none">
- <type name="uint" c:type="guint"/>
- </return-value>
- </method>
- <glib:signal name="child-added">
- <return-value transfer-ownership="full">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <parameter name="object" transfer-ownership="none">
- <type name="GObject.Object" c:type="GObject"/>
- </parameter>
- </parameters>
- </glib:signal>
- <glib:signal name="child-removed">
- <return-value transfer-ownership="full">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <parameter name="object" transfer-ownership="none">
- <type name="GObject.Object" c:type="GObject"/>
- </parameter>
- </parameters>
- </glib:signal>
- </interface>
- <record name="ChildProxyInterface"
- c:type="GstChildProxyInterface"
- glib:is-gtype-struct-for="ChildProxy"
- doc="#GstChildProxy interface.">
- <field name="parent">
- <type name="GObject.TypeInterface" c:type="GTypeInterface"/>
- </field>
- <field name="get_child_by_index">
- <callback name="get_child_by_index" c:type="get_child_by_index">
- <return-value transfer-ownership="full">
- <type name="Object" c:type="GstObject*"/>
- </return-value>
- <parameters>
- <parameter name="parent" transfer-ownership="none">
- <type name="ChildProxy" c:type="GstChildProxy*"/>
- </parameter>
- <parameter name="index" transfer-ownership="none">
- <type name="uint" c:type="guint"/>
- </parameter>
- </parameters>
- </callback>
- </field>
- <field name="get_children_count">
- <callback name="get_children_count" c:type="get_children_count">
- <return-value transfer-ownership="none">
- <type name="uint" c:type="guint"/>
- </return-value>
- <parameters>
- <parameter name="parent" transfer-ownership="none">
- <type name="ChildProxy" c:type="GstChildProxy*"/>
- </parameter>
- </parameters>
- </callback>
- </field>
- <field name="child_added">
- <callback name="child_added" c:type="child_added">
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <parameter name="parent" transfer-ownership="none">
- <type name="ChildProxy" c:type="GstChildProxy*"/>
- </parameter>
- <parameter name="child" transfer-ownership="none">
- <type name="Object" c:type="GstObject*"/>
- </parameter>
- </parameters>
- </callback>
- </field>
- <field name="child_removed">
- <callback name="child_removed" c:type="child_removed">
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <parameter name="parent" transfer-ownership="none">
- <type name="ChildProxy" c:type="GstChildProxy*"/>
- </parameter>
- <parameter name="child" transfer-ownership="none">
- <type name="Object" c:type="GstObject*"/>
- </parameter>
- </parameters>
- </callback>
- </field>
- <field name="_gst_reserved">
- <array zero-terminated="0" c:type="gpointer" fixed-size="4">
- <type name="any"/>
- </array>
- </field>
- </record>
- <class name="Clock"
- c:type="GstClock"
- doc="#GstClock base structure. The values of this structure are
-protected for subclasses, use the methods to use the #GstClock."
- parent="Object"
- glib:type-name="GstClock"
- glib:get-type="gst_clock_get_type"
- glib:type-struct="ClockClass">
- <function name="id_ref"
- c:identifier="gst_clock_id_ref"
- doc="Increase the refcount of given @id.
-MT safe.">
- <return-value transfer-ownership="full">
- <type name="ClockID" c:type="GstClockID"/>
- </return-value>
- <parameters>
- <parameter name="id" transfer-ownership="none">
- <type name="ClockID" c:type="GstClockID"/>
- </parameter>
- </parameters>
- </function>
- <function name="id_unref"
- c:identifier="gst_clock_id_unref"
- doc="Unref given @id. When the refcount reaches 0 the
-#GstClockID will be freed.
-MT safe.">
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <parameter name="id" transfer-ownership="none">
- <type name="ClockID" c:type="GstClockID"/>
- </parameter>
- </parameters>
- </function>
- <function name="id_compare_func"
- c:identifier="gst_clock_id_compare_func">
- <return-value transfer-ownership="none">
- <type name="int" c:type="gint"/>
- </return-value>
- <parameters>
- <parameter name="id1" transfer-ownership="none">
- <type name="any" c:type="gconstpointer"/>
- </parameter>
- <parameter name="id2" transfer-ownership="none">
- <type name="any" c:type="gconstpointer"/>
- </parameter>
- </parameters>
- </function>
- <function name="id_get_time" c:identifier="gst_clock_id_get_time">
- <return-value transfer-ownership="full">
- <type name="ClockTime" c:type="GstClockTime"/>
- </return-value>
- <parameters>
- <parameter name="id" transfer-ownership="none">
- <type name="ClockID" c:type="GstClockID"/>
- </parameter>
- </parameters>
- </function>
- <function name="id_wait" c:identifier="gst_clock_id_wait">
- <return-value transfer-ownership="full">
- <type name="ClockReturn" c:type="GstClockReturn"/>
- </return-value>
- <parameters>
- <parameter name="id" transfer-ownership="none">
- <type name="ClockID" c:type="GstClockID"/>
- </parameter>
- <parameter name="jitter" transfer-ownership="none">
- <type name="ClockTimeDiff" c:type="GstClockTimeDiff*"/>
- </parameter>
- </parameters>
- </function>
- <function name="id_wait_async"
- c:identifier="gst_clock_id_wait_async"
- doc="Register a callback on the given #GstClockID @id with the given
-function and user_data. When passing a #GstClockID with an invalid
-time to this function, the callback will be called immediately
-with a time set to GST_CLOCK_TIME_NONE. The callback will
-be called when the time of @id has been reached.
-The callback @func can be invoked from any thread, either provided by the
-core or from a streaming thread. The application should be prepared for this.
-MT safe.">
- <return-value transfer-ownership="full">
- <type name="ClockReturn" c:type="GstClockReturn"/>
- </return-value>
- <parameters>
- <parameter name="id" transfer-ownership="none">
- <type name="ClockID" c:type="GstClockID"/>
- </parameter>
- <parameter name="func"
- transfer-ownership="none"
- scope="call"
- closure="2">
- <type name="ClockCallback" c:type="GstClockCallback"/>
- </parameter>
- <parameter name="user_data" transfer-ownership="none">
- <type name="any" c:type="gpointer"/>
- </parameter>
- </parameters>
- </function>
- <function name="id_unschedule"
- c:identifier="gst_clock_id_unschedule"
- doc="Cancel an outstanding request with @id. This can either
-be an outstanding async notification or a pending sync notification.
-After this call, @id cannot be used anymore to receive sync or
-async notifications, you need to create a new #GstClockID.
-MT safe.">
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <parameter name="id" transfer-ownership="none">
- <type name="ClockID" c:type="GstClockID"/>
- </parameter>
- </parameters>
- </function>
- <virtual-method name="change_resolution">
- <return-value transfer-ownership="full">
- <type name="ClockTime" c:type="GstClockTime"/>
- </return-value>
- <parameters>
- <parameter name="old_resolution" transfer-ownership="none">
- <type name="ClockTime" c:type="GstClockTime"/>
- </parameter>
- <parameter name="new_resolution" transfer-ownership="none">
- <type name="ClockTime" c:type="GstClockTime"/>
- </parameter>
- </parameters>
- </virtual-method>
- <virtual-method name="get_resolution" invoker="get_resolution">
- <return-value transfer-ownership="full">
- <type name="ClockTime" c:type="GstClockTime"/>
- </return-value>
- </virtual-method>
- <virtual-method name="get_internal_time" invoker="get_internal_time">
- <return-value transfer-ownership="full">
- <type name="ClockTime" c:type="GstClockTime"/>
- </return-value>
- </virtual-method>
- <virtual-method name="wait">
- <return-value transfer-ownership="full">
- <type name="ClockReturn" c:type="GstClockReturn"/>
- </return-value>
- <parameters>
- <parameter name="entry" transfer-ownership="none">
- <type name="ClockEntry" c:type="GstClockEntry*"/>
- </parameter>
- </parameters>
- </virtual-method>
- <virtual-method name="wait_async">
- <return-value transfer-ownership="full">
- <type name="ClockReturn" c:type="GstClockReturn"/>
- </return-value>
- <parameters>
- <parameter name="entry" transfer-ownership="none">
- <type name="ClockEntry" c:type="GstClockEntry*"/>
- </parameter>
- </parameters>
- </virtual-method>
- <virtual-method name="unschedule">
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <parameter name="entry" transfer-ownership="none">
- <type name="ClockEntry" c:type="GstClockEntry*"/>
- </parameter>
- </parameters>
- </virtual-method>
- <virtual-method name="wait_jitter">
- <return-value transfer-ownership="full">
- <type name="ClockReturn" c:type="GstClockReturn"/>
- </return-value>
- <parameters>
- <parameter name="entry" transfer-ownership="none">
- <type name="ClockEntry" c:type="GstClockEntry*"/>
- </parameter>
- <parameter name="jitter" transfer-ownership="none">
- <type name="ClockTimeDiff" c:type="GstClockTimeDiff*"/>
- </parameter>
- </parameters>
- </virtual-method>
- <method name="set_resolution" c:identifier="gst_clock_set_resolution">
- <return-value transfer-ownership="full">
- <type name="ClockTime" c:type="GstClockTime"/>
- </return-value>
- <parameters>
- <parameter name="resolution" transfer-ownership="none">
- <type name="ClockTime" c:type="GstClockTime"/>
- </parameter>
- </parameters>
- </method>
- <method name="get_resolution" c:identifier="gst_clock_get_resolution">
- <return-value transfer-ownership="full">
- <type name="ClockTime" c:type="GstClockTime"/>
- </return-value>
- </method>
- <method name="get_time" c:identifier="gst_clock_get_time">
- <return-value transfer-ownership="full">
- <type name="ClockTime" c:type="GstClockTime"/>
- </return-value>
- </method>
- <method name="set_calibration" c:identifier="gst_clock_set_calibration">
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <parameter name="internal" transfer-ownership="none">
- <type name="ClockTime" c:type="GstClockTime"/>
- </parameter>
- <parameter name="external" transfer-ownership="none">
- <type name="ClockTime" c:type="GstClockTime"/>
- </parameter>
- <parameter name="rate_num" transfer-ownership="none">
- <type name="ClockTime" c:type="GstClockTime"/>
- </parameter>
- <parameter name="rate_denom" transfer-ownership="none">
- <type name="ClockTime" c:type="GstClockTime"/>
- </parameter>
- </parameters>
- </method>
- <method name="get_calibration" c:identifier="gst_clock_get_calibration">
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <parameter name="internal" transfer-ownership="none">
- <type name="ClockTime" c:type="GstClockTime*"/>
- </parameter>
- <parameter name="external" transfer-ownership="none">
- <type name="ClockTime" c:type="GstClockTime*"/>
- </parameter>
- <parameter name="rate_num" transfer-ownership="none">
- <type name="ClockTime" c:type="GstClockTime*"/>
- </parameter>
- <parameter name="rate_denom" transfer-ownership="none">
- <type name="ClockTime" c:type="GstClockTime*"/>
- </parameter>
- </parameters>
- </method>
- <method name="set_master" c:identifier="gst_clock_set_master">
- <return-value transfer-ownership="none">
- <type name="boolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <parameter name="master" transfer-ownership="none">
- <type name="Clock" c:type="GstClock*"/>
- </parameter>
- </parameters>
- </method>
- <method name="get_master" c:identifier="gst_clock_get_master">
- <return-value transfer-ownership="full">
- <type name="Clock" c:type="GstClock*"/>
- </return-value>
- </method>
- <method name="add_observation" c:identifier="gst_clock_add_observation">
- <return-value transfer-ownership="none">
- <type name="boolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <parameter name="slave" transfer-ownership="none">
- <type name="ClockTime" c:type="GstClockTime"/>
- </parameter>
- <parameter name="master" transfer-ownership="none">
- <type name="ClockTime" c:type="GstClockTime"/>
- </parameter>
- <parameter name="r_squared"
- direction="out"
- transfer-ownership="full">
- <type name="double" c:type="gdouble*"/>
- </parameter>
- </parameters>
- </method>
- <method name="get_internal_time"
- c:identifier="gst_clock_get_internal_time">
- <return-value transfer-ownership="full">
- <type name="ClockTime" c:type="GstClockTime"/>
- </return-value>
- </method>
- <method name="adjust_unlocked" c:identifier="gst_clock_adjust_unlocked">
- <return-value transfer-ownership="full">
- <type name="ClockTime" c:type="GstClockTime"/>
- </return-value>
- <parameters>
- <parameter name="internal" transfer-ownership="none">
- <type name="ClockTime" c:type="GstClockTime"/>
- </parameter>
- </parameters>
- </method>
- <method name="unadjust_unlocked"
- c:identifier="gst_clock_unadjust_unlocked">
- <return-value transfer-ownership="full">
- <type name="ClockTime" c:type="GstClockTime"/>
- </return-value>
- <parameters>
- <parameter name="external" transfer-ownership="none">
- <type name="ClockTime" c:type="GstClockTime"/>
- </parameter>
- </parameters>
- </method>
- <method name="new_single_shot_id"
- c:identifier="gst_clock_new_single_shot_id">
- <return-value transfer-ownership="full">
- <type name="ClockID" c:type="GstClockID"/>
- </return-value>
- <parameters>
- <parameter name="time" transfer-ownership="none">
- <type name="ClockTime" c:type="GstClockTime"/>
- </parameter>
- </parameters>
- </method>
- <method name="new_periodic_id" c:identifier="gst_clock_new_periodic_id">
- <return-value transfer-ownership="full">
- <type name="ClockID" c:type="GstClockID"/>
- </return-value>
- <parameters>
- <parameter name="start_time" transfer-ownership="none">
- <type name="ClockTime" c:type="GstClockTime"/>
- </parameter>
- <parameter name="interval" transfer-ownership="none">
- <type name="ClockTime" c:type="GstClockTime"/>
- </parameter>
- </parameters>
- </method>
- <property name="stats" writable="1">
- <type name="boolean" c:type="gboolean"/>
- </property>
- <property name="timeout" writable="1">
- <type name="uint64" c:type="guint64"/>
- </property>
- <property name="window-size" writable="1">
- <type name="int" c:type="gint"/>
- </property>
- <property name="window-threshold" writable="1">
- <type name="int" c:type="gint"/>
- </property>
- <field name="object">
- <type name="Object" c:type="GstObject"/>
- </field>
- <field name="slave_lock">
- <type name="GLib.Mutex" c:type="GMutex*"/>
- </field>
- <field name="internal_calibration">
- <type name="ClockTime" c:type="GstClockTime"/>
- </field>
- <field name="external_calibration">
- <type name="ClockTime" c:type="GstClockTime"/>
- </field>
- <field name="rate_numerator">
- <type name="ClockTime" c:type="GstClockTime"/>
- </field>
- <field name="rate_denominator">
- <type name="ClockTime" c:type="GstClockTime"/>
- </field>
- <field name="last_time">
- <type name="ClockTime" c:type="GstClockTime"/>
- </field>
- <field name="entries">
- <type name="GLib.List" c:type="GList*"/>
- </field>
- <field name="entries_changed">
- <type name="GLib.Cond" c:type="GCond*"/>
- </field>
- <field name="resolution">
- <type name="ClockTime" c:type="GstClockTime"/>
- </field>
- <field name="stats">
- <type name="boolean" c:type="gboolean"/>
- </field>
- <field name="master">
- <type name="Clock" c:type="GstClock*"/>
- </field>
- <field name="filling">
- <type name="boolean" c:type="gboolean"/>
- </field>
- <field name="window_size">
- <type name="int" c:type="gint"/>
- </field>
- <field name="window_threshold">
- <type name="int" c:type="gint"/>
- </field>
- <field name="time_index">
- <type name="int" c:type="gint"/>
- </field>
- <field name="timeout">
- <type name="ClockTime" c:type="GstClockTime"/>
- </field>
- <field name="times">
- <type name="ClockTime" c:type="GstClockTime*"/>
- </field>
- <field name="clockid">
- <type name="ClockID" c:type="GstClockID"/>
- </field>
- <union name="ABI" c:type="ABI">
- <field name="priv" writable="1">
- <type name="ClockPrivate" c:type="GstClockPrivate*"/>
- </field>
- <field name="_gst_reserved" writable="1">
- <array zero-terminated="0" c:type="GstClockTime" fixed-size="4">
- <type name="ClockTime"/>
- </array>
- </field>
- </union>
- </class>
- <callback name="ClockCallback"
- c:type="GstClockCallback"
- doc="The function prototype of the callback.">
- <return-value transfer-ownership="none">
- <type name="boolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <parameter name="clock" transfer-ownership="none">
- <type name="Clock" c:type="GstClock*"/>
- </parameter>
- <parameter name="time" transfer-ownership="none">
- <type name="ClockTime" c:type="GstClockTime"/>
- </parameter>
- <parameter name="id" transfer-ownership="none">
- <type name="ClockID" c:type="GstClockID"/>
- </parameter>
- <parameter name="user_data"
- transfer-ownership="none"
- closure="3"
- doc="function">
- <type name="any" c:type="gpointer"/>
- </parameter>
- </parameters>
- </callback>
- <record name="ClockClass"
- c:type="GstClockClass"
- glib:is-gtype-struct-for="Clock"
- doc="be acceptable. The new resolution should be returned.
-implement @wait_jitter instead.
-GStreamer clock class. Override the vmethods to implement the clock
-functionality.">
- <field name="parent_class">
- <type name="ObjectClass" c:type="GstObjectClass"/>
- </field>
- <field name="change_resolution">
- <callback name="change_resolution" c:type="change_resolution">
- <return-value transfer-ownership="full">
- <type name="ClockTime" c:type="GstClockTime"/>
- </return-value>
- <parameters>
- <parameter name="clock" transfer-ownership="none">
- <type name="Clock" c:type="GstClock*"/>
- </parameter>
- <parameter name="old_resolution" transfer-ownership="none">
- <type name="ClockTime" c:type="GstClockTime"/>
- </parameter>
- <parameter name="new_resolution" transfer-ownership="none">
- <type name="ClockTime" c:type="GstClockTime"/>
- </parameter>
- </parameters>
- </callback>
- </field>
- <field name="get_resolution">
- <callback name="get_resolution" c:type="get_resolution">
- <return-value transfer-ownership="full">
- <type name="ClockTime" c:type="GstClockTime"/>
- </return-value>
- <parameters>
- <parameter name="clock" transfer-ownership="none">
- <type name="Clock" c:type="GstClock*"/>
- </parameter>
- </parameters>
- </callback>
- </field>
- <field name="get_internal_time">
- <callback name="get_internal_time" c:type="get_internal_time">
- <return-value transfer-ownership="full">
- <type name="ClockTime" c:type="GstClockTime"/>
- </return-value>
- <parameters>
- <parameter name="clock" transfer-ownership="none">
- <type name="Clock" c:type="GstClock*"/>
- </parameter>
- </parameters>
- </callback>
- </field>
- <field name="wait">
- <callback name="wait" c:type="wait">
- <return-value transfer-ownership="full">
- <type name="ClockReturn" c:type="GstClockReturn"/>
- </return-value>
- <parameters>
- <parameter name="clock" transfer-ownership="none">
- <type name="Clock" c:type="GstClock*"/>
- </parameter>
- <parameter name="entry" transfer-ownership="none">
- <type name="ClockEntry" c:type="GstClockEntry*"/>
- </parameter>
- </parameters>
- </callback>
- </field>
- <field name="wait_async">
- <callback name="wait_async" c:type="wait_async">
- <return-value transfer-ownership="full">
- <type name="ClockReturn" c:type="GstClockReturn"/>
- </return-value>
- <parameters>
- <parameter name="clock" transfer-ownership="none">
- <type name="Clock" c:type="GstClock*"/>
- </parameter>
- <parameter name="entry" transfer-ownership="none">
- <type name="ClockEntry" c:type="GstClockEntry*"/>
- </parameter>
- </parameters>
- </callback>
- </field>
- <field name="unschedule">
- <callback name="unschedule" c:type="unschedule">
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <parameter name="clock" transfer-ownership="none">
- <type name="Clock" c:type="GstClock*"/>
- </parameter>
- <parameter name="entry" transfer-ownership="none">
- <type name="ClockEntry" c:type="GstClockEntry*"/>
- </parameter>
- </parameters>
- </callback>
- </field>
- <field name="wait_jitter">
- <callback name="wait_jitter" c:type="wait_jitter">
- <return-value transfer-ownership="full">
- <type name="ClockReturn" c:type="GstClockReturn"/>
- </return-value>
- <parameters>
- <parameter name="clock" transfer-ownership="none">
- <type name="Clock" c:type="GstClock*"/>
- </parameter>
- <parameter name="entry" transfer-ownership="none">
- <type name="ClockEntry" c:type="GstClockEntry*"/>
- </parameter>
- <parameter name="jitter" transfer-ownership="none">
- <type name="ClockTimeDiff" c:type="GstClockTimeDiff*"/>
- </parameter>
- </parameters>
- </callback>
- </field>
- <field name="_gst_reserved">
- <array zero-terminated="0" c:type="gpointer" fixed-size="3">
- <type name="any"/>
- </array>
- </field>
- </record>
- <record name="ClockEntry"
- c:type="GstClockEntry"
- doc="All pending timeouts or periodic notifies are converted into
-an entry.">
- <field name="refcount" writable="1">
- <type name="int" c:type="gint"/>
- </field>
- <field name="clock" writable="1">
- <type name="Clock" c:type="GstClock*"/>
- </field>
- <field name="type" writable="1">
- <type name="ClockEntryType" c:type="GstClockEntryType"/>
- </field>
- <field name="time" writable="1">
- <type name="ClockTime" c:type="GstClockTime"/>
- </field>
- <field name="interval" writable="1">
- <type name="ClockTime" c:type="GstClockTime"/>
- </field>
- <field name="status" writable="1">
- <type name="ClockReturn" c:type="GstClockReturn"/>
- </field>
- <field name="func" writable="1">
- <type name="ClockCallback" c:type="GstClockCallback"/>
- </field>
- <field name="user_data" writable="1">
- <type name="any" c:type="gpointer"/>
- </field>
- </record>
- <enumeration name="ClockEntryType"
- doc="The type of the clock entry"
- c:type="GstClockEntryType">
- <member name="single" value="0" c:identifier="GST_CLOCK_ENTRY_SINGLE"/>
- <member name="periodic"
- value="1"
- c:identifier="GST_CLOCK_ENTRY_PERIODIC"/>
- </enumeration>
- <bitfield name="ClockFlags"
- doc="The capabilities of this clock"
- c:type="GstClockFlags">
- <member name="can_do_single_sync"
- value="16"
- c:identifier="GST_CLOCK_FLAG_CAN_DO_SINGLE_SYNC"/>
- <member name="can_do_single_async"
- value="32"
- c:identifier="GST_CLOCK_FLAG_CAN_DO_SINGLE_ASYNC"/>
- <member name="can_do_periodic_sync"
- value="64"
- c:identifier="GST_CLOCK_FLAG_CAN_DO_PERIODIC_SYNC"/>
- <member name="can_do_periodic_async"
- value="128"
- c:identifier="GST_CLOCK_FLAG_CAN_DO_PERIODIC_ASYNC"/>
- <member name="can_set_resolution"
- value="256"
- c:identifier="GST_CLOCK_FLAG_CAN_SET_RESOLUTION"/>
- <member name="can_set_master"
- value="512"
- c:identifier="GST_CLOCK_FLAG_CAN_SET_MASTER"/>
- <member name="last" value="4096" c:identifier="GST_CLOCK_FLAG_LAST"/>
- </bitfield>
- <record name="ClockPrivate" c:type="GstClockPrivate">
- </record>
- <enumeration name="ClockReturn"
- doc="The return value of a clock operation."
- c:type="GstClockReturn">
- <member name="ok" value="0" c:identifier="GST_CLOCK_OK"/>
- <member name="early" value="1" c:identifier="GST_CLOCK_EARLY"/>
- <member name="unscheduled"
- value="2"
- c:identifier="GST_CLOCK_UNSCHEDULED"/>
- <member name="busy" value="3" c:identifier="GST_CLOCK_BUSY"/>
- <member name="badtime" value="4" c:identifier="GST_CLOCK_BADTIME"/>
- <member name="error" value="5" c:identifier="GST_CLOCK_ERROR"/>
- <member name="unsupported"
- value="6"
- c:identifier="GST_CLOCK_UNSUPPORTED"/>
- </enumeration>
- <enumeration name="ClockType"
- doc="point
-The different kind of clocks."
- c:type="GstClockType">
- <member name="realtime"
- value="0"
- c:identifier="GST_CLOCK_TYPE_REALTIME"/>
- <member name="monotonic"
- value="1"
- c:identifier="GST_CLOCK_TYPE_MONOTONIC"/>
- </enumeration>
- <callback name="CopyFunction"
- c:type="GstCopyFunction"
- doc="A function to create a copy of some object or
-increase its reference count."
- version="0.10.25">
- <return-value transfer-ownership="none">
- <type name="any" c:type="gpointer"/>
- </return-value>
- <parameters>
- <parameter name="object" transfer-ownership="none">
- <type name="any" c:type="gpointer"/>
- </parameter>
- </parameters>
- </callback>
- <enumeration name="CoreError"
- doc="category. Make sure you add a custom message to the error call.
-deciding where to go while developing code.
-this functionality yet.
-Core errors are errors inside the core GStreamer library."
- c:type="GstCoreError"
- glib:error-quark="gst_core_error_quark">
- <member name="failed" value="1" c:identifier="GST_CORE_ERROR_FAILED"/>
- <member name="too_lazy"
- value="2"
- c:identifier="GST_CORE_ERROR_TOO_LAZY"/>
- <member name="not_implemented"
- value="3"
- c:identifier="GST_CORE_ERROR_NOT_IMPLEMENTED"/>
- <member name="state_change"
- value="4"
- c:identifier="GST_CORE_ERROR_STATE_CHANGE"/>
- <member name="pad" value="5" c:identifier="GST_CORE_ERROR_PAD"/>
- <member name="thread" value="6" c:identifier="GST_CORE_ERROR_THREAD"/>
- <member name="negotiation"
- value="7"
- c:identifier="GST_CORE_ERROR_NEGOTIATION"/>
- <member name="event" value="8" c:identifier="GST_CORE_ERROR_EVENT"/>
- <member name="seek" value="9" c:identifier="GST_CORE_ERROR_SEEK"/>
- <member name="caps" value="10" c:identifier="GST_CORE_ERROR_CAPS"/>
- <member name="tag" value="11" c:identifier="GST_CORE_ERROR_TAG"/>
- <member name="missing_plugin"
- value="12"
- c:identifier="GST_CORE_ERROR_MISSING_PLUGIN"/>
- <member name="clock" value="13" c:identifier="GST_CORE_ERROR_CLOCK"/>
- <member name="disabled"
- value="14"
- c:identifier="GST_CORE_ERROR_DISABLED"/>
- <member name="num_errors"
- value="15"
- c:identifier="GST_CORE_ERROR_NUM_ERRORS"/>
- </enumeration>
- <constant name="DEBUG_BG_MASK" value="240">
- <type name="int"/>
- </constant>
- <constant name="DEBUG_FG_MASK" value="15">
- <type name="int"/>
- </constant>
- <constant name="DEBUG_FORMAT_MASK" value="65280">
- <type name="int"/>
- </constant>
- <glib:boxed c:type="GstDate"
- glib:name="Date"
- glib:type-name="GstDate"
- glib:get-type="gst_date_get_type">
- </glib:boxed>
- <record name="DebugCategory"
- c:type="GstDebugCategory"
- doc="This is the struct that describes the categories. Once initialized with
-#GST_DEBUG_CATEGORY_INIT, its values can't be changed anymore.">
- <field name="threshold" writable="1">
- <type name="int" c:type="gint"/>
- </field>
- <field name="color" writable="1">
- <type name="uint" c:type="guint"/>
- </field>
- <field name="name" writable="1">
- <type name="utf8" c:type="gchar*"/>
- </field>
- <field name="description" writable="1">
- <type name="utf8" c:type="gchar*"/>
- </field>
- <method name="free"
- c:identifier="gst_debug_category_free"
- doc="Removes and frees the category and all associated resources.">
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- </method>
- <method name="set_threshold"
- c:identifier="gst_debug_category_set_threshold"
- doc="Sets the threshold of the category to the given level. Debug information will
-only be output if the threshold is lower or equal to the level of the
-debugging message.
-<note><para>
-Do not use this function in production code, because other functions may
-change the threshold of categories as side effect. It is however a nice
-function to use when debugging (even from gdb).
-</para></note>">
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <parameter name="level" transfer-ownership="none">
- <type name="DebugLevel" c:type="GstDebugLevel"/>
- </parameter>
- </parameters>
- </method>
- <method name="reset_threshold"
- c:identifier="gst_debug_category_reset_threshold"
- doc="Resets the threshold of the category to the default level. Debug information
-will only be output if the threshold is lower or equal to the level of the
-debugging message.
-Use this function to set the threshold back to where it was after using
-gst_debug_category_set_threshold().">
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- </method>
- <method name="get_threshold"
- c:identifier="gst_debug_category_get_threshold"
- doc="Returns the threshold of a #GstDebugCategory.">
- <return-value transfer-ownership="full">
- <type name="DebugLevel" c:type="GstDebugLevel"/>
- </return-value>
- </method>
- <method name="get_name"
- c:identifier="gst_debug_category_get_name"
- doc="Returns the name of a debug category.">
- <return-value transfer-ownership="none">
- <type name="utf8" c:type="gchar*"/>
- </return-value>
- </method>
- <method name="get_color"
- c:identifier="gst_debug_category_get_color"
- doc="Returns the color of a debug category used when printing output in this
-category.">
- <return-value transfer-ownership="none">
- <type name="uint" c:type="guint"/>
- </return-value>
- </method>
- <method name="get_description"
- c:identifier="gst_debug_category_get_description"
- doc="Returns the description of a debug category.">
- <return-value transfer-ownership="none">
- <type name="utf8" c:type="gchar*"/>
- </return-value>
- </method>
- </record>
- <enumeration name="DebugColorFlags"
- doc="These are some terminal style flags you can use when creating your
-debugging categories to make them stand out in debugging output."
- c:type="GstDebugColorFlags">
- <member name="fg_black" value="0" c:identifier="GST_DEBUG_FG_BLACK"/>
- <member name="fg_red" value="1" c:identifier="GST_DEBUG_FG_RED"/>
- <member name="fg_green" value="2" c:identifier="GST_DEBUG_FG_GREEN"/>
- <member name="fg_yellow" value="3" c:identifier="GST_DEBUG_FG_YELLOW"/>
- <member name="fg_blue" value="4" c:identifier="GST_DEBUG_FG_BLUE"/>
- <member name="fg_magenta" value="5" c:identifier="GST_DEBUG_FG_MAGENTA"/>
- <member name="fg_cyan" value="6" c:identifier="GST_DEBUG_FG_CYAN"/>
- <member name="fg_white" value="7" c:identifier="GST_DEBUG_FG_WHITE"/>
- <member name="bg_black" value="0" c:identifier="GST_DEBUG_BG_BLACK"/>
- <member name="bg_red" value="16" c:identifier="GST_DEBUG_BG_RED"/>
- <member name="bg_green" value="32" c:identifier="GST_DEBUG_BG_GREEN"/>
- <member name="bg_yellow" value="48" c:identifier="GST_DEBUG_BG_YELLOW"/>
- <member name="bg_blue" value="64" c:identifier="GST_DEBUG_BG_BLUE"/>
- <member name="bg_magenta"
- value="80"
- c:identifier="GST_DEBUG_BG_MAGENTA"/>
- <member name="bg_cyan" value="96" c:identifier="GST_DEBUG_BG_CYAN"/>
- <member name="bg_white" value="112" c:identifier="GST_DEBUG_BG_WHITE"/>
- <member name="bold" value="256" c:identifier="GST_DEBUG_BOLD"/>
- <member name="underline" value="512" c:identifier="GST_DEBUG_UNDERLINE"/>
- </enumeration>
- <callback name="DebugFuncPtr" c:type="GstDebugFuncPtr">
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- </callback>
- <bitfield name="DebugGraphDetails"
- doc="Available details for pipeline graphs produced by GST_DEBUG_BIN_TO_DOT_FILE()
-and GST_DEBUG_BIN_TO_DOT_FILE_WITH_TS()."
- version="0.10.15"
- c:type="GstDebugGraphDetails">
- <member name="media_type"
- value="1"
- c:identifier="GST_DEBUG_GRAPH_SHOW_MEDIA_TYPE"/>
- <member name="caps_details"
- value="2"
- c:identifier="GST_DEBUG_GRAPH_SHOW_CAPS_DETAILS"/>
- <member name="non_default_params"
- value="4"
- c:identifier="GST_DEBUG_GRAPH_SHOW_NON_DEFAULT_PARAMS"/>
- <member name="states"
- value="8"
- c:identifier="GST_DEBUG_GRAPH_SHOW_STATES"/>
- <member name="all" value="15" c:identifier="GST_DEBUG_GRAPH_SHOW_ALL"/>
- </bitfield>
- <enumeration name="DebugLevel"
- doc="debugging output.
-that stops the application from keeping working correctly.
-An examples is gst_element_error, which outputs a message with this priority.
-It does not mean that the application is terminating as with g_errror.
-that could lead to problems or weird behaviour later on. An example of this
-would be clocking issues ("your computer is pretty slow") or broken input
-data ("Can't synchronize to stream.")
-updated about what is happening.
-Examples where this should be used are when a typefind function has
-successfully determined the type of the stream or when an mp3 plugin detects
-the format to be used. ("This file has mono sound.")
-happens that is not the expected default behavior.
-An example would be notifications about state changes or receiving/sending of
-events.
-useful to know. As a rule of thumb a pipeline that is iterating as expected
-should never output anzthing else but LOG messages.
-Examples for this are referencing/dereferencing of objects or cothread switches.
-in the executed code path is not fully implemented or handled yet. Note
-that this does not replace proper error handling in any way, the purpose
-of this message is to make it easier to spot incomplete/unfinished pieces
-data as memory dumps in the log. They will be displayed as hexdump with
-The level defines the importance of a debugging message. The more important a
-message is, the greater the probability that the debugging system outputs it."
- c:type="GstDebugLevel">
- <member name="none" value="0" c:identifier="GST_LEVEL_NONE"/>
- <member name="error" value="1" c:identifier="GST_LEVEL_ERROR"/>
- <member name="warning" value="2" c:identifier="GST_LEVEL_WARNING"/>
- <member name="info" value="3" c:identifier="GST_LEVEL_INFO"/>
- <member name="debug" value="4" c:identifier="GST_LEVEL_DEBUG"/>
- <member name="log" value="5" c:identifier="GST_LEVEL_LOG"/>
- <member name="fixme" value="6" c:identifier="GST_LEVEL_FIXME"/>
- <member name="memdump" value="9" c:identifier="GST_LEVEL_MEMDUMP"/>
- <member name="count" value="10" c:identifier="GST_LEVEL_COUNT"/>
- </enumeration>
- <record name="DebugMessage" c:type="GstDebugMessage">
- <method name="get"
- c:identifier="gst_debug_message_get"
- doc="Gets the string representation of a #GstDebugMessage. This function is used
-in debug handlers to extract the message.">
- <return-value transfer-ownership="none">
- <type name="utf8" c:type="gchar*"/>
- </return-value>
- </method>
- </record>
- <constant name="ERROR_SYSTEM" value="system error: %s">
- <type name="utf8"/>
- </constant>
- <constant name="EVENT_TRACE_NAME" value="GstEvent">
- <type name="utf8"/>
- </constant>
- <constant name="EVENT_TYPE_BOTH" value="0">
- <type name="int"/>
- </constant>
- <constant name="EVENT_TYPE_SHIFT" value="4">
- <type name="int"/>
- </constant>
- <class name="Element"
- c:type="GstElement"
- doc="gst_element_set_state() and gst_element_get_state()
-the element is in the correct state.
-#GST_STATE_VOID_PENDING if the element is in the correct state
-parent element or the application. A #GstPipeline has a bus of its own.
-element by the toplevel #GstPipeline.
-PLAYING. Subtracting @base_time from the current clock time in the PLAYING
-state will yield the running_time against the clock.
-GStreamer element abstract base class."
- parent="Object"
- abstract="1"
- glib:type-name="GstElement"
- glib:get-type="gst_element_get_type"
- glib:type-struct="ElementClass">
- <function name="register"
- c:identifier="gst_element_register"
- doc="element (note that passing NULL only works in GStreamer 0.10.13 and later)
-Create a new elementfactory capable of instantiating objects of the">
- <return-value transfer-ownership="none">
- <type name="boolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <parameter name="plugin" transfer-ownership="none">
- <type name="Plugin" c:type="GstPlugin*"/>
- </parameter>
- <parameter name="name" transfer-ownership="none">
- <type name="utf8" c:type="gchar*"/>
- </parameter>
- <parameter name="rank" transfer-ownership="none">
- <type name="uint" c:type="guint"/>
- </parameter>
- <parameter name="type" transfer-ownership="none">
- <type name="GType" c:type="GType"/>
- </parameter>
- </parameters>
- </function>
- <function name="make_from_uri"
- c:identifier="gst_element_make_from_uri"
- doc="Creates an element for handling the given URI.">
- <return-value transfer-ownership="full">
- <type name="Element" c:type="GstElement*"/>
- </return-value>
- <parameters>
- <parameter name="type" transfer-ownership="none">
- <type name="URIType" c:type="GstURIType"/>
- </parameter>
- <parameter name="uri" transfer-ownership="none">
- <type name="utf8" c:type="gchar*"/>
- </parameter>
- <parameter name="elementname" transfer-ownership="none">
- <type name="utf8" c:type="gchar*"/>
- </parameter>
- </parameters>
- </function>
- <function name="state_get_name"
- c:identifier="gst_element_state_get_name"
- doc="Gets a string representing the given state.">
- <return-value transfer-ownership="none">
- <type name="utf8" c:type="gchar*"/>
- </return-value>
- <parameters>
- <parameter name="state" transfer-ownership="none">
- <type name="State" c:type="GstState"/>
- </parameter>
- </parameters>
- </function>
- <function name="state_change_return_get_name"
- c:identifier="gst_element_state_change_return_get_name"
- doc="Gets a string representing the given state change result."
- version="0.10.11">
- <return-value transfer-ownership="none">
- <type name="utf8" c:type="gchar*"/>
- </return-value>
- <parameters>
- <parameter name="state_ret" transfer-ownership="none">
- <type name="StateChangeReturn" c:type="GstStateChangeReturn"/>
- </parameter>
- </parameters>
- </function>
- <virtual-method name="request_new_pad">
- <return-value transfer-ownership="full">
- <type name="Pad" c:type="GstPad*"/>
- </return-value>
- <parameters>
- <parameter name="templ" transfer-ownership="none">
- <type name="PadTemplate" c:type="GstPadTemplate*"/>
- </parameter>
- <parameter name="name" transfer-ownership="none">
- <type name="utf8" c:type="gchar*"/>
- </parameter>
- </parameters>
- </virtual-method>
- <virtual-method name="release_pad">
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <parameter name="pad" transfer-ownership="none">
- <type name="Pad" c:type="GstPad*"/>
- </parameter>
- </parameters>
- </virtual-method>
- <virtual-method name="get_state" invoker="get_state">
- <return-value transfer-ownership="full">
- <type name="StateChangeReturn" c:type="GstStateChangeReturn"/>
- </return-value>
- <parameters>
- <parameter name="state" transfer-ownership="none">
- <type name="State" c:type="GstState*"/>
- </parameter>
- <parameter name="pending" transfer-ownership="none">
- <type name="State" c:type="GstState*"/>
- </parameter>
- <parameter name="timeout" transfer-ownership="none">
- <type name="ClockTime" c:type="GstClockTime"/>
- </parameter>
- </parameters>
- </virtual-method>
- <virtual-method name="set_state" invoker="set_state">
- <return-value transfer-ownership="full">
- <type name="StateChangeReturn" c:type="GstStateChangeReturn"/>
- </return-value>
- <parameters>
- <parameter name="state" transfer-ownership="none">
- <type name="State" c:type="GstState"/>
- </parameter>
- </parameters>
- </virtual-method>
- <virtual-method name="change_state" invoker="change_state">
- <return-value transfer-ownership="full">
- <type name="StateChangeReturn" c:type="GstStateChangeReturn"/>
- </return-value>
- <parameters>
- <parameter name="transition" transfer-ownership="none">
- <type name="StateChange" c:type="GstStateChange"/>
- </parameter>
- </parameters>
- </virtual-method>
- <virtual-method name="set_bus" invoker="set_bus">
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <parameter name="bus" transfer-ownership="none">
- <type name="Bus" c:type="GstBus*"/>
- </parameter>
- </parameters>
- </virtual-method>
- <virtual-method name="provide_clock" invoker="provide_clock">
- <return-value transfer-ownership="full">
- <type name="Clock" c:type="GstClock*"/>
- </return-value>
- </virtual-method>
- <virtual-method name="set_clock" invoker="set_clock">
- <return-value transfer-ownership="none">
- <type name="boolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <parameter name="clock" transfer-ownership="none">
- <type name="Clock" c:type="GstClock*"/>
- </parameter>
- </parameters>
- </virtual-method>
- <virtual-method name="get_index" invoker="get_index">
- <return-value transfer-ownership="full">
- <type name="Index" c:type="GstIndex*"/>
- </return-value>
- </virtual-method>
- <virtual-method name="set_index" invoker="set_index">
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <parameter name="index" transfer-ownership="none">
- <type name="Index" c:type="GstIndex*"/>
- </parameter>
- </parameters>
- </virtual-method>
- <virtual-method name="send_event" invoker="send_event">
- <return-value transfer-ownership="none">
- <type name="boolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <parameter name="event" transfer-ownership="none">
- <type name="Event" c:type="GstEvent*"/>
- </parameter>
- </parameters>
- </virtual-method>
- <virtual-method name="get_query_types" invoker="get_query_types">
- <return-value transfer-ownership="none">
- <type name="QueryType" c:type="GstQueryType*"/>
- </return-value>
- </virtual-method>
- <virtual-method name="query" invoker="query">
- <return-value transfer-ownership="none">
- <type name="boolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <parameter name="query" transfer-ownership="none">
- <type name="Query" c:type="GstQuery*"/>
- </parameter>
- </parameters>
- </virtual-method>
- <method name="requires_clock"
- c:identifier="gst_element_requires_clock"
- doc="Query if the element requires a clock.
-MT safe.">
- <return-value transfer-ownership="none">
- <type name="boolean" c:type="gboolean"/>
- </return-value>
- </method>
- <method name="provides_clock"
- c:identifier="gst_element_provides_clock"
- doc="Query if the element provides a clock. A #GstClock provided by an
-element can be used as the global #GstClock for the pipeline.
-An element that can provide a clock is only required to do so in the PAUSED
-state, this means when it is fully negotiated and has allocated the resources
-to operate the clock.
-MT safe.">
- <return-value transfer-ownership="none">
- <type name="boolean" c:type="gboolean"/>
- </return-value>
- </method>
- <method name="provide_clock"
- c:identifier="gst_element_provide_clock"
- doc="Get the clock provided by the given element.
-<note>An element is only required to provide a clock in the PAUSED
-state. Some elements can provide a clock in other states.</note>
-if no clock could be provided. Unref after usage.
-MT safe.">
- <return-value transfer-ownership="full">
- <type name="Clock" c:type="GstClock*"/>
- </return-value>
- </method>
- <method name="get_clock"
- c:identifier="gst_element_get_clock"
- doc="Gets the currently configured clock of the element. This is the clock as was
-last set with gst_element_set_clock().
-MT safe.">
- <return-value transfer-ownership="full">
- <type name="Clock" c:type="GstClock*"/>
- </return-value>
- </method>
- <method name="set_clock"
- c:identifier="gst_element_set_clock"
- doc="Sets the clock for the element. This function increases the
-refcount on the clock. Any previously set clock on the object
-is unreffed.
-clock when it, for example, is not able to slave its internal clock to the
-MT safe.">
- <return-value transfer-ownership="none">
- <type name="boolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <parameter name="clock" transfer-ownership="none">
- <type name="Clock" c:type="GstClock*"/>
- </parameter>
- </parameters>
- </method>
- <method name="set_base_time"
- c:identifier="gst_element_set_base_time"
- doc="Set the base time of an element. See gst_element_get_base_time().
-MT safe.">
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <parameter name="time" transfer-ownership="none">
- <type name="ClockTime" c:type="GstClockTime"/>
- </parameter>
- </parameters>
- </method>
- <method name="get_base_time"
- c:identifier="gst_element_get_base_time"
- doc="Returns the base time of the element. The base time is the
-absolute time of the clock when this element was last put to
-PLAYING. Subtracting the base time from the clock time gives
-the running time of the element.
-MT safe.">
- <return-value transfer-ownership="full">
- <type name="ClockTime" c:type="GstClockTime"/>
- </return-value>
- </method>
- <method name="set_start_time"
- c:identifier="gst_element_set_start_time"
- doc="Set the start time of an element. The start time of the element is the
-running time of the element when it last went to the PAUSED state. In READY
-or after a flushing seek, it is set to 0.
-Toplevel elements like #GstPipeline will manage the start_time and
-base_time on its children. Setting the start_time to #GST_CLOCK_TIME_NONE
-on such a toplevel element will disable the distribution of the base_time to
-the children and can be useful if the application manages the base_time
-itself, for example if you want to synchronize capture from multiple
-pipelines, and you can also ensure that the pipelines have the same clock.
-MT safe."
- version="0.10.24">
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <parameter name="time" transfer-ownership="none">
- <type name="ClockTime" c:type="GstClockTime"/>
- </parameter>
- </parameters>
- </method>
- <method name="get_start_time"
- c:identifier="gst_element_get_start_time"
- doc="Returns the start time of the element. The start time is the
-running time of the clock when this element was last put to PAUSED.
-Usually the start_time is managed by a toplevel element such as
-#GstPipeline.
-MT safe."
- version="0.10.24">
- <return-value transfer-ownership="full">
- <type name="ClockTime" c:type="GstClockTime"/>
- </return-value>
- </method>
- <method name="is_indexable"
- c:identifier="gst_element_is_indexable"
- doc="Queries if the element can be indexed.
-MT safe.">
- <return-value transfer-ownership="none">
- <type name="boolean" c:type="gboolean"/>
- </return-value>
- </method>
- <method name="set_index"
- c:identifier="gst_element_set_index"
- doc="Set @index on the element. The refcount of the index
-will be increased, any previously set index is unreffed.
-MT safe.">
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <parameter name="index" transfer-ownership="none">
- <type name="Index" c:type="GstIndex*"/>
- </parameter>
- </parameters>
- </method>
- <method name="get_index"
- c:identifier="gst_element_get_index"
- doc="Gets the index from the element.
-element. unref after usage.
-MT safe.">
- <return-value transfer-ownership="full">
- <type name="Index" c:type="GstIndex*"/>
- </return-value>
- </method>
- <method name="set_bus"
- c:identifier="gst_element_set_bus"
- doc="Sets the bus of the element. Increases the refcount on the bus.
-For internal use only, unless you're testing elements.
-MT safe.">
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <parameter name="bus" transfer-ownership="none">
- <type name="Bus" c:type="GstBus*"/>
- </parameter>
- </parameters>
- </method>
- <method name="get_bus"
- c:identifier="gst_element_get_bus"
- doc="Returns the bus of the element. Note that only a #GstPipeline will provide a
-bus for the application.
-MT safe.">
- <return-value transfer-ownership="full">
- <type name="Bus" c:type="GstBus*"/>
- </return-value>
- </method>
- <method name="add_pad"
- c:identifier="gst_element_add_pad"
- doc="Adds a pad (link point) to @element. @pad's parent will be set to @element;
-see gst_object_set_parent() for refcounting information.
-Pads are not automatically activated so elements should perform the needed
-steps to activate the pad in case this pad is added in the PAUSED or PLAYING
-state. See gst_pad_set_active() for more information about activating pads.
-The pad and the element should be unlocked when calling this function.
-This function will emit the #GstElement::pad-added signal on the element.
-a pad with the same name already existed or the pad already had another
-parent.
-MT safe.">
- <return-value transfer-ownership="none">
- <type name="boolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <parameter name="pad" transfer-ownership="none">
- <type name="Pad" c:type="GstPad*"/>
- </parameter>
- </parameters>
- </method>
- <method name="remove_pad"
- c:identifier="gst_element_remove_pad"
- doc="Removes @pad from @element. @pad will be destroyed if it has not been
-referenced elsewhere using gst_object_unparent().
-This function is used by plugin developers and should not be used
-by applications. Pads that were dynamically requested from elements
-with gst_element_get_request_pad() should be released with the
-gst_element_release_request_pad() function instead.
-Pads are not automatically deactivated so elements should perform the needed
-steps to deactivate the pad in case this pad is removed in the PAUSED or
-PLAYING state. See gst_pad_set_active() for more information about
-deactivating pads.
-The pad and the element should be unlocked when calling this function.
-This function will emit the #GstElement::pad-removed signal on the element.
-pad does not belong to the provided element.
-MT safe.">
- <return-value transfer-ownership="none">
- <type name="boolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <parameter name="pad" transfer-ownership="none">
- <type name="Pad" c:type="GstPad*"/>
- </parameter>
- </parameters>
- </method>
- <method name="no_more_pads"
- c:identifier="gst_element_no_more_pads"
- doc="Use this function to signal that the element does not expect any more pads
-to show up in the current pipeline. This function should be called whenever
-pads have been added by the element itself. Elements with #GST_PAD_SOMETIMES
-pad templates use this in combination with autopluggers to figure out that
-the element is done initializing its pads.
-This function emits the #GstElement::no-more-pads signal.
-MT safe.">
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- </method>
- <method name="get_pad"
- c:identifier="gst_element_get_pad"
- doc="Retrieves a pad from @element by name. Tries gst_element_get_static_pad()
-first, then gst_element_get_request_pad().
-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.
-Use gst_element_get_static_pad() or gst_element_get_request_pad() instead.
-depending on the type of the pad."
- deprecated="This function is deprecated as it's unclear if the reference">
- <return-value transfer-ownership="full">
- <type name="Pad" c:type="GstPad*"/>
- </return-value>
- <parameters>
- <parameter name="name" transfer-ownership="none">
- <type name="utf8" c:type="gchar*"/>
- </parameter>
- </parameters>
- </method>
- <method name="get_static_pad"
- c:identifier="gst_element_get_static_pad"
- doc="Retrieves a pad from @element by name. This version only retrieves
-already-existing (i.e. 'static') pads.
-usage.
-MT safe.">
- <return-value transfer-ownership="full">
- <type name="Pad" c:type="GstPad*"/>
- </return-value>
- <parameters>
- <parameter name="name" transfer-ownership="none">
- <type name="utf8" c:type="gchar*"/>
- </parameter>
- </parameters>
- </method>
- <method name="get_request_pad"
- c:identifier="gst_element_get_request_pad"
- doc="Retrieves a pad from the element by name. This version only retrieves
-request pads. The pad should be released with
-gst_element_release_request_pad().">
- <return-value transfer-ownership="full">
- <type name="Pad" c:type="GstPad*"/>
- </return-value>
- <parameters>
- <parameter name="name" transfer-ownership="none">
- <type name="utf8" c:type="gchar*"/>
- </parameter>
- </parameters>
- </method>
- <method name="release_request_pad"
- c:identifier="gst_element_release_request_pad"
- doc="Makes the element free the previously requested pad as obtained
-with gst_element_get_request_pad().
-This does not unref the pad. If the pad was created by using
-gst_element_get_request_pad(), gst_element_release_request_pad() needs to be
-followed by gst_object_unref() to free the @pad.
-MT safe.">
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <parameter name="pad" transfer-ownership="none">
- <type name="Pad" c:type="GstPad*"/>
- </parameter>
- </parameters>
- </method>
- <method name="iterate_pads"
- c:identifier="gst_element_iterate_pads"
- doc="Retrieves an iterattor of @element's pads. The iterator should
-be freed after usage.
-MT safe.">
- <return-value transfer-ownership="full">
- <type name="Iterator" c:type="GstIterator*"/>
- </return-value>
- </method>
- <method name="iterate_src_pads"
- c:identifier="gst_element_iterate_src_pads"
- doc="Retrieves an iterator of @element's source pads.
-MT safe.">
- <return-value transfer-ownership="full">
- <type name="Iterator" c:type="GstIterator*"/>
- </return-value>
- </method>
- <method name="iterate_sink_pads"
- c:identifier="gst_element_iterate_sink_pads"
- doc="Retrieves an iterator of @element's sink pads.
-MT safe.">
- <return-value transfer-ownership="full">
- <type name="Iterator" c:type="GstIterator*"/>
- </return-value>
- </method>
- <method name="send_event"
- c:identifier="gst_element_send_event"
- doc="Sends an event to an element. If the element doesn't implement an
-event handler, the event will be pushed on a random linked sink pad for
-upstream events or a random linked source pad for downstream events.
-This function takes owership of the provided event so you should
-gst_event_ref() it if you want to reuse the event after this call.
-MT safe.">
- <return-value transfer-ownership="none">
- <type name="boolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <parameter name="event" transfer-ownership="none">
- <type name="Event" c:type="GstEvent*"/>
- </parameter>
- </parameters>
- </method>
- <method name="seek"
- c:identifier="gst_element_seek"
- doc="Sends a seek event to an element. See gst_event_new_seek() for the details of
-the parameters. The seek event is sent to the element using
-gst_element_send_event().
-MT safe.">
- <return-value transfer-ownership="none">
- <type name="boolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <parameter name="rate" transfer-ownership="none">
- <type name="double" c:type="gdouble"/>
- </parameter>
- <parameter name="format" transfer-ownership="none">
- <type name="Format" c:type="GstFormat"/>
- </parameter>
- <parameter name="flags" transfer-ownership="none">
- <type name="SeekFlags" c:type="GstSeekFlags"/>
- </parameter>
- <parameter name="cur_type" transfer-ownership="none">
- <type name="SeekType" c:type="GstSeekType"/>
- </parameter>
- <parameter name="cur" transfer-ownership="none">
- <type name="int64" c:type="gint64"/>
- </parameter>
- <parameter name="stop_type" transfer-ownership="none">
- <type name="SeekType" c:type="GstSeekType"/>
- </parameter>
- <parameter name="stop" transfer-ownership="none">
- <type name="int64" c:type="gint64"/>
- </parameter>
- </parameters>
- </method>
- <method name="get_query_types"
- c:identifier="gst_element_get_query_types"
- doc="Get an array of query types from the element.
-If the element doesn't implement a query types function,
-the query will be forwarded to the peer of a random linked sink pad.
-be freed or modified.
-MT safe.">
- <return-value transfer-ownership="none">
- <type name="QueryType" c:type="GstQueryType*"/>
- </return-value>
- </method>
- <method name="query"
- c:identifier="gst_element_query"
- doc="Performs a query on the given element.
-For elements that don't implement a query handler, this function
-forwards the query to a random srcpad or to the peer of a
-random linked sinkpad of this element.
-MT safe.">
- <return-value transfer-ownership="none">
- <type name="boolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <parameter name="query" transfer-ownership="none">
- <type name="Query" c:type="GstQuery*"/>
- </parameter>
- </parameters>
- </method>
- <method name="post_message"
- c:identifier="gst_element_post_message"
- doc="Post a message on the element's #GstBus. This function takes ownership of the
-message; if you want to access the message after this call, you should add an
-additional reference before calling.
-%FALSE if the element did not have a bus.
-MT safe.">
- <return-value transfer-ownership="none">
- <type name="boolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <parameter name="message" transfer-ownership="none">
- <type name="Message" c:type="GstMessage*"/>
- </parameter>
- </parameters>
- </method>
- <method name="message_full"
- c:identifier="gst_element_message_full"
- doc="default message connected to code, or %NULL
-default debugging information, or %NULL
-Post an error, warning or info message on the bus from inside an element.
-#GST_MESSAGE_INFO.
-MT safe.">
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <parameter name="type" transfer-ownership="none">
- <type name="MessageType" c:type="GstMessageType"/>
- </parameter>
- <parameter name="domain" transfer-ownership="none">
- <type name="GLib.Quark" c:type="GQuark"/>
- </parameter>
- <parameter name="code" transfer-ownership="none">
- <type name="int" c:type="gint"/>
- </parameter>
- <parameter name="text" transfer-ownership="full">
- <type name="utf8" c:type="gchar*"/>
- </parameter>
- <parameter name="debug" transfer-ownership="full">
- <type name="utf8" c:type="gchar*"/>
- </parameter>
- <parameter name="file" transfer-ownership="none">
- <type name="utf8" c:type="gchar*"/>
- </parameter>
- <parameter name="function" transfer-ownership="none">
- <type name="utf8" c:type="gchar*"/>
- </parameter>
- <parameter name="line" transfer-ownership="none">
- <type name="int" c:type="gint"/>
- </parameter>
- </parameters>
- </method>
- <method name="is_locked_state"
- c:identifier="gst_element_is_locked_state"
- doc="Checks if the state of an element is locked.
-If the state of an element is locked, state changes of the parent don't
-affect the element.
-This way you can leave currently unused elements inside bins. Just lock their
-state before changing the state from #GST_STATE_NULL.
-MT safe.">
- <return-value transfer-ownership="none">
- <type name="boolean" c:type="gboolean"/>
- </return-value>
- </method>
- <method name="set_locked_state"
- c:identifier="gst_element_set_locked_state"
- doc="Locks the state of an element, so state changes of the parent don't affect
-this element anymore.
-MT safe.
-or the elements state-locking needed no change.">
- <return-value transfer-ownership="none">
- <type name="boolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <parameter name="locked_state" transfer-ownership="none">
- <type name="boolean" c:type="gboolean"/>
- </parameter>
- </parameters>
- </method>
- <method name="sync_state_with_parent"
- c:identifier="gst_element_sync_state_with_parent"
- doc="Tries to change the state of the element to the same as its parent.
-If this function returns FALSE, the state of element is undefined.
-MT safe.">
- <return-value transfer-ownership="none">
- <type name="boolean" c:type="gboolean"/>
- </return-value>
- </method>
- <method name="get_state"
- c:identifier="gst_element_get_state"
- doc="Can be %NULL.
-state change or %GST_CLOCK_TIME_NONE for infinite timeout.
-Gets the state of the element.
-For elements that performed an ASYNC state change, as reported by
-gst_element_set_state(), this function will block up to the
-specified timeout value for the state change to complete.
-If the element completes the state change or goes into
-an error, this function returns immediately with a return value of
-%GST_STATE_CHANGE_SUCCESS or %GST_STATE_CHANGE_FAILURE respectively.
-For elements that did not return %GST_STATE_CHANGE_ASYNC, this function
-returns the current and pending state immediately.
-This function returns %GST_STATE_CHANGE_NO_PREROLL if the element
-successfully changed its state but is not able to provide data yet.
-This mostly happens for live sources that only produce data in
-%GST_STATE_PLAYING. While the state change return is equivalent to
-%GST_STATE_CHANGE_SUCCESS, it is returned to the application to signal that
-some sink elements might not be able to complete their state change because
-an element is not producing data to complete the preroll. When setting the
-element to playing, the preroll will complete and playback will start.
-and the last state change succeeded, %GST_STATE_CHANGE_ASYNC if the
-element is still performing a state change or
-%GST_STATE_CHANGE_FAILURE if the last state change failed.
-MT safe.">
- <return-value transfer-ownership="full">
- <type name="StateChangeReturn" c:type="GstStateChangeReturn"/>
- </return-value>
- <parameters>
- <parameter name="state"
- direction="out"
- transfer-ownership="full"
- doc="a pointer to #GstState to hold the state. Can be %NULL.">
- <type name="State" c:type="GstState*"/>
- </parameter>
- <parameter name="pending"
- direction="out"
- transfer-ownership="full"
- doc="a pointer to #GstState to hold the pending state.">
- <type name="State" c:type="GstState*"/>
- </parameter>
- <parameter name="timeout" transfer-ownership="none">
- <type name="ClockTime" c:type="GstClockTime"/>
- </parameter>
- </parameters>
- </method>
- <method name="set_state"
- c:identifier="gst_element_set_state"
- doc="Sets the state of the element. This function will try to set the
-requested state by going through all the intermediary states and calling
-the class's state change function for each.
-This function can return #GST_STATE_CHANGE_ASYNC, in which case the
-element will perform the remainder of the state change asynchronously in
-another thread.
-An application can use gst_element_get_state() to wait for the completion
-of the state change or it can wait for a state change message on the bus.
-State changes to %GST_STATE_READY or %GST_STATE_NULL never return
-#GST_STATE_CHANGE_ASYNC.
-MT safe.">
- <return-value transfer-ownership="full">
- <type name="StateChangeReturn" c:type="GstStateChangeReturn"/>
- </return-value>
- <parameters>
- <parameter name="state" transfer-ownership="none">
- <type name="State" c:type="GstState"/>
- </parameter>
- </parameters>
- </method>
- <method name="abort_state"
- c:identifier="gst_element_abort_state"
- doc="Abort the state change of the element. This function is used
-by elements that do asynchronous state changes and find out
-something is wrong.
-This function should be called with the STATE_LOCK held.
-MT safe.">
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- </method>
- <method name="change_state"
- c:identifier="gst_element_change_state"
- doc="Perform @transition on @element.
-This function must be called with STATE_LOCK held and is mainly used
-internally.">
- <return-value transfer-ownership="full">
- <type name="StateChangeReturn" c:type="GstStateChangeReturn"/>
- </return-value>
- <parameters>
- <parameter name="transition" transfer-ownership="none">
- <type name="StateChange" c:type="GstStateChange"/>
- </parameter>
- </parameters>
- </method>
- <method name="continue_state"
- c:identifier="gst_element_continue_state"
- doc="Commit the state change of the element and proceed to the next
-pending state if any. This function is used
-by elements that do asynchronous state changes.
-The core will normally call this method automatically when an
-element returned %GST_STATE_CHANGE_SUCCESS from the state change function.
-If after calling this method the element still has not reached
-the pending state, the next state change is performed.
-This method is used internally and should normally not be called by plugins
-or applications.
-MT safe.">
- <return-value transfer-ownership="full">
- <type name="StateChangeReturn" c:type="GstStateChangeReturn"/>
- </return-value>
- <parameters>
- <parameter name="ret" transfer-ownership="none">
- <type name="StateChangeReturn" c:type="GstStateChangeReturn"/>
- </parameter>
- </parameters>
- </method>
- <method name="lost_state"
- c:identifier="gst_element_lost_state"
- doc="Brings the element to the lost state. This function calls
-gst_element_lost_state_full() with the new_base_time set to %TRUE.
-This function is used internally and should normally not be called from
-plugins or applications.
-MT safe.">
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- </method>
- <method name="lost_state_full"
- c:identifier="gst_element_lost_state_full"
- doc="Brings the element to the lost state. The current state of the
-element is copied to the pending state so that any call to
-gst_element_get_state() will return %GST_STATE_CHANGE_ASYNC.
-An ASYNC_START message is posted with indication to distribute a new
-base_time to the element when @new_base_time is %TRUE.
-If the element was PLAYING, it will go to PAUSED. The element
-will be restored to its PLAYING state by the parent pipeline when it
-prerolls again.
-This is mostly used for elements that lost their preroll buffer
-in the %GST_STATE_PAUSED or %GST_STATE_PLAYING state after a flush,
-they will go to their pending state again when a new preroll buffer is
-queued. This function can only be called when the element is currently
-not in error or an async state change.
-This function is used internally and should normally not be called from
-plugins or applications.
-MT safe."
- version="0.10.24">
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <parameter name="new_base_time" transfer-ownership="none">
- <type name="boolean" c:type="gboolean"/>
- </parameter>
- </parameters>
- </method>
- <method name="get_factory"
- c:identifier="gst_element_get_factory"
- doc="Retrieves the factory that was used to create this element.
-no refcounting is needed.">
- <return-value transfer-ownership="full">
- <type name="ElementFactory" c:type="GstElementFactory*"/>
- </return-value>
- </method>
- <method name="implements_interface"
- c:identifier="gst_element_implements_interface"
- doc="Test whether the given element implements a certain interface of type
-iface_type, and test whether it is supported for this specific instance.">
- <return-value transfer-ownership="none">
- <type name="boolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <parameter name="iface_type"
- transfer-ownership="none"
- doc="type of the interface which we want to be implemented">
- <type name="GType" c:type="GType"/>
- </parameter>
- </parameters>
- </method>
- <method name="create_all_pads"
- c:identifier="gst_element_create_all_pads"
- doc="Creates a pad for each pad template that is always available.
-This function is only useful during object intialization of
-subclasses of #GstElement.">
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- </method>
- <method name="get_compatible_pad"
- c:identifier="gst_element_get_compatible_pad"
- doc="Looks for an unlinked pad to which the given pad can link. It is not
-guaranteed that linking the pads will work, though it should work in most
-cases.
-found. gst_object_unref() after usage.">
- <return-value transfer-ownership="full">
- <type name="Pad" c:type="GstPad*"/>
- </return-value>
- <parameters>
- <parameter name="pad" transfer-ownership="none">
- <type name="Pad" c:type="GstPad*"/>
- </parameter>
- <parameter name="caps" transfer-ownership="none">
- <type name="Caps" c:type="GstCaps*"/>
- </parameter>
- </parameters>
- </method>
- <method name="get_compatible_pad_template"
- c:identifier="gst_element_get_compatible_pad_template"
- doc="Retrieves a pad template from @element that is compatible with @compattempl.
-Pads from compatible templates can be linked together.
-unreferencing is necessary.">
- <return-value transfer-ownership="full">
- <type name="PadTemplate" c:type="GstPadTemplate*"/>
- </return-value>
- <parameters>
- <parameter name="compattempl" transfer-ownership="none">
- <type name="PadTemplate" c:type="GstPadTemplate*"/>
- </parameter>
- </parameters>
- </method>
- <method name="link"
- c:identifier="gst_element_link"
- doc="Links @src to @dest. The link must be from source to
-destination; the other direction will not be tried. The function looks for
-existing pads that aren't linked yet. It will request new pads if necessary.
-Such pads need to be released manualy when unlinking.
-If multiple links are possible, only one is established.
-Make sure you have added your elements to a bin or pipeline with
-gst_bin_add() before trying to link them.">
- <return-value transfer-ownership="none">
- <type name="boolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <parameter name="dest" transfer-ownership="none">
- <type name="Element" c:type="GstElement*"/>
- </parameter>
- </parameters>
- </method>
- <method name="link_many"
- c:identifier="gst_element_link_many"
- doc="Chain together a series of elements. Uses gst_element_link().
-Make sure you have added your elements to a bin or pipeline with
-gst_bin_add() before trying to link them.">
- <return-value transfer-ownership="none">
- <type name="boolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <parameter name="element_2" transfer-ownership="none">
- <type name="Element" c:type="GstElement*"/>
- </parameter>
- <parameter transfer-ownership="none">
- <varargs>
- </varargs>
- </parameter>
- </parameters>
- </method>
- <method name="link_filtered"
- c:identifier="gst_element_link_filtered"
- doc="Links @src to @dest using the given caps as filtercaps.
-The link must be from source to
-destination; the other direction will not be tried. The function looks for
-existing pads that aren't linked yet. It will request new pads if necessary.
-If multiple links are possible, only one is established.
-Make sure you have added your elements to a bin or pipeline with
-gst_bin_add() before trying to link them.">
- <return-value transfer-ownership="none">
- <type name="boolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <parameter name="dest" transfer-ownership="none">
- <type name="Element" c:type="GstElement*"/>
- </parameter>
- <parameter name="filter" transfer-ownership="none">
- <type name="Caps" c:type="GstCaps*"/>
- </parameter>
- </parameters>
- </method>
- <method name="unlink"
- c:identifier="gst_element_unlink"
- doc="Unlinks all source pads of the source element with all sink pads
-of the sink element to which they are linked.
-If the link has been made using gst_element_link(), it could have created an
-requestpad, which has to be released using gst_element_release_request_pad().">
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <parameter name="dest" transfer-ownership="none">
- <type name="Element" c:type="GstElement*"/>
- </parameter>
- </parameters>
- </method>
- <method name="unlink_many"
- c:identifier="gst_element_unlink_many"
- doc="Unlinks a series of elements. Uses gst_element_unlink().">
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <parameter name="element_2" transfer-ownership="none">
- <type name="Element" c:type="GstElement*"/>
- </parameter>
- <parameter transfer-ownership="none">
- <varargs>
- </varargs>
- </parameter>
- </parameters>
- </method>
- <method name="link_pads"
- c:identifier="gst_element_link_pads"
- doc="or NULL for any pad.
-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.">
- <return-value transfer-ownership="none">
- <type name="boolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <parameter name="srcpadname" transfer-ownership="none">
- <type name="utf8" c:type="gchar*"/>
- </parameter>
- <parameter name="dest" transfer-ownership="none">
- <type name="Element" c:type="GstElement*"/>
- </parameter>
- <parameter name="destpadname" transfer-ownership="none">
- <type name="utf8" c:type="gchar*"/>
- </parameter>
- </parameters>
- </method>
- <method name="unlink_pads"
- c:identifier="gst_element_unlink_pads"
- doc="Unlinks the two named pads of the source and destination elements.">
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <parameter name="srcpadname" transfer-ownership="none">
- <type name="utf8" c:type="gchar*"/>
- </parameter>
- <parameter name="dest" transfer-ownership="none">
- <type name="Element" c:type="GstElement*"/>
- </parameter>
- <parameter name="destpadname" transfer-ownership="none">
- <type name="utf8" c:type="gchar*"/>
- </parameter>
- </parameters>
- </method>
- <method name="link_pads_filtered"
- c:identifier="gst_element_link_pads_filtered"
- doc="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.">
- <return-value transfer-ownership="none">
- <type name="boolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <parameter name="srcpadname" transfer-ownership="none">
- <type name="utf8" c:type="gchar*"/>
- </parameter>
- <parameter name="dest" transfer-ownership="none">
- <type name="Element" c:type="GstElement*"/>
- </parameter>
- <parameter name="destpadname" transfer-ownership="none">
- <type name="utf8" c:type="gchar*"/>
- </parameter>
- <parameter name="filter" transfer-ownership="none">
- <type name="Caps" c:type="GstCaps*"/>
- </parameter>
- </parameters>
- </method>
- <method name="seek_simple" c:identifier="gst_element_seek_simple">
- <return-value transfer-ownership="none">
- <type name="boolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <parameter name="format" transfer-ownership="none">
- <type name="Format" c:type="GstFormat"/>
- </parameter>
- <parameter name="seek_flags" transfer-ownership="none">
- <type name="SeekFlags" c:type="GstSeekFlags"/>
- </parameter>
- <parameter name="seek_pos" transfer-ownership="none">
- <type name="int64" c:type="gint64"/>
- </parameter>
- </parameters>
- </method>
- <method name="query_position"
- c:identifier="gst_element_query_position"
- doc="On return contains the #GstFormat used.
-Queries an element for the stream position.">
- <return-value transfer-ownership="none">
- <type name="boolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <parameter name="format" transfer-ownership="none">
- <type name="Format" c:type="GstFormat*"/>
- </parameter>
- <parameter name="cur" direction="out" transfer-ownership="full">
- <type name="int64" c:type="gint64*"/>
- </parameter>
- </parameters>
- </method>
- <method name="query_duration"
- c:identifier="gst_element_query_duration"
- doc="On return contains the #GstFormat used.
-Queries an element for the total stream duration.">
- <return-value transfer-ownership="none">
- <type name="boolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <parameter name="format"
- direction="inout"
- transfer-ownership="full"
- doc="a pointer to the #GstFormat asked for.">
- <type name="Format" c:type="GstFormat*"/>
- </parameter>
- <parameter name="duration"
- direction="out"
- transfer-ownership="full"
- doc="A location in which to store the total duration, or NULL.">
- <type name="int64" c:type="gint64*"/>
- </parameter>
- </parameters>
- </method>
- <method name="query_convert"
- c:identifier="gst_element_query_convert"
- doc="Queries an element to convert @src_val in @src_format to @dest_format.">
- <return-value transfer-ownership="none">
- <type name="boolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <parameter name="src_format" transfer-ownership="none">
- <type name="Format" c:type="GstFormat"/>
- </parameter>
- <parameter name="src_val" transfer-ownership="none">
- <type name="int64" c:type="gint64"/>
- </parameter>
- <parameter name="dest_format" transfer-ownership="none">
- <type name="Format" c:type="GstFormat*"/>
- </parameter>
- <parameter name="dest_val" direction="out" transfer-ownership="full">
- <type name="int64" c:type="gint64*"/>
- </parameter>
- </parameters>
- </method>
- <method name="found_tags_for_pad"
- c:identifier="gst_element_found_tags_for_pad"
- doc="Posts a message to the bus that new tags were found and pushes the
-tags as event. Takes ownership of the @list.
-This is a utility method for elements. Applications should use the
-#GstTagSetter interface.">
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <parameter name="pad" transfer-ownership="none">
- <type name="Pad" c:type="GstPad*"/>
- </parameter>
- <parameter name="list" transfer-ownership="none">
- <type name="TagList" c:type="GstTagList*"/>
- </parameter>
- </parameters>
- </method>
- <method name="found_tags"
- c:identifier="gst_element_found_tags"
- doc="Posts a message to the bus that new tags were found, and pushes an event
-to all sourcepads. Takes ownership of the @list.
-This is a utility method for elements. Applications should use the
-#GstTagSetter interface.">
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <parameter name="list" transfer-ownership="none">
- <type name="TagList" c:type="GstTagList*"/>
- </parameter>
- </parameters>
- </method>
- <field name="object">
- <type name="Object" c:type="GstObject"/>
- </field>
- <field name="state_lock">
- <type name="GLib.StaticRecMutex" c:type="GStaticRecMutex*"/>
- </field>
- <field name="state_cond">
- <type name="GLib.Cond" c:type="GCond*"/>
- </field>
- <field name="state_cookie">
- <type name="uint32" c:type="guint32"/>
- </field>
- <field name="current_state">
- <type name="State" c:type="GstState"/>
- </field>
- <field name="next_state">
- <type name="State" c:type="GstState"/>
- </field>
- <field name="pending_state">
- <type name="State" c:type="GstState"/>
- </field>
- <field name="last_return">
- <type name="StateChangeReturn" c:type="GstStateChangeReturn"/>
- </field>
- <field name="bus">
- <type name="Bus" c:type="GstBus*"/>
- </field>
- <field name="clock">
- <type name="Clock" c:type="GstClock*"/>
- </field>
- <field name="base_time">
- <type name="ClockTimeDiff" c:type="GstClockTimeDiff"/>
- </field>
- <field name="numpads">
- <type name="uint16" c:type="guint16"/>
- </field>
- <field name="pads">
- <type name="GLib.List" c:type="GList*"/>
- </field>
- <field name="numsrcpads">
- <type name="uint16" c:type="guint16"/>
- </field>
- <field name="srcpads">
- <type name="GLib.List" c:type="GList*"/>
- </field>
- <field name="numsinkpads">
- <type name="uint16" c:type="guint16"/>
- </field>
- <field name="sinkpads">
- <type name="GLib.List" c:type="GList*"/>
- </field>
- <field name="pads_cookie">
- <type name="uint32" c:type="guint32"/>
- </field>
- <union name="abidata" c:type="abidata">
- <record name="ABI" c:type="ABI">
- <field name="target_state" writable="1">
- <type name="State" c:type="GstState"/>
- </field>
- <field name="start_time" writable="1">
- <type name="ClockTime" c:type="GstClockTime"/>
- </field>
- </record>
- <field name="_gst_reserved" writable="1">
- <array zero-terminated="0" c:type="gpointer" fixed-size="4">
- <type name="any"/>
- </array>
- </field>
- </union>
- <glib:signal name="no-more-pads"
- doc="This signals that the element will not generate more dynamic pads.">
- <return-value transfer-ownership="full">
- <type name="none" c:type="void"/>
- </return-value>
- </glib:signal>
- <glib:signal name="pad-added"
- doc="a new #GstPad has been added to the element.">
- <return-value transfer-ownership="full">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <parameter name="new_pad" transfer-ownership="none">
- <type name="Pad" c:type="GstPad"/>
- </parameter>
- </parameters>
- </glib:signal>
- <glib:signal name="pad-removed"
- doc="a #GstPad has been removed from the element">
- <return-value transfer-ownership="full">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <parameter name="old_pad" transfer-ownership="none">
- <type name="Pad" c:type="GstPad"/>
- </parameter>
- </parameters>
- </glib:signal>
- </class>
- <record name="ElementClass"
- c:type="GstElementClass"
- glib:is-gtype-struct-for="Element"
- doc="GStreamer element class. Override the vmethods to implement the element
-functionality.">
- <field name="parent_class">
- <type name="ObjectClass" c:type="GstObjectClass"/>
- </field>
- <field name="details">
- <type name="ElementDetails" c:type="GstElementDetails"/>
- </field>
- <field name="elementfactory">
- <type name="ElementFactory" c:type="GstElementFactory*"/>
- </field>
- <field name="padtemplates">
- <type name="GLib.List" c:type="GList*"/>
- </field>
- <field name="numpadtemplates">
- <type name="int" c:type="gint"/>
- </field>
- <field name="pad_templ_cookie">
- <type name="uint32" c:type="guint32"/>
- </field>
- <field name="pad_added">
- <callback name="pad_added" c:type="pad_added">
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <parameter name="element" transfer-ownership="none">
- <type name="Element" c:type="GstElement*"/>
- </parameter>
- <parameter name="pad" transfer-ownership="none">
- <type name="Pad" c:type="GstPad*"/>
- </parameter>
- </parameters>
- </callback>
- </field>
- <field name="pad_removed">
- <callback name="pad_removed" c:type="pad_removed">
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <parameter name="element" transfer-ownership="none">
- <type name="Element" c:type="GstElement*"/>
- </parameter>
- <parameter name="pad" transfer-ownership="none">
- <type name="Pad" c:type="GstPad*"/>
- </parameter>
- </parameters>
- </callback>
- </field>
- <field name="no_more_pads">
- <callback name="no_more_pads" c:type="no_more_pads">
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <parameter name="element" transfer-ownership="none">
- <type name="Element" c:type="GstElement*"/>
- </parameter>
- </parameters>
- </callback>
- </field>
- <field name="request_new_pad">
- <callback name="request_new_pad" c:type="request_new_pad">
- <return-value transfer-ownership="full">
- <type name="Pad" c:type="GstPad*"/>
- </return-value>
- <parameters>
- <parameter name="element" transfer-ownership="none">
- <type name="Element" c:type="GstElement*"/>
- </parameter>
- <parameter name="templ" transfer-ownership="none">
- <type name="PadTemplate" c:type="GstPadTemplate*"/>
- </parameter>
- <parameter name="name" transfer-ownership="none">
- <type name="utf8" c:type="gchar*"/>
- </parameter>
- </parameters>
- </callback>
- </field>
- <field name="release_pad">
- <callback name="release_pad" c:type="release_pad">
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <parameter name="element" transfer-ownership="none">
- <type name="Element" c:type="GstElement*"/>
- </parameter>
- <parameter name="pad" transfer-ownership="none">
- <type name="Pad" c:type="GstPad*"/>
- </parameter>
- </parameters>
- </callback>
- </field>
- <field name="get_state">
- <callback name="get_state" c:type="get_state">
- <return-value transfer-ownership="full">
- <type name="StateChangeReturn" c:type="GstStateChangeReturn"/>
- </return-value>
- <parameters>
- <parameter name="element" transfer-ownership="none">
- <type name="Element" c:type="GstElement*"/>
- </parameter>
- <parameter name="state" transfer-ownership="none">
- <type name="State" c:type="GstState*"/>
- </parameter>
- <parameter name="pending" transfer-ownership="none">
- <type name="State" c:type="GstState*"/>
- </parameter>
- <parameter name="timeout" transfer-ownership="none">
- <type name="ClockTime" c:type="GstClockTime"/>
- </parameter>
- </parameters>
- </callback>
- </field>
- <field name="set_state">
- <callback name="set_state" c:type="set_state">
- <return-value transfer-ownership="full">
- <type name="StateChangeReturn" c:type="GstStateChangeReturn"/>
- </return-value>
- <parameters>
- <parameter name="element" transfer-ownership="none">
- <type name="Element" c:type="GstElement*"/>
- </parameter>
- <parameter name="state" transfer-ownership="none">
- <type name="State" c:type="GstState"/>
- </parameter>
- </parameters>
- </callback>
- </field>
- <field name="change_state">
- <callback name="change_state" c:type="change_state">
- <return-value transfer-ownership="full">
- <type name="StateChangeReturn" c:type="GstStateChangeReturn"/>
- </return-value>
- <parameters>
- <parameter name="element" transfer-ownership="none">
- <type name="Element" c:type="GstElement*"/>
- </parameter>
- <parameter name="transition" transfer-ownership="none">
- <type name="StateChange" c:type="GstStateChange"/>
- </parameter>
- </parameters>
- </callback>
- </field>
- <field name="set_bus">
- <callback name="set_bus" c:type="set_bus">
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <parameter name="element" transfer-ownership="none">
- <type name="Element" c:type="GstElement*"/>
- </parameter>
- <parameter name="bus" transfer-ownership="none">
- <type name="Bus" c:type="GstBus*"/>
- </parameter>
- </parameters>
- </callback>
- </field>
- <field name="provide_clock">
- <callback name="provide_clock" c:type="provide_clock">
- <return-value transfer-ownership="full">
- <type name="Clock" c:type="GstClock*"/>
- </return-value>
- <parameters>
- <parameter name="element" transfer-ownership="none">
- <type name="Element" c:type="GstElement*"/>
- </parameter>
- </parameters>
- </callback>
- </field>
- <field name="set_clock">
- <callback name="set_clock" c:type="set_clock">
- <return-value transfer-ownership="none">
- <type name="boolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <parameter name="element" transfer-ownership="none">
- <type name="Element" c:type="GstElement*"/>
- </parameter>
- <parameter name="clock" transfer-ownership="none">
- <type name="Clock" c:type="GstClock*"/>
- </parameter>
- </parameters>
- </callback>
- </field>
- <field name="get_index">
- <callback name="get_index" c:type="get_index">
- <return-value transfer-ownership="full">
- <type name="Index" c:type="GstIndex*"/>
- </return-value>
- <parameters>
- <parameter name="element" transfer-ownership="none">
- <type name="Element" c:type="GstElement*"/>
- </parameter>
- </parameters>
- </callback>
- </field>
- <field name="set_index">
- <callback name="set_index" c:type="set_index">
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <parameter name="element" transfer-ownership="none">
- <type name="Element" c:type="GstElement*"/>
- </parameter>
- <parameter name="index" transfer-ownership="none">
- <type name="Index" c:type="GstIndex*"/>
- </parameter>
- </parameters>
- </callback>
- </field>
- <field name="send_event">
- <callback name="send_event" c:type="send_event">
- <return-value transfer-ownership="none">
- <type name="boolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <parameter name="element" transfer-ownership="none">
- <type name="Element" c:type="GstElement*"/>
- </parameter>
- <parameter name="event" transfer-ownership="none">
- <type name="Event" c:type="GstEvent*"/>
- </parameter>
- </parameters>
- </callback>
- </field>
- <field name="get_query_types">
- <callback name="get_query_types" c:type="get_query_types">
- <return-value transfer-ownership="none">
- <type name="QueryType" c:type="GstQueryType*"/>
- </return-value>
- <parameters>
- <parameter name="element" transfer-ownership="none">
- <type name="Element" c:type="GstElement*"/>
- </parameter>
- </parameters>
- </callback>
- </field>
- <field name="query">
- <callback name="query" c:type="query">
- <return-value transfer-ownership="none">
- <type name="boolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <parameter name="element" transfer-ownership="none">
- <type name="Element" c:type="GstElement*"/>
- </parameter>
- <parameter name="query" transfer-ownership="none">
- <type name="Query" c:type="GstQuery*"/>
- </parameter>
- </parameters>
- </callback>
- </field>
- <field name="_gst_reserved">
- <array zero-terminated="0" c:type="gpointer" fixed-size="4">
- <type name="any"/>
- </array>
- </field>
- <method name="add_pad_template"
- c:identifier="gst_element_class_add_pad_template"
- doc="Adds a padtemplate to an element class. This is mainly used in the _base_init
-functions of classes.">
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <parameter name="templ" transfer-ownership="none">
- <type name="PadTemplate" c:type="GstPadTemplate*"/>
- </parameter>
- </parameters>
- </method>
- <method name="get_pad_template"
- c:identifier="gst_element_class_get_pad_template"
- doc="Retrieves a padtemplate from @element_class with the given name.
-<note>If you use this function in the #GInstanceInitFunc of an object class
-that has subclasses, make sure to pass the g_class parameter of the
-#GInstanceInitFunc here.</note>
-No unreferencing is necessary.">
- <return-value transfer-ownership="full">
- <type name="PadTemplate" c:type="GstPadTemplate*"/>
- </return-value>
- <parameters>
- <parameter name="name" transfer-ownership="none">
- <type name="utf8" c:type="gchar*"/>
- </parameter>
- </parameters>
- </method>
- <method name="get_pad_template_list"
- c:identifier="gst_element_class_get_pad_template_list"
- doc="Retrieves a list of the pad templates associated with @element_class. The
-list must not be modified by the calling code.
-<note>If you use this function in the #GInstanceInitFunc of an object class
-that has subclasses, make sure to pass the g_class parameter of the
-#GInstanceInitFunc here.</note>">
- <return-value transfer-ownership="full">
- <type name="GLib.List" c:type="GList*"/>
- </return-value>
- </method>
- <method name="set_details"
- c:identifier="gst_element_class_set_details"
- doc="Sets the detailed information for a #GstElementClass.
-<note>This function is for use in _base_init functions only.</note>
-The @details are copied."
- deprecated="Use gst_element_class_set_details_simple() instead.">
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <parameter name="details" transfer-ownership="none">
- <type name="ElementDetails" c:type="GstElementDetails*"/>
- </parameter>
- </parameters>
- </method>
- <method name="set_details_simple"
- c:identifier="gst_element_class_set_details_simple"
- doc="separated with slashes ('/'). See draft-klass.txt of the design docs
-Sets the detailed information for a #GstElementClass. Simpler version of
-gst_element_class_set_details() that generates less linker overhead.
-<note>This function is for use in _base_init functions only.</note>
-The detail parameter strings are copied into the #GstElementDetails for
-the element class."
- version="0.10.14">
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <parameter name="longname" transfer-ownership="none">
- <type name="utf8" c:type="gchar*"/>
- </parameter>
- <parameter name="classification" transfer-ownership="none">
- <type name="utf8" c:type="gchar*"/>
- </parameter>
- <parameter name="description" transfer-ownership="none">
- <type name="utf8" c:type="gchar*"/>
- </parameter>
- <parameter name="author"
- transfer-ownership="none"
- doc="Use \n to separate">
- <type name="utf8" c:type="gchar*"/>
- </parameter>
- </parameters>
- </method>
- <method name="install_std_props"
- c:identifier="gst_element_class_install_std_props"
- doc="in a NULL terminated
-further 'name', 'id', 'flags' triplets and terminated by NULL.
-Adds a list of standardized properties with types to the @klass.
-the id is for the property switch in your get_prop method, and
-the flags determine readability / writeability.">
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <parameter name="first_name" transfer-ownership="none">
- <type name="utf8" c:type="gchar*"/>
- </parameter>
- <parameter transfer-ownership="none">
- <varargs>
- </varargs>
- </parameter>
- </parameters>
- </method>
- </record>
- <record name="ElementDetails"
- c:type="GstElementDetails"
- doc="separated with slashes ('/'). See draft-klass.txt of the design docs
-for more details and common types
-This struct defines the public information about a #GstElement. It contains
-meta-data about the element that is mostly for the benefit of editors.
-The @klass member can be used by applications to filter elements based
-on functionality.">
- <field name="longname" writable="1">
- <type name="utf8" c:type="gchar*"/>
- </field>
- <field name="klass" writable="1">
- <type name="utf8" c:type="gchar*"/>
- </field>
- <field name="description" writable="1">
- <type name="utf8" c:type="gchar*"/>
- </field>
- <field name="author" writable="1">
- <type name="utf8" c:type="gchar*"/>
- </field>
- <field name="_gst_reserved" writable="1">
- <array zero-terminated="0" c:type="gpointer" fixed-size="4">
- <type name="any"/>
- </array>
- </field>
- </record>
- <class name="ElementFactory"
- c:type="GstElementFactory"
- doc="The opaque #GstElementFactory data structure."
- parent="PluginFeature"
- glib:type-name="GstElementFactory"
- glib:get-type="gst_element_factory_get_type"
- glib:type-struct="ElementFactoryClass">
- <function name="find"
- c:identifier="gst_element_factory_find"
- doc="Search for an element factory of the given name. Refs the returned
-element factory; caller is responsible for unreffing.">
- <return-value transfer-ownership="full">
- <type name="ElementFactory" c:type="GstElementFactory*"/>
- </return-value>
- <parameters>
- <parameter name="name" transfer-ownership="none">
- <type name="utf8" c:type="gchar*"/>
- </parameter>
- </parameters>
- </function>
- <function name="make"
- c:identifier="gst_element_factory_make"
- doc="Create a new element of the type defined by the given element factory.
-If name is NULL, then the element will receive a guaranteed unique name,
-consisting of the element factory name and a number.
-If name is given, it will be given the name supplied.">
- <return-value transfer-ownership="full">
- <type name="Element" c:type="GstElement*"/>
- </return-value>
- <parameters>
- <parameter name="factoryname" transfer-ownership="none">
- <type name="utf8" c:type="gchar*"/>
- </parameter>
- <parameter name="name" transfer-ownership="none">
- <type name="utf8" c:type="gchar*"/>
- </parameter>
- </parameters>
- </function>
- <method name="get_element_type"
- c:identifier="gst_element_factory_get_element_type"
- doc="Get the #GType for elements managed by this factory. The type can
-only be retrieved if the element factory is loaded, which can be
-assured with gst_plugin_feature_load().
-the factory is not loaded.">
- <return-value transfer-ownership="none">
- <type name="GType" c:type="GType"/>
- </return-value>
- </method>
- <method name="get_longname"
- c:identifier="gst_element_factory_get_longname"
- doc="Gets the longname for this factory">
- <return-value transfer-ownership="none">
- <type name="utf8" c:type="gchar*"/>
- </return-value>
- </method>
- <method name="get_klass"
- c:identifier="gst_element_factory_get_klass"
- doc="Gets the class for this factory.">
- <return-value transfer-ownership="none">
- <type name="utf8" c:type="gchar*"/>
- </return-value>
- </method>
- <method name="get_description"
- c:identifier="gst_element_factory_get_description"
- doc="Gets the description for this factory.">
- <return-value transfer-ownership="none">
- <type name="utf8" c:type="gchar*"/>
- </return-value>
- </method>
- <method name="get_author"
- c:identifier="gst_element_factory_get_author"
- doc="Gets the author for this factory.">
- <return-value transfer-ownership="none">
- <type name="utf8" c:type="gchar*"/>
- </return-value>
- </method>
- <method name="get_num_pad_templates"
- c:identifier="gst_element_factory_get_num_pad_templates"
- doc="Gets the number of pad_templates in this factory.">
- <return-value transfer-ownership="none">
- <type name="uint" c:type="guint"/>
- </return-value>
- </method>
- <method name="get_static_pad_templates"
- c:identifier="gst_element_factory_get_static_pad_templates"
- doc="Gets the #GList of #GstStaticPadTemplate for this factory.">
- <return-value transfer-ownership="none">
- <type name="GLib.List" c:type="GList*"/>
- </return-value>
- </method>
- <method name="get_uri_type"
- c:identifier="gst_element_factory_get_uri_type"
- doc="Gets the type of URIs the element supports or #GST_URI_UNKNOWN if none.">
- <return-value transfer-ownership="none">
- <type name="int" c:type="gint"/>
- </return-value>
- </method>
- <method name="get_uri_protocols"
- c:identifier="gst_element_factory_get_uri_protocols"
- doc="Gets a NULL-terminated array of protocols this element supports or NULL if
-no protocols are supported. You may not change the contents of the returned
-array, as it is still owned by the element factory. Use g_strdupv() to
-make a copy of the protocol string array if you need to.">
- <return-value transfer-ownership="full">
- <array c:type="gchar**">
- <type name="utf8"/>
- </array>
- </return-value>
- </method>
- <method name="has_interface"
- c:identifier="gst_element_factory_has_interface"
- doc="Check if @factory implements the interface with name @interfacename."
- version="0.10.14">
- <return-value transfer-ownership="none">
- <type name="boolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <parameter name="interfacename" transfer-ownership="none">
- <type name="utf8" c:type="gchar*"/>
- </parameter>
- </parameters>
- </method>
- <method name="create"
- c:identifier="gst_element_factory_create"
- doc="Create a new element of the type defined by the given elementfactory.
-It will be given the name supplied, since all elements require a name as
-their first argument.">
- <return-value transfer-ownership="full">
- <type name="Element" c:type="GstElement*"/>
- </return-value>
- <parameters>
- <parameter name="name" transfer-ownership="none">
- <type name="utf8" c:type="gchar*"/>
- </parameter>
- </parameters>
- </method>
- <method name="can_src_caps"
- c:identifier="gst_element_factory_can_src_caps"
- doc="Checks if the factory can source the given capability.">
- <return-value transfer-ownership="none">
- <type name="boolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <parameter name="caps" transfer-ownership="none">
- <type name="Caps" c:type="GstCaps*"/>
- </parameter>
- </parameters>
- </method>
- <method name="can_sink_caps"
- c:identifier="gst_element_factory_can_sink_caps"
- doc="Checks if the factory can sink the given capability.">
- <return-value transfer-ownership="none">
- <type name="boolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <parameter name="caps" transfer-ownership="none">
- <type name="Caps" c:type="GstCaps*"/>
- </parameter>
- </parameters>
- </method>
- <field name="parent">
- <type name="PluginFeature" c:type="GstPluginFeature"/>
- </field>
- <field name="type">
- <type name="GType" c:type="GType"/>
- </field>
- <field name="details">
- <type name="ElementDetails" c:type="GstElementDetails"/>
- </field>
- <field name="staticpadtemplates">
- <type name="GLib.List" c:type="GList*"/>
- </field>
- <field name="numpadtemplates">
- <type name="uint" c:type="guint"/>
- </field>
- <field name="uri_type">
- <type name="uint" c:type="guint"/>
- </field>
- <field name="uri_protocols">
- <type name="utf8" c:type="gchar**"/>
- </field>
- <field name="interfaces">
- <type name="GLib.List" c:type="GList*"/>
- </field>
- <field name="_gst_reserved">
- <array zero-terminated="0" c:type="gpointer" fixed-size="4">
- <type name="any"/>
- </array>
- </field>
- </class>
- <record name="ElementFactoryClass"
- c:type="GstElementFactoryClass"
- glib:is-gtype-struct-for="ElementFactory">
- <field name="parent_class">
- <type name="PluginFeatureClass" c:type="GstPluginFeatureClass"/>
- </field>
- <field name="_gst_reserved">
- <array zero-terminated="0" c:type="gpointer" fixed-size="4">
- <type name="any"/>
- </array>
- </field>
- </record>
- <bitfield name="ElementFlags"
- doc="gst_bin_remove() on a child already being removed immediately returns FALSE
-The standard flags that an element may have."
- c:type="GstElementFlags">
- <member name="locked_state"
- value="16"
- c:identifier="GST_ELEMENT_LOCKED_STATE"/>
- <member name="is_sink" value="32" c:identifier="GST_ELEMENT_IS_SINK"/>
- <member name="unparenting"
- value="64"
- c:identifier="GST_ELEMENT_UNPARENTING"/>
- <member name="flag_last"
- value="1048576"
- c:identifier="GST_ELEMENT_FLAG_LAST"/>
- </bitfield>
- <record name="Event" c:type="GstEvent" doc="A #GstEvent.">
- <field name="mini_object" writable="1">
- <type name="MiniObject" c:type="GstMiniObject"/>
- </field>
- <field name="type" writable="1">
- <type name="EventType" c:type="GstEventType"/>
- </field>
- <field name="timestamp" writable="1">
- <type name="uint64" c:type="guint64"/>
- </field>
- <field name="src" writable="1">
- <type name="Object" c:type="GstObject*"/>
- </field>
- <field name="structure" writable="1">
- <type name="Structure" c:type="GstStructure*"/>
- </field>
- <union name="abidata" c:type="abidata">
- <field name="seqnum" writable="1">
- <type name="uint32" c:type="guint32"/>
- </field>
- <field name="_gst_reserved" writable="1">
- <type name="any" c:type="gpointer"/>
- </field>
- </union>
- <constructor name="new_custom"
- c:identifier="gst_event_new_custom"
- doc="the structure.
-Create a new custom-typed event. This can be used for anything not
-handled by other event-specific functions to pass an event to another
-element.
-Make sure to allocate an event type with the #GST_EVENT_MAKE_TYPE macro,
-assigning a free number and filling in the correct direction and
-serialization flags.
-New custom events can also be created by subclassing the event type if
-needed.">
- <return-value transfer-ownership="full">
- <type name="Event" c:type="GstEvent*"/>
- </return-value>
- <parameters>
- <parameter name="type" transfer-ownership="none">
- <type name="EventType" c:type="GstEventType"/>
- </parameter>
- <parameter name="structure" transfer-ownership="none">
- <type name="Structure" c:type="GstStructure*"/>
- </parameter>
- </parameters>
- </constructor>
- <constructor name="new_flush_start"
- c:identifier="gst_event_new_flush_start"
- doc="Allocate a new flush start event. The flush start event can be sent
-upstream and downstream and travels out-of-bounds with the dataflow.
-It marks pads as being flushing and will make them return
-#GST_FLOW_WRONG_STATE when used for data flow with gst_pad_push(),
-gst_pad_chain(), gst_pad_alloc_buffer(), gst_pad_get_range() and
-gst_pad_pull_range(). Any event (except a #GST_EVENT_FLUSH_STOP) received
-on a flushing pad will return %FALSE immediately.
-Elements should unlock any blocking functions and exit their streaming
-functions as fast as possible when this event is received.
-This event is typically generated after a seek to flush out all queued data
-in the pipeline so that the new media is played as soon as possible.">
- <return-value transfer-ownership="full">
- <type name="Event" c:type="GstEvent*"/>
- </return-value>
- </constructor>
- <constructor name="new_flush_stop"
- c:identifier="gst_event_new_flush_stop"
- doc="Allocate a new flush stop event. The flush stop event can be sent
-upstream and downstream and travels serialized with the dataflow.
-It is typically sent after sending a FLUSH_START event to make the
-pads accept data again.
-Elements can process this event synchronized with the dataflow since
-the preceeding FLUSH_START event stopped the dataflow.
-This event is typically generated to complete a seek and to resume
-dataflow.">
- <return-value transfer-ownership="full">
- <type name="Event" c:type="GstEvent*"/>
- </return-value>
- </constructor>
- <constructor name="new_eos"
- c:identifier="gst_event_new_eos"
- doc="Create a new EOS event. The eos event can only travel downstream
-synchronized with the buffer flow. Elements that receive the EOS
-event on a pad can return #GST_FLOW_UNEXPECTED as a #GstFlowReturn
-when data after the EOS event arrives.
-The EOS event will travel down to the sink elements in the pipeline
-which will then post the #GST_MESSAGE_EOS on the bus after they have
-finished playing any buffered data.
-When all sinks have posted an EOS message, an EOS message is
-forwarded to the application.
-The EOS event itself will not cause any state transitions of the pipeline.">
- <return-value transfer-ownership="full">
- <type name="Event" c:type="GstEvent*"/>
- </return-value>
- </constructor>
- <constructor name="new_new_segment"
- c:identifier="gst_event_new_new_segment"
- doc="Allocate a new newsegment event with the given format/values tripplets
-This method calls gst_event_new_new_segment_full() passing a default
-value of 1.0 for applied_rate">
- <return-value transfer-ownership="full">
- <type name="Event" c:type="GstEvent*"/>
- </return-value>
- <parameters>
- <parameter name="update" transfer-ownership="none">
- <type name="boolean" c:type="gboolean"/>
- </parameter>
- <parameter name="rate" transfer-ownership="none">
- <type name="double" c:type="gdouble"/>
- </parameter>
- <parameter name="format" transfer-ownership="none">
- <type name="Format" c:type="GstFormat"/>
- </parameter>
- <parameter name="start" transfer-ownership="none">
- <type name="int64" c:type="gint64"/>
- </parameter>
- <parameter name="stop" transfer-ownership="none">
- <type name="int64" c:type="gint64"/>
- </parameter>
- <parameter name="position" transfer-ownership="none">
- <type name="int64" c:type="gint64"/>
- </parameter>
- </parameters>
- </constructor>
- <constructor name="new_new_segment_full"
- c:identifier="gst_event_new_new_segment_full"
- doc="Allocate a new newsegment event with the given format/values triplets.
-The newsegment event marks the range of buffers to be processed. All
-data not within the segment range is not to be processed. This can be
-used intelligently by plugins to apply more efficient methods of skipping
-unneeded data. The valid range is expressed with the @start and @stop
-values.
-The position value of the segment is used in conjunction with the start
-value to convert the buffer timestamps into the stream time. This is
-usually done in sinks to report the current stream_time.
-is a valid @stop given, it must be greater or equal the @start, including
-when the indicated playback @rate is < 0.
-The @applied_rate value provides information about any rate adjustment that
-has already been made to the timestamps and content on the buffers of the
-stream. (@rate * @applied_rate) should always equal the rate that has been
-requested for playback. For example, if an element has an input segment
-with intended playback @rate of 2.0 and applied_rate of 1.0, it can adjust
-incoming timestamps and buffer content by half and output a newsegment event
-with @rate of 1.0 and @applied_rate of 2.0
-After a newsegment event, the buffer stream time is calculated with:
-position + (TIMESTAMP(buf) - start) * ABS (rate * applied_rate)"
- version="0.10.6">
- <return-value transfer-ownership="full">
- <type name="Event" c:type="GstEvent*"/>
- </return-value>
- <parameters>
- <parameter name="update" transfer-ownership="none">
- <type name="boolean" c:type="gboolean"/>
- </parameter>
- <parameter name="rate" transfer-ownership="none">
- <type name="double" c:type="gdouble"/>
- </parameter>
- <parameter name="applied_rate" transfer-ownership="none">
- <type name="double" c:type="gdouble"/>
- </parameter>
- <parameter name="format" transfer-ownership="none">
- <type name="Format" c:type="GstFormat"/>
- </parameter>
- <parameter name="start" transfer-ownership="none">
- <type name="int64" c:type="gint64"/>
- </parameter>
- <parameter name="stop" transfer-ownership="none">
- <type name="int64" c:type="gint64"/>
- </parameter>
- <parameter name="position" transfer-ownership="none">
- <type name="int64" c:type="gint64"/>
- </parameter>
- </parameters>
- </constructor>
- <constructor name="new_tag"
- c:identifier="gst_event_new_tag"
- doc="Generates a metadata tag event from the given @taglist.">
- <return-value transfer-ownership="full">
- <type name="Event" c:type="GstEvent*"/>
- </return-value>
- <parameters>
- <parameter name="taglist" transfer-ownership="none">
- <type name="TagList" c:type="GstTagList*"/>
- </parameter>
- </parameters>
- </constructor>
- <constructor name="new_buffer_size"
- c:identifier="gst_event_new_buffer_size"
- doc="Create a new buffersize event. The event is sent downstream and notifies
-elements that they should provide a buffer of the specified dimensions.
-When the @async flag is set, a thread boundary is prefered.">
- <return-value transfer-ownership="full">
- <type name="Event" c:type="GstEvent*"/>
- </return-value>
- <parameters>
- <parameter name="format" transfer-ownership="none">
- <type name="Format" c:type="GstFormat"/>
- </parameter>
- <parameter name="minsize" transfer-ownership="none">
- <type name="int64" c:type="gint64"/>
- </parameter>
- <parameter name="maxsize" transfer-ownership="none">
- <type name="int64" c:type="gint64"/>
- </parameter>
- <parameter name="async" transfer-ownership="none">
- <type name="boolean" c:type="gboolean"/>
- </parameter>
- </parameters>
- </constructor>
- <constructor name="new_qos"
- c:identifier="gst_event_new_qos"
- doc="Allocate a new qos event with the given values.
-The QOS event is generated in an element that wants an upstream
-element to either reduce or increase its rate because of
-high/low CPU load or other resource usage such as network performance.
-Typically sinks generate these events for each buffer they receive.
-element that generated the QoS event (usually the sink). The value is
-generally computed based on more long term statistics about the streams
-timestamps compared to the clock.
-A value < 1.0 indicates that the upstream element is producing data faster
-than real-time. A value > 1.0 indicates that the upstream element is not
-producing data fast enough. 1.0 is the ideal @proportion value. The
-proportion value can safely be used to lower or increase the quality of
-the element.
-buffer that caused the element to generate the QOS event. A negative value
-means that the buffer with @timestamp arrived in time. A positive value
-indicates how late the buffer with @timestamp was.
-to generate the QOS event. It is expressed in running time and thus an ever
-increasing value.
-The upstream element can use the @diff and @timestamp values to decide
-whether to process more buffers. For possitive @diff, all buffers with
-timestamp <= @timestamp + @diff will certainly arrive late in the sink
-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.">
- <return-value transfer-ownership="full">
- <type name="Event" c:type="GstEvent*"/>
- </return-value>
- <parameters>
- <parameter name="proportion" transfer-ownership="none">
- <type name="double" c:type="gdouble"/>
- </parameter>
- <parameter name="diff" transfer-ownership="none">
- <type name="ClockTimeDiff" c:type="GstClockTimeDiff"/>
- </parameter>
- <parameter name="timestamp" transfer-ownership="none">
- <type name="ClockTime" c:type="GstClockTime"/>
- </parameter>
- </parameters>
- </constructor>
- <constructor name="new_seek"
- c:identifier="gst_event_new_seek"
- doc="Allocate a new seek event with the given parameters.
-The seek event configures playback of the pipeline between @start to @stop
-at the speed given in @rate, also called a playback segment.
-The @start and @stop values are expressed in @format.
-A @rate of 1.0 means normal playback rate, 2.0 means double speed.
-Negatives values means backwards playback. A value of 0.0 for the
-rate is not allowed and should be accomplished instead by PAUSING the
-pipeline.
-A pipeline has a default playback segment configured with a start
-position of 0, a stop position of -1 and a rate of 1.0. The currently
-configured playback segment can be queried with #GST_QUERY_SEGMENT.
-start and stop fields in playback segment. Adjustments can be made relative
-or absolute to the last configured values. A type of #GST_SEEK_TYPE_NONE
-means that the position should not be updated.
-When the rate is positive and @start has been updated, playback will start
-from the newly configured start position.
-For negative rates, playback will start from the newly configured stop
-position (if any). If the stop position if updated, it must be different from
--1 for negative rates.
-It is not possible to seek relative to the current playback position, to do
-this, PAUSE the pipeline, query the current playback position with
-#GST_QUERY_POSITION and update the playback segment current position with a
-#GST_SEEK_TYPE_SET to the desired position.">
- <return-value transfer-ownership="full">
- <type name="Event" c:type="GstEvent*"/>
- </return-value>
- <parameters>
- <parameter name="rate" transfer-ownership="none">
- <type name="double" c:type="gdouble"/>
- </parameter>
- <parameter name="format" transfer-ownership="none">
- <type name="Format" c:type="GstFormat"/>
- </parameter>
- <parameter name="flags" transfer-ownership="none">
- <type name="SeekFlags" c:type="GstSeekFlags"/>
- </parameter>
- <parameter name="start_type" transfer-ownership="none">
- <type name="SeekType" c:type="GstSeekType"/>
- </parameter>
- <parameter name="start" transfer-ownership="none">
- <type name="int64" c:type="gint64"/>
- </parameter>
- <parameter name="stop_type" transfer-ownership="none">
- <type name="SeekType" c:type="GstSeekType"/>
- </parameter>
- <parameter name="stop" transfer-ownership="none">
- <type name="int64" c:type="gint64"/>
- </parameter>
- </parameters>
- </constructor>
- <constructor name="new_navigation"
- c:identifier="gst_event_new_navigation"
- doc="structure.
-Create a new navigation event from the given description.">
- <return-value transfer-ownership="full">
- <type name="Event" c:type="GstEvent*"/>
- </return-value>
- <parameters>
- <parameter name="structure" transfer-ownership="none">
- <type name="Structure" c:type="GstStructure*"/>
- </parameter>
- </parameters>
- </constructor>
- <constructor name="new_latency"
- c:identifier="gst_event_new_latency"
- doc="Create a new latency event. The event is sent upstream from the sinks and
-notifies elements that they should add an additional @latency to the
-running time before synchronising against the clock.
-The latency is mostly used in live sinks and is always expressed in
-the time format."
- version="0.10.12">
- <return-value transfer-ownership="full">
- <type name="Event" c:type="GstEvent*"/>
- </return-value>
- <parameters>
- <parameter name="latency" transfer-ownership="none">
- <type name="ClockTime" c:type="GstClockTime"/>
- </parameter>
- </parameters>
- </constructor>
- <constructor name="new_step"
- c:identifier="gst_event_new_step"
- doc="Create a new step event. The purpose of the step event is to instruct a sink
-to skip @amount (expressed in @format) of media. It can be used to implement
-stepping through the video frame by frame or for doing fast trick modes.
-A rate of <= 0.0 is not allowed, pause the pipeline or reverse the playback
-direction of the pipeline to get the same effect.
-The @flush flag will clear any pending data in the pipeline before starting
-the step operation.
-The @intermediate flag instructs the pipeline that this step operation is
-part of a larger step operation."
- version="0.10.24">
- <return-value transfer-ownership="full">
- <type name="Event" c:type="GstEvent*"/>
- </return-value>
- <parameters>
- <parameter name="format" transfer-ownership="none">
- <type name="Format" c:type="GstFormat"/>
- </parameter>
- <parameter name="amount" transfer-ownership="none">
- <type name="uint64" c:type="guint64"/>
- </parameter>
- <parameter name="rate" transfer-ownership="none">
- <type name="double" c:type="gdouble"/>
- </parameter>
- <parameter name="flush" transfer-ownership="none">
- <type name="boolean" c:type="gboolean"/>
- </parameter>
- <parameter name="intermediate" transfer-ownership="none">
- <type name="boolean" c:type="gboolean"/>
- </parameter>
- </parameters>
- </constructor>
- <constructor name="new_sink_message"
- c:identifier="gst_event_new_sink_message"
- doc="Create a new sink-message event. The purpose of the sink-message event is
-to instruct a sink to post the message contained in the event synchronized
-with the stream."
- version="0.10.26">
- <return-value transfer-ownership="full">
- <type name="Event" c:type="GstEvent*"/>
- </return-value>
- <parameters>
- <parameter name="msg" transfer-ownership="none">
- <type name="Message" c:type="GstMessage*"/>
- </parameter>
- </parameters>
- </constructor>
- <method name="get_structure"
- c:identifier="gst_event_get_structure"
- doc="Access the structure of the event.
-owned by the event, which means that you should not free it and
-that the pointer becomes invalid when you free the event.
-MT safe.">
- <return-value transfer-ownership="none">
- <type name="Structure" c:type="GstStructure*"/>
- </return-value>
- </method>
- <method name="has_name"
- c:identifier="gst_event_has_name"
- doc="Checks if @event has the given @name. This function is usually used to
-check the name of a custom event."
- version="0.10.20">
- <return-value transfer-ownership="none">
- <type name="boolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <parameter name="name" transfer-ownership="none">
- <type name="utf8" c:type="gchar*"/>
- </parameter>
- </parameters>
- </method>
- <method name="get_seqnum"
- c:identifier="gst_event_get_seqnum"
- doc="Retrieve the sequence number of a event.
-Events have ever-incrementing sequence numbers, which may also be set
-explicitly via gst_event_set_seqnum(). Sequence numbers are typically used to
-indicate that a event corresponds to some other set of events or messages,
-for example an EOS event corresponding to a SEEK event. It is considered good
-practice to make this correspondence when possible, though it is not
-required.
-Note that events and messages share the same sequence number incrementor;
-two events or messages will never not have the same sequence number unless
-that correspondence was made explicitly.
-MT safe."
- version="0.10.22">
- <return-value transfer-ownership="none">
- <type name="uint32" c:type="guint32"/>
- </return-value>
- </method>
- <method name="set_seqnum"
- c:identifier="gst_event_set_seqnum"
- doc="Set the sequence number of a event.
-This function might be called by the creator of a event to indicate that the
-event relates to other events or messages. See gst_event_get_seqnum() for
-more information.
-MT safe."
- version="0.10.22">
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <parameter name="seqnum" transfer-ownership="none">
- <type name="uint32" c:type="guint32"/>
- </parameter>
- </parameters>
- </method>
- <method name="parse_new_segment"
- c:identifier="gst_event_parse_new_segment"
- doc="Get the update flag, rate, format, start, stop and position in the
-newsegment event. In general, gst_event_parse_new_segment_full() should
-be used instead of this, to also retrieve the applied_rate value of the
-segment. See gst_event_new_new_segment_full() for a full description
-of the newsegment event.">
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <parameter name="update" direction="out" transfer-ownership="full">
- <type name="boolean" c:type="gboolean*"/>
- </parameter>
- <parameter name="rate" direction="out" transfer-ownership="full">
- <type name="double" c:type="gdouble*"/>
- </parameter>
- <parameter name="format" transfer-ownership="none">
- <type name="Format" c:type="GstFormat*"/>
- </parameter>
- <parameter name="start" direction="out" transfer-ownership="full">
- <type name="int64" c:type="gint64*"/>
- </parameter>
- <parameter name="stop" direction="out" transfer-ownership="full">
- <type name="int64" c:type="gint64*"/>
- </parameter>
- <parameter name="position" direction="out" transfer-ownership="full">
- <type name="int64" c:type="gint64*"/>
- </parameter>
- </parameters>
- </method>
- <method name="parse_new_segment_full"
- c:identifier="gst_event_parse_new_segment_full"
- doc="Get the update, rate, applied_rate, format, start, stop and
-position in the newsegment event. See gst_event_new_new_segment_full()
-for a full description of the newsegment event."
- version="0.10.6">
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <parameter name="update" direction="out" transfer-ownership="full">
- <type name="boolean" c:type="gboolean*"/>
- </parameter>
- <parameter name="rate" direction="out" transfer-ownership="full">
- <type name="double" c:type="gdouble*"/>
- </parameter>
- <parameter name="applied_rate"
- direction="out"
- transfer-ownership="full">
- <type name="double" c:type="gdouble*"/>
- </parameter>
- <parameter name="format" transfer-ownership="none">
- <type name="Format" c:type="GstFormat*"/>
- </parameter>
- <parameter name="start" direction="out" transfer-ownership="full">
- <type name="int64" c:type="gint64*"/>
- </parameter>
- <parameter name="stop" direction="out" transfer-ownership="full">
- <type name="int64" c:type="gint64*"/>
- </parameter>
- <parameter name="position" direction="out" transfer-ownership="full">
- <type name="int64" c:type="gint64*"/>
- </parameter>
- </parameters>
- </method>
- <method name="parse_tag"
- c:identifier="gst_event_parse_tag"
- doc="Parses a tag @event and stores the results in the given @taglist location.">
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <parameter name="taglist" transfer-ownership="none">
- <type name="TagList" c:type="GstTagList**"/>
- </parameter>
- </parameters>
- </method>
- <method name="parse_buffer_size"
- c:identifier="gst_event_parse_buffer_size"
- doc="Get the format, minsize, maxsize and async-flag in the buffersize event.">
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <parameter name="format" transfer-ownership="none">
- <type name="Format" c:type="GstFormat*"/>
- </parameter>
- <parameter name="minsize" direction="out" transfer-ownership="full">
- <type name="int64" c:type="gint64*"/>
- </parameter>
- <parameter name="maxsize" direction="out" transfer-ownership="full">
- <type name="int64" c:type="gint64*"/>
- </parameter>
- <parameter name="async" direction="out" transfer-ownership="full">
- <type name="boolean" c:type="gboolean*"/>
- </parameter>
- </parameters>
- </method>
- <method name="parse_qos"
- c:identifier="gst_event_parse_qos"
- doc="Get the proportion, diff and timestamp in the qos event. See
-gst_event_new_qos() for more information about the different QoS values.">
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <parameter name="proportion"
- direction="out"
- transfer-ownership="full">
- <type name="double" c:type="gdouble*"/>
- </parameter>
- <parameter name="diff" transfer-ownership="none">
- <type name="ClockTimeDiff" c:type="GstClockTimeDiff*"/>
- </parameter>
- <parameter name="timestamp" transfer-ownership="none">
- <type name="ClockTime" c:type="GstClockTime*"/>
- </parameter>
- </parameters>
- </method>
- <method name="parse_seek"
- c:identifier="gst_event_parse_seek"
- doc="Parses a seek @event and stores the results in the given result locations.">
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <parameter name="rate" direction="out" transfer-ownership="full">
- <type name="double" c:type="gdouble*"/>
- </parameter>
- <parameter name="format" transfer-ownership="none">
- <type name="Format" c:type="GstFormat*"/>
- </parameter>
- <parameter name="flags" transfer-ownership="none">
- <type name="SeekFlags" c:type="GstSeekFlags*"/>
- </parameter>
- <parameter name="start_type" transfer-ownership="none">
- <type name="SeekType" c:type="GstSeekType*"/>
- </parameter>
- <parameter name="start" direction="out" transfer-ownership="full">
- <type name="int64" c:type="gint64*"/>
- </parameter>
- <parameter name="stop_type" transfer-ownership="none">
- <type name="SeekType" c:type="GstSeekType*"/>
- </parameter>
- <parameter name="stop" direction="out" transfer-ownership="full">
- <type name="int64" c:type="gint64*"/>
- </parameter>
- </parameters>
- </method>
- <method name="parse_latency"
- c:identifier="gst_event_parse_latency"
- doc="Get the latency in the latency event."
- version="0.10.12">
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <parameter name="latency" transfer-ownership="none">
- <type name="ClockTime" c:type="GstClockTime*"/>
- </parameter>
- </parameters>
- </method>
- <method name="parse_step"
- c:identifier="gst_event_parse_step"
- doc="Parse the step event."
- version="0.10.24">
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <parameter name="format" transfer-ownership="none">
- <type name="Format" c:type="GstFormat*"/>
- </parameter>
- <parameter name="amount" direction="out" transfer-ownership="full">
- <type name="uint64" c:type="guint64*"/>
- </parameter>
- <parameter name="rate" direction="out" transfer-ownership="full">
- <type name="double" c:type="gdouble*"/>
- </parameter>
- <parameter name="flush" direction="out" transfer-ownership="full">
- <type name="boolean" c:type="gboolean*"/>
- </parameter>
- <parameter name="intermediate"
- direction="out"
- transfer-ownership="full">
- <type name="boolean" c:type="gboolean*"/>
- </parameter>
- </parameters>
- </method>
- <method name="parse_sink_message"
- c:identifier="gst_event_parse_sink_message"
- doc="Parse the sink-message event. Unref @msg after usage."
- version="0.10.26">
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <parameter name="msg" transfer-ownership="none">
- <type name="Message" c:type="GstMessage**"/>
- </parameter>
- </parameters>
- </method>
- </record>
- <record name="EventClass" c:type="GstEventClass">
- <field name="mini_object_class" writable="1">
- <type name="MiniObjectClass" c:type="GstMiniObjectClass"/>
- </field>
- <field name="_gst_reserved" writable="1">
- <array zero-terminated="0" c:type="gpointer" fixed-size="4">
- <type name="any"/>
- </array>
- </field>
- </record>
- <bitfield name="EventType"
- doc="without a NEWSEGMENT event.
-send messages that should be emitted in sync with
-rendering.
-that the downstream elements are being starved of or
-flooded with data.
-user requests, such as mouse or keyboard movements,
-to upstream elements.
-data flow.
-In-band when travelling downstream.
-#GstEventType lists the standard event types that can be sent in a pipeline.
-The custom event types can be used for private messages between elements
-that can't be expressed using normal
-GStreamer buffer passing semantics. Custom events carry an arbitrary
-#GstStructure.
-Specific custom events are distinguished by the name of the structure."
- c:type="GstEventType">
- <member name="unknown" value="0" c:identifier="GST_EVENT_UNKNOWN"/>
- <member name="flush_start"
- value="19"
- c:identifier="GST_EVENT_FLUSH_START"/>
- <member name="flush_stop"
- value="39"
- c:identifier="GST_EVENT_FLUSH_STOP"/>
- <member name="eos" value="86" c:identifier="GST_EVENT_EOS"/>
- <member name="newsegment"
- value="102"
- c:identifier="GST_EVENT_NEWSEGMENT"/>
- <member name="tag" value="118" c:identifier="GST_EVENT_TAG"/>
- <member name="buffersize"
- value="134"
- c:identifier="GST_EVENT_BUFFERSIZE"/>
- <member name="sink_message"
- value="150"
- c:identifier="GST_EVENT_SINK_MESSAGE"/>
- <member name="qos" value="241" c:identifier="GST_EVENT_QOS"/>
- <member name="seek" value="257" c:identifier="GST_EVENT_SEEK"/>
- <member name="navigation"
- value="273"
- c:identifier="GST_EVENT_NAVIGATION"/>
- <member name="latency" value="289" c:identifier="GST_EVENT_LATENCY"/>
- <member name="step" value="305" c:identifier="GST_EVENT_STEP"/>
- <member name="custom_upstream"
- value="513"
- c:identifier="GST_EVENT_CUSTOM_UPSTREAM"/>
- <member name="custom_downstream"
- value="518"
- c:identifier="GST_EVENT_CUSTOM_DOWNSTREAM"/>
- <member name="custom_downstream_oob"
- value="514"
- c:identifier="GST_EVENT_CUSTOM_DOWNSTREAM_OOB"/>
- <member name="custom_both"
- value="519"
- c:identifier="GST_EVENT_CUSTOM_BOTH"/>
- <member name="custom_both_oob"
- value="515"
- c:identifier="GST_EVENT_CUSTOM_BOTH_OOB"/>
- </bitfield>
- <bitfield name="EventTypeFlags"
- doc="flow.
-#GstEventTypeFlags indicate the aspects of the different #GstEventType
-values. You can get the type flags of a #GstEventType with the
-gst_event_type_get_flags() function."
- c:type="GstEventTypeFlags">
- <member name="upstream"
- value="1"
- c:identifier="GST_EVENT_TYPE_UPSTREAM"/>
- <member name="downstream"
- value="2"
- c:identifier="GST_EVENT_TYPE_DOWNSTREAM"/>
- <member name="serialized"
- value="4"
- c:identifier="GST_EVENT_TYPE_SERIALIZED"/>
- </bitfield>
- <constant name="FOURCC_FORMAT" value="c%c%c%c">
- <type name="utf8"/>
- </constant>
- <callback name="FilterFunc"
- c:type="GstFilterFunc"
- doc="Function prototype for a filter callback taht can be use in gst_filter_run().
-The function should apply its filtering to @obj. Additional data passed to
-gst_filter_run() are in @data.">
- <return-value transfer-ownership="none">
- <type name="boolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <parameter name="obj" transfer-ownership="none">
- <type name="any" c:type="gpointer"/>
- </parameter>
- <parameter name="user_data" transfer-ownership="none" closure="1">
- <type name="any" c:type="gpointer"/>
- </parameter>
- </parameters>
- </callback>
- <enumeration name="FlowReturn"
- doc="sent yet) (unused/unimplemented).
-this error should post an error message with more
-details.
-this (and higher) to define custom success
-codes. Since 0.10.7.
-custom success code to this to avoid compiler
-warnings). Since 0.10.29.
-this (and lower) to define custom error codes.
-Since 0.10.7.
-custom error code to this to avoid compiler
-warnings). Since 0.10.29.
-The result of passing data to a pad.
-Note that the custom return values should not be exposed outside of the
-element scope and are available since 0.10.7."
- c:type="GstFlowReturn">
- <member name="custom_success_2"
- value="102"
- c:identifier="GST_FLOW_CUSTOM_SUCCESS_2"/>
- <member name="custom_success_1"
- value="101"
- c:identifier="GST_FLOW_CUSTOM_SUCCESS_1"/>
- <member name="custom_success"
- value="100"
- c:identifier="GST_FLOW_CUSTOM_SUCCESS"/>
- <member name="resend" value="1" c:identifier="GST_FLOW_RESEND"/>
- <member name="ok" value="0" c:identifier="GST_FLOW_OK"/>
- <member name="not_linked" value="-1" c:identifier="GST_FLOW_NOT_LINKED"/>
- <member name="wrong_state"
- value="-2"
- c:identifier="GST_FLOW_WRONG_STATE"/>
- <member name="unexpected" value="-3" c:identifier="GST_FLOW_UNEXPECTED"/>
- <member name="not_negotiated"
- value="-4"
- c:identifier="GST_FLOW_NOT_NEGOTIATED"/>
- <member name="error" value="-5" c:identifier="GST_FLOW_ERROR"/>
- <member name="not_supported"
- value="-6"
- c:identifier="GST_FLOW_NOT_SUPPORTED"/>
- <member name="custom_error"
- value="-100"
- c:identifier="GST_FLOW_CUSTOM_ERROR"/>
- <member name="custom_error_1"
- value="-101"
- c:identifier="GST_FLOW_CUSTOM_ERROR_1"/>
- <member name="custom_error_2"
- value="-102"
- c:identifier="GST_FLOW_CUSTOM_ERROR_2"/>
- </enumeration>
- <enumeration name="Format"
- doc="samples for raw audio, frames/fields for raw video (some, but not all,
-elements support this; use @GST_FORMAT_TIME if you don't have a good
-reason to query for samples/frames)
-May 2009)
-this as of May 2009)
-Standard predefined formats"
- c:type="GstFormat">
- <member name="undefined" value="0" c:identifier="GST_FORMAT_UNDEFINED"/>
- <member name="default" value="1" c:identifier="GST_FORMAT_DEFAULT"/>
- <member name="bytes" value="2" c:identifier="GST_FORMAT_BYTES"/>
- <member name="time" value="3" c:identifier="GST_FORMAT_TIME"/>
- <member name="buffers" value="4" c:identifier="GST_FORMAT_BUFFERS"/>
- <member name="percent" value="5" c:identifier="GST_FORMAT_PERCENT"/>
- </enumeration>
- <record name="FormatDefinition"
- c:type="GstFormatDefinition"
- doc="A format definition">
- <field name="value" writable="1">
- <type name="Format" c:type="GstFormat"/>
- </field>
- <field name="nick" writable="1">
- <type name="utf8" c:type="gchar*"/>
- </field>
- <field name="description" writable="1">
- <type name="utf8" c:type="gchar*"/>
- </field>
- <field name="quark" writable="1">
- <type name="GLib.Quark" c:type="GQuark"/>
- </field>
- </record>
- <glib:boxed c:type="GstGError"
- glib:name="GError"
- glib:type-name="GstGError"
- glib:get-type="gst_g_error_get_type">
- </glib:boxed>
- <class name="GhostPad"
- c:type="GstGhostPad"
- doc="Opaque #GstGhostPad structure."
- parent="ProxyPad"
- glib:type-name="GstGhostPad"
- glib:get-type="gst_ghost_pad_get_type"
- glib:type-struct="GhostPadClass">
- <constructor name="new"
- c:identifier="gst_ghost_pad_new"
- doc="Create a new ghostpad with @target as the target. The direction will be taken
-from the target pad. @target must be unlinked.
-Will ref the target.">
- <return-value transfer-ownership="full">
- <type name="GhostPad" c:type="GstPad*"/>
- </return-value>
- <parameters>
- <parameter name="name" transfer-ownership="none">
- <type name="utf8" c:type="gchar*"/>
- </parameter>
- <parameter name="target" transfer-ownership="none">
- <type name="Pad" c:type="GstPad*"/>
- </parameter>
- </parameters>
- </constructor>
- <constructor name="new_no_target"
- c:identifier="gst_ghost_pad_new_no_target"
- doc="Create a new ghostpad without a target with the given direction.
-A target can be set on the ghostpad later with the
-gst_ghost_pad_set_target() function.
-The created ghostpad will not have a padtemplate.">
- <return-value transfer-ownership="full">
- <type name="GhostPad" c:type="GstPad*"/>
- </return-value>
- <parameters>
- <parameter name="name" transfer-ownership="none">
- <type name="utf8" c:type="gchar*"/>
- </parameter>
- <parameter name="dir" transfer-ownership="none">
- <type name="PadDirection" c:type="GstPadDirection"/>
- </parameter>
- </parameters>
- </constructor>
- <constructor name="new_from_template"
- c:identifier="gst_ghost_pad_new_from_template"
- doc="Create a new ghostpad with @target as the target. The direction will be taken
-from the target pad. The template used on the ghostpad will be @template.
-Will ref the target."
- version="0.10.10">
- <return-value transfer-ownership="full">
- <type name="GhostPad" c:type="GstPad*"/>
- </return-value>
- <parameters>
- <parameter name="name" transfer-ownership="none">
- <type name="utf8" c:type="gchar*"/>
- </parameter>
- <parameter name="target" transfer-ownership="none">
- <type name="Pad" c:type="GstPad*"/>
- </parameter>
- <parameter name="templ" transfer-ownership="none">
- <type name="PadTemplate" c:type="GstPadTemplate*"/>
- </parameter>
- </parameters>
- </constructor>
- <constructor name="new_no_target_from_template"
- c:identifier="gst_ghost_pad_new_no_target_from_template"
- doc="Create a new ghostpad based on @templ, without setting a target. The
-direction will be taken from the @templ."
- version="0.10.10">
- <return-value transfer-ownership="full">
- <type name="GhostPad" c:type="GstPad*"/>
- </return-value>
- <parameters>
- <parameter name="name" transfer-ownership="none">
- <type name="utf8" c:type="gchar*"/>
- </parameter>
- <parameter name="templ" transfer-ownership="none">
- <type name="PadTemplate" c:type="GstPadTemplate*"/>
- </parameter>
- </parameters>
- </constructor>
- <method name="get_target"
- c:identifier="gst_ghost_pad_get_target"
- doc="Get the target pad of @gpad. Unref target pad after usage.
-has no target set. Unref target pad after usage.">
- <return-value transfer-ownership="full">
- <type name="Pad" c:type="GstPad*"/>
- </return-value>
- </method>
- <method name="set_target"
- c:identifier="gst_ghost_pad_set_target"
- doc="Set the new target of the ghostpad @gpad. Any existing target
-is unlinked and links to the new target are established. if @newtarget is
-NULL the target will be cleared.
-when the internal pads could not be linked.">
- <return-value transfer-ownership="none">
- <type name="boolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <parameter name="newtarget" transfer-ownership="none">
- <type name="Pad" c:type="GstPad*"/>
- </parameter>
- </parameters>
- </method>
- <method name="construct"
- c:identifier="gst_ghost_pad_construct"
- doc="Finish initialization of a newly allocated ghost pad.
-This function is most useful in language bindings and when subclassing
-#GstGhostPad; plugin and application developers normally will not call this
-function. Call this function directly after a call to g_object_new
-(GST_TYPE_GHOST_PAD, "direction", @dir, ..., NULL)."
- version="0.10.22">
- <return-value transfer-ownership="none">
- <type name="boolean" c:type="gboolean"/>
- </return-value>
- </method>
- <field name="pad">
- <type name="ProxyPad" c:type="GstProxyPad"/>
- </field>
- <field name="priv">
- <type name="GhostPadPrivate" c:type="GstGhostPadPrivate*"/>
- </field>
- </class>
- <record name="GhostPadClass"
- c:type="GstGhostPadClass"
- glib:is-gtype-struct-for="GhostPad">
- <field name="parent_class">
- <type name="ProxyPadClass" c:type="GstProxyPadClass"/>
- </field>
- <field name="_gst_reserved">
- <array zero-terminated="0" c:type="gpointer" fixed-size="4">
- <type name="any"/>
- </array>
- </field>
- </record>
- <record name="GhostPadPrivate" c:type="GstGhostPadPrivate">
- </record>
- <constant name="INDEX_ID_INVALID" value="-1">
- <type name="int"/>
- </constant>
- <interface name="ImplementsInterface"
- c:type="GstImplementsInterface"
- doc="Opaque #GstImplementsInterface structure."
- glib:type-name="GstImplementsInterface"
- glib:get-type="gst_implements_interface_get_type"
- glib:type-struct="ImplementsInterfaceClass">
- <prerequisite name="Element"/>
- <virtual-method name="supported">
- <return-value transfer-ownership="none">
- <type name="boolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <parameter name="iface_type" transfer-ownership="none">
- <type name="GType" c:type="GType"/>
- </parameter>
- </parameters>
- </virtual-method>
- </interface>
- <record name="ImplementsInterfaceClass"
- c:type="GstImplementsInterfaceClass"
- glib:is-gtype-struct-for="ImplementsInterface">
- <field name="parent">
- <type name="GObject.TypeInterface" c:type="GTypeInterface"/>
- </field>
- <field name="supported">
- <callback name="supported" c:type="supported">
- <return-value transfer-ownership="none">
- <type name="boolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <parameter name="iface" transfer-ownership="none">
- <type name="ImplementsInterface"
- c:type="GstImplementsInterface*"/>
- </parameter>
- <parameter name="iface_type" transfer-ownership="none">
- <type name="GType" c:type="GType"/>
- </parameter>
- </parameters>
- </callback>
- </field>
- <field name="_gst_reserved">
- <array zero-terminated="0" c:type="gpointer" fixed-size="4">
- <type name="any"/>
- </array>
- </field>
- </record>
- <class name="Index"
- c:type="GstIndex"
- doc="Opaque #GstIndex structure."
- parent="Object"
- glib:type-name="GstIndex"
- glib:get-type="gst_index_get_type"
- glib:type-struct="IndexClass">
- <constructor name="new"
- c:identifier="gst_index_new"
- doc="Create a new tileindex object">
- <return-value transfer-ownership="full">
- <type name="Index" c:type="GstIndex*"/>
- </return-value>
- </constructor>
- <virtual-method name="get_writer_id">
- <return-value transfer-ownership="none">
- <type name="boolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <parameter name="writer_id"
- direction="out"
- transfer-ownership="full">
- <type name="int" c:type="gint*"/>
- </parameter>
- <parameter name="writer_string" transfer-ownership="full">
- <type name="utf8" c:type="gchar*"/>
- </parameter>
- </parameters>
- </virtual-method>
- <virtual-method name="commit" invoker="commit">
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <parameter name="id" transfer-ownership="none">
- <type name="int" c:type="gint"/>
- </parameter>
- </parameters>
- </virtual-method>
- <virtual-method name="add_entry">
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <parameter name="entry" transfer-ownership="none">
- <type name="IndexEntry" c:type="GstIndexEntry*"/>
- </parameter>
- </parameters>
- </virtual-method>
- <virtual-method name="get_assoc_entry">
- <return-value transfer-ownership="full">
- <type name="IndexEntry" c:type="GstIndexEntry*"/>
- </return-value>
- <parameters>
- <parameter name="id" transfer-ownership="none">
- <type name="int" c:type="gint"/>
- </parameter>
- <parameter name="method" transfer-ownership="none">
- <type name="IndexLookupMethod" c:type="GstIndexLookupMethod"/>
- </parameter>
- <parameter name="flags" transfer-ownership="none">
- <type name="AssocFlags" c:type="GstAssocFlags"/>
- </parameter>
- <parameter name="format" transfer-ownership="none">
- <type name="Format" c:type="GstFormat"/>
- </parameter>
- <parameter name="value" transfer-ownership="none">
- <type name="int64" c:type="gint64"/>
- </parameter>
- <parameter name="func" transfer-ownership="none">
- <type name="GLib.CompareDataFunc" c:type="GCompareDataFunc"/>
- </parameter>
- <parameter name="user_data" transfer-ownership="none" closure="7">
- <type name="any" c:type="gpointer"/>
- </parameter>
- </parameters>
- </virtual-method>
- <method name="commit"
- c:identifier="gst_index_commit"
- doc="Tell the index that the writer with the given id is done
-with this index and is not going to write any more entries
-to it.">
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <parameter name="id" transfer-ownership="none">
- <type name="int" c:type="gint"/>
- </parameter>
- </parameters>
- </method>
- <method name="get_group"
- c:identifier="gst_index_get_group"
- doc="Get the id of the current group.">
- <return-value transfer-ownership="none">
- <type name="int" c:type="gint"/>
- </return-value>
- </method>
- <method name="new_group"
- c:identifier="gst_index_new_group"
- doc="Create a new group for the given index. It will be
-set as the current group.">
- <return-value transfer-ownership="none">
- <type name="int" c:type="gint"/>
- </return-value>
- </method>
- <method name="set_group"
- c:identifier="gst_index_set_group"
- doc="Set the current groupnumber to the given argument.
-did not exist.">
- <return-value transfer-ownership="none">
- <type name="boolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <parameter name="groupnum" transfer-ownership="none">
- <type name="int" c:type="gint"/>
- </parameter>
- </parameters>
- </method>
- <method name="set_certainty"
- c:identifier="gst_index_set_certainty"
- doc="Set the certainty of the given index.">
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <parameter name="certainty" transfer-ownership="none">
- <type name="IndexCertainty" c:type="GstIndexCertainty"/>
- </parameter>
- </parameters>
- </method>
- <method name="get_certainty"
- c:identifier="gst_index_get_certainty"
- doc="Get the certainty of the given index.">
- <return-value transfer-ownership="full">
- <type name="IndexCertainty" c:type="GstIndexCertainty"/>
- </return-value>
- </method>
- <method name="set_filter"
- c:identifier="gst_index_set_filter"
- doc="Lets the app register a custom filter function so that
-it can select what entries should be stored in the index.">
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <parameter name="filter"
- transfer-ownership="none"
- scope="call"
- closure="2">
- <type name="IndexFilter" c:type="GstIndexFilter"/>
- </parameter>
- <parameter name="user_data" transfer-ownership="none">
- <type name="any" c:type="gpointer"/>
- </parameter>
- </parameters>
- </method>
- <method name="set_filter_full"
- c:identifier="gst_index_set_filter_full"
- doc="Lets the app register a custom filter function so that
-it can select what entries should be stored in the index.">
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <parameter name="filter"
- transfer-ownership="none"
- scope="notified"
- closure="2"
- destroy="3">
- <type name="IndexFilter" c:type="GstIndexFilter"/>
- </parameter>
- <parameter name="user_data" transfer-ownership="none">
- <type name="any" c:type="gpointer"/>
- </parameter>
- <parameter name="user_data_destroy"
- transfer-ownership="none"
- scope="call">
- <type name="GLib.DestroyNotify" c:type="GDestroyNotify"/>
- </parameter>
- </parameters>
- </method>
- <method name="set_resolver"
- c:identifier="gst_index_set_resolver"
- doc="Lets the app register a custom function to map index
-ids to writer descriptions.">
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <parameter name="resolver"
- transfer-ownership="none"
- scope="call"
- closure="2">
- <type name="IndexResolver" c:type="GstIndexResolver"/>
- </parameter>
- <parameter name="user_data" transfer-ownership="none">
- <type name="any" c:type="gpointer"/>
- </parameter>
- </parameters>
- </method>
- <method name="set_resolver_full"
- c:identifier="gst_index_set_resolver_full"
- doc="Lets the app register a custom function to map index
-ids to writer descriptions."
- version="0.10.18">
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <parameter name="resolver"
- transfer-ownership="none"
- scope="notified"
- closure="2"
- destroy="3">
- <type name="IndexResolver" c:type="GstIndexResolver"/>
- </parameter>
- <parameter name="user_data" transfer-ownership="none">
- <type name="any" c:type="gpointer"/>
- </parameter>
- <parameter name="user_data_destroy"
- transfer-ownership="none"
- scope="call">
- <type name="GLib.DestroyNotify" c:type="GDestroyNotify"/>
- </parameter>
- </parameters>
- </method>
- <method name="get_writer_id"
- c:identifier="gst_index_get_writer_id"
- doc="Before entries can be added to the index, a writer
-should obtain a unique id. The methods to add new entries
-to the index require this id as an argument.
-The application can implement a custom function to map the writer object
-to a string. That string will be used to register or look up an id
-in the index.">
- <return-value transfer-ownership="none">
- <type name="boolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <parameter name="writer" transfer-ownership="none">
- <type name="Object" c:type="GstObject*"/>
- </parameter>
- <parameter name="id" direction="out" transfer-ownership="full">
- <type name="int" c:type="gint*"/>
- </parameter>
- </parameters>
- </method>
- <method name="add_format"
- c:identifier="gst_index_add_format"
- doc="Adds a format entry into the index. This function is
-used to map dynamic GstFormat ids to their original
-format key.">
- <return-value transfer-ownership="full">
- <type name="IndexEntry" c:type="GstIndexEntry*"/>
- </return-value>
- <parameters>
- <parameter name="id" transfer-ownership="none">
- <type name="int" c:type="gint"/>
- </parameter>
- <parameter name="format" transfer-ownership="none">
- <type name="Format" c:type="GstFormat"/>
- </parameter>
- </parameters>
- </method>
- <method name="add_associationv"
- c:identifier="gst_index_add_associationv"
- doc="Associate given format/value pairs with each other.">
- <return-value transfer-ownership="full">
- <type name="IndexEntry" c:type="GstIndexEntry*"/>
- </return-value>
- <parameters>
- <parameter name="id" transfer-ownership="none">
- <type name="int" c:type="gint"/>
- </parameter>
- <parameter name="flags" transfer-ownership="none">
- <type name="AssocFlags" c:type="GstAssocFlags"/>
- </parameter>
- <parameter name="n" transfer-ownership="none">
- <type name="int" c:type="gint"/>
- </parameter>
- <parameter name="list" transfer-ownership="none">
- <type name="IndexAssociation" c:type="GstIndexAssociation*"/>
- </parameter>
- </parameters>
- </method>
- <method name="add_association"
- c:identifier="gst_index_add_association"
- doc="Associate given format/value pairs with each other.
-Be sure to pass gint64 values to this functions varargs,
-you might want to use a gint64 cast to be sure.">
- <return-value transfer-ownership="full">
- <type name="IndexEntry" c:type="GstIndexEntry*"/>
- </return-value>
- <parameters>
- <parameter name="id" transfer-ownership="none">
- <type name="int" c:type="gint"/>
- </parameter>
- <parameter name="flags" transfer-ownership="none">
- <type name="AssocFlags" c:type="GstAssocFlags"/>
- </parameter>
- <parameter name="format" transfer-ownership="none">
- <type name="Format" c:type="GstFormat"/>
- </parameter>
- <parameter name="value" transfer-ownership="none">
- <type name="int64" c:type="gint64"/>
- </parameter>
- <parameter transfer-ownership="none">
- <varargs>
- </varargs>
- </parameter>
- </parameters>
- </method>
- <method name="add_object"
- c:identifier="gst_index_add_object"
- doc="Add the given object to the index with the given key.
-This function is not yet implemented.">
- <return-value transfer-ownership="full">
- <type name="IndexEntry" c:type="GstIndexEntry*"/>
- </return-value>
- <parameters>
- <parameter name="id" transfer-ownership="none">
- <type name="int" c:type="gint"/>
- </parameter>
- <parameter name="key" transfer-ownership="full">
- <type name="utf8" c:type="gchar*"/>
- </parameter>
- <parameter name="type" transfer-ownership="none">
- <type name="GType" c:type="GType"/>
- </parameter>
- <parameter name="object" transfer-ownership="none">
- <type name="any" c:type="gpointer"/>
- </parameter>
- </parameters>
- </method>
- <method name="add_id"
- c:identifier="gst_index_add_id"
- doc="Add an id entry into the index.">
- <return-value transfer-ownership="full">
- <type name="IndexEntry" c:type="GstIndexEntry*"/>
- </return-value>
- <parameters>
- <parameter name="id" transfer-ownership="none">
- <type name="int" c:type="gint"/>
- </parameter>
- <parameter name="description" transfer-ownership="full">
- <type name="utf8" c:type="gchar*"/>
- </parameter>
- </parameters>
- </method>
- <method name="get_assoc_entry"
- c:identifier="gst_index_get_assoc_entry"
- doc="Finds the given format/value in the index
-value was not found.">
- <return-value transfer-ownership="full">
- <type name="IndexEntry" c:type="GstIndexEntry*"/>
- </return-value>
- <parameters>
- <parameter name="id" transfer-ownership="none">
- <type name="int" c:type="gint"/>
- </parameter>
- <parameter name="method" transfer-ownership="none">
- <type name="IndexLookupMethod" c:type="GstIndexLookupMethod"/>
- </parameter>
- <parameter name="flags" transfer-ownership="none">
- <type name="AssocFlags" c:type="GstAssocFlags"/>
- </parameter>
- <parameter name="format" transfer-ownership="none">
- <type name="Format" c:type="GstFormat"/>
- </parameter>
- <parameter name="value" transfer-ownership="none">
- <type name="int64" c:type="gint64"/>
- </parameter>
- </parameters>
- </method>
- <method name="get_assoc_entry_full"
- c:identifier="gst_index_get_assoc_entry_full"
- doc="Finds the given format/value in the index with the given
-compare function and user_data.
-value was not found.">
- <return-value transfer-ownership="full">
- <type name="IndexEntry" c:type="GstIndexEntry*"/>
- </return-value>
- <parameters>
- <parameter name="id" transfer-ownership="none">
- <type name="int" c:type="gint"/>
- </parameter>
- <parameter name="method" transfer-ownership="none">
- <type name="IndexLookupMethod" c:type="GstIndexLookupMethod"/>
- </parameter>
- <parameter name="flags" transfer-ownership="none">
- <type name="AssocFlags" c:type="GstAssocFlags"/>
- </parameter>
- <parameter name="format" transfer-ownership="none">
- <type name="Format" c:type="GstFormat"/>
- </parameter>
- <parameter name="value" transfer-ownership="none">
- <type name="int64" c:type="gint64"/>
- </parameter>
- <parameter name="func"
- transfer-ownership="none"
- scope="call"
- closure="7">
- <type name="GLib.CompareDataFunc" c:type="GCompareDataFunc"/>
- </parameter>
- <parameter name="user_data" transfer-ownership="none">
- <type name="any" c:type="gpointer"/>
- </parameter>
- </parameters>
- </method>
- <property name="resolver" writable="1">
- <type name="IndexResolver" c:type="GstIndexResolver"/>
- </property>
- <field name="object">
- <type name="Object" c:type="GstObject"/>
- </field>
- <field name="groups">
- <type name="GLib.List" c:type="GList*"/>
- </field>
- <field name="curgroup">
- <type name="IndexGroup" c:type="GstIndexGroup*"/>
- </field>
- <field name="maxgroup">
- <type name="int" c:type="gint"/>
- </field>
- <field name="method">
- <type name="IndexResolverMethod" c:type="GstIndexResolverMethod"/>
- </field>
- <field name="resolver">
- <type name="IndexResolver" c:type="GstIndexResolver"/>
- </field>
- <field name="resolver_user_data">
- <type name="any" c:type="gpointer"/>
- </field>
- <field name="filter">
- <type name="IndexFilter" c:type="GstIndexFilter"/>
- </field>
- <field name="filter_user_data">
- <type name="any" c:type="gpointer"/>
- </field>
- <field name="filter_user_data_destroy">
- <type name="GLib.DestroyNotify" c:type="GDestroyNotify"/>
- </field>
- <field name="writers">
- <type name="GLib.HashTable" c:type="GHashTable*"/>
- </field>
- <field name="last_id">
- <type name="int" c:type="gint"/>
- </field>
- <field name="resolver_user_data_destroy">
- <type name="GLib.DestroyNotify" c:type="GDestroyNotify"/>
- </field>
- <field name="_gst_reserved">
- <array zero-terminated="0" c:type="gpointer" fixed-size="3">
- <type name="any"/>
- </array>
- </field>
- <glib:signal name="entry-added">
- <return-value transfer-ownership="full">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <parameter name="object" transfer-ownership="none">
- <type name="IndexEntry" c:type="GstIndexEntry"/>
- </parameter>
- </parameters>
- </glib:signal>
- </class>
- <record name="IndexAssociation"
- c:type="GstIndexAssociation"
- doc="An association in an entry.">
- <field name="format" writable="1">
- <type name="Format" c:type="GstFormat"/>
- </field>
- <field name="value" writable="1">
- <type name="int64" c:type="gint64"/>
- </field>
- </record>
- <enumeration name="IndexCertainty"
- doc="The certainty of a group in the index."
- c:type="GstIndexCertainty">
- <member name="unknown" value="0" c:identifier="GST_INDEX_UNKNOWN"/>
- <member name="certain" value="1" c:identifier="GST_INDEX_CERTAIN"/>
- <member name="fuzzy" value="2" c:identifier="GST_INDEX_FUZZY"/>
- </enumeration>
- <record name="IndexClass"
- c:type="GstIndexClass"
- glib:is-gtype-struct-for="Index">
- <field name="parent_class">
- <type name="ObjectClass" c:type="GstObjectClass"/>
- </field>
- <field name="get_writer_id">
- <callback name="get_writer_id" c:type="get_writer_id">
- <return-value transfer-ownership="none">
- <type name="boolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <parameter name="index" transfer-ownership="none">
- <type name="Index" c:type="GstIndex*"/>
- </parameter>
- <parameter name="writer_id"
- direction="out"
- transfer-ownership="full">
- <type name="int" c:type="gint*"/>
- </parameter>
- <parameter name="writer_string" transfer-ownership="full">
- <type name="utf8" c:type="gchar*"/>
- </parameter>
- </parameters>
- </callback>
- </field>
- <field name="commit">
- <callback name="commit" c:type="commit">
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <parameter name="index" transfer-ownership="none">
- <type name="Index" c:type="GstIndex*"/>
- </parameter>
- <parameter name="id" transfer-ownership="none">
- <type name="int" c:type="gint"/>
- </parameter>
- </parameters>
- </callback>
- </field>
- <field name="add_entry">
- <callback name="add_entry" c:type="add_entry">
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <parameter name="index" transfer-ownership="none">
- <type name="Index" c:type="GstIndex*"/>
- </parameter>
- <parameter name="entry" transfer-ownership="none">
- <type name="IndexEntry" c:type="GstIndexEntry*"/>
- </parameter>
- </parameters>
- </callback>
- </field>
- <field name="get_assoc_entry">
- <callback name="get_assoc_entry" c:type="get_assoc_entry">
- <return-value transfer-ownership="full">
- <type name="IndexEntry" c:type="GstIndexEntry*"/>
- </return-value>
- <parameters>
- <parameter name="index" transfer-ownership="none">
- <type name="Index" c:type="GstIndex*"/>
- </parameter>
- <parameter name="id" transfer-ownership="none">
- <type name="int" c:type="gint"/>
- </parameter>
- <parameter name="method" transfer-ownership="none">
- <type name="IndexLookupMethod" c:type="GstIndexLookupMethod"/>
- </parameter>
- <parameter name="flags" transfer-ownership="none">
- <type name="AssocFlags" c:type="GstAssocFlags"/>
- </parameter>
- <parameter name="format" transfer-ownership="none">
- <type name="Format" c:type="GstFormat"/>
- </parameter>
- <parameter name="value" transfer-ownership="none">
- <type name="int64" c:type="gint64"/>
- </parameter>
- <parameter name="func" transfer-ownership="none">
- <type name="GLib.CompareDataFunc" c:type="GCompareDataFunc"/>
- </parameter>
- <parameter name="user_data" transfer-ownership="none" closure="7">
- <type name="any" c:type="gpointer"/>
- </parameter>
- </parameters>
- </callback>
- </field>
- <field name="entry_added">
- <callback name="entry_added" c:type="entry_added">
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <parameter name="index" transfer-ownership="none">
- <type name="Index" c:type="GstIndex*"/>
- </parameter>
- <parameter name="entry" transfer-ownership="none">
- <type name="IndexEntry" c:type="GstIndexEntry*"/>
- </parameter>
- </parameters>
- </callback>
- </field>
- <field name="_gst_reserved">
- <array zero-terminated="0" c:type="gpointer" fixed-size="4">
- <type name="any"/>
- </array>
- </field>
- </record>
- <record name="IndexEntry"
- c:type="GstIndexEntry"
- doc="The basic element of an index."
- glib:type-name="GstIndexEntry"
- glib:get-type="gst_index_entry_get_type">
- <field name="type" writable="1">
- <type name="IndexEntryType" c:type="GstIndexEntryType"/>
- </field>
- <field name="id" writable="1">
- <type name="int" c:type="gint"/>
- </field>
- <union name="data" c:type="data">
- <record name="id" c:type="id">
- <field name="description" writable="1">
- <type name="utf8" c:type="gchar*"/>
- </field>
- </record>
- <record name="assoc" c:type="assoc">
- <field name="nassocs" writable="1">
- <type name="int" c:type="gint"/>
- </field>
- <field name="assocs" writable="1">
- <type name="IndexAssociation" c:type="GstIndexAssociation*"/>
- </field>
- <field name="flags" writable="1">
- <type name="AssocFlags" c:type="GstAssocFlags"/>
- </field>
- </record>
- <record name="object" c:type="object">
- <field name="key" writable="1">
- <type name="utf8" c:type="gchar*"/>
- </field>
- <field name="type" writable="1">
- <type name="GType" c:type="GType"/>
- </field>
- <field name="object" writable="1">
- <type name="any" c:type="gpointer"/>
- </field>
- </record>
- <record name="format" c:type="format">
- <field name="format" writable="1">
- <type name="Format" c:type="GstFormat"/>
- </field>
- <field name="key" writable="1">
- <type name="utf8" c:type="gchar*"/>
- </field>
- </record>
- </union>
- <method name="copy"
- c:identifier="gst_index_entry_copy"
- doc="Copies an entry and returns the result.">
- <return-value transfer-ownership="full">
- <type name="IndexEntry" c:type="GstIndexEntry*"/>
- </return-value>
- </method>
- <method name="free"
- c:identifier="gst_index_entry_free"
- doc="Free the memory used by the given entry.">
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- </method>
- <method name="assoc_map"
- c:identifier="gst_index_entry_assoc_map"
- doc="Gets alternative formats associated with the indexentry.
-format.">
- <return-value transfer-ownership="none">
- <type name="boolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <parameter name="format" transfer-ownership="none">
- <type name="Format" c:type="GstFormat"/>
- </parameter>
- <parameter name="value" direction="out" transfer-ownership="full">
- <type name="int64" c:type="gint64*"/>
- </parameter>
- </parameters>
- </method>
- </record>
- <enumeration name="IndexEntryType"
- doc="The different types of entries in the index."
- c:type="GstIndexEntryType">
- <member name="id" value="0" c:identifier="GST_INDEX_ENTRY_ID"/>
- <member name="association"
- value="1"
- c:identifier="GST_INDEX_ENTRY_ASSOCIATION"/>
- <member name="object" value="2" c:identifier="GST_INDEX_ENTRY_OBJECT"/>
- <member name="format" value="3" c:identifier="GST_INDEX_ENTRY_FORMAT"/>
- </enumeration>
- <class name="IndexFactory"
- c:type="GstIndexFactory"
- doc="The GstIndexFactory object"
- parent="PluginFeature"
- glib:type-name="GstIndexFactory"
- glib:get-type="gst_index_factory_get_type"
- glib:type-struct="IndexFactoryClass">
- <constructor name="new"
- c:identifier="gst_index_factory_new"
- doc="Create a new indexfactory with the given parameters">
- <return-value transfer-ownership="full">
- <type name="IndexFactory" c:type="GstIndexFactory*"/>
- </return-value>
- <parameters>
- <parameter name="name" transfer-ownership="none">
- <type name="utf8" c:type="gchar*"/>
- </parameter>
- <parameter name="longdesc" transfer-ownership="none">
- <type name="utf8" c:type="gchar*"/>
- </parameter>
- <parameter name="type" transfer-ownership="none">
- <type name="GType" c:type="GType"/>
- </parameter>
- </parameters>
- </constructor>
- <function name="find"
- c:identifier="gst_index_factory_find"
- doc="Search for an indexfactory of the given name.">
- <return-value transfer-ownership="full">
- <type name="IndexFactory" c:type="GstIndexFactory*"/>
- </return-value>
- <parameters>
- <parameter name="name" transfer-ownership="none">
- <type name="utf8" c:type="gchar*"/>
- </parameter>
- </parameters>
- </function>
- <function name="make"
- c:identifier="gst_index_factory_make"
- doc="Create a new #GstIndex instance from the
-indexfactory with the given name.">
- <return-value transfer-ownership="full">
- <type name="Index" c:type="GstIndex*"/>
- </return-value>
- <parameters>
- <parameter name="name" transfer-ownership="none">
- <type name="utf8" c:type="gchar*"/>
- </parameter>
- </parameters>
- </function>
- <method name="destroy"
- c:identifier="gst_index_factory_destroy"
- doc="Removes the index from the global list.">
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- </method>
- <method name="create"
- c:identifier="gst_index_factory_create"
- doc="Create a new #GstIndex instance from the
-given indexfactory.">
- <return-value transfer-ownership="full">
- <type name="Index" c:type="GstIndex*"/>
- </return-value>
- </method>
- <field name="feature">
- <type name="PluginFeature" c:type="GstPluginFeature"/>
- </field>
- <field name="longdesc">
- <type name="utf8" c:type="gchar*"/>
- </field>
- <field name="type">
- <type name="GType" c:type="GType"/>
- </field>
- <field name="_gst_reserved">
- <array zero-terminated="0" c:type="gpointer" fixed-size="4">
- <type name="any"/>
- </array>
- </field>
- </class>
- <record name="IndexFactoryClass"
- c:type="GstIndexFactoryClass"
- glib:is-gtype-struct-for="IndexFactory">
- <field name="parent">
- <type name="PluginFeatureClass" c:type="GstPluginFeatureClass"/>
- </field>
- <field name="_gst_reserved">
- <array zero-terminated="0" c:type="gpointer" fixed-size="4">
- <type name="any"/>
- </array>
- </field>
- </record>
- <callback name="IndexFilter"
- c:type="GstIndexFilter"
- doc="Function to filter out entries in the index.
-to the index, %FALSE otherwise.">
- <return-value transfer-ownership="none">
- <type name="boolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <parameter name="index" transfer-ownership="none">
- <type name="Index" c:type="GstIndex*"/>
- </parameter>
- <parameter name="entry" transfer-ownership="none">
- <type name="IndexEntry" c:type="GstIndexEntry*"/>
- </parameter>
- <parameter name="user_data" transfer-ownership="none" closure="2">
- <type name="any" c:type="gpointer"/>
- </parameter>
- </parameters>
- </callback>
- <bitfield name="IndexFlags"
- doc="Flags for this index"
- c:type="GstIndexFlags">
- <member name="writable" value="16" c:identifier="GST_INDEX_WRITABLE"/>
- <member name="readable" value="32" c:identifier="GST_INDEX_READABLE"/>
- <member name="flag_last"
- value="4096"
- c:identifier="GST_INDEX_FLAG_LAST"/>
- </bitfield>
- <record name="IndexGroup"
- c:type="GstIndexGroup"
- doc="A group of related entries in an index.">
- <field name="groupnum" writable="1">
- <type name="int" c:type="gint"/>
- </field>
- <field name="entries" writable="1">
- <type name="GLib.List" c:type="GList*"/>
- </field>
- <field name="certainty" writable="1">
- <type name="IndexCertainty" c:type="GstIndexCertainty"/>
- </field>
- <field name="peergroup" writable="1">
- <type name="int" c:type="gint"/>
- </field>
- </record>
- <enumeration name="IndexLookupMethod"
- doc="Specify the method to find an index entry in the index."
- c:type="GstIndexLookupMethod">
- <member name="exact" value="0" c:identifier="GST_INDEX_LOOKUP_EXACT"/>
- <member name="before" value="1" c:identifier="GST_INDEX_LOOKUP_BEFORE"/>
- <member name="after" value="2" c:identifier="GST_INDEX_LOOKUP_AFTER"/>
- </enumeration>
- <callback name="IndexResolver"
- c:type="GstIndexResolver"
- doc="Function to resolve ids to writer descriptions.">
- <return-value transfer-ownership="none">
- <type name="boolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <parameter name="index" transfer-ownership="none">
- <type name="Index" c:type="GstIndex*"/>
- </parameter>
- <parameter name="writer" transfer-ownership="none">
- <type name="Object" c:type="GstObject*"/>
- </parameter>
- <parameter name="writer_string" transfer-ownership="none">
- <array c:type="gchar**">
- <type name="utf8"/>
- </array>
- </parameter>
- <parameter name="user_data" transfer-ownership="none" closure="3">
- <type name="any" c:type="gpointer"/>
- </parameter>
- </parameters>
- </callback>
- <enumeration name="IndexResolverMethod"
- doc="The method used to resolve index writers"
- c:type="GstIndexResolverMethod">
- <member name="custom"
- value="0"
- c:identifier="GST_INDEX_RESOLVER_CUSTOM"/>
- <member name="gtype" value="1" c:identifier="GST_INDEX_RESOLVER_GTYPE"/>
- <member name="path" value="2" c:identifier="GST_INDEX_RESOLVER_PATH"/>
- </enumeration>
- <record name="Iterator"
- c:type="GstIterator"
- doc="created.
-#GstIterator base structure. The values of this structure are
-protected for subclasses, use the methods to use the #GstIterator.">
- <field name="next" writable="1">
- <type name="IteratorNextFunction" c:type="GstIteratorNextFunction"/>
- </field>
- <field name="item" writable="1">
- <type name="IteratorItemFunction" c:type="GstIteratorItemFunction"/>
- </field>
- <field name="resync" writable="1">
- <type name="IteratorResyncFunction"
- c:type="GstIteratorResyncFunction"/>
- </field>
- <field name="free" writable="1">
- <type name="IteratorFreeFunction" c:type="GstIteratorFreeFunction"/>
- </field>
- <field name="pushed" writable="1">
- <type name="Iterator" c:type="GstIterator*"/>
- </field>
- <field name="type" writable="1">
- <type name="GType" c:type="GType"/>
- </field>
- <field name="lock" writable="1">
- <type name="GLib.Mutex" c:type="GMutex*"/>
- </field>
- <field name="cookie" writable="1">
- <type name="uint32" c:type="guint32"/>
- </field>
- <field name="master_cookie" writable="1">
- <type name="any" c:type="guint32*"/>
- </field>
- <field name="_gst_reserved" writable="1">
- <array zero-terminated="0" c:type="gpointer" fixed-size="4">
- <type name="any"/>
- </array>
- </field>
- <constructor name="new"
- c:identifier="gst_iterator_new"
- doc="iterator changed.
-Create a new iterator. This function is mainly used for objects
-implementing the next/resync/free function to iterate a data structure.
-For each item retrieved, the @item function is called with the lock
-held. The @free function is called when the iterator is freed.
-MT safe.">
- <return-value transfer-ownership="full">
- <type name="Iterator" c:type="GstIterator*"/>
- </return-value>
- <parameters>
- <parameter name="size" transfer-ownership="none">
- <type name="uint" c:type="guint"/>
- </parameter>
- <parameter name="type" transfer-ownership="none">
- <type name="GType" c:type="GType"/>
- </parameter>
- <parameter name="lock" transfer-ownership="none">
- <type name="GLib.Mutex" c:type="GMutex*"/>
- </parameter>
- <parameter name="master_cookie"
- direction="out"
- transfer-ownership="full">
- <type name="uint32" c:type="guint32*"/>
- </parameter>
- <parameter name="next" transfer-ownership="none" scope="call">
- <type name="IteratorNextFunction"
- c:type="GstIteratorNextFunction"/>
- </parameter>
- <parameter name="item" transfer-ownership="none" scope="call">
- <type name="IteratorItemFunction"
- c:type="GstIteratorItemFunction"/>
- </parameter>
- <parameter name="resync" transfer-ownership="none" scope="call">
- <type name="IteratorResyncFunction"
- c:type="GstIteratorResyncFunction"/>
- </parameter>
- <parameter name="free" transfer-ownership="none" scope="call">
- <type name="IteratorFreeFunction"
- c:type="GstIteratorFreeFunction"/>
- </parameter>
- </parameters>
- </constructor>
- <constructor name="new_list"
- c:identifier="gst_iterator_new_list"
- doc="is changed.
-Create a new iterator designed for iterating @list.
-The list you iterate is usually part of a data structure @owner and is
-protected with @lock.
-The iterator will use @lock to retrieve the next item of the list and it
-will then call the @item function before releasing @lock again.
-The @item function usualy makes sure that the item remains alive while
-responsible for freeing/unreffing the item after usage as explained in
-gst_iterator_next().
-When a concurrent update to the list is performed, usually by @owner while
-holding @lock, @master_cookie will be updated. The iterator implementation
-will notice the update of the cookie and will return %GST_ITERATOR_RESYNC to
-the user of the iterator in the next call to gst_iterator_next().
-MT safe.">
- <return-value transfer-ownership="full">
- <type name="Iterator" c:type="GstIterator*"/>
- </return-value>
- <parameters>
- <parameter name="type" transfer-ownership="none">
- <type name="GType" c:type="GType"/>
- </parameter>
- <parameter name="lock" transfer-ownership="none">
- <type name="GLib.Mutex" c:type="GMutex*"/>
- </parameter>
- <parameter name="master_cookie"
- direction="out"
- transfer-ownership="full">
- <type name="uint32" c:type="guint32*"/>
- </parameter>
- <parameter name="list" transfer-ownership="none">
- <type name="GLib.List" c:type="GList**"/>
- </parameter>
- <parameter name="owner" transfer-ownership="none">
- <type name="any" c:type="gpointer"/>
- </parameter>
- <parameter name="item" transfer-ownership="none" scope="call">
- <type name="IteratorItemFunction"
- c:type="GstIteratorItemFunction"/>
- </parameter>
- <parameter name="free" transfer-ownership="none" scope="call">
- <type name="IteratorDisposeFunction"
- c:type="GstIteratorDisposeFunction"/>
- </parameter>
- </parameters>
- </constructor>
- <constructor name="new_single"
- c:identifier="gst_iterator_new_single"
- doc="This #GstIterator is a convenient iterator for the common
-case where a #GstIterator needs to be returned but only
-a single object has to be considered. This happens often
-for the #GstPadIterIntLinkFunction."
- version="0.10.25">
- <return-value transfer-ownership="full">
- <type name="Iterator" c:type="GstIterator*"/>
- </return-value>
- <parameters>
- <parameter name="type" transfer-ownership="none">
- <type name="GType" c:type="GType"/>
- </parameter>
- <parameter name="object" transfer-ownership="none">
- <type name="any" c:type="gpointer"/>
- </parameter>
- <parameter name="copy" transfer-ownership="none" scope="call">
- <type name="CopyFunction" c:type="GstCopyFunction"/>
- </parameter>
- <parameter name="free" transfer-ownership="none" scope="call">
- <type name="GLib.FreeFunc" c:type="GFreeFunc"/>
- </parameter>
- </parameters>
- </constructor>
- <method name="next"
- c:identifier="gst_iterator_next"
- doc="Get the next item from the iterator in @elem.
-Only when this function returns %GST_ITERATOR_OK, @elem will contain a valid
-value. For iterators that return refcounted objects, the returned object
-will have its refcount increased and should therefore be unreffed after
-usage.
-When this function returns %GST_ITERATOR_DONE, no more elements can be
-retrieved from @it.
-A return value of %GST_ITERATOR_RESYNC indicates that the element list was
-concurrently updated. The user of @it should call gst_iterator_resync() to
-get the newly updated list.
-A return value of %GST_ITERATOR_ERROR indicates an unrecoverable fatal error.
-is a refcounted object.
-MT safe.">
- <return-value transfer-ownership="full">
- <type name="IteratorResult" c:type="GstIteratorResult"/>
- </return-value>
- <parameters>
- <parameter name="elem" transfer-ownership="none">
- <type name="any" c:type="gpointer*"/>
- </parameter>
- </parameters>
- </method>
- <method name="resync"
- c:identifier="gst_iterator_resync"
- doc="Resync the iterator. this function is mostly called
-after gst_iterator_next() returned %GST_ITERATOR_RESYNC.
-When an iterator was pushed on @it, it will automatically be popped again
-with this function.
-MT safe.">
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- </method>
- <method name="free"
- c:identifier="gst_iterator_free"
- doc="Free the iterator.
-MT safe.">
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- </method>
- <method name="push"
- c:identifier="gst_iterator_push"
- doc="Pushes @other iterator onto @it. All calls performed on @it are
-forwarded to @other. If @other returns %GST_ITERATOR_DONE, it is
-popped again and calls are handled by @it again.
-This function is mainly used by objects implementing the iterator
-next function to recurse into substructures.
-When gst_iterator_resync() is called on @it, @other will automatically be
-popped.
-MT safe.">
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <parameter name="other" transfer-ownership="none">
- <type name="Iterator" c:type="GstIterator*"/>
- </parameter>
- </parameters>
- </method>
- <method name="filter"
- c:identifier="gst_iterator_filter"
- doc="Create a new iterator from an existing iterator. The new iterator
-will only return those elements that match the given compare function @func.
-in the iterator.
-When this iterator is freed, @it will also be freed.
-MT safe.">
- <return-value transfer-ownership="full">
- <type name="Iterator" c:type="GstIterator*"/>
- </return-value>
- <parameters>
- <parameter name="func"
- transfer-ownership="none"
- scope="call"
- closure="2">
- <type name="GLib.CompareFunc" c:type="GCompareFunc"/>
- </parameter>
- <parameter name="user_data" transfer-ownership="none">
- <type name="any" c:type="gpointer"/>
- </parameter>
- </parameters>
- </method>
- <method name="fold"
- c:identifier="gst_iterator_fold"
- doc="Folds @func over the elements of @iter. That is to say, @func will be called
-as @func (object, @ret, @user_data) for each object in @it. The normal use
-of this procedure is to accumulate the results of operating on the objects in
-before @func is called, and it should be unrefed after use in @func.
-This procedure can be used (and is used internally) to implement the
-gst_iterator_foreach() and gst_iterator_find_custom() operations.
-The fold will proceed as long as @func returns TRUE. When the iterator has no
-more arguments, %GST_ITERATOR_DONE will be returned. If @func returns FALSE,
-the fold will stop, and %GST_ITERATOR_OK will be returned. Errors or resyncs
-will cause fold to return %GST_ITERATOR_ERROR or %GST_ITERATOR_RESYNC as
-appropriate.
-The iterator will not be freed.
-MT safe.">
- <return-value transfer-ownership="full">
- <type name="IteratorResult" c:type="GstIteratorResult"/>
- </return-value>
- <parameters>
- <parameter name="func" transfer-ownership="none" scope="call">
- <type name="IteratorFoldFunction"
- c:type="GstIteratorFoldFunction"/>
- </parameter>
- <parameter name="ret" transfer-ownership="none">
- <type name="GObject.Value" c:type="GValue*"/>
- </parameter>
- <parameter name="user_data" transfer-ownership="none">
- <type name="any" c:type="gpointer"/>
- </parameter>
- </parameters>
- </method>
- <method name="foreach"
- c:identifier="gst_iterator_foreach"
- doc="Iterate over all element of @it and call the given function @func for
-each element. As in gst_iterator_fold(), the refcount of a refcounted
-object will be increased before @func is called, and should be unrefed
-after use.
-freed.
-MT safe.">
- <return-value transfer-ownership="full" doc="The iterator will not be">
- <type name="IteratorResult" c:type="GstIteratorResult"/>
- </return-value>
- <parameters>
- <parameter name="func"
- transfer-ownership="none"
- scope="call"
- closure="2">
- <type name="GLib.Func" c:type="GFunc"/>
- </parameter>
- <parameter name="user_data" transfer-ownership="none">
- <type name="any" c:type="gpointer"/>
- </parameter>
- </parameters>
- </method>
- <method name="find_custom"
- c:identifier="gst_iterator_find_custom"
- doc="Find the first element in @it that matches the compare function @func.
-the refcount of a refcounted object will be increased before @func is
-called, and should be unrefed after use.
-The iterator will not be freed.
-This function will return NULL if an error or resync happened to
-the iterator.
-function or NULL when no element matched.
-MT safe.">
- <return-value transfer-ownership="none">
- <type name="any" c:type="gpointer"/>
- </return-value>
- <parameters>
- <parameter name="func"
- transfer-ownership="none"
- scope="call"
- closure="2">
- <type name="GLib.CompareFunc" c:type="GCompareFunc"/>
- </parameter>
- <parameter name="user_data" transfer-ownership="none">
- <type name="any" c:type="gpointer"/>
- </parameter>
- </parameters>
- </method>
- </record>
- <callback name="IteratorDisposeFunction"
- c:type="GstIteratorDisposeFunction"
- doc="The function that will be called when a #GList iterator is freed. The
-owner of the #GList iterator can then clean up its resources.">
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <parameter name="owner" transfer-ownership="none">
- <type name="any" c:type="gpointer"/>
- </parameter>
- </parameters>
- </callback>
- <callback name="IteratorFoldFunction"
- c:type="GstIteratorFoldFunction"
- doc="A function to be passed to gst_iterator_fold().">
- <return-value transfer-ownership="none">
- <type name="boolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <parameter name="item" transfer-ownership="none">
- <type name="any" c:type="gpointer"/>
- </parameter>
- <parameter name="ret" transfer-ownership="none">
- <type name="GObject.Value" c:type="GValue*"/>
- </parameter>
- <parameter name="user_data" transfer-ownership="none" closure="2">
- <type name="any" c:type="gpointer"/>
- </parameter>
- </parameters>
- </callback>
- <callback name="IteratorFreeFunction"
- c:type="GstIteratorFreeFunction"
- doc="This function will be called when the iterator is freed.
-Implementors of a #GstIterator should implement this
-function and pass it to the constructor of the custom iterator.
-The function will be called with the iterator lock held.">
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <parameter name="it" transfer-ownership="none">
- <type name="Iterator" c:type="GstIterator*"/>
- </parameter>
- </parameters>
- </callback>
- <enumeration name="IteratorItem"
- doc="The result of a #GstIteratorItemFunction."
- c:type="GstIteratorItem">
- <member name="skip" value="0" c:identifier="GST_ITERATOR_ITEM_SKIP"/>
- <member name="pass" value="1" c:identifier="GST_ITERATOR_ITEM_PASS"/>
- <member name="end" value="2" c:identifier="GST_ITERATOR_ITEM_END"/>
- </enumeration>
- <callback name="IteratorItemFunction"
- c:type="GstIteratorItemFunction"
- doc="The function that will be called after the next item of the iterator
-has been retrieved. This function will typically increase the refcount
-of the item or make a copy.
-Implementors of a #GstIterator should implement this
-function and pass it to the constructor of the custom iterator.
-The function will be called with the iterator lock held.">
- <return-value transfer-ownership="full">
- <type name="IteratorItem" c:type="GstIteratorItem"/>
- </return-value>
- <parameters>
- <parameter name="it" transfer-ownership="none">
- <type name="Iterator" c:type="GstIterator*"/>
- </parameter>
- <parameter name="item" transfer-ownership="none">
- <type name="any" c:type="gpointer"/>
- </parameter>
- </parameters>
- </callback>
- <callback name="IteratorNextFunction"
- c:type="GstIteratorNextFunction"
- doc="The function that will be called when the next element of the iterator
-should be retrieved.
-Implementors of a #GstIterator should implement this
-function and pass it to the constructor of the custom iterator.
-The function will be called with the iterator lock held.">
- <return-value transfer-ownership="full">
- <type name="IteratorResult" c:type="GstIteratorResult"/>
- </return-value>
- <parameters>
- <parameter name="it" transfer-ownership="none">
- <type name="Iterator" c:type="GstIterator*"/>
- </parameter>
- <parameter name="result" transfer-ownership="none">
- <type name="any" c:type="gpointer*"/>
- </parameter>
- </parameters>
- </callback>
- <enumeration name="IteratorResult"
- doc="The result of gst_iterator_next()."
- c:type="GstIteratorResult">
- <member name="done" value="0" c:identifier="GST_ITERATOR_DONE"/>
- <member name="ok" value="1" c:identifier="GST_ITERATOR_OK"/>
- <member name="resync" value="2" c:identifier="GST_ITERATOR_RESYNC"/>
- <member name="error" value="3" c:identifier="GST_ITERATOR_ERROR"/>
- </enumeration>
- <callback name="IteratorResyncFunction"
- c:type="GstIteratorResyncFunction"
- doc="This function will be called whenever a concurrent update happened
-to the iterated datastructure. The implementor of the iterator should
-restart the iterator from the beginning and clean up any state it might
-have.
-Implementors of a #GstIterator should implement this
-function and pass it to the constructor of the custom iterator.
-The function will be called with the iterator lock held.">
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <parameter name="it" transfer-ownership="none">
- <type name="Iterator" c:type="GstIterator*"/>
- </parameter>
- </parameters>
- </callback>
- <constant name="LICENSE_UNKNOWN" value="unknown">
- <type name="utf8"/>
- </constant>
- <enumeration name="LibraryError"
- doc="category. Make sure you add a custom message to the error call.
-deciding where to go while developing code.
-Library errors are for errors from the library being used by elements
-(initializing, finalizing, settings, ...)"
- c:type="GstLibraryError"
- glib:error-quark="gst_library_error_quark">
- <member name="failed" value="1" c:identifier="GST_LIBRARY_ERROR_FAILED"/>
- <member name="too_lazy"
- value="2"
- c:identifier="GST_LIBRARY_ERROR_TOO_LAZY"/>
- <member name="init" value="3" c:identifier="GST_LIBRARY_ERROR_INIT"/>
- <member name="shutdown"
- value="4"
- c:identifier="GST_LIBRARY_ERROR_SHUTDOWN"/>
- <member name="settings"
- value="5"
- c:identifier="GST_LIBRARY_ERROR_SETTINGS"/>
- <member name="encode" value="6" c:identifier="GST_LIBRARY_ERROR_ENCODE"/>
- <member name="num_errors"
- value="7"
- c:identifier="GST_LIBRARY_ERROR_NUM_ERRORS"/>
- </enumeration>
- <callback name="LogFunction"
- c:type="GstLogFunction"
- doc="Function prototype for a logging function that can be registered with
-gst_debug_add_log_function().
-Use G_GNUC_NO_INSTRUMENT on that function.">
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <parameter name="category" transfer-ownership="none">
- <type name="DebugCategory" c:type="GstDebugCategory*"/>
- </parameter>
- <parameter name="level" transfer-ownership="none">
- <type name="DebugLevel" c:type="GstDebugLevel"/>
- </parameter>
- <parameter name="file" transfer-ownership="none">
- <type name="utf8" c:type="gchar*"/>
- </parameter>
- <parameter name="function" transfer-ownership="none">
- <type name="utf8" c:type="gchar*"/>
- </parameter>
- <parameter name="line" transfer-ownership="none">
- <type name="int" c:type="gint"/>
- </parameter>
- <parameter name="object" transfer-ownership="none">
- <type name="GObject.Object" c:type="GObject*"/>
- </parameter>
- <parameter name="message" transfer-ownership="none">
- <type name="DebugMessage" c:type="GstDebugMessage*"/>
- </parameter>
- <parameter name="data" transfer-ownership="none">
- <type name="any" c:type="gpointer"/>
- </parameter>
- </parameters>
- </callback>
- <constant name="MESSAGE_TRACE_NAME" value="GstMessage">
- <type name="utf8"/>
- </constant>
- <constant name="MSECOND" value="0">
- <type name="int"/>
- </constant>
- <constant name="M_PI" value="3.14159265359">
- <type name="double"/>
- </constant>
- <record name="Message" c:type="GstMessage" doc="A #GstMessage.">
- <field name="mini_object" writable="1">
- <type name="MiniObject" c:type="GstMiniObject"/>
- </field>
- <field name="lock" writable="1">
- <type name="GLib.Mutex" c:type="GMutex*"/>
- </field>
- <field name="cond" writable="1">
- <type name="GLib.Cond" c:type="GCond*"/>
- </field>
- <field name="type" writable="1">
- <type name="MessageType" c:type="GstMessageType"/>
- </field>
- <field name="timestamp" writable="1">
- <type name="uint64" c:type="guint64"/>
- </field>
- <field name="src" writable="1">
- <type name="Object" c:type="GstObject*"/>
- </field>
- <field name="structure" writable="1">
- <type name="Structure" c:type="GstStructure*"/>
- </field>
- <union name="abidata" c:type="abidata">
- <record name="ABI" c:type="ABI">
- <field name="seqnum" writable="1">
- <type name="uint32" c:type="guint32"/>
- </field>
- </record>
- <field name="_gst_reserved" writable="1">
- <array zero-terminated="0" c:type="gpointer" fixed-size="4">
- <type name="any"/>
- </array>
- </field>
- </union>
- <constructor name="new_eos"
- c:identifier="gst_message_new_eos"
- doc="Create a new eos message. This message is generated and posted in
-the sink elements of a GstBin. The bin will only forward the EOS
-message to the application if all sinks have posted an EOS message.
-MT safe.">
- <return-value transfer-ownership="full">
- <type name="Message" c:type="GstMessage*"/>
- </return-value>
- <parameters>
- <parameter name="src" transfer-ownership="none">
- <type name="Object" c:type="GstObject*"/>
- </parameter>
- </parameters>
- </constructor>
- <constructor name="new_error"
- c:identifier="gst_message_new_error"
- doc="Create a new error message. The message will copy @error and
-occured. The pipeline will probably (partially) stop. The application
-receiving this message should stop the pipeline.
-MT safe.">
- <return-value transfer-ownership="full">
- <type name="Message" c:type="GstMessage*"/>
- </return-value>
- <parameters>
- <parameter name="src" transfer-ownership="none">
- <type name="Object" c:type="GstObject*"/>
- </parameter>
- <parameter name="error" transfer-ownership="none">
- <type name="GLib.Error" c:type="GError*"/>
- </parameter>
- <parameter name="debug" transfer-ownership="none">
- <type name="utf8" c:type="gchar*"/>
- </parameter>
- </parameters>
- </constructor>
- <constructor name="new_warning"
- c:identifier="gst_message_new_warning"
- doc="Create a new warning message. The message will make copies of @error and
-MT safe.">
- <return-value transfer-ownership="full">
- <type name="Message" c:type="GstMessage*"/>
- </return-value>
- <parameters>
- <parameter name="src" transfer-ownership="none">
- <type name="Object" c:type="GstObject*"/>
- </parameter>
- <parameter name="error" transfer-ownership="none">
- <type name="GLib.Error" c:type="GError*"/>
- </parameter>
- <parameter name="debug" transfer-ownership="none">
- <type name="utf8" c:type="gchar*"/>
- </parameter>
- </parameters>
- </constructor>
- <constructor name="new_info"
- c:identifier="gst_message_new_info"
- doc="Create a new info message. The message will make copies of @error and
-MT safe."
- version="0.10.12">
- <return-value transfer-ownership="full">
- <type name="Message" c:type="GstMessage*"/>
- </return-value>
- <parameters>
- <parameter name="src" transfer-ownership="none">
- <type name="Object" c:type="GstObject*"/>
- </parameter>
- <parameter name="error" transfer-ownership="none">
- <type name="GLib.Error" c:type="GError*"/>
- </parameter>
- <parameter name="debug" transfer-ownership="none">
- <type name="utf8" c:type="gchar*"/>
- </parameter>
- </parameters>
- </constructor>
- <constructor name="new_tag"
- c:identifier="gst_message_new_tag"
- doc="Create a new tag message. The message will take ownership of the tag list.
-The message is posted by elements that discovered a new taglist.
-MT safe.">
- <return-value transfer-ownership="full">
- <type name="Message" c:type="GstMessage*"/>
- </return-value>
- <parameters>
- <parameter name="src" transfer-ownership="none">
- <type name="Object" c:type="GstObject*"/>
- </parameter>
- <parameter name="tag_list" transfer-ownership="none">
- <type name="TagList" c:type="GstTagList*"/>
- </parameter>
- </parameters>
- </constructor>
- <constructor name="new_tag_full"
- c:identifier="gst_message_new_tag_full"
- doc="Create a new tag message. The message will take ownership of the tag list.
-The message is posted by elements that discovered a new taglist.
-MT safe."
- version="0.10.24">
- <return-value transfer-ownership="full">
- <type name="Message" c:type="GstMessage*"/>
- </return-value>
- <parameters>
- <parameter name="src" transfer-ownership="none">
- <type name="Object" c:type="GstObject*"/>
- </parameter>
- <parameter name="pad" transfer-ownership="none">
- <type name="Pad" c:type="GstPad*"/>
- </parameter>
- <parameter name="tag_list" transfer-ownership="none">
- <type name="TagList" c:type="GstTagList*"/>
- </parameter>
- </parameters>
- </constructor>
- <constructor name="new_buffering"
- c:identifier="gst_message_new_buffering"
- doc="Create a new buffering message. This message can be posted by an element that
-needs to buffer data before it can continue processing. @percent should be a
-value between 0 and 100. A value of 100 means that the buffering completed.
-When @percent is < 100 the application should PAUSE a PLAYING pipeline. When
-The application must be prepared to receive BUFFERING messages in the
-PREROLLING state and may only set the pipeline to PLAYING after receiving a
-message with @percent set to 100, which can happen after the pipeline
-completed prerolling.
-MT safe."
- version="0.10.11">
- <return-value transfer-ownership="full">
- <type name="Message" c:type="GstMessage*"/>
- </return-value>
- <parameters>
- <parameter name="src" transfer-ownership="none">
- <type name="Object" c:type="GstObject*"/>
- </parameter>
- <parameter name="percent" transfer-ownership="none">
- <type name="int" c:type="gint"/>
- </parameter>
- </parameters>
- </constructor>
- <constructor name="new_state_changed"
- c:identifier="gst_message_new_state_changed"
- doc="Create a state change message. This message is posted whenever an element
-changed its state.
-MT safe.">
- <return-value transfer-ownership="full">
- <type name="Message" c:type="GstMessage*"/>
- </return-value>
- <parameters>
- <parameter name="src" transfer-ownership="none">
- <type name="Object" c:type="GstObject*"/>
- </parameter>
- <parameter name="oldstate" transfer-ownership="none">
- <type name="State" c:type="GstState"/>
- </parameter>
- <parameter name="newstate" transfer-ownership="none" doc="state">
- <type name="State" c:type="GstState"/>
- </parameter>
- <parameter name="pending" transfer-ownership="none" doc="state">
- <type name="State" c:type="GstState"/>
- </parameter>
- </parameters>
- </constructor>
- <constructor name="new_state_dirty"
- c:identifier="gst_message_new_state_dirty"
- doc="Create a state dirty message. This message is posted whenever an element
-changed its state asynchronously and is used internally to update the
-states of container objects.
-MT safe.">
- <return-value transfer-ownership="full">
- <type name="Message" c:type="GstMessage*"/>
- </return-value>
- <parameters>
- <parameter name="src" transfer-ownership="none">
- <type name="Object" c:type="GstObject*"/>
- </parameter>
- </parameters>
- </constructor>
- <constructor name="new_step_done"
- c:identifier="gst_message_new_step_done"
- doc="This message is posted by elements when they complete a part, when @intermediate set
-to TRUE, or a complete step operation.
-MT safe."
- version="0.10.24">
- <return-value transfer-ownership="full">
- <type name="Message" c:type="GstMessage*"/>
- </return-value>
- <parameters>
- <parameter name="src" transfer-ownership="none">
- <type name="Object" c:type="GstObject*"/>
- </parameter>
- <parameter name="format" transfer-ownership="none">
- <type name="Format" c:type="GstFormat"/>
- </parameter>
- <parameter name="amount" transfer-ownership="none">
- <type name="uint64" c:type="guint64"/>
- </parameter>
- <parameter name="rate" transfer-ownership="none">
- <type name="double" c:type="gdouble"/>
- </parameter>
- <parameter name="flush" transfer-ownership="none">
- <type name="boolean" c:type="gboolean"/>
- </parameter>
- <parameter name="intermediate" transfer-ownership="none">
- <type name="boolean" c:type="gboolean"/>
- </parameter>
- <parameter name="duration" transfer-ownership="none">
- <type name="uint64" c:type="guint64"/>
- </parameter>
- <parameter name="eos" transfer-ownership="none">
- <type name="boolean" c:type="gboolean"/>
- </parameter>
- </parameters>
- </constructor>
- <constructor name="new_clock_provide"
- c:identifier="gst_message_new_clock_provide"
- doc="Create a clock provide message. This message is posted whenever an
-element is ready to provide a clock or lost its ability to provide
-a clock (maybe because it paused or became EOS).
-This message is mainly used internally to manage the clock
-selection.
-MT safe.">
- <return-value transfer-ownership="full">
- <type name="Message" c:type="GstMessage*"/>
- </return-value>
- <parameters>
- <parameter name="src" transfer-ownership="none">
- <type name="Object" c:type="GstObject*"/>
- </parameter>
- <parameter name="clock" transfer-ownership="none">
- <type name="Clock" c:type="GstClock*"/>
- </parameter>
- <parameter name="ready" transfer-ownership="none">
- <type name="boolean" c:type="gboolean"/>
- </parameter>
- </parameters>
- </constructor>
- <constructor name="new_clock_lost"
- c:identifier="gst_message_new_clock_lost"
- doc="Create a clock lost message. This message is posted whenever the
-clock is not valid anymore.
-If this message is posted by the pipeline, the pipeline will
-select a new clock again when it goes to PLAYING. It might therefore
-be needed to set the pipeline to PAUSED and PLAYING again.
-MT safe.">
- <return-value transfer-ownership="full">
- <type name="Message" c:type="GstMessage*"/>
- </return-value>
- <parameters>
- <parameter name="src" transfer-ownership="none">
- <type name="Object" c:type="GstObject*"/>
- </parameter>
- <parameter name="clock" transfer-ownership="none">
- <type name="Clock" c:type="GstClock*"/>
- </parameter>
- </parameters>
- </constructor>
- <constructor name="new_new_clock"
- c:identifier="gst_message_new_new_clock"
- doc="Create a new clock message. This message is posted whenever the
-pipeline selectes a new clock for the pipeline.
-MT safe.">
- <return-value transfer-ownership="full">
- <type name="Message" c:type="GstMessage*"/>
- </return-value>
- <parameters>
- <parameter name="src" transfer-ownership="none">
- <type name="Object" c:type="GstObject*"/>
- </parameter>
- <parameter name="clock" transfer-ownership="none">
- <type name="Clock" c:type="GstClock*"/>
- </parameter>
- </parameters>
- </constructor>
- <constructor name="new_application"
- c:identifier="gst_message_new_application"
- doc="the structure.
-Create a new application-typed message. GStreamer will never create these
-messages; they are a gift from us to you. Enjoy.
-MT safe.">
- <return-value transfer-ownership="full">
- <type name="Message" c:type="GstMessage*"/>
- </return-value>
- <parameters>
- <parameter name="src" transfer-ownership="none">
- <type name="Object" c:type="GstObject*"/>
- </parameter>
- <parameter name="structure" transfer-ownership="none">
- <type name="Structure" c:type="GstStructure*"/>
- </parameter>
- </parameters>
- </constructor>
- <constructor name="new_element"
- c:identifier="gst_message_new_element"
- doc="the structure.
-Create a new element-specific message. This is meant as a generic way of
-allowing one-way communication from an element to an application, for example
-"the firewire cable was unplugged". The format of the message should be
-documented in the element's documentation. The structure field can be NULL.
-MT safe.">
- <return-value transfer-ownership="full">
- <type name="Message" c:type="GstMessage*"/>
- </return-value>
- <parameters>
- <parameter name="src" transfer-ownership="none">
- <type name="Object" c:type="GstObject*"/>
- </parameter>
- <parameter name="structure" transfer-ownership="none">
- <type name="Structure" c:type="GstStructure*"/>
- </parameter>
- </parameters>
- </constructor>
- <constructor name="new_segment_start"
- c:identifier="gst_message_new_segment_start"
- doc="Create a new segment message. This message is posted by elements that
-start playback of a segment as a result of a segment seek. This message
-is not received by the application but is used for maintenance reasons in
-container elements.
-MT safe.">
- <return-value transfer-ownership="full">
- <type name="Message" c:type="GstMessage*"/>
- </return-value>
- <parameters>
- <parameter name="src" transfer-ownership="none">
- <type name="Object" c:type="GstObject*"/>
- </parameter>
- <parameter name="format" transfer-ownership="none">
- <type name="Format" c:type="GstFormat"/>
- </parameter>
- <parameter name="position" transfer-ownership="none">
- <type name="int64" c:type="gint64"/>
- </parameter>
- </parameters>
- </constructor>
- <constructor name="new_segment_done"
- c:identifier="gst_message_new_segment_done"
- doc="Create a new segment done message. This message is posted by elements that
-finish playback of a segment as a result of a segment seek. This message
-is received by the application after all elements that posted a segment_start
-have posted the segment_done.
-MT safe.">
- <return-value transfer-ownership="full">
- <type name="Message" c:type="GstMessage*"/>
- </return-value>
- <parameters>
- <parameter name="src" transfer-ownership="none">
- <type name="Object" c:type="GstObject*"/>
- </parameter>
- <parameter name="format" transfer-ownership="none">
- <type name="Format" c:type="GstFormat"/>
- </parameter>
- <parameter name="position" transfer-ownership="none">
- <type name="int64" c:type="gint64"/>
- </parameter>
- </parameters>
- </constructor>
- <constructor name="new_duration"
- c:identifier="gst_message_new_duration"
- doc="Create a new duration message. This message is posted by elements that
-know the duration of a stream in a specific format. This message
-is received by bins and is used to calculate the total duration of a
-pipeline. Elements may post a duration message with a duration of
-GST_CLOCK_TIME_NONE to indicate that the duration has changed and the
-cached duration should be discarded. The new duration can then be
-retrieved via a query.
-MT safe.">
- <return-value transfer-ownership="full">
- <type name="Message" c:type="GstMessage*"/>
- </return-value>
- <parameters>
- <parameter name="src" transfer-ownership="none">
- <type name="Object" c:type="GstObject*"/>
- </parameter>
- <parameter name="format" transfer-ownership="none">
- <type name="Format" c:type="GstFormat"/>
- </parameter>
- <parameter name="duration" transfer-ownership="none">
- <type name="int64" c:type="gint64"/>
- </parameter>
- </parameters>
- </constructor>
- <constructor name="new_latency"
- c:identifier="gst_message_new_latency"
- doc="This message can be posted by elements when their latency requirements have
-changed.
-MT safe."
- version="0.10.12">
- <return-value transfer-ownership="full">
- <type name="Message" c:type="GstMessage*"/>
- </return-value>
- <parameters>
- <parameter name="src" transfer-ownership="none">
- <type name="Object" c:type="GstObject*"/>
- </parameter>
- </parameters>
- </constructor>
- <constructor name="new_async_start"
- c:identifier="gst_message_new_async_start"
- doc="This message is posted by elements when they start an ASYNC state change.
-PLAYING.
-MT safe."
- version="0.10.13">
- <return-value transfer-ownership="full">
- <type name="Message" c:type="GstMessage*"/>
- </return-value>
- <parameters>
- <parameter name="src" transfer-ownership="none">
- <type name="Object" c:type="GstObject*"/>
- </parameter>
- <parameter name="new_base_time" transfer-ownership="none">
- <type name="boolean" c:type="gboolean"/>
- </parameter>
- </parameters>
- </constructor>
- <constructor name="new_async_done"
- c:identifier="gst_message_new_async_done"
- doc="The message is posted when elements completed an ASYNC state change.
-MT safe."
- version="0.10.13">
- <return-value transfer-ownership="full">
- <type name="Message" c:type="GstMessage*"/>
- </return-value>
- <parameters>
- <parameter name="src" transfer-ownership="none">
- <type name="Object" c:type="GstObject*"/>
- </parameter>
- </parameters>
- </constructor>
- <constructor name="new_structure_change"
- c:identifier="gst_message_new_structure_change"
- doc="Create a new structure change message. This message is posted when the
-structure of a pipeline is in the process of being changed, for example
-when pads are linked or unlinked.
-MT safe."
- version="0.10.22.">
- <return-value transfer-ownership="full">
- <type name="Message" c:type="GstMessage*"/>
- </return-value>
- <parameters>
- <parameter name="src" transfer-ownership="none">
- <type name="Object" c:type="GstObject*"/>
- </parameter>
- <parameter name="type" transfer-ownership="none">
- <type name="StructureChangeType" c:type="GstStructureChangeType"/>
- </parameter>
- <parameter name="owner" transfer-ownership="none">
- <type name="Element" c:type="GstElement*"/>
- </parameter>
- <parameter name="busy" transfer-ownership="none">
- <type name="boolean" c:type="gboolean"/>
- </parameter>
- </parameters>
- </constructor>
- <constructor name="new_stream_status"
- c:identifier="gst_message_new_stream_status"
- doc="Create a new stream status message. This message is posted when a streaming
-thread is created/destroyed or when the state changed.
-MT safe."
- version="0.10.24.">
- <return-value transfer-ownership="full">
- <type name="Message" c:type="GstMessage*"/>
- </return-value>
- <parameters>
- <parameter name="src" transfer-ownership="none">
- <type name="Object" c:type="GstObject*"/>
- </parameter>
- <parameter name="type" transfer-ownership="none">
- <type name="StreamStatusType" c:type="GstStreamStatusType"/>
- </parameter>
- <parameter name="owner" transfer-ownership="none">
- <type name="Element" c:type="GstElement*"/>
- </parameter>
- </parameters>
- </constructor>
- <constructor name="new_request_state"
- c:identifier="gst_message_new_request_state"
- doc="This message can be posted by elements when they want to have their state
-changed. A typical use case would be an audio server that wants to pause the
-pipeline because a higher priority stream is being played.
-MT safe."
- version="0.10.23">
- <return-value transfer-ownership="full">
- <type name="Message" c:type="GstMessage*"/>
- </return-value>
- <parameters>
- <parameter name="src" transfer-ownership="none">
- <type name="Object" c:type="GstObject*"/>
- </parameter>
- <parameter name="state" transfer-ownership="none">
- <type name="State" c:type="GstState"/>
- </parameter>
- </parameters>
- </constructor>
- <constructor name="new_step_start"
- c:identifier="gst_message_new_step_start"
- doc="This message is posted by elements when they accept or activate a new step
-event for @amount in @format.
-queued it for execution in the streaming threads.
-is now ready to start executing the step in the streaming thread. After this
-message is emited, the application can queue a new step operation in the
-element.
-MT safe."
- version="0.10.24">
- <return-value transfer-ownership="full">
- <type name="Message" c:type="GstMessage*"/>
- </return-value>
- <parameters>
- <parameter name="src" transfer-ownership="none">
- <type name="Object" c:type="GstObject*"/>
- </parameter>
- <parameter name="active" transfer-ownership="none">
- <type name="boolean" c:type="gboolean"/>
- </parameter>
- <parameter name="format" transfer-ownership="none">
- <type name="Format" c:type="GstFormat"/>
- </parameter>
- <parameter name="amount" transfer-ownership="none">
- <type name="uint64" c:type="guint64"/>
- </parameter>
- <parameter name="rate" transfer-ownership="none">
- <type name="double" c:type="gdouble"/>
- </parameter>
- <parameter name="flush" transfer-ownership="none">
- <type name="boolean" c:type="gboolean"/>
- </parameter>
- <parameter name="intermediate" transfer-ownership="none">
- <type name="boolean" c:type="gboolean"/>
- </parameter>
- </parameters>
- </constructor>
- <constructor name="new_qos"
- c:identifier="gst_message_new_qos"
- doc="A QOS message is posted on the bus whenever an element decides to drop a
-buffer because of QoS reasons or whenever it changes its processing strategy
-because of QoS reasons (quality adjustments such as processing at lower
-accuracy).
-This message can be posted by an element that performs synchronisation against the
-clock (live) or it could be dropped by an element that performs QoS because of QOS
-events received from a downstream element (!live).
-respective running-time, stream-time, timestamp and duration of the (dropped)
-buffer that generated the QoS event. Values can be left to
-GST_CLOCK_TIME_NONE when unknown.
-MT safe."
- version="0.10.29">
- <return-value transfer-ownership="full">
- <type name="Message" c:type="GstMessage*"/>
- </return-value>
- <parameters>
- <parameter name="src" transfer-ownership="none">
- <type name="Object" c:type="GstObject*"/>
- </parameter>
- <parameter name="live" transfer-ownership="none">
- <type name="boolean" c:type="gboolean"/>
- </parameter>
- <parameter name="running_time" transfer-ownership="none">
- <type name="uint64" c:type="guint64"/>
- </parameter>
- <parameter name="stream_time" transfer-ownership="none">
- <type name="uint64" c:type="guint64"/>
- </parameter>
- <parameter name="timestamp" transfer-ownership="none">
- <type name="uint64" c:type="guint64"/>
- </parameter>
- <parameter name="duration" transfer-ownership="none">
- <type name="uint64" c:type="guint64"/>
- </parameter>
- </parameters>
- </constructor>
- <constructor name="new_custom"
- c:identifier="gst_message_new_custom"
- doc="the structure.
-Create a new custom-typed message. This can be used for anything not
-handled by other message-specific functions to pass a message to the
-app. The structure field can be NULL.
-MT safe.">
- <return-value transfer-ownership="full">
- <type name="Message" c:type="GstMessage*"/>
- </return-value>
- <parameters>
- <parameter name="type" transfer-ownership="none">
- <type name="MessageType" c:type="GstMessageType"/>
- </parameter>
- <parameter name="src" transfer-ownership="none">
- <type name="Object" c:type="GstObject*"/>
- </parameter>
- <parameter name="structure" transfer-ownership="none">
- <type name="Structure" c:type="GstStructure*"/>
- </parameter>
- </parameters>
- </constructor>
- <method name="get_seqnum"
- c:identifier="gst_message_get_seqnum"
- doc="Retrieve the sequence number of a message.
-Messages have ever-incrementing sequence numbers, which may also be set
-explicitly via gst_message_set_seqnum(). Sequence numbers are typically used
-to indicate that a message corresponds to some other set of messages or
-events, for example a SEGMENT_DONE message corresponding to a SEEK event. It
-is considered good practice to make this correspondence when possible, though
-it is not required.
-Note that events and messages share the same sequence number incrementor;
-two events or messages will never not have the same sequence number unless
-that correspondence was made explicitly.
-MT safe."
- version="0.10.22">
- <return-value transfer-ownership="none">
- <type name="uint32" c:type="guint32"/>
- </return-value>
- </method>
- <method name="set_seqnum"
- c:identifier="gst_message_set_seqnum"
- doc="Set the sequence number of a message.
-This function might be called by the creator of a message to indicate that
-the message relates to other messages or events. See gst_message_get_seqnum()
-for more information.
-MT safe."
- version="0.10.22">
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <parameter name="seqnum" transfer-ownership="none">
- <type name="uint32" c:type="guint32"/>
- </parameter>
- </parameters>
- </method>
- <method name="parse_error"
- c:identifier="gst_message_parse_error"
- doc="Extracts the GError and debug string from the GstMessage. The values returned
-in the output arguments are copies; the caller must free them when done.
-Typical usage of this function might be:
-|[
-...
-switch (GST_MESSAGE_TYPE (msg)) {
-GError *err = NULL;
-gchar *dbg_info = NULL;
-gst_message_parse_error (msg, &amp;err, &amp;dbg_info);
-GST_OBJECT_NAME (msg->src), err->message);
-g_error_free (err);
-g_free (dbg_info);
-break;
-}
-...
-}
-...
-]|
-MT safe.">
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <parameter name="gerror" transfer-ownership="none">
- <type name="GLib.Error" c:type="GError**"/>
- </parameter>
- <parameter name="debug" transfer-ownership="none">
- <array c:type="gchar**">
- <type name="utf8"/>
- </array>
- </parameter>
- </parameters>
- </method>
- <method name="parse_warning"
- c:identifier="gst_message_parse_warning"
- doc="Extracts the GError and debug string from the GstMessage. The values returned
-in the output arguments are copies; the caller must free them when done.
-MT safe.">
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <parameter name="gerror" transfer-ownership="none">
- <type name="GLib.Error" c:type="GError**"/>
- </parameter>
- <parameter name="debug" transfer-ownership="none">
- <array c:type="gchar**">
- <type name="utf8"/>
- </array>
- </parameter>
- </parameters>
- </method>
- <method name="parse_info"
- c:identifier="gst_message_parse_info"
- doc="Extracts the GError and debug string from the GstMessage. The values returned
-in the output arguments are copies; the caller must free them when done.
-MT safe."
- version="0.10.12">
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <parameter name="gerror" transfer-ownership="none">
- <type name="GLib.Error" c:type="GError**"/>
- </parameter>
- <parameter name="debug" transfer-ownership="none">
- <array c:type="gchar**">
- <type name="utf8"/>
- </array>
- </parameter>
- </parameters>
- </method>
- <method name="parse_tag"
- c:identifier="gst_message_parse_tag"
- doc="Extracts the tag list from the GstMessage. The tag list returned in the
-output argument is a copy; the caller must free it when done.
-Typical usage of this function might be:
-|[
-...
-switch (GST_MESSAGE_TYPE (msg)) {
-GstTagList *tags = NULL;
-gst_message_parse_tag (msg, &amp;tags);
-g_print ("Got tags from element %s\n", GST_OBJECT_NAME (msg->src));
-handle_tags (tags);
-gst_tag_list_free (tags);
-break;
-}
-...
-}
-...
-]|
-MT safe.">
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <parameter name="tag_list" transfer-ownership="none">
- <type name="TagList" c:type="GstTagList**"/>
- </parameter>
- </parameters>
- </method>
- <method name="parse_tag_full"
- c:identifier="gst_message_parse_tag_full"
- doc="Extracts the tag list from the GstMessage. The tag list returned in the
-output argument is a copy; the caller must free it when done.
-MT safe."
- version="0.10.24">
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <parameter name="pad" transfer-ownership="none">
- <type name="Pad" c:type="GstPad**"/>
- </parameter>
- <parameter name="tag_list" transfer-ownership="none">
- <type name="TagList" c:type="GstTagList**"/>
- </parameter>
- </parameters>
- </method>
- <method name="parse_buffering"
- c:identifier="gst_message_parse_buffering"
- doc="Extracts the buffering percent from the GstMessage. see also
-gst_message_new_buffering().
-MT safe."
- version="0.10.11">
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <parameter name="percent" direction="out" transfer-ownership="full">
- <type name="int" c:type="gint*"/>
- </parameter>
- </parameters>
- </method>
- <method name="set_buffering_stats"
- c:identifier="gst_message_set_buffering_stats"
- doc="Configures the buffering stats values in @message."
- version="0.10.20">
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <parameter name="mode" transfer-ownership="none">
- <type name="BufferingMode" c:type="GstBufferingMode"/>
- </parameter>
- <parameter name="avg_in" transfer-ownership="none">
- <type name="int" c:type="gint"/>
- </parameter>
- <parameter name="avg_out" transfer-ownership="none">
- <type name="int" c:type="gint"/>
- </parameter>
- <parameter name="buffering_left" transfer-ownership="none">
- <type name="int64" c:type="gint64"/>
- </parameter>
- </parameters>
- </method>
- <method name="parse_buffering_stats"
- c:identifier="gst_message_parse_buffering_stats"
- doc="Extracts the buffering stats values from @message."
- version="0.10.20">
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <parameter name="mode" transfer-ownership="none">
- <type name="BufferingMode" c:type="GstBufferingMode*"/>
- </parameter>
- <parameter name="avg_in" direction="out" transfer-ownership="full">
- <type name="int" c:type="gint*"/>
- </parameter>
- <parameter name="avg_out" direction="out" transfer-ownership="full">
- <type name="int" c:type="gint*"/>
- </parameter>
- <parameter name="buffering_left"
- direction="out"
- transfer-ownership="full">
- <type name="int64" c:type="gint64*"/>
- </parameter>
- </parameters>
- </method>
- <method name="parse_state_changed"
- c:identifier="gst_message_parse_state_changed"
- doc="Extracts the old and new states from the GstMessage.
-Typical usage of this function might be:
-|[
-...
-switch (GST_MESSAGE_TYPE (msg)) {
-GstState old_state, new_state;
-gst_message_parse_state_changed (msg, &amp;old_state, &amp;new_state, NULL);
-g_print ("Element %s changed state from %s to %s.\n",
-GST_OBJECT_NAME (msg->src),
-gst_element_state_get_name (old_state),
-gst_element_state_get_name (new_state));
-break;
-}
-...
-}
-...
-]|
-MT safe.">
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <parameter name="oldstate" transfer-ownership="none">
- <type name="State" c:type="GstState*"/>
- </parameter>
- <parameter name="newstate"
- transfer-ownership="none"
- doc="state, or NULL">
- <type name="State" c:type="GstState*"/>
- </parameter>
- <parameter name="pending"
- transfer-ownership="none"
- doc="state, or NULL">
- <type name="State" c:type="GstState*"/>
- </parameter>
- </parameters>
- </method>
- <method name="parse_step_done"
- c:identifier="gst_message_parse_step_done"
- doc="Extract the values the step_done message.
-MT safe."
- version="0.10.24">
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <parameter name="format" transfer-ownership="none">
- <type name="Format" c:type="GstFormat*"/>
- </parameter>
- <parameter name="amount" direction="out" transfer-ownership="full">
- <type name="uint64" c:type="guint64*"/>
- </parameter>
- <parameter name="rate" direction="out" transfer-ownership="full">
- <type name="double" c:type="gdouble*"/>
- </parameter>
- <parameter name="flush" direction="out" transfer-ownership="full">
- <type name="boolean" c:type="gboolean*"/>
- </parameter>
- <parameter name="intermediate"
- direction="out"
- transfer-ownership="full">
- <type name="boolean" c:type="gboolean*"/>
- </parameter>
- <parameter name="duration" direction="out" transfer-ownership="full">
- <type name="uint64" c:type="guint64*"/>
- </parameter>
- <parameter name="eos" direction="out" transfer-ownership="full">
- <type name="boolean" c:type="gboolean*"/>
- </parameter>
- </parameters>
- </method>
- <method name="parse_clock_provide"
- c:identifier="gst_message_parse_clock_provide"
- doc="Extracts the clock and ready flag from the GstMessage.
-The clock object returned remains valid until the message is freed.
-MT safe.">
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <parameter name="clock" transfer-ownership="none">
- <type name="Clock" c:type="GstClock**"/>
- </parameter>
- <parameter name="ready" direction="out" transfer-ownership="full">
- <type name="boolean" c:type="gboolean*"/>
- </parameter>
- </parameters>
- </method>
- <method name="parse_clock_lost"
- c:identifier="gst_message_parse_clock_lost"
- doc="Extracts the lost clock from the GstMessage.
-The clock object returned remains valid until the message is freed.
-MT safe.">
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <parameter name="clock" transfer-ownership="none">
- <type name="Clock" c:type="GstClock**"/>
- </parameter>
- </parameters>
- </method>
- <method name="parse_new_clock"
- c:identifier="gst_message_parse_new_clock"
- doc="Extracts the new clock from the GstMessage.
-The clock object returned remains valid until the message is freed.
-MT safe.">
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <parameter name="clock" transfer-ownership="none">
- <type name="Clock" c:type="GstClock**"/>
- </parameter>
- </parameters>
- </method>
- <method name="parse_segment_start"
- c:identifier="gst_message_parse_segment_start"
- doc="Extracts the position and format from the segment start message.
-MT safe.">
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <parameter name="format" transfer-ownership="none">
- <type name="Format" c:type="GstFormat*"/>
- </parameter>
- <parameter name="position" direction="out" transfer-ownership="full">
- <type name="int64" c:type="gint64*"/>
- </parameter>
- </parameters>
- </method>
- <method name="parse_segment_done"
- c:identifier="gst_message_parse_segment_done"
- doc="Extracts the position and format from the segment start message.
-MT safe.">
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <parameter name="format" transfer-ownership="none">
- <type name="Format" c:type="GstFormat*"/>
- </parameter>
- <parameter name="position" direction="out" transfer-ownership="full">
- <type name="int64" c:type="gint64*"/>
- </parameter>
- </parameters>
- </method>
- <method name="parse_duration"
- c:identifier="gst_message_parse_duration"
- doc="Extracts the duration and format from the duration message. The duration
-might be GST_CLOCK_TIME_NONE, which indicates that the duration has
-changed. Applications should always use a query to retrieve the duration
-of a pipeline.
-MT safe.">
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <parameter name="format" transfer-ownership="none">
- <type name="Format" c:type="GstFormat*"/>
- </parameter>
- <parameter name="duration" direction="out" transfer-ownership="full">
- <type name="int64" c:type="gint64*"/>
- </parameter>
- </parameters>
- </method>
- <method name="parse_async_start"
- c:identifier="gst_message_parse_async_start"
- doc="Extract the new_base_time from the async_start message.
-MT safe."
- version="0.10.13">
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <parameter name="new_base_time"
- direction="out"
- transfer-ownership="full">
- <type name="boolean" c:type="gboolean*"/>
- </parameter>
- </parameters>
- </method>
- <method name="parse_structure_change"
- c:identifier="gst_message_parse_structure_change"
- doc="completed
-Extracts the change type and completion status from the GstMessage.
-MT safe."
- version="0.10.22">
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <parameter name="type" transfer-ownership="none">
- <type name="StructureChangeType" c:type="GstStructureChangeType*"/>
- </parameter>
- <parameter name="owner" transfer-ownership="none">
- <type name="Element" c:type="GstElement**"/>
- </parameter>
- <parameter name="busy" direction="out" transfer-ownership="full">
- <type name="boolean" c:type="gboolean*"/>
- </parameter>
- </parameters>
- </method>
- <method name="parse_stream_status"
- c:identifier="gst_message_parse_stream_status"
- doc="Extracts the stream status type and owner the GstMessage. The returned
-owner remains valid for as long as the reference to @message is valid and
-should thus not be unreffed.
-MT safe."
- version="0.10.24.">
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <parameter name="type" transfer-ownership="none">
- <type name="StreamStatusType" c:type="GstStreamStatusType*"/>
- </parameter>
- <parameter name="owner" transfer-ownership="none">
- <type name="Element" c:type="GstElement**"/>
- </parameter>
- </parameters>
- </method>
- <method name="set_stream_status_object"
- c:identifier="gst_message_set_stream_status_object"
- doc="Configures the object handling the streaming thread. This is usually a
-GstTask object but other objects might be added in the future."
- version="0.10.24">
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <parameter name="object" transfer-ownership="none">
- <type name="GObject.Value" c:type="GValue*"/>
- </parameter>
- </parameters>
- </method>
- <method name="get_stream_status_object"
- c:identifier="gst_message_get_stream_status_object"
- doc="Extracts the object managing the streaming thread from @message.
-This object is usually of type GstTask but other types can be added in the
-future. The object remains valid as long as @message is valid."
- version="0.10.24">
- <return-value transfer-ownership="none">
- <type name="GObject.Value" c:type="GValue*"/>
- </return-value>
- </method>
- <method name="parse_request_state"
- c:identifier="gst_message_parse_request_state"
- doc="Extract the requested state from the request_state message.
-MT safe."
- version="0.10.23">
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <parameter name="state" transfer-ownership="none">
- <type name="State" c:type="GstState*"/>
- </parameter>
- </parameters>
- </method>
- <method name="parse_step_start"
- c:identifier="gst_message_parse_step_start"
- doc="Extract the values from step_start message.
-MT safe."
- version="0.10.24">
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <parameter name="active" direction="out" transfer-ownership="full">
- <type name="boolean" c:type="gboolean*"/>
- </parameter>
- <parameter name="format" transfer-ownership="none">
- <type name="Format" c:type="GstFormat*"/>
- </parameter>
- <parameter name="amount" direction="out" transfer-ownership="full">
- <type name="uint64" c:type="guint64*"/>
- </parameter>
- <parameter name="rate" direction="out" transfer-ownership="full">
- <type name="double" c:type="gdouble*"/>
- </parameter>
- <parameter name="flush" direction="out" transfer-ownership="full">
- <type name="boolean" c:type="gboolean*"/>
- </parameter>
- <parameter name="intermediate"
- direction="out"
- transfer-ownership="full">
- <type name="boolean" c:type="gboolean*"/>
- </parameter>
- </parameters>
- </method>
- <method name="set_qos_values"
- c:identifier="gst_message_set_qos_values"
- doc="to get optimal quality.
-quality level of the element. The default maximum quality is 1000000.
-Set the QoS values that have been calculated/analysed from the QoS data
-MT safe."
- version="0.10.29">
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <parameter name="jitter" transfer-ownership="none">
- <type name="int64" c:type="gint64"/>
- </parameter>
- <parameter name="proportion" transfer-ownership="none">
- <type name="double" c:type="gdouble"/>
- </parameter>
- <parameter name="quality" transfer-ownership="none">
- <type name="int" c:type="gint"/>
- </parameter>
- </parameters>
- </method>
- <method name="set_qos_stats"
- c:identifier="gst_message_set_qos_stats"
- doc="filters will use GST_FORMAT_BUFFERS (frames). Audio sinks and audio filters
-will likely use GST_FORMAT_DEFAULT (samples).
-change to READY or a flushing operation.
-or a flushing operation.
-Set the QoS stats representing the history of the current continuous pipeline
-playback period.
-When @format is @GST_FORMAT_UNDEFINED both @dropped and @processed are
-invalid. Values of -1 for either @processed or @dropped mean unknown values.
-MT safe."
- version="0.10.29">
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <parameter name="format" transfer-ownership="none">
- <type name="Format" c:type="GstFormat"/>
- </parameter>
- <parameter name="processed" transfer-ownership="none">
- <type name="uint64" c:type="guint64"/>
- </parameter>
- <parameter name="dropped" transfer-ownership="none">
- <type name="uint64" c:type="guint64"/>
- </parameter>
- </parameters>
- </method>
- <method name="parse_qos"
- c:identifier="gst_message_parse_qos"
- doc="Extract the timestamps and live status from the QoS message.
-The returned values give the running_time, stream_time, timestamp and
-duration of the dropped buffer. Values of GST_CLOCK_TIME_NONE mean unknown
-values.
-MT safe."
- version="0.10.29">
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <parameter name="live" direction="out" transfer-ownership="full">
- <type name="boolean" c:type="gboolean*"/>
- </parameter>
- <parameter name="running_time"
- direction="out"
- transfer-ownership="full">
- <type name="uint64" c:type="guint64*"/>
- </parameter>
- <parameter name="stream_time"
- direction="out"
- transfer-ownership="full">
- <type name="uint64" c:type="guint64*"/>
- </parameter>
- <parameter name="timestamp"
- direction="out"
- transfer-ownership="full">
- <type name="uint64" c:type="guint64*"/>
- </parameter>
- <parameter name="duration" direction="out" transfer-ownership="full">
- <type name="uint64" c:type="guint64*"/>
- </parameter>
- </parameters>
- </method>
- <method name="parse_qos_values"
- c:identifier="gst_message_parse_qos_values"
- doc="to get optimal quality.
-quality level of the element. The default maximum quality is 1000000.
-Extract the QoS values that have been calculated/analysed from the QoS data
-MT safe."
- version="0.10.29">
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <parameter name="jitter" direction="out" transfer-ownership="full">
- <type name="int64" c:type="gint64*"/>
- </parameter>
- <parameter name="proportion"
- direction="out"
- transfer-ownership="full">
- <type name="double" c:type="gdouble*"/>
- </parameter>
- <parameter name="quality" direction="out" transfer-ownership="full">
- <type name="int" c:type="gint*"/>
- </parameter>
- </parameters>
- </method>
- <method name="parse_qos_stats"
- c:identifier="gst_message_parse_qos_stats"
- doc="filters will use GST_FORMAT_BUFFERS (frames). Audio sinks and audio filters
-will likely use GST_FORMAT_DEFAULT (samples).
-change to READY or a flushing operation.
-or a flushing operation.
-Extract the QoS stats representing the history of the current continuous
-pipeline playback period.
-When @format is @GST_FORMAT_UNDEFINED both @dropped and @processed are
-invalid. Values of -1 for either @processed or @dropped mean unknown values.
-MT safe."
- version="0.10.29">
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <parameter name="format" transfer-ownership="none">
- <type name="Format" c:type="GstFormat*"/>
- </parameter>
- <parameter name="processed"
- direction="out"
- transfer-ownership="full">
- <type name="uint64" c:type="guint64*"/>
- </parameter>
- <parameter name="dropped" direction="out" transfer-ownership="full">
- <type name="uint64" c:type="guint64*"/>
- </parameter>
- </parameters>
- </method>
- <method name="get_structure"
- c:identifier="gst_message_get_structure"
- doc="Access the structure of the message.
-owned by the message, which means that you should not free it and
-that the pointer becomes invalid when you free the message.
-MT safe.">
- <return-value transfer-ownership="none">
- <type name="Structure" c:type="GstStructure*"/>
- </return-value>
- </method>
- </record>
- <record name="MessageClass" c:type="GstMessageClass">
- <field name="mini_object_class" writable="1">
- <type name="MiniObjectClass" c:type="GstMiniObjectClass"/>
- </field>
- <field name="_gst_reserved" writable="1">
- <array zero-terminated="0" c:type="gpointer" fixed-size="4">
- <type name="any"/>
- </array>
- </field>
- </record>
- <bitfield name="MessageType"
- doc="only receive this message in the PLAYING state and every time it sets a
-pipeline to PLAYING that is in the EOS state. The application can perform a
-flushing seek in the pipeline, which will undo the EOS state again.
-message it should stop playback of the pipeline and not assume that more
-data will be played.
-receives a buffering message in the PLAYING state for a non-live pipeline it
-must PAUSE the pipeline until the buffering completes, when the percentage
-field in the message is 100%. For live pipelines, no action must be
-performed and the buffering percentage can be used to inform the user about
-the progress.
-This message is deprecated.
-a clock. This message is used internally and
-never forwarded to the application.
-unusable. The pipeline will select a new clock on
-the next PLAYING state change. The application
-should set the pipeline to PAUSED and back to
-PLAYING when this message is received.
-message is used internally and never forwarded to the application.
-stops, errors, etc..
-via an application-specific element.
-documentation
-message is used internally and never forwarded to the application.
-message is forwarded to the application after all elements that posted
-can get the new duration with a duration query.
-change. This message is not forwarded to the application but is used
-change. The application will only receive this message from the toplevel
-change state. This message is a suggestion to the application which can
-The different message types that are available."
- c:type="GstMessageType">
- <member name="unknown" value="0" c:identifier="GST_MESSAGE_UNKNOWN"/>
- <member name="eos" value="1" c:identifier="GST_MESSAGE_EOS"/>
- <member name="error" value="2" c:identifier="GST_MESSAGE_ERROR"/>
- <member name="warning" value="4" c:identifier="GST_MESSAGE_WARNING"/>
- <member name="info" value="8" c:identifier="GST_MESSAGE_INFO"/>
- <member name="tag" value="16" c:identifier="GST_MESSAGE_TAG"/>
- <member name="buffering"
- value="32"
- c:identifier="GST_MESSAGE_BUFFERING"/>
- <member name="state_changed"
- value="64"
- c:identifier="GST_MESSAGE_STATE_CHANGED"/>
- <member name="state_dirty"
- value="128"
- c:identifier="GST_MESSAGE_STATE_DIRTY"/>
- <member name="step_done"
- value="256"
- c:identifier="GST_MESSAGE_STEP_DONE"/>
- <member name="clock_provide"
- value="512"
- c:identifier="GST_MESSAGE_CLOCK_PROVIDE"/>
- <member name="clock_lost"
- value="1024"
- c:identifier="GST_MESSAGE_CLOCK_LOST"/>
- <member name="new_clock"
- value="2048"
- c:identifier="GST_MESSAGE_NEW_CLOCK"/>
- <member name="structure_change"
- value="4096"
- c:identifier="GST_MESSAGE_STRUCTURE_CHANGE"/>
- <member name="stream_status"
- value="8192"
- c:identifier="GST_MESSAGE_STREAM_STATUS"/>
- <member name="application"
- value="16384"
- c:identifier="GST_MESSAGE_APPLICATION"/>
- <member name="element" value="32768" c:identifier="GST_MESSAGE_ELEMENT"/>
- <member name="segment_start"
- value="65536"
- c:identifier="GST_MESSAGE_SEGMENT_START"/>
- <member name="segment_done"
- value="131072"
- c:identifier="GST_MESSAGE_SEGMENT_DONE"/>
- <member name="duration"
- value="262144"
- c:identifier="GST_MESSAGE_DURATION"/>
- <member name="latency"
- value="524288"
- c:identifier="GST_MESSAGE_LATENCY"/>
- <member name="async_start"
- value="1048576"
- c:identifier="GST_MESSAGE_ASYNC_START"/>
- <member name="async_done"
- value="2097152"
- c:identifier="GST_MESSAGE_ASYNC_DONE"/>
- <member name="request_state"
- value="4194304"
- c:identifier="GST_MESSAGE_REQUEST_STATE"/>
- <member name="step_start"
- value="8388608"
- c:identifier="GST_MESSAGE_STEP_START"/>
- <member name="qos" value="16777216" c:identifier="GST_MESSAGE_QOS"/>
- <member name="any" value="-1" c:identifier="GST_MESSAGE_ANY"/>
- </bitfield>
- <record name="MiniObject"
- c:type="GstMiniObject"
- doc="Base class for refcounted lightweight objects.">
- <field name="instance" writable="1">
- <type name="GObject.TypeInstance" c:type="GTypeInstance"/>
- </field>
- <field name="refcount" writable="1">
- <type name="int" c:type="gint"/>
- </field>
- <field name="flags" writable="1">
- <type name="uint" c:type="guint"/>
- </field>
- <field name="_gst_reserved" writable="1">
- <type name="any" c:type="gpointer"/>
- </field>
- <constructor name="new"
- c:identifier="gst_mini_object_new"
- doc="Creates a new mini-object of the desired type.
-MT safe">
- <return-value transfer-ownership="full">
- <type name="MiniObject" c:type="GstMiniObject*"/>
- </return-value>
- <parameters>
- <parameter name="type" transfer-ownership="none">
- <type name="GType" c:type="GType"/>
- </parameter>
- </parameters>
- </constructor>
- <method name="copy"
- c:identifier="gst_mini_object_copy"
- doc="Creates a copy of the mini-object.
-MT safe">
- <return-value transfer-ownership="full">
- <type name="MiniObject" c:type="GstMiniObject*"/>
- </return-value>
- </method>
- <method name="is_writable"
- c:identifier="gst_mini_object_is_writable"
- doc="Checks if a mini-object is writable. A mini-object is writable
-if the reference count is one and the #GST_MINI_OBJECT_FLAG_READONLY
-flag is not set. Modification of a mini-object should only be
-done after verifying that it is writable.
-MT safe">
- <return-value transfer-ownership="none">
- <type name="boolean" c:type="gboolean"/>
- </return-value>
- </method>
- <method name="make_writable"
- c:identifier="gst_mini_object_make_writable"
- doc="Checks if a mini-object is writable. If not, a writable copy is made and
-returned. This gives away the reference to the original mini object,
-and returns a reference to the new object.
-MT safe">
- <return-value transfer-ownership="full" doc="that is writable.">
- <type name="MiniObject" c:type="GstMiniObject*"/>
- </return-value>
- </method>
- <method name="ref"
- c:identifier="gst_mini_object_ref"
- doc="Increase the reference count of the mini-object.
-Note that the refcount affects the writeability
-of @mini-object, see gst_mini_object_is_writable(). It is
-important to note that keeping additional references to
-GstMiniObject instances can potentially increase the number
-of memcpy operations in a pipeline, especially if the miniobject
-is a #GstBuffer.">
- <return-value transfer-ownership="full">
- <type name="MiniObject" c:type="GstMiniObject*"/>
- </return-value>
- </method>
- <method name="unref"
- c:identifier="gst_mini_object_unref"
- doc="Decreases the reference count of the mini-object, possibly freeing
-the mini-object.">
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- </method>
- <method name="replace"
- c:identifier="gst_mini_object_replace"
- doc="Modifies a pointer to point to a new mini-object. The modification
-is done atomically, and the reference counts are updated correctly.
-Either @newdata and the value pointed to by @olddata may be NULL.">
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <parameter name="newdata" transfer-ownership="none">
- <type name="MiniObject" c:type="GstMiniObject*"/>
- </parameter>
- </parameters>
- </method>
- </record>
- <record name="MiniObjectClass" c:type="GstMiniObjectClass">
- <field name="type_class" writable="1">
- <type name="GObject.TypeClass" c:type="GTypeClass"/>
- </field>
- <field name="copy" writable="1">
- <type name="MiniObjectCopyFunction"
- c:type="GstMiniObjectCopyFunction"/>
- </field>
- <field name="finalize" writable="1">
- <type name="MiniObjectFinalizeFunction"
- c:type="GstMiniObjectFinalizeFunction"/>
- </field>
- <field name="_gst_reserved" writable="1">
- <type name="any" c:type="gpointer"/>
- </field>
- </record>
- <callback name="MiniObjectCopyFunction"
- c:type="GstMiniObjectCopyFunction"
- doc="Virtual function prototype for methods to create copies of instances.">
- <return-value transfer-ownership="full">
- <type name="MiniObject" c:type="GstMiniObject*"/>
- </return-value>
- <parameters>
- <parameter name="obj" transfer-ownership="none">
- <type name="MiniObject" c:type="GstMiniObject*"/>
- </parameter>
- </parameters>
- </callback>
- <callback name="MiniObjectFinalizeFunction"
- c:type="GstMiniObjectFinalizeFunction"
- doc="Virtual function prototype for methods to free ressources used by
-mini-objects. Subclasses of the mini object are allowed to revive the
-passed object by doing a gst_mini_object_ref(). If the object is not
-revived after the finalize function, the memory associated with the
-object is freed.">
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <parameter name="obj" transfer-ownership="none">
- <type name="MiniObject" c:type="GstMiniObject*"/>
- </parameter>
- </parameters>
- </callback>
- <bitfield name="MiniObjectFlags"
- doc="Flags for the padtemplate"
- c:type="GstMiniObjectFlags">
- <member name="readonly"
- value="1"
- c:identifier="GST_MINI_OBJECT_FLAG_READONLY"/>
- <member name="last" value="16" c:identifier="GST_MINI_OBJECT_FLAG_LAST"/>
- </bitfield>
- <constant name="NSECOND" value="0">
- <type name="int"/>
- </constant>
- <class name="Object"
- c:type="GstObject"
- doc="GStreamer base object class."
- parent="GObject.Object"
- abstract="1"
- glib:type-name="GstObject"
- glib:get-type="gst_object_get_type"
- glib:type-struct="ObjectClass">
- <function name="default_deep_notify"
- c:identifier="gst_object_default_deep_notify"
- doc="NULL to show all changes.
-A default deep_notify signal callback for an object. The user data
-should contain a pointer to an array of strings that should be excluded
-from the notify. The default handler will print the new value of the property
-using g_print.
-MT safe. This function grabs and releases @object's LOCK for getting its
-path string.">
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <parameter name="object" transfer-ownership="none">
- <type name="GObject.Object" c:type="GObject*"/>
- </parameter>
- <parameter name="orig" transfer-ownership="none">
- <type name="Object" c:type="GstObject*"/>
- </parameter>
- <parameter name="pspec" transfer-ownership="none">
- <type name="GObject.ParamSpec" c:type="GParamSpec*"/>
- </parameter>
- <parameter name="excluded_props" transfer-ownership="none">
- <array c:type="gchar**">
- <type name="utf8"/>
- </array>
- </parameter>
- </parameters>
- </function>
- <function name="ref"
- c:identifier="gst_object_ref"
- doc="Increments the reference count on @object. This function
-does not take the lock on @object because it relies on
-atomic refcounting.
-This object returns the input parameter to ease writing
-constructs like :
-result = gst_object_ref (object->parent);">
- <return-value transfer-ownership="none">
- <type name="any" c:type="gpointer"/>
- </return-value>
- <parameters>
- <parameter name="object" transfer-ownership="none">
- <type name="any" c:type="gpointer"/>
- </parameter>
- </parameters>
- </function>
- <function name="unref"
- c:identifier="gst_object_unref"
- doc="Decrements the reference count on @object. If reference count hits
-zero, destroy @object. This function does not take the lock
-on @object as it relies on atomic refcounting.
-The unref method should never be called with the LOCK held since
-this might deadlock the dispose function.">
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <parameter name="object" transfer-ownership="none">
- <type name="any" c:type="gpointer"/>
- </parameter>
- </parameters>
- </function>
- <function name="ref_sink"
- c:identifier="gst_object_ref_sink"
- doc="Increase the reference count of @object, and possibly remove the floating
-reference, if @object has a floating reference.
-In other words, if the object is floating, then this call "assumes ownership"
-of the floating reference, converting it to a normal reference by clearing
-the floating flag while leaving the reference count unchanged. If the object
-is not floating, then this call adds a new normal reference increasing the
-reference count by one.
-MT safe. This function grabs and releases @object lock."
- version="0.10.24">
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <parameter name="object" transfer-ownership="none">
- <type name="any" c:type="gpointer"/>
- </parameter>
- </parameters>
- </function>
- <function name="sink"
- c:identifier="gst_object_sink"
- doc="If @object was floating, the #GST_OBJECT_FLOATING flag is removed
-and @object is unreffed. When @object was not floating,
-this function does nothing.
-Any newly created object has a refcount of 1 and is floating.
-This function should be used when creating a new object to
-symbolically 'take ownership' of @object. This done by first doing a
-gst_object_ref() to keep a reference to @object and then gst_object_sink()
-to remove and unref any floating references to @object.
-Use gst_object_set_parent() to have this done for you.
-MT safe. This function grabs and releases @object lock.">
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <parameter name="object" transfer-ownership="none">
- <type name="any" c:type="gpointer"/>
- </parameter>
- </parameters>
- </function>
- <function name="check_uniqueness"
- c:identifier="gst_object_check_uniqueness"
- doc="Checks to see if there is any object named @name in @list. This function
-does not do any locking of any kind. You might want to protect the
-provided list with the lock of the owner of the list. This function
-will lock each #GstObject in the list to compare the name, so be
-carefull when passing a list with a locked object.
-FALSE if it does.
-MT safe. Grabs and releases the LOCK of each object in the list.">
- <return-value transfer-ownership="none">
- <type name="boolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <parameter name="list" transfer-ownership="none">
- <type name="GLib.List" c:type="GList*"/>
- </parameter>
- <parameter name="name" transfer-ownership="none">
- <type name="utf8" c:type="gchar*"/>
- </parameter>
- </parameters>
- </function>
- <virtual-method name="save_thyself" invoker="save_thyself">
- <return-value transfer-ownership="full">
- <type name="libxml2.NodePtr" c:type="xmlNodePtr"/>
- </return-value>
- <parameters>
- <parameter name="parent" transfer-ownership="none">
- <type name="libxml2.NodePtr" c:type="xmlNodePtr"/>
- </parameter>
- </parameters>
- </virtual-method>
- <virtual-method name="restore_thyself" invoker="restore_thyself">
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <parameter name="self" transfer-ownership="none">
- <type name="libxml2.NodePtr" c:type="xmlNodePtr"/>
- </parameter>
- </parameters>
- </virtual-method>
- <method name="set_name"
- c:identifier="gst_object_set_name"
- doc="Sets the name of @object, or gives @object a guaranteed unique
-name (if @name is NULL).
-This function makes a copy of the provided name, so the caller
-retains ownership of the name it sent.
-a parent cannot be renamed, this function returns FALSE in those
-cases.
-MT safe. This function grabs and releases @object's LOCK.">
- <return-value transfer-ownership="none">
- <type name="boolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <parameter name="name" transfer-ownership="none">
- <type name="utf8" c:type="gchar*"/>
- </parameter>
- </parameters>
- </method>
- <method name="get_name"
- c:identifier="gst_object_get_name"
- doc="Returns a copy of the name of @object.
-Caller should g_free() the return value after usage.
-For a nameless object, this returns NULL, which you can safely g_free()
-as well.
-MT safe. This function grabs and releases @object's LOCK.">
- <return-value transfer-ownership="full" doc="after usage.">
- <type name="utf8" c:type="gchar*"/>
- </return-value>
- </method>
- <method name="set_name_prefix"
- c:identifier="gst_object_set_name_prefix"
- doc="Sets the name prefix of @object to @name_prefix.
-This function makes a copy of the provided name prefix, so the caller
-retains ownership of the name prefix it sent.
-MT safe. This function grabs and releases @object's LOCK.">
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <parameter name="name_prefix" transfer-ownership="none">
- <type name="utf8" c:type="gchar*"/>
- </parameter>
- </parameters>
- </method>
- <method name="get_name_prefix"
- c:identifier="gst_object_get_name_prefix"
- doc="Returns a copy of the name prefix of @object.
-Caller should g_free() the return value after usage.
-For a prefixless object, this returns NULL, which you can safely g_free()
-as well.
-MT safe. This function grabs and releases @object's LOCK.">
- <return-value transfer-ownership="full" doc="after usage.">
- <type name="utf8" c:type="gchar*"/>
- </return-value>
- </method>
- <method name="set_parent"
- c:identifier="gst_object_set_parent"
- doc="Sets the parent of @object to @parent. The object's reference count will
-be incremented, and any floating reference will be removed (see gst_object_sink()).
-This function causes the parent-set signal to be emitted when the parent
-was successfully set.
-already had a parent or @object and @parent are the same.
-MT safe. Grabs and releases @object's LOCK.">
- <return-value transfer-ownership="none">
- <type name="boolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <parameter name="parent" transfer-ownership="none">
- <type name="Object" c:type="GstObject*"/>
- </parameter>
- </parameters>
- </method>
- <method name="get_parent"
- c:identifier="gst_object_get_parent"
- doc="Returns the parent of @object. This function increases the refcount
-of the parent object so you should gst_object_unref() it after usage.
-parent. unref after usage.
-MT safe. Grabs and releases @object's LOCK.">
- <return-value transfer-ownership="full">
- <type name="Object" c:type="GstObject*"/>
- </return-value>
- </method>
- <method name="unparent"
- c:identifier="gst_object_unparent"
- doc="Clear the parent of @object, removing the associated reference.
-This function decreases the refcount of @object.
-MT safe. Grabs and releases @object's lock.">
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- </method>
- <method name="has_ancestor"
- c:identifier="gst_object_has_ancestor"
- doc="Check if @object has an ancestor @ancestor somewhere up in
-the hierarchy.
-MT safe. Grabs and releases @object's locks.">
- <return-value transfer-ownership="none">
- <type name="boolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <parameter name="ancestor" transfer-ownership="none">
- <type name="Object" c:type="GstObject*"/>
- </parameter>
- </parameters>
- </method>
- <method name="replace"
- c:identifier="gst_object_replace"
- doc="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.">
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <parameter name="newobj" transfer-ownership="none">
- <type name="Object" c:type="GstObject*"/>
- </parameter>
- </parameters>
- </method>
- <method name="get_path_string"
- c:identifier="gst_object_get_path_string"
- doc="Generates a string describing the path of @object in
-the object hierarchy. Only useful (or used) for debugging.
-g_free() the string after usage.
-MT safe. Grabs and releases the #GstObject's LOCK for all objects
-in the hierarchy.">
- <return-value transfer-ownership="full">
- <type name="utf8" c:type="gchar*"/>
- </return-value>
- </method>
- <method name="save_thyself"
- c:identifier="gst_object_save_thyself"
- doc="Saves @object into the parent XML node.">
- <return-value transfer-ownership="full">
- <type name="libxml2.NodePtr" c:type="xmlNodePtr"/>
- </return-value>
- <parameters>
- <parameter name="parent" transfer-ownership="none">
- <type name="libxml2.NodePtr" c:type="xmlNodePtr"/>
- </parameter>
- </parameters>
- </method>
- <method name="restore_thyself"
- c:identifier="gst_object_restore_thyself"
- doc="Restores @object with the data from the parent XML node.">
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <parameter name="self" transfer-ownership="none">
- <type name="libxml2.NodePtr" c:type="xmlNodePtr"/>
- </parameter>
- </parameters>
- </method>
- <method name="default_error"
- c:identifier="gst_object_default_error"
- doc="A default error function.
-The default handler will simply print the error string using g_print.">
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <parameter name="error" transfer-ownership="none">
- <type name="GLib.Error" c:type="GError*"/>
- </parameter>
- <parameter name="debug" transfer-ownership="full">
- <type name="utf8" c:type="gchar*"/>
- </parameter>
- </parameters>
- </method>
- <property name="name" writable="1" construct="1">
- <type name="utf8" c:type="gchararray"/>
- </property>
- <field name="object">
- <type name="GObject.Object" c:type="GObject"/>
- </field>
- <field name="refcount">
- <type name="int" c:type="gint"/>
- </field>
- <field name="lock">
- <type name="GLib.Mutex" c:type="GMutex*"/>
- </field>
- <field name="name">
- <type name="utf8" c:type="gchar*"/>
- </field>
- <field name="name_prefix">
- <type name="utf8" c:type="gchar*"/>
- </field>
- <field name="parent">
- <type name="Object" c:type="GstObject*"/>
- </field>
- <field name="flags">
- <type name="uint32" c:type="guint32"/>
- </field>
- <field name="_gst_reserved">
- <type name="any" c:type="gpointer"/>
- </field>
- <glib:signal name="deep-notify"
- doc="The deep notify signal is used to be notified of property changes. It is
-typically attached to the toplevel bin to receive notifications from all
-the elements contained in that bin.">
- <return-value transfer-ownership="full">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <parameter name="prop_object" transfer-ownership="none">
- <type name="Object" c:type="GstObject"/>
- </parameter>
- <parameter name="prop" transfer-ownership="none">
- <type name="GObject.ParamSpec" c:type="GParam"/>
- </parameter>
- </parameters>
- </glib:signal>
- <glib:signal name="object-saved"
- doc="Trigered whenever a new object is saved to XML. You can connect to this
-signal to insert custom XML tags into the core XML.">
- <return-value transfer-ownership="full">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <parameter name="xml_node" transfer-ownership="none">
- <type name="any" c:type="gpointer"/>
- </parameter>
- </parameters>
- </glib:signal>
- <glib:signal name="parent-set"
- doc="Emitted when the parent of an object is set.">
- <return-value transfer-ownership="full">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <parameter name="parent" transfer-ownership="none">
- <type name="Object" c:type="GstObject"/>
- </parameter>
- </parameters>
- </glib:signal>
- <glib:signal name="parent-unset"
- doc="Emitted when the parent of an object is unset.">
- <return-value transfer-ownership="full">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <parameter name="parent" transfer-ownership="none">
- <type name="Object" c:type="GstObject"/>
- </parameter>
- </parameters>
- </glib:signal>
- </class>
- <record name="ObjectClass"
- c:type="GstObjectClass"
- glib:is-gtype-struct-for="Object"
- doc="GStreamer base object class.">
- <field name="parent_class">
- <type name="GObject.ObjectClass" c:type="GObjectClass"/>
- </field>
- <field name="path_string_separator">
- <type name="utf8" c:type="gchar*"/>
- </field>
- <field name="signal_object">
- <type name="GObject.Object" c:type="GObject*"/>
- </field>
- <field name="lock">
- <type name="GLib.StaticRecMutex" c:type="GStaticRecMutex*"/>
- </field>
- <field name="parent_set">
- <callback name="parent_set" c:type="parent_set">
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <parameter name="object" transfer-ownership="none">
- <type name="Object" c:type="GstObject*"/>
- </parameter>
- <parameter name="parent" transfer-ownership="none">
- <type name="Object" c:type="GstObject*"/>
- </parameter>
- </parameters>
- </callback>
- </field>
- <field name="parent_unset">
- <callback name="parent_unset" c:type="parent_unset">
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <parameter name="object" transfer-ownership="none">
- <type name="Object" c:type="GstObject*"/>
- </parameter>
- <parameter name="parent" transfer-ownership="none">
- <type name="Object" c:type="GstObject*"/>
- </parameter>
- </parameters>
- </callback>
- </field>
- <field name="object_saved">
- <callback name="object_saved" c:type="object_saved">
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <parameter name="object" transfer-ownership="none">
- <type name="Object" c:type="GstObject*"/>
- </parameter>
- <parameter name="parent" transfer-ownership="none">
- <type name="libxml2.NodePtr" c:type="xmlNodePtr"/>
- </parameter>
- </parameters>
- </callback>
- </field>
- <field name="deep_notify">
- <callback name="deep_notify" c:type="deep_notify">
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <parameter name="object" transfer-ownership="none">
- <type name="Object" c:type="GstObject*"/>
- </parameter>
- <parameter name="orig" transfer-ownership="none">
- <type name="Object" c:type="GstObject*"/>
- </parameter>
- <parameter name="pspec" transfer-ownership="none">
- <type name="GObject.ParamSpec" c:type="GParamSpec*"/>
- </parameter>
- </parameters>
- </callback>
- </field>
- <field name="save_thyself">
- <callback name="save_thyself" c:type="save_thyself">
- <return-value transfer-ownership="full">
- <type name="libxml2.NodePtr" c:type="xmlNodePtr"/>
- </return-value>
- <parameters>
- <parameter name="object" transfer-ownership="none">
- <type name="Object" c:type="GstObject*"/>
- </parameter>
- <parameter name="parent" transfer-ownership="none">
- <type name="libxml2.NodePtr" c:type="xmlNodePtr"/>
- </parameter>
- </parameters>
- </callback>
- </field>
- <field name="restore_thyself">
- <callback name="restore_thyself" c:type="restore_thyself">
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <parameter name="object" transfer-ownership="none">
- <type name="Object" c:type="GstObject*"/>
- </parameter>
- <parameter name="self" transfer-ownership="none">
- <type name="libxml2.NodePtr" c:type="xmlNodePtr"/>
- </parameter>
- </parameters>
- </callback>
- </field>
- <field name="_gst_reserved">
- <array zero-terminated="0" c:type="gpointer" fixed-size="4">
- <type name="any"/>
- </array>
- </field>
- </record>
- <bitfield name="ObjectFlags"
- doc="not assigned to a bin)
-The standard flags that an gstobject may have."
- c:type="GstObjectFlags">
- <member name="disposing" value="1" c:identifier="GST_OBJECT_DISPOSING"/>
- <member name="floating" value="2" c:identifier="GST_OBJECT_FLOATING"/>
- <member name="flag_last" value="16" c:identifier="GST_OBJECT_FLAG_LAST"/>
- </bitfield>
- <constant name="PARAM_CONTROLLABLE" value="2">
- <type name="int"/>
- </constant>
- <constant name="PARAM_MUTABLE_PAUSED" value="8">
- <type name="int"/>
- </constant>
- <constant name="PARAM_MUTABLE_PLAYING" value="16">
- <type name="int"/>
- </constant>
- <constant name="PARAM_MUTABLE_READY" value="4">
- <type name="int"/>
- </constant>
- <constant name="PARAM_USER_SHIFT" value="256">
- <type name="int"/>
- </constant>
- <class name="Pad"
- c:type="GstPad"
- doc="the pad.
-the data used in streaming.
-The #GstPad structure. Use the functions to update the variables."
- parent="Object"
- glib:type-name="GstPad"
- glib:get-type="gst_pad_get_type"
- glib:type-struct="PadClass">
- <constructor name="new"
- c:identifier="gst_pad_new"
- doc="Creates a new pad with the given name in the given direction.
-If name is NULL, a guaranteed unique name (across all pads)
-will be assigned.
-This function makes a copy of the name so you can safely free the name.
-MT safe.">
- <return-value transfer-ownership="full">
- <type name="Pad" c:type="GstPad*"/>
- </return-value>
- <parameters>
- <parameter name="name" transfer-ownership="none">
- <type name="utf8" c:type="gchar*"/>
- </parameter>
- <parameter name="direction" transfer-ownership="none">
- <type name="PadDirection" c:type="GstPadDirection"/>
- </parameter>
- </parameters>
- </constructor>
- <constructor name="new_from_template"
- c:identifier="gst_pad_new_from_template"
- doc="Creates a new pad with the given name from the given template.
-If name is NULL, a guaranteed unique name (across all pads)
-will be assigned.
-This function makes a copy of the name so you can safely free the name.">
- <return-value transfer-ownership="full">
- <type name="Pad" c:type="GstPad*"/>
- </return-value>
- <parameters>
- <parameter name="templ" transfer-ownership="none">
- <type name="PadTemplate" c:type="GstPadTemplate*"/>
- </parameter>
- <parameter name="name" transfer-ownership="none">
- <type name="utf8" c:type="gchar*"/>
- </parameter>
- </parameters>
- </constructor>
- <constructor name="new_from_static_template"
- c:identifier="gst_pad_new_from_static_template"
- doc="Creates a new pad with the given name from the given static template.
-If name is NULL, a guaranteed unique name (across all pads)
-will be assigned.
-This function makes a copy of the name so you can safely free the name.">
- <return-value transfer-ownership="full">
- <type name="Pad" c:type="GstPad*"/>
- </return-value>
- <parameters>
- <parameter name="templ" transfer-ownership="none">
- <type name="StaticPadTemplate" c:type="GstStaticPadTemplate*"/>
- </parameter>
- <parameter name="name" transfer-ownership="none">
- <type name="utf8" c:type="gchar*"/>
- </parameter>
- </parameters>
- </constructor>
- <function name="load_and_link"
- c:identifier="gst_pad_load_and_link"
- doc="Reads the pad definition from the XML node and links the given pad
-in the element to a pad of an element up in the hierarchy.">
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <parameter name="self" transfer-ownership="none">
- <type name="libxml2.NodePtr" c:type="xmlNodePtr"/>
- </parameter>
- <parameter name="parent" transfer-ownership="none">
- <type name="Object" c:type="GstObject*"/>
- </parameter>
- </parameters>
- </function>
- <method name="get_direction"
- c:identifier="gst_pad_get_direction"
- doc="Gets the direction of the pad. The direction of the pad is
-decided at construction time so this function does not take
-the LOCK.
-MT safe.">
- <return-value transfer-ownership="full">
- <type name="PadDirection" c:type="GstPadDirection"/>
- </return-value>
- </method>
- <method name="set_active"
- c:identifier="gst_pad_set_active"
- doc="Activates or deactivates the given pad.
-Normally called from within core state change functions.
-If @active, makes sure the pad is active. If it is already active, either in
-push or pull mode, just return. Otherwise dispatches to the pad's activate
-function to perform the actual activation.
-If not @active, checks the pad's current mode and calls
-gst_pad_activate_push() or gst_pad_activate_pull(), as appropriate, with a
-FALSE argument.
-MT safe.">
- <return-value transfer-ownership="none">
- <type name="boolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <parameter name="active" transfer-ownership="none">
- <type name="boolean" c:type="gboolean"/>
- </parameter>
- </parameters>
- </method>
- <method name="is_active"
- c:identifier="gst_pad_is_active"
- doc="Query if a pad is active
-MT safe.">
- <return-value transfer-ownership="none">
- <type name="boolean" c:type="gboolean"/>
- </return-value>
- </method>
- <method name="activate_pull"
- c:identifier="gst_pad_activate_pull"
- doc="Activates or deactivates the given pad in pull mode via dispatching to the
-pad's activatepullfunc. For use from within pad activation functions only.
-When called on sink pads, will first proxy the call to the peer pad, which
-is expected to activate its internally linked pads from within its
-activate_pull function.
-If you don't know what this is, you probably don't want to call it.
-MT safe.">
- <return-value transfer-ownership="none">
- <type name="boolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <parameter name="active" transfer-ownership="none">
- <type name="boolean" c:type="gboolean"/>
- </parameter>
- </parameters>
- </method>
- <method name="activate_push"
- c:identifier="gst_pad_activate_push"
- doc="Activates or deactivates the given pad in push mode via dispatching to the
-pad's activatepushfunc. For use from within pad activation functions only.
-If you don't know what this is, you probably don't want to call it.
-MT safe.">
- <return-value transfer-ownership="none">
- <type name="boolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <parameter name="active" transfer-ownership="none">
- <type name="boolean" c:type="gboolean"/>
- </parameter>
- </parameters>
- </method>
- <method name="set_blocked"
- c:identifier="gst_pad_set_blocked"
- doc="Blocks or unblocks the dataflow on a pad. This function is
-a shortcut for gst_pad_set_blocked_async() with a NULL
-callback.
-wrong parameters were passed or the pad was already in the requested state.
-MT safe.">
- <return-value transfer-ownership="none">
- <type name="boolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <parameter name="blocked" transfer-ownership="none">
- <type name="boolean" c:type="gboolean"/>
- </parameter>
- </parameters>
- </method>
- <method name="set_blocked_async"
- c:identifier="gst_pad_set_blocked_async"
- doc="operation succeeds
-Blocks or unblocks the dataflow on a pad. The provided callback
-is called when the operation succeeds; this happens right before the next
-attempt at pushing a buffer on the pad.
-This can take a while as the pad can only become blocked when real dataflow
-is happening.
-When the pipeline is stalled, for example in PAUSED, this can
-take an indeterminate amount of time.
-You can pass NULL as the callback to make this call block. Be careful with
-this blocking call as it might not return for reasons stated above.
-wrong parameters were passed or the pad was already in the requested state.
-MT safe.">
- <return-value transfer-ownership="none">
- <type name="boolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <parameter name="blocked" transfer-ownership="none">
- <type name="boolean" c:type="gboolean"/>
- </parameter>
- <parameter name="callback"
- transfer-ownership="none"
- scope="call"
- closure="3">
- <type name="PadBlockCallback" c:type="GstPadBlockCallback"/>
- </parameter>
- <parameter name="user_data" transfer-ownership="none">
- <type name="any" c:type="gpointer"/>
- </parameter>
- </parameters>
- </method>
- <method name="set_blocked_async_full"
- c:identifier="gst_pad_set_blocked_async_full"
- doc="operation succeeds
-Blocks or unblocks the dataflow on a pad. The provided callback
-is called when the operation succeeds; this happens right before the next
-attempt at pushing a buffer on the pad.
-This can take a while as the pad can only become blocked when real dataflow
-is happening.
-When the pipeline is stalled, for example in PAUSED, this can
-take an indeterminate amount of time.
-You can pass NULL as the callback to make this call block. Be careful with
-this blocking call as it might not return for reasons stated above.
-wrong parameters were passed or the pad was already in the requested state.
-MT safe."
- version="0.10.23">
- <return-value transfer-ownership="none">
- <type name="boolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <parameter name="blocked" transfer-ownership="none">
- <type name="boolean" c:type="gboolean"/>
- </parameter>
- <parameter name="callback"
- transfer-ownership="none"
- scope="notified"
- closure="3"
- destroy="4">
- <type name="PadBlockCallback" c:type="GstPadBlockCallback"/>
- </parameter>
- <parameter name="user_data" transfer-ownership="none">
- <type name="any" c:type="gpointer"/>
- </parameter>
- <parameter name="destroy_data"
- transfer-ownership="none"
- scope="call">
- <type name="GLib.DestroyNotify" c:type="GDestroyNotify"/>
- </parameter>
- </parameters>
- </method>
- <method name="is_blocked"
- c:identifier="gst_pad_is_blocked"
- doc="Checks if the pad is blocked or not. This function returns the
-last requested state of the pad. It is not certain that the pad
-is actually blocking at this point (see gst_pad_is_blocking()).
-MT safe.">
- <return-value transfer-ownership="none">
- <type name="boolean" c:type="gboolean"/>
- </return-value>
- </method>
- <method name="is_blocking"
- c:identifier="gst_pad_is_blocking"
- doc="Checks if the pad is blocking or not. This is a guaranteed state
-of whether the pad is actually blocking on a #GstBuffer or a #GstEvent.
-MT safe."
- version="0.10.11">
- <return-value transfer-ownership="none">
- <type name="boolean" c:type="gboolean"/>
- </return-value>
- </method>
- <method name="set_element_private"
- c:identifier="gst_pad_set_element_private"
- doc="Set the given private data gpointer on the pad.
-This function can only be used by the element that owns the pad.
-No locking is performed in this function.">
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <parameter name="priv" transfer-ownership="none">
- <type name="any" c:type="gpointer"/>
- </parameter>
- </parameters>
- </method>
- <method name="get_element_private"
- c:identifier="gst_pad_get_element_private"
- doc="Gets the private data of a pad.
-No locking is performed in this function.">
- <return-value transfer-ownership="none">
- <type name="any" c:type="gpointer"/>
- </return-value>
- </method>
- <method name="get_pad_template"
- c:identifier="gst_pad_get_pad_template"
- doc="Gets the template for @pad.
-if this pad has no template.">
- <return-value transfer-ownership="full">
- <type name="PadTemplate" c:type="GstPadTemplate*"/>
- </return-value>
- </method>
- <method name="set_bufferalloc_function"
- c:identifier="gst_pad_set_bufferalloc_function"
- doc="Sets the given bufferalloc function for the pad. Note that the
-bufferalloc function can only be set on sinkpads.">
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <parameter name="bufalloc" transfer-ownership="none" scope="call">
- <type name="PadBufferAllocFunction"
- c:type="GstPadBufferAllocFunction"/>
- </parameter>
- </parameters>
- </method>
- <method name="alloc_buffer"
- c:identifier="gst_pad_alloc_buffer"
- doc="Allocates a new, empty buffer optimized to push to pad @pad. This
-function only works if @pad is a source pad and has a peer.
-A new, empty #GstBuffer will be put in the @buf argument.
-You need to check the caps of the buffer after performing this
-function and renegotiate to the format if needed. If the caps changed, it is
-possible that the buffer returned in @buf is not of the right size for the
-new format, @buf needs to be unreffed and reallocated if this is the case.
-result code other than #GST_FLOW_OK is an error and @buf should
-not be used.
-An error can occur if the pad is not connected or when the downstream
-peer elements cannot provide an acceptable buffer.
-MT safe.">
- <return-value transfer-ownership="full">
- <type name="FlowReturn" c:type="GstFlowReturn"/>
- </return-value>
- <parameters>
- <parameter name="offset" transfer-ownership="none">
- <type name="uint64" c:type="guint64"/>
- </parameter>
- <parameter name="size" transfer-ownership="none">
- <type name="int" c:type="gint"/>
- </parameter>
- <parameter name="caps" transfer-ownership="none">
- <type name="Caps" c:type="GstCaps*"/>
- </parameter>
- <parameter name="buf" transfer-ownership="none">
- <type name="Buffer" c:type="GstBuffer**"/>
- </parameter>
- </parameters>
- </method>
- <method name="alloc_buffer_and_set_caps"
- c:identifier="gst_pad_alloc_buffer_and_set_caps"
- doc="In addition to the function gst_pad_alloc_buffer(), this function
-automatically calls gst_pad_set_caps() when the caps of the
-newly allocated buffer are different from the @pad caps.
-After a renegotiation, the size of the new buffer returned in @buf could
-be of the wrong size for the new format and must be unreffed an reallocated
-in that case.
-result code other than #GST_FLOW_OK is an error and @buf should
-not be used.
-An error can occur if the pad is not connected or when the downstream
-peer elements cannot provide an acceptable buffer.
-MT safe.">
- <return-value transfer-ownership="full">
- <type name="FlowReturn" c:type="GstFlowReturn"/>
- </return-value>
- <parameters>
- <parameter name="offset" transfer-ownership="none">
- <type name="uint64" c:type="guint64"/>
- </parameter>
- <parameter name="size" transfer-ownership="none">
- <type name="int" c:type="gint"/>
- </parameter>
- <parameter name="caps" transfer-ownership="none">
- <type name="Caps" c:type="GstCaps*"/>
- </parameter>
- <parameter name="buf" transfer-ownership="none">
- <type name="Buffer" c:type="GstBuffer**"/>
- </parameter>
- </parameters>
- </method>
- <method name="set_activate_function"
- c:identifier="gst_pad_set_activate_function"
- doc="Sets the given activate function for @pad. The activate function will
-dispatch to gst_pad_activate_push() or gst_pad_activate_pull() to perform
-the actual activation. Only makes sense to set on sink pads.
-Call this function if your sink pad can start a pull-based task.">
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <parameter name="activate" transfer-ownership="none" scope="call">
- <type name="PadActivateFunction" c:type="GstPadActivateFunction"/>
- </parameter>
- </parameters>
- </method>
- <method name="set_activatepull_function"
- c:identifier="gst_pad_set_activatepull_function"
- doc="Sets the given activate_pull function for the pad. An activate_pull function
-prepares the element and any upstream connections for pulling. See XXX
-part-activation.txt for details.">
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <parameter name="activatepull"
- transfer-ownership="none"
- scope="call">
- <type name="PadActivateModeFunction"
- c:type="GstPadActivateModeFunction"/>
- </parameter>
- </parameters>
- </method>
- <method name="set_activatepush_function"
- c:identifier="gst_pad_set_activatepush_function"
- doc="Sets the given activate_push function for the pad. An activate_push function
-prepares the element for pushing. See XXX part-activation.txt for details.">
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <parameter name="activatepush"
- transfer-ownership="none"
- scope="call">
- <type name="PadActivateModeFunction"
- c:type="GstPadActivateModeFunction"/>
- </parameter>
- </parameters>
- </method>
- <method name="set_chain_function"
- c:identifier="gst_pad_set_chain_function"
- doc="Sets the given chain function for the pad. The chain function is called to
-process a #GstBuffer input buffer. see #GstPadChainFunction for more details.">
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <parameter name="chain" transfer-ownership="none" scope="call">
- <type name="PadChainFunction" c:type="GstPadChainFunction"/>
- </parameter>
- </parameters>
- </method>
- <method name="set_chain_list_function"
- c:identifier="gst_pad_set_chain_list_function"
- doc="Sets the given chain list function for the pad. The chainlist function is
-called to process a #GstBufferList input buffer list. See
-#GstPadChainListFunction for more details."
- version="0.10.24">
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <parameter name="chainlist" transfer-ownership="none" scope="call">
- <type name="PadChainListFunction"
- c:type="GstPadChainListFunction"/>
- </parameter>
- </parameters>
- </method>
- <method name="set_getrange_function"
- c:identifier="gst_pad_set_getrange_function"
- doc="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.">
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <parameter name="get" transfer-ownership="none" scope="call">
- <type name="PadGetRangeFunction" c:type="GstPadGetRangeFunction"/>
- </parameter>
- </parameters>
- </method>
- <method name="set_checkgetrange_function"
- c:identifier="gst_pad_set_checkgetrange_function"
- doc="Sets the given checkgetrange function for the pad. Implement this function
-on a pad if you dynamically support getrange based scheduling on the pad.">
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <parameter name="check" transfer-ownership="none" scope="call">
- <type name="PadCheckGetRangeFunction"
- c:type="GstPadCheckGetRangeFunction"/>
- </parameter>
- </parameters>
- </method>
- <method name="set_event_function"
- c:identifier="gst_pad_set_event_function"
- doc="Sets the given event handler for the pad.">
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <parameter name="event" transfer-ownership="none" scope="call">
- <type name="PadEventFunction" c:type="GstPadEventFunction"/>
- </parameter>
- </parameters>
- </method>
- <method name="set_link_function"
- c:identifier="gst_pad_set_link_function"
- doc="Sets the given link function for the pad. It will be called when
-the pad is linked with another pad.
-The return value #GST_PAD_LINK_OK should be used when the connection can be
-made.
-The return value #GST_PAD_LINK_REFUSED should be used when the connection
-cannot be made for some reason.
-If @link is installed on a source pad, it should call the #GstPadLinkFunction
-of the peer sink pad, if present.">
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <parameter name="link" transfer-ownership="none" scope="call">
- <type name="PadLinkFunction" c:type="GstPadLinkFunction"/>
- </parameter>
- </parameters>
- </method>
- <method name="set_unlink_function"
- c:identifier="gst_pad_set_unlink_function"
- doc="Sets the given unlink function for the pad. It will be called
-when the pad is unlinked.">
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <parameter name="unlink" transfer-ownership="none" scope="call">
- <type name="PadUnlinkFunction" c:type="GstPadUnlinkFunction"/>
- </parameter>
- </parameters>
- </method>
- <method name="can_link"
- c:identifier="gst_pad_can_link"
- doc="Checks if the source pad and the sink pad are compatible so they can be
-linked.">
- <return-value transfer-ownership="none">
- <type name="boolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <parameter name="sinkpad" transfer-ownership="none">
- <type name="Pad" c:type="GstPad*"/>
- </parameter>
- </parameters>
- </method>
- <method name="link"
- c:identifier="gst_pad_link"
- doc="Links the source pad and the sink pad.
-what went wrong.
-MT Safe.">
- <return-value transfer-ownership="full">
- <type name="PadLinkReturn" c:type="GstPadLinkReturn"/>
- </return-value>
- <parameters>
- <parameter name="sinkpad" transfer-ownership="none">
- <type name="Pad" c:type="GstPad*"/>
- </parameter>
- </parameters>
- </method>
- <method name="unlink"
- c:identifier="gst_pad_unlink"
- doc="Unlinks the source pad from the sink pad. Will emit the #GstPad::unlinked
-signal on both pads.
-the pads were not linked together.
-MT safe.">
- <return-value transfer-ownership="none">
- <type name="boolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <parameter name="sinkpad" transfer-ownership="none">
- <type name="Pad" c:type="GstPad*"/>
- </parameter>
- </parameters>
- </method>
- <method name="is_linked"
- c:identifier="gst_pad_is_linked"
- doc="Checks if a @pad is linked to another pad or not.
-MT safe.">
- <return-value transfer-ownership="none">
- <type name="boolean" c:type="gboolean"/>
- </return-value>
- </method>
- <method name="get_peer"
- c:identifier="gst_pad_get_peer"
- doc="Gets the peer of @pad. This function refs the peer pad so
-you need to unref it after use.
-MT safe.">
- <return-value transfer-ownership="full">
- <type name="Pad" c:type="GstPad*"/>
- </return-value>
- </method>
- <method name="set_getcaps_function"
- c:identifier="gst_pad_set_getcaps_function"
- doc="Sets the given getcaps function for the pad. @getcaps should return the
-allowable caps for a pad in the context of the element's state, its link to
-other elements, and the devices or files it has opened. These caps must be a
-subset of the pad template caps. In the NULL state with no links, @getcaps
-should ideally return the same caps as the pad template. In rare
-circumstances, an object property can affect the caps returned by @getcaps,
-but this is discouraged.
-You do not need to call this function if @pad's allowed caps are always the
-same as the pad template caps. This can only be true if the padtemplate
-has fixed simple caps.
-For most filters, the caps returned by @getcaps is directly affected by the
-allowed caps on other pads. For demuxers and decoders, the caps returned by
-the srcpad's getcaps function is directly related to the stream data. Again,
-helps with autoplugging.
-Note that the return value from @getcaps is owned by the caller, so the
-caller should unref the caps after usage.">
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <parameter name="getcaps" transfer-ownership="none" scope="call">
- <type name="PadGetCapsFunction" c:type="GstPadGetCapsFunction"/>
- </parameter>
- </parameters>
- </method>
- <method name="set_acceptcaps_function"
- c:identifier="gst_pad_set_acceptcaps_function"
- doc="Sets the given acceptcaps function for the pad. The acceptcaps function
-will be called to check if the pad can accept the given caps. Setting the
-acceptcaps function to NULL restores the default behaviour of allowing
-any caps that matches the caps from gst_pad_get_caps.">
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <parameter name="acceptcaps" transfer-ownership="none" scope="call">
- <type name="PadAcceptCapsFunction"
- c:type="GstPadAcceptCapsFunction"/>
- </parameter>
- </parameters>
- </method>
- <method name="set_fixatecaps_function"
- c:identifier="gst_pad_set_fixatecaps_function"
- doc="Sets the given fixatecaps function for the pad. The fixatecaps function
-will be called whenever the default values for a GstCaps needs to be
-filled in.">
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <parameter name="fixatecaps" transfer-ownership="none" scope="call">
- <type name="PadFixateCapsFunction"
- c:type="GstPadFixateCapsFunction"/>
- </parameter>
- </parameters>
- </method>
- <method name="set_setcaps_function"
- c:identifier="gst_pad_set_setcaps_function"
- doc="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.">
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <parameter name="setcaps" transfer-ownership="none" scope="call">
- <type name="PadSetCapsFunction" c:type="GstPadSetCapsFunction"/>
- </parameter>
- </parameters>
- </method>
- <method name="get_pad_template_caps"
- c:identifier="gst_pad_get_pad_template_caps"
- doc="Gets the capabilities for @pad's template.
-reference on the caps, make a copy (see gst_caps_copy ()).">
- <return-value transfer-ownership="none">
- <type name="Caps" c:type="GstCaps*"/>
- </return-value>
- </method>
- <method name="get_caps_reffed"
- c:identifier="gst_pad_get_caps_reffed"
- doc="Gets the capabilities this pad can produce or consume. Preferred function if
-one only wants to read or intersect the caps."
- version="0.10.26">
- <return-value transfer-ownership="full">
- <type name="Caps" c:type="GstCaps*"/>
- </return-value>
- </method>
- <method name="get_caps"
- c:identifier="gst_pad_get_caps"
- doc="Gets the capabilities this pad can produce or consume.
-Note that this method doesn't necessarily return the caps set by
-gst_pad_set_caps() - use GST_PAD_CAPS() for that instead.
-gst_pad_get_caps returns all possible caps a pad can operate with, using
-the pad's get_caps function;
-this returns the pad template caps if not explicitly set.
-MT safe.">
- <return-value transfer-ownership="full">
- <type name="Caps" c:type="GstCaps*"/>
- </return-value>
- </method>
- <method name="fixate_caps"
- c:identifier="gst_pad_fixate_caps"
- doc="Fixate a caps on the given pad. Modifies the caps in place, so you should
-make sure that the caps are actually writable (see gst_caps_make_writable()).">
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <parameter name="caps" transfer-ownership="none">
- <type name="Caps" c:type="GstCaps*"/>
- </parameter>
- </parameters>
- </method>
- <method name="accept_caps"
- c:identifier="gst_pad_accept_caps"
- doc="Check if the given pad accepts the caps.">
- <return-value transfer-ownership="none">
- <type name="boolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <parameter name="caps" transfer-ownership="none">
- <type name="Caps" c:type="GstCaps*"/>
- </parameter>
- </parameters>
- </method>
- <method name="set_caps"
- c:identifier="gst_pad_set_caps"
- doc="Sets the capabilities of this pad. The caps must be fixed. Any previous
-caps on the pad will be unreffed. This function refs the caps so you should
-unref if as soon as you don't need it anymore.
-It is possible to set NULL caps, which will make the pad unnegotiated
-again.
-or bad parameters were provided to this function.
-MT safe.">
- <return-value transfer-ownership="none">
- <type name="boolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <parameter name="caps" transfer-ownership="none">
- <type name="Caps" c:type="GstCaps*"/>
- </parameter>
- </parameters>
- </method>
- <method name="peer_get_caps_reffed"
- c:identifier="gst_pad_peer_get_caps_reffed"
- doc="Gets the capabilities of the peer connected to this pad. Preferred function
-if one only wants to read or intersect the caps."
- version="0.10.26">
- <return-value transfer-ownership="full">
- <type name="Caps" c:type="GstCaps*"/>
- </return-value>
- </method>
- <method name="peer_get_caps"
- c:identifier="gst_pad_peer_get_caps"
- doc="Gets the capabilities of the peer connected to this pad. Similar to
-gst_pad_get_caps().
-gst_caps_unref() to get rid of it. This function returns %NULL if there is
-no peer pad.">
- <return-value transfer-ownership="full">
- <type name="Caps" c:type="GstCaps*"/>
- </return-value>
- </method>
- <method name="peer_accept_caps"
- c:identifier="gst_pad_peer_accept_caps"
- doc="Check if the peer of @pad accepts @caps. If @pad has no peer, this function
-returns TRUE.">
- <return-value transfer-ownership="none">
- <type name="boolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <parameter name="caps" transfer-ownership="none">
- <type name="Caps" c:type="GstCaps*"/>
- </parameter>
- </parameters>
- </method>
- <method name="get_allowed_caps"
- c:identifier="gst_pad_get_allowed_caps"
- doc="Gets the capabilities of the allowed media types that can flow through
-The allowed capabilities is calculated as the intersection of the results of
-calling gst_pad_get_caps() on @pad and its peer. The caller owns a reference
-on the resulting caps.
-longer need it. This function returns NULL when @pad has no peer.
-MT safe.">
- <return-value transfer-ownership="full">
- <type name="Caps" c:type="GstCaps*"/>
- </return-value>
- </method>
- <method name="get_negotiated_caps"
- c:identifier="gst_pad_get_negotiated_caps"
- doc="Gets the capabilities of the media type that currently flows through @pad
-and its peer.
-This function can be used on both src and sinkpads. Note that srcpads are
-always negotiated before sinkpads so it is possible that the negotiated caps
-on the srcpad do not match the negotiated caps of the peer.
-you no longer need it. This function returns NULL when the @pad has no
-peer or is not negotiated yet.
-MT safe.">
- <return-value transfer-ownership="full">
- <type name="Caps" c:type="GstCaps*"/>
- </return-value>
- </method>
- <method name="push"
- c:identifier="gst_pad_push"
- doc="Pushes a buffer to the peer of @pad.
-This function will call an installed pad block before triggering any
-installed pad probes.
-If the caps on @buffer are different from the currently configured caps on
-gst_pad_set_setcaps_function()). In case of failure to renegotiate the new
-format, this function returns #GST_FLOW_NOT_NEGOTIATED.
-The function proceeds calling gst_pad_chain() on the peer pad and returns
-the value from that function. If @pad has no peer, #GST_FLOW_NOT_LINKED will
-be returned.
-In all cases, success or failure, the caller loses its reference to @buffer
-after calling this function.
-MT safe.">
- <return-value transfer-ownership="full">
- <type name="FlowReturn" c:type="GstFlowReturn"/>
- </return-value>
- <parameters>
- <parameter name="buffer" transfer-ownership="none">
- <type name="Buffer" c:type="GstBuffer*"/>
- </parameter>
- </parameters>
- </method>
- <method name="push_list"
- c:identifier="gst_pad_push_list"
- doc="Pushes a buffer list to the peer of @pad.
-This function will call an installed pad block before triggering any
-installed pad probes.
-If the caps on the first buffer in the first group of @list are different
-from the currently configured caps on @pad, this function will call any
-installed setcaps function on @pad (see gst_pad_set_setcaps_function()). In
-case of failure to renegotiate the new format, this function returns
-#GST_FLOW_NOT_NEGOTIATED.
-If there are any probes installed on @pad every group of the buffer list
-will be merged into a normal #GstBuffer and pushed via gst_pad_push and the
-buffer list will be unreffed.
-The function proceeds calling the chain function on the peer pad and returns
-the value from that function. If @pad has no peer, #GST_FLOW_NOT_LINKED will
-be returned. If the peer pad does not have any installed chainlist function
-every group buffer of the list will be merged into a normal #GstBuffer and
-chained via gst_pad_chain().
-In all cases, success or failure, the caller loses its reference to @list
-after calling this function.
-MT safe."
- version="0.10.24">
- <return-value transfer-ownership="full">
- <type name="FlowReturn" c:type="GstFlowReturn"/>
- </return-value>
- <parameters>
- <parameter name="list" transfer-ownership="none">
- <type name="BufferList" c:type="GstBufferList*"/>
- </parameter>
- </parameters>
- </method>
- <method name="check_pull_range"
- c:identifier="gst_pad_check_pull_range"
- doc="Checks if a gst_pad_pull_range() can be performed on the peer
-source pad. This function is used by plugins that want to check
-if they can use random access on the peer source pad.
-The peer sourcepad can implement a custom #GstPadCheckGetRangeFunction
-if it needs to perform some logic to determine if pull_range is
-possible.
-MT safe.">
- <return-value transfer-ownership="none">
- <type name="boolean" c:type="gboolean"/>
- </return-value>
- </method>
- <method name="pull_range"
- c:identifier="gst_pad_pull_range"
- doc="Pulls a @buffer from the peer pad.
-This function will first trigger the pad block signal if it was
-installed.
-When @pad is not linked #GST_FLOW_NOT_LINKED is returned else this
-function returns the result of gst_pad_get_range() on the peer pad.
-See gst_pad_get_range() for a list of return values and for the
-semantics of the arguments of this function.
-configured on @pad. Renegotiation within a running pull-mode pipeline is not
-supported.
-When this function returns #GST_FLOW_OK, @buffer will contain a valid
-#GstBuffer that should be freed with gst_buffer_unref() after usage.
-#GST_FLOW_OK is returned.
-MT safe.">
- <return-value transfer-ownership="full">
- <type name="FlowReturn" c:type="GstFlowReturn"/>
- </return-value>
- <parameters>
- <parameter name="offset" transfer-ownership="none">
- <type name="uint64" c:type="guint64"/>
- </parameter>
- <parameter name="size" transfer-ownership="none">
- <type name="uint" c:type="guint"/>
- </parameter>
- <parameter name="buffer" transfer-ownership="none">
- <type name="Buffer" c:type="GstBuffer**"/>
- </parameter>
- </parameters>
- </method>
- <method name="push_event"
- c:identifier="gst_pad_push_event"
- doc="Sends the event to the peer of the given pad. This function is
-mainly used by elements to send events to their peer
-elements.
-This function takes owership of the provided event so you should
-gst_event_ref() it if you want to reuse the event after this call.
-MT safe.">
- <return-value transfer-ownership="none">
- <type name="boolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <parameter name="event" transfer-ownership="none">
- <type name="Event" c:type="GstEvent*"/>
- </parameter>
- </parameters>
- </method>
- <method name="event_default"
- c:identifier="gst_pad_event_default"
- doc="Invokes the default event handler for the given pad. End-of-stream and
-discontinuity events are handled specially, and then the event is sent to all
-pads internally linked to @pad. Note that if there are many possible sink
-pads that are internally linked to @pad, only one will be sent an event.
-Multi-sinkpad elements should implement custom event handlers.">
- <return-value transfer-ownership="none">
- <type name="boolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <parameter name="event" transfer-ownership="none">
- <type name="Event" c:type="GstEvent*"/>
- </parameter>
- </parameters>
- </method>
- <method name="chain"
- c:identifier="gst_pad_chain"
- doc="Chain a buffer to @pad.
-The function returns #GST_FLOW_WRONG_STATE if the pad was flushing.
-If the caps on @buffer are different from the current caps on @pad, this
-function will call any setcaps function (see gst_pad_set_setcaps_function())
-installed on @pad. If the new caps are not acceptable for @pad, this
-function returns #GST_FLOW_NOT_NEGOTIATED.
-The function proceeds calling the chain function installed on @pad (see
-gst_pad_set_chain_function()) and the return value of that function is
-returned to the caller. #GST_FLOW_NOT_SUPPORTED is returned if @pad has no
-chain function.
-In all cases, success or failure, the caller loses its reference to @buffer
-after calling this function.
-MT safe.">
- <return-value transfer-ownership="full">
- <type name="FlowReturn" c:type="GstFlowReturn"/>
- </return-value>
- <parameters>
- <parameter name="buffer" transfer-ownership="none">
- <type name="Buffer" c:type="GstBuffer*"/>
- </parameter>
- </parameters>
- </method>
- <method name="chain_list"
- c:identifier="gst_pad_chain_list"
- doc="Chain a bufferlist to @pad.
-The function returns #GST_FLOW_WRONG_STATE if the pad was flushing.
-If the caps on the first buffer of @list are different from the current
-caps on @pad, this function will call any setcaps function
-(see gst_pad_set_setcaps_function()) installed on @pad. If the new caps
-are not acceptable for @pad, this function returns #GST_FLOW_NOT_NEGOTIATED.
-The function proceeds calling the chainlist function installed on @pad (see
-gst_pad_set_chain_list_function()) and the return value of that function is
-returned to the caller. #GST_FLOW_NOT_SUPPORTED is returned if @pad has no
-chainlist function.
-In all cases, success or failure, the caller loses its reference to @list
-after calling this function.
-MT safe."
- version="0.10.24">
- <return-value transfer-ownership="full">
- <type name="FlowReturn" c:type="GstFlowReturn"/>
- </return-value>
- <parameters>
- <parameter name="list" transfer-ownership="none">
- <type name="BufferList" c:type="GstBufferList*"/>
- </parameter>
- </parameters>
- </method>
- <method name="get_range"
- c:identifier="gst_pad_get_range"
- doc="When @pad is flushing this function returns #GST_FLOW_WRONG_STATE
-immediatly.
-Calls the getrange function of @pad, see #GstPadGetRangeFunction for a
-description of a getrange function. If @pad has no getrange function
-installed (see gst_pad_set_getrange_function()) this function returns
-#GST_FLOW_NOT_SUPPORTED.
-This is a lowlevel function. Usualy gst_pad_pull_range() is used.
-MT safe.">
- <return-value transfer-ownership="full">
- <type name="FlowReturn" c:type="GstFlowReturn"/>
- </return-value>
- <parameters>
- <parameter name="offset" transfer-ownership="none">
- <type name="uint64" c:type="guint64"/>
- </parameter>
- <parameter name="size" transfer-ownership="none">
- <type name="uint" c:type="guint"/>
- </parameter>
- <parameter name="buffer" transfer-ownership="none">
- <type name="Buffer" c:type="GstBuffer**"/>
- </parameter>
- </parameters>
- </method>
- <method name="send_event"
- c:identifier="gst_pad_send_event"
- doc="Sends the event to the pad. This function can be used
-by applications to send events in the pipeline.
-If @pad is a source pad, @event should be an upstream event. If @pad is a
-sink pad, @event should be a downstream event. For example, you would not
-send a #GST_EVENT_EOS on a src pad; EOS events only propagate downstream.
-Furthermore, some downstream events have to be serialized with data flow,
-like EOS, while some can travel out-of-band, like #GST_EVENT_FLUSH_START. If
-the event needs to be serialized with data flow, this function will take the
-pad's stream lock while calling its event function.
-To find out whether an event type is upstream, downstream, or downstream and
-serialized, see #GstEventTypeFlags, gst_event_type_get_flags(),
-#GST_EVENT_IS_UPSTREAM, #GST_EVENT_IS_DOWNSTREAM, and
-#GST_EVENT_IS_SERIALIZED. Note that in practice that an application or
-plugin doesn't need to bother itself with this information; the core handles
-all necessary locks and checks.
-This function takes owership of the provided event so you should
-gst_event_ref() it if you want to reuse the event after this call.">
- <return-value transfer-ownership="none">
- <type name="boolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <parameter name="event" transfer-ownership="none">
- <type name="Event" c:type="GstEvent*"/>
- </parameter>
- </parameters>
- </method>
- <method name="start_task"
- c:identifier="gst_pad_start_task"
- doc="Starts a task that repeatedly calls @func with @data. This function
-is mostly used in pad activation functions to start the dataflow.
-The #GST_PAD_STREAM_LOCK of @pad will automatically be acquired
-before @func is called.">
- <return-value transfer-ownership="none">
- <type name="boolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <parameter name="func"
- transfer-ownership="none"
- scope="call"
- closure="2">
- <type name="TaskFunction" c:type="GstTaskFunction"/>
- </parameter>
- <parameter name="data" transfer-ownership="none">
- <type name="any" c:type="gpointer"/>
- </parameter>
- </parameters>
- </method>
- <method name="pause_task"
- c:identifier="gst_pad_pause_task"
- doc="Pause the task of @pad. This function will also wait until the
-function executed by the task is finished if this function is not
-called from the task function.
-has no task.">
- <return-value transfer-ownership="none">
- <type name="boolean" c:type="gboolean"/>
- </return-value>
- </method>
- <method name="stop_task"
- c:identifier="gst_pad_stop_task"
- doc="Stop the task of @pad. This function will also make sure that the
-function executed by the task will effectively stop if not called
-from the GstTaskFunction.
-This function will deadlock if called from the GstTaskFunction of
-the task. Use gst_task_pause() instead.
-Regardless of whether the pad has a task, the stream lock is acquired and
-released so as to ensure that streaming through this pad has finished.">
- <return-value transfer-ownership="none">
- <type name="boolean" c:type="gboolean"/>
- </return-value>
- </method>
- <method name="set_internal_link_function"
- c:identifier="gst_pad_set_internal_link_function"
- doc="Sets the given internal link function for the pad."
- deprecated="Use the thread-safe gst_pad_set_iterate_internal_links_function()">
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <parameter name="intlink" transfer-ownership="none" scope="call">
- <type name="PadIntLinkFunction" c:type="GstPadIntLinkFunction"/>
- </parameter>
- </parameters>
- </method>
- <method name="get_internal_links"
- c:identifier="gst_pad_get_internal_links"
- doc="Gets a list of pads to which the given pad is linked to
-inside of the parent element.
-The caller must free this list after use.
-Not MT safe.
-could become invalid by the time the application accesses them. It's also
-possible that the list changes while handling the pads, which the caller of
-this function is unable to know. Use the thread-safe
-gst_pad_iterate_internal_links() instead."
- deprecated="This function does not ref the pads in the list so that they">
- <return-value transfer-ownership="full">
- <type name="GLib.List" c:type="GList*"/>
- </return-value>
- </method>
- <method name="get_internal_links_default"
- c:identifier="gst_pad_get_internal_links_default"
- doc="Gets a list of pads to which the given pad is linked to
-inside of the parent element.
-This is the default handler, and thus returns a list of all of the
-pads inside the parent element with opposite direction.
-The caller must free this list after use with g_list_free().
-Not MT safe.
-could become invalid by the time the application accesses them. It's also
-possible that the list changes while handling the pads, which the caller of
-this function is unable to know. Use the thread-safe
-gst_pad_iterate_internal_links_default() instead."
- deprecated="This function does not ref the pads in the list so that they">
- <return-value transfer-ownership="full">
- <type name="GLib.List" c:type="GList*"/>
- </return-value>
- </method>
- <method name="set_iterate_internal_links_function"
- c:identifier="gst_pad_set_iterate_internal_links_function"
- doc="Sets the given internal link iterator function for the pad."
- version="0.10.21">
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <parameter name="iterintlink" transfer-ownership="none" scope="call">
- <type name="PadIterIntLinkFunction"
- c:type="GstPadIterIntLinkFunction"/>
- </parameter>
- </parameters>
- </method>
- <method name="iterate_internal_links"
- c:identifier="gst_pad_iterate_internal_links"
- doc="Gets an iterator for the pads to which the given pad is linked to inside
-of the parent element.
-Each #GstPad element yielded by the iterator will have its refcount increased,
-so unref after use.
-iterator function configured. Use gst_iterator_free() after usage."
- version="0.10.21">
- <return-value transfer-ownership="full">
- <type name="Iterator" c:type="GstIterator*"/>
- </return-value>
- </method>
- <method name="iterate_internal_links_default"
- c:identifier="gst_pad_iterate_internal_links_default"
- doc="Iterate the list of pads to which the given pad is linked to inside of
-the parent element.
-This is the default handler, and thus returns an iterator of all of the
-pads inside the parent element with opposite direction.
-The caller must free this iterator after use with gst_iterator_free().
-returned pad with gst_object_unref()."
- version="0.10.21">
- <return-value transfer-ownership="full">
- <type name="Iterator" c:type="GstIterator*"/>
- </return-value>
- </method>
- <method name="set_query_type_function"
- c:identifier="gst_pad_set_query_type_function"
- doc="Set the given query type function for the pad.">
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <parameter name="type_func" transfer-ownership="none" scope="call">
- <type name="PadQueryTypeFunction"
- c:type="GstPadQueryTypeFunction"/>
- </parameter>
- </parameters>
- </method>
- <method name="get_query_types"
- c:identifier="gst_pad_get_query_types"
- doc="Get an array of supported queries that can be performed
-on this pad.">
- <return-value transfer-ownership="none">
- <type name="QueryType" c:type="GstQueryType*"/>
- </return-value>
- </method>
- <method name="get_query_types_default"
- c:identifier="gst_pad_get_query_types_default"
- doc="Invoke the default dispatcher for the query types on
-the pad.
-internally-linked pads has a query types function.">
- <return-value transfer-ownership="none">
- <type name="QueryType" c:type="GstQueryType*"/>
- </return-value>
- </method>
- <method name="query"
- c:identifier="gst_pad_query"
- doc="Dispatches a query to a pad. The query should have been allocated by the
-caller via one of the type-specific allocation functions in gstquery.h. The
-element is responsible for filling the query with an appropriate response,
-which should then be parsed with a type-specific query parsing function.
-Again, the caller is responsible for both the allocation and deallocation of
-the query structure.">
- <return-value transfer-ownership="none">
- <type name="boolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <parameter name="query" transfer-ownership="none">
- <type name="Query" c:type="GstQuery*"/>
- </parameter>
- </parameters>
- </method>
- <method name="peer_query"
- c:identifier="gst_pad_peer_query"
- doc="Performs gst_pad_query() on the peer of @pad.
-The caller is responsible for both the allocation and deallocation of
-the query structure.
-if @pad has no peer."
- version="0.10.15">
- <return-value transfer-ownership="none">
- <type name="boolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <parameter name="query" transfer-ownership="none">
- <type name="Query" c:type="GstQuery*"/>
- </parameter>
- </parameters>
- </method>
- <method name="set_query_function"
- c:identifier="gst_pad_set_query_function"
- doc="Set the given query function for the pad.">
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <parameter name="query" transfer-ownership="none" scope="call">
- <type name="PadQueryFunction" c:type="GstPadQueryFunction"/>
- </parameter>
- </parameters>
- </method>
- <method name="query_default"
- c:identifier="gst_pad_query_default"
- doc="Invokes the default query handler for the given pad.
-The query is sent to all pads internally linked to @pad. Note that
-if there are many possible sink pads that are internally linked to
-Multi-sinkpad elements should implement custom query handlers.">
- <return-value transfer-ownership="none">
- <type name="boolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <parameter name="query" transfer-ownership="none">
- <type name="Query" c:type="GstQuery*"/>
- </parameter>
- </parameters>
- </method>
- <method name="dispatcher"
- c:identifier="gst_pad_dispatcher"
- doc="Invokes the given dispatcher function on each respective peer of
-all pads that are internally linked to the given pad.
-The GstPadDispatcherFunction should return TRUE when no further pads
-need to be processed.">
- <return-value transfer-ownership="none">
- <type name="boolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <parameter name="dispatch"
- transfer-ownership="none"
- scope="call"
- closure="2">
- <type name="PadDispatcherFunction"
- c:type="GstPadDispatcherFunction"/>
- </parameter>
- <parameter name="data" transfer-ownership="none">
- <type name="any" c:type="gpointer"/>
- </parameter>
- </parameters>
- </method>
- <method name="use_fixed_caps"
- c:identifier="gst_pad_use_fixed_caps"
- doc="A helper function you can use that sets the
-pad. This way the function will always return the negotiated caps
-or in case the pad is not negotiated, the padtemplate caps.
-Use this function on a pad that, once gst_pad_set_caps() has been called
-on it, cannot be renegotiated to something else.">
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- </method>
- <method name="get_fixed_caps_func"
- c:identifier="gst_pad_get_fixed_caps_func"
- doc="A helper function you can use as a GetCaps function that
-will return the currently negotiated caps or the padtemplate
-when NULL.">
- <return-value transfer-ownership="full">
- <type name="Caps" c:type="GstCaps*"/>
- </return-value>
- </method>
- <method name="proxy_getcaps"
- c:identifier="gst_pad_proxy_getcaps"
- doc="Calls gst_pad_get_allowed_caps() for every other pad belonging to the
-same element as @pad, and returns the intersection of the results.
-This function is useful as a default getcaps function for an element
-that can handle any stream format, but requires all its pads to have
-the same caps. Two such elements are tee and adder.">
- <return-value transfer-ownership="full">
- <type name="Caps" c:type="GstCaps*"/>
- </return-value>
- </method>
- <method name="proxy_setcaps" c:identifier="gst_pad_proxy_setcaps">
- <return-value transfer-ownership="none">
- <type name="boolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <parameter name="caps" transfer-ownership="none">
- <type name="Caps" c:type="GstCaps*"/>
- </parameter>
- </parameters>
- </method>
- <method name="get_parent_element"
- c:identifier="gst_pad_get_parent_element"
- doc="Gets the parent of @pad, cast to a #GstElement. If a @pad has no parent or
-its parent is not an element, return NULL.
-unref when you're finished with it.
-MT safe.">
- <return-value transfer-ownership="full">
- <type name="Element" c:type="GstElement*"/>
- </return-value>
- </method>
- <method name="query_position"
- c:identifier="gst_pad_query_position"
- doc="On return contains the #GstFormat used.
-Queries a pad for the stream position.">
- <return-value transfer-ownership="none">
- <type name="boolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <parameter name="format"
- direction="inout"
- transfer-ownership="full"
- doc="a pointer to the #GstFormat asked for.">
- <type name="Format" c:type="GstFormat*"/>
- </parameter>
- <parameter name="cur"
- direction="out"
- transfer-ownership="full"
- doc="A location in which to store the current position, or NULL.">
- <type name="int64" c:type="gint64*"/>
- </parameter>
- </parameters>
- </method>
- <method name="query_duration"
- c:identifier="gst_pad_query_duration"
- doc="On return contains the #GstFormat used.
-Queries a pad for the total stream duration.">
- <return-value transfer-ownership="none">
- <type name="boolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <parameter name="format" transfer-ownership="none">
- <type name="Format" c:type="GstFormat*"/>
- </parameter>
- <parameter name="duration" direction="out" transfer-ownership="full">
- <type name="int64" c:type="gint64*"/>
- </parameter>
- </parameters>
- </method>
- <method name="query_convert"
- c:identifier="gst_pad_query_convert"
- doc="Queries a pad to convert @src_val in @src_format to @dest_format.">
- <return-value transfer-ownership="none">
- <type name="boolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <parameter name="src_format" transfer-ownership="none">
- <type name="Format" c:type="GstFormat"/>
- </parameter>
- <parameter name="src_val" transfer-ownership="none">
- <type name="int64" c:type="gint64"/>
- </parameter>
- <parameter name="dest_format" transfer-ownership="none">
- <type name="Format" c:type="GstFormat*"/>
- </parameter>
- <parameter name="dest_val" direction="out" transfer-ownership="full">
- <type name="int64" c:type="gint64*"/>
- </parameter>
- </parameters>
- </method>
- <method name="query_peer_position"
- c:identifier="gst_pad_query_peer_position"
- doc="Must be a sink pad.
-On return contains the #GstFormat used.
-Queries the peer of a given sink pad for the stream position.">
- <return-value transfer-ownership="none">
- <type name="boolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <parameter name="format" transfer-ownership="none">
- <type name="Format" c:type="GstFormat*"/>
- </parameter>
- <parameter name="cur" direction="out" transfer-ownership="full">
- <type name="int64" c:type="gint64*"/>
- </parameter>
- </parameters>
- </method>
- <method name="query_peer_duration"
- c:identifier="gst_pad_query_peer_duration"
- doc="Must be a sink pad.
-On return contains the #GstFormat used.
-Queries the peer pad of a given sink pad for the total stream duration.">
- <return-value transfer-ownership="none">
- <type name="boolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <parameter name="format" transfer-ownership="none">
- <type name="Format" c:type="GstFormat*"/>
- </parameter>
- <parameter name="duration" direction="out" transfer-ownership="full">
- <type name="int64" c:type="gint64*"/>
- </parameter>
- </parameters>
- </method>
- <method name="query_peer_convert"
- c:identifier="gst_pad_query_peer_convert"
- doc="Must be a sink pad.
-Queries the peer pad of a given sink pad to convert @src_val in @src_format
-to @dest_format.">
- <return-value transfer-ownership="none">
- <type name="boolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <parameter name="src_format" transfer-ownership="none">
- <type name="Format" c:type="GstFormat"/>
- </parameter>
- <parameter name="src_val" transfer-ownership="none">
- <type name="int64" c:type="gint64"/>
- </parameter>
- <parameter name="dest_format" transfer-ownership="none">
- <type name="Format" c:type="GstFormat*"/>
- </parameter>
- <parameter name="dest_val" direction="out" transfer-ownership="full">
- <type name="int64" c:type="gint64*"/>
- </parameter>
- </parameters>
- </method>
- <method name="add_data_probe"
- c:identifier="gst_pad_add_data_probe"
- doc="Adds a "data probe" to a pad. This function will be called whenever data
-passes through a pad. In this case data means both events and buffers. The
-probe will be called with the data as an argument, meaning @handler should
-have the same callback signature as the #GstPad::have-data signal.
-Note that the data will have a reference count greater than 1, so it will
-be immutable -- you must not change it.
-For source pads, the probe will be called after the blocking function, if any
-(see gst_pad_set_blocked_async()), but before looking up the peer to chain
-to. For sink pads, the probe function will be called before configuring the
-sink with new caps, if any, and before calling the pad's chain function.
-Your data probe should return TRUE to let the data continue to flow, or FALSE
-to drop it. Dropping data is rarely useful, but occasionally comes in handy
-with events.
-Although probes are implemented internally by connecting @handler to the
-have-data signal on the pad, if you want to remove a probe it is insufficient
-to only call g_signal_handler_disconnect on the returned handler id. To
-remove a probe, use the appropriate function, such as
-gst_pad_remove_data_probe().">
- <return-value transfer-ownership="none">
- <type name="ulong" c:type="gulong"/>
- </return-value>
- <parameters>
- <parameter name="handler"
- transfer-ownership="none"
- scope="call"
- closure="2">
- <type name="GObject.Callback" c:type="GCallback"/>
- </parameter>
- <parameter name="data" transfer-ownership="none">
- <type name="any" c:type="gpointer"/>
- </parameter>
- </parameters>
- </method>
- <method name="add_data_probe_full"
- c:identifier="gst_pad_add_data_probe_full"
- doc="Adds a "data probe" to a pad. This function will be called whenever data
-passes through a pad. In this case data means both events and buffers. The
-probe will be called with the data as an argument, meaning @handler should
-have the same callback signature as the #GstPad::have-data signal.
-Note that the data will have a reference count greater than 1, so it will
-be immutable -- you must not change it.
-For source pads, the probe will be called after the blocking function, if any
-(see gst_pad_set_blocked_async()), but before looking up the peer to chain
-to. For sink pads, the probe function will be called before configuring the
-sink with new caps, if any, and before calling the pad's chain function.
-Your data probe should return TRUE to let the data continue to flow, or FALSE
-to drop it. Dropping data is rarely useful, but occasionally comes in handy
-with events.
-Although probes are implemented internally by connecting @handler to the
-have-data signal on the pad, if you want to remove a probe it is insufficient
-to only call g_signal_handler_disconnect on the returned handler id. To
-remove a probe, use the appropriate function, such as
-gst_pad_remove_data_probe().
-The @notify function is called when the probe is disconnected and usually
-used to free @data."
- version="0.10.20">
- <return-value transfer-ownership="none">
- <type name="ulong" c:type="gulong"/>
- </return-value>
- <parameters>
- <parameter name="handler"
- transfer-ownership="none"
- scope="notified"
- closure="2"
- destroy="3">
- <type name="GObject.Callback" c:type="GCallback"/>
- </parameter>
- <parameter name="data" transfer-ownership="none">
- <type name="any" c:type="gpointer"/>
- </parameter>
- <parameter name="notify" transfer-ownership="none" scope="call">
- <type name="GLib.DestroyNotify" c:type="GDestroyNotify"/>
- </parameter>
- </parameters>
- </method>
- <method name="remove_data_probe"
- c:identifier="gst_pad_remove_data_probe"
- doc="Removes a data probe from @pad.">
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <parameter name="handler_id" transfer-ownership="none">
- <type name="uint" c:type="guint"/>
- </parameter>
- </parameters>
- </method>
- <method name="add_event_probe"
- c:identifier="gst_pad_add_event_probe"
- doc="Adds a probe that will be called for all events passing through a pad. See
-gst_pad_add_data_probe() for more information.">
- <return-value transfer-ownership="none">
- <type name="ulong" c:type="gulong"/>
- </return-value>
- <parameters>
- <parameter name="handler"
- transfer-ownership="none"
- scope="call"
- closure="2">
- <type name="GObject.Callback" c:type="GCallback"/>
- </parameter>
- <parameter name="data" transfer-ownership="none">
- <type name="any" c:type="gpointer"/>
- </parameter>
- </parameters>
- </method>
- <method name="add_event_probe_full"
- c:identifier="gst_pad_add_event_probe_full"
- doc="Adds a probe that will be called for all events passing through a pad. See
-gst_pad_add_data_probe() for more information.
-The @notify function is called when the probe is disconnected and usually
-used to free @data."
- version="0.10.20">
- <return-value transfer-ownership="none">
- <type name="ulong" c:type="gulong"/>
- </return-value>
- <parameters>
- <parameter name="handler"
- transfer-ownership="none"
- scope="notified"
- closure="2"
- destroy="3">
- <type name="GObject.Callback" c:type="GCallback"/>
- </parameter>
- <parameter name="data" transfer-ownership="none">
- <type name="any" c:type="gpointer"/>
- </parameter>
- <parameter name="notify" transfer-ownership="none" scope="call">
- <type name="GLib.DestroyNotify" c:type="GDestroyNotify"/>
- </parameter>
- </parameters>
- </method>
- <method name="remove_event_probe"
- c:identifier="gst_pad_remove_event_probe"
- doc="Removes an event probe from @pad.">
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <parameter name="handler_id" transfer-ownership="none">
- <type name="uint" c:type="guint"/>
- </parameter>
- </parameters>
- </method>
- <method name="add_buffer_probe"
- c:identifier="gst_pad_add_buffer_probe"
- doc="Adds a probe that will be called for all buffers passing through a pad. See
-gst_pad_add_data_probe() for more information.">
- <return-value transfer-ownership="none">
- <type name="ulong" c:type="gulong"/>
- </return-value>
- <parameters>
- <parameter name="handler"
- transfer-ownership="none"
- scope="call"
- closure="2">
- <type name="GObject.Callback" c:type="GCallback"/>
- </parameter>
- <parameter name="data" transfer-ownership="none">
- <type name="any" c:type="gpointer"/>
- </parameter>
- </parameters>
- </method>
- <method name="add_buffer_probe_full"
- c:identifier="gst_pad_add_buffer_probe_full"
- doc="Adds a probe that will be called for all buffers passing through a pad. See
-gst_pad_add_data_probe() for more information.
-The @notify function is called when the probe is disconnected and usually
-used to free @data."
- version="0.10.20">
- <return-value transfer-ownership="none">
- <type name="ulong" c:type="gulong"/>
- </return-value>
- <parameters>
- <parameter name="handler"
- transfer-ownership="none"
- scope="notified"
- closure="2"
- destroy="3">
- <type name="GObject.Callback" c:type="GCallback"/>
- </parameter>
- <parameter name="data" transfer-ownership="none">
- <type name="any" c:type="gpointer"/>
- </parameter>
- <parameter name="notify" transfer-ownership="none" scope="call">
- <type name="GLib.DestroyNotify" c:type="GDestroyNotify"/>
- </parameter>
- </parameters>
- </method>
- <method name="remove_buffer_probe"
- c:identifier="gst_pad_remove_buffer_probe"
- doc="Removes a buffer probe from @pad.">
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <parameter name="handler_id" transfer-ownership="none">
- <type name="uint" c:type="guint"/>
- </parameter>
- </parameters>
- </method>
- <property name="caps">
- <type name="Caps" c:type="GstCaps"/>
- </property>
- <property name="direction" writable="1" construct-only="1">
- <type name="PadDirection" c:type="GstPadDirection"/>
- </property>
- <property name="template" writable="1">
- <type name="PadTemplate" c:type="GstPadTemplate"/>
- </property>
- <field name="object">
- <type name="Object" c:type="GstObject"/>
- </field>
- <field name="element_private">
- <type name="any" c:type="gpointer"/>
- </field>
- <field name="padtemplate">
- <type name="PadTemplate" c:type="GstPadTemplate*"/>
- </field>
- <field name="direction">
- <type name="PadDirection" c:type="GstPadDirection"/>
- </field>
- <field name="stream_rec_lock">
- <type name="GLib.StaticRecMutex" c:type="GStaticRecMutex*"/>
- </field>
- <field name="task">
- <type name="Task" c:type="GstTask*"/>
- </field>
- <field name="preroll_lock">
- <type name="GLib.Mutex" c:type="GMutex*"/>
- </field>
- <field name="preroll_cond">
- <type name="GLib.Cond" c:type="GCond*"/>
- </field>
- <field name="block_cond">
- <type name="GLib.Cond" c:type="GCond*"/>
- </field>
- <field name="block_callback">
- <type name="PadBlockCallback" c:type="GstPadBlockCallback"/>
- </field>
- <field name="block_data">
- <type name="any" c:type="gpointer"/>
- </field>
- <field name="caps">
- <type name="Caps" c:type="GstCaps*"/>
- </field>
- <field name="getcapsfunc">
- <type name="PadGetCapsFunction" c:type="GstPadGetCapsFunction"/>
- </field>
- <field name="setcapsfunc">
- <type name="PadSetCapsFunction" c:type="GstPadSetCapsFunction"/>
- </field>
- <field name="acceptcapsfunc">
- <type name="PadAcceptCapsFunction" c:type="GstPadAcceptCapsFunction"/>
- </field>
- <field name="fixatecapsfunc">
- <type name="PadFixateCapsFunction" c:type="GstPadFixateCapsFunction"/>
- </field>
- <field name="activatefunc">
- <type name="PadActivateFunction" c:type="GstPadActivateFunction"/>
- </field>
- <field name="activatepushfunc">
- <type name="PadActivateModeFunction"
- c:type="GstPadActivateModeFunction"/>
- </field>
- <field name="activatepullfunc">
- <type name="PadActivateModeFunction"
- c:type="GstPadActivateModeFunction"/>
- </field>
- <field name="linkfunc">
- <type name="PadLinkFunction" c:type="GstPadLinkFunction"/>
- </field>
- <field name="unlinkfunc">
- <type name="PadUnlinkFunction" c:type="GstPadUnlinkFunction"/>
- </field>
- <field name="peer">
- <type name="Pad" c:type="GstPad*"/>
- </field>
- <field name="sched_private">
- <type name="any" c:type="gpointer"/>
- </field>
- <field name="chainfunc">
- <type name="PadChainFunction" c:type="GstPadChainFunction"/>
- </field>
- <field name="checkgetrangefunc">
- <type name="PadCheckGetRangeFunction"
- c:type="GstPadCheckGetRangeFunction"/>
- </field>
- <field name="getrangefunc">
- <type name="PadGetRangeFunction" c:type="GstPadGetRangeFunction"/>
- </field>
- <field name="eventfunc">
- <type name="PadEventFunction" c:type="GstPadEventFunction"/>
- </field>
- <field name="mode">
- <type name="ActivateMode" c:type="GstActivateMode"/>
- </field>
- <field name="querytypefunc">
- <type name="PadQueryTypeFunction" c:type="GstPadQueryTypeFunction"/>
- </field>
- <field name="queryfunc">
- <type name="PadQueryFunction" c:type="GstPadQueryFunction"/>
- </field>
- <field name="intlinkfunc">
- <type name="PadIntLinkFunction" c:type="GstPadIntLinkFunction"/>
- </field>
- <field name="bufferallocfunc">
- <type name="PadBufferAllocFunction"
- c:type="GstPadBufferAllocFunction"/>
- </field>
- <field name="do_buffer_signals">
- <type name="int" c:type="gint"/>
- </field>
- <field name="do_event_signals">
- <type name="int" c:type="gint"/>
- </field>
- <field name="iterintlinkfunc">
- <type name="PadIterIntLinkFunction"
- c:type="GstPadIterIntLinkFunction"/>
- </field>
- <field name="block_destroy_data">
- <type name="GLib.DestroyNotify" c:type="GDestroyNotify"/>
- </field>
- <union name="abidata" c:type="abidata">
- <record name="ABI" c:type="ABI">
- <field name="block_callback_called" writable="1">
- <type name="boolean" c:type="gboolean"/>
- </field>
- <field name="priv" writable="1">
- <type name="PadPrivate" c:type="GstPadPrivate*"/>
- </field>
- </record>
- <field name="_gst_reserved" writable="1">
- <array zero-terminated="0" c:type="gpointer" fixed-size="2">
- <type name="any"/>
- </array>
- </field>
- </union>
- <glib:signal name="have-data"
- doc="Signals that new data is available on the pad. This signal is used
-internally for implementing pad probes.
-See gst_pad_add_*_probe functions.">
- <return-value transfer-ownership="full">
- <type name="boolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <parameter name="mini_obj" transfer-ownership="none">
- <type name="MiniObject" c:type="GstMiniObject"/>
- </parameter>
- </parameters>
- </glib:signal>
- <glib:signal name="linked"
- doc="Signals that a pad has been linked to the peer pad.">
- <return-value transfer-ownership="full">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <parameter name="peer" transfer-ownership="none">
- <type name="Pad" c:type="GstPad"/>
- </parameter>
- </parameters>
- </glib:signal>
- <glib:signal name="request-link"
- doc="Signals that a pad connection has been requested.">
- <return-value transfer-ownership="full">
- <type name="none" c:type="void"/>
- </return-value>
- </glib:signal>
- <glib:signal name="unlinked"
- doc="Signals that a pad has been unlinked from the peer pad.">
- <return-value transfer-ownership="full">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <parameter name="peer" transfer-ownership="none">
- <type name="Pad" c:type="GstPad"/>
- </parameter>
- </parameters>
- </glib:signal>
- </class>
- <callback name="PadAcceptCapsFunction"
- c:type="GstPadAcceptCapsFunction"
- doc="Check if @pad can accept @caps. By default this function will see if @caps
-intersect with the result from gst_pad_get_caps() by can be overridden to
-perform extra checks.">
- <return-value transfer-ownership="none">
- <type name="boolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <parameter name="pad" transfer-ownership="none">
- <type name="Pad" c:type="GstPad*"/>
- </parameter>
- <parameter name="caps" transfer-ownership="none">
- <type name="Caps" c:type="GstCaps*"/>
- </parameter>
- </parameters>
- </callback>
- <callback name="PadActivateFunction"
- c:type="GstPadActivateFunction"
- doc="This function is called when the pad is activated during the element
-READY to PAUSED state change. By default this function will call the
-activate function that puts the pad in push mode but elements can
-override this function to activate the pad in pull mode if they wish.">
- <return-value transfer-ownership="none">
- <type name="boolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <parameter name="pad" transfer-ownership="none">
- <type name="Pad" c:type="GstPad*"/>
- </parameter>
- </parameters>
- </callback>
- <callback name="PadActivateModeFunction"
- c:type="GstPadActivateModeFunction"
- doc="The prototype of the push and pull activate functions.">
- <return-value transfer-ownership="none">
- <type name="boolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <parameter name="pad" transfer-ownership="none">
- <type name="Pad" c:type="GstPad*"/>
- </parameter>
- <parameter name="active" transfer-ownership="none">
- <type name="boolean" c:type="gboolean"/>
- </parameter>
- </parameters>
- </callback>
- <callback name="PadBlockCallback"
- c:type="GstPadBlockCallback"
- doc="Callback used by gst_pad_set_blocked_async(). Gets called when the blocking
-operation succeeds.">
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <parameter name="pad" transfer-ownership="none">
- <type name="Pad" c:type="GstPad*"/>
- </parameter>
- <parameter name="blocked" transfer-ownership="none">
- <type name="boolean" c:type="gboolean"/>
- </parameter>
- <parameter name="user_data" transfer-ownership="none" closure="2">
- <type name="any" c:type="gpointer"/>
- </parameter>
- </parameters>
- </callback>
- <callback name="PadBufferAllocFunction"
- c:type="GstPadBufferAllocFunction"
- doc="Ask the sinkpad @pad to allocate a buffer with @offset, @size and @caps.
-The result will be stored in @buf.
-The purpose of this function is to allocate a buffer that is optimal to
-be processed by @pad. The function is mostly overridden by elements that can
-provide a hardware buffer in order to avoid additional memcpy operations.
-The function can return a buffer that has caps different from the requested
-new caps.
-If a format change was requested, the returned buffer will be one to hold
-the data of said new caps, so its size might be different from the requested
-When this function returns anything else than #GST_FLOW_OK, the buffer allocation
-failed and @buf does not contain valid data. If the function returns #GST_FLOW_OK and
-the @buf is NULL, a #GstBuffer will be created with @caps, @offset and @size.
-By default this function returns a new buffer of @size and with @caps containing
-purely malloced data. The buffer should be freed with gst_buffer_unref()
-after usage.
-value means @buf does not hold a valid buffer.">
- <return-value transfer-ownership="full">
- <type name="FlowReturn" c:type="GstFlowReturn"/>
- </return-value>
- <parameters>
- <parameter name="pad" transfer-ownership="none">
- <type name="Pad" c:type="GstPad*"/>
- </parameter>
- <parameter name="offset" transfer-ownership="none">
- <type name="uint64" c:type="guint64"/>
- </parameter>
- <parameter name="size" transfer-ownership="none">
- <type name="uint" c:type="guint"/>
- </parameter>
- <parameter name="caps" transfer-ownership="none">
- <type name="Caps" c:type="GstCaps*"/>
- </parameter>
- <parameter name="buf" transfer-ownership="none">
- <type name="Buffer" c:type="GstBuffer**"/>
- </parameter>
- </parameters>
- </callback>
- <callback name="PadChainFunction"
- c:type="GstPadChainFunction"
- doc="A function that will be called on sinkpads when chaining buffers.
-The function typically processes the data contained in the buffer and
-either consumes the data or passes it on to the internally linked pad(s).
-The implementer of this function receives a refcount to @buffer and should
-gst_buffer_unref() when the buffer is no longer needed.
-When a chain function detects an error in the data stream, it must post an
-error on the bus and return an appropriate #GstFlowReturn value.">
- <return-value transfer-ownership="full">
- <type name="FlowReturn" c:type="GstFlowReturn"/>
- </return-value>
- <parameters>
- <parameter name="pad" transfer-ownership="none">
- <type name="Pad" c:type="GstPad*"/>
- </parameter>
- <parameter name="buffer" transfer-ownership="none">
- <type name="Buffer" c:type="GstBuffer*"/>
- </parameter>
- </parameters>
- </callback>
- <callback name="PadChainListFunction"
- c:type="GstPadChainListFunction"
- doc="A function that will be called on sinkpads when chaining buffer lists.
-The function typically processes the data contained in the buffer list and
-either consumes the data or passes it on to the internally linked pad(s).
-The implementer of this function receives a refcount to @list and
-should gst_buffer_list_unref() when the list is no longer needed.
-When a chainlist function detects an error in the data stream, it must
-post an error on the bus and return an appropriate #GstFlowReturn value.">
- <return-value transfer-ownership="full">
- <type name="FlowReturn" c:type="GstFlowReturn"/>
- </return-value>
- <parameters>
- <parameter name="pad" transfer-ownership="none">
- <type name="Pad" c:type="GstPad*"/>
- </parameter>
- <parameter name="list" transfer-ownership="none">
- <type name="BufferList" c:type="GstBufferList*"/>
- </parameter>
- </parameters>
- </callback>
- <callback name="PadCheckGetRangeFunction"
- c:type="GstPadCheckGetRangeFunction"
- doc="Check if @pad can be activated in pull mode.
-This function will be deprecated after 0.10; use the seeking query to check
-if a pad can support random access.">
- <return-value transfer-ownership="none">
- <type name="boolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <parameter name="pad" transfer-ownership="none">
- <type name="Pad" c:type="GstPad*"/>
- </parameter>
- </parameters>
- </callback>
- <record name="PadClass"
- c:type="GstPadClass"
- glib:is-gtype-struct-for="Pad">
- <field name="parent_class">
- <type name="ObjectClass" c:type="GstObjectClass"/>
- </field>
- <field name="linked">
- <callback name="linked" c:type="linked">
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <parameter name="pad" transfer-ownership="none">
- <type name="Pad" c:type="GstPad*"/>
- </parameter>
- <parameter name="peer" transfer-ownership="none">
- <type name="Pad" c:type="GstPad*"/>
- </parameter>
- </parameters>
- </callback>
- </field>
- <field name="unlinked">
- <callback name="unlinked" c:type="unlinked">
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <parameter name="pad" transfer-ownership="none">
- <type name="Pad" c:type="GstPad*"/>
- </parameter>
- <parameter name="peer" transfer-ownership="none">
- <type name="Pad" c:type="GstPad*"/>
- </parameter>
- </parameters>
- </callback>
- </field>
- <field name="request_link">
- <callback name="request_link" c:type="request_link">
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <parameter name="pad" transfer-ownership="none">
- <type name="Pad" c:type="GstPad*"/>
- </parameter>
- </parameters>
- </callback>
- </field>
- <field name="have_data">
- <callback name="have_data" c:type="have_data">
- <return-value transfer-ownership="none">
- <type name="boolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <parameter name="pad" transfer-ownership="none">
- <type name="Pad" c:type="GstPad*"/>
- </parameter>
- <parameter name="data" transfer-ownership="none">
- <type name="MiniObject" c:type="GstMiniObject*"/>
- </parameter>
- </parameters>
- </callback>
- </field>
- <field name="_gst_reserved">
- <array zero-terminated="0" c:type="gpointer" fixed-size="4">
- <type name="any"/>
- </array>
- </field>
- </record>
- <enumeration name="PadDirection"
- doc="The direction of a pad."
- c:type="GstPadDirection">
- <member name="unknown" value="0" c:identifier="GST_PAD_UNKNOWN"/>
- <member name="src" value="1" c:identifier="GST_PAD_SRC"/>
- <member name="sink" value="2" c:identifier="GST_PAD_SINK"/>
- </enumeration>
- <callback name="PadDispatcherFunction"
- c:type="GstPadDispatcherFunction"
- doc="A dispatcher function is called for all internally linked pads, see
-gst_pad_dispatcher().">
- <return-value transfer-ownership="none">
- <type name="boolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <parameter name="pad" transfer-ownership="none">
- <type name="Pad" c:type="GstPad*"/>
- </parameter>
- <parameter name="data" transfer-ownership="none">
- <type name="any" c:type="gpointer"/>
- </parameter>
- </parameters>
- </callback>
- <callback name="PadEventFunction"
- c:type="GstPadEventFunction"
- doc="Function signature to handle an event for the pad.">
- <return-value transfer-ownership="none">
- <type name="boolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <parameter name="pad" transfer-ownership="none">
- <type name="Pad" c:type="GstPad*"/>
- </parameter>
- <parameter name="event" transfer-ownership="none">
- <type name="Event" c:type="GstEvent*"/>
- </parameter>
- </parameters>
- </callback>
- <callback name="PadFixateCapsFunction"
- c:type="GstPadFixateCapsFunction"
- doc="Given possibly unfixed caps @caps, let @pad use its default prefered
-format to make a fixed caps. @caps should be writable. By default this
-function will pick the first value of any ranges or lists in the caps but
-elements can override this function to perform other behaviour.">
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <parameter name="pad" transfer-ownership="none">
- <type name="Pad" c:type="GstPad*"/>
- </parameter>
- <parameter name="caps" transfer-ownership="none">
- <type name="Caps" c:type="GstCaps*"/>
- </parameter>
- </parameters>
- </callback>
- <bitfield name="PadFlags" doc="Pad state flags" c:type="GstPadFlags">
- <member name="blocked" value="16" c:identifier="GST_PAD_BLOCKED"/>
- <member name="flushing" value="32" c:identifier="GST_PAD_FLUSHING"/>
- <member name="in_getcaps" value="64" c:identifier="GST_PAD_IN_GETCAPS"/>
- <member name="in_setcaps" value="128" c:identifier="GST_PAD_IN_SETCAPS"/>
- <member name="blocking" value="256" c:identifier="GST_PAD_BLOCKING"/>
- <member name="flag_last" value="4096" c:identifier="GST_PAD_FLAG_LAST"/>
- </bitfield>
- <callback name="PadGetCapsFunction"
- c:type="GstPadGetCapsFunction"
- doc="Returns a copy of the capabilities of the specified pad. By default this
-function will return the pad template capabilities, but can optionally
-be overridden by elements.">
- <return-value transfer-ownership="full">
- <type name="Caps" c:type="GstCaps*"/>
- </return-value>
- <parameters>
- <parameter name="pad" transfer-ownership="none">
- <type name="Pad" c:type="GstPad*"/>
- </parameter>
- </parameters>
- </callback>
- <callback name="PadGetRangeFunction"
- c:type="GstPadGetRangeFunction"
- doc="This function will be called on source pads when a peer element
-request a buffer at the specified @offset and @length. If this function
-returns #GST_FLOW_OK, the result buffer will be stored in @buffer. The
-contents of @buffer is invalid for any other return value.
-This function is installed on a source pad with
-gst_pad_set_getrange_function() and can only be called on source pads after
-they are successfully activated with gst_pad_activate_pull().
-between 0 and the length in bytes of the data available on @pad. The
-length (duration in bytes) can be retrieved with a #GST_QUERY_DURATION or with a
-#GST_QUERY_SEEKING.
-Any @offset larger or equal than the length will make the function return
-#GST_FLOW_UNEXPECTED, which corresponds to EOS. In this case @buffer does not
-contain a valid buffer.
-The buffer size of @buffer might be smaller than @length when @offset is near
-the end of the stream.
-It is allowed to call this function with a 0 @length and valid @offset, in
-which case @buffer will contain a 0-sized buffer and the function returns
-#GST_FLOW_OK.
-When this function is called with a -1 @offset, the sequentially next buffer
-of length @length in the stream is returned.
-When this function is called with a -1 @length, a buffer with a default
-optimal length is returned in @buffer. The length might depend on the value
-of @offset.">
- <return-value transfer-ownership="full">
- <type name="FlowReturn" c:type="GstFlowReturn"/>
- </return-value>
- <parameters>
- <parameter name="pad" transfer-ownership="none">
- <type name="Pad" c:type="GstPad*"/>
- </parameter>
- <parameter name="offset" transfer-ownership="none">
- <type name="uint64" c:type="guint64"/>
- </parameter>
- <parameter name="length" transfer-ownership="none">
- <type name="uint" c:type="guint"/>
- </parameter>
- <parameter name="buffer" transfer-ownership="none">
- <type name="Buffer" c:type="GstBuffer**"/>
- </parameter>
- </parameters>
- </callback>
- <callback name="PadIntLinkFunction"
- c:type="GstPadIntLinkFunction"
- doc="The signature of the internal pad link function.
-the inside of the parent element.
-The caller must call g_list_free() on it after use."
- deprecated="use the threadsafe #GstPadIterIntLinkFunction instead.">
- <return-value transfer-ownership="full">
- <type name="GLib.List" c:type="GList*"/>
- </return-value>
- <parameters>
- <parameter name="pad" transfer-ownership="none">
- <type name="Pad" c:type="GstPad*"/>
- </parameter>
- </parameters>
- </callback>
- <callback name="PadIterIntLinkFunction"
- c:type="GstPadIterIntLinkFunction"
- doc="The signature of the internal pad link iterator function.
-linked to the given pad on the inside of the parent element.
-the caller must call gst_iterator_free() after usage.
-Since 0.10.21">
- <return-value transfer-ownership="full">
- <type name="Iterator" c:type="GstIterator*"/>
- </return-value>
- <parameters>
- <parameter name="pad" transfer-ownership="none">
- <type name="Pad" c:type="GstPad*"/>
- </parameter>
- </parameters>
- </callback>
- <callback name="PadLinkFunction" c:type="GstPadLinkFunction">
- <return-value transfer-ownership="full">
- <type name="PadLinkReturn" c:type="GstPadLinkReturn"/>
- </return-value>
- <parameters>
- <parameter name="pad" transfer-ownership="none">
- <type name="Pad" c:type="GstPad*"/>
- </parameter>
- <parameter name="peer" transfer-ownership="none">
- <type name="Pad" c:type="GstPad*"/>
- </parameter>
- </parameters>
- </callback>
- <enumeration name="PadLinkReturn"
- doc="Result values from gst_pad_link and friends."
- c:type="GstPadLinkReturn">
- <member name="ok" value="0" c:identifier="GST_PAD_LINK_OK"/>
- <member name="wrong_hierarchy"
- value="-1"
- c:identifier="GST_PAD_LINK_WRONG_HIERARCHY"/>
- <member name="was_linked"
- value="-2"
- c:identifier="GST_PAD_LINK_WAS_LINKED"/>
- <member name="wrong_direction"
- value="-3"
- c:identifier="GST_PAD_LINK_WRONG_DIRECTION"/>
- <member name="noformat" value="-4" c:identifier="GST_PAD_LINK_NOFORMAT"/>
- <member name="nosched" value="-5" c:identifier="GST_PAD_LINK_NOSCHED"/>
- <member name="refused" value="-6" c:identifier="GST_PAD_LINK_REFUSED"/>
- </enumeration>
- <enumeration name="PadPresence"
- doc="gst_element_get_request_pad().
-Indicates when this pad will become available."
- c:type="GstPadPresence">
- <member name="always" value="0" c:identifier="GST_PAD_ALWAYS"/>
- <member name="sometimes" value="1" c:identifier="GST_PAD_SOMETIMES"/>
- <member name="request" value="2" c:identifier="GST_PAD_REQUEST"/>
- </enumeration>
- <record name="PadPrivate" c:type="GstPadPrivate">
- </record>
- <callback name="PadQueryFunction"
- c:type="GstPadQueryFunction"
- doc="The signature of the query function.">
- <return-value transfer-ownership="none">
- <type name="boolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <parameter name="pad" transfer-ownership="none">
- <type name="Pad" c:type="GstPad*"/>
- </parameter>
- <parameter name="query" transfer-ownership="none">
- <type name="Query" c:type="GstQuery*"/>
- </parameter>
- </parameters>
- </callback>
- <callback name="PadQueryTypeFunction"
- c:type="GstPadQueryTypeFunction"
- doc="The signature of the query types function.">
- <return-value transfer-ownership="none">
- <type name="QueryType" c:type="GstQueryType*"/>
- </return-value>
- <parameters>
- <parameter name="pad" transfer-ownership="none">
- <type name="Pad" c:type="GstPad*"/>
- </parameter>
- </parameters>
- </callback>
- <callback name="PadSetCapsFunction"
- c:type="GstPadSetCapsFunction"
- doc="Set @caps on @pad. By default this function updates the caps of the
-pad but the function can be overriden by elements to perform extra
-actions or verifications.">
- <return-value transfer-ownership="none">
- <type name="boolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <parameter name="pad" transfer-ownership="none">
- <type name="Pad" c:type="GstPad*"/>
- </parameter>
- <parameter name="caps" transfer-ownership="none">
- <type name="Caps" c:type="GstCaps*"/>
- </parameter>
- </parameters>
- </callback>
- <class name="PadTemplate"
- c:type="GstPadTemplate"
- doc="The padtemplate object."
- parent="Object"
- glib:type-name="GstPadTemplate"
- glib:get-type="gst_pad_template_get_type"
- glib:type-struct="PadTemplateClass">
- <constructor name="new"
- c:identifier="gst_pad_template_new"
- doc="Creates a new pad template with a name according to the given template
-and with the given arguments. This functions takes ownership of the provided
-caps, so be sure to not use them afterwards.">
- <return-value transfer-ownership="full">
- <type name="PadTemplate" c:type="GstPadTemplate*"/>
- </return-value>
- <parameters>
- <parameter name="name_template" transfer-ownership="none">
- <type name="utf8" c:type="gchar*"/>
- </parameter>
- <parameter name="direction" transfer-ownership="none">
- <type name="PadDirection" c:type="GstPadDirection"/>
- </parameter>
- <parameter name="presence" transfer-ownership="none">
- <type name="PadPresence" c:type="GstPadPresence"/>
- </parameter>
- <parameter name="caps" transfer-ownership="none">
- <type name="Caps" c:type="GstCaps*"/>
- </parameter>
- </parameters>
- </constructor>
- <method name="get_caps"
- c:identifier="gst_pad_template_get_caps"
- doc="Gets the capabilities of the pad template.
-the caps, take a ref (see gst_caps_ref ()).">
- <return-value transfer-ownership="full">
- <type name="Caps" c:type="GstCaps*"/>
- </return-value>
- </method>
- <method name="pad_created"
- c:identifier="gst_pad_template_pad_created"
- doc="Emit the pad-created signal for this template when created by this pad.">
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <parameter name="pad" transfer-ownership="none">
- <type name="Pad" c:type="GstPad*"/>
- </parameter>
- </parameters>
- </method>
- <property name="caps" writable="1" construct-only="1">
- <type name="Caps" c:type="GstCaps"/>
- </property>
- <property name="direction" writable="1" construct-only="1">
- <type name="PadDirection" c:type="GstPadDirection"/>
- </property>
- <property name="name-template" writable="1" construct-only="1">
- <type name="utf8" c:type="gchararray"/>
- </property>
- <property name="presence" writable="1" construct-only="1">
- <type name="PadPresence" c:type="GstPadPresence"/>
- </property>
- <field name="object">
- <type name="Object" c:type="GstObject"/>
- </field>
- <field name="name_template">
- <type name="utf8" c:type="gchar*"/>
- </field>
- <field name="direction">
- <type name="PadDirection" c:type="GstPadDirection"/>
- </field>
- <field name="presence">
- <type name="PadPresence" c:type="GstPadPresence"/>
- </field>
- <field name="caps">
- <type name="Caps" c:type="GstCaps*"/>
- </field>
- <field name="_gst_reserved">
- <array zero-terminated="0" c:type="gpointer" fixed-size="4">
- <type name="any"/>
- </array>
- </field>
- <glib:signal name="pad-created"
- doc="This signal is fired when an element creates a pad from this template.">
- <return-value transfer-ownership="full">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <parameter name="pad" transfer-ownership="none">
- <type name="Pad" c:type="GstPad"/>
- </parameter>
- </parameters>
- </glib:signal>
- </class>
- <record name="PadTemplateClass"
- c:type="GstPadTemplateClass"
- glib:is-gtype-struct-for="PadTemplate">
- <field name="parent_class">
- <type name="ObjectClass" c:type="GstObjectClass"/>
- </field>
- <field name="pad_created">
- <callback name="pad_created" c:type="pad_created">
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <parameter name="templ" transfer-ownership="none">
- <type name="PadTemplate" c:type="GstPadTemplate*"/>
- </parameter>
- <parameter name="pad" transfer-ownership="none">
- <type name="Pad" c:type="GstPad*"/>
- </parameter>
- </parameters>
- </callback>
- </field>
- <field name="_gst_reserved">
- <array zero-terminated="0" c:type="gpointer" fixed-size="4">
- <type name="any"/>
- </array>
- </field>
- </record>
- <bitfield name="PadTemplateFlags"
- doc="Flags for the padtemplate"
- c:type="GstPadTemplateFlags">
- <member name="fixed" value="16" c:identifier="GST_PAD_TEMPLATE_FIXED"/>
- <member name="flag_last"
- value="256"
- c:identifier="GST_PAD_TEMPLATE_FLAG_LAST"/>
- </bitfield>
- <callback name="PadUnlinkFunction" c:type="GstPadUnlinkFunction">
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <parameter name="pad" transfer-ownership="none">
- <type name="Pad" c:type="GstPad*"/>
- </parameter>
- </parameters>
- </callback>
- <record name="ParamSpecFraction"
- c:type="GstParamSpecFraction"
- doc="A GParamSpec derived structure that contains the meta data for fractional
-properties.">
- <field name="parent_instance" writable="1">
- <type name="GObject.ParamSpec" c:type="GParamSpec"/>
- </field>
- <field name="min_num" writable="1">
- <type name="int" c:type="gint"/>
- </field>
- <field name="min_den" writable="1">
- <type name="int" c:type="gint"/>
- </field>
- <field name="max_num" writable="1">
- <type name="int" c:type="gint"/>
- </field>
- <field name="max_den" writable="1">
- <type name="int" c:type="gint"/>
- </field>
- <field name="def_num" writable="1">
- <type name="int" c:type="gint"/>
- </field>
- <field name="def_den" writable="1">
- <type name="int" c:type="gint"/>
- </field>
- </record>
- <record name="ParamSpecMiniObject"
- c:type="GstParamSpecMiniObject"
- doc="A %GParamSpec derived structure that contains the meta data
-for %GstMiniObject properties.">
- <field name="parent_instance" writable="1">
- <type name="GObject.ParamSpec" c:type="GParamSpec"/>
- </field>
- </record>
- <record name="ParseContext"
- c:type="GstParseContext"
- doc="Opaque structure."
- version="0.10.20">
- <constructor name="new"
- c:identifier="gst_parse_context_new"
- doc="Allocates a parse context for use with gst_parse_launch_full() or
-gst_parse_launchv_full().
-when no longer needed."
- version="0.10.20">
- <return-value transfer-ownership="full">
- <type name="ParseContext" c:type="GstParseContext*"/>
- </return-value>
- </constructor>
- <method name="get_missing_elements"
- c:identifier="gst_parse_context_get_missing_elements"
- doc="Retrieve missing elements from a previous run of gst_parse_launch_full()
-or gst_parse_launchv_full(). Will only return results if an error code
-of %GST_PARSE_ERROR_NO_SUCH_ELEMENT was returned.
-missing elements. Free with g_strfreev() when no longer needed."
- version="0.10.20">
- <return-value transfer-ownership="full">
- <array c:type="gchar**">
- <type name="utf8"/>
- </array>
- </return-value>
- </method>
- <method name="free"
- c:identifier="gst_parse_context_free"
- doc="Frees a parse context previously allocated with gst_parse_context_new()."
- version="0.10.20">
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- </method>
- </record>
- <enumeration name="ParseError"
- doc="The different parsing errors that can occur."
- c:type="GstParseError"
- glib:error-quark="gst_parse_error_quark">
- <member name="syntax" value="0" c:identifier="GST_PARSE_ERROR_SYNTAX"/>
- <member name="no_such_element"
- value="1"
- c:identifier="GST_PARSE_ERROR_NO_SUCH_ELEMENT"/>
- <member name="no_such_property"
- value="2"
- c:identifier="GST_PARSE_ERROR_NO_SUCH_PROPERTY"/>
- <member name="link" value="3" c:identifier="GST_PARSE_ERROR_LINK"/>
- <member name="could_not_set_property"
- value="4"
- c:identifier="GST_PARSE_ERROR_COULD_NOT_SET_PROPERTY"/>
- <member name="empty_bin"
- value="5"
- c:identifier="GST_PARSE_ERROR_EMPTY_BIN"/>
- <member name="empty" value="6" c:identifier="GST_PARSE_ERROR_EMPTY"/>
- </enumeration>
- <bitfield name="ParseFlags"
- doc="(default behaviour is to return partially constructed bins or elements
-in some cases)
-Parsing options."
- version="0.10.20"
- c:type="GstParseFlags">
- <member name="none" value="0" c:identifier="GST_PARSE_FLAG_NONE"/>
- <member name="fatal_errors"
- value="1"
- c:identifier="GST_PARSE_FLAG_FATAL_ERRORS"/>
- </bitfield>
- <class name="Pipeline"
- c:type="GstPipeline"
- doc="GST_PIPELINE_FLAG_FIXED_CLOCK is set.
-property would be the running_time, the total time spent in the
-PLAYING state without being flushed. (deprecated, use the start_time
-on GstElement).
-when setting elements to PLAYING.
-The #GstPipeline structure."
- parent="Bin"
- glib:type-name="GstPipeline"
- glib:get-type="gst_pipeline_get_type"
- glib:type-struct="PipelineClass">
- <implements name="ChildProxy"/>
- <constructor name="new"
- c:identifier="gst_pipeline_new"
- doc="Create a new pipeline with the given name.
-MT safe.">
- <return-value transfer-ownership="full">
- <type name="Pipeline" c:type="GstElement*"/>
- </return-value>
- <parameters>
- <parameter name="name" transfer-ownership="none">
- <type name="utf8" c:type="gchar*"/>
- </parameter>
- </parameters>
- </constructor>
- <method name="get_bus"
- c:identifier="gst_pipeline_get_bus"
- doc="Gets the #GstBus of @pipeline. The bus allows applications to receive
-#GstMessage packets.
-MT safe.">
- <return-value transfer-ownership="full">
- <type name="Bus" c:type="GstBus*"/>
- </return-value>
- </method>
- <method name="set_new_stream_time"
- c:identifier="gst_pipeline_set_new_stream_time"
- doc="Set the new start time of @pipeline to @time. The start time is used to
-set the base time on the elements (see gst_element_set_base_time())
-in the PAUSED->PLAYING state transition.
-Setting @time to #GST_CLOCK_TIME_NONE will disable the pipeline's management
-of element base time. The application will then be responsible for
-performing base time distribution. This is sometimes useful if you want to
-synchronize capture from multiple pipelines, and you can also ensure that the
-pipelines have the same clock.
-MT safe.
-gst_element_set_start_time()."
- deprecated="This function has the wrong name and is equivalent to">
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <parameter name="time" transfer-ownership="none">
- <type name="ClockTime" c:type="GstClockTime"/>
- </parameter>
- </parameters>
- </method>
- <method name="get_last_stream_time"
- c:identifier="gst_pipeline_get_last_stream_time"
- doc="Gets the last running time of @pipeline. If the pipeline is PLAYING,
-the returned time is the running time used to configure the element's
-base time in the PAUSED->PLAYING state. If the pipeline is PAUSED, the
-returned time is the running time when the pipeline was paused.
-This function returns #GST_CLOCK_TIME_NONE if the pipeline was
-configured to not handle the management of the element's base time
-(see gst_pipeline_set_new_stream_time()).
-MT safe.
-gst_element_get_start_time()."
- deprecated="This function has the wrong name and is equivalent to">
- <return-value transfer-ownership="full">
- <type name="ClockTime" c:type="GstClockTime"/>
- </return-value>
- </method>
- <method name="use_clock"
- c:identifier="gst_pipeline_use_clock"
- doc="Force @pipeline to use the given @clock. The pipeline will
-always use the given clock even if new clock providers are added
-to this pipeline.
-If @clock is NULL all clocking will be disabled which will make
-the pipeline run as fast as possible.
-MT safe.">
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <parameter name="clock" transfer-ownership="none">
- <type name="Clock" c:type="GstClock*"/>
- </parameter>
- </parameters>
- </method>
- <method name="set_clock"
- c:identifier="gst_pipeline_set_clock"
- doc="Set the clock for @pipeline. The clock will be distributed
-to all the elements managed by the pipeline.
-some element did not accept the clock.
-MT safe.">
- <return-value transfer-ownership="none">
- <type name="boolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <parameter name="clock" transfer-ownership="none">
- <type name="Clock" c:type="GstClock*"/>
- </parameter>
- </parameters>
- </method>
- <method name="get_clock"
- c:identifier="gst_pipeline_get_clock"
- doc="Gets the current clock used by @pipeline.">
- <return-value transfer-ownership="full">
- <type name="Clock" c:type="GstClock*"/>
- </return-value>
- </method>
- <method name="auto_clock"
- c:identifier="gst_pipeline_auto_clock"
- doc="Let @pipeline select a clock automatically. This is the default
-behaviour.
-Use this function if you previous forced a fixed clock with
-gst_pipeline_use_clock() and want to restore the default
-pipeline clock selection algorithm.
-MT safe.">
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- </method>
- <method name="set_delay"
- c:identifier="gst_pipeline_set_delay"
- doc="Set the expected delay needed for all elements to perform the
-PAUSED to PLAYING state change. @delay will be added to the
-base time of the elements so that they wait an additional @delay
-amount of time before starting to process buffers and cannot be
-#GST_CLOCK_TIME_NONE.
-This option is used for tuning purposes and should normally not be
-used.
-MT safe."
- version="0.10.5">
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <parameter name="delay" transfer-ownership="none">
- <type name="ClockTime" c:type="GstClockTime"/>
- </parameter>
- </parameters>
- </method>
- <method name="get_delay"
- c:identifier="gst_pipeline_get_delay"
- doc="Get the configured delay (see gst_pipeline_set_delay()).
-MT safe."
- version="0.10.5">
- <return-value transfer-ownership="full">
- <type name="ClockTime" c:type="GstClockTime"/>
- </return-value>
- </method>
- <method name="set_auto_flush_bus"
- c:identifier="gst_pipeline_set_auto_flush_bus"
- doc="the pipeline goes from READY to NULL state
-Usually, when a pipeline goes from READY to NULL state, it automatically
-flushes all pending messages on the bus, which is done for refcounting
-purposes, to break circular references.
-This means that applications that update state using (async) bus messages
-(e.g. do certain things when a pipeline goes from PAUSED to READY) might
-not get to see messages when the pipeline is shut down, because they might
-be flushed before they can be dispatched in the main thread. This behaviour
-can be disabled using this function.
-It is important that all messages on the bus are handled when the
-automatic flushing is disabled else memory leaks will be introduced.
-MT safe."
- version="0.10.4">
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <parameter name="auto_flush" transfer-ownership="none">
- <type name="boolean" c:type="gboolean"/>
- </parameter>
- </parameters>
- </method>
- <method name="get_auto_flush_bus"
- c:identifier="gst_pipeline_get_auto_flush_bus"
- doc="Check if @pipeline will automatically flush messages when going to
-the NULL state.
-going from READY to NULL state or not.
-MT safe."
- version="0.10.4">
- <return-value transfer-ownership="none">
- <type name="boolean" c:type="gboolean"/>
- </return-value>
- </method>
- <property name="auto-flush-bus"
- version="0.10.4"
- writable="1"
- doc="Whether or not to automatically flush all messages on the
-pipeline's bus when going from READY to NULL state. Please see
-gst_pipeline_set_auto_flush_bus() for more information on this option.">
- <type name="boolean" c:type="gboolean"/>
- </property>
- <property name="delay" writable="1">
- <type name="uint64" c:type="guint64"/>
- </property>
- <field name="bin">
- <type name="Bin" c:type="GstBin"/>
- </field>
- <field name="fixed_clock">
- <type name="Clock" c:type="GstClock*"/>
- </field>
- <field name="stream_time">
- <type name="ClockTime" c:type="GstClockTime"/>
- </field>
- <field name="delay">
- <type name="ClockTime" c:type="GstClockTime"/>
- </field>
- <field name="priv">
- <type name="PipelinePrivate" c:type="GstPipelinePrivate*"/>
- </field>
- <field name="_gst_reserved">
- <array zero-terminated="0" c:type="gpointer" fixed-size="3">
- <type name="any"/>
- </array>
- </field>
- </class>
- <record name="PipelineClass"
- c:type="GstPipelineClass"
- glib:is-gtype-struct-for="Pipeline">
- <field name="parent_class">
- <type name="BinClass" c:type="GstBinClass"/>
- </field>
- <field name="_gst_reserved">
- <array zero-terminated="0" c:type="gpointer" fixed-size="4">
- <type name="any"/>
- </array>
- </field>
- </record>
- <bitfield name="PipelineFlags"
- doc="Pipeline flags"
- c:type="GstPipelineFlags">
- <member name="fixed_clock"
- value="33554432"
- c:identifier="GST_PIPELINE_FLAG_FIXED_CLOCK"/>
- <member name="last"
- value="536870912"
- c:identifier="GST_PIPELINE_FLAG_LAST"/>
- </bitfield>
- <record name="PipelinePrivate" c:type="GstPipelinePrivate">
- </record>
- <class name="Plugin"
- c:type="GstPlugin"
- doc="The plugin object"
- parent="Object"
- glib:type-name="GstPlugin"
- glib:get-type="gst_plugin_get_type"
- glib:type-struct="PluginClass">
- <function name="register_static"
- c:identifier="gst_plugin_register_static"
- doc="plugin was compiled for, you can just use GST_VERSION_MAJOR here
-plugin was compiled for, you can just use GST_VERSION_MINOR here
-library-specific namespace prefix in order to avoid name conflicts in
-case a similar plugin with the same name ever gets added to GStreamer)
-(see #GstPluginDesc above) or the plugin will not be registered.
-Registers a static plugin, ie. a plugin which is private to an application
-or library and contained within the application or library (as opposed to
-being shipped as a separate module file).
-You must make sure that GStreamer has been initialised (with gst_init() or
-via gst_init_get_option_group()) before calling this function."
- version="0.10.16">
- <return-value transfer-ownership="none">
- <type name="boolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <parameter name="major_version" transfer-ownership="none">
- <type name="int" c:type="gint"/>
- </parameter>
- <parameter name="minor_version" transfer-ownership="none">
- <type name="int" c:type="gint"/>
- </parameter>
- <parameter name="name" transfer-ownership="none">
- <type name="utf8" c:type="gchar*"/>
- </parameter>
- <parameter name="description" transfer-ownership="none">
- <type name="utf8" c:type="gchar*"/>
- </parameter>
- <parameter name="init_func" transfer-ownership="none" scope="call">
- <type name="PluginInitFunc" c:type="GstPluginInitFunc"/>
- </parameter>
- <parameter name="version" transfer-ownership="none">
- <type name="utf8" c:type="gchar*"/>
- </parameter>
- <parameter name="license" transfer-ownership="none">
- <type name="utf8" c:type="gchar*"/>
- </parameter>
- <parameter name="source" transfer-ownership="none">
- <type name="utf8" c:type="gchar*"/>
- </parameter>
- <parameter name="package" transfer-ownership="none">
- <type name="utf8" c:type="gchar*"/>
- </parameter>
- <parameter name="origin" transfer-ownership="none">
- <type name="utf8" c:type="gchar*"/>
- </parameter>
- </parameters>
- </function>
- <function name="register_static_full"
- c:identifier="gst_plugin_register_static_full"
- doc="plugin was compiled for, you can just use GST_VERSION_MAJOR here
-plugin was compiled for, you can just use GST_VERSION_MINOR here
-library-specific namespace prefix in order to avoid name conflicts in
-case a similar plugin with the same name ever gets added to GStreamer)
-(see #GstPluginDesc above) or the plugin will not be registered.
-Registers a static plugin, ie. a plugin which is private to an application
-or library and contained within the application or library (as opposed to
-being shipped as a separate module file) with a #GstPluginInitFullFunc
-which allows user data to be passed to the callback function (useful
-for bindings).
-You must make sure that GStreamer has been initialised (with gst_init() or
-via gst_init_get_option_group()) before calling this function."
- version="0.10.24">
- <return-value transfer-ownership="none">
- <type name="boolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <parameter name="major_version" transfer-ownership="none">
- <type name="int" c:type="gint"/>
- </parameter>
- <parameter name="minor_version" transfer-ownership="none">
- <type name="int" c:type="gint"/>
- </parameter>
- <parameter name="name" transfer-ownership="none">
- <type name="utf8" c:type="gchar*"/>
- </parameter>
- <parameter name="description" transfer-ownership="none">
- <type name="utf8" c:type="gchar*"/>
- </parameter>
- <parameter name="init_full_func"
- transfer-ownership="none"
- scope="call">
- <type name="PluginInitFullFunc" c:type="GstPluginInitFullFunc"/>
- </parameter>
- <parameter name="version" transfer-ownership="none">
- <type name="utf8" c:type="gchar*"/>
- </parameter>
- <parameter name="license" transfer-ownership="none">
- <type name="utf8" c:type="gchar*"/>
- </parameter>
- <parameter name="source" transfer-ownership="none">
- <type name="utf8" c:type="gchar*"/>
- </parameter>
- <parameter name="package" transfer-ownership="none">
- <type name="utf8" c:type="gchar*"/>
- </parameter>
- <parameter name="origin" transfer-ownership="none">
- <type name="utf8" c:type="gchar*"/>
- </parameter>
- <parameter name="user_data" transfer-ownership="none">
- <type name="any" c:type="gpointer"/>
- </parameter>
- </parameters>
- </function>
- <function name="load_file"
- c:identifier="gst_plugin_load_file"
- doc="Loads the given plugin and refs it. Caller needs to unref after use.
-newly-loaded GstPlugin, or NULL if an error occurred."
- throws="1">
- <return-value transfer-ownership="full">
- <type name="Plugin" c:type="GstPlugin*"/>
- </return-value>
- <parameters>
- <parameter name="filename" transfer-ownership="none">
- <type name="utf8" c:type="gchar*"/>
- </parameter>
- </parameters>
- </function>
- <function name="load_by_name"
- c:identifier="gst_plugin_load_by_name"
- doc="Load the named plugin. Refs the plugin.">
- <return-value transfer-ownership="full">
- <type name="Plugin" c:type="GstPlugin*"/>
- </return-value>
- <parameters>
- <parameter name="name" transfer-ownership="none">
- <type name="utf8" c:type="gchar*"/>
- </parameter>
- </parameters>
- </function>
- <function name="list_free"
- c:identifier="gst_plugin_list_free"
- doc="Unrefs each member of @list, then frees the list.">
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <parameter name="list" transfer-ownership="none">
- <type name="GLib.List" c:type="GList*"/>
- </parameter>
- </parameters>
- </function>
- <method name="get_name"
- c:identifier="gst_plugin_get_name"
- doc="Get the short name of the plugin">
- <return-value transfer-ownership="none">
- <type name="utf8" c:type="gchar*"/>
- </return-value>
- </method>
- <method name="get_description"
- c:identifier="gst_plugin_get_description"
- doc="Get the long descriptive name of the plugin">
- <return-value transfer-ownership="none">
- <type name="utf8" c:type="gchar*"/>
- </return-value>
- </method>
- <method name="get_filename"
- c:identifier="gst_plugin_get_filename"
- doc="get the filename of the plugin">
- <return-value transfer-ownership="none">
- <type name="utf8" c:type="gchar*"/>
- </return-value>
- </method>
- <method name="get_version"
- c:identifier="gst_plugin_get_version"
- doc="get the version of the plugin">
- <return-value transfer-ownership="none">
- <type name="utf8" c:type="gchar*"/>
- </return-value>
- </method>
- <method name="get_license"
- c:identifier="gst_plugin_get_license"
- doc="get the license of the plugin">
- <return-value transfer-ownership="none">
- <type name="utf8" c:type="gchar*"/>
- </return-value>
- </method>
- <method name="get_source"
- c:identifier="gst_plugin_get_source"
- doc="get the source module the plugin belongs to.">
- <return-value transfer-ownership="none">
- <type name="utf8" c:type="gchar*"/>
- </return-value>
- </method>
- <method name="get_package"
- c:identifier="gst_plugin_get_package"
- doc="get the package the plugin belongs to.">
- <return-value transfer-ownership="none">
- <type name="utf8" c:type="gchar*"/>
- </return-value>
- </method>
- <method name="get_origin"
- c:identifier="gst_plugin_get_origin"
- doc="get the URL where the plugin comes from">
- <return-value transfer-ownership="none">
- <type name="utf8" c:type="gchar*"/>
- </return-value>
- </method>
- <method name="get_cache_data"
- c:identifier="gst_plugin_get_cache_data"
- doc="Gets the plugin specific data cache. If it is %NULL there is no cached data
-stored. This is the case when the registry is getting rebuilt."
- version="0.10.24">
- <return-value transfer-ownership="none">
- <type name="Structure" c:type="GstStructure*"/>
- </return-value>
- </method>
- <method name="set_cache_data"
- c:identifier="gst_plugin_set_cache_data"
- doc="Adds plugin specific data to cache. Passes the ownership of the structure to
-the @plugin.
-The cache is flushed every time the registry is rebuilt."
- version="0.10.24">
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <parameter name="cache_data" transfer-ownership="none">
- <type name="Structure" c:type="GstStructure*"/>
- </parameter>
- </parameters>
- </method>
- <method name="get_module"
- c:identifier="gst_plugin_get_module"
- doc="Gets the #GModule of the plugin. If the plugin isn't loaded yet, NULL is
-returned.
-loaded yet.">
- <return-value transfer-ownership="full">
- <type name="GModule.Module" c:type="GModule*"/>
- </return-value>
- </method>
- <method name="is_loaded"
- c:identifier="gst_plugin_is_loaded"
- doc="queries if the plugin is loaded into memory">
- <return-value transfer-ownership="none">
- <type name="boolean" c:type="gboolean"/>
- </return-value>
- </method>
- <method name="name_filter"
- c:identifier="gst_plugin_name_filter"
- doc="A standard filter that returns TRUE when the plugin is of the
-given name.">
- <return-value transfer-ownership="none">
- <type name="boolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <parameter name="name" transfer-ownership="none">
- <type name="utf8" c:type="gchar*"/>
- </parameter>
- </parameters>
- </method>
- <method name="load"
- c:identifier="gst_plugin_load"
- doc="Loads @plugin. Note that the *return value* is the loaded plugin; @plugin is
-untouched. The normal use pattern of this function goes like this:
-<programlisting>
-GstPlugin *loaded_plugin;
-loaded_plugin = gst_plugin_load (plugin);
-// presumably, we're no longer interested in the potentially-unloaded plugin
-gst_object_unref (plugin);
-plugin = loaded_plugin;
-</programlisting>">
- <return-value transfer-ownership="full">
- <type name="Plugin" c:type="GstPlugin*"/>
- </return-value>
- </method>
- <method name="add_dependency"
- c:identifier="gst_plugin_add_dependency"
- doc="feature set of the plugin (e.g. an environment variable containing
-paths where to look for additional modules/plugins of a library),
-or NULL. Environment variable names may be followed by a path component
-which will be added to the content of the environment variable, e.g.
-"HOME/.mystuff/plugins".
-may be.
-depending on @flags) to be used in combination with the paths from
-Make GStreamer aware of external dependencies which affect the feature
-set of this plugin (ie. the elements or typefinders associated with it).
-GStreamer will re-inspect plugins with external dependencies whenever any
-of the external dependencies change. This is useful for plugins which wrap
-other plugin systems, e.g. a plugin which wraps a plugin-based visualisation
-library and makes visualisations available as GStreamer elements, or a
-codec loader which exposes elements and/or caps dependent on what external
-codec libraries are currently installed."
- version="0.10.22">
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <parameter name="env_vars" transfer-ownership="none">
- <array c:type="gchar**">
- <type name="utf8"/>
- </array>
- </parameter>
- <parameter name="paths" transfer-ownership="none">
- <array c:type="gchar**">
- <type name="utf8"/>
- </array>
- </parameter>
- <parameter name="names" transfer-ownership="none">
- <array c:type="gchar**">
- <type name="utf8"/>
- </array>
- </parameter>
- <parameter name="flags" transfer-ownership="none">
- <type name="PluginDependencyFlags"
- c:type="GstPluginDependencyFlags"/>
- </parameter>
- </parameters>
- </method>
- <method name="add_dependency_simple"
- c:identifier="gst_plugin_add_dependency_simple"
- doc="or NULL. Environment variable names may be followed by a path component
-which will be added to the content of the environment variable, e.g.
-"HOME/.mystuff/plugins:MYSTUFF_PLUGINS_PATH"
-or NULL
-Make GStreamer aware of external dependencies which affect the feature
-set of this plugin (ie. the elements or typefinders associated with it).
-GStreamer will re-inspect plugins with external dependencies whenever any
-of the external dependencies change. This is useful for plugins which wrap
-other plugin systems, e.g. a plugin which wraps a plugin-based visualisation
-library and makes visualisations available as GStreamer elements, or a
-codec loader which exposes elements and/or caps dependent on what external
-codec libraries are currently installed.
-Convenience wrapper function for gst_plugin_add_dependency() which
-takes simple strings as arguments instead of string arrays, with multiple
-arguments separated by predefined delimiters (see above)."
- version="0.10.22">
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <parameter name="env_vars" transfer-ownership="none">
- <type name="utf8" c:type="gchar*"/>
- </parameter>
- <parameter name="paths" transfer-ownership="none">
- <type name="utf8" c:type="gchar*"/>
- </parameter>
- <parameter name="names" transfer-ownership="none">
- <type name="utf8" c:type="gchar*"/>
- </parameter>
- <parameter name="flags" transfer-ownership="none">
- <type name="PluginDependencyFlags"
- c:type="GstPluginDependencyFlags"/>
- </parameter>
- </parameters>
- </method>
- <field name="object">
- <type name="Object" c:type="GstObject"/>
- </field>
- <field name="desc">
- <type name="PluginDesc" c:type="GstPluginDesc"/>
- </field>
- <field name="orig_desc">
- <type name="PluginDesc" c:type="GstPluginDesc*"/>
- </field>
- <field name="flags">
- <type name="uint" c:type="unsigned"/>
- </field>
- <field name="filename">
- <type name="utf8" c:type="gchar*"/>
- </field>
- <field name="basename">
- <type name="utf8" c:type="gchar*"/>
- </field>
- <field name="module">
- <type name="GModule.Module" c:type="GModule*"/>
- </field>
- <field name="file_size">
- <type name="size_t" c:type="off_t"/>
- </field>
- <field name="file_mtime">
- <type name="time_t" c:type="time_t"/>
- </field>
- <field name="registered">
- <type name="boolean" c:type="gboolean"/>
- </field>
- <field name="priv">
- <type name="PluginPrivate" c:type="GstPluginPrivate*"/>
- </field>
- <field name="_gst_reserved">
- <array zero-terminated="0" c:type="gpointer" fixed-size="3">
- <type name="any"/>
- </array>
- </field>
- </class>
- <record name="PluginClass"
- c:type="GstPluginClass"
- glib:is-gtype-struct-for="Plugin">
- <field name="object_class">
- <type name="ObjectClass" c:type="GstObjectClass"/>
- </field>
- <field name="_gst_reserved">
- <array zero-terminated="0" c:type="gpointer" fixed-size="4">
- <type name="any"/>
- </array>
- </field>
- </record>
- <bitfield name="PluginDependencyFlags"
- doc="argument only if none of the environment variables is set
-filename argument as filter suffix and check all matching files in
-the directory
-Flags used in connection with gst_plugin_add_dependency()."
- version="0.10.22"
- c:type="GstPluginDependencyFlags">
- <member name="none"
- value="0"
- c:identifier="GST_PLUGIN_DEPENDENCY_FLAG_NONE"/>
- <member name="recurse"
- value="1"
- c:identifier="GST_PLUGIN_DEPENDENCY_FLAG_RECURSE"/>
- <member name="paths_are_default_only"
- value="2"
- c:identifier="GST_PLUGIN_DEPENDENCY_FLAG_PATHS_ARE_DEFAULT_ONLY"/>
- <member name="file_name_is_suffix"
- value="4"
- c:identifier="GST_PLUGIN_DEPENDENCY_FLAG_FILE_NAME_IS_SUFFIX"/>
- </bitfield>
- <record name="PluginDesc"
- c:type="GstPluginDesc"
- doc="A plugin should export a variable of this type called plugin_desc. The plugin
-loader will use the data provided there to initialize the plugin.
-BSD, MIT/X11, Proprietary, unknown.">
- <field name="major_version" writable="1">
- <type name="int" c:type="gint"/>
- </field>
- <field name="minor_version" writable="1">
- <type name="int" c:type="gint"/>
- </field>
- <field name="name" writable="1">
- <type name="utf8" c:type="gchar*"/>
- </field>
- <field name="description" writable="1">
- <type name="utf8" c:type="gchar*"/>
- </field>
- <field name="plugin_init" writable="1">
- <type name="PluginInitFunc" c:type="GstPluginInitFunc"/>
- </field>
- <field name="version" writable="1">
- <type name="utf8" c:type="gchar*"/>
- </field>
- <field name="license" writable="1">
- <type name="utf8" c:type="gchar*"/>
- </field>
- <field name="source" writable="1">
- <type name="utf8" c:type="gchar*"/>
- </field>
- <field name="package" writable="1">
- <type name="utf8" c:type="gchar*"/>
- </field>
- <field name="origin" writable="1">
- <type name="utf8" c:type="gchar*"/>
- </field>
- <field name="_gst_reserved" writable="1">
- <array zero-terminated="0" c:type="gpointer" fixed-size="4">
- <type name="any"/>
- </array>
- </field>
- </record>
- <enumeration name="PluginError"
- doc="The plugin loading errors"
- c:type="GstPluginError"
- glib:error-quark="gst_plugin_error_quark">
- <member name="module" value="0" c:identifier="GST_PLUGIN_ERROR_MODULE"/>
- <member name="dependencies"
- value="1"
- c:identifier="GST_PLUGIN_ERROR_DEPENDENCIES"/>
- <member name="name_mismatch"
- value="2"
- c:identifier="GST_PLUGIN_ERROR_NAME_MISMATCH"/>
- </enumeration>
- <class name="PluginFeature"
- c:type="GstPluginFeature"
- doc="Opaque #GstPluginFeature structure."
- parent="Object"
- abstract="1"
- glib:type-name="GstPluginFeature"
- glib:get-type="gst_plugin_feature_get_type"
- glib:type-struct="PluginFeatureClass">
- <function name="list_free"
- c:identifier="gst_plugin_feature_list_free"
- doc="Unrefs each member of @list, then frees the list.">
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <parameter name="list" transfer-ownership="none">
- <type name="GLib.List" c:type="GList*"/>
- </parameter>
- </parameters>
- </function>
- <function name="list_copy"
- c:identifier="gst_plugin_feature_list_copy"
- doc="Copies the list of features. Caller should call @gst_plugin_feature_list_free
-when done with the list."
- version="0.10.26">
- <return-value transfer-ownership="full">
- <type name="GLib.List" c:type="GList*"/>
- </return-value>
- <parameters>
- <parameter name="list" transfer-ownership="none">
- <type name="GLib.List" c:type="GList*"/>
- </parameter>
- </parameters>
- </function>
- <method name="load"
- c:identifier="gst_plugin_feature_load"
- doc="Loads the plugin containing @feature if it's not already loaded. @feature is
-unaffected; use the return value instead.
-Normally this function is used like this:
-|[
-GstPluginFeature *loaded_feature;
-loaded_feature = gst_plugin_feature_load (feature);
-// presumably, we're no longer interested in the potentially-unloaded feature
-gst_object_unref (feature);
-feature = loaded_feature;
-]|">
- <return-value transfer-ownership="full">
- <type name="PluginFeature" c:type="GstPluginFeature*"/>
- </return-value>
- </method>
- <method name="type_name_filter"
- c:identifier="gst_plugin_feature_type_name_filter"
- doc="Compares type and name of plugin feature. Can be used with gst_filter_run().">
- <return-value transfer-ownership="none">
- <type name="boolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <parameter name="data" transfer-ownership="none">
- <type name="TypeNameData" c:type="GstTypeNameData*"/>
- </parameter>
- </parameters>
- </method>
- <method name="set_rank"
- c:identifier="gst_plugin_feature_set_rank"
- doc="Specifies a rank for a plugin feature, so that autoplugging uses
-the most appropriate feature.">
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <parameter name="rank" transfer-ownership="none">
- <type name="uint" c:type="guint"/>
- </parameter>
- </parameters>
- </method>
- <method name="set_name"
- c:identifier="gst_plugin_feature_set_name"
- doc="Sets the name of a plugin feature. The name uniquely identifies a feature
-within all features of the same type. Renaming a plugin feature is not
-allowed. A copy is made of the name so you should free the supplied @name
-after calling this function.">
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <parameter name="name" transfer-ownership="none">
- <type name="utf8" c:type="gchar*"/>
- </parameter>
- </parameters>
- </method>
- <method name="get_rank"
- c:identifier="gst_plugin_feature_get_rank"
- doc="Gets the rank of a plugin feature.">
- <return-value transfer-ownership="none">
- <type name="uint" c:type="guint"/>
- </return-value>
- </method>
- <method name="get_name"
- c:identifier="gst_plugin_feature_get_name"
- doc="Gets the name of a plugin feature.">
- <return-value transfer-ownership="none">
- <type name="utf8" c:type="gchar*"/>
- </return-value>
- </method>
- <method name="check_version"
- c:identifier="gst_plugin_feature_check_version"
- doc="Checks whether the given plugin feature is at least
-the required version
-the required version, otherwise #FALSE.">
- <return-value transfer-ownership="none">
- <type name="boolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <parameter name="min_major" transfer-ownership="none">
- <type name="uint" c:type="guint"/>
- </parameter>
- <parameter name="min_minor" transfer-ownership="none">
- <type name="uint" c:type="guint"/>
- </parameter>
- <parameter name="min_micro" transfer-ownership="none">
- <type name="uint" c:type="guint"/>
- </parameter>
- </parameters>
- </method>
- <field name="object">
- <type name="Object" c:type="GstObject"/>
- </field>
- <field name="loaded">
- <type name="boolean" c:type="gboolean"/>
- </field>
- <field name="name">
- <type name="utf8" c:type="gchar*"/>
- </field>
- <field name="rank">
- <type name="uint" c:type="guint"/>
- </field>
- <field name="plugin_name">
- <type name="utf8" c:type="gchar*"/>
- </field>
- <field name="_gst_reserved">
- <array zero-terminated="0" c:type="gpointer" fixed-size="4">
- <type name="any"/>
- </array>
- </field>
- </class>
- <record name="PluginFeatureClass"
- c:type="GstPluginFeatureClass"
- glib:is-gtype-struct-for="PluginFeature">
- <field name="parent_class">
- <type name="ObjectClass" c:type="GstObjectClass"/>
- </field>
- <field name="_gst_reserved">
- <array zero-terminated="0" c:type="gpointer" fixed-size="4">
- <type name="any"/>
- </array>
- </field>
- </record>
- <callback name="PluginFeatureFilter"
- c:type="GstPluginFeatureFilter"
- doc="gst_registry_feature_filter()
-A function that can be used with e.g. gst_registry_feature_filter()
-to get a list of pluginfeature that match certain criteria.">
- <return-value transfer-ownership="none">
- <type name="boolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <parameter name="feature" transfer-ownership="none">
- <type name="PluginFeature" c:type="GstPluginFeature*"/>
- </parameter>
- <parameter name="user_data" transfer-ownership="none" closure="1">
- <type name="any" c:type="gpointer"/>
- </parameter>
- </parameters>
- </callback>
- <callback name="PluginFilter"
- c:type="GstPluginFilter"
- doc="A function that can be used with e.g. gst_registry_plugin_filter()
-to get a list of plugins that match certain criteria.">
- <return-value transfer-ownership="none">
- <type name="boolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <parameter name="plugin" transfer-ownership="none">
- <type name="Plugin" c:type="GstPlugin*"/>
- </parameter>
- <parameter name="user_data" transfer-ownership="none" closure="1">
- <type name="any" c:type="gpointer"/>
- </parameter>
- </parameters>
- </callback>
- <bitfield name="PluginFlags"
- doc="The plugin loading state"
- c:type="GstPluginFlags">
- <member name="cached" value="1" c:identifier="GST_PLUGIN_FLAG_CACHED"/>
- <member name="blacklisted"
- value="2"
- c:identifier="GST_PLUGIN_FLAG_BLACKLISTED"/>
- </bitfield>
- <callback name="PluginInitFullFunc"
- c:type="GstPluginInitFullFunc"
- doc="A plugin should provide a pointer to a function of either #GstPluginInitFunc
-or this type in the plugin_desc struct.
-The function will be called by the loader at startup. One would then
-register each #GstPluginFeature. This version allows
-user data to be passed to init function (useful for bindings)."
- version="0.10.24">
- <return-value transfer-ownership="none">
- <type name="boolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <parameter name="plugin" transfer-ownership="none">
- <type name="Plugin" c:type="GstPlugin*"/>
- </parameter>
- <parameter name="user_data" transfer-ownership="none" closure="1">
- <type name="any" c:type="gpointer"/>
- </parameter>
- </parameters>
- </callback>
- <callback name="PluginInitFunc"
- c:type="GstPluginInitFunc"
- doc="A plugin should provide a pointer to a function of this type in the
-plugin_desc struct.
-This function will be called by the loader at startup. One would then
-register each #GstPluginFeature.">
- <return-value transfer-ownership="none">
- <type name="boolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <parameter name="plugin" transfer-ownership="none">
- <type name="Plugin" c:type="GstPlugin*"/>
- </parameter>
- </parameters>
- </callback>
- <record name="PluginPrivate" c:type="GstPluginPrivate">
- </record>
- <record name="Poll"
- c:type="GstPoll"
- doc="A set of file/network descriptors.">
- <constructor name="new"
- c:identifier="gst_poll_new"
- doc="Create a new file descriptor set. If @controllable, it
-is possible to restart or flush a call to gst_poll_wait() with
-gst_poll_restart() and gst_poll_set_flushing() respectively.
-gst_poll_free()."
- version="0.10.18">
- <return-value transfer-ownership="full">
- <type name="Poll" c:type="GstPoll*"/>
- </return-value>
- <parameters>
- <parameter name="controllable" transfer-ownership="none">
- <type name="boolean" c:type="gboolean"/>
- </parameter>
- </parameters>
- </constructor>
- <constructor name="new_timer"
- c:identifier="gst_poll_new_timer"
- doc="Create a new poll object that can be used for scheduling cancellable
-timeouts.
-A timeout is performed with gst_poll_wait(). Multiple timeouts can be
-performed from different threads.
-gst_poll_free()."
- version="0.10.23">
- <return-value transfer-ownership="full">
- <type name="Poll" c:type="GstPoll*"/>
- </return-value>
- </constructor>
- <method name="free"
- c:identifier="gst_poll_free"
- doc="Free a file descriptor set."
- version="0.10.18">
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- </method>
- <method name="add_fd"
- c:identifier="gst_poll_add_fd"
- doc="Add a file descriptor to the file descriptor set."
- version="0.10.18">
- <return-value transfer-ownership="none">
- <type name="boolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <parameter name="fd" transfer-ownership="none">
- <type name="PollFD" c:type="GstPollFD*"/>
- </parameter>
- </parameters>
- </method>
- <method name="remove_fd"
- c:identifier="gst_poll_remove_fd"
- doc="Remove a file descriptor from the file descriptor set."
- version="0.10.18">
- <return-value transfer-ownership="none">
- <type name="boolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <parameter name="fd" transfer-ownership="none">
- <type name="PollFD" c:type="GstPollFD*"/>
- </parameter>
- </parameters>
- </method>
- <method name="fd_ctl_write"
- c:identifier="gst_poll_fd_ctl_write"
- doc="Control whether the descriptor @fd in @set will be monitored for
-writability."
- version="0.10.18">
- <return-value transfer-ownership="none">
- <type name="boolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <parameter name="fd" transfer-ownership="none">
- <type name="PollFD" c:type="GstPollFD*"/>
- </parameter>
- <parameter name="active" transfer-ownership="none">
- <type name="boolean" c:type="gboolean"/>
- </parameter>
- </parameters>
- </method>
- <method name="fd_ctl_read"
- c:identifier="gst_poll_fd_ctl_read"
- doc="Control whether the descriptor @fd in @set will be monitored for
-readability."
- version="0.10.18">
- <return-value transfer-ownership="none">
- <type name="boolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <parameter name="fd" transfer-ownership="none">
- <type name="PollFD" c:type="GstPollFD*"/>
- </parameter>
- <parameter name="active" transfer-ownership="none">
- <type name="boolean" c:type="gboolean"/>
- </parameter>
- </parameters>
- </method>
- <method name="fd_ignored"
- c:identifier="gst_poll_fd_ignored"
- doc="Mark @fd as ignored so that the next call to gst_poll_wait() will yield
-the same result for @fd as last time. This function must be called if no
-operation (read/write/recv/send/etc.) will be performed on @fd before
-the next call to gst_poll_wait().
-The reason why this is needed is because the underlying implementation
-might not allow querying the fd more than once between calls to one of
-the re-enabling operations."
- version="0.10.18">
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <parameter name="fd" transfer-ownership="none">
- <type name="PollFD" c:type="GstPollFD*"/>
- </parameter>
- </parameters>
- </method>
- <method name="fd_has_closed"
- c:identifier="gst_poll_fd_has_closed"
- doc="Check if @fd in @set has closed the connection."
- version="0.10.18">
- <return-value transfer-ownership="none">
- <type name="boolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <parameter name="fd" transfer-ownership="none">
- <type name="PollFD" c:type="GstPollFD*"/>
- </parameter>
- </parameters>
- </method>
- <method name="fd_has_error"
- c:identifier="gst_poll_fd_has_error"
- doc="Check if @fd in @set has an error."
- version="0.10.18">
- <return-value transfer-ownership="none">
- <type name="boolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <parameter name="fd" transfer-ownership="none">
- <type name="PollFD" c:type="GstPollFD*"/>
- </parameter>
- </parameters>
- </method>
- <method name="fd_can_read"
- c:identifier="gst_poll_fd_can_read"
- doc="Check if @fd in @set has data to be read."
- version="0.10.18">
- <return-value transfer-ownership="none">
- <type name="boolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <parameter name="fd" transfer-ownership="none">
- <type name="PollFD" c:type="GstPollFD*"/>
- </parameter>
- </parameters>
- </method>
- <method name="fd_can_write"
- c:identifier="gst_poll_fd_can_write"
- doc="Check if @fd in @set can be used for writing."
- version="0.10.18">
- <return-value transfer-ownership="none">
- <type name="boolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <parameter name="fd" transfer-ownership="none">
- <type name="PollFD" c:type="GstPollFD*"/>
- </parameter>
- </parameters>
- </method>
- <method name="wait"
- c:identifier="gst_poll_wait"
- doc="Wait for activity on the file descriptors in @set. This function waits up to
-the specified @timeout. A timeout of #GST_CLOCK_TIME_NONE waits forever.
-For #GstPoll objects created with gst_poll_new(), this function can only be
-called from a single thread at a time. If called from multiple threads,
--1 will be returned with errno set to EPERM.
-This is not true for timer #GstPoll objects created with
-gst_poll_new_timer(), where it is allowed to have multiple threads waiting
-simultaneously.
-activity was detected after @timeout. If an error occurs, -1 is returned
-and errno is set."
- version="0.10.18">
- <return-value transfer-ownership="none">
- <type name="int" c:type="gint"/>
- </return-value>
- <parameters>
- <parameter name="timeout" transfer-ownership="none">
- <type name="ClockTime" c:type="GstClockTime"/>
- </parameter>
- </parameters>
- </method>
- <method name="set_controllable"
- c:identifier="gst_poll_set_controllable"
- doc="When @controllable is %TRUE, this function ensures that future calls to
-gst_poll_wait() will be affected by gst_poll_restart() and
-gst_poll_set_flushing()."
- version="0.10.18">
- <return-value transfer-ownership="none">
- <type name="boolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <parameter name="controllable" transfer-ownership="none">
- <type name="boolean" c:type="gboolean"/>
- </parameter>
- </parameters>
- </method>
- <method name="restart"
- c:identifier="gst_poll_restart"
- doc="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."
- version="0.10.18">
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- </method>
- <method name="set_flushing"
- c:identifier="gst_poll_set_flushing"
- doc="When @flushing is %TRUE, this function ensures that current and future calls
-to gst_poll_wait() will return -1, with errno set to EBUSY.
-Unsetting the flushing state will restore normal operation of @set."
- version="0.10.18">
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <parameter name="flushing" transfer-ownership="none">
- <type name="boolean" c:type="gboolean"/>
- </parameter>
- </parameters>
- </method>
- <method name="write_control"
- c:identifier="gst_poll_write_control"
- doc="Write a byte to the control socket of the controllable @set.
-This function is mostly useful for timer #GstPoll objects created with
-gst_poll_new_timer().
-It will make any current and future gst_poll_wait() function return with
-1, meaning the control socket is set. After an equal amount of calls to
-gst_poll_read_control() have been performed, calls to gst_poll_wait() will
-block again until their timeout expired.
-byte could not be written."
- version="0.10.23">
- <return-value transfer-ownership="none">
- <type name="boolean" c:type="gboolean"/>
- </return-value>
- </method>
- <method name="read_control"
- c:identifier="gst_poll_read_control"
- doc="Read a byte from the control socket of the controllable @set.
-This function is mostly useful for timer #GstPoll objects created with
-gst_poll_new_timer().
-was no byte to read."
- version="0.10.23">
- <return-value transfer-ownership="none">
- <type name="boolean" c:type="gboolean"/>
- </return-value>
- </method>
- </record>
- <record name="PollFD" c:type="GstPollFD" doc="A file descriptor object.">
- <field name="fd" writable="1">
- <type name="int" c:type="int"/>
- </field>
- <field name="idx" writable="1">
- <type name="int" c:type="gint"/>
- </field>
- <method name="init"
- c:identifier="gst_poll_fd_init"
- doc="Initializes @fd. Alternatively you can initialize it with
-#GST_POLL_FD_INIT."
- version="0.10.18">
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- </method>
- </record>
- <interface name="Preset"
- c:type="GstPreset"
- doc="Opaque #GstPreset data structure."
- glib:type-name="GstPreset"
- glib:get-type="gst_preset_get_type"
- glib:type-struct="PresetInterface">
- <virtual-method name="get_preset_names" invoker="get_preset_names">
- <return-value transfer-ownership="full">
- <array c:type="gchar**">
- <type name="utf8"/>
- </array>
- </return-value>
- </virtual-method>
- <virtual-method name="get_property_names" invoker="get_property_names">
- <return-value transfer-ownership="full">
- <array c:type="gchar**">
- <type name="utf8"/>
- </array>
- </return-value>
- </virtual-method>
- <virtual-method name="load_preset" invoker="load_preset">
- <return-value transfer-ownership="none">
- <type name="boolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <parameter name="name" transfer-ownership="none">
- <type name="utf8" c:type="gchar*"/>
- </parameter>
- </parameters>
- </virtual-method>
- <virtual-method name="save_preset" invoker="save_preset">
- <return-value transfer-ownership="none">
- <type name="boolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <parameter name="name" transfer-ownership="none">
- <type name="utf8" c:type="gchar*"/>
- </parameter>
- </parameters>
- </virtual-method>
- <virtual-method name="rename_preset" invoker="rename_preset">
- <return-value transfer-ownership="none">
- <type name="boolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <parameter name="old_name" transfer-ownership="none">
- <type name="utf8" c:type="gchar*"/>
- </parameter>
- <parameter name="new_name" transfer-ownership="none">
- <type name="utf8" c:type="gchar*"/>
- </parameter>
- </parameters>
- </virtual-method>
- <virtual-method name="delete_preset" invoker="delete_preset">
- <return-value transfer-ownership="none">
- <type name="boolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <parameter name="name" transfer-ownership="none">
- <type name="utf8" c:type="gchar*"/>
- </parameter>
- </parameters>
- </virtual-method>
- <virtual-method name="set_meta" invoker="set_meta">
- <return-value transfer-ownership="none">
- <type name="boolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <parameter name="name" transfer-ownership="none">
- <type name="utf8" c:type="gchar*"/>
- </parameter>
- <parameter name="tag" transfer-ownership="none">
- <type name="utf8" c:type="gchar*"/>
- </parameter>
- <parameter name="value" transfer-ownership="none">
- <type name="utf8" c:type="gchar*"/>
- </parameter>
- </parameters>
- </virtual-method>
- <virtual-method name="get_meta" invoker="get_meta">
- <return-value transfer-ownership="none">
- <type name="boolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <parameter name="name" transfer-ownership="none">
- <type name="utf8" c:type="gchar*"/>
- </parameter>
- <parameter name="tag" transfer-ownership="none">
- <type name="utf8" c:type="gchar*"/>
- </parameter>
- <parameter name="value" transfer-ownership="none">
- <array c:type="gchar**">
- <type name="utf8"/>
- </array>
- </parameter>
- </parameters>
- </virtual-method>
- <method name="get_preset_names"
- c:identifier="gst_preset_get_preset_names"
- doc="Get a copy of preset names as a NULL terminated string array."
- version="0.10.20">
- <return-value transfer-ownership="full" doc="after usage.">
- <array c:type="gchar**">
- <type name="utf8"/>
- </array>
- </return-value>
- </method>
- <method name="get_property_names"
- c:identifier="gst_preset_get_property_names"
- doc="Get a the names of the GObject properties that can be used for presets."
- version="0.10.20">
- <return-value transfer-ownership="full" doc="after use.">
- <array c:type="gchar**">
- <type name="utf8"/>
- </array>
- </return-value>
- </method>
- <method name="load_preset"
- c:identifier="gst_preset_load_preset"
- doc="Load the given preset."
- version="0.10.20">
- <return-value transfer-ownership="none">
- <type name="boolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <parameter name="name" transfer-ownership="none">
- <type name="utf8" c:type="gchar*"/>
- </parameter>
- </parameters>
- </method>
- <method name="save_preset"
- c:identifier="gst_preset_save_preset"
- doc="Save the current object settings as a preset under the given name. If there
-is already a preset by this @name it will be overwritten."
- version="0.10.20">
- <return-value transfer-ownership="none">
- <type name="boolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <parameter name="name" transfer-ownership="none">
- <type name="utf8" c:type="gchar*"/>
- </parameter>
- </parameters>
- </method>
- <method name="rename_preset"
- c:identifier="gst_preset_rename_preset"
- doc="Renames a preset. If there is already a preset by the @new_name it will be
-overwritten."
- version="0.10.20">
- <return-value transfer-ownership="none">
- <type name="boolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <parameter name="old_name" transfer-ownership="none">
- <type name="utf8" c:type="gchar*"/>
- </parameter>
- <parameter name="new_name" transfer-ownership="none">
- <type name="utf8" c:type="gchar*"/>
- </parameter>
- </parameters>
- </method>
- <method name="delete_preset"
- c:identifier="gst_preset_delete_preset"
- doc="Delete the given preset."
- version="0.10.20">
- <return-value transfer-ownership="none">
- <type name="boolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <parameter name="name" transfer-ownership="none">
- <type name="utf8" c:type="gchar*"/>
- </parameter>
- </parameters>
- </method>
- <method name="set_meta"
- c:identifier="gst_preset_set_meta"
- doc="Sets a new @value for an existing meta data item or adds a new item. Meta
-data @tag names can be something like e.g. "comment". Supplying %NULL for the"
- version="0.10.20">
- <return-value transfer-ownership="none">
- <type name="boolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <parameter name="name" transfer-ownership="none">
- <type name="utf8" c:type="gchar*"/>
- </parameter>
- <parameter name="tag" transfer-ownership="none">
- <type name="utf8" c:type="gchar*"/>
- </parameter>
- <parameter name="value" transfer-ownership="none">
- <type name="utf8" c:type="gchar*"/>
- </parameter>
- </parameters>
- </method>
- <method name="get_meta"
- c:identifier="gst_preset_get_meta"
- doc="Gets the @value for an existing meta data @tag. Meta data @tag names can be
-something like e.g. "comment". Returned values need to be released when done.
-or no value for the given @tag"
- version="0.10.20">
- <return-value transfer-ownership="none">
- <type name="boolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <parameter name="name" transfer-ownership="none">
- <type name="utf8" c:type="gchar*"/>
- </parameter>
- <parameter name="tag" transfer-ownership="none">
- <type name="utf8" c:type="gchar*"/>
- </parameter>
- <parameter name="value" transfer-ownership="none">
- <array c:type="gchar**">
- <type name="utf8"/>
- </array>
- </parameter>
- </parameters>
- </method>
- </interface>
- <record name="PresetInterface"
- c:type="GstPresetInterface"
- glib:is-gtype-struct-for="Preset"
- doc="#GstPreset interface.">
- <field name="parent">
- <type name="GObject.TypeInterface" c:type="GTypeInterface"/>
- </field>
- <field name="get_preset_names">
- <callback name="get_preset_names" c:type="get_preset_names">
- <return-value transfer-ownership="full">
- <array c:type="gchar**">
- <type name="utf8"/>
- </array>
- </return-value>
- <parameters>
- <parameter name="preset" transfer-ownership="none">
- <type name="Preset" c:type="GstPreset*"/>
- </parameter>
- </parameters>
- </callback>
- </field>
- <field name="get_property_names">
- <callback name="get_property_names" c:type="get_property_names">
- <return-value transfer-ownership="full">
- <array c:type="gchar**">
- <type name="utf8"/>
- </array>
- </return-value>
- <parameters>
- <parameter name="preset" transfer-ownership="none">
- <type name="Preset" c:type="GstPreset*"/>
- </parameter>
- </parameters>
- </callback>
- </field>
- <field name="load_preset">
- <callback name="load_preset" c:type="load_preset">
- <return-value transfer-ownership="none">
- <type name="boolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <parameter name="preset" transfer-ownership="none">
- <type name="Preset" c:type="GstPreset*"/>
- </parameter>
- <parameter name="name" transfer-ownership="none">
- <type name="utf8" c:type="gchar*"/>
- </parameter>
- </parameters>
- </callback>
- </field>
- <field name="save_preset">
- <callback name="save_preset" c:type="save_preset">
- <return-value transfer-ownership="none">
- <type name="boolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <parameter name="preset" transfer-ownership="none">
- <type name="Preset" c:type="GstPreset*"/>
- </parameter>
- <parameter name="name" transfer-ownership="none">
- <type name="utf8" c:type="gchar*"/>
- </parameter>
- </parameters>
- </callback>
- </field>
- <field name="rename_preset">
- <callback name="rename_preset" c:type="rename_preset">
- <return-value transfer-ownership="none">
- <type name="boolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <parameter name="preset" transfer-ownership="none">
- <type name="Preset" c:type="GstPreset*"/>
- </parameter>
- <parameter name="old_name" transfer-ownership="none">
- <type name="utf8" c:type="gchar*"/>
- </parameter>
- <parameter name="new_name" transfer-ownership="none">
- <type name="utf8" c:type="gchar*"/>
- </parameter>
- </parameters>
- </callback>
- </field>
- <field name="delete_preset">
- <callback name="delete_preset" c:type="delete_preset">
- <return-value transfer-ownership="none">
- <type name="boolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <parameter name="preset" transfer-ownership="none">
- <type name="Preset" c:type="GstPreset*"/>
- </parameter>
- <parameter name="name" transfer-ownership="none">
- <type name="utf8" c:type="gchar*"/>
- </parameter>
- </parameters>
- </callback>
- </field>
- <field name="set_meta">
- <callback name="set_meta" c:type="set_meta">
- <return-value transfer-ownership="none">
- <type name="boolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <parameter name="preset" transfer-ownership="none">
- <type name="Preset" c:type="GstPreset*"/>
- </parameter>
- <parameter name="name" transfer-ownership="none">
- <type name="utf8" c:type="gchar*"/>
- </parameter>
- <parameter name="tag" transfer-ownership="none">
- <type name="utf8" c:type="gchar*"/>
- </parameter>
- <parameter name="value" transfer-ownership="none">
- <type name="utf8" c:type="gchar*"/>
- </parameter>
- </parameters>
- </callback>
- </field>
- <field name="get_meta">
- <callback name="get_meta" c:type="get_meta">
- <return-value transfer-ownership="none">
- <type name="boolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <parameter name="preset" transfer-ownership="none">
- <type name="Preset" c:type="GstPreset*"/>
- </parameter>
- <parameter name="name" transfer-ownership="none">
- <type name="utf8" c:type="gchar*"/>
- </parameter>
- <parameter name="tag" transfer-ownership="none">
- <type name="utf8" c:type="gchar*"/>
- </parameter>
- <parameter name="value" transfer-ownership="none">
- <array c:type="gchar**">
- <type name="utf8"/>
- </array>
- </parameter>
- </parameters>
- </callback>
- </field>
- <field name="_gst_reserved">
- <array zero-terminated="0" c:type="gpointer" fixed-size="4">
- <type name="any"/>
- </array>
- </field>
- </record>
- <class name="ProxyPad"
- c:type="GstProxyPad"
- parent="Pad"
- glib:type-name="GstProxyPad"
- glib:get-type="gst_proxy_pad_get_type"
- glib:type-struct="ProxyPadClass">
- <field name="pad">
- <type name="Pad" c:type="GstPad"/>
- </field>
- <field name="priv">
- <type name="ProxyPadPrivate" c:type="GstProxyPadPrivate*"/>
- </field>
- </class>
- <record name="ProxyPadClass"
- c:type="GstProxyPadClass"
- glib:is-gtype-struct-for="ProxyPad">
- <field name="parent_class">
- <type name="PadClass" c:type="GstPadClass"/>
- </field>
- <field name="_gst_reserved">
- <array zero-terminated="0" c:type="gpointer" fixed-size="1">
- <type name="any"/>
- </array>
- </field>
- </record>
- <record name="ProxyPadPrivate" c:type="GstProxyPadPrivate">
- </record>
- <record name="Query" c:type="GstQuery" doc="The #GstQuery structure.">
- <field name="mini_object" writable="1">
- <type name="MiniObject" c:type="GstMiniObject"/>
- </field>
- <field name="type" writable="1">
- <type name="QueryType" c:type="GstQueryType"/>
- </field>
- <field name="structure" writable="1">
- <type name="Structure" c:type="GstStructure*"/>
- </field>
- <field name="_gst_reserved" writable="1">
- <type name="any" c:type="gpointer"/>
- </field>
- <constructor name="new_position"
- c:identifier="gst_query_new_position"
- doc="Constructs a new query stream position query object. Use gst_query_unref()
-when done with it. A position query is used to query the current position
-of playback in the streams, in some format.">
- <return-value transfer-ownership="full">
- <type name="Query" c:type="GstQuery*"/>
- </return-value>
- <parameters>
- <parameter name="format" transfer-ownership="none">
- <type name="Format" c:type="GstFormat"/>
- </parameter>
- </parameters>
- </constructor>
- <constructor name="new_duration"
- c:identifier="gst_query_new_duration"
- doc="Constructs a new stream duration query object to query in the given format.
-Use gst_query_unref() when done with it. A duration query will give the
-total length of the stream.">
- <return-value transfer-ownership="full">
- <type name="Query" c:type="GstQuery*"/>
- </return-value>
- <parameters>
- <parameter name="format" transfer-ownership="none">
- <type name="Format" c:type="GstFormat"/>
- </parameter>
- </parameters>
- </constructor>
- <constructor name="new_latency"
- c:identifier="gst_query_new_latency"
- doc="Constructs a new latency query object.
-Use gst_query_unref() when done with it. A latency query is usually performed
-by sinks to compensate for additional latency introduced by elements in the
-pipeline."
- version="0.10.12">
- <return-value transfer-ownership="full">
- <type name="Query" c:type="GstQuery*"/>
- </return-value>
- </constructor>
- <constructor name="new_convert"
- c:identifier="gst_query_new_convert"
- doc="Constructs a new convert query object. Use gst_query_unref()
-when done with it. A convert query is used to ask for a conversion between
-one format and another.">
- <return-value transfer-ownership="full">
- <type name="Query" c:type="GstQuery*"/>
- </return-value>
- <parameters>
- <parameter name="src_format" transfer-ownership="none">
- <type name="Format" c:type="GstFormat"/>
- </parameter>
- <parameter name="value" transfer-ownership="none">
- <type name="int64" c:type="gint64"/>
- </parameter>
- <parameter name="dest_format" transfer-ownership="none">
- <type name="Format" c:type="GstFormat"/>
- </parameter>
- </parameters>
- </constructor>
- <constructor name="new_segment"
- c:identifier="gst_query_new_segment"
- doc="Constructs a new segment query object. Use gst_query_unref()
-when done with it. A segment query is used to discover information about the
-currently configured segment for playback.">
- <return-value transfer-ownership="full">
- <type name="Query" c:type="GstQuery*"/>
- </return-value>
- <parameters>
- <parameter name="format" transfer-ownership="none">
- <type name="Format" c:type="GstFormat"/>
- </parameter>
- </parameters>
- </constructor>
- <constructor name="new_application"
- c:identifier="gst_query_new_application"
- doc="Constructs a new custom application query object. Use gst_query_unref()
-when done with it.">
- <return-value transfer-ownership="full">
- <type name="Query" c:type="GstQuery*"/>
- </return-value>
- <parameters>
- <parameter name="type" transfer-ownership="none">
- <type name="QueryType" c:type="GstQueryType"/>
- </parameter>
- <parameter name="structure" transfer-ownership="none">
- <type name="Structure" c:type="GstStructure*"/>
- </parameter>
- </parameters>
- </constructor>
- <constructor name="new_seeking"
- c:identifier="gst_query_new_seeking"
- doc="Constructs a new query object for querying seeking properties of
-the stream.">
- <return-value transfer-ownership="full">
- <type name="Query" c:type="GstQuery*"/>
- </return-value>
- <parameters>
- <parameter name="format" transfer-ownership="none">
- <type name="Format" c:type="GstFormat"/>
- </parameter>
- </parameters>
- </constructor>
- <constructor name="new_formats"
- c:identifier="gst_query_new_formats"
- doc="Constructs a new query object for querying formats of
-the stream."
- version="0.10.4">
- <return-value transfer-ownership="full">
- <type name="Query" c:type="GstQuery*"/>
- </return-value>
- </constructor>
- <constructor name="new_buffering" c:identifier="gst_query_new_buffering">
- <return-value transfer-ownership="full">
- <type name="Query" c:type="GstQuery*"/>
- </return-value>
- <parameters>
- <parameter name="format" transfer-ownership="none">
- <type name="Format" c:type="GstFormat"/>
- </parameter>
- </parameters>
- </constructor>
- <constructor name="new_uri"
- c:identifier="gst_query_new_uri"
- doc="Constructs a new query URI query object. Use gst_query_unref()
-when done with it. An URI query is used to query the current URI
-that is used by the source or sink."
- version="0.10.22">
- <return-value transfer-ownership="full">
- <type name="Query" c:type="GstQuery*"/>
- </return-value>
- </constructor>
- <method name="set_position"
- c:identifier="gst_query_set_position"
- doc="Answer a position query by setting the requested value in the given format.">
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <parameter name="format" transfer-ownership="none">
- <type name="Format" c:type="GstFormat"/>
- </parameter>
- <parameter name="cur" transfer-ownership="none">
- <type name="int64" c:type="gint64"/>
- </parameter>
- </parameters>
- </method>
- <method name="parse_position"
- c:identifier="gst_query_parse_position"
- doc="Parse a position query, writing the format into @format, and the position
-into @cur, if the respective parameters are non-NULL.">
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <parameter name="format" transfer-ownership="none">
- <type name="Format" c:type="GstFormat*"/>
- </parameter>
- <parameter name="cur" direction="out" transfer-ownership="full">
- <type name="int64" c:type="gint64*"/>
- </parameter>
- </parameters>
- </method>
- <method name="set_duration"
- c:identifier="gst_query_set_duration"
- doc="Answer a duration query by setting the requested value in the given format.">
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <parameter name="format" transfer-ownership="none">
- <type name="Format" c:type="GstFormat"/>
- </parameter>
- <parameter name="duration" transfer-ownership="none">
- <type name="int64" c:type="gint64"/>
- </parameter>
- </parameters>
- </method>
- <method name="parse_duration"
- c:identifier="gst_query_parse_duration"
- doc="Parse a duration query answer. Write the format of the duration into @format,
-and the value into @duration, if the respective variables are non-NULL.">
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <parameter name="format" transfer-ownership="none">
- <type name="Format" c:type="GstFormat*"/>
- </parameter>
- <parameter name="duration" direction="out" transfer-ownership="full">
- <type name="int64" c:type="gint64*"/>
- </parameter>
- </parameters>
- </method>
- <method name="set_latency"
- c:identifier="gst_query_set_latency"
- doc="Answer a latency query by setting the requested values in the given format."
- version="0.10.12">
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <parameter name="live" transfer-ownership="none">
- <type name="boolean" c:type="gboolean"/>
- </parameter>
- <parameter name="min_latency" transfer-ownership="none">
- <type name="ClockTime" c:type="GstClockTime"/>
- </parameter>
- <parameter name="max_latency" transfer-ownership="none">
- <type name="ClockTime" c:type="GstClockTime"/>
- </parameter>
- </parameters>
- </method>
- <method name="parse_latency"
- c:identifier="gst_query_parse_latency"
- doc="Parse a latency query answer."
- version="0.10.12">
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <parameter name="live" direction="out" transfer-ownership="full">
- <type name="boolean" c:type="gboolean*"/>
- </parameter>
- <parameter name="min_latency" transfer-ownership="none">
- <type name="ClockTime" c:type="GstClockTime*"/>
- </parameter>
- <parameter name="max_latency" transfer-ownership="none">
- <type name="ClockTime" c:type="GstClockTime*"/>
- </parameter>
- </parameters>
- </method>
- <method name="set_convert"
- c:identifier="gst_query_set_convert"
- doc="Answer a convert query by setting the requested values.">
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <parameter name="src_format" transfer-ownership="none">
- <type name="Format" c:type="GstFormat"/>
- </parameter>
- <parameter name="src_value" transfer-ownership="none">
- <type name="int64" c:type="gint64"/>
- </parameter>
- <parameter name="dest_format" transfer-ownership="none">
- <type name="Format" c:type="GstFormat"/>
- </parameter>
- <parameter name="dest_value" transfer-ownership="none">
- <type name="int64" c:type="gint64"/>
- </parameter>
- </parameters>
- </method>
- <method name="parse_convert"
- c:identifier="gst_query_parse_convert"
- doc="Parse a convert query answer. Any of @src_format, @src_value, @dest_format,
-and @dest_value may be NULL, in which case that value is omitted.">
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <parameter name="src_format" transfer-ownership="none">
- <type name="Format" c:type="GstFormat*"/>
- </parameter>
- <parameter name="src_value"
- direction="out"
- transfer-ownership="full">
- <type name="int64" c:type="gint64*"/>
- </parameter>
- <parameter name="dest_format" transfer-ownership="none">
- <type name="Format" c:type="GstFormat*"/>
- </parameter>
- <parameter name="dest_value"
- direction="out"
- transfer-ownership="full">
- <type name="int64" c:type="gint64*"/>
- </parameter>
- </parameters>
- </method>
- <method name="set_segment"
- c:identifier="gst_query_set_segment"
- doc="Answer a segment query by setting the requested values. The normal
-playback segment of a pipeline is 0 to duration at the default rate of
-1.0. If a seek was performed on the pipeline to play a different
-segment, this query will return the range specified in the last seek.
-playback range start and stop values expressed in @format.
-The values are always between 0 and the duration of the media and
-negative rates, playback will actually happen from @stop_value to">
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <parameter name="rate" transfer-ownership="none">
- <type name="double" c:type="gdouble"/>
- </parameter>
- <parameter name="format" transfer-ownership="none">
- <type name="Format" c:type="GstFormat"/>
- </parameter>
- <parameter name="start_value" transfer-ownership="none">
- <type name="int64" c:type="gint64"/>
- </parameter>
- <parameter name="stop_value" transfer-ownership="none">
- <type name="int64" c:type="gint64"/>
- </parameter>
- </parameters>
- </method>
- <method name="parse_segment"
- c:identifier="gst_query_parse_segment"
- doc="Parse a segment query answer. Any of @rate, @format, @start_value, and
-See gst_query_set_segment() for an explanation of the function arguments.">
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <parameter name="rate" direction="out" transfer-ownership="full">
- <type name="double" c:type="gdouble*"/>
- </parameter>
- <parameter name="format" transfer-ownership="none">
- <type name="Format" c:type="GstFormat*"/>
- </parameter>
- <parameter name="start_value"
- direction="out"
- transfer-ownership="full">
- <type name="int64" c:type="gint64*"/>
- </parameter>
- <parameter name="stop_value"
- direction="out"
- transfer-ownership="full">
- <type name="int64" c:type="gint64*"/>
- </parameter>
- </parameters>
- </method>
- <method name="get_structure"
- c:identifier="gst_query_get_structure"
- doc="Get the structure of a query.
-by the query and will therefore be freed when the query is unreffed.">
- <return-value transfer-ownership="full">
- <type name="Structure" c:type="GstStructure*"/>
- </return-value>
- </method>
- <method name="set_seeking"
- c:identifier="gst_query_set_seeking"
- doc="Set the seeking query result fields in @query.">
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <parameter name="format" transfer-ownership="none">
- <type name="Format" c:type="GstFormat"/>
- </parameter>
- <parameter name="seekable" transfer-ownership="none">
- <type name="boolean" c:type="gboolean"/>
- </parameter>
- <parameter name="segment_start" transfer-ownership="none">
- <type name="int64" c:type="gint64"/>
- </parameter>
- <parameter name="segment_end" transfer-ownership="none">
- <type name="int64" c:type="gint64"/>
- </parameter>
- </parameters>
- </method>
- <method name="parse_seeking"
- c:identifier="gst_query_parse_seeking"
- doc="Parse a seeking query, writing the format into @format, and
-other results into the passed parameters, if the respective parameters
-are non-NULL">
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <parameter name="format" transfer-ownership="none">
- <type name="Format" c:type="GstFormat*"/>
- </parameter>
- <parameter name="seekable" direction="out" transfer-ownership="full">
- <type name="boolean" c:type="gboolean*"/>
- </parameter>
- <parameter name="segment_start"
- direction="out"
- transfer-ownership="full">
- <type name="int64" c:type="gint64*"/>
- </parameter>
- <parameter name="segment_end"
- direction="out"
- transfer-ownership="full">
- <type name="int64" c:type="gint64*"/>
- </parameter>
- </parameters>
- </method>
- <method name="set_formats"
- c:identifier="gst_query_set_formats"
- doc="Set the formats query result fields in @query. The number of formats passed
-must be equal to @n_formats.">
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <parameter name="n_formats" transfer-ownership="none">
- <type name="int" c:type="gint"/>
- </parameter>
- <parameter transfer-ownership="none">
- <varargs>
- </varargs>
- </parameter>
- </parameters>
- </method>
- <method name="set_formatsv"
- c:identifier="gst_query_set_formatsv"
- doc="Set the formats query result fields in @query. The number of formats passed
-in the @formats array must be equal to @n_formats."
- version="0.10.4">
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <parameter name="n_formats" transfer-ownership="none">
- <type name="int" c:type="gint"/>
- </parameter>
- <parameter name="formats" transfer-ownership="none">
- <type name="Format" c:type="GstFormat*"/>
- </parameter>
- </parameters>
- </method>
- <method name="parse_formats_length"
- c:identifier="gst_query_parse_formats_length"
- doc="Parse the number of formats in the formats @query."
- version="0.10.4">
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <parameter name="n_formats"
- direction="out"
- transfer-ownership="full">
- <type name="uint" c:type="guint*"/>
- </parameter>
- </parameters>
- </method>
- <method name="parse_formats_nth"
- c:identifier="gst_query_parse_formats_nth"
- doc="Parse the format query and retrieve the @nth format from it into
-set to GST_FORMAT_UNDEFINED."
- version="0.10.4">
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <parameter name="nth" transfer-ownership="none">
- <type name="uint" c:type="guint"/>
- </parameter>
- <parameter name="format" transfer-ownership="none">
- <type name="Format" c:type="GstFormat*"/>
- </parameter>
- </parameters>
- </method>
- <method name="set_buffering_percent"
- c:identifier="gst_query_set_buffering_percent">
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <parameter name="busy" transfer-ownership="none">
- <type name="boolean" c:type="gboolean"/>
- </parameter>
- <parameter name="percent" transfer-ownership="none">
- <type name="int" c:type="gint"/>
- </parameter>
- </parameters>
- </method>
- <method name="parse_buffering_percent"
- c:identifier="gst_query_parse_buffering_percent">
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <parameter name="busy" direction="out" transfer-ownership="full">
- <type name="boolean" c:type="gboolean*"/>
- </parameter>
- <parameter name="percent" direction="out" transfer-ownership="full">
- <type name="int" c:type="gint*"/>
- </parameter>
- </parameters>
- </method>
- <method name="set_buffering_stats"
- c:identifier="gst_query_set_buffering_stats"
- doc="Configures the buffering stats values in @query."
- version="0.10.20">
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <parameter name="mode" transfer-ownership="none">
- <type name="BufferingMode" c:type="GstBufferingMode"/>
- </parameter>
- <parameter name="avg_in" transfer-ownership="none">
- <type name="int" c:type="gint"/>
- </parameter>
- <parameter name="avg_out" transfer-ownership="none">
- <type name="int" c:type="gint"/>
- </parameter>
- <parameter name="buffering_left" transfer-ownership="none">
- <type name="int64" c:type="gint64"/>
- </parameter>
- </parameters>
- </method>
- <method name="parse_buffering_stats"
- c:identifier="gst_query_parse_buffering_stats"
- doc="Extracts the buffering stats values from @query."
- version="0.10.20">
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <parameter name="mode" transfer-ownership="none">
- <type name="BufferingMode" c:type="GstBufferingMode*"/>
- </parameter>
- <parameter name="avg_in" direction="out" transfer-ownership="full">
- <type name="int" c:type="gint*"/>
- </parameter>
- <parameter name="avg_out" direction="out" transfer-ownership="full">
- <type name="int" c:type="gint*"/>
- </parameter>
- <parameter name="buffering_left"
- direction="out"
- transfer-ownership="full">
- <type name="int64" c:type="gint64*"/>
- </parameter>
- </parameters>
- </method>
- <method name="set_buffering_range"
- c:identifier="gst_query_set_buffering_range"
- doc="Set the available query result fields in @query."
- version="0.10.20">
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <parameter name="format" transfer-ownership="none">
- <type name="Format" c:type="GstFormat"/>
- </parameter>
- <parameter name="start" transfer-ownership="none">
- <type name="int64" c:type="gint64"/>
- </parameter>
- <parameter name="stop" transfer-ownership="none">
- <type name="int64" c:type="gint64"/>
- </parameter>
- <parameter name="estimated_total" transfer-ownership="none">
- <type name="int64" c:type="gint64"/>
- </parameter>
- </parameters>
- </method>
- <method name="parse_buffering_range"
- c:identifier="gst_query_parse_buffering_range"
- doc="Parse an available query, writing the format into @format, and
-other results into the passed parameters, if the respective parameters
-are non-NULL"
- version="0.10.20">
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <parameter name="format" transfer-ownership="none">
- <type name="Format" c:type="GstFormat*"/>
- </parameter>
- <parameter name="start" direction="out" transfer-ownership="full">
- <type name="int64" c:type="gint64*"/>
- </parameter>
- <parameter name="stop" direction="out" transfer-ownership="full">
- <type name="int64" c:type="gint64*"/>
- </parameter>
- <parameter name="estimated_total"
- direction="out"
- transfer-ownership="full">
- <type name="int64" c:type="gint64*"/>
- </parameter>
- </parameters>
- </method>
- <method name="parse_uri"
- c:identifier="gst_query_parse_uri"
- doc="Parse an URI query, writing the URI into @uri as a newly
-allocated string, if the respective parameters are non-NULL.
-Free the string with g_free() after usage."
- version="0.10.22">
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <parameter name="uri" transfer-ownership="none">
- <array c:type="gchar**">
- <type name="utf8"/>
- </array>
- </parameter>
- </parameters>
- </method>
- <method name="set_uri"
- c:identifier="gst_query_set_uri"
- doc="Answer a URI query by setting the requested URI."
- version="0.10.22">
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <parameter name="uri" transfer-ownership="none">
- <type name="utf8" c:type="gchar*"/>
- </parameter>
- </parameters>
- </method>
- </record>
- <record name="QueryClass" c:type="GstQueryClass">
- <field name="mini_object_class" writable="1">
- <type name="MiniObjectClass" c:type="GstMiniObjectClass"/>
- </field>
- <field name="_gst_reserved" writable="1">
- <array zero-terminated="0" c:type="gpointer" fixed-size="4">
- <type name="any"/>
- </array>
- </field>
- </record>
- <enumeration name="QueryType"
- doc="0.10.20.
-0.10.22.
-Standard predefined Query types"
- c:type="GstQueryType">
- <member name="none" value="0" c:identifier="GST_QUERY_NONE"/>
- <member name="position" value="1" c:identifier="GST_QUERY_POSITION"/>
- <member name="duration" value="2" c:identifier="GST_QUERY_DURATION"/>
- <member name="latency" value="3" c:identifier="GST_QUERY_LATENCY"/>
- <member name="jitter" value="4" c:identifier="GST_QUERY_JITTER"/>
- <member name="rate" value="5" c:identifier="GST_QUERY_RATE"/>
- <member name="seeking" value="6" c:identifier="GST_QUERY_SEEKING"/>
- <member name="segment" value="7" c:identifier="GST_QUERY_SEGMENT"/>
- <member name="convert" value="8" c:identifier="GST_QUERY_CONVERT"/>
- <member name="formats" value="9" c:identifier="GST_QUERY_FORMATS"/>
- <member name="buffering" value="10" c:identifier="GST_QUERY_BUFFERING"/>
- <member name="custom" value="11" c:identifier="GST_QUERY_CUSTOM"/>
- <member name="uri" value="12" c:identifier="GST_QUERY_URI"/>
- </enumeration>
- <record name="QueryTypeDefinition"
- c:type="GstQueryTypeDefinition"
- doc="A Query Type definition">
- <field name="value" writable="1">
- <type name="QueryType" c:type="GstQueryType"/>
- </field>
- <field name="nick" writable="1">
- <type name="utf8" c:type="gchar*"/>
- </field>
- <field name="description" writable="1">
- <type name="utf8" c:type="gchar*"/>
- </field>
- <field name="quark" writable="1">
- <type name="GLib.Quark" c:type="GQuark"/>
- </field>
- </record>
- <enumeration name="Rank"
- doc="Element priority ranks. Defines the order in which the autoplugger (or
-similar rank-picking mechanisms, such as e.g. gst_element_make_from_uri())
-will choose this element over an alternative one with the same function.
-These constants serve as a rough guidance for defining the rank of a
-#GstPluginFeature. Any value is valid, including values bigger than"
- c:type="GstRank">
- <member name="none" value="0" c:identifier="GST_RANK_NONE"/>
- <member name="marginal" value="64" c:identifier="GST_RANK_MARGINAL"/>
- <member name="secondary" value="128" c:identifier="GST_RANK_SECONDARY"/>
- <member name="primary" value="256" c:identifier="GST_RANK_PRIMARY"/>
- </enumeration>
- <class name="Registry"
- c:type="GstRegistry"
- doc="Opaque #GstRegistry structure."
- parent="Object"
- glib:type-name="GstRegistry"
- glib:get-type="gst_registry_get_type"
- glib:type-struct="RegistryClass">
- <function name="get_default"
- c:identifier="gst_registry_get_default"
- doc="Retrieves the default registry. The caller does not own a reference on the
-registry, as it is alive as long as GStreamer is initialized.">
- <return-value transfer-ownership="full">
- <type name="Registry" c:type="GstRegistry*"/>
- </return-value>
- </function>
- <function name="fork_is_enabled"
- c:identifier="gst_registry_fork_is_enabled"
- doc="By default GStreamer will perform scanning and rebuilding of the
-registry file using a helper child process.
-Applications might want to disable this behaviour with the
-gst_registry_fork_set_enabled() function, in which case new plugins
-are scanned (and loaded) into the application process.
-rebuilding the registry."
- version="0.10.10">
- <return-value transfer-ownership="none">
- <type name="boolean" c:type="gboolean"/>
- </return-value>
- </function>
- <function name="fork_set_enabled"
- c:identifier="gst_registry_fork_set_enabled"
- doc="Applications might want to disable/enable spawning of a child helper process
-when rebuilding the registry. See gst_registry_fork_is_enabled() for more
-information."
- version="0.10.10">
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <parameter name="enabled" transfer-ownership="none">
- <type name="boolean" c:type="gboolean"/>
- </parameter>
- </parameters>
- </function>
- <method name="scan_path"
- c:identifier="gst_registry_scan_path"
- doc="Scan the given path for plugins to add to the registry. The syntax of the
-path is specific to the registry.">
- <return-value transfer-ownership="none">
- <type name="boolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <parameter name="path" transfer-ownership="none">
- <type name="utf8" c:type="gchar*"/>
- </parameter>
- </parameters>
- </method>
- <method name="add_path"
- c:identifier="gst_registry_add_path"
- doc="Add the given path to the registry. The syntax of the
-path is specific to the registry. If the path has already been
-added, do nothing.">
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <parameter name="path" transfer-ownership="none">
- <type name="utf8" c:type="gchar*"/>
- </parameter>
- </parameters>
- </method>
- <method name="get_path_list"
- c:identifier="gst_registry_get_path_list"
- doc="Get the list of paths for the given registry.
-MT safe.">
- <return-value transfer-ownership="full">
- <type name="GLib.List" c:type="GList*"/>
- </return-value>
- </method>
- <method name="add_plugin"
- c:identifier="gst_registry_add_plugin"
- doc="Add the plugin to the registry. The plugin-added signal will be emitted.
-This function will sink @plugin.
-MT safe.">
- <return-value transfer-ownership="none">
- <type name="boolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <parameter name="plugin" transfer-ownership="none">
- <type name="Plugin" c:type="GstPlugin*"/>
- </parameter>
- </parameters>
- </method>
- <method name="remove_plugin"
- c:identifier="gst_registry_remove_plugin"
- doc="Remove the plugin from the registry.
-MT safe.">
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <parameter name="plugin" transfer-ownership="none">
- <type name="Plugin" c:type="GstPlugin*"/>
- </parameter>
- </parameters>
- </method>
- <method name="add_feature"
- c:identifier="gst_registry_add_feature"
- doc="Add the feature to the registry. The feature-added signal will be emitted.
-This function sinks @feature.
-MT safe.">
- <return-value transfer-ownership="none">
- <type name="boolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <parameter name="feature" transfer-ownership="none">
- <type name="PluginFeature" c:type="GstPluginFeature*"/>
- </parameter>
- </parameters>
- </method>
- <method name="remove_feature"
- c:identifier="gst_registry_remove_feature"
- doc="Remove the feature from the registry.
-MT safe.">
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <parameter name="feature" transfer-ownership="none">
- <type name="PluginFeature" c:type="GstPluginFeature*"/>
- </parameter>
- </parameters>
- </method>
- <method name="get_plugin_list"
- c:identifier="gst_registry_get_plugin_list"
- doc="Get a copy of all plugins registered in the given registry. The refcount
-of each element in the list in incremented.
-MT safe.">
- <return-value transfer-ownership="full" doc="after usage.">
- <type name="GLib.List" c:type="GList*"/>
- </return-value>
- </method>
- <method name="plugin_filter"
- c:identifier="gst_registry_plugin_filter"
- doc="Runs a filter against all plugins in the registry and returns a #GList with
-the results. If the first flag is set, only the first match is
-returned (as a list with a single object).
-Every plugin is reffed; use gst_plugin_list_free() after use, which
-will unref again.
-MT safe.">
- <return-value transfer-ownership="full" doc="after usage.">
- <type name="GLib.List" c:type="GList*"/>
- </return-value>
- <parameters>
- <parameter name="filter" transfer-ownership="none" scope="call">
- <type name="PluginFilter" c:type="GstPluginFilter"/>
- </parameter>
- <parameter name="first" transfer-ownership="none">
- <type name="boolean" c:type="gboolean"/>
- </parameter>
- <parameter name="user_data" transfer-ownership="none">
- <type name="any" c:type="gpointer"/>
- </parameter>
- </parameters>
- </method>
- <method name="feature_filter"
- c:identifier="gst_registry_feature_filter"
- doc="Runs a filter against all features of the plugins in the registry
-and returns a GList with the results.
-If the first flag is set, only the first match is
-returned (as a list with a single object).
-after usage.
-MT safe.">
- <return-value transfer-ownership="full">
- <type name="GLib.List" c:type="GList*"/>
- </return-value>
- <parameters>
- <parameter name="filter" transfer-ownership="none" scope="call">
- <type name="PluginFeatureFilter" c:type="GstPluginFeatureFilter"/>
- </parameter>
- <parameter name="first" transfer-ownership="none">
- <type name="boolean" c:type="gboolean"/>
- </parameter>
- <parameter name="user_data" transfer-ownership="none">
- <type name="any" c:type="gpointer"/>
- </parameter>
- </parameters>
- </method>
- <method name="get_feature_list"
- c:identifier="gst_registry_get_feature_list"
- doc="Retrieves a #GList of #GstPluginFeature of @type.
-gst_plugin_feature_list_free() after usage.
-MT safe.">
- <return-value transfer-ownership="full">
- <type name="GLib.List" c:type="GList*"/>
- </return-value>
- <parameters>
- <parameter name="type" transfer-ownership="none">
- <type name="GType" c:type="GType"/>
- </parameter>
- </parameters>
- </method>
- <method name="get_feature_list_by_plugin"
- c:identifier="gst_registry_get_feature_list_by_plugin"
- doc="Retrieves a #GList of features of the plugin with name @name.
-after usage.">
- <return-value transfer-ownership="full">
- <type name="GLib.List" c:type="GList*"/>
- </return-value>
- <parameters>
- <parameter name="name" transfer-ownership="none">
- <type name="utf8" c:type="gchar*"/>
- </parameter>
- </parameters>
- </method>
- <method name="get_feature_list_cookie"
- c:identifier="gst_registry_get_feature_list_cookie"
- doc="Returns the registrys feature list cookie. This changes
-every time a feature is added or removed from the registry."
- version="0.10.26">
- <return-value transfer-ownership="none">
- <type name="uint32" c:type="guint32"/>
- </return-value>
- </method>
- <method name="find_plugin"
- c:identifier="gst_registry_find_plugin"
- doc="Find the plugin with the given name in the registry.
-The plugin will be reffed; caller is responsible for unreffing.
-gst_object_unref() after usage.
-MT safe.">
- <return-value transfer-ownership="full">
- <type name="Plugin" c:type="GstPlugin*"/>
- </return-value>
- <parameters>
- <parameter name="name" transfer-ownership="none">
- <type name="utf8" c:type="gchar*"/>
- </parameter>
- </parameters>
- </method>
- <method name="find_feature"
- c:identifier="gst_registry_find_feature"
- doc="Find the pluginfeature with the given name and type in the registry.
-if the plugin was not found. gst_object_unref() after usage.
-MT safe.">
- <return-value transfer-ownership="full">
- <type name="PluginFeature" c:type="GstPluginFeature*"/>
- </return-value>
- <parameters>
- <parameter name="name" transfer-ownership="none">
- <type name="utf8" c:type="gchar*"/>
- </parameter>
- <parameter name="type" transfer-ownership="none">
- <type name="GType" c:type="GType"/>
- </parameter>
- </parameters>
- </method>
- <method name="lookup"
- c:identifier="gst_registry_lookup"
- doc="Look up a plugin in the given registry with the given filename.
-If found, plugin is reffed.
-after usage.">
- <return-value transfer-ownership="full">
- <type name="Plugin" c:type="GstPlugin*"/>
- </return-value>
- <parameters>
- <parameter name="filename" transfer-ownership="none">
- <type name="utf8" c:type="char*"/>
- </parameter>
- </parameters>
- </method>
- <method name="lookup_feature"
- c:identifier="gst_registry_lookup_feature"
- doc="Find a #GstPluginFeature with @name in @registry.
-gst_object_unref() after usage.
-MT safe.">
- <return-value transfer-ownership="full">
- <type name="PluginFeature" c:type="GstPluginFeature*"/>
- </return-value>
- <parameters>
- <parameter name="name" transfer-ownership="none">
- <type name="utf8" c:type="char*"/>
- </parameter>
- </parameters>
- </method>
- <method name="xml_read_cache" c:identifier="gst_registry_xml_read_cache">
- <return-value transfer-ownership="none">
- <type name="boolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <parameter name="location" transfer-ownership="none">
- <type name="utf8" c:type="char*"/>
- </parameter>
- </parameters>
- </method>
- <method name="xml_write_cache"
- c:identifier="gst_registry_xml_write_cache">
- <return-value transfer-ownership="none">
- <type name="boolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <parameter name="location" transfer-ownership="none">
- <type name="utf8" c:type="char*"/>
- </parameter>
- </parameters>
- </method>
- <field name="object">
- <type name="Object" c:type="GstObject"/>
- </field>
- <field name="plugins">
- <type name="GLib.List" c:type="GList*"/>
- </field>
- <field name="features">
- <type name="GLib.List" c:type="GList*"/>
- </field>
- <field name="paths">
- <type name="GLib.List" c:type="GList*"/>
- </field>
- <field name="cache_file">
- <type name="int" c:type="int"/>
- </field>
- <field name="feature_hash">
- <type name="GLib.HashTable" c:type="GHashTable*"/>
- </field>
- <field name="basename_hash">
- <type name="GLib.HashTable" c:type="GHashTable*"/>
- </field>
- <field name="priv">
- <type name="RegistryPrivate" c:type="GstRegistryPrivate*"/>
- </field>
- <field name="_gst_reserved">
- <array zero-terminated="0" c:type="gpointer" fixed-size="1">
- <type name="any"/>
- </array>
- </field>
- <glib:signal name="feature-added"
- doc="Signals that a feature has been added to the registry (possibly
-replacing a previously-added one by the same name)">
- <return-value transfer-ownership="full">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <parameter name="feature" transfer-ownership="none">
- <type name="any" c:type="gpointer"/>
- </parameter>
- </parameters>
- </glib:signal>
- <glib:signal name="plugin-added"
- doc="Signals that a plugin has been added to the registry (possibly
-replacing a previously-added one by the same name)">
- <return-value transfer-ownership="full">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <parameter name="plugin" transfer-ownership="none">
- <type name="any" c:type="gpointer"/>
- </parameter>
- </parameters>
- </glib:signal>
- </class>
- <record name="RegistryClass"
- c:type="GstRegistryClass"
- glib:is-gtype-struct-for="Registry">
- <field name="parent_class">
- <type name="ObjectClass" c:type="GstObjectClass"/>
- </field>
- <field name="plugin_added">
- <callback name="plugin_added" c:type="plugin_added">
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <parameter name="registry" transfer-ownership="none">
- <type name="Registry" c:type="GstRegistry*"/>
- </parameter>
- <parameter name="plugin" transfer-ownership="none">
- <type name="Plugin" c:type="GstPlugin*"/>
- </parameter>
- </parameters>
- </callback>
- </field>
- <field name="feature_added">
- <callback name="feature_added" c:type="feature_added">
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <parameter name="registry" transfer-ownership="none">
- <type name="Registry" c:type="GstRegistry*"/>
- </parameter>
- <parameter name="feature" transfer-ownership="none">
- <type name="PluginFeature" c:type="GstPluginFeature*"/>
- </parameter>
- </parameters>
- </callback>
- </field>
- <field name="_gst_reserved">
- <array zero-terminated="0" c:type="gpointer" fixed-size="4">
- <type name="any"/>
- </array>
- </field>
- </record>
- <record name="RegistryPrivate" c:type="GstRegistryPrivate">
- </record>
- <enumeration name="ResourceError"
- doc="category. Make sure you add a custom message to the error call.
-deciding where to go while developing code.
-both reading and writing, or either (but unspecified which).
-Resource errors are for any resource used by an element:
-memory, files, network connections, process space, ...
-They're typically used by source and sink elements."
- c:type="GstResourceError"
- glib:error-quark="gst_resource_error_quark">
- <member name="failed"
- value="1"
- c:identifier="GST_RESOURCE_ERROR_FAILED"/>
- <member name="too_lazy"
- value="2"
- c:identifier="GST_RESOURCE_ERROR_TOO_LAZY"/>
- <member name="not_found"
- value="3"
- c:identifier="GST_RESOURCE_ERROR_NOT_FOUND"/>
- <member name="busy" value="4" c:identifier="GST_RESOURCE_ERROR_BUSY"/>
- <member name="open_read"
- value="5"
- c:identifier="GST_RESOURCE_ERROR_OPEN_READ"/>
- <member name="open_write"
- value="6"
- c:identifier="GST_RESOURCE_ERROR_OPEN_WRITE"/>
- <member name="open_read_write"
- value="7"
- c:identifier="GST_RESOURCE_ERROR_OPEN_READ_WRITE"/>
- <member name="close" value="8" c:identifier="GST_RESOURCE_ERROR_CLOSE"/>
- <member name="read" value="9" c:identifier="GST_RESOURCE_ERROR_READ"/>
- <member name="write" value="10" c:identifier="GST_RESOURCE_ERROR_WRITE"/>
- <member name="seek" value="11" c:identifier="GST_RESOURCE_ERROR_SEEK"/>
- <member name="sync" value="12" c:identifier="GST_RESOURCE_ERROR_SYNC"/>
- <member name="settings"
- value="13"
- c:identifier="GST_RESOURCE_ERROR_SETTINGS"/>
- <member name="no_space_left"
- value="14"
- c:identifier="GST_RESOURCE_ERROR_NO_SPACE_LEFT"/>
- <member name="num_errors"
- value="15"
- c:identifier="GST_RESOURCE_ERROR_NUM_ERRORS"/>
- </enumeration>
- <constant name="SECOND" value="0">
- <type name="int"/>
- </constant>
- <enumeration name="SearchMode"
- doc="The different search modes."
- version="0.10.23"
- c:type="GstSearchMode">
- <member name="exact" value="0" c:identifier="GST_SEARCH_MODE_EXACT"/>
- <member name="before" value="1" c:identifier="GST_SEARCH_MODE_BEFORE"/>
- <member name="after" value="2" c:identifier="GST_SEARCH_MODE_AFTER"/>
- </enumeration>
- <bitfield name="SeekFlags"
- doc="be considerably slower for some formats.
-faster but less accurate.
-elements to skip frames instead of generating all
-frames. Since 0.10.22.
-Flags to be used with gst_element_seek() or gst_event_new_seek(). All flags
-can be used together.
-A non flushing seek might take some time to perform as the currently
-playing data in the pipeline will not be cleared.
-An accurate seek might be slower for formats that don't have any indexes
-or timestamp markers in the stream. Specifying this flag might require a
-complete scan of the file in those cases.
-no EOS will be emmited by the element that performed the seek, but a
-#GST_MESSAGE_SEGMENT_DONE message will be posted on the bus by the element.
-When this message is posted, it is possible to send a new seek event to
-continue playback. With this seek method it is possible to perform seemless
-looping or simple linear editing.
-When doing fast forward (rate > 1.0) or fast reverse (rate < -1.0) trickmode
-playback, the @GST_SEEK_FLAG_SKIP flag can be used to instruct decoders
-and demuxers to adjust the playback rate by skipping frames. This can improve
-performance and decrease CPU usage because not all frames need to be decoded."
- c:type="GstSeekFlags">
- <member name="none" value="0" c:identifier="GST_SEEK_FLAG_NONE"/>
- <member name="flush" value="1" c:identifier="GST_SEEK_FLAG_FLUSH"/>
- <member name="accurate" value="2" c:identifier="GST_SEEK_FLAG_ACCURATE"/>
- <member name="key_unit" value="4" c:identifier="GST_SEEK_FLAG_KEY_UNIT"/>
- <member name="segment" value="8" c:identifier="GST_SEEK_FLAG_SEGMENT"/>
- <member name="skip" value="16" c:identifier="GST_SEEK_FLAG_SKIP"/>
- </bitfield>
- <enumeration name="SeekType"
- doc="can't be used to seek relative to the current playback position - do a
-position query, calculate the desired position and then do an absolute
-position seek instead if that's what you want to do.
-The different types of seek events. When constructing a seek event with
-gst_event_new_seek(), a format, a seek method and optional flags are to
-be provided. The seek event is then inserted into the graph with
-gst_pad_send_event() or gst_element_send_event()."
- c:type="GstSeekType">
- <member name="none" value="0" c:identifier="GST_SEEK_TYPE_NONE"/>
- <member name="cur" value="1" c:identifier="GST_SEEK_TYPE_CUR"/>
- <member name="set" value="2" c:identifier="GST_SEEK_TYPE_SET"/>
- <member name="end" value="3" c:identifier="GST_SEEK_TYPE_END"/>
- </enumeration>
- <record name="Segment"
- c:type="GstSegment"
- doc="A helper structure that holds the configured region of
-interest in a media file."
- glib:type-name="GstSegment"
- glib:get-type="gst_segment_get_type">
- <field name="rate" writable="1">
- <type name="double" c:type="gdouble"/>
- </field>
- <field name="abs_rate" writable="1">
- <type name="double" c:type="gdouble"/>
- </field>
- <field name="format" writable="1">
- <type name="Format" c:type="GstFormat"/>
- </field>
- <field name="flags" writable="1">
- <type name="SeekFlags" c:type="GstSeekFlags"/>
- </field>
- <field name="start" writable="1">
- <type name="int64" c:type="gint64"/>
- </field>
- <field name="stop" writable="1">
- <type name="int64" c:type="gint64"/>
- </field>
- <field name="time" writable="1">
- <type name="int64" c:type="gint64"/>
- </field>
- <field name="accum" writable="1">
- <type name="int64" c:type="gint64"/>
- </field>
- <field name="last_stop" writable="1">
- <type name="int64" c:type="gint64"/>
- </field>
- <field name="duration" writable="1">
- <type name="int64" c:type="gint64"/>
- </field>
- <field name="applied_rate" writable="1">
- <type name="double" c:type="gdouble"/>
- </field>
- <field name="_gst_reserved" writable="1">
- <array zero-terminated="0" c:type="guint8" fixed-size="0">
- <type name="uint8"/>
- </array>
- </field>
- <constructor name="new"
- c:identifier="gst_segment_new"
- doc="Allocate a new #GstSegment structure and initialize it using
-gst_segment_init().">
- <return-value transfer-ownership="full">
- <type name="Segment" c:type="GstSegment*"/>
- </return-value>
- </constructor>
- <method name="copy"
- c:identifier="gst_segment_copy"
- doc="Create a copy of given @segment."
- version="0.10.20">
- <return-value transfer-ownership="full">
- <type name="Segment" c:type="GstSegment*"/>
- </return-value>
- </method>
- <method name="free"
- c:identifier="gst_segment_free"
- doc="Free the allocated segment @segment.">
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- </method>
- <method name="init"
- c:identifier="gst_segment_init"
- doc="The start/last_stop positions are set to 0 and the stop/duration
-fields are set to -1 (unknown). The default rate of 1.0 and no
-flags are set.
-Initialize @segment to its default values.">
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <parameter name="format" transfer-ownership="none">
- <type name="Format" c:type="GstFormat"/>
- </parameter>
- </parameters>
- </method>
- <method name="set_duration"
- c:identifier="gst_segment_set_duration"
- doc="Set the duration of the segment to @duration. This function is mainly
-used by elements that perform seeking and know the total duration of the
-segment.
-This field should be set to allow seeking requests relative to the
-duration.">
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <parameter name="format" transfer-ownership="none">
- <type name="Format" c:type="GstFormat"/>
- </parameter>
- <parameter name="duration" transfer-ownership="none">
- <type name="int64" c:type="gint64"/>
- </parameter>
- </parameters>
- </method>
- <method name="set_last_stop"
- c:identifier="gst_segment_set_last_stop"
- doc="Set the last observed stop position in the segment to @position.
-This field should be set to allow seeking requests relative to the
-current playing position.">
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <parameter name="format" transfer-ownership="none">
- <type name="Format" c:type="GstFormat"/>
- </parameter>
- <parameter name="position" transfer-ownership="none">
- <type name="int64" c:type="gint64"/>
- </parameter>
- </parameters>
- </method>
- <method name="set_seek"
- c:identifier="gst_segment_set_seek"
- doc="Update the segment structure with the field values of a seek event (see
-gst_event_new_seek()).
-After calling this method, the segment field last_stop and time will
-contain the requested new position in the segment. The new requested
-position in the segment depends on @rate and @start_type and @stop_type.
-For positive @rate, the new position in the segment is the new @segment
-start field when it was updated with a @start_type different from
-#GST_SEEK_TYPE_NONE. If no update was performed on @segment start position
-(#GST_SEEK_TYPE_NONE), @start is ignored and @segment last_stop is
-unmodified.
-For negative @rate, the new position in the segment is the new @segment
-stop field when it was updated with a @stop_type different from
-#GST_SEEK_TYPE_NONE. If no stop was previously configured in the segment, the
-duration of the segment will be used to update the stop position.
-If no update was performed on @segment stop position (#GST_SEEK_TYPE_NONE),
-The applied rate of the segment will be set to 1.0 by default.
-If the caller can apply a rate change, it should update @segment
-rate and applied_rate after calling this function.
-last_stop field. This field can be FALSE if, for example, only the @rate
-has been changed but not the playback position.">
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <parameter name="rate" transfer-ownership="none">
- <type name="double" c:type="gdouble"/>
- </parameter>
- <parameter name="format" transfer-ownership="none">
- <type name="Format" c:type="GstFormat"/>
- </parameter>
- <parameter name="flags" transfer-ownership="none">
- <type name="SeekFlags" c:type="GstSeekFlags"/>
- </parameter>
- <parameter name="start_type" transfer-ownership="none">
- <type name="SeekType" c:type="GstSeekType"/>
- </parameter>
- <parameter name="start" transfer-ownership="none">
- <type name="int64" c:type="gint64"/>
- </parameter>
- <parameter name="stop_type" transfer-ownership="none">
- <type name="SeekType" c:type="GstSeekType"/>
- </parameter>
- <parameter name="stop" transfer-ownership="none">
- <type name="int64" c:type="gint64"/>
- </parameter>
- <parameter name="update" direction="out" transfer-ownership="full">
- <type name="boolean" c:type="gboolean*"/>
- </parameter>
- </parameters>
- </method>
- <method name="set_newsegment"
- c:identifier="gst_segment_set_newsegment"
- doc="Update the segment structure with the field values of a new segment event and
-with a default applied_rate of 1.0."
- version="0.10.6">
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <parameter name="update" transfer-ownership="none">
- <type name="boolean" c:type="gboolean"/>
- </parameter>
- <parameter name="rate" transfer-ownership="none">
- <type name="double" c:type="gdouble"/>
- </parameter>
- <parameter name="format" transfer-ownership="none">
- <type name="Format" c:type="GstFormat"/>
- </parameter>
- <parameter name="start" transfer-ownership="none">
- <type name="int64" c:type="gint64"/>
- </parameter>
- <parameter name="stop" transfer-ownership="none">
- <type name="int64" c:type="gint64"/>
- </parameter>
- <parameter name="time" transfer-ownership="none">
- <type name="int64" c:type="gint64"/>
- </parameter>
- </parameters>
- </method>
- <method name="set_newsegment_full"
- c:identifier="gst_segment_set_newsegment_full"
- doc="Update the segment structure with the field values of a new segment event.">
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <parameter name="update" transfer-ownership="none">
- <type name="boolean" c:type="gboolean"/>
- </parameter>
- <parameter name="rate" transfer-ownership="none">
- <type name="double" c:type="gdouble"/>
- </parameter>
- <parameter name="applied_rate" transfer-ownership="none">
- <type name="double" c:type="gdouble"/>
- </parameter>
- <parameter name="format" transfer-ownership="none">
- <type name="Format" c:type="GstFormat"/>
- </parameter>
- <parameter name="start" transfer-ownership="none">
- <type name="int64" c:type="gint64"/>
- </parameter>
- <parameter name="stop" transfer-ownership="none">
- <type name="int64" c:type="gint64"/>
- </parameter>
- <parameter name="time" transfer-ownership="none">
- <type name="int64" c:type="gint64"/>
- </parameter>
- </parameters>
- </method>
- <method name="to_stream_time"
- c:identifier="gst_segment_to_stream_time"
- doc="Translate @position to stream time using the currently configured
-segment. The @position value must be between @segment start and
-stop value.
-This function is typically used by elements that need to operate on
-the stream time of the buffers it receives, such as effect plugins.
-In those use cases, @position is typically the buffer timestamp or
-clock time that one wants to convert to the stream time.
-The stream time is always between 0 and the total duration of the
-media stream.
-was given.">
- <return-value transfer-ownership="none">
- <type name="int64" c:type="gint64"/>
- </return-value>
- <parameters>
- <parameter name="format" transfer-ownership="none">
- <type name="Format" c:type="GstFormat"/>
- </parameter>
- <parameter name="position" transfer-ownership="none">
- <type name="int64" c:type="gint64"/>
- </parameter>
- </parameters>
- </method>
- <method name="to_running_time"
- c:identifier="gst_segment_to_running_time"
- doc="Translate @position to the total running time using the currently configured
-and previously accumulated segments. Position is a value between @segment
-start and stop time.
-This function is typically used by elements that need to synchronize to the
-global clock in a pipeline. The runnning time is a constantly increasing value
-starting from 0. When gst_segment_init() is called, this value will reset to
-0.
-This function returns -1 if the position is outside of @segment start and stop.
-was given.">
- <return-value transfer-ownership="none">
- <type name="int64" c:type="gint64"/>
- </return-value>
- <parameters>
- <parameter name="format" transfer-ownership="none">
- <type name="Format" c:type="GstFormat"/>
- </parameter>
- <parameter name="position" transfer-ownership="none">
- <type name="int64" c:type="gint64"/>
- </parameter>
- </parameters>
- </method>
- <method name="to_position"
- c:identifier="gst_segment_to_position"
- doc="Convert @running_time into a position in the segment so that
-gst_segment_to_running_time() with that position returns @running_time.
--1 when @running_time is -1 or when it is not inside @segment."
- version="0.10.24">
- <return-value transfer-ownership="none">
- <type name="int64" c:type="gint64"/>
- </return-value>
- <parameters>
- <parameter name="format" transfer-ownership="none">
- <type name="Format" c:type="GstFormat"/>
- </parameter>
- <parameter name="running_time" transfer-ownership="none">
- <type name="int64" c:type="gint64"/>
- </parameter>
- </parameters>
- </method>
- <method name="clip"
- c:identifier="gst_segment_clip"
- doc="Clip the given @start and @stop values to the segment boundaries given
-in @segment. @start and @stop are compared and clipped to @segment
-start and stop values.
-If the function returns FALSE, @start and @stop are known to fall
-outside of @segment and @clip_start and @clip_stop are not updated.
-When the function returns TRUE, @clip_start and @clip_stop will be
-updated. If @clip_start or @clip_stop are different from @start or @stop
-respectively, the region fell partially in the segment.
-Note that when @stop is -1, @clip_stop will be set to the end of the
-segment. Depending on the use case, this may or may not be what you want.
-completely in @segment, FALSE if the values are completely outside
-of the segment.">
- <return-value transfer-ownership="none">
- <type name="boolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <parameter name="format" transfer-ownership="none">
- <type name="Format" c:type="GstFormat"/>
- </parameter>
- <parameter name="start" transfer-ownership="none">
- <type name="int64" c:type="gint64"/>
- </parameter>
- <parameter name="stop" transfer-ownership="none">
- <type name="int64" c:type="gint64"/>
- </parameter>
- <parameter name="clip_start"
- direction="out"
- transfer-ownership="full">
- <type name="int64" c:type="gint64*"/>
- </parameter>
- <parameter name="clip_stop"
- direction="out"
- transfer-ownership="full">
- <type name="int64" c:type="gint64*"/>
- </parameter>
- </parameters>
- </method>
- <method name="set_running_time"
- c:identifier="gst_segment_set_running_time"
- doc="Adjust the start/stop and accum values of @segment such that the next valid
-buffer will be one with @running_time.
-returned, @running_time is -1 or not in @segment."
- version="0.10.24">
- <return-value transfer-ownership="none">
- <type name="boolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <parameter name="format" transfer-ownership="none">
- <type name="Format" c:type="GstFormat"/>
- </parameter>
- <parameter name="running_time" transfer-ownership="none">
- <type name="int64" c:type="gint64"/>
- </parameter>
- </parameters>
- </method>
- </record>
- <enumeration name="State"
- doc="process data. Sink elements however only accept one
-buffer and then block.
-the data is flowing.
-The possible states an element can be in. States can be changed using
-gst_element_set_state() and checked using gst_element_get_state()."
- c:type="GstState">
- <member name="void_pending"
- value="0"
- c:identifier="GST_STATE_VOID_PENDING"/>
- <member name="null" value="1" c:identifier="GST_STATE_NULL"/>
- <member name="ready" value="2" c:identifier="GST_STATE_READY"/>
- <member name="paused" value="3" c:identifier="GST_STATE_PAUSED"/>
- <member name="playing" value="4" c:identifier="GST_STATE_PLAYING"/>
- </enumeration>
- <bitfield name="StateChange"
- doc="<itemizedlist>
-<listitem><para>
-The element must check if the resources it needs are available. Device
-sinks and -sources typically try to probe the device to constrain their
-caps.
-</para></listitem>
-<listitem><para>
-The element opens the device (in case feature need to be probed).
-</para></listitem>
-</itemizedlist>
-<itemizedlist>
-<listitem><para>
-The element pads are activated in order to receive data in PAUSED.
-Streaming threads are started.
-</para></listitem>
-<listitem><para>
-Some elements might need to return ASYNC and complete the state change
-when they have enough information. It is a requirement for sinks to
-return ASYNC and complete the state change when they receive the first
-buffer or EOS event (preroll). Sinks also block the dataflow when in
-PAUSED.
-</para></listitem>
-<listitem><para>
-A pipeline resets the running_time to 0.
-</para></listitem>
-<listitem><para>
-Live sources return NO_PREROLL and don't generate data.
-</para></listitem>
-</itemizedlist>
-<itemizedlist>
-<listitem><para>
-Most elements ignore this state change.
-</para></listitem>
-<listitem><para>
-The pipeline selects a clock and distributes this to all the children
-before setting them to PLAYING. This means that it is only alowed to
-synchronize on the clock in the PLAYING state.
-</para></listitem>
-<listitem><para>
-The pipeline uses the clock and the running_time to calculate the
-base_time. The base_time is distributed to all children when performing
-the state change.
-</para></listitem>
-<listitem><para>
-Sink elements stop blocking on the preroll buffer or event and start
-rendering the data.
-</para></listitem>
-<listitem><para>
-Sinks can post the EOS message in the PLAYING state. It is not allowed to
-post EOS when not in the PLAYING state.
-</para></listitem>
-<listitem><para>
-While streaming in PAUSED or PLAYING elements can create and remove
-sometimes pads.
-</para></listitem>
-<listitem><para>
-Live sources start generating data and return SUCCESS.
-</para></listitem>
-</itemizedlist>
-<itemizedlist>
-<listitem><para>
-Most elements ignore this state change.
-</para></listitem>
-<listitem><para>
-The pipeline calculates the running_time based on the last selected clock
-and the base_time. It stores this information to continue playback when
-going back to the PLAYING state.
-</para></listitem>
-<listitem><para>
-Sinks unblock any clock wait calls.
-</para></listitem>
-<listitem><para>
-When a sink does not have a pending buffer to play, it returns ASYNC from
-this state change and completes the state change when it receives a new
-buffer or an EOS event.
-</para></listitem>
-<listitem><para>
-Any queued EOS messages are removed since they will be reposted when going
-back to the PLAYING state. The EOS messages are queued in GstBins.
-</para></listitem>
-<listitem><para>
-Live sources stop generating data and return NO_PREROLL.
-</para></listitem>
-</itemizedlist>
-<itemizedlist>
-<listitem><para>
-Sinks unblock any waits in the preroll.
-</para></listitem>
-<listitem><para>
-Elements unblock any waits on devices
-</para></listitem>
-<listitem><para>
-Chain or get_range functions return WRONG_STATE.
-</para></listitem>
-<listitem><para>
-The element pads are deactivated so that streaming becomes impossible and
-all streaming threads are stopped.
-</para></listitem>
-<listitem><para>
-The sink forgets all negotiated formats
-</para></listitem>
-<listitem><para>
-Elements remove all sometimes pads
-</para></listitem>
-</itemizedlist>
-<itemizedlist>
-<listitem><para>
-Elements close devices
-</para></listitem>
-<listitem><para>
-Elements reset any internal state.
-</para></listitem>
-</itemizedlist>
-These are the different state changes an element goes through.
-%GST_STATE_NULL &rArr; %GST_STATE_PLAYING is called an upwards state change
-and %GST_STATE_PLAYING &rArr; %GST_STATE_NULL a downwards state change."
- c:type="GstStateChange">
- <member name="null_to_ready"
- value="10"
- c:identifier="GST_STATE_CHANGE_NULL_TO_READY"/>
- <member name="ready_to_paused"
- value="19"
- c:identifier="GST_STATE_CHANGE_READY_TO_PAUSED"/>
- <member name="paused_to_playing"
- value="28"
- c:identifier="GST_STATE_CHANGE_PAUSED_TO_PLAYING"/>
- <member name="playing_to_paused"
- value="35"
- c:identifier="GST_STATE_CHANGE_PLAYING_TO_PAUSED"/>
- <member name="paused_to_ready"
- value="26"
- c:identifier="GST_STATE_CHANGE_PAUSED_TO_READY"/>
- <member name="ready_to_null"
- value="17"
- c:identifier="GST_STATE_CHANGE_READY_TO_NULL"/>
- </bitfield>
- <enumeration name="StateChangeReturn"
- doc="cannot produce data in %GST_STATE_PAUSED.
-This typically happens with live sources.
-The possible return values from a state change function. Only"
- c:type="GstStateChangeReturn">
- <member name="failure"
- value="0"
- c:identifier="GST_STATE_CHANGE_FAILURE"/>
- <member name="success"
- value="1"
- c:identifier="GST_STATE_CHANGE_SUCCESS"/>
- <member name="async" value="2" c:identifier="GST_STATE_CHANGE_ASYNC"/>
- <member name="no_preroll"
- value="3"
- c:identifier="GST_STATE_CHANGE_NO_PREROLL"/>
- </enumeration>
- <record name="StaticCaps"
- c:type="GstStaticCaps"
- doc="Datastructure to initialize #GstCaps from a string description usually
-used in conjunction with GST_STATIC_CAPS() and gst_static_caps_get() to
-instantiate a #GstCaps.">
- <field name="caps" writable="1">
- <type name="Caps" c:type="GstCaps"/>
- </field>
- <field name="string" writable="1">
- <type name="utf8" c:type="char*"/>
- </field>
- <field name="_gst_reserved" writable="1">
- <array zero-terminated="0" c:type="gpointer" fixed-size="4">
- <type name="any"/>
- </array>
- </field>
- <method name="get"
- c:identifier="gst_static_caps_get"
- doc="Converts a #GstStaticCaps to a #GstCaps.
-core holds an additional ref to the returned caps,
-use gst_caps_make_writable() on the returned caps to modify it.">
- <return-value transfer-ownership="full">
- <type name="Caps" c:type="GstCaps*"/>
- </return-value>
- </method>
- </record>
- <record name="StaticPadTemplate" c:type="GstStaticPadTemplate">
- <field name="name_template" writable="1">
- <type name="utf8" c:type="gchar*"/>
- </field>
- <field name="direction" writable="1">
- <type name="PadDirection" c:type="GstPadDirection"/>
- </field>
- <field name="presence" writable="1">
- <type name="PadPresence" c:type="GstPadPresence"/>
- </field>
- <field name="static_caps" writable="1">
- <type name="StaticCaps" c:type="GstStaticCaps"/>
- </field>
- <method name="get"
- c:identifier="gst_static_pad_template_get"
- doc="Converts a #GstStaticPadTemplate into a #GstPadTemplate.">
- <return-value transfer-ownership="full">
- <type name="PadTemplate" c:type="GstPadTemplate*"/>
- </return-value>
- </method>
- <method name="get_caps"
- c:identifier="gst_static_pad_template_get_caps"
- doc="Gets the capabilities of the static pad template.
-Unref after usage. Since the core holds an additional
-ref to the returned caps, use gst_caps_make_writable()
-on the returned caps to modify it.">
- <return-value transfer-ownership="full">
- <type name="Caps" c:type="GstCaps*"/>
- </return-value>
- </method>
- </record>
- <enumeration name="StreamError"
- doc="category. Make sure you add a custom message to the error call.
-deciding where to go while developing code.
-this functionality yet.
-stream's type.
-of stream.
-stream's type.
-(for example, wrong caps).
-Stream errors are for anything related to the stream being processed:
-format errors, media type errors, ...
-They're typically used by decoders, demuxers, converters, ..."
- c:type="GstStreamError"
- glib:error-quark="gst_stream_error_quark">
- <member name="failed" value="1" c:identifier="GST_STREAM_ERROR_FAILED"/>
- <member name="too_lazy"
- value="2"
- c:identifier="GST_STREAM_ERROR_TOO_LAZY"/>
- <member name="not_implemented"
- value="3"
- c:identifier="GST_STREAM_ERROR_NOT_IMPLEMENTED"/>
- <member name="type_not_found"
- value="4"
- c:identifier="GST_STREAM_ERROR_TYPE_NOT_FOUND"/>
- <member name="wrong_type"
- value="5"
- c:identifier="GST_STREAM_ERROR_WRONG_TYPE"/>
- <member name="codec_not_found"
- value="6"
- c:identifier="GST_STREAM_ERROR_CODEC_NOT_FOUND"/>
- <member name="decode" value="7" c:identifier="GST_STREAM_ERROR_DECODE"/>
- <member name="encode" value="8" c:identifier="GST_STREAM_ERROR_ENCODE"/>
- <member name="demux" value="9" c:identifier="GST_STREAM_ERROR_DEMUX"/>
- <member name="mux" value="10" c:identifier="GST_STREAM_ERROR_MUX"/>
- <member name="format" value="11" c:identifier="GST_STREAM_ERROR_FORMAT"/>
- <member name="decrypt"
- value="12"
- c:identifier="GST_STREAM_ERROR_DECRYPT"/>
- <member name="decrypt_nokey"
- value="13"
- c:identifier="GST_STREAM_ERROR_DECRYPT_NOKEY"/>
- <member name="num_errors"
- value="14"
- c:identifier="GST_STREAM_ERROR_NUM_ERRORS"/>
- </enumeration>
- <enumeration name="StreamStatusType"
- doc="The type of a %GST_MESSAGE_STREAM_STATUS. The stream status messages inform the
-application of new streaming threads and their status."
- version="0.10.24"
- c:type="GstStreamStatusType">
- <member name="create"
- value="0"
- c:identifier="GST_STREAM_STATUS_TYPE_CREATE"/>
- <member name="enter"
- value="1"
- c:identifier="GST_STREAM_STATUS_TYPE_ENTER"/>
- <member name="leave"
- value="2"
- c:identifier="GST_STREAM_STATUS_TYPE_LEAVE"/>
- <member name="destroy"
- value="3"
- c:identifier="GST_STREAM_STATUS_TYPE_DESTROY"/>
- <member name="start"
- value="8"
- c:identifier="GST_STREAM_STATUS_TYPE_START"/>
- <member name="pause"
- value="9"
- c:identifier="GST_STREAM_STATUS_TYPE_PAUSE"/>
- <member name="stop"
- value="10"
- c:identifier="GST_STREAM_STATUS_TYPE_STOP"/>
- </enumeration>
- <record name="Structure"
- c:type="GstStructure"
- doc="The GstStructure object. Most fields are private."
- glib:type-name="GstStructure"
- glib:get-type="gst_structure_get_type">
- <field name="type" writable="1">
- <type name="GType" c:type="GType"/>
- </field>
- <field name="name" writable="1">
- <type name="GLib.Quark" c:type="GQuark"/>
- </field>
- <field name="parent_refcount" writable="1">
- <type name="any" c:type="gint*"/>
- </field>
- <field name="fields" writable="1">
- <type name="GLib.Array" c:type="GArray*"/>
- </field>
- <field name="_gst_reserved" writable="1">
- <type name="any" c:type="gpointer"/>
- </field>
- <constructor name="new"
- c:identifier="gst_structure_new"
- doc="Creates a new #GstStructure with the given name. Parses the
-list of variable arguments and sets fields to the values listed.
-Variable arguments should be passed as field name, field type,
-and value. Last variable argument should be NULL.">
- <return-value transfer-ownership="full">
- <type name="Structure" c:type="GstStructure*"/>
- </return-value>
- <parameters>
- <parameter name="name" transfer-ownership="none">
- <type name="utf8" c:type="gchar*"/>
- </parameter>
- <parameter name="firstfield" transfer-ownership="none">
- <type name="utf8" c:type="gchar*"/>
- </parameter>
- <parameter transfer-ownership="none">
- <varargs>
- </varargs>
- </parameter>
- </parameters>
- </constructor>
- <method name="copy"
- c:identifier="gst_structure_copy"
- doc="Duplicates a #GstStructure and all its fields and values.">
- <return-value transfer-ownership="full">
- <type name="Structure" c:type="GstStructure*"/>
- </return-value>
- </method>
- <method name="set_parent_refcount"
- c:identifier="gst_structure_set_parent_refcount"
- doc="Sets the parent_refcount field of #GstStructure. This field is used to
-determine whether a structure is mutable or not. This function should only be
-called by code implementing parent objects of #GstStructure, as described in
-the MT Refcounting section of the design documents.">
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <parameter name="refcount" direction="out" transfer-ownership="full">
- <type name="int" c:type="gint*"/>
- </parameter>
- </parameters>
- </method>
- <method name="free"
- c:identifier="gst_structure_free"
- doc="Frees a #GstStructure and all its fields and values. The structure must not
-have a parent when this function is called.">
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- </method>
- <method name="get_name"
- c:identifier="gst_structure_get_name"
- doc="Get the name of @structure as a string.">
- <return-value transfer-ownership="none">
- <type name="utf8" c:type="gchar*"/>
- </return-value>
- </method>
- <method name="get_name_id"
- c:identifier="gst_structure_get_name_id"
- doc="Get the name of @structure as a GQuark.">
- <return-value transfer-ownership="full">
- <type name="GLib.Quark" c:type="GQuark"/>
- </return-value>
- </method>
- <method name="has_name"
- c:identifier="gst_structure_has_name"
- doc="Checks if the structure has the given name">
- <return-value transfer-ownership="none">
- <type name="boolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <parameter name="name" transfer-ownership="none">
- <type name="utf8" c:type="gchar*"/>
- </parameter>
- </parameters>
- </method>
- <method name="set_name"
- c:identifier="gst_structure_set_name"
- doc="Sets the name of the structure to the given @name. The string
-provided is copied before being used. It must not be empty, start with a
-letter and can be followed by letters, numbers and any of "/-_.:".">
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <parameter name="name" transfer-ownership="none">
- <type name="utf8" c:type="gchar*"/>
- </parameter>
- </parameters>
- </method>
- <method name="id_set_value"
- c:identifier="gst_structure_id_set_value"
- doc="Sets the field with the given GQuark @field to @value. If the field
-does not exist, it is created. If the field exists, the previous
-value is replaced and freed.">
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <parameter name="field" transfer-ownership="none">
- <type name="GLib.Quark" c:type="GQuark"/>
- </parameter>
- <parameter name="value" transfer-ownership="none">
- <type name="GObject.Value" c:type="GValue*"/>
- </parameter>
- </parameters>
- </method>
- <method name="set_value"
- c:identifier="gst_structure_set_value"
- doc="Sets the field with the given name @field to @value. If the field
-does not exist, it is created. If the field exists, the previous
-value is replaced and freed.">
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <parameter name="fieldname" transfer-ownership="none">
- <type name="utf8" c:type="gchar*"/>
- </parameter>
- <parameter name="value" transfer-ownership="none">
- <type name="GObject.Value" c:type="GValue*"/>
- </parameter>
- </parameters>
- </method>
- <method name="set"
- c:identifier="gst_structure_set"
- doc="Parses the variable arguments and sets fields accordingly.
-Variable arguments should be in the form field name, field type
-(as a GType), value(s). The last variable argument should be NULL.">
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <parameter name="fieldname" transfer-ownership="none">
- <type name="utf8" c:type="gchar*"/>
- </parameter>
- <parameter transfer-ownership="none">
- <varargs>
- </varargs>
- </parameter>
- </parameters>
- </method>
- <method name="id_set"
- c:identifier="gst_structure_id_set"
- doc="Identical to gst_structure_set, except that field names are
-passed using the GQuark for the field name. This allows more efficient
-setting of the structure if the caller already knows the associated
-quark values.
-The last variable argument must be NULL."
- version="0.10.10">
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <parameter name="fieldname" transfer-ownership="none">
- <type name="GLib.Quark" c:type="GQuark"/>
- </parameter>
- <parameter transfer-ownership="none">
- <varargs>
- </varargs>
- </parameter>
- </parameters>
- </method>
- <method name="get"
- c:identifier="gst_structure_get"
- doc="Parses the variable arguments and reads fields from @structure accordingly.
-Variable arguments should be in the form field name, field type
-(as a GType), pointer(s) to a variable(s) to hold the return value(s).
-The last variable argument should be NULL.
-For refcounted (mini)objects you will acquire your own reference which
-you must release with a suitable _unref() when no longer needed. For
-strings and boxed types you will acquire a copy which you will need to
-release with either g_free() or the suiteable function for the boxed type.
-because the field requested did not exist, or was of a type other
-than the type specified), otherwise TRUE."
- version="0.10.24">
- <return-value transfer-ownership="none">
- <type name="boolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <parameter name="first_fieldname" transfer-ownership="none">
- <type name="utf8" c:type="char*"/>
- </parameter>
- <parameter transfer-ownership="none">
- <varargs>
- </varargs>
- </parameter>
- </parameters>
- </method>
- <method name="id_get"
- c:identifier="gst_structure_id_get"
- doc="Parses the variable arguments and reads fields from @structure accordingly.
-Variable arguments should be in the form field id quark, field type
-(as a GType), pointer(s) to a variable(s) to hold the return value(s).
-The last variable argument should be NULL (technically it should be a
-0 quark, but we require NULL so compilers that support it can check for
-the NULL terminator and warn if it's not there).
-This function is just like gst_structure_get() only that it is slightly
-more efficient since it saves the string-to-quark lookup in the global
-quark hashtable.
-For refcounted (mini)objects you will acquire your own reference which
-you must release with a suitable _unref() when no longer needed. For
-strings and boxed types you will acquire a copy which you will need to
-release with either g_free() or the suiteable function for the boxed type.
-because the field requested did not exist, or was of a type other
-than the type specified), otherwise TRUE."
- version="0.10.24">
- <return-value transfer-ownership="none">
- <type name="boolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <parameter name="first_field_id" transfer-ownership="none">
- <type name="GLib.Quark" c:type="GQuark"/>
- </parameter>
- <parameter transfer-ownership="none">
- <varargs>
- </varargs>
- </parameter>
- </parameters>
- </method>
- <method name="id_get_value"
- c:identifier="gst_structure_id_get_value"
- doc="Get the value of the field with GQuark @field.
-identifier.">
- <return-value transfer-ownership="none">
- <type name="GObject.Value" c:type="GValue*"/>
- </return-value>
- <parameters>
- <parameter name="field" transfer-ownership="none">
- <type name="GLib.Quark" c:type="GQuark"/>
- </parameter>
- </parameters>
- </method>
- <method name="get_value"
- c:identifier="gst_structure_get_value"
- doc="Get the value of the field with name @fieldname.">
- <return-value transfer-ownership="none">
- <type name="GObject.Value" c:type="GValue*"/>
- </return-value>
- <parameters>
- <parameter name="fieldname" transfer-ownership="none">
- <type name="utf8" c:type="gchar*"/>
- </parameter>
- </parameters>
- </method>
- <method name="remove_field"
- c:identifier="gst_structure_remove_field"
- doc="Removes the field with the given name. If the field with the given
-name does not exist, the structure is unchanged.">
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <parameter name="fieldname" transfer-ownership="none">
- <type name="utf8" c:type="gchar*"/>
- </parameter>
- </parameters>
- </method>
- <method name="remove_fields"
- c:identifier="gst_structure_remove_fields"
- doc="Removes the fields with the given names. If a field does not exist, the
-argument is ignored.">
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <parameter name="fieldname" transfer-ownership="none">
- <type name="utf8" c:type="gchar*"/>
- </parameter>
- <parameter transfer-ownership="none">
- <varargs>
- </varargs>
- </parameter>
- </parameters>
- </method>
- <method name="remove_all_fields"
- c:identifier="gst_structure_remove_all_fields"
- doc="Removes all fields in a GstStructure.">
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- </method>
- <method name="get_field_type"
- c:identifier="gst_structure_get_field_type"
- doc="Finds the field with the given name, and returns the type of the
-value it contains. If the field is not found, G_TYPE_INVALID is
-returned.">
- <return-value transfer-ownership="none">
- <type name="GType" c:type="GType"/>
- </return-value>
- <parameters>
- <parameter name="fieldname" transfer-ownership="none">
- <type name="utf8" c:type="gchar*"/>
- </parameter>
- </parameters>
- </method>
- <method name="foreach"
- c:identifier="gst_structure_foreach"
- doc="Calls the provided function once for each field in the #GstStructure. The
-function must not modify the fields. Also see gst_structure_map_in_place().
-FALSE otherwise.">
- <return-value transfer-ownership="none">
- <type name="boolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <parameter name="func"
- transfer-ownership="none"
- scope="call"
- closure="2">
- <type name="StructureForeachFunc"
- c:type="GstStructureForeachFunc"/>
- </parameter>
- <parameter name="user_data" transfer-ownership="none">
- <type name="any" c:type="gpointer"/>
- </parameter>
- </parameters>
- </method>
- <method name="map_in_place"
- c:identifier="gst_structure_map_in_place"
- doc="Calls the provided function once for each field in the #GstStructure. In
-contrast to gst_structure_foreach(), the function may modify but not delete the
-fields. The structure must be mutable.
-FALSE otherwise.">
- <return-value transfer-ownership="none">
- <type name="boolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <parameter name="func"
- transfer-ownership="none"
- scope="call"
- closure="2">
- <type name="StructureMapFunc" c:type="GstStructureMapFunc"/>
- </parameter>
- <parameter name="user_data" transfer-ownership="none">
- <type name="any" c:type="gpointer"/>
- </parameter>
- </parameters>
- </method>
- <method name="n_fields"
- c:identifier="gst_structure_n_fields"
- doc="Get the number of fields in the structure.">
- <return-value transfer-ownership="none">
- <type name="int" c:type="gint"/>
- </return-value>
- </method>
- <method name="nth_field_name"
- c:identifier="gst_structure_nth_field_name"
- doc="Get the name of the given field number, counting from 0 onwards.">
- <return-value transfer-ownership="none">
- <type name="utf8" c:type="gchar*"/>
- </return-value>
- <parameters>
- <parameter name="index" transfer-ownership="none">
- <type name="uint" c:type="guint"/>
- </parameter>
- </parameters>
- </method>
- <method name="id_has_field"
- c:identifier="gst_structure_id_has_field"
- doc="Check if @structure contains a field named @field."
- version="0.10.26">
- <return-value transfer-ownership="none">
- <type name="boolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <parameter name="field" transfer-ownership="none">
- <type name="GLib.Quark" c:type="GQuark"/>
- </parameter>
- </parameters>
- </method>
- <method name="id_has_field_typed"
- c:identifier="gst_structure_id_has_field_typed"
- doc="Check if @structure contains a field named @field and with GType @type."
- version="0.10.26">
- <return-value transfer-ownership="none">
- <type name="boolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <parameter name="field" transfer-ownership="none">
- <type name="GLib.Quark" c:type="GQuark"/>
- </parameter>
- <parameter name="type" transfer-ownership="none">
- <type name="GType" c:type="GType"/>
- </parameter>
- </parameters>
- </method>
- <method name="has_field"
- c:identifier="gst_structure_has_field"
- doc="Check if @structure contains a field named @fieldname.">
- <return-value transfer-ownership="none">
- <type name="boolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <parameter name="fieldname" transfer-ownership="none">
- <type name="utf8" c:type="gchar*"/>
- </parameter>
- </parameters>
- </method>
- <method name="has_field_typed"
- c:identifier="gst_structure_has_field_typed"
- doc="Check if @structure contains a field named @fieldname and with GType @type.">
- <return-value transfer-ownership="none">
- <type name="boolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <parameter name="fieldname" transfer-ownership="none">
- <type name="utf8" c:type="gchar*"/>
- </parameter>
- <parameter name="type" transfer-ownership="none">
- <type name="GType" c:type="GType"/>
- </parameter>
- </parameters>
- </method>
- <method name="get_boolean"
- c:identifier="gst_structure_get_boolean"
- doc="Sets the boolean pointed to by @value corresponding to the value of the
-given field. Caller is responsible for making sure the field exists
-and has the correct type.
-with @fieldname or the existing field did not contain a boolean, this
-function returns FALSE.">
- <return-value transfer-ownership="none">
- <type name="boolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <parameter name="fieldname" transfer-ownership="none">
- <type name="utf8" c:type="gchar*"/>
- </parameter>
- <parameter name="value" direction="out" transfer-ownership="full">
- <type name="boolean" c:type="gboolean*"/>
- </parameter>
- </parameters>
- </method>
- <method name="get_int"
- c:identifier="gst_structure_get_int"
- doc="Sets the int pointed to by @value corresponding to the value of the
-given field. Caller is responsible for making sure the field exists
-and has the correct type.
-with @fieldname or the existing field did not contain an int, this function
-returns %FALSE.">
- <return-value transfer-ownership="none">
- <type name="boolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <parameter name="fieldname" transfer-ownership="none">
- <type name="utf8" c:type="gchar*"/>
- </parameter>
- <parameter name="value" direction="out" transfer-ownership="full">
- <type name="int" c:type="gint*"/>
- </parameter>
- </parameters>
- </method>
- <method name="get_uint"
- c:identifier="gst_structure_get_uint"
- doc="Sets the uint pointed to by @value corresponding to the value of the
-given field. Caller is responsible for making sure the field exists
-and has the correct type.
-with @fieldname or the existing field did not contain a uint, this function
-returns %FALSE."
- version="0.10.15">
- <return-value transfer-ownership="none">
- <type name="boolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <parameter name="fieldname" transfer-ownership="none">
- <type name="utf8" c:type="gchar*"/>
- </parameter>
- <parameter name="value" direction="out" transfer-ownership="full">
- <type name="uint" c:type="guint*"/>
- </parameter>
- </parameters>
- </method>
- <method name="get_fourcc"
- c:identifier="gst_structure_get_fourcc"
- doc="Sets the Fourcc pointed to by @value corresponding to the value of the
-given field. Caller is responsible for making sure the field exists
-and has the correct type.
-with @fieldname or the existing field did not contain a fourcc, this function
-returns FALSE.">
- <return-value transfer-ownership="none">
- <type name="boolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <parameter name="fieldname" transfer-ownership="none">
- <type name="utf8" c:type="gchar*"/>
- </parameter>
- <parameter name="value" direction="out" transfer-ownership="full">
- <type name="uint32" c:type="guint32*"/>
- </parameter>
- </parameters>
- </method>
- <method name="get_double"
- c:identifier="gst_structure_get_double"
- doc="Sets the double pointed to by @value corresponding to the value of the
-given field. Caller is responsible for making sure the field exists
-and has the correct type.
-with @fieldname or the existing field did not contain a double, this
-function returns FALSE.">
- <return-value transfer-ownership="none">
- <type name="boolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <parameter name="fieldname" transfer-ownership="none">
- <type name="utf8" c:type="gchar*"/>
- </parameter>
- <parameter name="value" direction="out" transfer-ownership="full">
- <type name="double" c:type="gdouble*"/>
- </parameter>
- </parameters>
- </method>
- <method name="get_date"
- c:identifier="gst_structure_get_date"
- doc="Sets the date pointed to by @value corresponding to the date of the
-given field. Caller is responsible for making sure the field exists
-and has the correct type.
-On success @value will point to a newly-allocated copy of the date which
-inconsistent with e.g. gst_structure_get_string() which doesn't return a
-copy of the string).
-with @fieldname or the existing field did not contain a data, this function
-returns FALSE.">
- <return-value transfer-ownership="none">
- <type name="boolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <parameter name="fieldname" transfer-ownership="none">
- <type name="utf8" c:type="gchar*"/>
- </parameter>
- <parameter name="value" transfer-ownership="none">
- <type name="GLib.Date" c:type="GDate**"/>
- </parameter>
- </parameters>
- </method>
- <method name="get_clock_time"
- c:identifier="gst_structure_get_clock_time"
- doc="Sets the clock time pointed to by @value corresponding to the clock time
-of the given field. Caller is responsible for making sure the field exists
-and has the correct type.
-with @fieldname or the existing field did not contain a #GstClockTime, this
-function returns FALSE.">
- <return-value transfer-ownership="none">
- <type name="boolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <parameter name="fieldname" transfer-ownership="none">
- <type name="utf8" c:type="gchar*"/>
- </parameter>
- <parameter name="value" transfer-ownership="none">
- <type name="ClockTime" c:type="GstClockTime*"/>
- </parameter>
- </parameters>
- </method>
- <method name="get_string"
- c:identifier="gst_structure_get_string"
- doc="Finds the field corresponding to @fieldname, and returns the string
-contained in the field's value. Caller is responsible for making
-sure the field exists and has the correct type.
-The string should not be modified, and remains valid until the next
-call to a gst_structure_*() function with the given structure.
-or did not contain a string.">
- <return-value transfer-ownership="none">
- <type name="utf8" c:type="gchar*"/>
- </return-value>
- <parameters>
- <parameter name="fieldname" transfer-ownership="none">
- <type name="utf8" c:type="gchar*"/>
- </parameter>
- </parameters>
- </method>
- <method name="get_enum"
- c:identifier="gst_structure_get_enum"
- doc="Sets the int pointed to by @value corresponding to the value of the
-given field. Caller is responsible for making sure the field exists,
-has the correct type and that the enumtype is correct.
-with @fieldname or the existing field did not contain an enum of the given
-type, this function returns FALSE.">
- <return-value transfer-ownership="none">
- <type name="boolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <parameter name="fieldname" transfer-ownership="none">
- <type name="utf8" c:type="gchar*"/>
- </parameter>
- <parameter name="enumtype" transfer-ownership="none">
- <type name="GType" c:type="GType"/>
- </parameter>
- <parameter name="value" direction="out" transfer-ownership="full">
- <type name="int" c:type="gint*"/>
- </parameter>
- </parameters>
- </method>
- <method name="get_fraction"
- c:identifier="gst_structure_get_fraction"
- doc="Sets the integers pointed to by @value_numerator and @value_denominator
-corresponding to the value of the given field. Caller is responsible
-for making sure the field exists and has the correct type.
-with @fieldname or the existing field did not contain a GstFraction, this
-function returns FALSE.">
- <return-value transfer-ownership="none">
- <type name="boolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <parameter name="fieldname" transfer-ownership="none">
- <type name="utf8" c:type="gchar*"/>
- </parameter>
- <parameter name="value_numerator"
- direction="out"
- transfer-ownership="full">
- <type name="int" c:type="gint*"/>
- </parameter>
- <parameter name="value_denominator"
- direction="out"
- transfer-ownership="full">
- <type name="int" c:type="gint*"/>
- </parameter>
- </parameters>
- </method>
- <method name="to_string"
- c:identifier="gst_structure_to_string"
- doc="Converts @structure to a human-readable string representation.
-For debugging purposes its easier to do something like this:
-|[
-GST_LOG ("structure is %" GST_PTR_FORMAT, structure);
-]|
-This prints the structure in human readble form.
-usage.">
- <return-value transfer-ownership="full" doc="after">
- <type name="utf8" c:type="gchar*"/>
- </return-value>
- </method>
- <method name="fixate_field_nearest_int"
- c:identifier="gst_structure_fixate_field_nearest_int"
- doc="Fixates a #GstStructure by changing the given field to the nearest
-integer to @target that is a subset of the existing field.">
- <return-value transfer-ownership="none">
- <type name="boolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <parameter name="field_name" transfer-ownership="none">
- <type name="utf8" c:type="char*"/>
- </parameter>
- <parameter name="target" transfer-ownership="none">
- <type name="int" c:type="int"/>
- </parameter>
- </parameters>
- </method>
- <method name="fixate_field_nearest_double"
- c:identifier="gst_structure_fixate_field_nearest_double"
- doc="Fixates a #GstStructure by changing the given field to the nearest
-double to @target that is a subset of the existing field.">
- <return-value transfer-ownership="none">
- <type name="boolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <parameter name="field_name" transfer-ownership="none">
- <type name="utf8" c:type="char*"/>
- </parameter>
- <parameter name="target" transfer-ownership="none">
- <type name="double" c:type="double"/>
- </parameter>
- </parameters>
- </method>
- <method name="fixate_field_boolean"
- c:identifier="gst_structure_fixate_field_boolean"
- doc="Fixates a #GstStructure by changing the given @field_name field to the given">
- <return-value transfer-ownership="none">
- <type name="boolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <parameter name="field_name" transfer-ownership="none">
- <type name="utf8" c:type="char*"/>
- </parameter>
- <parameter name="target" transfer-ownership="none">
- <type name="boolean" c:type="gboolean"/>
- </parameter>
- </parameters>
- </method>
- <method name="fixate_field_nearest_fraction"
- c:identifier="gst_structure_fixate_field_nearest_fraction"
- doc="Fixates a #GstStructure by changing the given field to the nearest
-fraction to @target_numerator/@target_denominator that is a subset
-of the existing field.">
- <return-value transfer-ownership="none">
- <type name="boolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <parameter name="field_name" transfer-ownership="none">
- <type name="utf8" c:type="char*"/>
- </parameter>
- <parameter name="target_numerator" transfer-ownership="none">
- <type name="int" c:type="gint"/>
- </parameter>
- <parameter name="target_denominator" transfer-ownership="none">
- <type name="int" c:type="gint"/>
- </parameter>
- </parameters>
- </method>
- </record>
- <enumeration name="StructureChangeType"
- doc="The type of a %GST_MESSAGE_STRUCTURE_CHANGE."
- version="0.10.22"
- c:type="GstStructureChangeType">
- <member name="link"
- value="0"
- c:identifier="GST_STRUCTURE_CHANGE_TYPE_PAD_LINK"/>
- <member name="unlink"
- value="1"
- c:identifier="GST_STRUCTURE_CHANGE_TYPE_PAD_UNLINK"/>
- </enumeration>
- <callback name="StructureForeachFunc"
- c:type="GstStructureForeachFunc"
- doc="A function that will be called in gst_structure_foreach(). The function may
-not modify @value.
-the foreach operation should stop with FALSE.">
- <return-value transfer-ownership="none">
- <type name="boolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <parameter name="field_id" transfer-ownership="none">
- <type name="GLib.Quark" c:type="GQuark"/>
- </parameter>
- <parameter name="value" transfer-ownership="none">
- <type name="GObject.Value" c:type="GValue*"/>
- </parameter>
- <parameter name="user_data" transfer-ownership="none" closure="2">
- <type name="any" c:type="gpointer"/>
- </parameter>
- </parameters>
- </callback>
- <callback name="StructureMapFunc"
- c:type="GstStructureMapFunc"
- doc="A function that will be called in gst_structure_map_in_place(). The function
-may modify @value.
-the map operation should stop with FALSE.">
- <return-value transfer-ownership="none">
- <type name="boolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <parameter name="field_id" transfer-ownership="none">
- <type name="GLib.Quark" c:type="GQuark"/>
- </parameter>
- <parameter name="value" transfer-ownership="none">
- <type name="GObject.Value" c:type="GValue*"/>
- </parameter>
- <parameter name="user_data" transfer-ownership="none" closure="2">
- <type name="any" c:type="gpointer"/>
- </parameter>
- </parameters>
- </callback>
- <class name="SystemClock"
- c:type="GstSystemClock"
- doc="The default implementation of a #GstClock that uses the system time."
- parent="Clock"
- glib:type-name="GstSystemClock"
- glib:get-type="gst_system_clock_get_type"
- glib:type-struct="SystemClockClass">
- <function name="obtain"
- c:identifier="gst_system_clock_obtain"
- doc="Get a handle to the default system clock. The refcount of the
-clock will be increased so you need to unref the clock after
-usage.
-MT safe.">
- <return-value transfer-ownership="full">
- <type name="Clock" c:type="GstClock*"/>
- </return-value>
- </function>
- <property name="clock-type" writable="1">
- <type name="ClockType" c:type="GstClockType"/>
- </property>
- <field name="clock">
- <type name="Clock" c:type="GstClock"/>
- </field>
- <field name="thread">
- <type name="GLib.Thread" c:type="GThread*"/>
- </field>
- <field name="stopping">
- <type name="boolean" c:type="gboolean"/>
- </field>
- <field name="priv">
- <type name="SystemClockPrivate" c:type="GstSystemClockPrivate*"/>
- </field>
- <field name="_gst_reserved">
- <array zero-terminated="0" c:type="gpointer" fixed-size="3">
- <type name="any"/>
- </array>
- </field>
- </class>
- <record name="SystemClockClass"
- c:type="GstSystemClockClass"
- glib:is-gtype-struct-for="SystemClock">
- <field name="parent_class">
- <type name="ClockClass" c:type="GstClockClass"/>
- </field>
- <field name="_gst_reserved">
- <array zero-terminated="0" c:type="gpointer" fixed-size="4">
- <type name="any"/>
- </array>
- </field>
- </record>
- <record name="SystemClockPrivate" c:type="GstSystemClockPrivate">
- </record>
- <constant name="TAG_ALBUM" value="album">
- <type name="utf8"/>
- </constant>
- <constant name="TAG_ALBUM_ARTIST" value="album-artist">
- <type name="utf8"/>
- </constant>
- <constant name="TAG_ALBUM_ARTIST_SORTNAME" value="album-artist-sortname">
- <type name="utf8"/>
- </constant>
- <constant name="TAG_ALBUM_GAIN" value="replaygain-album-gain">
- <type name="utf8"/>
- </constant>
- <constant name="TAG_ALBUM_PEAK" value="replaygain-album-peak">
- <type name="utf8"/>
- </constant>
- <constant name="TAG_ALBUM_SORTNAME" value="album-sortname">
- <type name="utf8"/>
- </constant>
- <constant name="TAG_ALBUM_VOLUME_COUNT" value="album-disc-count">
- <type name="utf8"/>
- </constant>
- <constant name="TAG_ALBUM_VOLUME_NUMBER" value="album-disc-number">
- <type name="utf8"/>
- </constant>
- <constant name="TAG_ARTIST" value="artist">
- <type name="utf8"/>
- </constant>
- <constant name="TAG_ARTIST_SORTNAME" value="musicbrainz-sortname">
- <type name="utf8"/>
- </constant>
- <constant name="TAG_ATTACHMENT" value="attachment">
- <type name="utf8"/>
- </constant>
- <constant name="TAG_AUDIO_CODEC" value="audio-codec">
- <type name="utf8"/>
- </constant>
- <constant name="TAG_BEATS_PER_MINUTE" value="beats-per-minute">
- <type name="utf8"/>
- </constant>
- <constant name="TAG_BITRATE" value="bitrate">
- <type name="utf8"/>
- </constant>
- <constant name="TAG_CODEC" value="codec">
- <type name="utf8"/>
- </constant>
- <constant name="TAG_COMMENT" value="comment">
- <type name="utf8"/>
- </constant>
- <constant name="TAG_COMPOSER" value="composer">
- <type name="utf8"/>
- </constant>
- <constant name="TAG_COMPOSER_SORTNAME" value="composer-sortname">
- <type name="utf8"/>
- </constant>
- <constant name="TAG_CONTACT" value="contact">
- <type name="utf8"/>
- </constant>
- <constant name="TAG_CONTAINER_FORMAT" value="container-format">
- <type name="utf8"/>
- </constant>
- <constant name="TAG_COPYRIGHT" value="copyright">
- <type name="utf8"/>
- </constant>
- <constant name="TAG_COPYRIGHT_URI" value="copyright-uri">
- <type name="utf8"/>
- </constant>
- <constant name="TAG_DATE" value="date">
- <type name="utf8"/>
- </constant>
- <constant name="TAG_DESCRIPTION" value="description">
- <type name="utf8"/>
- </constant>
- <constant name="TAG_DURATION" value="duration">
- <type name="utf8"/>
- </constant>
- <constant name="TAG_ENCODER" value="encoder">
- <type name="utf8"/>
- </constant>
- <constant name="TAG_ENCODER_VERSION" value="encoder-version">
- <type name="utf8"/>
- </constant>
- <constant name="TAG_EXTENDED_COMMENT" value="extended-comment">
- <type name="utf8"/>
- </constant>
- <constant name="TAG_GENRE" value="genre">
- <type name="utf8"/>
- </constant>
- <constant name="TAG_GEO_LOCATION_CITY" value="geo-location-city">
- <type name="utf8"/>
- </constant>
- <constant name="TAG_GEO_LOCATION_COUNTRY" value="geo-location-country">
- <type name="utf8"/>
- </constant>
- <constant name="TAG_GEO_LOCATION_ELEVATION" value="geo-location-elevation">
- <type name="utf8"/>
- </constant>
- <constant name="TAG_GEO_LOCATION_LATITUDE" value="geo-location-latitude">
- <type name="utf8"/>
- </constant>
- <constant name="TAG_GEO_LOCATION_LONGITUDE" value="geo-location-longitude">
- <type name="utf8"/>
- </constant>
- <constant name="TAG_GEO_LOCATION_NAME" value="geo-location-name">
- <type name="utf8"/>
- </constant>
- <constant name="TAG_GEO_LOCATION_SUBLOCATION"
- value="geo-location-sublocation">
- <type name="utf8"/>
- </constant>
- <constant name="TAG_GROUPING" value="grouping">
- <type name="utf8"/>
- </constant>
- <constant name="TAG_HOMEPAGE" value="homepage">
- <type name="utf8"/>
- </constant>
- <constant name="TAG_IMAGE" value="image">
- <type name="utf8"/>
- </constant>
- <constant name="TAG_ISRC" value="isrc">
- <type name="utf8"/>
- </constant>
- <constant name="TAG_KEYWORDS" value="keywords">
- <type name="utf8"/>
- </constant>
- <constant name="TAG_LANGUAGE_CODE" value="language-code">
- <type name="utf8"/>
- </constant>
- <constant name="TAG_LICENSE" value="license">
- <type name="utf8"/>
- </constant>
- <constant name="TAG_LICENSE_URI" value="license-uri">
- <type name="utf8"/>
- </constant>
- <constant name="TAG_LOCATION" value="location">
- <type name="utf8"/>
- </constant>
- <constant name="TAG_LYRICS" value="lyrics">
- <type name="utf8"/>
- </constant>
- <constant name="TAG_MAXIMUM_BITRATE" value="maximum-bitrate">
- <type name="utf8"/>
- </constant>
- <constant name="TAG_MINIMUM_BITRATE" value="minimum-bitrate">
- <type name="utf8"/>
- </constant>
- <constant name="TAG_NOMINAL_BITRATE" value="nominal-bitrate">
- <type name="utf8"/>
- </constant>
- <constant name="TAG_ORGANIZATION" value="organization">
- <type name="utf8"/>
- </constant>
- <constant name="TAG_PERFORMER" value="performer">
- <type name="utf8"/>
- </constant>
- <constant name="TAG_PREVIEW_IMAGE" value="preview-image">
- <type name="utf8"/>
- </constant>
- <constant name="TAG_REFERENCE_LEVEL" value="replaygain-reference-level">
- <type name="utf8"/>
- </constant>
- <constant name="TAG_SERIAL" value="serial">
- <type name="utf8"/>
- </constant>
- <constant name="TAG_SHOW_EPISODE_NUMBER" value="show-episode-number">
- <type name="utf8"/>
- </constant>
- <constant name="TAG_SHOW_NAME" value="show-name">
- <type name="utf8"/>
- </constant>
- <constant name="TAG_SHOW_SEASON_NUMBER" value="show-season-number">
- <type name="utf8"/>
- </constant>
- <constant name="TAG_SHOW_SORTNAME" value="show-sortname">
- <type name="utf8"/>
- </constant>
- <constant name="TAG_SUBTITLE_CODEC" value="subtitle-codec">
- <type name="utf8"/>
- </constant>
- <constant name="TAG_TITLE" value="title">
- <type name="utf8"/>
- </constant>
- <constant name="TAG_TITLE_SORTNAME" value="title-sortname">
- <type name="utf8"/>
- </constant>
- <constant name="TAG_TRACK_COUNT" value="track-count">
- <type name="utf8"/>
- </constant>
- <constant name="TAG_TRACK_GAIN" value="replaygain-track-gain">
- <type name="utf8"/>
- </constant>
- <constant name="TAG_TRACK_NUMBER" value="track-number">
- <type name="utf8"/>
- </constant>
- <constant name="TAG_TRACK_PEAK" value="replaygain-track-peak">
- <type name="utf8"/>
- </constant>
- <constant name="TAG_USER_RATING" value="user-rating">
- <type name="utf8"/>
- </constant>
- <constant name="TAG_VERSION" value="version">
- <type name="utf8"/>
- </constant>
- <constant name="TAG_VIDEO_CODEC" value="video-codec">
- <type name="utf8"/>
- </constant>
- <constant name="TIME_FORMAT" value="u:%02u:%02u.%09u">
- <type name="utf8"/>
- </constant>
- <enumeration name="TagFlag"
- doc="Extra tag flags used when registering tags."
- c:type="GstTagFlag">
- <member name="undefined"
- value="0"
- c:identifier="GST_TAG_FLAG_UNDEFINED"/>
- <member name="meta" value="1" c:identifier="GST_TAG_FLAG_META"/>
- <member name="encoded" value="2" c:identifier="GST_TAG_FLAG_ENCODED"/>
- <member name="decoded" value="3" c:identifier="GST_TAG_FLAG_DECODED"/>
- <member name="count" value="4" c:identifier="GST_TAG_FLAG_COUNT"/>
- </enumeration>
- <callback name="TagForeachFunc"
- c:type="GstTagForeachFunc"
- doc="A function that will be called in gst_tag_list_foreach(). The function may
-not modify the tag list.">
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <parameter name="list" transfer-ownership="none">
- <type name="TagList" c:type="GstTagList*"/>
- </parameter>
- <parameter name="tag" transfer-ownership="none">
- <type name="utf8" c:type="gchar*"/>
- </parameter>
- <parameter name="user_data" transfer-ownership="none" closure="2">
- <type name="any" c:type="gpointer"/>
- </parameter>
- </parameters>
- </callback>
- <record name="TagList"
- c:type="GstTagList"
- doc="Opaque #GstTagList data structure."
- glib:type-name="GstTagList"
- glib:get-type="gst_tag_list_get_type">
- <constructor name="new"
- c:identifier="gst_tag_list_new"
- doc="Creates a new empty GstTagList.">
- <return-value transfer-ownership="full">
- <type name="TagList" c:type="GstTagList*"/>
- </return-value>
- </constructor>
- <constructor name="new_full"
- c:identifier="gst_tag_list_new_full"
- doc="Creates a new taglist and appends the values for the given tags. It expects
-tag-value pairs like gst_tag_list_add(), and a NULL terminator after the
-last pair. The type of the values is implicit and is documented in the API
-reference, but can also be queried at runtime with gst_tag_get_type(). It
-is an error to pass a value of a type not matching the tag type into this
-function. The tag list will make copies of any arguments passed
-(e.g. strings, buffers).
-needed."
- version="0.10.24">
- <return-value transfer-ownership="full" doc="when no longer">
- <type name="TagList" c:type="GstTagList*"/>
- </return-value>
- <parameters>
- <parameter name="tag" transfer-ownership="none">
- <type name="utf8" c:type="gchar*"/>
- </parameter>
- <parameter transfer-ownership="none">
- <varargs>
- </varargs>
- </parameter>
- </parameters>
- </constructor>
- <method name="copy"
- c:identifier="gst_tag_list_copy"
- doc="Copies a given #GstTagList.">
- <return-value transfer-ownership="full">
- <type name="TagList" c:type="GstTagList*"/>
- </return-value>
- </method>
- <method name="is_empty"
- c:identifier="gst_tag_list_is_empty"
- doc="Checks if the given taglist is empty."
- version="0.10.11">
- <return-value transfer-ownership="none">
- <type name="boolean" c:type="gboolean"/>
- </return-value>
- </method>
- <method name="insert"
- c:identifier="gst_tag_list_insert"
- doc="Inserts the tags of the @from list into the first list using the given mode.">
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <parameter name="from" transfer-ownership="none">
- <type name="TagList" c:type="GstTagList*"/>
- </parameter>
- <parameter name="mode" transfer-ownership="none">
- <type name="TagMergeMode" c:type="GstTagMergeMode"/>
- </parameter>
- </parameters>
- </method>
- <method name="merge"
- c:identifier="gst_tag_list_merge"
- doc="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.">
- <return-value transfer-ownership="full">
- <type name="TagList" c:type="GstTagList*"/>
- </return-value>
- <parameters>
- <parameter name="list2" transfer-ownership="none">
- <type name="TagList" c:type="GstTagList*"/>
- </parameter>
- <parameter name="mode" transfer-ownership="none">
- <type name="TagMergeMode" c:type="GstTagMergeMode"/>
- </parameter>
- </parameters>
- </method>
- <method name="free"
- c:identifier="gst_tag_list_free"
- doc="Frees the given list and all associated values.">
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- </method>
- <method name="get_tag_size"
- c:identifier="gst_tag_list_get_tag_size"
- doc="Checks how many value are stored in this tag list for the given tag.">
- <return-value transfer-ownership="none">
- <type name="uint" c:type="guint"/>
- </return-value>
- <parameters>
- <parameter name="tag" transfer-ownership="none">
- <type name="utf8" c:type="gchar*"/>
- </parameter>
- </parameters>
- </method>
- <method name="add"
- c:identifier="gst_tag_list_add"
- doc="Sets the values for the given tags using the specified mode.">
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <parameter name="mode" transfer-ownership="none">
- <type name="TagMergeMode" c:type="GstTagMergeMode"/>
- </parameter>
- <parameter name="tag" transfer-ownership="none">
- <type name="utf8" c:type="gchar*"/>
- </parameter>
- <parameter transfer-ownership="none">
- <varargs>
- </varargs>
- </parameter>
- </parameters>
- </method>
- <method name="add_values"
- c:identifier="gst_tag_list_add_values"
- doc="Sets the GValues for the given tags using the specified mode.">
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <parameter name="mode" transfer-ownership="none">
- <type name="TagMergeMode" c:type="GstTagMergeMode"/>
- </parameter>
- <parameter name="tag" transfer-ownership="none">
- <type name="utf8" c:type="gchar*"/>
- </parameter>
- <parameter transfer-ownership="none">
- <varargs>
- </varargs>
- </parameter>
- </parameters>
- </method>
- <method name="add_value"
- c:identifier="gst_tag_list_add_value"
- doc="Sets the GValue for a given tag using the specified mode."
- version="0.10.24">
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <parameter name="mode" transfer-ownership="none">
- <type name="TagMergeMode" c:type="GstTagMergeMode"/>
- </parameter>
- <parameter name="tag" transfer-ownership="none">
- <type name="utf8" c:type="gchar*"/>
- </parameter>
- <parameter name="value" transfer-ownership="none">
- <type name="GObject.Value" c:type="GValue*"/>
- </parameter>
- </parameters>
- </method>
- <method name="remove_tag"
- c:identifier="gst_tag_list_remove_tag"
- doc="Removes the given tag from the taglist.">
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <parameter name="tag" transfer-ownership="none">
- <type name="utf8" c:type="gchar*"/>
- </parameter>
- </parameters>
- </method>
- <method name="foreach"
- c:identifier="gst_tag_list_foreach"
- doc="Calls the given function for each tag inside the tag list. Note that if there
-is no tag, the function won't be called at all.">
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <parameter name="func"
- transfer-ownership="none"
- scope="call"
- closure="2">
- <type name="TagForeachFunc" c:type="GstTagForeachFunc"/>
- </parameter>
- <parameter name="user_data" transfer-ownership="none">
- <type name="any" c:type="gpointer"/>
- </parameter>
- </parameters>
- </method>
- <method name="get_value_index"
- c:identifier="gst_tag_list_get_value_index"
- doc="Gets the value that is at the given index for the given tag in the given
-list.
-available or the tag doesn't have as many entries">
- <return-value transfer-ownership="none">
- <type name="GObject.Value" c:type="GValue*"/>
- </return-value>
- <parameters>
- <parameter name="tag" transfer-ownership="none">
- <type name="utf8" c:type="gchar*"/>
- </parameter>
- <parameter name="index" transfer-ownership="none">
- <type name="uint" c:type="guint"/>
- </parameter>
- </parameters>
- </method>
- <method name="get_char"
- c:identifier="gst_tag_list_get_char"
- doc="Copies the contents for the given tag into the value, merging multiple values
-into one if multiple values are associated with the tag.
-given list.">
- <return-value transfer-ownership="none">
- <type name="boolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <parameter name="tag" transfer-ownership="none">
- <type name="utf8" c:type="gchar*"/>
- </parameter>
- <parameter name="value" transfer-ownership="full">
- <type name="utf8" c:type="gchar*"/>
- </parameter>
- </parameters>
- </method>
- <method name="get_char_index"
- c:identifier="gst_tag_list_get_char_index"
- doc="Gets the value that is at the given index for the given tag in the given
-list.
-given list.">
- <return-value transfer-ownership="none">
- <type name="boolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <parameter name="tag" transfer-ownership="none">
- <type name="utf8" c:type="gchar*"/>
- </parameter>
- <parameter name="index" transfer-ownership="none">
- <type name="uint" c:type="guint"/>
- </parameter>
- <parameter name="value" transfer-ownership="full">
- <type name="utf8" c:type="gchar*"/>
- </parameter>
- </parameters>
- </method>
- <method name="get_uchar"
- c:identifier="gst_tag_list_get_uchar"
- doc="Copies the contents for the given tag into the value, merging multiple values
-into one if multiple values are associated with the tag.
-given list.">
- <return-value transfer-ownership="none">
- <type name="boolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <parameter name="tag" transfer-ownership="none">
- <type name="utf8" c:type="gchar*"/>
- </parameter>
- <parameter name="value" transfer-ownership="none">
- <array c:type="guchar*">
- <type name="uint8"/>
- </array>
- </parameter>
- </parameters>
- </method>
- <method name="get_uchar_index"
- c:identifier="gst_tag_list_get_uchar_index"
- doc="Gets the value that is at the given index for the given tag in the given
-list.
-given list.">
- <return-value transfer-ownership="none">
- <type name="boolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <parameter name="tag" transfer-ownership="none">
- <type name="utf8" c:type="gchar*"/>
- </parameter>
- <parameter name="index" transfer-ownership="none">
- <type name="uint" c:type="guint"/>
- </parameter>
- <parameter name="value" transfer-ownership="none">
- <array c:type="guchar*">
- <type name="uint8"/>
- </array>
- </parameter>
- </parameters>
- </method>
- <method name="get_boolean"
- c:identifier="gst_tag_list_get_boolean"
- doc="Copies the contents for the given tag into the value, merging multiple values
-into one if multiple values are associated with the tag.
-given list.">
- <return-value transfer-ownership="none">
- <type name="boolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <parameter name="tag" transfer-ownership="none">
- <type name="utf8" c:type="gchar*"/>
- </parameter>
- <parameter name="value" direction="out" transfer-ownership="full">
- <type name="boolean" c:type="gboolean*"/>
- </parameter>
- </parameters>
- </method>
- <method name="get_boolean_index"
- c:identifier="gst_tag_list_get_boolean_index"
- doc="Gets the value that is at the given index for the given tag in the given
-list.
-given list.">
- <return-value transfer-ownership="none">
- <type name="boolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <parameter name="tag" transfer-ownership="none">
- <type name="utf8" c:type="gchar*"/>
- </parameter>
- <parameter name="index" transfer-ownership="none">
- <type name="uint" c:type="guint"/>
- </parameter>
- <parameter name="value" direction="out" transfer-ownership="full">
- <type name="boolean" c:type="gboolean*"/>
- </parameter>
- </parameters>
- </method>
- <method name="get_int"
- c:identifier="gst_tag_list_get_int"
- doc="Copies the contents for the given tag into the value, merging multiple values
-into one if multiple values are associated with the tag.
-given list.">
- <return-value transfer-ownership="none">
- <type name="boolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <parameter name="tag" transfer-ownership="none">
- <type name="utf8" c:type="gchar*"/>
- </parameter>
- <parameter name="value" direction="out" transfer-ownership="full">
- <type name="int" c:type="gint*"/>
- </parameter>
- </parameters>
- </method>
- <method name="get_int_index"
- c:identifier="gst_tag_list_get_int_index"
- doc="Gets the value that is at the given index for the given tag in the given
-list.
-given list.">
- <return-value transfer-ownership="none">
- <type name="boolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <parameter name="tag" transfer-ownership="none">
- <type name="utf8" c:type="gchar*"/>
- </parameter>
- <parameter name="index" transfer-ownership="none">
- <type name="uint" c:type="guint"/>
- </parameter>
- <parameter name="value" direction="out" transfer-ownership="full">
- <type name="int" c:type="gint*"/>
- </parameter>
- </parameters>
- </method>
- <method name="get_uint"
- c:identifier="gst_tag_list_get_uint"
- doc="Copies the contents for the given tag into the value, merging multiple values
-into one if multiple values are associated with the tag.
-given list.">
- <return-value transfer-ownership="none">
- <type name="boolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <parameter name="tag" transfer-ownership="none">
- <type name="utf8" c:type="gchar*"/>
- </parameter>
- <parameter name="value" direction="out" transfer-ownership="full">
- <type name="uint" c:type="guint*"/>
- </parameter>
- </parameters>
- </method>
- <method name="get_uint_index"
- c:identifier="gst_tag_list_get_uint_index"
- doc="Gets the value that is at the given index for the given tag in the given
-list.
-given list.">
- <return-value transfer-ownership="none">
- <type name="boolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <parameter name="tag" transfer-ownership="none">
- <type name="utf8" c:type="gchar*"/>
- </parameter>
- <parameter name="index" transfer-ownership="none">
- <type name="uint" c:type="guint"/>
- </parameter>
- <parameter name="value" direction="out" transfer-ownership="full">
- <type name="uint" c:type="guint*"/>
- </parameter>
- </parameters>
- </method>
- <method name="get_long"
- c:identifier="gst_tag_list_get_long"
- doc="Copies the contents for the given tag into the value, merging multiple values
-into one if multiple values are associated with the tag.
-given list.">
- <return-value transfer-ownership="none">
- <type name="boolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <parameter name="tag" transfer-ownership="none">
- <type name="utf8" c:type="gchar*"/>
- </parameter>
- <parameter name="value" direction="out" transfer-ownership="full">
- <type name="long" c:type="glong*"/>
- </parameter>
- </parameters>
- </method>
- <method name="get_long_index"
- c:identifier="gst_tag_list_get_long_index"
- doc="Gets the value that is at the given index for the given tag in the given
-list.
-given list.">
- <return-value transfer-ownership="none">
- <type name="boolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <parameter name="tag" transfer-ownership="none">
- <type name="utf8" c:type="gchar*"/>
- </parameter>
- <parameter name="index" transfer-ownership="none">
- <type name="uint" c:type="guint"/>
- </parameter>
- <parameter name="value" direction="out" transfer-ownership="full">
- <type name="long" c:type="glong*"/>
- </parameter>
- </parameters>
- </method>
- <method name="get_ulong"
- c:identifier="gst_tag_list_get_ulong"
- doc="Copies the contents for the given tag into the value, merging multiple values
-into one if multiple values are associated with the tag.
-given list.">
- <return-value transfer-ownership="none">
- <type name="boolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <parameter name="tag" transfer-ownership="none">
- <type name="utf8" c:type="gchar*"/>
- </parameter>
- <parameter name="value" direction="out" transfer-ownership="full">
- <type name="ulong" c:type="gulong*"/>
- </parameter>
- </parameters>
- </method>
- <method name="get_ulong_index"
- c:identifier="gst_tag_list_get_ulong_index"
- doc="Gets the value that is at the given index for the given tag in the given
-list.
-given list.">
- <return-value transfer-ownership="none">
- <type name="boolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <parameter name="tag" transfer-ownership="none">
- <type name="utf8" c:type="gchar*"/>
- </parameter>
- <parameter name="index" transfer-ownership="none">
- <type name="uint" c:type="guint"/>
- </parameter>
- <parameter name="value" direction="out" transfer-ownership="full">
- <type name="ulong" c:type="gulong*"/>
- </parameter>
- </parameters>
- </method>
- <method name="get_int64"
- c:identifier="gst_tag_list_get_int64"
- doc="Copies the contents for the given tag into the value, merging multiple values
-into one if multiple values are associated with the tag.
-given list.">
- <return-value transfer-ownership="none">
- <type name="boolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <parameter name="tag" transfer-ownership="none">
- <type name="utf8" c:type="gchar*"/>
- </parameter>
- <parameter name="value" direction="out" transfer-ownership="full">
- <type name="int64" c:type="gint64*"/>
- </parameter>
- </parameters>
- </method>
- <method name="get_int64_index"
- c:identifier="gst_tag_list_get_int64_index"
- doc="Gets the value that is at the given index for the given tag in the given
-list.
-given list.">
- <return-value transfer-ownership="none">
- <type name="boolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <parameter name="tag" transfer-ownership="none">
- <type name="utf8" c:type="gchar*"/>
- </parameter>
- <parameter name="index" transfer-ownership="none">
- <type name="uint" c:type="guint"/>
- </parameter>
- <parameter name="value" direction="out" transfer-ownership="full">
- <type name="int64" c:type="gint64*"/>
- </parameter>
- </parameters>
- </method>
- <method name="get_uint64"
- c:identifier="gst_tag_list_get_uint64"
- doc="Copies the contents for the given tag into the value, merging multiple values
-into one if multiple values are associated with the tag.
-given list.">
- <return-value transfer-ownership="none">
- <type name="boolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <parameter name="tag" transfer-ownership="none">
- <type name="utf8" c:type="gchar*"/>
- </parameter>
- <parameter name="value" direction="out" transfer-ownership="full">
- <type name="uint64" c:type="guint64*"/>
- </parameter>
- </parameters>
- </method>
- <method name="get_uint64_index"
- c:identifier="gst_tag_list_get_uint64_index"
- doc="Gets the value that is at the given index for the given tag in the given
-list.
-given list.">
- <return-value transfer-ownership="none">
- <type name="boolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <parameter name="tag" transfer-ownership="none">
- <type name="utf8" c:type="gchar*"/>
- </parameter>
- <parameter name="index" transfer-ownership="none">
- <type name="uint" c:type="guint"/>
- </parameter>
- <parameter name="value" direction="out" transfer-ownership="full">
- <type name="uint64" c:type="guint64*"/>
- </parameter>
- </parameters>
- </method>
- <method name="get_float"
- c:identifier="gst_tag_list_get_float"
- doc="Copies the contents for the given tag into the value, merging multiple values
-into one if multiple values are associated with the tag.
-given list.">
- <return-value transfer-ownership="none">
- <type name="boolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <parameter name="tag" transfer-ownership="none">
- <type name="utf8" c:type="gchar*"/>
- </parameter>
- <parameter name="value" direction="out" transfer-ownership="full">
- <type name="float" c:type="gfloat*"/>
- </parameter>
- </parameters>
- </method>
- <method name="get_float_index"
- c:identifier="gst_tag_list_get_float_index"
- doc="Gets the value that is at the given index for the given tag in the given
-list.
-given list.">
- <return-value transfer-ownership="none">
- <type name="boolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <parameter name="tag" transfer-ownership="none">
- <type name="utf8" c:type="gchar*"/>
- </parameter>
- <parameter name="index" transfer-ownership="none">
- <type name="uint" c:type="guint"/>
- </parameter>
- <parameter name="value" direction="out" transfer-ownership="full">
- <type name="float" c:type="gfloat*"/>
- </parameter>
- </parameters>
- </method>
- <method name="get_double"
- c:identifier="gst_tag_list_get_double"
- doc="Copies the contents for the given tag into the value, merging multiple values
-into one if multiple values are associated with the tag.
-given list.">
- <return-value transfer-ownership="none">
- <type name="boolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <parameter name="tag" transfer-ownership="none">
- <type name="utf8" c:type="gchar*"/>
- </parameter>
- <parameter name="value" direction="out" transfer-ownership="full">
- <type name="double" c:type="gdouble*"/>
- </parameter>
- </parameters>
- </method>
- <method name="get_double_index"
- c:identifier="gst_tag_list_get_double_index"
- doc="Gets the value that is at the given index for the given tag in the given
-list.
-given list.">
- <return-value transfer-ownership="none">
- <type name="boolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <parameter name="tag" transfer-ownership="none">
- <type name="utf8" c:type="gchar*"/>
- </parameter>
- <parameter name="index" transfer-ownership="none">
- <type name="uint" c:type="guint"/>
- </parameter>
- <parameter name="value" direction="out" transfer-ownership="full">
- <type name="double" c:type="gdouble*"/>
- </parameter>
- </parameters>
- </method>
- <method name="get_string"
- c:identifier="gst_tag_list_get_string"
- doc="Copies the contents for the given tag into the value, possibly merging
-multiple values into one if multiple values are associated with the tag.
-Use gst_tag_list_get_string_index (list, tag, 0, value) if you want
-to retrieve the first string associated with this tag unmodified.
-The resulting string in @value will be in UTF-8 encoding and should be
-freed by the caller using g_free when no longer needed. Since 0.10.24 the
-returned string is also guaranteed to be non-NULL and non-empty.
-given list.">
- <return-value transfer-ownership="none">
- <type name="boolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <parameter name="tag" transfer-ownership="none">
- <type name="utf8" c:type="gchar*"/>
- </parameter>
- <parameter name="value" transfer-ownership="none">
- <array c:type="gchar**">
- <type name="utf8"/>
- </array>
- </parameter>
- </parameters>
- </method>
- <method name="get_string_index"
- c:identifier="gst_tag_list_get_string_index"
- doc="Gets the value that is at the given index for the given tag in the given
-list.
-The resulting string in @value will be in UTF-8 encoding and should be
-freed by the caller using g_free when no longer needed. Since 0.10.24 the
-returned string is also guaranteed to be non-NULL and non-empty.
-given list.">
- <return-value transfer-ownership="none">
- <type name="boolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <parameter name="tag" transfer-ownership="none">
- <type name="utf8" c:type="gchar*"/>
- </parameter>
- <parameter name="index" transfer-ownership="none">
- <type name="uint" c:type="guint"/>
- </parameter>
- <parameter name="value" transfer-ownership="none">
- <array c:type="gchar**">
- <type name="utf8"/>
- </array>
- </parameter>
- </parameters>
- </method>
- <method name="get_pointer"
- c:identifier="gst_tag_list_get_pointer"
- doc="Copies the contents for the given tag into the value, merging multiple values
-into one if multiple values are associated with the tag.
-given list.">
- <return-value transfer-ownership="none">
- <type name="boolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <parameter name="tag" transfer-ownership="none">
- <type name="utf8" c:type="gchar*"/>
- </parameter>
- <parameter name="value" transfer-ownership="none">
- <type name="any" c:type="gpointer*"/>
- </parameter>
- </parameters>
- </method>
- <method name="get_pointer_index"
- c:identifier="gst_tag_list_get_pointer_index"
- doc="Gets the value that is at the given index for the given tag in the given
-list.
-given list.">
- <return-value transfer-ownership="none">
- <type name="boolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <parameter name="tag" transfer-ownership="none">
- <type name="utf8" c:type="gchar*"/>
- </parameter>
- <parameter name="index" transfer-ownership="none">
- <type name="uint" c:type="guint"/>
- </parameter>
- <parameter name="value" transfer-ownership="none">
- <type name="any" c:type="gpointer*"/>
- </parameter>
- </parameters>
- </method>
- <method name="get_date"
- c:identifier="gst_tag_list_get_date"
- doc="Copies the first date for the given tag in the taglist into the variable
-pointed to by @value. Free the date with g_date_free() when it is no longer
-needed.
-given list or if it was #NULL.">
- <return-value transfer-ownership="none">
- <type name="boolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <parameter name="tag" transfer-ownership="none">
- <type name="utf8" c:type="gchar*"/>
- </parameter>
- <parameter name="value" transfer-ownership="none">
- <type name="GLib.Date" c:type="GDate**"/>
- </parameter>
- </parameters>
- </method>
- <method name="get_date_index"
- c:identifier="gst_tag_list_get_date_index"
- doc="Gets the date that is at the given index for the given tag in the given
-list and copies it into the variable pointed to by @value. Free the date
-with g_date_free() when it is no longer needed.
-given list or if it was #NULL.">
- <return-value transfer-ownership="none">
- <type name="boolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <parameter name="tag" transfer-ownership="none">
- <type name="utf8" c:type="gchar*"/>
- </parameter>
- <parameter name="index" transfer-ownership="none">
- <type name="uint" c:type="guint"/>
- </parameter>
- <parameter name="value" transfer-ownership="none">
- <type name="GLib.Date" c:type="GDate**"/>
- </parameter>
- </parameters>
- </method>
- <method name="get_buffer"
- c:identifier="gst_tag_list_get_buffer"
- doc="Copies the first buffer for the given tag in the taglist into the variable
-pointed to by @value. Free the buffer with gst_buffer_unref() when it is
-no longer needed.
-given list or if it was #NULL."
- version="0.10.23">
- <return-value transfer-ownership="none">
- <type name="boolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <parameter name="tag" transfer-ownership="none">
- <type name="utf8" c:type="gchar*"/>
- </parameter>
- <parameter name="value" transfer-ownership="none">
- <type name="Buffer" c:type="GstBuffer**"/>
- </parameter>
- </parameters>
- </method>
- <method name="get_buffer_index"
- c:identifier="gst_tag_list_get_buffer_index"
- doc="Gets the buffer that is at the given index for the given tag in the given
-list and copies it into the variable pointed to by @value. Free the buffer
-with gst_buffer_unref() when it is no longer needed.
-given list or if it was #NULL."
- version="0.10.23">
- <return-value transfer-ownership="none">
- <type name="boolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <parameter name="tag" transfer-ownership="none">
- <type name="utf8" c:type="gchar*"/>
- </parameter>
- <parameter name="index" transfer-ownership="none">
- <type name="uint" c:type="guint"/>
- </parameter>
- <parameter name="value" transfer-ownership="none">
- <type name="Buffer" c:type="GstBuffer**"/>
- </parameter>
- </parameters>
- </method>
- </record>
- <callback name="TagMergeFunc"
- c:type="GstTagMergeFunc"
- doc="A function for merging multiple values of a tag used when registering
-tags.">
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <parameter name="dest" transfer-ownership="none">
- <type name="GObject.Value" c:type="GValue*"/>
- </parameter>
- <parameter name="src" transfer-ownership="none">
- <type name="GObject.Value" c:type="GValue*"/>
- </parameter>
- </parameters>
- </callback>
- <enumeration name="TagMergeMode"
- doc="The different tag merging modes are basically replace, overwrite and append,
-already in the element and (B) the ones that are supplied to the element (
-e.g. via gst_tag_setter_merge_tags() / gst_tag_setter_add_tags() or a
-%GST_EVENT_TAG), how are these tags merged?
-In the table below this is shown for the cases that a tag exists in the list
-(A) or does not exists (!A) and combinations thereof.
-<table frame="all" colsep="1" rowsep="1">
-<title>merge mode</title>
-<tgroup cols='5' align='left'>
-<thead>
-<row>
-<entry>merge mode</entry>
-<entry>A + B</entry>
-<entry>A + !B</entry>
-<entry>!A + B</entry>
-<entry>!A + !B</entry>
-</row>
-</thead>
-<tbody>
-<row>
-<entry>REPLACE_ALL</entry>
-<entry>B</entry>
-<entry>-</entry>
-<entry>B</entry>
-<entry>-</entry>
-</row>
-<row>
-<entry>REPLACE</entry>
-<entry>B</entry>
-<entry>A</entry>
-<entry>B</entry>
-<entry>-</entry>
-</row>
-<row>
-<entry>APPEND</entry>
-<entry>A, B</entry>
-<entry>A</entry>
-<entry>B</entry>
-<entry>-</entry>
-</row>
-<row>
-<entry>PREPEND</entry>
-<entry>B, A</entry>
-<entry>A</entry>
-<entry>B</entry>
-<entry>-</entry>
-</row>
-<row>
-<entry>KEEP</entry>
-<entry>A</entry>
-<entry>A</entry>
-<entry>B</entry>
-<entry>-</entry>
-</row>
-<row>
-<entry>KEEP_ALL</entry>
-<entry>A</entry>
-<entry>A</entry>
-<entry>-</entry>
-<entry>-</entry>
-</row>
-</tbody>
-</tgroup>
-</table>"
- c:type="GstTagMergeMode">
- <member name="undefined"
- value="0"
- c:identifier="GST_TAG_MERGE_UNDEFINED"/>
- <member name="replace_all"
- value="1"
- c:identifier="GST_TAG_MERGE_REPLACE_ALL"/>
- <member name="replace" value="2" c:identifier="GST_TAG_MERGE_REPLACE"/>
- <member name="append" value="3" c:identifier="GST_TAG_MERGE_APPEND"/>
- <member name="prepend" value="4" c:identifier="GST_TAG_MERGE_PREPEND"/>
- <member name="keep" value="5" c:identifier="GST_TAG_MERGE_KEEP"/>
- <member name="keep_all" value="6" c:identifier="GST_TAG_MERGE_KEEP_ALL"/>
- <member name="count" value="7" c:identifier="GST_TAG_MERGE_COUNT"/>
- </enumeration>
- <interface name="TagSetter"
- c:type="GstTagSetter"
- doc="Opaque #GstTagSetter data structure."
- glib:type-name="GstTagSetter"
- glib:get-type="gst_tag_setter_get_type">
- <prerequisite name="Element"/>
- <method name="reset_tags"
- c:identifier="gst_tag_setter_reset_tags"
- doc="Reset the internal taglist. Elements should call this from within the
-state-change handler."
- version="0.10.22">
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- </method>
- <method name="merge_tags"
- c:identifier="gst_tag_setter_merge_tags"
- doc="Merges the given list into the setter's list using the given mode.">
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <parameter name="list" transfer-ownership="none">
- <type name="TagList" c:type="GstTagList*"/>
- </parameter>
- <parameter name="mode" transfer-ownership="none">
- <type name="TagMergeMode" c:type="GstTagMergeMode"/>
- </parameter>
- </parameters>
- </method>
- <method name="add_tags"
- c:identifier="gst_tag_setter_add_tags"
- doc="Adds the given tag / value pairs on the setter using the given merge mode.
-The list must be terminated with NULL.">
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <parameter name="mode" transfer-ownership="none">
- <type name="TagMergeMode" c:type="GstTagMergeMode"/>
- </parameter>
- <parameter name="tag" transfer-ownership="none">
- <type name="utf8" c:type="gchar*"/>
- </parameter>
- <parameter transfer-ownership="none">
- <varargs>
- </varargs>
- </parameter>
- </parameters>
- </method>
- <method name="add_tag_values"
- c:identifier="gst_tag_setter_add_tag_values"
- doc="Adds the given tag / GValue pairs on the setter using the given merge mode.
-The list must be terminated with NULL.">
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <parameter name="mode" transfer-ownership="none">
- <type name="TagMergeMode" c:type="GstTagMergeMode"/>
- </parameter>
- <parameter name="tag" transfer-ownership="none">
- <type name="utf8" c:type="gchar*"/>
- </parameter>
- <parameter transfer-ownership="none">
- <varargs>
- </varargs>
- </parameter>
- </parameters>
- </method>
- <method name="add_tag_value"
- c:identifier="gst_tag_setter_add_tag_value"
- doc="Adds the given tag / GValue pair on the setter using the given merge mode."
- version="0.10.24">
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <parameter name="mode" transfer-ownership="none">
- <type name="TagMergeMode" c:type="GstTagMergeMode"/>
- </parameter>
- <parameter name="tag" transfer-ownership="none">
- <type name="utf8" c:type="gchar*"/>
- </parameter>
- <parameter name="value" transfer-ownership="none">
- <type name="GObject.Value" c:type="GValue*"/>
- </parameter>
- </parameters>
- </method>
- <method name="get_tag_list"
- c:identifier="gst_tag_setter_get_tag_list"
- doc="Returns the current list of tags the setter uses. The list should not be
-modified or freed.
-or NULL if none is used.">
- <return-value transfer-ownership="none">
- <type name="TagList" c:type="GstTagList*"/>
- </return-value>
- </method>
- <method name="set_tag_merge_mode"
- c:identifier="gst_tag_setter_set_tag_merge_mode"
- doc="Sets the given merge mode that is used for adding tags from events to tags
-specified by this interface. The default is #GST_TAG_MERGE_KEEP, which keeps
-the tags set with this interface and discards tags from events.">
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <parameter name="mode" transfer-ownership="none">
- <type name="TagMergeMode" c:type="GstTagMergeMode"/>
- </parameter>
- </parameters>
- </method>
- <method name="get_tag_merge_mode"
- c:identifier="gst_tag_setter_get_tag_merge_mode"
- doc="Queries the mode by which tags inside the setter are overwritten by tags
-from events">
- <return-value transfer-ownership="full">
- <type name="TagMergeMode" c:type="GstTagMergeMode"/>
- </return-value>
- </method>
- </interface>
- <record name="TagSetterIFace"
- c:type="GstTagSetterIFace"
- doc="#GstTagSetterIFace interface.">
- <field name="g_iface" writable="1">
- <type name="GObject.TypeInterface" c:type="GTypeInterface"/>
- </field>
- </record>
- <class name="Task"
- c:type="GstTask"
- doc="The #GstTask object."
- parent="Object"
- glib:type-name="GstTask"
- glib:get-type="gst_task_get_type"
- glib:type-struct="TaskClass">
- <function name="cleanup_all"
- c:identifier="gst_task_cleanup_all"
- doc="Wait for all tasks to be stopped. This is mainly used internally
-to ensure proper cleanup of internal data structures in test suites.
-MT safe.">
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- </function>
- <function name="create"
- c:identifier="gst_task_create"
- doc="Create a new Task that will repeatedly call the provided @func
-with @data as a parameter. Typically the task will run in
-a new thread.
-The function cannot be changed after the task has been created. You
-must create a new #GstTask to change the function.
-This function will not yet create and start a thread. Use gst_task_start() or
-gst_task_pause() to create and start the GThread.
-Before the task can be used, a #GStaticRecMutex must be configured using the
-gst_task_set_lock() function. This lock will always be acquired while
-MT safe.">
- <return-value transfer-ownership="full">
- <type name="Task" c:type="GstTask*"/>
- </return-value>
- <parameters>
- <parameter name="func"
- transfer-ownership="none"
- scope="call"
- closure="1">
- <type name="TaskFunction" c:type="GstTaskFunction"/>
- </parameter>
- <parameter name="data" transfer-ownership="none">
- <type name="any" c:type="gpointer"/>
- </parameter>
- </parameters>
- </function>
- <method name="set_lock"
- c:identifier="gst_task_set_lock"
- doc="Set the mutex used by the task. The mutex will be acquired before
-calling the #GstTaskFunction.
-This function has to be called before calling gst_task_pause() or
-gst_task_start().
-MT safe.">
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <parameter name="mutex" transfer-ownership="none">
- <type name="GLib.StaticRecMutex" c:type="GStaticRecMutex*"/>
- </parameter>
- </parameters>
- </method>
- <method name="set_priority"
- c:identifier="gst_task_set_priority"
- doc="Changes the priority of @task to @priority.
-MT safe."
- version="0.10.24">
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <parameter name="priority" transfer-ownership="none">
- <type name="GLib.ThreadPriority" c:type="GThreadPriority"/>
- </parameter>
- </parameters>
- </method>
- <method name="get_pool"
- c:identifier="gst_task_get_pool"
- doc="Get the #GstTaskPool that this task will use for its streaming
-threads.
-MT safe.
-after usage."
- version="0.10.24">
- <return-value transfer-ownership="full">
- <type name="TaskPool" c:type="GstTaskPool*"/>
- </return-value>
- </method>
- <method name="set_pool"
- c:identifier="gst_task_set_pool"
- doc="Set @pool as the new GstTaskPool for @task. Any new streaming threads that
-will be created by @task will now use @pool.
-MT safe."
- version="0.10.24">
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <parameter name="pool" transfer-ownership="none">
- <type name="TaskPool" c:type="GstTaskPool*"/>
- </parameter>
- </parameters>
- </method>
- <method name="set_thread_callbacks"
- c:identifier="gst_task_set_thread_callbacks"
- doc="Set callbacks which will be executed when a new thread is needed, the thread
-function is entered and left and when the thread is joined.
-By default a thread for @task will be created from a default thread pool.
-Objects can use custom GThreads or can perform additional configuration of
-the threads (such as changing the thread priority) by installing callbacks.
-MT safe."
- version="0.10.24">
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <parameter name="callbacks" transfer-ownership="none">
- <type name="TaskThreadCallbacks" c:type="GstTaskThreadCallbacks*"/>
- </parameter>
- <parameter name="user_data" transfer-ownership="none">
- <type name="any" c:type="gpointer"/>
- </parameter>
- <parameter name="notify" transfer-ownership="none" scope="call">
- <type name="GLib.DestroyNotify" c:type="GDestroyNotify"/>
- </parameter>
- </parameters>
- </method>
- <method name="get_state"
- c:identifier="gst_task_get_state"
- doc="Get the current state of the task.
-MT safe.">
- <return-value transfer-ownership="full">
- <type name="TaskState" c:type="GstTaskState"/>
- </return-value>
- </method>
- <method name="set_state"
- c:identifier="gst_task_set_state"
- doc="Sets the state of @task to @state.
-The @task must have a lock associated with it using
-gst_task_set_lock() when going to GST_TASK_STARTED or GST_TASK_PAUSED or
-this function will return %FALSE.
-MT safe."
- version="0.10.24">
- <return-value transfer-ownership="none">
- <type name="boolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <parameter name="state" transfer-ownership="none">
- <type name="TaskState" c:type="GstTaskState"/>
- </parameter>
- </parameters>
- </method>
- <method name="start"
- c:identifier="gst_task_start"
- doc="Starts @task. The @task must have a lock associated with it using
-gst_task_set_lock() or this function will return %FALSE.
-MT safe.">
- <return-value transfer-ownership="none">
- <type name="boolean" c:type="gboolean"/>
- </return-value>
- </method>
- <method name="stop"
- c:identifier="gst_task_stop"
- doc="Stops @task. This method merely schedules the task to stop and
-will not wait for the task to have completely stopped. Use
-gst_task_join() to stop and wait for completion.
-MT safe.">
- <return-value transfer-ownership="none">
- <type name="boolean" c:type="gboolean"/>
- </return-value>
- </method>
- <method name="pause"
- c:identifier="gst_task_pause"
- doc="Pauses @task. This method can also be called on a task in the
-stopped state, in which case a thread will be started and will remain
-in the paused state. This function does not wait for the task to complete
-the paused state.
-MT safe.">
- <return-value transfer-ownership="none">
- <type name="boolean" c:type="gboolean"/>
- </return-value>
- </method>
- <method name="join"
- c:identifier="gst_task_join"
- doc="Joins @task. After this call, it is safe to unref the task
-and clean up the lock set with gst_task_set_lock().
-The task will automatically be stopped with this call.
-This function cannot be called from within a task function as this
-would cause a deadlock. The function will detect this and print a
-g_warning.
-MT safe.">
- <return-value transfer-ownership="none">
- <type name="boolean" c:type="gboolean"/>
- </return-value>
- </method>
- <field name="object">
- <type name="Object" c:type="GstObject"/>
- </field>
- <field name="state">
- <type name="TaskState" c:type="GstTaskState"/>
- </field>
- <field name="cond">
- <type name="GLib.Cond" c:type="GCond*"/>
- </field>
- <field name="lock">
- <type name="GLib.StaticRecMutex" c:type="GStaticRecMutex*"/>
- </field>
- <field name="func">
- <type name="TaskFunction" c:type="GstTaskFunction"/>
- </field>
- <field name="data">
- <type name="any" c:type="gpointer"/>
- </field>
- <field name="running">
- <type name="boolean" c:type="gboolean"/>
- </field>
- <union name="abidata" c:type="abidata">
- <record name="ABI" c:type="ABI">
- <field name="thread" writable="1">
- <type name="GLib.Thread" c:type="GThread*"/>
- </field>
- </record>
- <field name="_gst_reserved" writable="1">
- <array zero-terminated="0" c:type="gpointer" fixed-size="3">
- <type name="any"/>
- </array>
- </field>
- </union>
- <field name="priv">
- <type name="TaskPrivate" c:type="GstTaskPrivate*"/>
- </field>
- </class>
- <record name="TaskClass"
- c:type="GstTaskClass"
- glib:is-gtype-struct-for="Task">
- <field name="parent_class">
- <type name="ObjectClass" c:type="GstObjectClass"/>
- </field>
- <field name="pool">
- <type name="TaskPool" c:type="GstTaskPool*"/>
- </field>
- <field name="_gst_reserved">
- <array zero-terminated="0" c:type="gpointer" fixed-size="4">
- <type name="any"/>
- </array>
- </field>
- </record>
- <callback name="TaskFunction"
- c:type="GstTaskFunction"
- doc="A function that will repeatedly be called in the thread created by
-a #GstTask.">
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <parameter name="data" transfer-ownership="none">
- <type name="any" c:type="void*"/>
- </parameter>
- </parameters>
- </callback>
- <class name="TaskPool"
- c:type="GstTaskPool"
- doc="The #GstTaskPool object."
- parent="Object"
- glib:type-name="GstTaskPool"
- glib:get-type="gst_task_pool_get_type"
- glib:type-struct="TaskPoolClass">
- <constructor name="new"
- c:identifier="gst_task_pool_new"
- doc="Create a new default task pool. The default task pool will use a regular
-GThreadPool for threads."
- version="0.10.24">
- <return-value transfer-ownership="full" doc="after usage.">
- <type name="TaskPool" c:type="GstTaskPool*"/>
- </return-value>
- </constructor>
- <virtual-method name="prepare" invoker="prepare" throws="1">
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- </virtual-method>
- <virtual-method name="cleanup" invoker="cleanup">
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- </virtual-method>
- <virtual-method name="push" invoker="push" throws="1">
- <return-value transfer-ownership="none">
- <type name="any" c:type="gpointer"/>
- </return-value>
- <parameters>
- <parameter name="func" transfer-ownership="none">
- <type name="TaskPoolFunction" c:type="GstTaskPoolFunction"/>
- </parameter>
- <parameter name="user_data" transfer-ownership="none" closure="2">
- <type name="any" c:type="gpointer"/>
- </parameter>
- </parameters>
- </virtual-method>
- <virtual-method name="join" invoker="join">
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <parameter name="id" transfer-ownership="none">
- <type name="any" c:type="gpointer"/>
- </parameter>
- </parameters>
- </virtual-method>
- <method name="prepare"
- c:identifier="gst_task_pool_prepare"
- doc="Prepare the taskpool for accepting gst_task_pool_push() operations.
-MT safe."
- version="0.10.24"
- throws="1">
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- </method>
- <method name="push"
- c:identifier="gst_task_pool_push"
- doc="Start the execution of a new thread from @pool.
-function. This pointer can be NULL, you must check @error to detect
-errors."
- version="0.10.24"
- throws="1">
- <return-value transfer-ownership="none">
- <type name="any" c:type="gpointer"/>
- </return-value>
- <parameters>
- <parameter name="func"
- transfer-ownership="none"
- scope="call"
- closure="2">
- <type name="TaskPoolFunction" c:type="GstTaskPoolFunction"/>
- </parameter>
- <parameter name="user_data" transfer-ownership="none">
- <type name="any" c:type="gpointer"/>
- </parameter>
- </parameters>
- </method>
- <method name="join"
- c:identifier="gst_task_pool_join"
- doc="Join a task and/or return it to the pool. @id is the id obtained from
-gst_task_pool_push()."
- version="0.10.24">
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <parameter name="id" transfer-ownership="none">
- <type name="any" c:type="gpointer"/>
- </parameter>
- </parameters>
- </method>
- <method name="cleanup"
- c:identifier="gst_task_pool_cleanup"
- doc="Wait for all tasks to be stopped. This is mainly used internally
-to ensure proper cleanup of internal data structures in test suites.
-MT safe."
- version="0.10.24">
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- </method>
- <field name="object">
- <type name="Object" c:type="GstObject"/>
- </field>
- <field name="pool">
- <type name="GLib.ThreadPool" c:type="GThreadPool*"/>
- </field>
- <field name="_gst_reserved">
- <array zero-terminated="0" c:type="gpointer" fixed-size="4">
- <type name="any"/>
- </array>
- </field>
- </class>
- <record name="TaskPoolClass"
- c:type="GstTaskPoolClass"
- glib:is-gtype-struct-for="TaskPool"
- doc="The #GstTaskPoolClass object.">
- <field name="parent_class">
- <type name="ObjectClass" c:type="GstObjectClass"/>
- </field>
- <field name="prepare">
- <callback name="prepare" c:type="prepare" throws="1">
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <parameter name="pool" transfer-ownership="none">
- <type name="TaskPool" c:type="GstTaskPool*"/>
- </parameter>
- </parameters>
- </callback>
- </field>
- <field name="cleanup">
- <callback name="cleanup" c:type="cleanup">
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <parameter name="pool" transfer-ownership="none">
- <type name="TaskPool" c:type="GstTaskPool*"/>
- </parameter>
- </parameters>
- </callback>
- </field>
- <field name="push">
- <callback name="push" c:type="push" throws="1">
- <return-value transfer-ownership="none">
- <type name="any" c:type="gpointer"/>
- </return-value>
- <parameters>
- <parameter name="pool" transfer-ownership="none">
- <type name="TaskPool" c:type="GstTaskPool*"/>
- </parameter>
- <parameter name="func" transfer-ownership="none">
- <type name="TaskPoolFunction" c:type="GstTaskPoolFunction"/>
- </parameter>
- <parameter name="user_data" transfer-ownership="none" closure="2">
- <type name="any" c:type="gpointer"/>
- </parameter>
- </parameters>
- </callback>
- </field>
- <field name="join">
- <callback name="join" c:type="join">
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <parameter name="pool" transfer-ownership="none">
- <type name="TaskPool" c:type="GstTaskPool*"/>
- </parameter>
- <parameter name="id" transfer-ownership="none">
- <type name="any" c:type="gpointer"/>
- </parameter>
- </parameters>
- </callback>
- </field>
- <field name="_gst_reserved">
- <array zero-terminated="0" c:type="gpointer" fixed-size="4">
- <type name="any"/>
- </array>
- </field>
- </record>
- <callback name="TaskPoolFunction"
- c:type="GstTaskPoolFunction"
- doc="Task function, see gst_task_pool_push()."
- version="0.10.24">
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <parameter name="data" transfer-ownership="none">
- <type name="any" c:type="void*"/>
- </parameter>
- </parameters>
- </callback>
- <record name="TaskPrivate" c:type="GstTaskPrivate">
- </record>
- <enumeration name="TaskState"
- doc="The different states a task can be in"
- c:type="GstTaskState">
- <member name="started" value="0" c:identifier="GST_TASK_STARTED"/>
- <member name="stopped" value="1" c:identifier="GST_TASK_STOPPED"/>
- <member name="paused" value="2" c:identifier="GST_TASK_PAUSED"/>
- </enumeration>
- <record name="TaskThreadCallbacks"
- c:type="GstTaskThreadCallbacks"
- doc="thread enters its function.
-to leave its function
-Custom GstTask thread callback functions that can be installed."
- version="0.10.24">
- <field name="enter_thread">
- <type name="any" c:type="pointer"/>
- </field>
- <field name="leave_thread">
- <type name="any" c:type="pointer"/>
- </field>
- <field name="_gst_reserved" writable="1">
- <array zero-terminated="0" c:type="gpointer" fixed-size="4">
- <type name="any"/>
- </array>
- </field>
- </record>
- <record name="Trace" c:type="GstTrace" doc="Opaque #GstTrace structure.">
- <field name="filename" writable="1">
- <type name="utf8" c:type="gchar*"/>
- </field>
- <field name="fd" writable="1">
- <type name="int" c:type="int"/>
- </field>
- <field name="buf" writable="1">
- <type name="TraceEntry" c:type="GstTraceEntry*"/>
- </field>
- <field name="bufsize" writable="1">
- <type name="int" c:type="gint"/>
- </field>
- <field name="bufoffset" writable="1">
- <type name="int" c:type="gint"/>
- </field>
- <constructor name="new"
- c:identifier="gst_trace_new"
- doc="Create a ringbuffer of @size in the file with @filename to
-store trace results in.">
- <return-value transfer-ownership="full">
- <type name="Trace" c:type="GstTrace*"/>
- </return-value>
- <parameters>
- <parameter name="filename" transfer-ownership="none">
- <type name="utf8" c:type="gchar*"/>
- </parameter>
- <parameter name="size" transfer-ownership="none">
- <type name="int" c:type="gint"/>
- </parameter>
- </parameters>
- </constructor>
- <method name="destroy"
- c:identifier="gst_trace_destroy"
- doc="Flush an close the previously allocated @trace.">
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- </method>
- <method name="flush"
- c:identifier="gst_trace_flush"
- doc="Flush any pending trace entries in @trace to the trace file.
-flushed.">
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- </method>
- <method name="text_flush"
- c:identifier="gst_trace_text_flush"
- doc="Flush any pending trace entries in @trace to the trace file,
-formatted as a text line with timestamp and sequence numbers.
-flushed.">
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- </method>
- <method name="set_default"
- c:identifier="gst_trace_set_default"
- doc="Set the default #GstTrace to @trace.">
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- </method>
- </record>
- <record name="TraceEntry" c:type="GstTraceEntry">
- <field name="timestamp" writable="1">
- <type name="int64" c:type="gint64"/>
- </field>
- <field name="sequence" writable="1">
- <type name="uint32" c:type="guint32"/>
- </field>
- <field name="data" writable="1">
- <type name="uint32" c:type="guint32"/>
- </field>
- <field name="message" writable="1">
- <array zero-terminated="0" c:type="gchar" fixed-size="112">
- <type name="int8"/>
- </array>
- </field>
- </record>
- <record name="TypeFind"
- c:type="GstTypeFind"
- doc="Object that stores typefind callbacks. To use with #GstTypeFindFactory.">
- <field name="peek">
- <type name="any" c:type="pointer"/>
- </field>
- <field name="suggest">
- <type name="any" c:type="pointer"/>
- </field>
- <field name="data" writable="1">
- <type name="any" c:type="gpointer"/>
- </field>
- <field name="get_length">
- <type name="any" c:type="pointer"/>
- </field>
- <field name="_gst_reserved" writable="1">
- <array zero-terminated="0" c:type="gpointer" fixed-size="4">
- <type name="any"/>
- </array>
- </field>
- <method name="peek"
- c:identifier="gst_type_find_peek"
- doc="Returns the @size bytes of the stream to identify beginning at offset. If
-offset is a positive number, the offset is relative to the beginning of the
-stream, if offset is a negative number the offset is relative to the end of
-the stream. The returned memory is valid until the typefinding function
-returns and must not be freed.">
- <return-value transfer-ownership="full">
- <array c:type="guint8*">
- <type name="uint8"/>
- </array>
- </return-value>
- <parameters>
- <parameter name="offset" transfer-ownership="none">
- <type name="int64" c:type="gint64"/>
- </parameter>
- <parameter name="size" transfer-ownership="none">
- <type name="uint" c:type="guint"/>
- </parameter>
- </parameters>
- </method>
- <method name="suggest"
- c:identifier="gst_type_find_suggest"
- doc="If a #GstTypeFindFunction calls this function it suggests the caps with the
-given probability. A #GstTypeFindFunction may supply different suggestions
-in one call.
-It is up to the caller of the #GstTypeFindFunction to interpret these values.">
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <parameter name="probability" transfer-ownership="none">
- <type name="uint" c:type="guint"/>
- </parameter>
- <parameter name="caps" transfer-ownership="none">
- <type name="Caps" c:type="GstCaps*"/>
- </parameter>
- </parameters>
- </method>
- <method name="suggest_simple"
- c:identifier="gst_type_find_suggest_simple"
- doc="arguments passed to gst_structure_new() (ie. triplets of field name,
-field GType and field value)
-If a #GstTypeFindFunction calls this function it suggests the caps with the
-given probability. A #GstTypeFindFunction may supply different suggestions
-in one call. It is up to the caller of the #GstTypeFindFunction to interpret
-these values.
-This function is similar to gst_type_find_suggest(), only that instead of
-passing a #GstCaps argument you can create the caps on the fly in the same
-way as you can with gst_caps_new_simple().
-Make sure you terminate the list of arguments with a NULL argument and that
-the values passed have the correct type (in terms of width in bytes when
-passed to the vararg function - this applies particularly to gdouble and
-guint64 arguments)."
- version="0.10.20">
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <parameter name="probability" transfer-ownership="none">
- <type name="uint" c:type="guint"/>
- </parameter>
- <parameter name="media_type" transfer-ownership="none">
- <type name="utf8" c:type="char*"/>
- </parameter>
- <parameter name="fieldname" transfer-ownership="none">
- <type name="utf8" c:type="char*"/>
- </parameter>
- <parameter transfer-ownership="none">
- <varargs>
- </varargs>
- </parameter>
- </parameters>
- </method>
- <method name="get_length"
- c:identifier="gst_type_find_get_length"
- doc="Get the length of the data stream.">
- <return-value transfer-ownership="none">
- <type name="uint64" c:type="guint64"/>
- </return-value>
- </method>
- </record>
- <class name="TypeFindFactory"
- c:type="GstTypeFindFactory"
- doc="Object that stores information about a typefind function."
- parent="PluginFeature"
- glib:type-name="GstTypeFindFactory"
- glib:get-type="gst_type_find_factory_get_type"
- glib:type-struct="TypeFindFactoryClass">
- <function name="get_list"
- c:identifier="gst_type_find_factory_get_list"
- doc="Gets the list of all registered typefind factories. You must free the
-list using gst_plugin_feature_list_free.
-The returned factories are sorted by highest rank first, and then by
-factory name. (behaviour change since 0.10.26)">
- <return-value transfer-ownership="full">
- <type name="GLib.List" c:type="GList*"/>
- </return-value>
- </function>
- <method name="get_extensions"
- c:identifier="gst_type_find_factory_get_extensions"
- doc="Gets the extensions associated with a #GstTypeFindFactory. The returned
-array should not be changed. If you need to change stuff in it, you should
-copy it using g_strdupv(). This function may return NULL to indicate
-a 0-length list.">
- <return-value transfer-ownership="full">
- <array c:type="gchar**">
- <type name="utf8"/>
- </array>
- </return-value>
- </method>
- <method name="get_caps"
- c:identifier="gst_type_find_factory_get_caps"
- doc="Gets the #GstCaps associated with a typefind factory.">
- <return-value transfer-ownership="full">
- <type name="Caps" c:type="GstCaps*"/>
- </return-value>
- </method>
- <method name="call_function"
- c:identifier="gst_type_find_factory_call_function"
- doc="members must be set.
-Calls the #GstTypeFindFunction associated with this factory.">
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <parameter name="find" transfer-ownership="none">
- <type name="TypeFind" c:type="GstTypeFind*"/>
- </parameter>
- </parameters>
- </method>
- <field name="feature">
- <type name="PluginFeature" c:type="GstPluginFeature"/>
- </field>
- <field name="function">
- <type name="TypeFindFunction" c:type="GstTypeFindFunction"/>
- </field>
- <field name="extensions">
- <type name="utf8" c:type="gchar**"/>
- </field>
- <field name="caps">
- <type name="Caps" c:type="GstCaps*"/>
- </field>
- <field name="user_data">
- <type name="any" c:type="gpointer"/>
- </field>
- <field name="user_data_notify">
- <type name="GLib.DestroyNotify" c:type="GDestroyNotify"/>
- </field>
- <field name="_gst_reserved">
- <array zero-terminated="0" c:type="gpointer" fixed-size="4">
- <type name="any"/>
- </array>
- </field>
- </class>
- <record name="TypeFindFactoryClass"
- c:type="GstTypeFindFactoryClass"
- glib:is-gtype-struct-for="TypeFindFactory">
- <field name="parent">
- <type name="PluginFeatureClass" c:type="GstPluginFeatureClass"/>
- </field>
- <field name="_gst_reserved">
- <array zero-terminated="0" c:type="gpointer" fixed-size="4">
- <type name="any"/>
- </array>
- </field>
- </record>
- <callback name="TypeFindFunction"
- c:type="GstTypeFindFunction"
- doc="A function that will be called by typefinding.">
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <parameter name="find" transfer-ownership="none">
- <type name="TypeFind" c:type="GstTypeFind*"/>
- </parameter>
- <parameter name="data" transfer-ownership="none">
- <type name="any" c:type="gpointer"/>
- </parameter>
- </parameters>
- </callback>
- <enumeration name="TypeFindProbability"
- doc="The probability of the typefind function. Higher values have more certainty
-in doing a reliable typefind."
- c:type="GstTypeFindProbability">
- <member name="minimum" value="1" c:identifier="GST_TYPE_FIND_MINIMUM"/>
- <member name="possible"
- value="50"
- c:identifier="GST_TYPE_FIND_POSSIBLE"/>
- <member name="likely" value="80" c:identifier="GST_TYPE_FIND_LIKELY"/>
- <member name="nearly_certain"
- value="99"
- c:identifier="GST_TYPE_FIND_NEARLY_CERTAIN"/>
- <member name="maximum" value="100" c:identifier="GST_TYPE_FIND_MAXIMUM"/>
- </enumeration>
- <record name="TypeNameData"
- c:type="GstTypeNameData"
- doc="Structure used for filtering based on @name and @type.">
- <field name="name" writable="1">
- <type name="utf8" c:type="gchar*"/>
- </field>
- <field name="type" writable="1">
- <type name="GType" c:type="GType"/>
- </field>
- </record>
- <interface name="URIHandler"
- c:type="GstURIHandler"
- doc="Opaque #GstURIHandler structure."
- glib:type-name="GstURIHandler"
- glib:get-type="gst_uri_handler_get_type"
- glib:type-struct="URIHandlerInterface">
- <virtual-method name="get_uri" invoker="get_uri">
- <return-value transfer-ownership="none">
- <type name="utf8" c:type="gchar*"/>
- </return-value>
- </virtual-method>
- <virtual-method name="set_uri" invoker="set_uri">
- <return-value transfer-ownership="none">
- <type name="boolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <parameter name="uri" transfer-ownership="none">
- <type name="utf8" c:type="gchar*"/>
- </parameter>
- </parameters>
- </virtual-method>
- <method name="get_uri_type"
- c:identifier="gst_uri_handler_get_uri_type"
- doc="Gets the type of the given URI handler
-Returns #GST_URI_UNKNOWN if the @handler isn't implemented correctly.">
- <return-value transfer-ownership="none">
- <type name="uint" c:type="guint"/>
- </return-value>
- </method>
- <method name="get_protocols"
- c:identifier="gst_uri_handler_get_protocols"
- doc="Gets the list of protocols supported by @handler. This list may not be
-modified.
-Returns NULL if the @handler isn't implemented properly, or the @handler
-doesn't support any protocols.">
- <return-value transfer-ownership="full">
- <array c:type="gchar**">
- <type name="utf8"/>
- </array>
- </return-value>
- </method>
- <method name="get_uri"
- c:identifier="gst_uri_handler_get_uri"
- doc="Gets the currently handled URI.
-Returns NULL if there are no URI currently handled. The returned
-string must not be modified or freed.">
- <return-value transfer-ownership="none">
- <type name="utf8" c:type="gchar*"/>
- </return-value>
- </method>
- <method name="set_uri"
- c:identifier="gst_uri_handler_set_uri"
- doc="Tries to set the URI of the given handler.">
- <return-value transfer-ownership="none">
- <type name="boolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <parameter name="uri" transfer-ownership="none">
- <type name="utf8" c:type="gchar*"/>
- </parameter>
- </parameters>
- </method>
- <method name="new_uri"
- c:identifier="gst_uri_handler_new_uri"
- doc="Emits the new-uri signal for a given handler, when that handler has a new URI.
-This function should only be called by URI handlers themselves.">
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <parameter name="uri" transfer-ownership="none">
- <type name="utf8" c:type="gchar*"/>
- </parameter>
- </parameters>
- </method>
- <glib:signal name="new-uri"
- doc="The URI of the given @handler has changed.">
- <return-value transfer-ownership="full">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <parameter name="uri" transfer-ownership="none">
- <type name="utf8" c:type="gchararray"/>
- </parameter>
- </parameters>
- </glib:signal>
- </interface>
- <record name="URIHandlerInterface"
- c:type="GstURIHandlerInterface"
- glib:is-gtype-struct-for="URIHandler"
- doc="This is for use by bindings that need to pass context when creating a URI
-Handler. If implemented, get_protocols will be used in preference to
-Any #GstElement using this interface should implement these methods.">
- <field name="parent">
- <type name="GObject.TypeInterface" c:type="GTypeInterface"/>
- </field>
- <field name="new_uri">
- <callback name="new_uri" c:type="new_uri">
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <parameter name="handler" transfer-ownership="none">
- <type name="URIHandler" c:type="GstURIHandler*"/>
- </parameter>
- <parameter name="uri" transfer-ownership="none">
- <type name="utf8" c:type="gchar*"/>
- </parameter>
- </parameters>
- </callback>
- </field>
- <field name="get_type">
- <callback name="get_type" c:type="get_type">
- <return-value transfer-ownership="full">
- <type name="URIType" c:type="GstURIType"/>
- </return-value>
- </callback>
- </field>
- <field name="get_protocols">
- <callback name="get_protocols" c:type="get_protocols">
- <return-value transfer-ownership="full">
- <array c:type="gchar**">
- <type name="utf8"/>
- </array>
- </return-value>
- </callback>
- </field>
- <field name="get_uri">
- <callback name="get_uri" c:type="get_uri">
- <return-value transfer-ownership="none">
- <type name="utf8" c:type="gchar*"/>
- </return-value>
- <parameters>
- <parameter name="handler" transfer-ownership="none">
- <type name="URIHandler" c:type="GstURIHandler*"/>
- </parameter>
- </parameters>
- </callback>
- </field>
- <field name="set_uri">
- <callback name="set_uri" c:type="set_uri">
- <return-value transfer-ownership="none">
- <type name="boolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <parameter name="handler" transfer-ownership="none">
- <type name="URIHandler" c:type="GstURIHandler*"/>
- </parameter>
- <parameter name="uri" transfer-ownership="none">
- <type name="utf8" c:type="gchar*"/>
- </parameter>
- </parameters>
- </callback>
- </field>
- <field name="get_type_full">
- <callback name="get_type_full" c:type="get_type_full">
- <return-value transfer-ownership="full">
- <type name="URIType" c:type="GstURIType"/>
- </return-value>
- <parameters>
- <parameter name="type" transfer-ownership="none">
- <type name="GType" c:type="GType"/>
- </parameter>
- </parameters>
- </callback>
- </field>
- <field name="get_protocols_full">
- <callback name="get_protocols_full" c:type="get_protocols_full">
- <return-value transfer-ownership="full">
- <array c:type="gchar**">
- <type name="utf8"/>
- </array>
- </return-value>
- <parameters>
- <parameter name="type" transfer-ownership="none">
- <type name="GType" c:type="GType"/>
- </parameter>
- </parameters>
- </callback>
- </field>
- <field name="_gst_reserved">
- <array zero-terminated="0" c:type="gpointer" fixed-size="2">
- <type name="any"/>
- </array>
- </field>
- </record>
- <enumeration name="URIType"
- doc="The different types of URI direction."
- c:type="GstURIType">
- <member name="unknown" value="0" c:identifier="GST_URI_UNKNOWN"/>
- <member name="sink" value="1" c:identifier="GST_URI_SINK"/>
- <member name="src" value="2" c:identifier="GST_URI_SRC"/>
- </enumeration>
- <constant name="USECOND" value="0">
- <type name="int"/>
- </constant>
- <constant name="VALUE_EQUAL" value="0">
- <type name="int"/>
- </constant>
- <constant name="VALUE_GREATER_THAN" value="1">
- <type name="int"/>
- </constant>
- <constant name="VALUE_LESS_THAN" value="-1">
- <type name="int"/>
- </constant>
- <constant name="VALUE_UNORDERED" value="2">
- <type name="int"/>
- </constant>
- <callback name="ValueCompareFunc"
- c:type="GstValueCompareFunc"
- doc="Used together with gst_value_compare() to compare #GValue items.
-or GST_VALUE_UNORDERED">
- <return-value transfer-ownership="none">
- <type name="int" c:type="gint"/>
- </return-value>
- <parameters>
- <parameter name="value1" transfer-ownership="none">
- <type name="GObject.Value" c:type="GValue*"/>
- </parameter>
- <parameter name="value2" transfer-ownership="none">
- <type name="GObject.Value" c:type="GValue*"/>
- </parameter>
- </parameters>
- </callback>
- <callback name="ValueDeserializeFunc"
- c:type="GstValueDeserializeFunc"
- doc="Used by gst_value_deserialize() to parse a non-binary form into the #GValue.">
- <return-value transfer-ownership="none">
- <type name="boolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <parameter name="dest" transfer-ownership="none">
- <type name="GObject.Value" c:type="GValue*"/>
- </parameter>
- <parameter name="s" transfer-ownership="none">
- <type name="utf8" c:type="gchar*"/>
- </parameter>
- </parameters>
- </callback>
- <callback name="ValueIntersectFunc"
- c:type="GstValueIntersectFunc"
- doc="Used by gst_value_intersect() to perform intersection for a specific #GValue
-type. If the intersection is non-empty, the result is
-placed in @dest and TRUE is returned. If the intersection is
-empty, @dest is unmodified and FALSE is returned.
-Register a new implementation with gst_value_register_intersect_func().">
- <return-value transfer-ownership="none">
- <type name="boolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <parameter name="dest" transfer-ownership="none">
- <type name="GObject.Value" c:type="GValue*"/>
- </parameter>
- <parameter name="value1" transfer-ownership="none">
- <type name="GObject.Value" c:type="GValue*"/>
- </parameter>
- <parameter name="value2" transfer-ownership="none">
- <type name="GObject.Value" c:type="GValue*"/>
- </parameter>
- </parameters>
- </callback>
- <callback name="ValueSerializeFunc"
- c:type="GstValueSerializeFunc"
- doc="Used by gst_value_serialize() to obtain a non-binary form of the #GValue.">
- <return-value transfer-ownership="full">
- <type name="utf8" c:type="gchar*"/>
- </return-value>
- <parameters>
- <parameter name="value1" transfer-ownership="none">
- <type name="GObject.Value" c:type="GValue*"/>
- </parameter>
- </parameters>
- </callback>
- <callback name="ValueSubtractFunc"
- c:type="GstValueSubtractFunc"
- doc="Used by gst_value_subtract() to perform subtraction for a specific #GValue
-type. Register a new implementation with gst_value_register_subtract_func().">
- <return-value transfer-ownership="none">
- <type name="boolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <parameter name="dest" transfer-ownership="none">
- <type name="GObject.Value" c:type="GValue*"/>
- </parameter>
- <parameter name="minuend" transfer-ownership="none">
- <type name="GObject.Value" c:type="GValue*"/>
- </parameter>
- <parameter name="subtrahend" transfer-ownership="none">
- <type name="GObject.Value" c:type="GValue*"/>
- </parameter>
- </parameters>
- </callback>
- <record name="ValueTable"
- c:type="GstValueTable"
- doc="VTable for the #GValue @type.">
- <field name="type" writable="1">
- <type name="GType" c:type="GType"/>
- </field>
- <field name="compare" writable="1">
- <type name="ValueCompareFunc" c:type="GstValueCompareFunc"/>
- </field>
- <field name="serialize" writable="1">
- <type name="ValueSerializeFunc" c:type="GstValueSerializeFunc"/>
- </field>
- <field name="deserialize" writable="1">
- <type name="ValueDeserializeFunc" c:type="GstValueDeserializeFunc"/>
- </field>
- <field name="_gst_reserved" writable="1">
- <array zero-terminated="0" c:type="void*" fixed-size="4">
- <type name="any"/>
- </array>
- </field>
- </record>
- <callback name="ValueUnionFunc"
- c:type="GstValueUnionFunc"
- doc="Used by gst_value_union() to perform unification for a specific #GValue
-type. Register a new implementation with gst_value_register_union_func().">
- <return-value transfer-ownership="none">
- <type name="boolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <parameter name="dest" transfer-ownership="none">
- <type name="GObject.Value" c:type="GValue*"/>
- </parameter>
- <parameter name="value1" transfer-ownership="none">
- <type name="GObject.Value" c:type="GValue*"/>
- </parameter>
- <parameter name="value2" transfer-ownership="none">
- <type name="GObject.Value" c:type="GValue*"/>
- </parameter>
- </parameters>
- </callback>
- <class name="XML"
- c:type="GstXML"
- doc="XML parser object"
- parent="Object"
- glib:type-name="GstXML"
- glib:get-type="gst_xml_get_type"
- glib:type-struct="XMLClass">
- <constructor name="new"
- c:identifier="gst_xml_new"
- doc="Create a new GstXML parser object.">
- <return-value transfer-ownership="full">
- <type name="XML" c:type="GstXML*"/>
- </return-value>
- </constructor>
- <function name="write"
- c:identifier="gst_xml_write"
- doc="Converts the given element into an XML presentation.">
- <return-value transfer-ownership="full">
- <type name="libxml2.DocPtr" c:type="xmlDocPtr"/>
- </return-value>
- <parameters>
- <parameter name="element" transfer-ownership="none">
- <type name="Element" c:type="GstElement*"/>
- </parameter>
- </parameters>
- </function>
- <function name="make_element"
- c:identifier="gst_xml_make_element"
- doc="Load the element from the XML description">
- <return-value transfer-ownership="full">
- <type name="Element" c:type="GstElement*"/>
- </return-value>
- <parameters>
- <parameter name="cur" transfer-ownership="none">
- <type name="libxml2.NodePtr" c:type="xmlNodePtr"/>
- </parameter>
- <parameter name="parent" transfer-ownership="none">
- <type name="Object" c:type="GstObject*"/>
- </parameter>
- </parameters>
- </function>
- <virtual-method name="object_saved">
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <parameter name="object" transfer-ownership="none">
- <type name="Object" c:type="GstObject*"/>
- </parameter>
- <parameter name="self" transfer-ownership="none">
- <type name="libxml2.NodePtr" c:type="xmlNodePtr"/>
- </parameter>
- </parameters>
- </virtual-method>
- <method name="parse_doc"
- c:identifier="gst_xml_parse_doc"
- doc="Fills the GstXML object with the elements from the
-xmlDocPtr.">
- <return-value transfer-ownership="none">
- <type name="boolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <parameter name="doc" transfer-ownership="none">
- <type name="libxml2.DocPtr" c:type="xmlDocPtr"/>
- </parameter>
- <parameter name="root" transfer-ownership="none">
- <array c:type="guchar*">
- <type name="uint8"/>
- </array>
- </parameter>
- </parameters>
- </method>
- <method name="parse_file"
- c:identifier="gst_xml_parse_file"
- doc="Fills the GstXML object with the corresponding elements from
-the XML file fname. Optionally it will only build the element from
-the element node root (if it is not NULL). This feature is useful
-if you only want to build a specific element from an XML file
-but not the pipeline it is embedded in.
-Pass "-" as fname to read from stdin. You can also pass a URI
-of any format that libxml supports, including http.">
- <return-value transfer-ownership="none">
- <type name="boolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <parameter name="fname" transfer-ownership="none">
- <array c:type="guchar*">
- <type name="uint8"/>
- </array>
- </parameter>
- <parameter name="root" transfer-ownership="none">
- <array c:type="guchar*">
- <type name="uint8"/>
- </array>
- </parameter>
- </parameters>
- </method>
- <method name="parse_memory"
- c:identifier="gst_xml_parse_memory"
- doc="Fills the GstXML object with the corresponding elements from
-an in memory XML buffer.">
- <return-value transfer-ownership="none">
- <type name="boolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <parameter name="buffer" transfer-ownership="none">
- <array c:type="guchar*">
- <type name="uint8"/>
- </array>
- </parameter>
- <parameter name="size" transfer-ownership="none">
- <type name="uint" c:type="guint"/>
- </parameter>
- <parameter name="root" transfer-ownership="none">
- <type name="utf8" c:type="gchar*"/>
- </parameter>
- </parameters>
- </method>
- <method name="get_element"
- c:identifier="gst_xml_get_element"
- doc="This function is used to get a pointer to the GstElement corresponding
-to name in the pipeline description. You would use this if you have
-to do anything to the element after loading.">
- <return-value transfer-ownership="full">
- <type name="Element" c:type="GstElement*"/>
- </return-value>
- <parameters>
- <parameter name="name" transfer-ownership="none">
- <array c:type="guchar*">
- <type name="uint8"/>
- </array>
- </parameter>
- </parameters>
- </method>
- <method name="get_topelements"
- c:identifier="gst_xml_get_topelements"
- doc="Retrieve a list of toplevel elements.
-of the list and must not free or modify the list. The caller also does not
-own a reference to any of the elements in the list and should obtain its own
-reference using gst_object_ref() if necessary.">
- <return-value transfer-ownership="full">
- <type name="GLib.List" c:type="GList*"/>
- </return-value>
- </method>
- <field name="object">
- <type name="Object" c:type="GstObject"/>
- </field>
- <field name="topelements">
- <type name="GLib.List" c:type="GList*"/>
- </field>
- <field name="ns">
- <type name="libxml2.NsPtr" c:type="xmlNsPtr"/>
- </field>
- <field name="_gst_reserved">
- <array zero-terminated="0" c:type="gpointer" fixed-size="4">
- <type name="any"/>
- </array>
- </field>
- <glib:signal name="object-loaded"
- doc="Signals that a new object has been deserialized.">
- <return-value transfer-ownership="full">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <parameter name="object" transfer-ownership="none">
- <type name="Object" c:type="GstObject"/>
- </parameter>
- <parameter name="xml_node" transfer-ownership="none">
- <type name="any" c:type="gpointer"/>
- </parameter>
- </parameters>
- </glib:signal>
- </class>
- <record name="XMLClass"
- c:type="GstXMLClass"
- glib:is-gtype-struct-for="XML">
- <field name="parent_class">
- <type name="ObjectClass" c:type="GstObjectClass"/>
- </field>
- <field name="object_loaded">
- <callback name="object_loaded" c:type="object_loaded">
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <parameter name="xml" transfer-ownership="none">
- <type name="XML" c:type="GstXML*"/>
- </parameter>
- <parameter name="object" transfer-ownership="none">
- <type name="Object" c:type="GstObject*"/>
- </parameter>
- <parameter name="self" transfer-ownership="none">
- <type name="libxml2.NodePtr" c:type="xmlNodePtr"/>
- </parameter>
- </parameters>
- </callback>
- </field>
- <field name="object_saved">
- <callback name="object_saved" c:type="object_saved">
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <parameter name="xml" transfer-ownership="none">
- <type name="XML" c:type="GstXML*"/>
- </parameter>
- <parameter name="object" transfer-ownership="none">
- <type name="Object" c:type="GstObject*"/>
- </parameter>
- <parameter name="self" transfer-ownership="none">
- <type name="libxml2.NodePtr" c:type="xmlNodePtr"/>
- </parameter>
- </parameters>
- </callback>
- </field>
- <field name="_gst_reserved">
- <array zero-terminated="0" c:type="gpointer" fixed-size="4">
- <type name="any"/>
- </array>
- </field>
- </record>
- <function name="alloc_trace_available"
- c:identifier="gst_alloc_trace_available"
- doc="Check if alloc tracing was compiled into the core
-tracing enabled.">
- <return-value transfer-ownership="none">
- <type name="boolean" c:type="gboolean"/>
- </return-value>
- </function>
- <function name="alloc_trace_get"
- c:identifier="gst_alloc_trace_get"
- doc="Get the named alloc trace object.
-no alloc tracer was registered with that name.">
- <return-value transfer-ownership="full">
- <type name="AllocTrace" c:type="GstAllocTrace*"/>
- </return-value>
- <parameters>
- <parameter name="name" transfer-ownership="none">
- <type name="utf8" c:type="gchar*"/>
- </parameter>
- </parameters>
- </function>
- <function name="alloc_trace_list"
- c:identifier="gst_alloc_trace_list"
- doc="Get a list of all registered alloc trace objects.">
- <return-value transfer-ownership="none">
- <type name="GLib.List" c:type="GList*"/>
- </return-value>
- </function>
- <function name="alloc_trace_live_all"
- c:identifier="gst_alloc_trace_live_all"
- doc="Get the total number of live registered alloc trace objects.">
- <return-value transfer-ownership="none">
- <type name="int" c:type="int"/>
- </return-value>
- </function>
- <function name="alloc_trace_print_all"
- c:identifier="gst_alloc_trace_print_all"
- doc="Print the status of all registered alloc trace objects.">
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- </function>
- <function name="alloc_trace_print_live"
- c:identifier="gst_alloc_trace_print_live"
- doc="Print the status of all registered alloc trace objects, ignoring those
-without live objects.">
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- </function>
- <function name="alloc_trace_set_flags_all"
- c:identifier="gst_alloc_trace_set_flags_all"
- doc="Enable the specified options on all registered alloc trace
-objects.">
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <parameter name="flags" transfer-ownership="none">
- <type name="AllocTraceFlags" c:type="GstAllocTraceFlags"/>
- </parameter>
- </parameters>
- </function>
- <function name="atomic_int_set"
- c:identifier="gst_atomic_int_set"
- doc="Unconditionally sets the atomic integer to @value."
- deprecated="Use g_atomic_int_set().">
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <parameter name="atomic_int" direction="out" transfer-ownership="full">
- <type name="int" c:type="gint*"/>
- </parameter>
- <parameter name="value" transfer-ownership="none">
- <type name="int" c:type="gint"/>
- </parameter>
- </parameters>
- </function>
- <function name="buffer_try_new_and_alloc"
- c:identifier="gst_buffer_try_new_and_alloc"
- doc="Tries to create a newly allocated buffer with data of the given size. If
-the requested amount of memory can't be allocated, NULL will be returned.
-The buffer memory is not cleared.
-Note that when @size == 0, the buffer data pointer will be NULL.
-MT safe."
- version="0.10.13">
- <return-value transfer-ownership="full">
- <type name="Buffer" c:type="GstBuffer*"/>
- </return-value>
- <parameters>
- <parameter name="size" transfer-ownership="none">
- <type name="uint" c:type="guint"/>
- </parameter>
- </parameters>
- </function>
- <function name="caps_from_string"
- c:identifier="gst_caps_from_string"
- doc="Converts @caps from a string representation.">
- <return-value transfer-ownership="full">
- <type name="Caps" c:type="GstCaps*"/>
- </return-value>
- <parameters>
- <parameter name="string" transfer-ownership="none">
- <type name="utf8" c:type="gchar*"/>
- </parameter>
- </parameters>
- </function>
- <function name="caps_load_thyself"
- c:identifier="gst_caps_load_thyself"
- doc="Creates a #GstCaps from its XML serialization.">
- <return-value transfer-ownership="full">
- <type name="Caps" c:type="GstCaps*"/>
- </return-value>
- <parameters>
- <parameter name="parent" transfer-ownership="none">
- <type name="libxml2.NodePtr" c:type="xmlNodePtr"/>
- </parameter>
- </parameters>
- </function>
- <function name="child_proxy_child_added"
- c:identifier="gst_child_proxy_child_added"
- doc="Emits the "child-added" signal.">
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <parameter name="object" transfer-ownership="none">
- <type name="Object" c:type="GstObject*"/>
- </parameter>
- <parameter name="child" transfer-ownership="none">
- <type name="Object" c:type="GstObject*"/>
- </parameter>
- </parameters>
- </function>
- <function name="child_proxy_child_removed"
- c:identifier="gst_child_proxy_child_removed"
- doc="Emits the "child-removed" signal.">
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <parameter name="object" transfer-ownership="none">
- <type name="Object" c:type="GstObject*"/>
- </parameter>
- <parameter name="child" transfer-ownership="none">
- <type name="Object" c:type="GstObject*"/>
- </parameter>
- </parameters>
- </function>
- <function name="child_proxy_get"
- c:identifier="gst_child_proxy_get"
- doc="Gets properties of the parent object and its children.">
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <parameter name="object" transfer-ownership="none">
- <type name="Object" c:type="GstObject*"/>
- </parameter>
- <parameter name="first_property_name" transfer-ownership="none">
- <type name="utf8" c:type="gchar*"/>
- </parameter>
- <parameter transfer-ownership="none">
- <varargs>
- </varargs>
- </parameter>
- </parameters>
- </function>
- <function name="child_proxy_get_property"
- c:identifier="gst_child_proxy_get_property"
- doc="Gets a single property using the GstChildProxy mechanism.
-You are responsible for for freeing it by calling g_value_unset()">
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <parameter name="object" transfer-ownership="none">
- <type name="Object" c:type="GstObject*"/>
- </parameter>
- <parameter name="name" transfer-ownership="none">
- <type name="utf8" c:type="gchar*"/>
- </parameter>
- <parameter name="value" transfer-ownership="none">
- <type name="GObject.Value" c:type="GValue*"/>
- </parameter>
- </parameters>
- </function>
- <function name="child_proxy_lookup"
- c:identifier="gst_child_proxy_lookup"
- doc="Looks up which object and #GParamSpec would be effected by the given @name.
-case the values for @pspec and @target are not modified. Unref @target after
-usage.
-MT safe.">
- <return-value transfer-ownership="none">
- <type name="boolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <parameter name="object" transfer-ownership="none">
- <type name="Object" c:type="GstObject*"/>
- </parameter>
- <parameter name="name" transfer-ownership="none">
- <type name="utf8" c:type="gchar*"/>
- </parameter>
- <parameter name="target" transfer-ownership="none">
- <type name="Object" c:type="GstObject**"/>
- </parameter>
- <parameter name="pspec" transfer-ownership="none">
- <type name="GObject.ParamSpec" c:type="GParamSpec**"/>
- </parameter>
- </parameters>
- </function>
- <function name="child_proxy_set"
- c:identifier="gst_child_proxy_set"
- doc="Sets properties of the parent object and its children.">
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <parameter name="object" transfer-ownership="none">
- <type name="Object" c:type="GstObject*"/>
- </parameter>
- <parameter name="first_property_name" transfer-ownership="none">
- <type name="utf8" c:type="gchar*"/>
- </parameter>
- <parameter transfer-ownership="none">
- <varargs>
- </varargs>
- </parameter>
- </parameters>
- </function>
- <function name="child_proxy_set_property"
- c:identifier="gst_child_proxy_set_property"
- doc="Sets a single property using the GstChildProxy mechanism.">
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <parameter name="object" transfer-ownership="none">
- <type name="Object" c:type="GstObject*"/>
- </parameter>
- <parameter name="name" transfer-ownership="none">
- <type name="utf8" c:type="gchar*"/>
- </parameter>
- <parameter name="value" transfer-ownership="none">
- <type name="GObject.Value" c:type="GValue*"/>
- </parameter>
- </parameters>
- </function>
- <function name="class_signal_connect"
- c:identifier="gst_class_signal_connect">
- <return-value transfer-ownership="none">
- <type name="uint" c:type="guint"/>
- </return-value>
- <parameters>
- <parameter name="klass" transfer-ownership="none">
- <type name="ObjectClass" c:type="GstObjectClass*"/>
- </parameter>
- <parameter name="name" transfer-ownership="none">
- <type name="utf8" c:type="gchar*"/>
- </parameter>
- <parameter name="func" transfer-ownership="none">
- <type name="any" c:type="gpointer"/>
- </parameter>
- <parameter name="func_data" transfer-ownership="none">
- <type name="any" c:type="gpointer"/>
- </parameter>
- </parameters>
- </function>
- <function name="class_signal_emit_by_name"
- c:identifier="gst_class_signal_emit_by_name"
- doc="emits the named class signal.">
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <parameter name="object" transfer-ownership="none">
- <type name="Object" c:type="GstObject*"/>
- </parameter>
- <parameter name="name" transfer-ownership="none">
- <type name="utf8" c:type="gchar*"/>
- </parameter>
- <parameter name="self" transfer-ownership="none">
- <type name="libxml2.NodePtr" c:type="xmlNodePtr"/>
- </parameter>
- </parameters>
- </function>
- <function name="debug_add_log_function"
- c:identifier="gst_debug_add_log_function"
- doc="Adds the logging function to the list of logging functions.
-Be sure to use G_GNUC_NO_INSTRUMENT on that function, it is needed.">
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <parameter name="func"
- transfer-ownership="none"
- scope="call"
- closure="1">
- <type name="LogFunction" c:type="GstLogFunction"/>
- </parameter>
- <parameter name="data" transfer-ownership="none">
- <type name="any" c:type="gpointer"/>
- </parameter>
- </parameters>
- </function>
- <function name="debug_construct_term_color"
- c:identifier="gst_debug_construct_term_color"
- doc="Constructs a string that can be used for getting the desired color in color
-terminals.
-You need to free the string after use.">
- <return-value transfer-ownership="full">
- <type name="utf8" c:type="gchar*"/>
- </return-value>
- <parameters>
- <parameter name="colorinfo" transfer-ownership="none">
- <type name="uint" c:type="guint"/>
- </parameter>
- </parameters>
- </function>
- <function name="debug_construct_win_color"
- c:identifier="gst_debug_construct_win_color"
- doc="Constructs an integer that can be used for getting the desired color in
-windows' terminals (cmd.exe). As there is no mean to underline, we simply
-ignore this attribute.
-This function returns 0 on non-windows machines."
- version="0.10.23">
- <return-value transfer-ownership="none">
- <type name="int" c:type="gint"/>
- </return-value>
- <parameters>
- <parameter name="colorinfo" transfer-ownership="none">
- <type name="uint" c:type="guint"/>
- </parameter>
- </parameters>
- </function>
- <function name="debug_get_all_categories"
- c:identifier="gst_debug_get_all_categories"
- doc="Returns a snapshot of a all categories that are currently in use . This list
-may change anytime.
-The caller has to free the list after use.">
- <return-value transfer-ownership="full">
- <type name="GLib.SList" c:type="GSList*"/>
- </return-value>
- </function>
- <function name="debug_get_default_threshold"
- c:identifier="gst_debug_get_default_threshold"
- doc="Returns the default threshold that is used for new categories.">
- <return-value transfer-ownership="full">
- <type name="DebugLevel" c:type="GstDebugLevel"/>
- </return-value>
- </function>
- <function name="debug_is_active"
- c:identifier="gst_debug_is_active"
- doc="Checks if debugging output is activated.">
- <return-value transfer-ownership="none">
- <type name="boolean" c:type="gboolean"/>
- </return-value>
- </function>
- <function name="debug_is_colored"
- c:identifier="gst_debug_is_colored"
- doc="Checks if the debugging output should be colored.">
- <return-value transfer-ownership="none">
- <type name="boolean" c:type="gboolean"/>
- </return-value>
- </function>
- <function name="debug_level_get_name"
- c:identifier="gst_debug_level_get_name"
- doc="Get the string representation of a debugging level">
- <return-value transfer-ownership="none">
- <type name="utf8" c:type="gchar*"/>
- </return-value>
- <parameters>
- <parameter name="level" transfer-ownership="none">
- <type name="DebugLevel" c:type="GstDebugLevel"/>
- </parameter>
- </parameters>
- </function>
- <function name="debug_log"
- c:identifier="gst_debug_log"
- doc="Logs the given message using the currently registered debugging handlers.">
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <parameter name="category" transfer-ownership="none">
- <type name="DebugCategory" c:type="GstDebugCategory*"/>
- </parameter>
- <parameter name="level" transfer-ownership="none">
- <type name="DebugLevel" c:type="GstDebugLevel"/>
- </parameter>
- <parameter name="file" transfer-ownership="none">
- <type name="utf8" c:type="gchar*"/>
- </parameter>
- <parameter name="function" transfer-ownership="none">
- <type name="utf8" c:type="gchar*"/>
- </parameter>
- <parameter name="line" transfer-ownership="none">
- <type name="int" c:type="gint"/>
- </parameter>
- <parameter name="object" transfer-ownership="none">
- <type name="GObject.Object" c:type="GObject*"/>
- </parameter>
- <parameter name="format" transfer-ownership="none">
- <type name="utf8" c:type="gchar*"/>
- </parameter>
- <parameter transfer-ownership="none">
- <varargs>
- </varargs>
- </parameter>
- </parameters>
- </function>
- <function name="debug_log_default"
- c:identifier="gst_debug_log_default"
- doc="The default logging handler used by GStreamer. Logging functions get called
-whenever a macro like GST_DEBUG or similar is used. This function outputs the
-message and additional info using the glib error handler.
-You can add other handlers by using gst_debug_add_log_function().
-And you can remove this handler by calling
-gst_debug_remove_log_function(gst_debug_log_default);">
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <parameter name="category" transfer-ownership="none">
- <type name="DebugCategory" c:type="GstDebugCategory*"/>
- </parameter>
- <parameter name="level" transfer-ownership="none">
- <type name="DebugLevel" c:type="GstDebugLevel"/>
- </parameter>
- <parameter name="file" transfer-ownership="none">
- <type name="utf8" c:type="gchar*"/>
- </parameter>
- <parameter name="function" transfer-ownership="none">
- <type name="utf8" c:type="gchar*"/>
- </parameter>
- <parameter name="line" transfer-ownership="none">
- <type name="int" c:type="gint"/>
- </parameter>
- <parameter name="object" transfer-ownership="none">
- <type name="GObject.Object" c:type="GObject*"/>
- </parameter>
- <parameter name="message" transfer-ownership="none">
- <type name="DebugMessage" c:type="GstDebugMessage*"/>
- </parameter>
- <parameter name="unused" transfer-ownership="none">
- <type name="any" c:type="gpointer"/>
- </parameter>
- </parameters>
- </function>
- <function name="debug_print_stack_trace"
- c:identifier="gst_debug_print_stack_trace"
- doc="If GST_ENABLE_FUNC_INSTRUMENTATION is defined a stacktrace is available for
-gstreamer code, which can be printed with this function.">
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- </function>
- <function name="debug_remove_log_function"
- c:identifier="gst_debug_remove_log_function"
- doc="Removes all registered instances of the given logging functions.">
- <return-value transfer-ownership="none">
- <type name="uint" c:type="guint"/>
- </return-value>
- <parameters>
- <parameter name="func" transfer-ownership="none" scope="call">
- <type name="LogFunction" c:type="GstLogFunction"/>
- </parameter>
- </parameters>
- </function>
- <function name="debug_remove_log_function_by_data"
- c:identifier="gst_debug_remove_log_function_by_data"
- doc="Removes all registered instances of log functions with the given user data.">
- <return-value transfer-ownership="none">
- <type name="uint" c:type="guint"/>
- </return-value>
- <parameters>
- <parameter name="data" transfer-ownership="none">
- <type name="any" c:type="gpointer"/>
- </parameter>
- </parameters>
- </function>
- <function name="debug_set_active"
- c:identifier="gst_debug_set_active"
- doc="If activated, debugging messages are sent to the debugging
-handlers.
-It makes sense to deactivate it for speed issues.
-<note><para>This function is not threadsafe. It makes sense to only call it
-during initialization.</para></note>">
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <parameter name="active" transfer-ownership="none">
- <type name="boolean" c:type="gboolean"/>
- </parameter>
- </parameters>
- </function>
- <function name="debug_set_colored"
- c:identifier="gst_debug_set_colored"
- doc="Sets or unsets the use of coloured debugging output.">
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <parameter name="colored" transfer-ownership="none">
- <type name="boolean" c:type="gboolean"/>
- </parameter>
- </parameters>
- </function>
- <function name="debug_set_default_threshold"
- c:identifier="gst_debug_set_default_threshold"
- doc="Sets the default threshold to the given level and updates all categories to
-use this threshold.">
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <parameter name="level" transfer-ownership="none">
- <type name="DebugLevel" c:type="GstDebugLevel"/>
- </parameter>
- </parameters>
- </function>
- <function name="debug_set_threshold_for_name"
- c:identifier="gst_debug_set_threshold_for_name"
- doc="Sets all categories which match the given glob style pattern to the given
-level.">
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <parameter name="name" transfer-ownership="none">
- <type name="utf8" c:type="gchar*"/>
- </parameter>
- <parameter name="level" transfer-ownership="none">
- <type name="DebugLevel" c:type="GstDebugLevel"/>
- </parameter>
- </parameters>
- </function>
- <function name="debug_unset_threshold_for_name"
- c:identifier="gst_debug_unset_threshold_for_name"
- doc="Resets all categories with the given name back to the default level.">
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <parameter name="name" transfer-ownership="none">
- <type name="utf8" c:type="gchar*"/>
- </parameter>
- </parameters>
- </function>
- <function name="default_registry_check_feature_version"
- c:identifier="gst_default_registry_check_feature_version"
- doc="Checks whether a plugin feature by the given name exists in the
-default registry and whether its version is at least the
-version required.
-the same as the required version or newer, and #FALSE otherwise.">
- <return-value transfer-ownership="none">
- <type name="boolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <parameter name="feature_name" transfer-ownership="none">
- <type name="utf8" c:type="gchar*"/>
- </parameter>
- <parameter name="min_major" transfer-ownership="none">
- <type name="uint" c:type="guint"/>
- </parameter>
- <parameter name="min_minor" transfer-ownership="none">
- <type name="uint" c:type="guint"/>
- </parameter>
- <parameter name="min_micro" transfer-ownership="none">
- <type name="uint" c:type="guint"/>
- </parameter>
- </parameters>
- </function>
- <function name="deinit"
- c:identifier="gst_deinit"
- doc="Clean up any resources created by GStreamer in gst_init().
-It is normally not needed to call this function in a normal application
-as the resources will automatically be freed when the program terminates.
-This function is therefore mostly used by testsuites and other memory
-profiling tools.
-After this call GStreamer (including this method) should not be used anymore.">
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- </function>
- <function name="error_get_message"
- c:identifier="gst_error_get_message"
- doc="Get a string describing the error message in the current locale.
-current locale.">
- <return-value transfer-ownership="full">
- <type name="utf8" c:type="gchar*"/>
- </return-value>
- <parameters>
- <parameter name="domain" transfer-ownership="none">
- <type name="GLib.Quark" c:type="GQuark"/>
- </parameter>
- <parameter name="code" transfer-ownership="none">
- <type name="int" c:type="gint"/>
- </parameter>
- </parameters>
- </function>
- <function name="event_type_get_flags"
- c:identifier="gst_event_type_get_flags"
- doc="Gets the #GstEventTypeFlags associated with @type.">
- <return-value transfer-ownership="full">
- <type name="EventTypeFlags" c:type="GstEventTypeFlags"/>
- </return-value>
- <parameters>
- <parameter name="type" transfer-ownership="none">
- <type name="EventType" c:type="GstEventType"/>
- </parameter>
- </parameters>
- </function>
- <function name="event_type_get_name"
- c:identifier="gst_event_type_get_name"
- doc="Get a printable name for the given event type. Do not modify or free.">
- <return-value transfer-ownership="none">
- <type name="utf8" c:type="gchar*"/>
- </return-value>
- <parameters>
- <parameter name="type" transfer-ownership="none">
- <type name="EventType" c:type="GstEventType"/>
- </parameter>
- </parameters>
- </function>
- <function name="event_type_to_quark"
- c:identifier="gst_event_type_to_quark"
- doc="Get the unique quark for the given event type.">
- <return-value transfer-ownership="full">
- <type name="GLib.Quark" c:type="GQuark"/>
- </return-value>
- <parameters>
- <parameter name="type" transfer-ownership="none">
- <type name="EventType" c:type="GstEventType"/>
- </parameter>
- </parameters>
- </function>
- <function name="filter_run"
- c:identifier="gst_filter_run"
- doc="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
-results.
-(the data contained in the list is a flat copy and does need to be
-unreferenced or freed).">
- <return-value transfer-ownership="full" doc="when no longer needed">
- <type name="GLib.List" c:type="GList*"/>
- </return-value>
- <parameters>
- <parameter name="list" transfer-ownership="none">
- <type name="GLib.List" c:type="GList*"/>
- </parameter>
- <parameter name="func" transfer-ownership="none" scope="call">
- <type name="FilterFunc" c:type="GstFilterFunc"/>
- </parameter>
- <parameter name="first" transfer-ownership="none">
- <type name="boolean" c:type="gboolean"/>
- </parameter>
- <parameter name="user_data" transfer-ownership="none">
- <type name="any" c:type="gpointer"/>
- </parameter>
- </parameters>
- </function>
- <function name="flow_get_name"
- c:identifier="gst_flow_get_name"
- doc="Gets a string representing the given flow return.">
- <return-value transfer-ownership="none">
- <type name="utf8" c:type="gchar*"/>
- </return-value>
- <parameters>
- <parameter name="ret" transfer-ownership="none">
- <type name="FlowReturn" c:type="GstFlowReturn"/>
- </parameter>
- </parameters>
- </function>
- <function name="flow_to_quark"
- c:identifier="gst_flow_to_quark"
- doc="Get the unique quark for the given GstFlowReturn.
-invalid return was specified.">
- <return-value transfer-ownership="full">
- <type name="GLib.Quark" c:type="GQuark"/>
- </return-value>
- <parameters>
- <parameter name="ret" transfer-ownership="none">
- <type name="FlowReturn" c:type="GstFlowReturn"/>
- </parameter>
- </parameters>
- </function>
- <function name="format_get_by_nick"
- c:identifier="gst_format_get_by_nick"
- doc="Return the format registered with the given nick.
-if the format was not registered.">
- <return-value transfer-ownership="full">
- <type name="Format" c:type="GstFormat"/>
- </return-value>
- <parameters>
- <parameter name="nick" transfer-ownership="none">
- <type name="utf8" c:type="gchar*"/>
- </parameter>
- </parameters>
- </function>
- <function name="format_get_details"
- c:identifier="gst_format_get_details"
- doc="Get details about the given format.
-MT safe.">
- <return-value transfer-ownership="none">
- <type name="FormatDefinition" c:type="GstFormatDefinition*"/>
- </return-value>
- <parameters>
- <parameter name="format" transfer-ownership="none">
- <type name="Format" c:type="GstFormat"/>
- </parameter>
- </parameters>
- </function>
- <function name="format_get_name"
- c:identifier="gst_format_get_name"
- doc="Get a printable name for the given format. Do not modify or free.
-the format is unknown.">
- <return-value transfer-ownership="none">
- <type name="utf8" c:type="gchar*"/>
- </return-value>
- <parameters>
- <parameter name="format" transfer-ownership="none">
- <type name="Format" c:type="GstFormat"/>
- </parameter>
- </parameters>
- </function>
- <function name="format_iterate_definitions"
- c:identifier="gst_format_iterate_definitions"
- doc="Iterate all the registered formats. The format definition is read
-only.">
- <return-value transfer-ownership="full">
- <type name="Iterator" c:type="GstIterator*"/>
- </return-value>
- </function>
- <function name="format_register"
- c:identifier="gst_format_register"
- doc="Create a new GstFormat based on the nick or return an
-already registered format with that nick.
-with the same nick.
-MT safe.">
- <return-value transfer-ownership="full">
- <type name="Format" c:type="GstFormat"/>
- </return-value>
- <parameters>
- <parameter name="nick" transfer-ownership="none">
- <type name="utf8" c:type="gchar*"/>
- </parameter>
- <parameter name="description" transfer-ownership="none">
- <type name="utf8" c:type="gchar*"/>
- </parameter>
- </parameters>
- </function>
- <function name="format_to_quark"
- c:identifier="gst_format_to_quark"
- doc="Get the unique quark for the given format.
-is unknown.">
- <return-value transfer-ownership="full">
- <type name="GLib.Quark" c:type="GQuark"/>
- </return-value>
- <parameters>
- <parameter name="format" transfer-ownership="none">
- <type name="Format" c:type="GstFormat"/>
- </parameter>
- </parameters>
- </function>
- <function name="formats_contains"
- c:identifier="gst_formats_contains"
- doc="See if the given format is inside the format array.">
- <return-value transfer-ownership="none">
- <type name="boolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <parameter name="formats" transfer-ownership="none">
- <type name="Format" c:type="GstFormat*"/>
- </parameter>
- <parameter name="format" transfer-ownership="none">
- <type name="Format" c:type="GstFormat"/>
- </parameter>
- </parameters>
- </function>
- <function name="implements_interface_cast"
- c:identifier="gst_implements_interface_cast"
- doc="cast a given object to an interface type, and check whether this
-interface is supported for this specific instance.">
- <return-value transfer-ownership="none">
- <type name="any" c:type="gpointer"/>
- </return-value>
- <parameters>
- <parameter name="from"
- transfer-ownership="none"
- doc="from which to cast to the interface">
- <type name="any" c:type="gpointer"/>
- </parameter>
- <parameter name="type" transfer-ownership="none">
- <type name="GType" c:type="GType"/>
- </parameter>
- </parameters>
- </function>
- <function name="implements_interface_check"
- c:identifier="gst_implements_interface_check"
- doc="check a given object for an interface implementation, and check
-whether this interface is supported for this specific instance.">
- <return-value transfer-ownership="none">
- <type name="boolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <parameter name="from"
- transfer-ownership="none"
- doc="from which to check from for the interface">
- <type name="any" c:type="gpointer"/>
- </parameter>
- <parameter name="type" transfer-ownership="none">
- <type name="GType" c:type="GType"/>
- </parameter>
- </parameters>
- </function>
- <function name="init"
- c:identifier="gst_init"
- doc="Initializes the GStreamer library, setting up internal path lists,
-registering built-in elements, and loading standard plugins.
-Unless the plugin registry is disabled at compile time, the registry will be
-loaded. By default this will also check if the registry cache needs to be
-updated and rescan all plugins if needed. See gst_update_registry() for
-details and section
-<link linkend="gst-running">Running GStreamer Applications</link>
-for how to disable automatic registry updates.
-This function should be called before calling any other GLib functions. If
-this is not an option, your program must initialise the GLib thread system
-using g_thread_init() before any other GLib functions are called.
-<note><para>
-This function will terminate your program if it was unable to initialize
-GStreamer for some reason. If you want your program to fall back,
-use gst_init_check() instead.
-</para></note>
-functions in other glib-style libraries, such as gtk_init(). In
-particular, unknown command line options cause this function to
-abort program execution.">
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <parameter name="argc"
- direction="inout"
- transfer-ownership="full"
- doc="pointer to application's argc">
- <type name="int" c:type="int*"/>
- </parameter>
- <parameter name="argv"
- direction="inout"
- transfer-ownership="full"
- allow-none="1"
- doc="pointer to application's argv">
- <array length="0" c:type="char**">
- <type name="utf8"/>
- </array>
- </parameter>
- </parameters>
- </function>
- <function name="init_check"
- c:identifier="gst_init_check"
- doc="Initializes the GStreamer library, setting up internal path lists,
-registering built-in elements, and loading standard plugins.
-This function will return %FALSE if GStreamer could not be initialized
-for some reason. If you want your program to fail fatally,
-use gst_init() instead.
-This function should be called before calling any other GLib functions. If
-this is not an option, your program must initialise the GLib thread system
-using g_thread_init() before any other GLib functions are called."
- throws="1">
- <return-value transfer-ownership="none">
- <type name="boolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <parameter name="argc"
- direction="inout"
- transfer-ownership="full"
- doc="pointer to application's argc">
- <type name="int" c:type="int*"/>
- </parameter>
- <parameter name="argv"
- direction="inout"
- transfer-ownership="full"
- allow-none="1"
- doc="pointer to application's argv">
- <array length="0" c:type="char**">
- <type name="utf8"/>
- </array>
- </parameter>
- </parameters>
- </function>
- <function name="init_get_option_group"
- c:identifier="gst_init_get_option_group"
- doc="Returns a #GOptionGroup with GStreamer's argument specifications. The
-group is set up to use standard GOption callbacks, so when using this
-group in combination with GOption parsing methods, all argument parsing
-and initialization is automated.
-This function is useful if you want to integrate GStreamer with other
-libraries that use GOption (see g_option_context_add_group() ).
-If you use this function, you should make sure you initialise the GLib
-threading system as one of the very first things in your program
-(see the example at the beginning of this section).">
- <return-value transfer-ownership="full">
- <type name="GLib.OptionGroup" c:type="GOptionGroup*"/>
- </return-value>
- </function>
- <function name="is_tag_list"
- c:identifier="gst_is_tag_list"
- doc="Checks if the given pointer is a taglist.">
- <return-value transfer-ownership="none">
- <type name="boolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <parameter name="p" transfer-ownership="none">
- <type name="any" c:type="gconstpointer"/>
- </parameter>
- </parameters>
- </function>
- <function name="message_type_get_name"
- c:identifier="gst_message_type_get_name"
- doc="Get a printable name for the given message type. Do not modify or free.">
- <return-value transfer-ownership="none">
- <type name="utf8" c:type="gchar*"/>
- </return-value>
- <parameters>
- <parameter name="type" transfer-ownership="none">
- <type name="MessageType" c:type="GstMessageType"/>
- </parameter>
- </parameters>
- </function>
- <function name="message_type_to_quark"
- c:identifier="gst_message_type_to_quark"
- doc="Get the unique quark for the given message type.">
- <return-value transfer-ownership="full">
- <type name="GLib.Quark" c:type="GQuark"/>
- </return-value>
- <parameters>
- <parameter name="type" transfer-ownership="none">
- <type name="MessageType" c:type="GstMessageType"/>
- </parameter>
- </parameters>
- </function>
- <function name="param_spec_fraction"
- c:identifier="gst_param_spec_fraction"
- doc="This function creates a fraction GParamSpec for use by objects/elements
-that want to expose properties of fraction type. This function is typically
-used in connection with g_object_class_install_property() in a GObjects's
-instance_init function."
- version="0.10.14">
- <return-value transfer-ownership="full">
- <type name="GObject.ParamSpec" c:type="GParamSpec*"/>
- </return-value>
- <parameters>
- <parameter name="name" transfer-ownership="none">
- <type name="utf8" c:type="gchar*"/>
- </parameter>
- <parameter name="nick" transfer-ownership="none">
- <type name="utf8" c:type="gchar*"/>
- </parameter>
- <parameter name="blurb" transfer-ownership="none">
- <type name="utf8" c:type="gchar*"/>
- </parameter>
- <parameter name="min_num" transfer-ownership="none">
- <type name="int" c:type="gint"/>
- </parameter>
- <parameter name="min_denom" transfer-ownership="none">
- <type name="int" c:type="gint"/>
- </parameter>
- <parameter name="max_num" transfer-ownership="none">
- <type name="int" c:type="gint"/>
- </parameter>
- <parameter name="max_denom" transfer-ownership="none">
- <type name="int" c:type="gint"/>
- </parameter>
- <parameter name="default_num" transfer-ownership="none">
- <type name="int" c:type="gint"/>
- </parameter>
- <parameter name="default_denom" transfer-ownership="none">
- <type name="int" c:type="gint"/>
- </parameter>
- <parameter name="flags" transfer-ownership="none">
- <type name="GObject.ParamFlags" c:type="GParamFlags"/>
- </parameter>
- </parameters>
- </function>
- <function name="param_spec_mini_object"
- c:identifier="gst_param_spec_mini_object"
- doc="Creates a new #GParamSpec instance that hold #GstMiniObject references.">
- <return-value transfer-ownership="full">
- <type name="GObject.ParamSpec" c:type="GParamSpec*"/>
- </return-value>
- <parameters>
- <parameter name="name" transfer-ownership="none">
- <type name="utf8" c:type="char*"/>
- </parameter>
- <parameter name="nick" transfer-ownership="none">
- <type name="utf8" c:type="char*"/>
- </parameter>
- <parameter name="blurb" transfer-ownership="none">
- <type name="utf8" c:type="char*"/>
- </parameter>
- <parameter name="object_type" transfer-ownership="none">
- <type name="GType" c:type="GType"/>
- </parameter>
- <parameter name="flags" transfer-ownership="none">
- <type name="GObject.ParamFlags" c:type="GParamFlags"/>
- </parameter>
- </parameters>
- </function>
- <function name="parse_bin_from_description"
- c:identifier="gst_parse_bin_from_description"
- doc="for unlinked source or sink pads within the bin
-This is a convenience wrapper around gst_parse_launch() to create a
-#GstBin from a gst-launch-style pipeline description. See
-gst_parse_launch() and the gst-launch man page for details about the
-syntax. Ghost pads on the bin for unlinked source or sink pads
-within the bin can automatically be created (but only a maximum of
-one ghost pad for each direction will be created; if you expect
-multiple unlinked source pads or multiple unlinked sink pads
-and want them all ghosted, you will have to create the ghost pads
-yourself)."
- version="0.10.3"
- throws="1">
- <return-value transfer-ownership="full">
- <type name="Element" c:type="GstElement*"/>
- </return-value>
- <parameters>
- <parameter name="bin_description" transfer-ownership="none">
- <type name="utf8" c:type="gchar*"/>
- </parameter>
- <parameter name="ghost_unlinked_pads" transfer-ownership="none">
- <type name="boolean" c:type="gboolean"/>
- </parameter>
- </parameters>
- </function>
- <function name="parse_bin_from_description_full"
- c:identifier="gst_parse_bin_from_description_full"
- doc="for unlinked source or sink pads within the bin
-This is a convenience wrapper around gst_parse_launch() to create a
-#GstBin from a gst-launch-style pipeline description. See
-gst_parse_launch() and the gst-launch man page for details about the
-syntax. Ghost pads on the bin for unlinked source or sink pads
-within the bin can automatically be created (but only a maximum of
-one ghost pad for each direction will be created; if you expect
-multiple unlinked source pads or multiple unlinked sink pads
-and want them all ghosted, you will have to create the ghost pads
-yourself)."
- version="0.10.20"
- throws="1">
- <return-value transfer-ownership="full">
- <type name="Element" c:type="GstElement*"/>
- </return-value>
- <parameters>
- <parameter name="bin_description" transfer-ownership="none">
- <type name="utf8" c:type="gchar*"/>
- </parameter>
- <parameter name="ghost_unlinked_pads" transfer-ownership="none">
- <type name="boolean" c:type="gboolean"/>
- </parameter>
- <parameter name="context" transfer-ownership="none" doc="or %NULL">
- <type name="ParseContext" c:type="GstParseContext*"/>
- </parameter>
- <parameter name="flags" transfer-ownership="none">
- <type name="ParseFlags" c:type="GstParseFlags"/>
- </parameter>
- </parameters>
- </function>
- <function name="parse_launch"
- c:identifier="gst_parse_launch"
- doc="Create a new pipeline based on command line syntax.
-Please note that you might get a return value that is not %NULL even though
-the @error is set. In this case there was a recoverable parsing error and you
-can try to play the pipeline.
-element is specified by the @pipeline_description, all elements are put into
-a #GstPipeline, which than is returned."
- throws="1">
- <return-value transfer-ownership="full">
- <type name="Element" c:type="GstElement*"/>
- </return-value>
- <parameters>
- <parameter name="pipeline_description" transfer-ownership="none">
- <type name="utf8" c:type="gchar*"/>
- </parameter>
- </parameters>
- </function>
- <function name="parse_launch_full"
- c:identifier="gst_parse_launch_full"
- doc="Create a new pipeline based on command line syntax.
-Please note that you might get a return value that is not %NULL even though
-the @error is set. In this case there was a recoverable parsing error and you
-can try to play the pipeline.
-element is specified by the @pipeline_description, all elements are put into
-a #GstPipeline, which then is returned."
- version="0.10.20"
- throws="1">
- <return-value transfer-ownership="full">
- <type name="Element" c:type="GstElement*"/>
- </return-value>
- <parameters>
- <parameter name="pipeline_description" transfer-ownership="none">
- <type name="utf8" c:type="gchar*"/>
- </parameter>
- <parameter name="context" transfer-ownership="none" doc="or %NULL">
- <type name="ParseContext" c:type="GstParseContext*"/>
- </parameter>
- <parameter name="flags" transfer-ownership="none">
- <type name="ParseFlags" c:type="GstParseFlags"/>
- </parameter>
- </parameters>
- </function>
- <function name="parse_launchv"
- c:identifier="gst_parse_launchv"
- doc="Create a new element based on command line syntax.
-An error does not mean that the pipeline could not be constructed."
- throws="1">
- <return-value transfer-ownership="full">
- <type name="Element" c:type="GstElement*"/>
- </return-value>
- <parameters>
- <parameter name="argv" transfer-ownership="none">
- <array c:type="gchar**">
- <type name="utf8"/>
- </array>
- </parameter>
- </parameters>
- </function>
- <function name="parse_launchv_full"
- c:identifier="gst_parse_launchv_full"
- doc="Create a new element based on command line syntax.
-An error does not mean that the pipeline could not be constructed.
-partially-constructed bin or element will be returned and @error will be set
-(unless you passed #GST_PARSE_FLAG_FATAL_ERRORS in @flags, then %NULL will
-always be returned on failure)"
- version="0.10.20"
- throws="1">
- <return-value transfer-ownership="full">
- <type name="Element" c:type="GstElement*"/>
- </return-value>
- <parameters>
- <parameter name="argv" transfer-ownership="none">
- <array c:type="gchar**">
- <type name="utf8"/>
- </array>
- </parameter>
- <parameter name="context" transfer-ownership="none" doc="or %NULL">
- <type name="ParseContext" c:type="GstParseContext*"/>
- </parameter>
- <parameter name="flags" transfer-ownership="none">
- <type name="ParseFlags" c:type="GstParseFlags"/>
- </parameter>
- </parameters>
- </function>
- <function name="print_element_args"
- c:identifier="gst_print_element_args"
- doc="Print the element argument in a human readable format in the given
-GString.">
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <parameter name="buf" transfer-ownership="none">
- <type name="GLib.String" c:type="GString*"/>
- </parameter>
- <parameter name="indent" transfer-ownership="none">
- <type name="int" c:type="gint"/>
- </parameter>
- <parameter name="element" transfer-ownership="none">
- <type name="Element" c:type="GstElement*"/>
- </parameter>
- </parameters>
- </function>
- <function name="print_pad_caps"
- c:identifier="gst_print_pad_caps"
- doc="Write the pad capabilities in a human readable format into
-the given GString.">
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <parameter name="buf" transfer-ownership="none">
- <type name="GLib.String" c:type="GString*"/>
- </parameter>
- <parameter name="indent" transfer-ownership="none">
- <type name="int" c:type="gint"/>
- </parameter>
- <parameter name="pad" transfer-ownership="none">
- <type name="Pad" c:type="GstPad*"/>
- </parameter>
- </parameters>
- </function>
- <function name="query_type_get_by_nick"
- c:identifier="gst_query_type_get_by_nick"
- doc="Get the query type registered with @nick.
-if the query was not registered.">
- <return-value transfer-ownership="full">
- <type name="QueryType" c:type="GstQueryType"/>
- </return-value>
- <parameters>
- <parameter name="nick" transfer-ownership="none">
- <type name="utf8" c:type="gchar*"/>
- </parameter>
- </parameters>
- </function>
- <function name="query_type_get_details"
- c:identifier="gst_query_type_get_details"
- doc="Get details about the given #GstQueryType.">
- <return-value transfer-ownership="none">
- <type name="QueryTypeDefinition" c:type="GstQueryTypeDefinition*"/>
- </return-value>
- <parameters>
- <parameter name="type" transfer-ownership="none">
- <type name="QueryType" c:type="GstQueryType"/>
- </parameter>
- </parameters>
- </function>
- <function name="query_type_get_name"
- c:identifier="gst_query_type_get_name"
- doc="Get a printable name for the given query type. Do not modify or free.">
- <return-value transfer-ownership="none">
- <type name="utf8" c:type="gchar*"/>
- </return-value>
- <parameters>
- <parameter name="query" transfer-ownership="none">
- <type name="QueryType" c:type="GstQueryType"/>
- </parameter>
- </parameters>
- </function>
- <function name="query_type_iterate_definitions"
- c:identifier="gst_query_type_iterate_definitions"
- doc="Get a #GstIterator of all the registered query types. The definitions
-iterated over are read only.">
- <return-value transfer-ownership="full">
- <type name="Iterator" c:type="GstIterator*"/>
- </return-value>
- </function>
- <function name="query_type_register"
- c:identifier="gst_query_type_register"
- doc="Create a new GstQueryType based on the nick or return an
-already registered query with that nick
-with the same nick.">
- <return-value transfer-ownership="full">
- <type name="QueryType" c:type="GstQueryType"/>
- </return-value>
- <parameters>
- <parameter name="nick" transfer-ownership="none">
- <type name="utf8" c:type="gchar*"/>
- </parameter>
- <parameter name="description" transfer-ownership="none">
- <type name="utf8" c:type="gchar*"/>
- </parameter>
- </parameters>
- </function>
- <function name="query_type_to_quark"
- c:identifier="gst_query_type_to_quark"
- doc="Get the unique quark for the given query type.">
- <return-value transfer-ownership="full">
- <type name="GLib.Quark" c:type="GQuark"/>
- </return-value>
- <parameters>
- <parameter name="query" transfer-ownership="none">
- <type name="QueryType" c:type="GstQueryType"/>
- </parameter>
- </parameters>
- </function>
- <function name="query_types_contains"
- c:identifier="gst_query_types_contains"
- doc="See if the given #GstQueryType is inside the @types query types array.">
- <return-value transfer-ownership="none">
- <type name="boolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <parameter name="types" transfer-ownership="none">
- <type name="QueryType" c:type="GstQueryType*"/>
- </parameter>
- <parameter name="type" transfer-ownership="none">
- <type name="QueryType" c:type="GstQueryType"/>
- </parameter>
- </parameters>
- </function>
- <function name="segtrap_is_enabled"
- c:identifier="gst_segtrap_is_enabled"
- doc="Some functions in the GStreamer core might install a custom SIGSEGV handler
-to better catch and report errors to the application. Currently this feature
-is enabled by default when loading plugins.
-Applications might want to disable this behaviour with the
-gst_segtrap_set_enabled() function. This is typically done if the application
-wants to install its own handler without GStreamer interfering."
- version="0.10.10">
- <return-value transfer-ownership="none">
- <type name="boolean" c:type="gboolean"/>
- </return-value>
- </function>
- <function name="segtrap_set_enabled"
- c:identifier="gst_segtrap_set_enabled"
- doc="Applications might want to disable/enable the SIGSEGV handling of
-the GStreamer core. See gst_segtrap_is_enabled() for more information."
- version="0.10.10">
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <parameter name="enabled" transfer-ownership="none">
- <type name="boolean" c:type="gboolean"/>
- </parameter>
- </parameters>
- </function>
- <function name="structure_empty_new"
- c:identifier="gst_structure_empty_new"
- doc="Creates a new, empty #GstStructure with the given @name.
-See gst_structure_set_name() for constraints on the @name parameter.">
- <return-value transfer-ownership="full">
- <type name="Structure" c:type="GstStructure*"/>
- </return-value>
- <parameters>
- <parameter name="name" transfer-ownership="none">
- <type name="utf8" c:type="gchar*"/>
- </parameter>
- </parameters>
- </function>
- <function name="structure_from_string"
- c:identifier="gst_structure_from_string"
- doc="Creates a #GstStructure from a string representation.
-If end is not NULL, a pointer to the place inside the given string
-where parsing ended will be returned.
-be parsed. Free with gst_structure_free() after use.">
- <return-value transfer-ownership="full">
- <type name="Structure" c:type="GstStructure*"/>
- </return-value>
- <parameters>
- <parameter name="string" transfer-ownership="none">
- <type name="utf8" c:type="gchar*"/>
- </parameter>
- <parameter name="end" transfer-ownership="none">
- <array c:type="gchar**">
- <type name="utf8"/>
- </array>
- </parameter>
- </parameters>
- </function>
- <function name="structure_id_empty_new"
- c:identifier="gst_structure_id_empty_new"
- doc="Creates a new, empty #GstStructure with the given name as a GQuark.">
- <return-value transfer-ownership="full">
- <type name="Structure" c:type="GstStructure*"/>
- </return-value>
- <parameters>
- <parameter name="quark" transfer-ownership="none">
- <type name="GLib.Quark" c:type="GQuark"/>
- </parameter>
- </parameters>
- </function>
- <function name="structure_id_new"
- c:identifier="gst_structure_id_new"
- doc="Creates a new #GstStructure with the given name as a GQuark, followed by
-fieldname quark, GType, argument(s) "triplets" in the same format as
-gst_structure_id_set(). Basically a convenience wrapper around
-gst_structure_id_empty_new() and gst_structure_id_set().
-The last variable argument must be NULL (or 0)."
- version="0.10.24">
- <return-value transfer-ownership="full">
- <type name="Structure" c:type="GstStructure*"/>
- </return-value>
- <parameters>
- <parameter name="name_quark" transfer-ownership="none">
- <type name="GLib.Quark" c:type="GQuark"/>
- </parameter>
- <parameter name="field_quark" transfer-ownership="none">
- <type name="GLib.Quark" c:type="GQuark"/>
- </parameter>
- <parameter transfer-ownership="none">
- <varargs>
- </varargs>
- </parameter>
- </parameters>
- </function>
- <function name="tag_exists"
- c:identifier="gst_tag_exists"
- doc="Checks if the given type is already registered.">
- <return-value transfer-ownership="none">
- <type name="boolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <parameter name="tag" transfer-ownership="none">
- <type name="utf8" c:type="gchar*"/>
- </parameter>
- </parameters>
- </function>
- <function name="tag_get_description"
- c:identifier="gst_tag_get_description"
- doc="Returns the human-readable description of this tag, You must not change or
-free this string.">
- <return-value transfer-ownership="none">
- <type name="utf8" c:type="gchar*"/>
- </return-value>
- <parameters>
- <parameter name="tag" transfer-ownership="none">
- <type name="utf8" c:type="gchar*"/>
- </parameter>
- </parameters>
- </function>
- <function name="tag_get_flag"
- c:identifier="gst_tag_get_flag"
- doc="Gets the flag of @tag.">
- <return-value transfer-ownership="full">
- <type name="TagFlag" c:type="GstTagFlag"/>
- </return-value>
- <parameters>
- <parameter name="tag" transfer-ownership="none">
- <type name="utf8" c:type="gchar*"/>
- </parameter>
- </parameters>
- </function>
- <function name="tag_get_nick" c:identifier="gst_tag_get_nick">
- <return-value transfer-ownership="none">
- <type name="utf8" c:type="gchar*"/>
- </return-value>
- <parameters>
- <parameter name="tag" transfer-ownership="none">
- <type name="utf8" c:type="gchar*"/>
- </parameter>
- </parameters>
- </function>
- <function name="tag_get_type"
- c:identifier="gst_tag_get_type"
- doc="Gets the #GType used for this tag.">
- <return-value transfer-ownership="none">
- <type name="GType" c:type="GType"/>
- </return-value>
- <parameters>
- <parameter name="tag" transfer-ownership="none">
- <type name="utf8" c:type="gchar*"/>
- </parameter>
- </parameters>
- </function>
- <function name="tag_is_fixed"
- c:identifier="gst_tag_is_fixed"
- doc="Checks if the given tag is fixed. A fixed tag can only contain one value.
-Unfixed tags can contain lists of values.">
- <return-value transfer-ownership="none">
- <type name="boolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <parameter name="tag" transfer-ownership="none">
- <type name="utf8" c:type="gchar*"/>
- </parameter>
- </parameters>
- </function>
- <function name="tag_list_copy_value"
- c:identifier="gst_tag_list_copy_value"
- doc="Copies the contents for the given tag into the value,
-merging multiple values into one if multiple values are associated
-with the tag.
-You must g_value_unset() the value after use.
-given list.">
- <return-value transfer-ownership="none">
- <type name="boolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <parameter name="dest" transfer-ownership="none">
- <type name="GObject.Value" c:type="GValue*"/>
- </parameter>
- <parameter name="list" transfer-ownership="none">
- <type name="TagList" c:type="GstTagList*"/>
- </parameter>
- <parameter name="tag" transfer-ownership="none">
- <type name="utf8" c:type="gchar*"/>
- </parameter>
- </parameters>
- </function>
- <function name="tag_merge_strings_with_comma"
- c:identifier="gst_tag_merge_strings_with_comma"
- doc="This is a convenience function for the func argument of gst_tag_register().
-It concatenates all given strings using a comma. The tag must be registered
-as a G_TYPE_STRING or this function will fail.">
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <parameter name="dest" transfer-ownership="none">
- <type name="GObject.Value" c:type="GValue*"/>
- </parameter>
- <parameter name="src" transfer-ownership="none">
- <type name="GObject.Value" c:type="GValue*"/>
- </parameter>
- </parameters>
- </function>
- <function name="tag_merge_use_first"
- c:identifier="gst_tag_merge_use_first"
- doc="This is a convenience function for the func argument of gst_tag_register().
-It creates a copy of the first value from the list.">
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <parameter name="dest" transfer-ownership="none">
- <type name="GObject.Value" c:type="GValue*"/>
- </parameter>
- <parameter name="src" transfer-ownership="none">
- <type name="GObject.Value" c:type="GValue*"/>
- </parameter>
- </parameters>
- </function>
- <function name="tag_register"
- c:identifier="gst_tag_register"
- doc="Registers a new tag type for the use with GStreamer's type system. If a type
-with that name is already registered, that one is used.
-The old registration may have used a different type however. So don't rely
-on your supplied values.
-that there can only be one single value for this tag in a tag list and
-any additional values will silenty be discarded when being added (unless
-#GST_TAG_MERGE_REPLACE, #GST_TAG_MERGE_REPLACE_ALL, or
-#GST_TAG_MERGE_PREPEND is used as merge mode, in which case the new
-value will replace the old one in the list).
-The merge function will be called from gst_tag_list_copy_value() when
-it is required that one or more values for a tag be condensed into
-one single value. This may happen from gst_tag_list_get_string(),
-gst_tag_list_get_int(), gst_tag_list_get_double() etc. What will happen
-exactly in that case depends on how the tag was registered and if a
-merge function was supplied and if so which one.
-gst_tag_merge_strings_with_comma().">
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <parameter name="name" transfer-ownership="none">
- <type name="utf8" c:type="gchar*"/>
- </parameter>
- <parameter name="flag" transfer-ownership="none">
- <type name="TagFlag" c:type="GstTagFlag"/>
- </parameter>
- <parameter name="type" transfer-ownership="none">
- <type name="GType" c:type="GType"/>
- </parameter>
- <parameter name="nick" transfer-ownership="none">
- <type name="utf8" c:type="gchar*"/>
- </parameter>
- <parameter name="blurb" transfer-ownership="none">
- <type name="utf8" c:type="gchar*"/>
- </parameter>
- <parameter name="func" transfer-ownership="none" scope="call">
- <type name="TagMergeFunc" c:type="GstTagMergeFunc"/>
- </parameter>
- </parameters>
- </function>
- <function name="trace_read_tsc"
- c:identifier="gst_trace_read_tsc"
- doc="Read a platform independent timer value that can be used in
-benchmarks.">
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <parameter name="dst" direction="out" transfer-ownership="full">
- <type name="int64" c:type="gint64*"/>
- </parameter>
- </parameters>
- </function>
- <function name="type_find_register"
- c:identifier="gst_type_find_register"
- doc="passing NULL only works in GStreamer 0.10.16 and later)
-succeeds
-is unloaded.
-is unloaded.
-Registers a new typefind function to be used for typefinding. After
-registering this function will be available for typefinding.
-This function is typically called during an element's plugin initialization.">
- <return-value transfer-ownership="none">
- <type name="boolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <parameter name="plugin" transfer-ownership="none">
- <type name="Plugin" c:type="GstPlugin*"/>
- </parameter>
- <parameter name="name" transfer-ownership="none">
- <type name="utf8" c:type="gchar*"/>
- </parameter>
- <parameter name="rank"
- transfer-ownership="none"
- doc="of this typefind function">
- <type name="uint" c:type="guint"/>
- </parameter>
- <parameter name="func" transfer-ownership="none" scope="call">
- <type name="TypeFindFunction" c:type="GstTypeFindFunction"/>
- </parameter>
- <parameter name="extensions" transfer-ownership="none">
- <array c:type="gchar**">
- <type name="utf8"/>
- </array>
- </parameter>
- <parameter name="possible_caps" transfer-ownership="none">
- <type name="Caps" c:type="GstCaps*"/>
- </parameter>
- <parameter name="data" transfer-ownership="none">
- <type name="any" c:type="gpointer"/>
- </parameter>
- <parameter name="data_notify" transfer-ownership="none" scope="call">
- <type name="GLib.DestroyNotify" c:type="GDestroyNotify"/>
- </parameter>
- </parameters>
- </function>
- <function name="type_register_static_full"
- c:identifier="gst_type_register_static_full"
- doc="derive from
-Location of the default vtable inititalization function for interface
-types. (optional)
-Location of the default vtable finalization function for interface types.
-(optional)
-instantiatable types only).
-memory for (0 indicates no caching). Ignored on recent GLib's.
-for instantiatable types only).
-GValues of this type (usually only useful for fundamental types).
-Helper function which constructs a #GTypeInfo structure and registers a
-GType, but which generates less linker overhead than a static const
-#GTypeInfo structure. For further details of the parameters, please see
-#GTypeInfo in the GLib documentation.
-Registers type_name as the name of a new static type derived from
-parent_type. The value of flags determines the nature (e.g. abstract or
-not) of the type. It works by filling a GTypeInfo struct and calling
-g_type_register_static()."
- version="0.10.14">
- <return-value transfer-ownership="none">
- <type name="GType" c:type="GType"/>
- </return-value>
- <parameters>
- <parameter name="parent_type" transfer-ownership="none">
- <type name="GType" c:type="GType"/>
- </parameter>
- <parameter name="type_name" transfer-ownership="none">
- <type name="utf8" c:type="gchar*"/>
- </parameter>
- <parameter name="class_size" transfer-ownership="none">
- <type name="uint" c:type="guint"/>
- </parameter>
- <parameter name="base_init" transfer-ownership="none" scope="call">
- <type name="GObject.BaseInitFunc" c:type="GBaseInitFunc"/>
- </parameter>
- <parameter name="base_finalize" transfer-ownership="none" scope="call">
- <type name="GObject.BaseFinalizeFunc" c:type="GBaseFinalizeFunc"/>
- </parameter>
- <parameter name="class_init" transfer-ownership="none" scope="call">
- <type name="GObject.ClassInitFunc" c:type="GClassInitFunc"/>
- </parameter>
- <parameter name="class_finalize"
- transfer-ownership="none"
- scope="call"
- closure="7">
- <type name="GObject.ClassFinalizeFunc" c:type="GClassFinalizeFunc"/>
- </parameter>
- <parameter name="class_data" transfer-ownership="none">
- <type name="any" c:type="gconstpointer"/>
- </parameter>
- <parameter name="instance_size"
- transfer-ownership="none"
- doc="structure (required for">
- <type name="uint" c:type="guint"/>
- </parameter>
- <parameter name="n_preallocs"
- transfer-ownership="none"
- doc="instances to reserve">
- <type name="uint16" c:type="guint16"/>
- </parameter>
- <parameter name="instance_init" transfer-ownership="none" scope="call">
- <type name="GObject.InstanceInitFunc" c:type="GInstanceInitFunc"/>
- </parameter>
- <parameter name="value_table" transfer-ownership="none">
- <type name="GObject.TypeValueTable" c:type="GTypeValueTable*"/>
- </parameter>
- <parameter name="flags" transfer-ownership="none">
- <type name="GObject.TypeFlags" c:type="GTypeFlags"/>
- </parameter>
- </parameters>
- </function>
- <function name="update_registry"
- c:identifier="gst_update_registry"
- doc="Forces GStreamer to re-scan its plugin paths and update the default
-plugin registry.
-Applications will almost never need to call this function, it is only
-useful if the application knows new plugins have been installed (or old
-ones removed) since the start of the application (or, to be precise, the
-first call to gst_init()) and the application wants to make use of any
-newly-installed plugins without restarting the application.
-Applications should assume that the registry update is neither atomic nor
-thread-safe and should therefore not have any dynamic pipelines running
-(including the playbin and decodebin elements) and should also not create
-any elements or access the GStreamer registry while the update is in
-progress.
-Note that this function may block for a significant amount of time.
-imply that there were changes), otherwise %FALSE."
- version="0.10.12">
- <return-value transfer-ownership="none">
- <type name="boolean" c:type="gboolean"/>
- </return-value>
- </function>
- <function name="uri_construct"
- c:identifier="gst_uri_construct"
- doc="Constructs a URI for a given valid protocol and location.
-is not valid, or the given location is NULL.">
- <return-value transfer-ownership="full">
- <type name="utf8" c:type="gchar*"/>
- </return-value>
- <parameters>
- <parameter name="protocol" transfer-ownership="none">
- <type name="utf8" c:type="gchar*"/>
- </parameter>
- <parameter name="location" transfer-ownership="none">
- <type name="utf8" c:type="gchar*"/>
- </parameter>
- </parameters>
- </function>
- <function name="uri_get_location"
- c:identifier="gst_uri_get_location"
- doc="Extracts the location out of a given valid URI, ie. the protocol and "://"
-are stripped from the URI, which means that the location returned includes
-the hostname if one is specified. The returned string must be freed using
-g_free().
-the URI does not contain a location, an empty string is returned.">
- <return-value transfer-ownership="full">
- <type name="utf8" c:type="gchar*"/>
- </return-value>
- <parameters>
- <parameter name="uri" transfer-ownership="none">
- <type name="utf8" c:type="gchar*"/>
- </parameter>
- </parameters>
- </function>
- <function name="uri_get_protocol"
- c:identifier="gst_uri_get_protocol"
- doc="Extracts the protocol out of a given valid URI. The returned string must be
-freed using g_free().">
- <return-value transfer-ownership="full">
- <type name="utf8" c:type="gchar*"/>
- </return-value>
- <parameters>
- <parameter name="uri" transfer-ownership="none">
- <type name="utf8" c:type="gchar*"/>
- </parameter>
- </parameters>
- </function>
- <function name="uri_has_protocol"
- c:identifier="gst_uri_has_protocol"
- doc="Checks if the protocol of a given valid URI matches @protocol."
- version="0.10.4">
- <return-value transfer-ownership="none">
- <type name="boolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <parameter name="uri" transfer-ownership="none">
- <type name="utf8" c:type="gchar*"/>
- </parameter>
- <parameter name="protocol" transfer-ownership="none">
- <type name="utf8" c:type="gchar*"/>
- </parameter>
- </parameters>
- </function>
- <function name="uri_is_valid"
- c:identifier="gst_uri_is_valid"
- doc="Tests if the given string is a valid URI identifier. URIs start with a valid
-scheme followed by ":" and maybe a string identifying the location.">
- <return-value transfer-ownership="none">
- <type name="boolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <parameter name="uri" transfer-ownership="none">
- <type name="utf8" c:type="gchar*"/>
- </parameter>
- </parameters>
- </function>
- <function name="uri_protocol_is_supported"
- c:identifier="gst_uri_protocol_is_supported"
- doc="Checks if an element exists that supports the given URI protocol. Note
-that a positive return value does not imply that a subsequent call to
-gst_element_make_from_uri() is guaranteed to work."
- version="0.10.13">
- <return-value transfer-ownership="none">
- <type name="boolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <parameter name="type" transfer-ownership="none">
- <type name="URIType" c:type="GstURIType"/>
- </parameter>
- <parameter name="protocol" transfer-ownership="none">
- <type name="utf8" c:type="gchar*"/>
- </parameter>
- </parameters>
- </function>
- <function name="uri_protocol_is_valid"
- c:identifier="gst_uri_protocol_is_valid"
- doc="Tests if the given string is a valid protocol identifier. Protocols
-must consist of alphanumeric characters, '+', '-' and '.' and must
-start with a alphabetic character. See RFC 3986 Section 3.1.">
- <return-value transfer-ownership="none">
- <type name="boolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <parameter name="protocol" transfer-ownership="none">
- <type name="utf8" c:type="gchar*"/>
- </parameter>
- </parameters>
- </function>
- <function name="util_array_binary_search"
- c:identifier="gst_util_array_binary_search"
- doc="Searches inside @array for @search_data by using the comparison function
-As @search_data is always passed as second argument to @search_func it's
-not required that @search_data has the same type as the array elements.
-The complexity of this search function is O(log (num_elements))."
- version="0.10.23">
- <return-value transfer-ownership="none">
- <type name="any" c:type="gpointer"/>
- </return-value>
- <parameters>
- <parameter name="array" transfer-ownership="none">
- <type name="any" c:type="gpointer"/>
- </parameter>
- <parameter name="num_elements" transfer-ownership="none">
- <type name="uint" c:type="guint"/>
- </parameter>
- <parameter name="element_size" transfer-ownership="none">
- <type name="size_t" c:type="gsize"/>
- </parameter>
- <parameter name="search_func" transfer-ownership="none" scope="call">
- <type name="GLib.CompareDataFunc" c:type="GCompareDataFunc"/>
- </parameter>
- <parameter name="mode" transfer-ownership="none">
- <type name="SearchMode" c:type="GstSearchMode"/>
- </parameter>
- <parameter name="search_data" transfer-ownership="none">
- <type name="any" c:type="gconstpointer"/>
- </parameter>
- <parameter name="user_data" transfer-ownership="none">
- <type name="any" c:type="gpointer"/>
- </parameter>
- </parameters>
- </function>
- <function name="util_double_to_fraction"
- c:identifier="gst_util_double_to_fraction"
- doc="Transforms a #gdouble to a fraction and simplifies
-the result."
- version="0.10.26">
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <parameter name="src" transfer-ownership="none">
- <type name="double" c:type="gdouble"/>
- </parameter>
- <parameter name="dest_n" direction="out" transfer-ownership="full">
- <type name="int" c:type="gint*"/>
- </parameter>
- <parameter name="dest_d" direction="out" transfer-ownership="full">
- <type name="int" c:type="gint*"/>
- </parameter>
- </parameters>
- </function>
- <function name="util_dump_mem"
- c:identifier="gst_util_dump_mem"
- doc="Dumps the memory block into a hex representation. Useful for debugging.">
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <parameter name="mem" transfer-ownership="none">
- <array c:type="guchar*">
- <type name="uint8"/>
- </array>
- </parameter>
- <parameter name="size" transfer-ownership="none">
- <type name="uint" c:type="guint"/>
- </parameter>
- </parameters>
- </function>
- <function name="util_fraction_add"
- c:identifier="gst_util_fraction_add"
- doc="Adds the fractions @a_n/@a_d and @b_n/@b_d and stores
-the result in @res_n and @res_d."
- version="0.10.26">
- <return-value transfer-ownership="none">
- <type name="boolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <parameter name="a_n" transfer-ownership="none">
- <type name="int" c:type="gint"/>
- </parameter>
- <parameter name="a_d" transfer-ownership="none">
- <type name="int" c:type="gint"/>
- </parameter>
- <parameter name="b_n" transfer-ownership="none">
- <type name="int" c:type="gint"/>
- </parameter>
- <parameter name="b_d" transfer-ownership="none">
- <type name="int" c:type="gint"/>
- </parameter>
- <parameter name="res_n" direction="out" transfer-ownership="full">
- <type name="int" c:type="gint*"/>
- </parameter>
- <parameter name="res_d" direction="out" transfer-ownership="full">
- <type name="int" c:type="gint*"/>
- </parameter>
- </parameters>
- </function>
- <function name="util_fraction_multiply"
- c:identifier="gst_util_fraction_multiply"
- doc="Multiplies the fractions @a_n/@a_d and @b_n/@b_d and stores
-the result in @res_n and @res_d."
- version="0.10.26">
- <return-value transfer-ownership="none">
- <type name="boolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <parameter name="a_n" transfer-ownership="none">
- <type name="int" c:type="gint"/>
- </parameter>
- <parameter name="a_d" transfer-ownership="none">
- <type name="int" c:type="gint"/>
- </parameter>
- <parameter name="b_n" transfer-ownership="none">
- <type name="int" c:type="gint"/>
- </parameter>
- <parameter name="b_d" transfer-ownership="none">
- <type name="int" c:type="gint"/>
- </parameter>
- <parameter name="res_n" direction="out" transfer-ownership="full">
- <type name="int" c:type="gint*"/>
- </parameter>
- <parameter name="res_d" direction="out" transfer-ownership="full">
- <type name="int" c:type="gint*"/>
- </parameter>
- </parameters>
- </function>
- <function name="util_fraction_to_double"
- c:identifier="gst_util_fraction_to_double"
- doc="Transforms a #gdouble to a fraction and simplifies the result."
- version="0.10.26">
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <parameter name="src_n" transfer-ownership="none">
- <type name="int" c:type="gint"/>
- </parameter>
- <parameter name="src_d" transfer-ownership="none">
- <type name="int" c:type="gint"/>
- </parameter>
- <parameter name="dest" direction="out" transfer-ownership="full">
- <type name="double" c:type="gdouble*"/>
- </parameter>
- </parameters>
- </function>
- <function name="util_gdouble_to_guint64"
- c:identifier="gst_util_gdouble_to_guint64">
- <return-value transfer-ownership="none">
- <type name="uint64" c:type="guint64"/>
- </return-value>
- <parameters>
- <parameter name="value" transfer-ownership="none">
- <type name="double" c:type="gdouble"/>
- </parameter>
- </parameters>
- </function>
- <function name="util_get_timestamp"
- c:identifier="gst_util_get_timestamp"
- doc="Get a timestamp as GstClockTime to be used for interval meassurements.
-The timestamp should not be interpreted in any other way."
- version="0.10.16">
- <return-value transfer-ownership="full">
- <type name="ClockTime" c:type="GstClockTime"/>
- </return-value>
- </function>
- <function name="util_greatest_common_divisor"
- c:identifier="gst_util_greatest_common_divisor"
- doc="Calculates the greatest common divisor of @a
-and @b."
- version="0.10.26">
- <return-value transfer-ownership="none">
- <type name="int" c:type="gint"/>
- </return-value>
- <parameters>
- <parameter name="a" transfer-ownership="none">
- <type name="int" c:type="gint"/>
- </parameter>
- <parameter name="b" transfer-ownership="none">
- <type name="int" c:type="gint"/>
- </parameter>
- </parameters>
- </function>
- <function name="util_guint64_to_gdouble"
- c:identifier="gst_util_guint64_to_gdouble">
- <return-value transfer-ownership="none">
- <type name="double" c:type="gdouble"/>
- </return-value>
- <parameters>
- <parameter name="value" transfer-ownership="none">
- <type name="uint64" c:type="guint64"/>
- </parameter>
- </parameters>
- </function>
- <function name="util_seqnum_compare"
- c:identifier="gst_util_seqnum_compare"
- doc="Compare two sequence numbers, handling wraparound.
-The current implementation just returns (gint32)(@s1 - @s2).
-positive number if @s1 is after @s2."
- version="0.10.22">
- <return-value transfer-ownership="none">
- <type name="int32" c:type="gint32"/>
- </return-value>
- <parameters>
- <parameter name="s1" transfer-ownership="none">
- <type name="uint32" c:type="guint32"/>
- </parameter>
- <parameter name="s2" transfer-ownership="none">
- <type name="uint32" c:type="guint32"/>
- </parameter>
- </parameters>
- </function>
- <function name="util_seqnum_next"
- c:identifier="gst_util_seqnum_next"
- doc="Return a constantly incrementing sequence number.
-This function is used internally to GStreamer to be able to determine which
-events and messages are "the same". For example, elements may set the seqnum
-on a segment-done message to be the same as that of the last seek event, to
-indicate that event and the message correspond to the same segment.
-overflow back to 0 at some point. Use gst_util_seqnum_compare() to make sure
-you handle wraparound correctly."
- version="0.10.22">
- <return-value transfer-ownership="none">
- <type name="uint32" c:type="guint32"/>
- </return-value>
- </function>
- <function name="util_set_object_arg"
- c:identifier="gst_util_set_object_arg"
- doc="Convertes the string value to the type of the objects argument and
-sets the argument with it.
-Note that this function silently returns if @object has no property named">
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <parameter name="object" transfer-ownership="none">
- <type name="GObject.Object" c:type="GObject*"/>
- </parameter>
- <parameter name="name" transfer-ownership="none">
- <type name="utf8" c:type="gchar*"/>
- </parameter>
- <parameter name="value" transfer-ownership="none">
- <type name="utf8" c:type="gchar*"/>
- </parameter>
- </parameters>
- </function>
- <function name="util_set_value_from_string"
- c:identifier="gst_util_set_value_from_string"
- doc="Converts the string to the type of the value and
-sets the value with it.
-Note that this function is dangerous as it does not return any indication
-if the conversion worked or not.">
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <parameter name="value" transfer-ownership="none">
- <type name="GObject.Value" c:type="GValue*"/>
- </parameter>
- <parameter name="value_str" transfer-ownership="none">
- <type name="utf8" c:type="gchar*"/>
- </parameter>
- </parameters>
- </function>
- <function name="util_uint64_scale"
- c:identifier="gst_util_uint64_scale"
- doc="Scale @val by the rational number @num / @denom, avoiding overflows and
-underflows and without loss of precision.
-This function can potentially be very slow if val and num are both
-greater than G_MAXUINT32.
-function returns G_MAXUINT64. If the result is not exactly
-representable as an integer it is truncated. See also
-gst_util_uint64_scale_round(), gst_util_uint64_scale_ceil(),
-gst_util_uint64_scale_int(), gst_util_uint64_scale_int_round(),
-gst_util_uint64_scale_int_ceil().">
- <return-value transfer-ownership="none">
- <type name="uint64" c:type="guint64"/>
- </return-value>
- <parameters>
- <parameter name="val" transfer-ownership="none">
- <type name="uint64" c:type="guint64"/>
- </parameter>
- <parameter name="num" transfer-ownership="none">
- <type name="uint64" c:type="guint64"/>
- </parameter>
- <parameter name="denom" transfer-ownership="none">
- <type name="uint64" c:type="guint64"/>
- </parameter>
- </parameters>
- </function>
- <function name="util_uint64_scale_ceil"
- c:identifier="gst_util_uint64_scale_ceil"
- doc="Scale @val by the rational number @num / @denom, avoiding overflows and
-underflows and without loss of precision.
-This function can potentially be very slow if val and num are both
-greater than G_MAXUINT32.
-function returns G_MAXUINT64. If the result is not exactly
-representable as an integer, it is rounded up. See also
-gst_util_uint64_scale(), gst_util_uint64_scale_round(),
-gst_util_uint64_scale_int(), gst_util_uint64_scale_int_round(),
-gst_util_uint64_scale_int_ceil().">
- <return-value transfer-ownership="none">
- <type name="uint64" c:type="guint64"/>
- </return-value>
- <parameters>
- <parameter name="val" transfer-ownership="none">
- <type name="uint64" c:type="guint64"/>
- </parameter>
- <parameter name="num" transfer-ownership="none">
- <type name="uint64" c:type="guint64"/>
- </parameter>
- <parameter name="denom" transfer-ownership="none">
- <type name="uint64" c:type="guint64"/>
- </parameter>
- </parameters>
- </function>
- <function name="util_uint64_scale_int"
- c:identifier="gst_util_uint64_scale_int"
- doc="Scale @val by the rational number @num / @denom, avoiding overflows and
-underflows and without loss of precision. @num must be non-negative and
-function returns G_MAXUINT64. If the result is not exactly
-representable as an integer, it is truncated. See also
-gst_util_uint64_scale_int_round(), gst_util_uint64_scale_int_ceil(),
-gst_util_uint64_scale(), gst_util_uint64_scale_round(),
-gst_util_uint64_scale_ceil().">
- <return-value transfer-ownership="none">
- <type name="uint64" c:type="guint64"/>
- </return-value>
- <parameters>
- <parameter name="val" transfer-ownership="none" doc="to scale.">
- <type name="uint64" c:type="guint64"/>
- </parameter>
- <parameter name="num" transfer-ownership="none">
- <type name="int" c:type="gint"/>
- </parameter>
- <parameter name="denom" transfer-ownership="none">
- <type name="int" c:type="gint"/>
- </parameter>
- </parameters>
- </function>
- <function name="util_uint64_scale_int_ceil"
- c:identifier="gst_util_uint64_scale_int_ceil"
- doc="Scale @val by the rational number @num / @denom, avoiding overflows and
-underflows and without loss of precision. @num must be non-negative and
-function returns G_MAXUINT64. If the result is not exactly
-representable as an integer, it is rounded up. See also
-gst_util_uint64_scale_int(), gst_util_uint64_scale_int_round(),
-gst_util_uint64_scale(), gst_util_uint64_scale_round(),
-gst_util_uint64_scale_ceil().">
- <return-value transfer-ownership="none">
- <type name="uint64" c:type="guint64"/>
- </return-value>
- <parameters>
- <parameter name="val" transfer-ownership="none" doc="to scale.">
- <type name="uint64" c:type="guint64"/>
- </parameter>
- <parameter name="num" transfer-ownership="none">
- <type name="int" c:type="gint"/>
- </parameter>
- <parameter name="denom" transfer-ownership="none">
- <type name="int" c:type="gint"/>
- </parameter>
- </parameters>
- </function>
- <function name="util_uint64_scale_int_round"
- c:identifier="gst_util_uint64_scale_int_round"
- doc="Scale @val by the rational number @num / @denom, avoiding overflows and
-underflows and without loss of precision. @num must be non-negative and
-function returns G_MAXUINT64. If the result is not exactly
-representable as an integer, it is rounded to the nearest integer
-(half-way cases are rounded up). See also gst_util_uint64_scale_int(),
-gst_util_uint64_scale_int_ceil(), gst_util_uint64_scale(),
-gst_util_uint64_scale_round(), gst_util_uint64_scale_ceil().">
- <return-value transfer-ownership="none">
- <type name="uint64" c:type="guint64"/>
- </return-value>
- <parameters>
- <parameter name="val" transfer-ownership="none" doc="to scale.">
- <type name="uint64" c:type="guint64"/>
- </parameter>
- <parameter name="num" transfer-ownership="none">
- <type name="int" c:type="gint"/>
- </parameter>
- <parameter name="denom" transfer-ownership="none">
- <type name="int" c:type="gint"/>
- </parameter>
- </parameters>
- </function>
- <function name="util_uint64_scale_round"
- c:identifier="gst_util_uint64_scale_round"
- doc="Scale @val by the rational number @num / @denom, avoiding overflows and
-underflows and without loss of precision.
-This function can potentially be very slow if val and num are both
-greater than G_MAXUINT32.
-function returns G_MAXUINT64. If the result is not exactly
-representable as an integer, it is rounded to the nearest integer
-(half-way cases are rounded up). See also gst_util_uint64_scale(),
-gst_util_uint64_scale_ceil(), gst_util_uint64_scale_int(),
-gst_util_uint64_scale_int_round(), gst_util_uint64_scale_int_ceil().">
- <return-value transfer-ownership="none">
- <type name="uint64" c:type="guint64"/>
- </return-value>
- <parameters>
- <parameter name="val" transfer-ownership="none">
- <type name="uint64" c:type="guint64"/>
- </parameter>
- <parameter name="num" transfer-ownership="none">
- <type name="uint64" c:type="guint64"/>
- </parameter>
- <parameter name="denom" transfer-ownership="none">
- <type name="uint64" c:type="guint64"/>
- </parameter>
- </parameters>
- </function>
- <function name="value_array_append_value"
- c:identifier="gst_value_array_append_value"
- doc="Appends @append_value to the GstValueArray in @value.">
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <parameter name="value" transfer-ownership="none">
- <type name="GObject.Value" c:type="GValue*"/>
- </parameter>
- <parameter name="append_value" transfer-ownership="none">
- <type name="GObject.Value" c:type="GValue*"/>
- </parameter>
- </parameters>
- </function>
- <function name="value_array_get_size"
- c:identifier="gst_value_array_get_size"
- doc="Gets the number of values contained in @value.">
- <return-value transfer-ownership="none">
- <type name="uint" c:type="guint"/>
- </return-value>
- <parameters>
- <parameter name="value" transfer-ownership="none">
- <type name="GObject.Value" c:type="GValue*"/>
- </parameter>
- </parameters>
- </function>
- <function name="value_array_get_value"
- c:identifier="gst_value_array_get_value"
- doc="Gets the value that is a member of the array contained in @value and
-has the index @index.">
- <return-value transfer-ownership="none">
- <type name="GObject.Value" c:type="GValue*"/>
- </return-value>
- <parameters>
- <parameter name="value" transfer-ownership="none">
- <type name="GObject.Value" c:type="GValue*"/>
- </parameter>
- <parameter name="index" transfer-ownership="none">
- <type name="uint" c:type="guint"/>
- </parameter>
- </parameters>
- </function>
- <function name="value_array_prepend_value"
- c:identifier="gst_value_array_prepend_value"
- doc="Prepends @prepend_value to the GstValueArray in @value.">
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <parameter name="value" transfer-ownership="none">
- <type name="GObject.Value" c:type="GValue*"/>
- </parameter>
- <parameter name="prepend_value" transfer-ownership="none">
- <type name="GObject.Value" c:type="GValue*"/>
- </parameter>
- </parameters>
- </function>
- <function name="value_can_compare"
- c:identifier="gst_value_can_compare"
- doc="Determines if @value1 and @value2 can be compared.">
- <return-value transfer-ownership="none">
- <type name="boolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <parameter name="value1" transfer-ownership="none">
- <type name="GObject.Value" c:type="GValue*"/>
- </parameter>
- <parameter name="value2" transfer-ownership="none">
- <type name="GObject.Value" c:type="GValue*"/>
- </parameter>
- </parameters>
- </function>
- <function name="value_can_intersect"
- c:identifier="gst_value_can_intersect"
- doc="Determines if intersecting two values will produce a valid result.
-Two values will produce a valid intersection if they have the same
-type, or if there is a method (registered by
-gst_value_register_intersect_func()) to calculate the intersection.">
- <return-value transfer-ownership="none">
- <type name="boolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <parameter name="value1" transfer-ownership="none">
- <type name="GObject.Value" c:type="GValue*"/>
- </parameter>
- <parameter name="value2" transfer-ownership="none">
- <type name="GObject.Value" c:type="GValue*"/>
- </parameter>
- </parameters>
- </function>
- <function name="value_can_subtract"
- c:identifier="gst_value_can_subtract"
- doc="Checks if it's possible to subtract @subtrahend from @minuend.">
- <return-value transfer-ownership="none">
- <type name="boolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <parameter name="minuend" transfer-ownership="none">
- <type name="GObject.Value" c:type="GValue*"/>
- </parameter>
- <parameter name="subtrahend" transfer-ownership="none">
- <type name="GObject.Value" c:type="GValue*"/>
- </parameter>
- </parameters>
- </function>
- <function name="value_can_union"
- c:identifier="gst_value_can_union"
- doc="Determines if @value1 and @value2 can be non-trivially unioned.
-Any two values can be trivially unioned by adding both of them
-to a GstValueList. However, certain types have the possibility
-to be unioned in a simpler way. For example, an integer range
-and an integer can be unioned if the integer is a subset of the
-integer range. If there is the possibility that two values can
-be unioned, this function returns TRUE.
-be unioned.">
- <return-value transfer-ownership="none">
- <type name="boolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <parameter name="value1" transfer-ownership="none">
- <type name="GObject.Value" c:type="GValue*"/>
- </parameter>
- <parameter name="value2" transfer-ownership="none">
- <type name="GObject.Value" c:type="GValue*"/>
- </parameter>
- </parameters>
- </function>
- <function name="value_compare"
- c:identifier="gst_value_compare"
- doc="Compares @value1 and @value2. If @value1 and @value2 cannot be
-compared, the function returns GST_VALUE_UNORDERED. Otherwise,
-if @value1 is greater than @value2, GST_VALUE_GREATER_THAN is returned.
-If @value1 is less than @value2, GST_VALUE_LESS_THAN is returned.
-If the values are equal, GST_VALUE_EQUAL is returned.">
- <return-value transfer-ownership="none">
- <type name="int" c:type="gint"/>
- </return-value>
- <parameters>
- <parameter name="value1" transfer-ownership="none">
- <type name="GObject.Value" c:type="GValue*"/>
- </parameter>
- <parameter name="value2" transfer-ownership="none">
- <type name="GObject.Value" c:type="GValue*"/>
- </parameter>
- </parameters>
- </function>
- <function name="value_deserialize"
- c:identifier="gst_value_deserialize"
- doc="Tries to deserialize a string into the type specified by the given GValue.
-If the operation succeeds, TRUE is returned, FALSE otherwise.">
- <return-value transfer-ownership="none">
- <type name="boolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <parameter name="dest" transfer-ownership="none">
- <type name="GObject.Value" c:type="GValue*"/>
- </parameter>
- <parameter name="src" transfer-ownership="none">
- <type name="utf8" c:type="gchar*"/>
- </parameter>
- </parameters>
- </function>
- <function name="value_dup_mini_object"
- c:identifier="gst_value_dup_mini_object"
- doc="Get the contents of a %GST_TYPE_MINI_OBJECT derived #GValue,
-increasing its reference count."
- version="0.10.20">
- <return-value transfer-ownership="full">
- <type name="MiniObject" c:type="GstMiniObject*"/>
- </return-value>
- <parameters>
- <parameter name="value" transfer-ownership="none">
- <type name="GObject.Value" c:type="GValue*"/>
- </parameter>
- </parameters>
- </function>
- <function name="value_fraction_multiply"
- c:identifier="gst_value_fraction_multiply"
- doc="Multiplies the two #GValue items containing a #GST_TYPE_FRACTION and sets">
- <return-value transfer-ownership="none" doc="TRUE otherwise.">
- <type name="boolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <parameter name="product" transfer-ownership="none">
- <type name="GObject.Value" c:type="GValue*"/>
- </parameter>
- <parameter name="factor1" transfer-ownership="none">
- <type name="GObject.Value" c:type="GValue*"/>
- </parameter>
- <parameter name="factor2" transfer-ownership="none">
- <type name="GObject.Value" c:type="GValue*"/>
- </parameter>
- </parameters>
- </function>
- <function name="value_fraction_subtract"
- c:identifier="gst_value_fraction_subtract"
- doc="Subtracts the @subtrahend from the @minuend and sets @dest to the result.">
- <return-value transfer-ownership="none" doc="TRUE otherwise.">
- <type name="boolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <parameter name="dest" transfer-ownership="none">
- <type name="GObject.Value" c:type="GValue*"/>
- </parameter>
- <parameter name="minuend" transfer-ownership="none">
- <type name="GObject.Value" c:type="GValue*"/>
- </parameter>
- <parameter name="subtrahend" transfer-ownership="none">
- <type name="GObject.Value" c:type="GValue*"/>
- </parameter>
- </parameters>
- </function>
- <function name="value_get_caps"
- c:identifier="gst_value_get_caps"
- doc="Gets the contents of @value.">
- <return-value transfer-ownership="none">
- <type name="Caps" c:type="GstCaps*"/>
- </return-value>
- <parameters>
- <parameter name="value" transfer-ownership="none">
- <type name="GObject.Value" c:type="GValue*"/>
- </parameter>
- </parameters>
- </function>
- <function name="value_get_date"
- c:identifier="gst_value_get_date"
- doc="Gets the contents of @value.">
- <return-value transfer-ownership="none">
- <type name="GLib.Date" c:type="GDate*"/>
- </return-value>
- <parameters>
- <parameter name="value" transfer-ownership="none">
- <type name="GObject.Value" c:type="GValue*"/>
- </parameter>
- </parameters>
- </function>
- <function name="value_get_double_range_max"
- c:identifier="gst_value_get_double_range_max"
- doc="Gets the maximum of the range specified by @value.">
- <return-value transfer-ownership="none">
- <type name="double" c:type="gdouble"/>
- </return-value>
- <parameters>
- <parameter name="value" transfer-ownership="none">
- <type name="GObject.Value" c:type="GValue*"/>
- </parameter>
- </parameters>
- </function>
- <function name="value_get_double_range_min"
- c:identifier="gst_value_get_double_range_min"
- doc="Gets the minimum of the range specified by @value.">
- <return-value transfer-ownership="none">
- <type name="double" c:type="gdouble"/>
- </return-value>
- <parameters>
- <parameter name="value" transfer-ownership="none">
- <type name="GObject.Value" c:type="GValue*"/>
- </parameter>
- </parameters>
- </function>
- <function name="value_get_fourcc"
- c:identifier="gst_value_get_fourcc"
- doc="Gets the #guint32 fourcc contained in @value.">
- <return-value transfer-ownership="none">
- <type name="uint32" c:type="guint32"/>
- </return-value>
- <parameters>
- <parameter name="value" transfer-ownership="none">
- <type name="GObject.Value" c:type="GValue*"/>
- </parameter>
- </parameters>
- </function>
- <function name="value_get_fraction_denominator"
- c:identifier="gst_value_get_fraction_denominator"
- doc="Gets the denominator of the fraction specified by @value.">
- <return-value transfer-ownership="none">
- <type name="int" c:type="gint"/>
- </return-value>
- <parameters>
- <parameter name="value" transfer-ownership="none">
- <type name="GObject.Value" c:type="GValue*"/>
- </parameter>
- </parameters>
- </function>
- <function name="value_get_fraction_numerator"
- c:identifier="gst_value_get_fraction_numerator"
- doc="Gets the numerator of the fraction specified by @value.">
- <return-value transfer-ownership="none">
- <type name="int" c:type="gint"/>
- </return-value>
- <parameters>
- <parameter name="value" transfer-ownership="none">
- <type name="GObject.Value" c:type="GValue*"/>
- </parameter>
- </parameters>
- </function>
- <function name="value_get_fraction_range_max"
- c:identifier="gst_value_get_fraction_range_max"
- doc="Gets the maximum of the range specified by @value.">
- <return-value transfer-ownership="none">
- <type name="GObject.Value" c:type="GValue*"/>
- </return-value>
- <parameters>
- <parameter name="value" transfer-ownership="none">
- <type name="GObject.Value" c:type="GValue*"/>
- </parameter>
- </parameters>
- </function>
- <function name="value_get_fraction_range_min"
- c:identifier="gst_value_get_fraction_range_min"
- doc="Gets the minimum of the range specified by @value.">
- <return-value transfer-ownership="none">
- <type name="GObject.Value" c:type="GValue*"/>
- </return-value>
- <parameters>
- <parameter name="value" transfer-ownership="none">
- <type name="GObject.Value" c:type="GValue*"/>
- </parameter>
- </parameters>
- </function>
- <function name="value_get_int_range_max"
- c:identifier="gst_value_get_int_range_max"
- doc="Gets the maximum of the range specified by @value.">
- <return-value transfer-ownership="none">
- <type name="int" c:type="gint"/>
- </return-value>
- <parameters>
- <parameter name="value" transfer-ownership="none">
- <type name="GObject.Value" c:type="GValue*"/>
- </parameter>
- </parameters>
- </function>
- <function name="value_get_int_range_min"
- c:identifier="gst_value_get_int_range_min"
- doc="Gets the minimum of the range specified by @value.">
- <return-value transfer-ownership="none">
- <type name="int" c:type="gint"/>
- </return-value>
- <parameters>
- <parameter name="value" transfer-ownership="none">
- <type name="GObject.Value" c:type="GValue*"/>
- </parameter>
- </parameters>
- </function>
- <function name="value_get_mini_object"
- c:identifier="gst_value_get_mini_object"
- doc="Get the contents of a %GST_TYPE_MINI_OBJECT derived #GValue.
-Does not increase the refcount of the returned object.">
- <return-value transfer-ownership="full">
- <type name="MiniObject" c:type="GstMiniObject*"/>
- </return-value>
- <parameters>
- <parameter name="value" transfer-ownership="none">
- <type name="GObject.Value" c:type="GValue*"/>
- </parameter>
- </parameters>
- </function>
- <function name="value_get_structure"
- c:identifier="gst_value_get_structure"
- doc="Gets the contents of @value."
- version="0.10.15">
- <return-value transfer-ownership="none">
- <type name="Structure" c:type="GstStructure*"/>
- </return-value>
- <parameters>
- <parameter name="value" transfer-ownership="none">
- <type name="GObject.Value" c:type="GValue*"/>
- </parameter>
- </parameters>
- </function>
- <function name="value_init_and_copy"
- c:identifier="gst_value_init_and_copy"
- doc="Initialises the target value to be of the same type as source and then copies
-the contents from source to target.">
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <parameter name="dest" transfer-ownership="none">
- <type name="GObject.Value" c:type="GValue*"/>
- </parameter>
- <parameter name="src" transfer-ownership="none">
- <type name="GObject.Value" c:type="GValue*"/>
- </parameter>
- </parameters>
- </function>
- <function name="value_intersect"
- c:identifier="gst_value_intersect"
- doc="intersection value
-Calculates the intersection of two values. If the values have
-a non-empty intersection, the value representing the intersection
-is placed in @dest. If the intersection is non-empty, @dest is
-not modified.">
- <return-value transfer-ownership="none">
- <type name="boolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <parameter name="dest" transfer-ownership="none">
- <type name="GObject.Value" c:type="GValue*"/>
- </parameter>
- <parameter name="value1" transfer-ownership="none">
- <type name="GObject.Value" c:type="GValue*"/>
- </parameter>
- <parameter name="value2" transfer-ownership="none">
- <type name="GObject.Value" c:type="GValue*"/>
- </parameter>
- </parameters>
- </function>
- <function name="value_is_fixed"
- c:identifier="gst_value_is_fixed"
- doc="Tests if the given GValue, if available in a GstStructure (or any other
-ranges) value.">
- <return-value transfer-ownership="none">
- <type name="boolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <parameter name="value" transfer-ownership="none">
- <type name="GObject.Value" c:type="GValue*"/>
- </parameter>
- </parameters>
- </function>
- <function name="value_list_append_value"
- c:identifier="gst_value_list_append_value"
- doc="Appends @append_value to the GstValueList in @value.">
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <parameter name="value" transfer-ownership="none">
- <type name="GObject.Value" c:type="GValue*"/>
- </parameter>
- <parameter name="append_value" transfer-ownership="none">
- <type name="GObject.Value" c:type="GValue*"/>
- </parameter>
- </parameters>
- </function>
- <function name="value_list_concat"
- c:identifier="gst_value_list_concat"
- doc="Concatenates copies of @value1 and @value2 into a list. Values that are not
-of type #GST_TYPE_LIST are treated as if they were lists of length 1.">
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <parameter name="dest" transfer-ownership="none">
- <type name="GObject.Value" c:type="GValue*"/>
- </parameter>
- <parameter name="value1" transfer-ownership="none">
- <type name="GObject.Value" c:type="GValue*"/>
- </parameter>
- <parameter name="value2" transfer-ownership="none">
- <type name="GObject.Value" c:type="GValue*"/>
- </parameter>
- </parameters>
- </function>
- <function name="value_list_get_size"
- c:identifier="gst_value_list_get_size"
- doc="Gets the number of values contained in @value.">
- <return-value transfer-ownership="none">
- <type name="uint" c:type="guint"/>
- </return-value>
- <parameters>
- <parameter name="value" transfer-ownership="none">
- <type name="GObject.Value" c:type="GValue*"/>
- </parameter>
- </parameters>
- </function>
- <function name="value_list_get_value"
- c:identifier="gst_value_list_get_value"
- doc="Gets the value that is a member of the list contained in @value and
-has the index @index.">
- <return-value transfer-ownership="none">
- <type name="GObject.Value" c:type="GValue*"/>
- </return-value>
- <parameters>
- <parameter name="value" transfer-ownership="none">
- <type name="GObject.Value" c:type="GValue*"/>
- </parameter>
- <parameter name="index" transfer-ownership="none">
- <type name="uint" c:type="guint"/>
- </parameter>
- </parameters>
- </function>
- <function name="value_list_prepend_value"
- c:identifier="gst_value_list_prepend_value"
- doc="Prepends @prepend_value to the GstValueList in @value.">
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <parameter name="value" transfer-ownership="none">
- <type name="GObject.Value" c:type="GValue*"/>
- </parameter>
- <parameter name="prepend_value" transfer-ownership="none">
- <type name="GObject.Value" c:type="GValue*"/>
- </parameter>
- </parameters>
- </function>
- <function name="value_register"
- c:identifier="gst_value_register"
- doc="Registers functions to perform calculations on #GValue items of a given
-type. Each type can only be added once.">
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <parameter name="table" transfer-ownership="none">
- <type name="ValueTable" c:type="GstValueTable*"/>
- </parameter>
- </parameters>
- </function>
- <function name="value_register_intersect_func"
- c:identifier="gst_value_register_intersect_func"
- doc="Registers a function that is called to calculate the intersection
-of the values having the types @type1 and @type2.
-Intersect functions should be registered at startup before any pipelines are
-started, as gst_value_register_intersect_func() is not thread-safe and
-cannot be used at the same time as gst_value_intersect() or
-gst_value_can_intersect().">
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <parameter name="type1" transfer-ownership="none">
- <type name="GType" c:type="GType"/>
- </parameter>
- <parameter name="type2" transfer-ownership="none">
- <type name="GType" c:type="GType"/>
- </parameter>
- <parameter name="func" transfer-ownership="none" scope="call">
- <type name="ValueIntersectFunc" c:type="GstValueIntersectFunc"/>
- </parameter>
- </parameters>
- </function>
- <function name="value_register_subtract_func"
- c:identifier="gst_value_register_subtract_func"
- doc="Registers @func as a function capable of subtracting the values of
-Subtract functions should be registered at startup before any pipelines are
-started, as gst_value_register_subtract_func() is not thread-safe and
-cannot be used at the same time as gst_value_subtract().">
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <parameter name="minuend_type" transfer-ownership="none">
- <type name="GType" c:type="GType"/>
- </parameter>
- <parameter name="subtrahend_type" transfer-ownership="none">
- <type name="GType" c:type="GType"/>
- </parameter>
- <parameter name="func" transfer-ownership="none" scope="call">
- <type name="ValueSubtractFunc" c:type="GstValueSubtractFunc"/>
- </parameter>
- </parameters>
- </function>
- <function name="value_register_union_func"
- c:identifier="gst_value_register_union_func"
- doc="Registers a union function that can create a union between #GValue items
-of the type @type1 and @type2.
-Union functions should be registered at startup before any pipelines are
-started, as gst_value_register_union_func() is not thread-safe and cannot
-be used at the same time as gst_value_union() or gst_value_can_union().">
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <parameter name="type1" transfer-ownership="none">
- <type name="GType" c:type="GType"/>
- </parameter>
- <parameter name="type2" transfer-ownership="none">
- <type name="GType" c:type="GType"/>
- </parameter>
- <parameter name="func" transfer-ownership="none" scope="call">
- <type name="ValueUnionFunc" c:type="GstValueUnionFunc"/>
- </parameter>
- </parameters>
- </function>
- <function name="value_serialize"
- c:identifier="gst_value_serialize"
- doc="tries to transform the given @value into a string representation that allows
-getting back this string later on using gst_value_deserialize().">
- <return-value transfer-ownership="full">
- <type name="utf8" c:type="gchar*"/>
- </return-value>
- <parameters>
- <parameter name="value" transfer-ownership="none">
- <type name="GObject.Value" c:type="GValue*"/>
- </parameter>
- </parameters>
- </function>
- <function name="value_set_caps"
- c:identifier="gst_value_set_caps"
- doc="Sets the contents of @value to @caps. The actual
-#GstCaps structure is copied before it is used.">
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <parameter name="value" transfer-ownership="none">
- <type name="GObject.Value" c:type="GValue*"/>
- </parameter>
- <parameter name="caps" transfer-ownership="none">
- <type name="Caps" c:type="GstCaps*"/>
- </parameter>
- </parameters>
- </function>
- <function name="value_set_date"
- c:identifier="gst_value_set_date"
- doc="Sets the contents of @value to coorespond to @date. The actual
-#GDate structure is copied before it is used.">
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <parameter name="value" transfer-ownership="none">
- <type name="GObject.Value" c:type="GValue*"/>
- </parameter>
- <parameter name="date" transfer-ownership="none">
- <type name="GLib.Date" c:type="GDate*"/>
- </parameter>
- </parameters>
- </function>
- <function name="value_set_double_range"
- c:identifier="gst_value_set_double_range"
- doc="Sets @value to the range specified by @start and @end.">
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <parameter name="value" transfer-ownership="none">
- <type name="GObject.Value" c:type="GValue*"/>
- </parameter>
- <parameter name="start" transfer-ownership="none">
- <type name="double" c:type="gdouble"/>
- </parameter>
- <parameter name="end" transfer-ownership="none">
- <type name="double" c:type="gdouble"/>
- </parameter>
- </parameters>
- </function>
- <function name="value_set_fourcc"
- c:identifier="gst_value_set_fourcc"
- doc="Sets @value to @fourcc.">
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <parameter name="value" transfer-ownership="none">
- <type name="GObject.Value" c:type="GValue*"/>
- </parameter>
- <parameter name="fourcc" transfer-ownership="none">
- <type name="uint32" c:type="guint32"/>
- </parameter>
- </parameters>
- </function>
- <function name="value_set_fraction"
- c:identifier="gst_value_set_fraction"
- doc="Sets @value to the fraction specified by @numerator over @denominator.
-The fraction gets reduced to the smallest numerator and denominator,
-and if necessary the sign is moved to the numerator.">
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <parameter name="value" transfer-ownership="none">
- <type name="GObject.Value" c:type="GValue*"/>
- </parameter>
- <parameter name="numerator" transfer-ownership="none">
- <type name="int" c:type="gint"/>
- </parameter>
- <parameter name="denominator" transfer-ownership="none">
- <type name="int" c:type="gint"/>
- </parameter>
- </parameters>
- </function>
- <function name="value_set_fraction_range"
- c:identifier="gst_value_set_fraction_range"
- doc="Sets @value to the range specified by @start and @end.">
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <parameter name="value" transfer-ownership="none">
- <type name="GObject.Value" c:type="GValue*"/>
- </parameter>
- <parameter name="start" transfer-ownership="none">
- <type name="GObject.Value" c:type="GValue*"/>
- </parameter>
- <parameter name="end" transfer-ownership="none">
- <type name="GObject.Value" c:type="GValue*"/>
- </parameter>
- </parameters>
- </function>
- <function name="value_set_fraction_range_full"
- c:identifier="gst_value_set_fraction_range_full"
- doc="Sets @value to the range specified by @numerator_start/@denominator_start
-and @numerator_end/@denominator_end.">
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <parameter name="value" transfer-ownership="none">
- <type name="GObject.Value" c:type="GValue*"/>
- </parameter>
- <parameter name="numerator_start" transfer-ownership="none">
- <type name="int" c:type="gint"/>
- </parameter>
- <parameter name="denominator_start" transfer-ownership="none">
- <type name="int" c:type="gint"/>
- </parameter>
- <parameter name="numerator_end" transfer-ownership="none">
- <type name="int" c:type="gint"/>
- </parameter>
- <parameter name="denominator_end" transfer-ownership="none">
- <type name="int" c:type="gint"/>
- </parameter>
- </parameters>
- </function>
- <function name="value_set_int_range"
- c:identifier="gst_value_set_int_range"
- doc="Sets @value to the range specified by @start and @end.">
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <parameter name="value" transfer-ownership="none">
- <type name="GObject.Value" c:type="GValue*"/>
- </parameter>
- <parameter name="start" transfer-ownership="none">
- <type name="int" c:type="gint"/>
- </parameter>
- <parameter name="end" transfer-ownership="none">
- <type name="int" c:type="gint"/>
- </parameter>
- </parameters>
- </function>
- <function name="value_set_mini_object"
- c:identifier="gst_value_set_mini_object"
- doc="Set the contents of a %GST_TYPE_MINI_OBJECT derived #GValue to
-The caller retains ownership of the reference.">
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <parameter name="value" transfer-ownership="none">
- <type name="GObject.Value" c:type="GValue*"/>
- </parameter>
- <parameter name="mini_object" transfer-ownership="none">
- <type name="MiniObject" c:type="GstMiniObject*"/>
- </parameter>
- </parameters>
- </function>
- <function name="value_set_structure"
- c:identifier="gst_value_set_structure"
- doc="Sets the contents of @value to @structure. The actual"
- version="0.10.15">
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <parameter name="value" transfer-ownership="none">
- <type name="GObject.Value" c:type="GValue*"/>
- </parameter>
- <parameter name="structure" transfer-ownership="none">
- <type name="Structure" c:type="GstStructure*"/>
- </parameter>
- </parameters>
- </function>
- <function name="value_subtract"
- c:identifier="gst_value_subtract"
- doc="Subtracts @subtrahend from @minuend and stores the result in @dest.
-Note that this means subtraction as in sets, not as in mathematics.">
- <return-value transfer-ownership="none">
- <type name="boolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <parameter name="dest" transfer-ownership="none">
- <type name="GObject.Value" c:type="GValue*"/>
- </parameter>
- <parameter name="minuend" transfer-ownership="none">
- <type name="GObject.Value" c:type="GValue*"/>
- </parameter>
- <parameter name="subtrahend" transfer-ownership="none">
- <type name="GObject.Value" c:type="GValue*"/>
- </parameter>
- </parameters>
- </function>
- <function name="value_take_mini_object"
- c:identifier="gst_value_take_mini_object"
- doc="Set the contents of a %GST_TYPE_MINI_OBJECT derived #GValue to
-Takes over the ownership of the caller's reference to @mini_object;
-the caller doesn't have to unref it any more.">
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <parameter name="value" transfer-ownership="none">
- <type name="GObject.Value" c:type="GValue*"/>
- </parameter>
- <parameter name="mini_object" transfer-ownership="none">
- <type name="MiniObject" c:type="GstMiniObject*"/>
- </parameter>
- </parameters>
- </function>
- <function name="value_union"
- c:identifier="gst_value_union"
- doc="Creates a GValue corresponding to the union of @value1 and @value2.">
- <return-value transfer-ownership="none">
- <type name="boolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <parameter name="dest" transfer-ownership="none">
- <type name="GObject.Value" c:type="GValue*"/>
- </parameter>
- <parameter name="value1" transfer-ownership="none">
- <type name="GObject.Value" c:type="GValue*"/>
- </parameter>
- <parameter name="value2" transfer-ownership="none">
- <type name="GObject.Value" c:type="GValue*"/>
- </parameter>
- </parameters>
- </function>
- <function name="version"
- c:identifier="gst_version"
- doc="Gets the version number of the GStreamer library.">
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <parameter name="major" direction="out" transfer-ownership="full">
- <type name="uint" c:type="guint*"/>
- </parameter>
- <parameter name="minor" direction="out" transfer-ownership="full">
- <type name="uint" c:type="guint*"/>
- </parameter>
- <parameter name="micro" direction="out" transfer-ownership="full">
- <type name="uint" c:type="guint*"/>
- </parameter>
- <parameter name="nano" direction="out" transfer-ownership="full">
- <type name="uint" c:type="guint*"/>
- </parameter>
- </parameters>
- </function>
- <function name="version_string"
- c:identifier="gst_version_string"
- doc="This function returns a string that is useful for describing this version">
- <return-value transfer-ownership="full">
- <type name="utf8" c:type="gchar*"/>
- </return-value>
- </function>
- </namespace>
-</repository>
+++ /dev/null
-Anton Gorenko
\ No newline at end of file
+++ /dev/null
-! Copyright (C) 2010 Anton Gorenko.
-! See http://factorcode.org/license.txt for BSD license.
-USING: alien alien.syntax alien.libraries combinators kernel
-system
-gobject-introspection glib.ffi gmodule.ffi gobject.ffi ;
-EXCLUDE: alien.c-types => pointer ;
-IN: gst.ffi
-
-<<
-"gst" {
- { [ os winnt? ] [ drop ] }
- { [ os macosx? ] [ drop ] }
- { [ os unix? ] [ "libgstreamer-0.10.so" cdecl add-library ] }
-} cond
->>
-
-TYPEDEF: gpointer GstClockID
-TYPEDEF: guint64 GstClockTime
-TYPEDEF: gint64 GstClockTimeDiff
-
-! types from libxml2
-TYPEDEF: void* xmlNodePtr
-TYPEDEF: void* xmlDocPtr
-TYPEDEF: void* xmlNsPtr
-
-GIR: vocab:gst/Gst-0.10.gir
-
+++ /dev/null
-! Copyright (C) 2010 Anton Gorenko.
-! See http://factorcode.org/license.txt for BSD license.
-USING: gst.ffi ;
-IN: gst
-
+++ /dev/null
-GStreamer binding
--- /dev/null
+<?xml version="1.0"?>
+<!-- This file was automatically generated from C sources - DO NOT EDIT!
+To affect the contents of this file, edit the original C definitions,
+and/or use gtk-doc annotations. -->
+<repository version="1.0"
+ xmlns="http://www.gtk.org/introspection/core/1.0"
+ xmlns:c="http://www.gtk.org/introspection/c/1.0"
+ xmlns:glib="http://www.gtk.org/introspection/glib/1.0">
+ <include name="GLib" version="2.0"/>
+ <include name="GModule" version="2.0"/>
+ <include name="GObject" version="2.0"/>
+ <include name="libxml2" version="2.0"/>
+ <package name="glib-2.0"/>
+ <package name="gmodule-no-export-2.0"/>
+ <package name="gobject-2.0"/>
+ <package name="gthread-2.0"/>
+ <package name="libxml-2.0"/>
+ <c:include name="gst/gst.h"/>
+ <namespace name="Gst"
+ version="0.10"
+ shared-library="libgstreamer-0.10.so.0"
+ c:prefix="Gst">
+ <alias name="ClockID" target="any" c:type="GstClockID"/>
+ <alias name="ClockTime" target="uint64" c:type="GstClockTime"/>
+ <alias name="ClockTimeDiff" target="int64" c:type="GstClockTimeDiff"/>
+ <enumeration name="ActivateMode"
+ doc="The status of a GstPad. After activating a pad, which usually happens when the
+parent element goes from READY to PAUSED, the GstActivateMode defines if the
+pad operates in push or pull mode."
+ c:type="GstActivateMode">
+ <member name="none" value="0" c:identifier="GST_ACTIVATE_NONE"/>
+ <member name="push" value="1" c:identifier="GST_ACTIVATE_PUSH"/>
+ <member name="pull" value="2" c:identifier="GST_ACTIVATE_PULL"/>
+ </enumeration>
+ <record name="AllocTrace"
+ c:type="GstAllocTrace"
+ doc="The main tracing object">
+ <field name="name" writable="1">
+ <type name="utf8" c:type="gchar*"/>
+ </field>
+ <field name="flags" writable="1">
+ <type name="int" c:type="gint"/>
+ </field>
+ <field name="live" writable="1">
+ <type name="int" c:type="gint"/>
+ </field>
+ <field name="mem_live" writable="1">
+ <type name="GLib.SList" c:type="GSList*"/>
+ </field>
+ <method name="print"
+ c:identifier="gst_alloc_trace_print"
+ doc="Print the status of the given GstAllocTrace.">
+ <return-value transfer-ownership="none">
+ <type name="none" c:type="void"/>
+ </return-value>
+ </method>
+ <method name="set_flags"
+ c:identifier="gst_alloc_trace_set_flags"
+ doc="Enable the given features on the given GstAllocTrace object.">
+ <return-value transfer-ownership="none">
+ <type name="none" c:type="void"/>
+ </return-value>
+ <parameters>
+ <parameter name="flags" transfer-ownership="none">
+ <type name="AllocTraceFlags" c:type="GstAllocTraceFlags"/>
+ </parameter>
+ </parameters>
+ </method>
+ </record>
+ <bitfield name="AllocTraceFlags"
+ doc="Flags indicating which tracing feature to enable."
+ c:type="GstAllocTraceFlags">
+ <member name="live" value="1" c:identifier="GST_ALLOC_TRACE_LIVE"/>
+ <member name="mem_live"
+ value="2"
+ c:identifier="GST_ALLOC_TRACE_MEM_LIVE"/>
+ </bitfield>
+ <bitfield name="AssocFlags"
+ doc="that marks a place where one can randomly seek to.
+is one that marks a place where one can relatively seek to.
+Flags for an association entry."
+ c:type="GstAssocFlags">
+ <member name="none" value="0" c:identifier="GST_ASSOCIATION_FLAG_NONE"/>
+ <member name="key_unit"
+ value="1"
+ c:identifier="GST_ASSOCIATION_FLAG_KEY_UNIT"/>
+ <member name="delta_unit"
+ value="2"
+ c:identifier="GST_ASSOCIATION_FLAG_DELTA_UNIT"/>
+ <member name="last"
+ value="256"
+ c:identifier="GST_ASSOCIATION_FLAG_LAST"/>
+ </bitfield>
+ <constant name="BUFFER_COPY_ALL" value="0">
+ <type name="int"/>
+ </constant>
+ <constant name="BUFFER_OFFSET_NONE" value="-1">
+ <type name="int"/>
+ </constant>
+ <constant name="BUFFER_TRACE_NAME" value="GstBuffer">
+ <type name="utf8"/>
+ </constant>
+ <class name="Bin"
+ c:type="GstBin"
+ doc="The GstBin base class. Subclasses can access these fields provided
+the LOCK is taken."
+ parent="Element"
+ glib:type-name="GstBin"
+ glib:get-type="gst_bin_get_type"
+ glib:type-struct="BinClass">
+ <implements name="ChildProxy"/>
+ <constructor name="new"
+ c:identifier="gst_bin_new"
+ doc="Creates a new bin with the given name.">
+ <return-value transfer-ownership="full">
+ <type name="Bin" c:type="GstElement*"/>
+ </return-value>
+ <parameters>
+ <parameter name="name" transfer-ownership="none">
+ <type name="utf8" c:type="gchar*"/>
+ </parameter>
+ </parameters>
+ </constructor>
+ <virtual-method name="add_element">
+ <return-value transfer-ownership="none">
+ <type name="boolean" c:type="gboolean"/>
+ </return-value>
+ <parameters>
+ <parameter name="element" transfer-ownership="none">
+ <type name="Element" c:type="GstElement*"/>
+ </parameter>
+ </parameters>
+ </virtual-method>
+ <virtual-method name="remove_element">
+ <return-value transfer-ownership="none">
+ <type name="boolean" c:type="gboolean"/>
+ </return-value>
+ <parameters>
+ <parameter name="element" transfer-ownership="none">
+ <type name="Element" c:type="GstElement*"/>
+ </parameter>
+ </parameters>
+ </virtual-method>
+ <virtual-method name="handle_message">
+ <return-value transfer-ownership="none">
+ <type name="none" c:type="void"/>
+ </return-value>
+ <parameters>
+ <parameter name="message" transfer-ownership="none">
+ <type name="Message" c:type="GstMessage*"/>
+ </parameter>
+ </parameters>
+ </virtual-method>
+ <method name="add"
+ c:identifier="gst_bin_add"
+ doc="Adds the given element to the bin. Sets the element's parent, and thus
+takes ownership of the element. An element can only be added to one bin.
+If the element's pads are linked to other pads, the pads will be unlinked
+before the element is added to the bin.
+MT safe.
+the bin does not want to accept the element.">
+ <return-value transfer-ownership="none">
+ <type name="boolean" c:type="gboolean"/>
+ </return-value>
+ <parameters>
+ <parameter name="element" transfer-ownership="none">
+ <type name="Element" c:type="GstElement*"/>
+ </parameter>
+ </parameters>
+ </method>
+ <method name="remove"
+ c:identifier="gst_bin_remove"
+ doc="Removes the element from the bin, unparenting it as well.
+Unparenting the element means that the element will be dereferenced,
+so if the bin holds the only reference to the element, the element
+will be freed in the process of removing it from the bin. If you
+want the element to still exist after removing, you need to call
+gst_object_ref() before removing it from the bin.
+If the element's pads are linked to other pads, the pads will be unlinked
+before the element is removed from the bin.
+MT safe.
+the bin does not want to remove the element.">
+ <return-value transfer-ownership="none">
+ <type name="boolean" c:type="gboolean"/>
+ </return-value>
+ <parameters>
+ <parameter name="element" transfer-ownership="none">
+ <type name="Element" c:type="GstElement*"/>
+ </parameter>
+ </parameters>
+ </method>
+ <method name="get_by_name"
+ c:identifier="gst_bin_get_by_name"
+ doc="Gets the element with the given name from a bin. This
+function recurses into child bins.
+Returns NULL if no element with the given name is found in the bin.
+MT safe. Caller owns returned reference.">
+ <return-value transfer-ownership="full">
+ <type name="Element" c:type="GstElement*"/>
+ </return-value>
+ <parameters>
+ <parameter name="name" transfer-ownership="none">
+ <type name="utf8" c:type="gchar*"/>
+ </parameter>
+ </parameters>
+ </method>
+ <method name="get_by_name_recurse_up"
+ c:identifier="gst_bin_get_by_name_recurse_up"
+ doc="Gets the element with the given name from this bin. If the
+element is not found, a recursion is performed on the parent bin.
+Returns NULL if:
+- no element with the given name is found in the bin
+MT safe. Caller owns returned reference.">
+ <return-value transfer-ownership="full">
+ <type name="Element" c:type="GstElement*"/>
+ </return-value>
+ <parameters>
+ <parameter name="name" transfer-ownership="none">
+ <type name="utf8" c:type="gchar*"/>
+ </parameter>
+ </parameters>
+ </method>
+ <method name="get_by_interface"
+ c:identifier="gst_bin_get_by_interface"
+ doc="Looks for an element inside the bin that implements the given
+interface. If such an element is found, it returns the element.
+You can cast this element to the given interface afterwards. If you want
+all elements that implement the interface, use
+gst_bin_iterate_all_by_interface(). This function recurses into child bins.
+MT safe. Caller owns returned reference.">
+ <return-value transfer-ownership="full">
+ <type name="Element" c:type="GstElement*"/>
+ </return-value>
+ <parameters>
+ <parameter name="iface" transfer-ownership="none">
+ <type name="GType" c:type="GType"/>
+ </parameter>
+ </parameters>
+ </method>
+ <method name="iterate_elements"
+ c:identifier="gst_bin_iterate_elements"
+ doc="Gets an iterator for the elements in this bin.
+Each element yielded by the iterator will have its refcount increased, so
+unref after use.
+MT safe. Caller owns returned value.">
+ <return-value transfer-ownership="full">
+ <type name="Iterator" c:type="GstIterator*"/>
+ </return-value>
+ </method>
+ <method name="iterate_sorted"
+ c:identifier="gst_bin_iterate_sorted"
+ doc="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.">
+ <return-value transfer-ownership="full">
+ <type name="Iterator" c:type="GstIterator*"/>
+ </return-value>
+ </method>
+ <method name="iterate_recurse"
+ c:identifier="gst_bin_iterate_recurse"
+ doc="Gets an iterator for the elements in this bin.
+This iterator recurses into GstBin children.
+Each element yielded by the iterator will have its refcount increased, so
+unref after use.
+MT safe. Caller owns returned value.">
+ <return-value transfer-ownership="full">
+ <type name="Iterator" c:type="GstIterator*"/>
+ </return-value>
+ </method>
+ <method name="iterate_sinks"
+ c:identifier="gst_bin_iterate_sinks"
+ doc="Gets an iterator for all elements in the bin that have the
+#GST_ELEMENT_IS_SINK flag set.
+Each element yielded by the iterator will have its refcount increased, so
+unref after use.
+MT safe. Caller owns returned value.">
+ <return-value transfer-ownership="full">
+ <type name="Iterator" c:type="GstIterator*"/>
+ </return-value>
+ </method>
+ <method name="iterate_sources"
+ c:identifier="gst_bin_iterate_sources"
+ doc="Gets an iterator for all elements in the bin that have no sinkpads and have
+the #GST_ELEMENT_IS_SINK flag unset.
+Each element yielded by the iterator will have its refcount increased, so
+unref after use.
+MT safe. Caller owns returned value.">
+ <return-value transfer-ownership="full">
+ <type name="Iterator" c:type="GstIterator*"/>
+ </return-value>
+ </method>
+ <method name="iterate_all_by_interface"
+ c:identifier="gst_bin_iterate_all_by_interface"
+ doc="Looks for all elements inside the bin that implements the given
+interface. You can safely cast all returned elements to the given interface.
+The function recurses inside child bins. The iterator will yield a series
+of #GstElement that should be unreffed after use.
+Each element yielded by the iterator will have its refcount increased, so
+unref after use.
+MT safe. Caller owns returned value.
+implementing the given interface, or NULL">
+ <return-value transfer-ownership="full">
+ <type name="Iterator" c:type="GstIterator*"/>
+ </return-value>
+ <parameters>
+ <parameter name="iface" transfer-ownership="none">
+ <type name="GType" c:type="GType"/>
+ </parameter>
+ </parameters>
+ </method>
+ <method name="recalculate_latency"
+ c:identifier="gst_bin_recalculate_latency"
+ doc="Query @bin for the current latency using and reconfigures this latency to all the
+elements with a LATENCY event.
+This method is typically called on the pipeline when a #GST_MESSAGE_LATENCY
+is posted on the bus.
+This function simply emits the 'do-latency' signal so any custom latency
+calculations will be performed."
+ version="0.10.22.">
+ <return-value transfer-ownership="none">
+ <type name="boolean" c:type="gboolean"/>
+ </return-value>
+ </method>
+ <method name="add_many"
+ c:identifier="gst_bin_add_many"
+ doc="Adds a NULL-terminated list of elements to a bin. This function is
+equivalent to calling gst_bin_add() for each member of the list. The return
+value of each gst_bin_add() is ignored.">
+ <return-value transfer-ownership="none">
+ <type name="none" c:type="void"/>
+ </return-value>
+ <parameters>
+ <parameter name="element_1" transfer-ownership="none">
+ <type name="Element" c:type="GstElement*"/>
+ </parameter>
+ <parameter transfer-ownership="none">
+ <varargs>
+ </varargs>
+ </parameter>
+ </parameters>
+ </method>
+ <method name="remove_many"
+ c:identifier="gst_bin_remove_many"
+ doc="Remove a list of elements from a bin. This function is equivalent
+to calling gst_bin_remove() with each member of the list.">
+ <return-value transfer-ownership="none">
+ <type name="none" c:type="void"/>
+ </return-value>
+ <parameters>
+ <parameter name="element_1" transfer-ownership="none">
+ <type name="Element" c:type="GstElement*"/>
+ </parameter>
+ <parameter transfer-ownership="none">
+ <varargs>
+ </varargs>
+ </parameter>
+ </parameters>
+ </method>
+ <method name="find_unlinked_pad"
+ c:identifier="gst_bin_find_unlinked_pad"
+ doc="Recursively looks for elements with an unlinked pad of the given
+direction within the specified bin and returns an unlinked pad
+if one is found, or NULL otherwise. If a pad is found, the caller
+owns a reference to it and should use gst_object_unref() on the
+pad when it is not needed any longer."
+ version="0.10.20">
+ <return-value transfer-ownership="full">
+ <type name="Pad" c:type="GstPad*"/>
+ </return-value>
+ <parameters>
+ <parameter name="direction" transfer-ownership="none">
+ <type name="PadDirection" c:type="GstPadDirection"/>
+ </parameter>
+ </parameters>
+ </method>
+ <method name="find_unconnected_pad"
+ c:identifier="gst_bin_find_unconnected_pad"
+ doc="Recursively looks for elements with an unlinked pad of the given
+direction within the specified bin and returns an unlinked pad
+if one is found, or NULL otherwise. If a pad is found, the caller
+owns a reference to it and should use gst_object_unref() on the
+pad when it is not needed any longer."
+ version="0.10.3"
+ deprecated="use gst_bin_find_unlinked_pad() instead.">
+ <return-value transfer-ownership="full">
+ <type name="Pad" c:type="GstPad*"/>
+ </return-value>
+ <parameters>
+ <parameter name="direction" transfer-ownership="none">
+ <type name="PadDirection" c:type="GstPadDirection"/>
+ </parameter>
+ </parameters>
+ </method>
+ <property name="async-handling" writable="1">
+ <type name="boolean" c:type="gboolean"/>
+ </property>
+ <field name="element">
+ <type name="Element" c:type="GstElement"/>
+ </field>
+ <field name="numchildren">
+ <type name="int" c:type="gint"/>
+ </field>
+ <field name="children">
+ <type name="GLib.List" c:type="GList*"/>
+ </field>
+ <field name="children_cookie">
+ <type name="uint32" c:type="guint32"/>
+ </field>
+ <field name="child_bus">
+ <type name="Bus" c:type="GstBus*"/>
+ </field>
+ <field name="messages">
+ <type name="GLib.List" c:type="GList*"/>
+ </field>
+ <field name="polling">
+ <type name="boolean" c:type="gboolean"/>
+ </field>
+ <field name="state_dirty">
+ <type name="boolean" c:type="gboolean"/>
+ </field>
+ <field name="clock_dirty">
+ <type name="boolean" c:type="gboolean"/>
+ </field>
+ <field name="provided_clock">
+ <type name="Clock" c:type="GstClock*"/>
+ </field>
+ <field name="clock_provider">
+ <type name="Element" c:type="GstElement*"/>
+ </field>
+ <field name="priv">
+ <type name="BinPrivate" c:type="GstBinPrivate*"/>
+ </field>
+ <field name="_gst_reserved">
+ <array zero-terminated="0" c:type="gpointer" fixed-size="3">
+ <type name="any"/>
+ </array>
+ </field>
+ <glib:signal name="do-latency"
+ doc="Will be emitted when the bin needs to perform latency calculations. This
+signal is only emited for toplevel bins or when async-handling is
+enabled.
+Only one signal handler is invoked. If no signals are connected, the
+default handler is invoked, which will query and distribute the lowest
+possible latency to all sinks.
+Connect to this signal if the default latency calculations are not
+sufficient, like when you need different latencies for different sinks in
+the same pipeline."
+ version="0.10.22">
+ <return-value transfer-ownership="full">
+ <type name="boolean" c:type="gboolean"/>
+ </return-value>
+ </glib:signal>
+ <glib:signal name="element-added"
+ doc="Will be emitted after the element was added to the bin.">
+ <return-value transfer-ownership="full">
+ <type name="none" c:type="void"/>
+ </return-value>
+ <parameters>
+ <parameter name="element" transfer-ownership="none">
+ <type name="Element" c:type="GstElement"/>
+ </parameter>
+ </parameters>
+ </glib:signal>
+ <glib:signal name="element-removed"
+ doc="Will be emitted after the element was removed from the bin.">
+ <return-value transfer-ownership="full">
+ <type name="none" c:type="void"/>
+ </return-value>
+ <parameters>
+ <parameter name="element" transfer-ownership="none">
+ <type name="Element" c:type="GstElement"/>
+ </parameter>
+ </parameters>
+ </glib:signal>
+ </class>
+ <record name="BinClass"
+ c:type="GstBinClass"
+ glib:is-gtype-struct-for="Bin"
+ doc="Subclasses can override the @add_element and @remove_element to
+update the list of children in the bin.
+The @handle_message method can be overridden to implement custom
+message handling. @handle_message takes ownership of the message, just like
+#gst_element_post_message.">
+ <field name="parent_class">
+ <type name="ElementClass" c:type="GstElementClass"/>
+ </field>
+ <field name="pool">
+ <type name="GLib.ThreadPool" c:type="GThreadPool*"/>
+ </field>
+ <field name="element_added">
+ <callback name="element_added" c:type="element_added">
+ <return-value transfer-ownership="none">
+ <type name="none" c:type="void"/>
+ </return-value>
+ <parameters>
+ <parameter name="bin" transfer-ownership="none">
+ <type name="Bin" c:type="GstBin*"/>
+ </parameter>
+ <parameter name="child" transfer-ownership="none">
+ <type name="Element" c:type="GstElement*"/>
+ </parameter>
+ </parameters>
+ </callback>
+ </field>
+ <field name="element_removed">
+ <callback name="element_removed" c:type="element_removed">
+ <return-value transfer-ownership="none">
+ <type name="none" c:type="void"/>
+ </return-value>
+ <parameters>
+ <parameter name="bin" transfer-ownership="none">
+ <type name="Bin" c:type="GstBin*"/>
+ </parameter>
+ <parameter name="child" transfer-ownership="none">
+ <type name="Element" c:type="GstElement*"/>
+ </parameter>
+ </parameters>
+ </callback>
+ </field>
+ <field name="add_element">
+ <callback name="add_element" c:type="add_element">
+ <return-value transfer-ownership="none">
+ <type name="boolean" c:type="gboolean"/>
+ </return-value>
+ <parameters>
+ <parameter name="bin" transfer-ownership="none">
+ <type name="Bin" c:type="GstBin*"/>
+ </parameter>
+ <parameter name="element" transfer-ownership="none">
+ <type name="Element" c:type="GstElement*"/>
+ </parameter>
+ </parameters>
+ </callback>
+ </field>
+ <field name="remove_element">
+ <callback name="remove_element" c:type="remove_element">
+ <return-value transfer-ownership="none">
+ <type name="boolean" c:type="gboolean"/>
+ </return-value>
+ <parameters>
+ <parameter name="bin" transfer-ownership="none">
+ <type name="Bin" c:type="GstBin*"/>
+ </parameter>
+ <parameter name="element" transfer-ownership="none">
+ <type name="Element" c:type="GstElement*"/>
+ </parameter>
+ </parameters>
+ </callback>
+ </field>
+ <field name="handle_message">
+ <callback name="handle_message" c:type="handle_message">
+ <return-value transfer-ownership="none">
+ <type name="none" c:type="void"/>
+ </return-value>
+ <parameters>
+ <parameter name="bin" transfer-ownership="none">
+ <type name="Bin" c:type="GstBin*"/>
+ </parameter>
+ <parameter name="message" transfer-ownership="none">
+ <type name="Message" c:type="GstMessage*"/>
+ </parameter>
+ </parameters>
+ </callback>
+ </field>
+ <field name="do_latency">
+ <callback name="do_latency" c:type="do_latency">
+ <return-value transfer-ownership="none">
+ <type name="boolean" c:type="gboolean"/>
+ </return-value>
+ <parameters>
+ <parameter name="bin" transfer-ownership="none">
+ <type name="Bin" c:type="GstBin*"/>
+ </parameter>
+ </parameters>
+ </callback>
+ </field>
+ <field name="_gst_reserved">
+ <array zero-terminated="0" c:type="gpointer" fixed-size="3">
+ <type name="any"/>
+ </array>
+ </field>
+ </record>
+ <bitfield name="BinFlags"
+ doc="Derived classes can use this as first value in a list of flags.
+GstBinFlags are a set of flags specific to bins. Most are set/used
+internally. They can be checked using the GST_OBJECT_FLAG_IS_SET () macro,
+and (un)set using GST_OBJECT_FLAG_SET () and GST_OBJECT_FLAG_UNSET ()."
+ c:type="GstBinFlags">
+ <member name="bin_flag_last"
+ value="33554432"
+ c:identifier="GST_BIN_FLAG_LAST"/>
+ </bitfield>
+ <record name="BinPrivate" c:type="GstBinPrivate">
+ </record>
+ <record name="Buffer"
+ c:type="GstBuffer"
+ doc="timestamp is not known or relevant.
+when the duration is not known or relevant.
+For video frames, this is the frame number of this buffer.
+For audio samples, this is the offset of the first sample in this buffer.
+For file data or compressed data this is the byte offset of the first
+byte in this buffer.
+format as @offset.
+When the buffer is freed, this data will freed with @free_func.
+to g_free(). Since 0.10.22.
+The structure of a #GstBuffer. Use the associated macros to access the public
+variables.">
+ <field name="mini_object" writable="1">
+ <type name="MiniObject" c:type="GstMiniObject"/>
+ </field>
+ <field name="data" writable="1">
+ <type name="any" c:type="guint8*"/>
+ </field>
+ <field name="size" writable="1">
+ <type name="uint" c:type="guint"/>
+ </field>
+ <field name="timestamp" writable="1">
+ <type name="ClockTime" c:type="GstClockTime"/>
+ </field>
+ <field name="duration" writable="1">
+ <type name="ClockTime" c:type="GstClockTime"/>
+ </field>
+ <field name="caps" writable="1">
+ <type name="Caps" c:type="GstCaps*"/>
+ </field>
+ <field name="offset" writable="1">
+ <type name="uint64" c:type="guint64"/>
+ </field>
+ <field name="offset_end" writable="1">
+ <type name="uint64" c:type="guint64"/>
+ </field>
+ <field name="malloc_data" writable="1">
+ <type name="any" c:type="guint8*"/>
+ </field>
+ <field name="free_func" writable="1">
+ <type name="GLib.FreeFunc" c:type="GFreeFunc"/>
+ </field>
+ <field name="parent" writable="1">
+ <type name="Buffer" c:type="GstBuffer*"/>
+ </field>
+ <field name="_gst_reserved" writable="1">
+ <array zero-terminated="0" c:type="gpointer" fixed-size="2">
+ <type name="any"/>
+ </array>
+ </field>
+ <constructor name="new"
+ c:identifier="gst_buffer_new"
+ doc="Creates a newly allocated buffer without any data.
+MT safe.">
+ <return-value transfer-ownership="full">
+ <type name="Buffer" c:type="GstBuffer*"/>
+ </return-value>
+ </constructor>
+ <constructor name="new_and_alloc"
+ c:identifier="gst_buffer_new_and_alloc"
+ doc="Creates a newly allocated buffer with data of the given size.
+The buffer memory is not cleared. If the requested amount of
+memory can't be allocated, the program will abort. Use
+gst_buffer_try_new_and_alloc() if you want to handle this case
+gracefully or have gotten the size to allocate from an untrusted
+source such as a media stream.
+Note that when @size == 0, the buffer data pointer will be NULL.
+MT safe.">
+ <return-value transfer-ownership="full">
+ <type name="Buffer" c:type="GstBuffer*"/>
+ </return-value>
+ <parameters>
+ <parameter name="size" transfer-ownership="none">
+ <type name="uint" c:type="guint"/>
+ </parameter>
+ </parameters>
+ </constructor>
+ <method name="copy_metadata"
+ c:identifier="gst_buffer_copy_metadata"
+ doc="Copies the metadata from @src into @dest. The data, size and mallocdata
+fields are not copied.
+all the metadata fields.
+This function is typically called from a custom buffer copy function after
+creating @dest and setting the data, size, mallocdata."
+ version="0.10.13">
+ <return-value transfer-ownership="none">
+ <type name="none" c:type="void"/>
+ </return-value>
+ <parameters>
+ <parameter name="src" transfer-ownership="none">
+ <type name="Buffer" c:type="GstBuffer*"/>
+ </parameter>
+ <parameter name="flags" transfer-ownership="none">
+ <type name="BufferCopyFlags" c:type="GstBufferCopyFlags"/>
+ </parameter>
+ </parameters>
+ </method>
+ <method name="is_metadata_writable"
+ c:identifier="gst_buffer_is_metadata_writable"
+ doc="Similar to gst_buffer_is_writable, but this only ensures that the
+refcount of the buffer is 1, indicating that the caller is the sole
+owner and can change the buffer metadata, such as caps and timestamps.">
+ <return-value transfer-ownership="none">
+ <type name="boolean" c:type="gboolean"/>
+ </return-value>
+ </method>
+ <method name="make_metadata_writable"
+ c:identifier="gst_buffer_make_metadata_writable"
+ doc="Similar to gst_buffer_make_writable, but does not ensure that the buffer
+data array is writable. Instead, this just ensures that the returned buffer
+is solely owned by the caller, by creating a subbuffer of the original
+buffer if necessary.
+After calling this function, @buf should not be referenced anymore. The
+result of this function has guaranteed writable metadata.">
+ <return-value transfer-ownership="full">
+ <type name="Buffer" c:type="GstBuffer*"/>
+ </return-value>
+ </method>
+ <method name="get_caps"
+ c:identifier="gst_buffer_get_caps"
+ doc="Gets the media type of the buffer. This can be NULL if there
+is no media type attached to this buffer.
+Returns NULL if there were no caps on this buffer.">
+ <return-value transfer-ownership="full">
+ <type name="Caps" c:type="GstCaps*"/>
+ </return-value>
+ </method>
+ <method name="set_caps"
+ c:identifier="gst_buffer_set_caps"
+ doc="Sets the media type on the buffer. The refcount of the caps will
+be increased and any previous caps on the buffer will be
+unreffed.">
+ <return-value transfer-ownership="none">
+ <type name="none" c:type="void"/>
+ </return-value>
+ <parameters>
+ <parameter name="caps" transfer-ownership="none">
+ <type name="Caps" c:type="GstCaps*"/>
+ </parameter>
+ </parameters>
+ </method>
+ <method name="create_sub"
+ c:identifier="gst_buffer_create_sub"
+ doc="begins.
+Creates a sub-buffer from @parent at @offset and @size.
+This sub-buffer uses the actual memory space of the parent buffer.
+This function will copy the offset and timestamp fields when the
+offset is 0. If not, they will be set to #GST_CLOCK_TIME_NONE and
+#GST_BUFFER_OFFSET_NONE.
+If @offset equals 0 and @size equals the total size of @buffer, the
+duration and offset end fields are also copied. If not they will be set
+to #GST_CLOCK_TIME_NONE and #GST_BUFFER_OFFSET_NONE.
+MT safe.
+Returns NULL if the arguments were invalid.">
+ <return-value transfer-ownership="full">
+ <type name="Buffer" c:type="GstBuffer*"/>
+ </return-value>
+ <parameters>
+ <parameter name="offset" transfer-ownership="none">
+ <type name="uint" c:type="guint"/>
+ </parameter>
+ <parameter name="size" transfer-ownership="none">
+ <type name="uint" c:type="guint"/>
+ </parameter>
+ </parameters>
+ </method>
+ <method name="is_span_fast"
+ c:identifier="gst_buffer_is_span_fast"
+ doc="Determines whether a gst_buffer_span() can be done without copying
+the contents, that is, whether the data areas are contiguous sub-buffers of
+the same buffer.
+MT safe.
+FALSE if a copy would be required.">
+ <return-value transfer-ownership="none">
+ <type name="boolean" c:type="gboolean"/>
+ </return-value>
+ <parameters>
+ <parameter name="buf2" transfer-ownership="none">
+ <type name="Buffer" c:type="GstBuffer*"/>
+ </parameter>
+ </parameters>
+ </method>
+ <method name="span"
+ c:identifier="gst_buffer_span"
+ doc="buffer should start.
+Creates a new buffer that consists of part of buf1 and buf2.
+Logically, buf1 and buf2 are concatenated into a single larger
+buffer, and a new buffer is created at the given offset inside
+this space, with a given length.
+If the two source buffers are children of the same larger buffer,
+and are contiguous, the new buffer will be a child of the shared
+parent, and thus no copying is necessary. you can use
+gst_buffer_is_span_fast() to determine if a memcpy will be needed.
+MT safe.
+Returns NULL if the arguments are invalid.">
+ <return-value transfer-ownership="full">
+ <type name="Buffer" c:type="GstBuffer*"/>
+ </return-value>
+ <parameters>
+ <parameter name="offset" transfer-ownership="none">
+ <type name="uint32" c:type="guint32"/>
+ </parameter>
+ <parameter name="buf2" transfer-ownership="none">
+ <type name="Buffer" c:type="GstBuffer*"/>
+ </parameter>
+ <parameter name="len" transfer-ownership="none">
+ <type name="uint32" c:type="guint32"/>
+ </parameter>
+ </parameters>
+ </method>
+ <method name="merge"
+ c:identifier="gst_buffer_merge"
+ doc="Create a new buffer that is the concatenation of the two source
+buffers. The original source buffers will not be modified or
+unref'd. Make sure you unref the source buffers if they are not used
+anymore afterwards.
+If the buffers point to contiguous areas of memory, the buffer
+is created without copying the data.">
+ <return-value transfer-ownership="full">
+ <type name="Buffer" c:type="GstBuffer*"/>
+ </return-value>
+ <parameters>
+ <parameter name="buf2" transfer-ownership="none">
+ <type name="Buffer" c:type="GstBuffer*"/>
+ </parameter>
+ </parameters>
+ </method>
+ <method name="join"
+ c:identifier="gst_buffer_join"
+ doc="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.
+This is a convenience function for C programmers. See also
+gst_buffer_merge(), which does the same thing without
+unreffing the input parameters. Language bindings without
+explicit reference counting should not wrap this function.">
+ <return-value transfer-ownership="full">
+ <type name="Buffer" c:type="GstBuffer*"/>
+ </return-value>
+ <parameters>
+ <parameter name="buf2" transfer-ownership="none">
+ <type name="Buffer" c:type="GstBuffer*"/>
+ </parameter>
+ </parameters>
+ </method>
+ <method name="stamp"
+ c:identifier="gst_buffer_stamp"
+ doc="Copies additional information (the timestamp, duration, and offset start
+and end) from one buffer to the other.
+This function does not copy any buffer flags or caps and is equivalent to
+gst_buffer_copy_metadata(@dest, @src, GST_BUFFER_COPY_TIMESTAMPS).
+control."
+ deprecated="use gst_buffer_copy_metadata() instead, it provides more">
+ <return-value transfer-ownership="none">
+ <type name="none" c:type="void"/>
+ </return-value>
+ <parameters>
+ <parameter name="src" transfer-ownership="none">
+ <type name="Buffer" c:type="GstBuffer*"/>
+ </parameter>
+ </parameters>
+ </method>
+ </record>
+ <record name="BufferClass" c:type="GstBufferClass">
+ <field name="mini_object_class" writable="1">
+ <type name="MiniObjectClass" c:type="GstMiniObjectClass"/>
+ </field>
+ </record>
+ <bitfield name="BufferCopyFlags"
+ doc="offset and offset_end should be copied
+A set of flags that can be provided to the gst_buffer_copy_metadata()
+function to specify which metadata fields should be copied."
+ version="0.10.13"
+ c:type="GstBufferCopyFlags">
+ <member name="flags" value="1" c:identifier="GST_BUFFER_COPY_FLAGS"/>
+ <member name="timestamps"
+ value="2"
+ c:identifier="GST_BUFFER_COPY_TIMESTAMPS"/>
+ <member name="caps" value="4" c:identifier="GST_BUFFER_COPY_CAPS"/>
+ </bitfield>
+ <bitfield name="BufferFlag"
+ doc="the buffer should not be modified. The metadata might still be modified.
+displayed.
+This typically occurs after a seek or a dropped buffer from a live or
+network source.
+stream and contains media neutral data (elements can switch to optimized code
+path that ignores the buffer content).
+A set of buffer flags used to describe properties of a #GstBuffer."
+ c:type="GstBufferFlag">
+ <member name="readonly"
+ value="1"
+ c:identifier="GST_BUFFER_FLAG_READONLY"/>
+ <member name="preroll"
+ value="16"
+ c:identifier="GST_BUFFER_FLAG_PREROLL"/>
+ <member name="discont"
+ value="32"
+ c:identifier="GST_BUFFER_FLAG_DISCONT"/>
+ <member name="in_caps"
+ value="64"
+ c:identifier="GST_BUFFER_FLAG_IN_CAPS"/>
+ <member name="gap" value="128" c:identifier="GST_BUFFER_FLAG_GAP"/>
+ <member name="delta_unit"
+ value="256"
+ c:identifier="GST_BUFFER_FLAG_DELTA_UNIT"/>
+ <member name="media1" value="512" c:identifier="GST_BUFFER_FLAG_MEDIA1"/>
+ <member name="media2"
+ value="1024"
+ c:identifier="GST_BUFFER_FLAG_MEDIA2"/>
+ <member name="media3"
+ value="2048"
+ c:identifier="GST_BUFFER_FLAG_MEDIA3"/>
+ <member name="last" value="4096" c:identifier="GST_BUFFER_FLAG_LAST"/>
+ </bitfield>
+ <record name="BufferList"
+ c:type="GstBufferList"
+ doc="Opaque list of grouped buffers."
+ version="0.10.24">
+ <constructor name="new"
+ c:identifier="gst_buffer_list_new"
+ doc="Creates a new, empty #GstBufferList. The caller is responsible for unreffing
+the returned #GstBufferList."
+ version="0.10.24">
+ <return-value transfer-ownership="full" doc="after usage.">
+ <type name="BufferList" c:type="GstBufferList*"/>
+ </return-value>
+ </constructor>
+ <method name="n_groups"
+ c:identifier="gst_buffer_list_n_groups"
+ doc="Returns the number of groups in @list."
+ version="0.10.24">
+ <return-value transfer-ownership="none">
+ <type name="uint" c:type="guint"/>
+ </return-value>
+ </method>
+ <method name="foreach"
+ c:identifier="gst_buffer_list_foreach"
+ doc="Call @func with @data for each buffer in @list.
+of @func define if this function returns or if the remaining buffers in a
+group should be skipped."
+ version="0.10.24">
+ <return-value transfer-ownership="none">
+ <type name="none" c:type="void"/>
+ </return-value>
+ <parameters>
+ <parameter name="func"
+ transfer-ownership="none"
+ scope="call"
+ closure="2">
+ <type name="BufferListFunc" c:type="GstBufferListFunc"/>
+ </parameter>
+ <parameter name="user_data" transfer-ownership="none">
+ <type name="any" c:type="gpointer"/>
+ </parameter>
+ </parameters>
+ </method>
+ <method name="get"
+ c:identifier="gst_buffer_list_get"
+ doc="Get the buffer at @idx in @group.
+Note that this function is not efficient for iterating over the entire list.
+Use an iterator or gst_buffer_list_foreach() instead.
+buffer remains valid as long as @list is valid."
+ version="0.10.24">
+ <return-value transfer-ownership="full">
+ <type name="Buffer" c:type="GstBuffer*"/>
+ </return-value>
+ <parameters>
+ <parameter name="group" transfer-ownership="none">
+ <type name="uint" c:type="guint"/>
+ </parameter>
+ <parameter name="idx" transfer-ownership="none">
+ <type name="uint" c:type="guint"/>
+ </parameter>
+ </parameters>
+ </method>
+ <method name="iterate"
+ c:identifier="gst_buffer_list_iterate"
+ doc="Iterate the buffers in @list. The owner of the iterator must also be the
+owner of a reference to @list while the returned iterator is in use.
+gst_buffer_list_iterator_free() after usage"
+ version="0.10.24">
+ <return-value transfer-ownership="full">
+ <type name="BufferListIterator" c:type="GstBufferListIterator*"/>
+ </return-value>
+ </method>
+ </record>
+ <record name="BufferListClass" c:type="GstBufferListClass">
+ </record>
+ <callback name="BufferListDoFunction"
+ c:type="GstBufferListDoFunction"
+ doc="A function for accessing the last buffer returned by
+gst_buffer_list_iterator_next(). The function can leave @buffer in the list,
+replace @buffer in the list or remove @buffer from the list, depending on
+the return value. If the function returns NULL, @buffer will be removed from
+the list, otherwise @buffer will be replaced with the returned buffer.
+The last buffer returned by gst_buffer_list_iterator_next() will be replaced
+with the buffer returned from the function. The function takes ownership of
+unreffed. If NULL is returned, the buffer will be removed from the list. The
+list must be writable.
+from the list"
+ version="0.10.24">
+ <return-value transfer-ownership="full">
+ <type name="Buffer" c:type="GstBuffer*"/>
+ </return-value>
+ <parameters>
+ <parameter name="buffer" transfer-ownership="none">
+ <type name="Buffer" c:type="GstBuffer*"/>
+ </parameter>
+ <parameter name="user_data" transfer-ownership="none" closure="1">
+ <type name="any" c:type="gpointer"/>
+ </parameter>
+ </parameters>
+ </callback>
+ <callback name="BufferListFunc"
+ c:type="GstBufferListFunc"
+ doc="A function that will be called from gst_buffer_list_foreach(). The @buffer
+field will point to a the reference of the buffer at @idx in @group.
+When this function returns #GST_BUFFER_LIST_CONTINUE, the next buffer will be
+returned. When #GST_BUFFER_LIST_SKIP_GROUP is returned, all remaining buffers
+in the current group will be skipped and the first buffer of the next group
+is returned (if any). When GST_BUFFER_LIST_END is returned,
+gst_buffer_list_foreach() will return.
+When @buffer is set to NULL, the item will be removed from the bufferlist.
+When @buffer has been made writable, the new buffer reference can be assigned
+to @buffer. This function is responsible for unreffing the old buffer when
+removing or modifying."
+ version="0.10.24">
+ <return-value transfer-ownership="full">
+ <type name="BufferListItem" c:type="GstBufferListItem"/>
+ </return-value>
+ <parameters>
+ <parameter name="buffer" transfer-ownership="none">
+ <type name="Buffer" c:type="GstBuffer**"/>
+ </parameter>
+ <parameter name="group" transfer-ownership="none">
+ <type name="uint" c:type="guint"/>
+ </parameter>
+ <parameter name="idx" transfer-ownership="none">
+ <type name="uint" c:type="guint"/>
+ </parameter>
+ <parameter name="user_data" transfer-ownership="none" closure="3">
+ <type name="any" c:type="gpointer"/>
+ </parameter>
+ </parameters>
+ </callback>
+ <enumeration name="BufferListItem"
+ doc="The result of the #GstBufferListFunc."
+ version="0.10.24"
+ c:type="GstBufferListItem">
+ <member name="continue"
+ value="0"
+ c:identifier="GST_BUFFER_LIST_CONTINUE"/>
+ <member name="skip_group"
+ value="1"
+ c:identifier="GST_BUFFER_LIST_SKIP_GROUP"/>
+ <member name="end" value="2" c:identifier="GST_BUFFER_LIST_END"/>
+ </enumeration>
+ <record name="BufferListIterator"
+ c:type="GstBufferListIterator"
+ doc="Opaque iterator for a #GstBufferList."
+ version="0.10.24">
+ <method name="free"
+ c:identifier="gst_buffer_list_iterator_free"
+ doc="Free the iterator."
+ version="0.10.24">
+ <return-value transfer-ownership="none">
+ <type name="none" c:type="void"/>
+ </return-value>
+ </method>
+ <method name="n_buffers"
+ c:identifier="gst_buffer_list_iterator_n_buffers"
+ doc="Returns the number of buffers left to iterate in the current group. I.e. the
+number of calls that can be made to gst_buffer_list_iterator_next() before
+it returns NULL.
+This function will not move the implicit cursor or in any other way affect
+the state of the iterator @it."
+ version="0.10.24">
+ <return-value transfer-ownership="none">
+ <type name="uint" c:type="guint"/>
+ </return-value>
+ </method>
+ <method name="next"
+ c:identifier="gst_buffer_list_iterator_next"
+ doc="Returns the next buffer in the list iterated with @it. If the iterator is at
+the end of a group, NULL will be returned. This function may be called
+repeatedly to iterate through the current group.
+The caller will not get a new ref to the returned #GstBuffer and must not
+unref it."
+ version="0.10.24">
+ <return-value transfer-ownership="full">
+ <type name="Buffer" c:type="GstBuffer*"/>
+ </return-value>
+ </method>
+ <method name="next_group"
+ c:identifier="gst_buffer_list_iterator_next_group"
+ doc="Advance the iterator @it to the first buffer in the next group. If the
+iterator is at the last group, FALSE will be returned. This function may be
+called repeatedly to iterate through the groups in a buffer list.
+the iterator was already at the last group"
+ version="0.10.24">
+ <return-value transfer-ownership="none">
+ <type name="boolean" c:type="gboolean"/>
+ </return-value>
+ </method>
+ <method name="add"
+ c:identifier="gst_buffer_list_iterator_add"
+ doc="Inserts @buffer into the #GstBufferList iterated with @it. The buffer is
+inserted into the current group, immediately before the buffer that would be
+returned by gst_buffer_list_iterator_next(). The buffer is inserted before
+the implicit cursor, a subsequent call to gst_buffer_list_iterator_next()
+will return the buffer after the inserted buffer, if any.
+This function takes ownership of @buffer."
+ version="0.10.24">
+ <return-value transfer-ownership="none">
+ <type name="none" c:type="void"/>
+ </return-value>
+ <parameters>
+ <parameter name="buffer" transfer-ownership="none">
+ <type name="Buffer" c:type="GstBuffer*"/>
+ </parameter>
+ </parameters>
+ </method>
+ <method name="add_group"
+ c:identifier="gst_buffer_list_iterator_add_group"
+ doc="Inserts a new, empty group into the #GstBufferList iterated with @it. The
+group is inserted immediately before the group that would be returned by
+gst_buffer_list_iterator_next_group(). A subsequent call to
+gst_buffer_list_iterator_next_group() will advance the iterator to the group
+after the inserted group, if any."
+ version="0.10.24">
+ <return-value transfer-ownership="none">
+ <type name="none" c:type="void"/>
+ </return-value>
+ </method>
+ <method name="remove"
+ c:identifier="gst_buffer_list_iterator_remove"
+ doc="Removes the last buffer returned by gst_buffer_list_iterator_next() from
+the #GstBufferList iterated with @it. gst_buffer_list_iterator_next() must
+have been called on @it before this function is called. This function can
+only be called once per call to gst_buffer_list_iterator_next().
+The removed buffer is unreffed."
+ version="0.10.24">
+ <return-value transfer-ownership="none">
+ <type name="none" c:type="void"/>
+ </return-value>
+ </method>
+ <method name="steal"
+ c:identifier="gst_buffer_list_iterator_steal"
+ doc="Returns the last buffer returned by gst_buffer_list_iterator_next() without
+modifying the refcount of the buffer."
+ version="0.10.24">
+ <return-value transfer-ownership="full">
+ <type name="Buffer" c:type="GstBuffer*"/>
+ </return-value>
+ </method>
+ <method name="take"
+ c:identifier="gst_buffer_list_iterator_take"
+ doc="Replaces the last buffer returned by gst_buffer_list_iterator_next() with
+this function is called. gst_buffer_list_iterator_remove() must not have been
+called since the last call to gst_buffer_list_iterator_next().
+This function unrefs the replaced buffer if it has not been stolen with
+gst_buffer_list_iterator_steal() and takes ownership of @buffer (i.e. the
+refcount of @buffer is not increased)."
+ version="0.10.24">
+ <return-value transfer-ownership="none">
+ <type name="none" c:type="void"/>
+ </return-value>
+ <parameters>
+ <parameter name="buffer" transfer-ownership="none">
+ <type name="Buffer" c:type="GstBuffer*"/>
+ </parameter>
+ </parameters>
+ </method>
+ <method name="do"
+ c:identifier="gst_buffer_list_iterator_do"
+ doc="Calls the given function for the last buffer returned by
+gst_buffer_list_iterator_next(). gst_buffer_list_iterator_next() must have
+been called on @it before this function is called.
+gst_buffer_list_iterator_remove() and gst_buffer_list_iterator_steal() must
+not have been called since the last call to gst_buffer_list_iterator_next().
+See #GstBufferListDoFunction for more details."
+ version="0.10.24">
+ <return-value transfer-ownership="full">
+ <type name="Buffer" c:type="GstBuffer*"/>
+ </return-value>
+ <parameters>
+ <parameter name="do_func"
+ transfer-ownership="none"
+ scope="call"
+ closure="2">
+ <type name="BufferListDoFunction"
+ c:type="GstBufferListDoFunction"/>
+ </parameter>
+ <parameter name="user_data" transfer-ownership="none">
+ <type name="any" c:type="gpointer"/>
+ </parameter>
+ </parameters>
+ </method>
+ <method name="merge_group"
+ c:identifier="gst_buffer_list_iterator_merge_group"
+ doc="Merge a buffer list group into a normal #GstBuffer by copying its metadata
+and memcpying its data into consecutive memory. All buffers in the current
+group after the implicit cursor will be merged into one new buffer. The
+metadata of the new buffer will be a copy of the metadata of the buffer that
+would be returned by gst_buffer_list_iterator_next(). If there is no buffer
+in the current group after the implicit cursor, NULL will be returned.
+This function will not move the implicit cursor or in any other way affect
+the state of the iterator @it or the list."
+ version="0.10.24">
+ <return-value transfer-ownership="full" doc="after usage, or NULL">
+ <type name="Buffer" c:type="GstBuffer*"/>
+ </return-value>
+ </method>
+ </record>
+ <enumeration name="BufferingMode"
+ doc="The different types of buffering methods."
+ c:type="GstBufferingMode">
+ <member name="stream" value="0" c:identifier="GST_BUFFERING_STREAM"/>
+ <member name="download" value="1" c:identifier="GST_BUFFERING_DOWNLOAD"/>
+ <member name="timeshift"
+ value="2"
+ c:identifier="GST_BUFFERING_TIMESHIFT"/>
+ <member name="live" value="3" c:identifier="GST_BUFFERING_LIVE"/>
+ </enumeration>
+ <class name="Bus"
+ c:type="GstBus"
+ doc="The opaque #GstBus data structure."
+ parent="Object"
+ glib:type-name="GstBus"
+ glib:get-type="gst_bus_get_type"
+ glib:type-struct="BusClass">
+ <constructor name="new"
+ c:identifier="gst_bus_new"
+ doc="Creates a new #GstBus instance.">
+ <return-value transfer-ownership="full">
+ <type name="Bus" c:type="GstBus*"/>
+ </return-value>
+ </constructor>
+ <method name="post"
+ c:identifier="gst_bus_post"
+ doc="Post a message on the given bus. Ownership of the message
+is taken by the bus.
+MT safe.">
+ <return-value transfer-ownership="none">
+ <type name="boolean" c:type="gboolean"/>
+ </return-value>
+ <parameters>
+ <parameter name="message" transfer-ownership="none">
+ <type name="Message" c:type="GstMessage*"/>
+ </parameter>
+ </parameters>
+ </method>
+ <method name="have_pending"
+ c:identifier="gst_bus_have_pending"
+ doc="Check if there are pending messages on the bus that
+should be handled.
+otherwise.
+MT safe.">
+ <return-value transfer-ownership="none">
+ <type name="boolean" c:type="gboolean"/>
+ </return-value>
+ </method>
+ <method name="peek"
+ c:identifier="gst_bus_peek"
+ doc="Peek the message on the top of the bus' queue. The message will remain
+on the bus' message queue. A reference is returned, and needs to be unreffed
+by the caller.
+MT safe.">
+ <return-value transfer-ownership="full">
+ <type name="Message" c:type="GstMessage*"/>
+ </return-value>
+ </method>
+ <method name="pop"
+ c:identifier="gst_bus_pop"
+ doc="Get a message from the bus.
+The message is taken from the bus and needs to be unreffed with
+gst_message_unref() after usage.
+MT safe.">
+ <return-value transfer-ownership="full">
+ <type name="Message" c:type="GstMessage*"/>
+ </return-value>
+ </method>
+ <method name="pop_filtered"
+ c:identifier="gst_bus_pop_filtered"
+ doc="Get a message matching @type from the bus. Will discard all messages on
+the bus that do not match @type and that have been posted before the first
+message that does match @type. If there is no message matching @type on
+the bus, all messages will be discarded.
+the bus is empty or there is no message matching @type.
+The message is taken from the bus and needs to be unreffed with
+gst_message_unref() after usage.
+MT safe."
+ version="0.10.15">
+ <return-value transfer-ownership="full">
+ <type name="Message" c:type="GstMessage*"/>
+ </return-value>
+ <parameters>
+ <parameter name="types" transfer-ownership="none">
+ <type name="MessageType" c:type="GstMessageType"/>
+ </parameter>
+ </parameters>
+ </method>
+ <method name="timed_pop"
+ c:identifier="gst_bus_timed_pop"
+ doc="Get a message from the bus, waiting up to the specified timeout.
+If @timeout is 0, this function behaves like gst_bus_pop(). If @timeout is
+#GST_CLOCK_TIME_NONE, this function will block forever until a message was
+posted on the bus.
+or NULL if the bus is empty after the timeout expired.
+The message is taken from the bus and needs to be unreffed with
+gst_message_unref() after usage.
+MT safe."
+ version="0.10.12">
+ <return-value transfer-ownership="full">
+ <type name="Message" c:type="GstMessage*"/>
+ </return-value>
+ <parameters>
+ <parameter name="timeout" transfer-ownership="none">
+ <type name="ClockTime" c:type="GstClockTime"/>
+ </parameter>
+ </parameters>
+ </method>
+ <method name="timed_pop_filtered"
+ c:identifier="gst_bus_timed_pop_filtered"
+ doc="Get a message from the bus whose type matches the message type mask @types,
+waiting up to the specified timeout (and discarding any messages that do not
+match the mask provided).
+If @timeout is 0, this function behaves like gst_bus_pop_filtered(). If
+matching message was posted on the bus.
+message was found on the bus until the timeout expired.
+The message is taken from the bus and needs to be unreffed with
+gst_message_unref() after usage.
+MT safe."
+ version="0.10.15">
+ <return-value transfer-ownership="full">
+ <type name="Message" c:type="GstMessage*"/>
+ </return-value>
+ <parameters>
+ <parameter name="timeout" transfer-ownership="none">
+ <type name="ClockTime" c:type="GstClockTime"/>
+ </parameter>
+ <parameter name="types" transfer-ownership="none">
+ <type name="MessageType" c:type="GstMessageType"/>
+ </parameter>
+ </parameters>
+ </method>
+ <method name="set_flushing"
+ c:identifier="gst_bus_set_flushing"
+ doc="If @flushing, flush out and unref any messages queued in the bus. Releases
+references to the message origin objects. Will flush future messages until
+gst_bus_set_flushing() sets @flushing to #FALSE.
+MT safe.">
+ <return-value transfer-ownership="none">
+ <type name="none" c:type="void"/>
+ </return-value>
+ <parameters>
+ <parameter name="flushing" transfer-ownership="none">
+ <type name="boolean" c:type="gboolean"/>
+ </parameter>
+ </parameters>
+ </method>
+ <method name="set_sync_handler"
+ c:identifier="gst_bus_set_sync_handler"
+ doc="Sets the synchronous handler on the bus. The function will be called
+every time a new message is posted on the bus. Note that the function
+will be called in the same thread context as the posting object. This
+function is usually only called by the creator of the bus. Applications
+should handle messages asynchronously using the gst_bus watch and poll
+functions.
+You cannot replace an existing sync_handler. You can pass NULL to this
+function, which will clear the existing handler.">
+ <return-value transfer-ownership="none">
+ <type name="none" c:type="void"/>
+ </return-value>
+ <parameters>
+ <parameter name="func"
+ transfer-ownership="none"
+ scope="call"
+ closure="2">
+ <type name="BusSyncHandler" c:type="GstBusSyncHandler"/>
+ </parameter>
+ <parameter name="data" transfer-ownership="none">
+ <type name="any" c:type="gpointer"/>
+ </parameter>
+ </parameters>
+ </method>
+ <method name="create_watch"
+ c:identifier="gst_bus_create_watch"
+ doc="Create watch for this bus. The GSource will be dispatched whenever
+a message is on the bus. After the GSource is dispatched, the
+message is popped off the bus and unreffed.">
+ <return-value transfer-ownership="full">
+ <type name="GLib.Source" c:type="GSource*"/>
+ </return-value>
+ </method>
+ <method name="add_watch_full"
+ c:identifier="gst_bus_add_watch_full"
+ doc="Adds a bus watch to the default main context with the given @priority.
+This function is used to receive asynchronous messages in the main loop.
+There can only be a single bus watch per bus, you must remove it before you
+can set a new one.
+When @func is called, the message belongs to the caller; if you want to
+keep a copy of it, call gst_message_ref() before leaving @func.
+The watch can be removed using g_source_remove() or by returning FALSE
+from @func.
+MT safe.">
+ <return-value transfer-ownership="none">
+ <type name="uint" c:type="guint"/>
+ </return-value>
+ <parameters>
+ <parameter name="priority" transfer-ownership="none">
+ <type name="int" c:type="gint"/>
+ </parameter>
+ <parameter name="func"
+ transfer-ownership="none"
+ scope="notified"
+ closure="3"
+ destroy="4">
+ <type name="BusFunc" c:type="GstBusFunc"/>
+ </parameter>
+ <parameter name="user_data" transfer-ownership="none">
+ <type name="any" c:type="gpointer"/>
+ </parameter>
+ <parameter name="notify" transfer-ownership="none" scope="call">
+ <type name="GLib.DestroyNotify" c:type="GDestroyNotify"/>
+ </parameter>
+ </parameters>
+ </method>
+ <method name="add_watch"
+ c:identifier="gst_bus_add_watch"
+ doc="Adds a bus watch to the default main context with the default priority.
+This function is used to receive asynchronous messages in the main loop.
+There can only be a single bus watch per bus, you must remove it before you
+can set a new one.
+The watch can be removed using g_source_remove() or by returning FALSE
+from @func.
+MT safe.">
+ <return-value transfer-ownership="none">
+ <type name="uint" c:type="guint"/>
+ </return-value>
+ <parameters>
+ <parameter name="func"
+ transfer-ownership="none"
+ scope="call"
+ closure="2">
+ <type name="BusFunc" c:type="GstBusFunc"/>
+ </parameter>
+ <parameter name="user_data" transfer-ownership="none">
+ <type name="any" c:type="gpointer"/>
+ </parameter>
+ </parameters>
+ </method>
+ <method name="poll"
+ c:identifier="gst_bus_poll"
+ doc="poll for.
+indefinitely.
+Poll the bus for messages. Will block while waiting for messages to come.
+You can specify a maximum time to poll with the @timeout parameter. If
+All messages not in @events will be popped off the bus and will be ignored.
+Because poll is implemented using the "message" signal enabled by
+gst_bus_add_signal_watch(), calling gst_bus_poll() will cause the "message"
+signal to be emitted for every message that poll sees. Thus a "message"
+signal handler will see the same messages that this function sees -- neither
+will steal messages from the other.
+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'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.
+The message is taken from the bus and needs to be unreffed with
+gst_message_unref() after usage.">
+ <return-value transfer-ownership="full">
+ <type name="Message" c:type="GstMessage*"/>
+ </return-value>
+ <parameters>
+ <parameter name="events" transfer-ownership="none">
+ <type name="MessageType" c:type="GstMessageType"/>
+ </parameter>
+ <parameter name="timeout" transfer-ownership="none">
+ <type name="ClockTimeDiff" c:type="GstClockTimeDiff"/>
+ </parameter>
+ </parameters>
+ </method>
+ <method name="async_signal_func"
+ c:identifier="gst_bus_async_signal_func"
+ doc="A helper #GstBusFunc that can be used to convert all asynchronous messages
+into signals.">
+ <return-value transfer-ownership="none">
+ <type name="boolean" c:type="gboolean"/>
+ </return-value>
+ <parameters>
+ <parameter name="message" transfer-ownership="none">
+ <type name="Message" c:type="GstMessage*"/>
+ </parameter>
+ <parameter name="data" transfer-ownership="none">
+ <type name="any" c:type="gpointer"/>
+ </parameter>
+ </parameters>
+ </method>
+ <method name="sync_signal_handler"
+ c:identifier="gst_bus_sync_signal_handler"
+ doc="A helper GstBusSyncHandler that can be used to convert all synchronous
+messages into signals.">
+ <return-value transfer-ownership="full">
+ <type name="BusSyncReply" c:type="GstBusSyncReply"/>
+ </return-value>
+ <parameters>
+ <parameter name="message" transfer-ownership="none">
+ <type name="Message" c:type="GstMessage*"/>
+ </parameter>
+ <parameter name="data" transfer-ownership="none">
+ <type name="any" c:type="gpointer"/>
+ </parameter>
+ </parameters>
+ </method>
+ <method name="add_signal_watch"
+ c:identifier="gst_bus_add_signal_watch"
+ doc="Adds a bus signal watch to the default main context with the default
+priority.
+After calling this statement, the bus will emit the "message" signal for each
+message posted on the bus.
+This function may be called multiple times. To clean up, the caller is
+responsible for calling gst_bus_remove_signal_watch() as many times as this
+function is called.
+MT safe.">
+ <return-value transfer-ownership="none">
+ <type name="none" c:type="void"/>
+ </return-value>
+ </method>
+ <method name="add_signal_watch_full"
+ c:identifier="gst_bus_add_signal_watch_full"
+ doc="Adds a bus signal watch to the default main context with the given priority.
+After calling this statement, the bus will emit the "message" signal for each
+message posted on the bus when the main loop is running.
+This function may be called multiple times. To clean up, the caller is
+responsible for calling gst_bus_remove_signal_watch() as many times as this
+function is called.
+There can only be a single bus watch per bus, you most remove all signal watch
+before you can set another type of watch.
+MT safe.">
+ <return-value transfer-ownership="none">
+ <type name="none" c:type="void"/>
+ </return-value>
+ <parameters>
+ <parameter name="priority" transfer-ownership="none">
+ <type name="int" c:type="gint"/>
+ </parameter>
+ </parameters>
+ </method>
+ <method name="remove_signal_watch"
+ c:identifier="gst_bus_remove_signal_watch"
+ doc="Removes a signal watch previously added with gst_bus_add_signal_watch().
+MT safe.">
+ <return-value transfer-ownership="none">
+ <type name="none" c:type="void"/>
+ </return-value>
+ </method>
+ <method name="enable_sync_message_emission"
+ c:identifier="gst_bus_enable_sync_message_emission"
+ doc="Instructs GStreamer to emit the "sync-message" signal after running the bus's
+sync handler. This function is here so that code can ensure that they can
+synchronously receive messages without having to affect what the bin's sync
+handler is.
+This function may be called multiple times. To clean up, the caller is
+responsible for calling gst_bus_disable_sync_message_emission() as many times
+as this function is called.
+While this function looks similar to gst_bus_add_signal_watch(), it is not
+exactly the same -- this function enables <emphasis>synchronous</emphasis> emission of
+signals when messages arrive; gst_bus_add_signal_watch() adds an idle callback
+to pop messages off the bus <emphasis>asynchronously</emphasis>. The sync-message signal
+comes from the thread of whatever object posted the message; the "message"
+signal is marshalled to the main thread via the main loop.
+MT safe.">
+ <return-value transfer-ownership="none">
+ <type name="none" c:type="void"/>
+ </return-value>
+ </method>
+ <method name="disable_sync_message_emission"
+ c:identifier="gst_bus_disable_sync_message_emission"
+ doc="gst_bus_enable_sync_message_emission()
+Instructs GStreamer to stop emitting the "sync-message" signal for this bus.
+See gst_bus_enable_sync_message_emission() for more information.
+In the event that multiple pieces of code have called
+gst_bus_enable_sync_message_emission(), the sync-message emissions will only
+be stopped after all calls to gst_bus_enable_sync_message_emission() were
+"cancelled" by calling this function. In this way the semantics are exactly
+the same as gst_object_ref() that which calls enable should also call
+disable.
+MT safe.">
+ <return-value transfer-ownership="none">
+ <type name="none" c:type="void"/>
+ </return-value>
+ </method>
+ <field name="object">
+ <type name="Object" c:type="GstObject"/>
+ </field>
+ <field name="queue">
+ <type name="GLib.Queue" c:type="GQueue*"/>
+ </field>
+ <field name="queue_lock">
+ <type name="GLib.Mutex" c:type="GMutex*"/>
+ </field>
+ <field name="sync_handler">
+ <type name="BusSyncHandler" c:type="GstBusSyncHandler"/>
+ </field>
+ <field name="sync_handler_data">
+ <type name="any" c:type="gpointer"/>
+ </field>
+ <field name="signal_watch_id">
+ <type name="uint" c:type="guint"/>
+ </field>
+ <field name="num_signal_watchers">
+ <type name="uint" c:type="guint"/>
+ </field>
+ <field name="priv">
+ <type name="BusPrivate" c:type="GstBusPrivate*"/>
+ </field>
+ <field name="_gst_reserved">
+ <array zero-terminated="0" c:type="gpointer" fixed-size="3">
+ <type name="any"/>
+ </array>
+ </field>
+ <glib:signal name="message"
+ doc="A message has been posted on the bus. This signal is emitted from a
+GSource added to the mainloop. this signal will only be emitted when
+there is a mainloop running.">
+ <return-value transfer-ownership="full">
+ <type name="none" c:type="void"/>
+ </return-value>
+ <parameters>
+ <parameter name="message" transfer-ownership="none">
+ <type name="Message" c:type="GstMessage"/>
+ </parameter>
+ </parameters>
+ </glib:signal>
+ <glib:signal name="sync-message"
+ doc="A message has been posted on the bus. This signal is emitted from the
+thread that posted the message so one has to be careful with locking.
+This signal will not be emitted by default, you have to set up
+gst_bus_sync_signal_handler() as a sync handler if you want this
+signal to be emitted when a message is posted on the bus, like this:
+<programlisting>
+gst_bus_set_sync_handler (bus, gst_bus_sync_signal_handler, yourdata);
+</programlisting>">
+ <return-value transfer-ownership="full">
+ <type name="none" c:type="void"/>
+ </return-value>
+ <parameters>
+ <parameter name="message" transfer-ownership="none">
+ <type name="Message" c:type="GstMessage"/>
+ </parameter>
+ </parameters>
+ </glib:signal>
+ </class>
+ <record name="BusClass"
+ c:type="GstBusClass"
+ glib:is-gtype-struct-for="Bus">
+ <field name="parent_class">
+ <type name="ObjectClass" c:type="GstObjectClass"/>
+ </field>
+ <field name="message">
+ <callback name="message" c:type="message">
+ <return-value transfer-ownership="none">
+ <type name="none" c:type="void"/>
+ </return-value>
+ <parameters>
+ <parameter name="bus" transfer-ownership="none">
+ <type name="Bus" c:type="GstBus*"/>
+ </parameter>
+ <parameter name="message" transfer-ownership="none">
+ <type name="Message" c:type="GstMessage*"/>
+ </parameter>
+ </parameters>
+ </callback>
+ </field>
+ <field name="sync_message">
+ <callback name="sync_message" c:type="sync_message">
+ <return-value transfer-ownership="none">
+ <type name="none" c:type="void"/>
+ </return-value>
+ <parameters>
+ <parameter name="bus" transfer-ownership="none">
+ <type name="Bus" c:type="GstBus*"/>
+ </parameter>
+ <parameter name="message" transfer-ownership="none">
+ <type name="Message" c:type="GstMessage*"/>
+ </parameter>
+ </parameters>
+ </callback>
+ </field>
+ <field name="_gst_reserved">
+ <array zero-terminated="0" c:type="gpointer" fixed-size="4">
+ <type name="any"/>
+ </array>
+ </field>
+ </record>
+ <bitfield name="BusFlags"
+ doc="The standard flags that a bus may have."
+ c:type="GstBusFlags">
+ <member name="flushing" value="16" c:identifier="GST_BUS_FLUSHING"/>
+ <member name="flag_last" value="32" c:identifier="GST_BUS_FLAG_LAST"/>
+ </bitfield>
+ <callback name="BusFunc"
+ c:type="GstBusFunc"
+ doc="Specifies the type of function passed to gst_bus_add_watch() or
+gst_bus_add_watch_full(), which is called from the mainloop when a message
+is available on the bus.
+The message passed to the function will be unreffed after execution of this
+function so it should not be freed in the function.
+Note that this function is used as a GSourceFunc which means that returning
+FALSE will remove the GSource from the mainloop.">
+ <return-value transfer-ownership="none">
+ <type name="boolean" c:type="gboolean"/>
+ </return-value>
+ <parameters>
+ <parameter name="bus" transfer-ownership="none">
+ <type name="Bus" c:type="GstBus*"/>
+ </parameter>
+ <parameter name="message" transfer-ownership="none">
+ <type name="Message" c:type="GstMessage*"/>
+ </parameter>
+ <parameter name="data" transfer-ownership="none">
+ <type name="any" c:type="gpointer"/>
+ </parameter>
+ </parameters>
+ </callback>
+ <record name="BusPrivate" c:type="GstBusPrivate">
+ </record>
+ <callback name="BusSyncHandler"
+ c:type="GstBusSyncHandler"
+ doc="Handler will be invoked synchronously, when a new message has been injected
+into the bus. This function is mostly used internally. Only one sync handler
+can be attached to a given bus.
+If the handler returns GST_BUS_DROP, it should unref the message, else the
+message should not be unreffed by the sync handler.">
+ <return-value transfer-ownership="full">
+ <type name="BusSyncReply" c:type="GstBusSyncReply"/>
+ </return-value>
+ <parameters>
+ <parameter name="bus" transfer-ownership="none">
+ <type name="Bus" c:type="GstBus*"/>
+ </parameter>
+ <parameter name="message" transfer-ownership="none">
+ <type name="Message" c:type="GstMessage*"/>
+ </parameter>
+ <parameter name="data" transfer-ownership="none">
+ <type name="any" c:type="gpointer"/>
+ </parameter>
+ </parameters>
+ </callback>
+ <enumeration name="BusSyncReply"
+ doc="The result values for a GstBusSyncHandler."
+ c:type="GstBusSyncReply">
+ <member name="drop" value="0" c:identifier="GST_BUS_DROP"/>
+ <member name="pass" value="1" c:identifier="GST_BUS_PASS"/>
+ <member name="async" value="2" c:identifier="GST_BUS_ASYNC"/>
+ </enumeration>
+ <constant name="CAN_INLINE" value="1">
+ <type name="int"/>
+ </constant>
+ <constant name="CLOCK_ENTRY_TRACE_NAME" value="GstClockEntry">
+ <type name="utf8"/>
+ </constant>
+ <constant name="CLOCK_TIME_NONE" value="-1">
+ <type name="int"/>
+ </constant>
+ <record name="Caps"
+ c:type="GstCaps"
+ doc="Object describing media types."
+ glib:type-name="GstCaps"
+ glib:get-type="gst_caps_get_type">
+ <field name="type" writable="1">
+ <type name="GType" c:type="GType"/>
+ </field>
+ <field name="refcount" writable="1">
+ <type name="int" c:type="gint"/>
+ </field>
+ <field name="flags" writable="1">
+ <type name="CapsFlags" c:type="GstCapsFlags"/>
+ </field>
+ <field name="structs" writable="1">
+ <type name="GLib.PtrArray" c:type="GPtrArray*"/>
+ </field>
+ <field name="_gst_reserved" writable="1">
+ <array zero-terminated="0" c:type="gpointer" fixed-size="4">
+ <type name="any"/>
+ </array>
+ </field>
+ <constructor name="new_empty"
+ c:identifier="gst_caps_new_empty"
+ doc="Creates a new #GstCaps that is empty. That is, the returned
+#GstCaps contains no media formats.
+Caller is responsible for unreffing the returned caps.">
+ <return-value transfer-ownership="full">
+ <type name="Caps" c:type="GstCaps*"/>
+ </return-value>
+ </constructor>
+ <constructor name="new_any"
+ c:identifier="gst_caps_new_any"
+ doc="Creates a new #GstCaps that indicates that it is compatible with
+any media format.">
+ <return-value transfer-ownership="full">
+ <type name="Caps" c:type="GstCaps*"/>
+ </return-value>
+ </constructor>
+ <constructor name="new_simple"
+ c:identifier="gst_caps_new_simple"
+ doc="Creates a new #GstCaps that contains one #GstStructure. The
+structure is defined by the arguments, which have the same format
+as gst_structure_new().
+Caller is responsible for unreffing the returned caps.">
+ <return-value transfer-ownership="full">
+ <type name="Caps" c:type="GstCaps*"/>
+ </return-value>
+ <parameters>
+ <parameter name="media_type" transfer-ownership="none">
+ <type name="utf8" c:type="char*"/>
+ </parameter>
+ <parameter name="fieldname" transfer-ownership="none">
+ <type name="utf8" c:type="char*"/>
+ </parameter>
+ <parameter transfer-ownership="none">
+ <varargs>
+ </varargs>
+ </parameter>
+ </parameters>
+ </constructor>
+ <constructor name="new_full"
+ c:identifier="gst_caps_new_full"
+ doc="Creates a new #GstCaps and adds all the structures listed as
+arguments. The list must be NULL-terminated. The structures
+are not copied; the returned #GstCaps owns the structures.">
+ <return-value transfer-ownership="full">
+ <type name="Caps" c:type="GstCaps*"/>
+ </return-value>
+ <parameters>
+ <parameter name="struct1" transfer-ownership="none">
+ <type name="Structure" c:type="GstStructure*"/>
+ </parameter>
+ <parameter transfer-ownership="none">
+ <varargs>
+ </varargs>
+ </parameter>
+ </parameters>
+ </constructor>
+ <method name="ref"
+ c:identifier="gst_caps_ref"
+ doc="Add a reference to a #GstCaps object.
+From this point on, until the caller calls gst_caps_unref() or
+gst_caps_make_writable(), it is guaranteed that the caps object will not
+change. This means its structures won't change, etc. To use a #GstCaps
+object, you must always have a refcount on it -- either the one made
+implicitly by e.g. gst_caps_new_simple(), or via taking one explicitly with
+this function.">
+ <return-value transfer-ownership="full">
+ <type name="Caps" c:type="GstCaps*"/>
+ </return-value>
+ </method>
+ <method name="copy"
+ c:identifier="gst_caps_copy"
+ doc="Creates a new #GstCaps as a copy of the old @caps. The new caps will have a
+refcount of 1, owned by the caller. The structures are copied as well.
+Note that this function is the semantic equivalent of a gst_caps_ref()
+followed by a gst_caps_make_writable(). If you only want to hold on to a
+reference to the data, you should use gst_caps_ref().
+When you are finished with the caps, call gst_caps_unref() on it.">
+ <return-value transfer-ownership="full">
+ <type name="Caps" c:type="GstCaps*"/>
+ </return-value>
+ </method>
+ <method name="make_writable"
+ c:identifier="gst_caps_make_writable"
+ doc="Returns a writable copy of @caps.
+If there is only one reference count on @caps, the caller must be the owner,
+and so this function will return the caps object unchanged. If on the other
+hand there is more than one reference on the object, a new caps object will
+be returned. The caller's reference on @caps will be removed, and instead the
+caller will own a reference to the returned object.
+In short, this function unrefs the caps in the argument and refs the caps
+that it returns. Don't access the argument after calling this function. See">
+ <return-value transfer-ownership="full">
+ <type name="Caps" c:type="GstCaps*"/>
+ </return-value>
+ </method>
+ <method name="unref"
+ c:identifier="gst_caps_unref"
+ doc="Unref a #GstCaps and and free all its structures and the
+structures' values when the refcount reaches 0.">
+ <return-value transfer-ownership="none">
+ <type name="none" c:type="void"/>
+ </return-value>
+ </method>
+ <method name="append"
+ c:identifier="gst_caps_append"
+ doc="Appends the structures contained in @caps2 to @caps1. The structures in
+freed. If either caps is ANY, the resulting caps will be ANY.">
+ <return-value transfer-ownership="none">
+ <type name="none" c:type="void"/>
+ </return-value>
+ <parameters>
+ <parameter name="caps2" transfer-ownership="none">
+ <type name="Caps" c:type="GstCaps*"/>
+ </parameter>
+ </parameters>
+ </method>
+ <method name="merge"
+ c:identifier="gst_caps_merge"
+ doc="Appends the structures contained in @caps2 to @caps1 if they are not yet
+expressed by @caps1. The structures in @caps2 are not copied -- they are
+transferred to @caps1, and then @caps2 is freed.
+If either caps is ANY, the resulting caps will be ANY."
+ version="0.10.10">
+ <return-value transfer-ownership="none">
+ <type name="none" c:type="void"/>
+ </return-value>
+ <parameters>
+ <parameter name="caps2" transfer-ownership="none">
+ <type name="Caps" c:type="GstCaps*"/>
+ </parameter>
+ </parameters>
+ </method>
+ <method name="append_structure"
+ c:identifier="gst_caps_append_structure"
+ doc="Appends @structure to @caps. The structure is not copied; @caps
+becomes the owner of @structure.">
+ <return-value transfer-ownership="none">
+ <type name="none" c:type="void"/>
+ </return-value>
+ <parameters>
+ <parameter name="structure" transfer-ownership="none">
+ <type name="Structure" c:type="GstStructure*"/>
+ </parameter>
+ </parameters>
+ </method>
+ <method name="remove_structure"
+ c:identifier="gst_caps_remove_structure"
+ doc="removes the stucture with the given index from the list of structures
+contained in @caps.">
+ <return-value transfer-ownership="none">
+ <type name="none" c:type="void"/>
+ </return-value>
+ <parameters>
+ <parameter name="idx" transfer-ownership="none">
+ <type name="uint" c:type="guint"/>
+ </parameter>
+ </parameters>
+ </method>
+ <method name="merge_structure"
+ c:identifier="gst_caps_merge_structure"
+ doc="Appends @structure to @caps if its not already expressed by @caps. The
+structure is not copied; @caps becomes the owner of @structure.">
+ <return-value transfer-ownership="none">
+ <type name="none" c:type="void"/>
+ </return-value>
+ <parameters>
+ <parameter name="structure" transfer-ownership="none">
+ <type name="Structure" c:type="GstStructure*"/>
+ </parameter>
+ </parameters>
+ </method>
+ <method name="get_size"
+ c:identifier="gst_caps_get_size"
+ doc="Gets the number of structures contained in @caps.">
+ <return-value transfer-ownership="none">
+ <type name="uint" c:type="guint"/>
+ </return-value>
+ </method>
+ <method name="get_structure"
+ c:identifier="gst_caps_get_structure"
+ doc="Finds the structure in @caps that has the index @index, and
+returns it.
+non-const GstStructure *. This is for programming convenience --
+the caller should be aware that structures inside a constant
+#GstCaps should not be modified. However, if you know the caps
+are writable, either because you have just copied them or made
+them writable with gst_caps_make_writable(), you may modify the
+structure returned in the usual way, e.g. with functions like
+gst_structure_set().
+You do not need to free or unref the structure returned, it
+belongs to the #GstCaps.">
+ <return-value transfer-ownership="full">
+ <type name="Structure" c:type="GstStructure*"/>
+ </return-value>
+ <parameters>
+ <parameter name="index" transfer-ownership="none">
+ <type name="uint" c:type="guint"/>
+ </parameter>
+ </parameters>
+ </method>
+ <method name="copy_nth"
+ c:identifier="gst_caps_copy_nth"
+ doc="Creates a new #GstCaps and appends a copy of the nth structure
+contained in @caps.">
+ <return-value transfer-ownership="full">
+ <type name="Caps" c:type="GstCaps*"/>
+ </return-value>
+ <parameters>
+ <parameter name="nth" transfer-ownership="none">
+ <type name="uint" c:type="guint"/>
+ </parameter>
+ </parameters>
+ </method>
+ <method name="truncate"
+ c:identifier="gst_caps_truncate"
+ doc="Destructively discard all but the first structure from @caps. Useful when
+fixating. @caps must be writable.">
+ <return-value transfer-ownership="none">
+ <type name="none" c:type="void"/>
+ </return-value>
+ </method>
+ <method name="set_value"
+ c:identifier="gst_caps_set_value"
+ doc="Sets the given @field on all structures of @caps to the given @value.
+This is a convenience function for calling gst_structure_set_value() on
+all structures of @caps."
+ version="0.10.26">
+ <return-value transfer-ownership="none">
+ <type name="none" c:type="void"/>
+ </return-value>
+ <parameters>
+ <parameter name="field" transfer-ownership="none">
+ <type name="utf8" c:type="char*"/>
+ </parameter>
+ <parameter name="value" transfer-ownership="none">
+ <type name="GObject.Value" c:type="GValue*"/>
+ </parameter>
+ </parameters>
+ </method>
+ <method name="set_simple"
+ c:identifier="gst_caps_set_simple"
+ doc="Sets fields in a #GstCaps. The arguments must be passed in the same
+manner as gst_structure_set(), and be NULL-terminated.
+<note>Prior to GStreamer version 0.10.26, this function failed when
+of GStreamer, you may only call this function when GST_CAPS_IS_SIMPLE()
+is %TRUE for @caps.</note>">
+ <return-value transfer-ownership="none">
+ <type name="none" c:type="void"/>
+ </return-value>
+ <parameters>
+ <parameter name="field" transfer-ownership="none">
+ <type name="utf8" c:type="char*"/>
+ </parameter>
+ <parameter transfer-ownership="none">
+ <varargs>
+ </varargs>
+ </parameter>
+ </parameters>
+ </method>
+ <method name="is_any"
+ c:identifier="gst_caps_is_any"
+ doc="Determines if @caps represents any media format.">
+ <return-value transfer-ownership="none">
+ <type name="boolean" c:type="gboolean"/>
+ </return-value>
+ </method>
+ <method name="is_empty"
+ c:identifier="gst_caps_is_empty"
+ doc="Determines if @caps represents no media formats.">
+ <return-value transfer-ownership="none">
+ <type name="boolean" c:type="gboolean"/>
+ </return-value>
+ </method>
+ <method name="is_fixed"
+ c:identifier="gst_caps_is_fixed"
+ doc="Fixed #GstCaps describe exactly one format, that is, they have exactly
+one structure, and each field in the structure describes a fixed type.
+Examples of non-fixed types are GST_TYPE_INT_RANGE and GST_TYPE_LIST.">
+ <return-value transfer-ownership="none">
+ <type name="boolean" c:type="gboolean"/>
+ </return-value>
+ </method>
+ <method name="is_always_compatible"
+ c:identifier="gst_caps_is_always_compatible"
+ doc="A given #GstCaps structure is always compatible with another if
+every media format that is in the first is also contained in the
+second. That is, @caps1 is a subset of @caps2.">
+ <return-value transfer-ownership="none">
+ <type name="boolean" c:type="gboolean"/>
+ </return-value>
+ <parameters>
+ <parameter name="caps2" transfer-ownership="none">
+ <type name="Caps" c:type="GstCaps*"/>
+ </parameter>
+ </parameters>
+ </method>
+ <method name="is_subset"
+ c:identifier="gst_caps_is_subset"
+ doc="Checks if all caps represented by @subset are also represented by @superset.
+<note>This function does not work reliably if optional properties for caps
+are included on one caps and omitted on the other.</note>">
+ <return-value transfer-ownership="none">
+ <type name="boolean" c:type="gboolean"/>
+ </return-value>
+ <parameters>
+ <parameter name="superset" transfer-ownership="none">
+ <type name="Caps" c:type="GstCaps*"/>
+ </parameter>
+ </parameters>
+ </method>
+ <method name="is_equal"
+ c:identifier="gst_caps_is_equal"
+ doc="Checks if the given caps represent the same set of caps.
+<note>This function does not work reliably if optional properties for caps
+are included on one caps and omitted on the other.</note>
+This function deals correctly with passing NULL for any of the caps.">
+ <return-value transfer-ownership="none">
+ <type name="boolean" c:type="gboolean"/>
+ </return-value>
+ <parameters>
+ <parameter name="caps2" transfer-ownership="none">
+ <type name="Caps" c:type="GstCaps*"/>
+ </parameter>
+ </parameters>
+ </method>
+ <method name="is_equal_fixed"
+ c:identifier="gst_caps_is_equal_fixed"
+ doc="Tests if two #GstCaps are equal. This function only works on fixed
+#GstCaps.">
+ <return-value transfer-ownership="none">
+ <type name="boolean" c:type="gboolean"/>
+ </return-value>
+ <parameters>
+ <parameter name="caps2" transfer-ownership="none">
+ <type name="Caps" c:type="GstCaps*"/>
+ </parameter>
+ </parameters>
+ </method>
+ <method name="can_intersect"
+ c:identifier="gst_caps_can_intersect"
+ doc="Tries intersecting @caps1 and @caps2 and reports wheter the result would not
+be empty"
+ version="0.10.25">
+ <return-value transfer-ownership="none">
+ <type name="boolean" c:type="gboolean"/>
+ </return-value>
+ <parameters>
+ <parameter name="caps2" transfer-ownership="none">
+ <type name="Caps" c:type="GstCaps*"/>
+ </parameter>
+ </parameters>
+ </method>
+ <method name="intersect"
+ c:identifier="gst_caps_intersect"
+ doc="Creates a new #GstCaps that contains all the formats that are common
+to both @caps1 and @caps2.">
+ <return-value transfer-ownership="full">
+ <type name="Caps" c:type="GstCaps*"/>
+ </return-value>
+ <parameters>
+ <parameter name="caps2" transfer-ownership="none">
+ <type name="Caps" c:type="GstCaps*"/>
+ </parameter>
+ </parameters>
+ </method>
+ <method name="subtract"
+ c:identifier="gst_caps_subtract"
+ doc="Subtracts the @subtrahend from the @minuend.
+<note>This function does not work reliably if optional properties for caps
+are included on one caps and omitted on the other.</note>">
+ <return-value transfer-ownership="full">
+ <type name="Caps" c:type="GstCaps*"/>
+ </return-value>
+ <parameters>
+ <parameter name="subtrahend" transfer-ownership="none">
+ <type name="Caps" c:type="GstCaps*"/>
+ </parameter>
+ </parameters>
+ </method>
+ <method name="union"
+ c:identifier="gst_caps_union"
+ doc="Creates a new #GstCaps that contains all the formats that are in
+either @caps1 and @caps2.">
+ <return-value transfer-ownership="full">
+ <type name="Caps" c:type="GstCaps*"/>
+ </return-value>
+ <parameters>
+ <parameter name="caps2" transfer-ownership="none">
+ <type name="Caps" c:type="GstCaps*"/>
+ </parameter>
+ </parameters>
+ </method>
+ <method name="normalize"
+ c:identifier="gst_caps_normalize"
+ doc="Creates a new #GstCaps that represents the same set of formats as">
+ <return-value transfer-ownership="full">
+ <type name="Caps" c:type="GstCaps*"/>
+ </return-value>
+ </method>
+ <method name="do_simplify"
+ c:identifier="gst_caps_do_simplify"
+ doc="Modifies the given @caps inplace into a representation that represents the
+same set of formats, but in a simpler form. Component structures that are
+identical are merged. Component structures that have values that can be
+merged are also merged.">
+ <return-value transfer-ownership="none">
+ <type name="boolean" c:type="gboolean"/>
+ </return-value>
+ </method>
+ <method name="save_thyself"
+ c:identifier="gst_caps_save_thyself"
+ doc="Serializes a #GstCaps to XML and adds it as a child node of @parent.">
+ <return-value transfer-ownership="full">
+ <type name="libxml2.NodePtr" c:type="xmlNodePtr"/>
+ </return-value>
+ <parameters>
+ <parameter name="parent" transfer-ownership="none">
+ <type name="libxml2.NodePtr" c:type="xmlNodePtr"/>
+ </parameter>
+ </parameters>
+ </method>
+ <method name="replace"
+ c:identifier="gst_caps_replace"
+ doc="Replaces *caps with @newcaps. Unrefs the #GstCaps in the location
+pointed to by @caps, if applicable, then modifies @caps to point to
+This function does not take any locks so you might want to lock
+the object owning @caps pointer.">
+ <return-value transfer-ownership="none">
+ <type name="none" c:type="void"/>
+ </return-value>
+ <parameters>
+ <parameter name="newcaps" transfer-ownership="none">
+ <type name="Caps" c:type="GstCaps*"/>
+ </parameter>
+ </parameters>
+ </method>
+ <method name="to_string"
+ c:identifier="gst_caps_to_string"
+ doc="Converts @caps to a string representation. This string representation
+can be converted back to a #GstCaps by gst_caps_from_string().
+For debugging purposes its easier to do something like this:
+|[
+GST_LOG ("caps are %" GST_PTR_FORMAT, caps);
+]|
+This prints the caps in human readble form.">
+ <return-value transfer-ownership="full">
+ <type name="utf8" c:type="gchar*"/>
+ </return-value>
+ </method>
+ </record>
+ <bitfield name="CapsFlags"
+ doc="anything.
+Extra flags for a caps."
+ c:type="GstCapsFlags">
+ <member name="caps_flags_any"
+ value="1"
+ c:identifier="GST_CAPS_FLAGS_ANY"/>
+ </bitfield>
+ <interface name="ChildProxy"
+ c:type="GstChildProxy"
+ doc="Opaque #GstChildProxy data structure."
+ glib:type-name="GstChildProxy"
+ glib:get-type="gst_child_proxy_get_type"
+ glib:type-struct="ChildProxyInterface">
+ <prerequisite name="Object"/>
+ <virtual-method name="get_child_by_index" invoker="get_child_by_index">
+ <return-value transfer-ownership="full">
+ <type name="Object" c:type="GstObject*"/>
+ </return-value>
+ <parameters>
+ <parameter name="index" transfer-ownership="none">
+ <type name="uint" c:type="guint"/>
+ </parameter>
+ </parameters>
+ </virtual-method>
+ <virtual-method name="get_children_count" invoker="get_children_count">
+ <return-value transfer-ownership="none">
+ <type name="uint" c:type="guint"/>
+ </return-value>
+ </virtual-method>
+ <method name="get_child_by_name"
+ c:identifier="gst_child_proxy_get_child_by_name"
+ doc="Looks up a child element by the given name.
+Implementors can use #GstObject together with gst_object_get_name()
+MT safe.">
+ <return-value transfer-ownership="full">
+ <type name="Object" c:type="GstObject*"/>
+ </return-value>
+ <parameters>
+ <parameter name="name" transfer-ownership="none">
+ <type name="utf8" c:type="gchar*"/>
+ </parameter>
+ </parameters>
+ </method>
+ <method name="get_child_by_index"
+ c:identifier="gst_child_proxy_get_child_by_index"
+ doc="Fetches a child by its number.
+after usage.
+MT safe.">
+ <return-value transfer-ownership="full" doc="Unref">
+ <type name="Object" c:type="GstObject*"/>
+ </return-value>
+ <parameters>
+ <parameter name="index" transfer-ownership="none">
+ <type name="uint" c:type="guint"/>
+ </parameter>
+ </parameters>
+ </method>
+ <method name="get_children_count"
+ c:identifier="gst_child_proxy_get_children_count"
+ doc="Gets the number of child objects this parent contains.
+MT safe.">
+ <return-value transfer-ownership="none">
+ <type name="uint" c:type="guint"/>
+ </return-value>
+ </method>
+ <glib:signal name="child-added">
+ <return-value transfer-ownership="full">
+ <type name="none" c:type="void"/>
+ </return-value>
+ <parameters>
+ <parameter name="object" transfer-ownership="none">
+ <type name="GObject.Object" c:type="GObject"/>
+ </parameter>
+ </parameters>
+ </glib:signal>
+ <glib:signal name="child-removed">
+ <return-value transfer-ownership="full">
+ <type name="none" c:type="void"/>
+ </return-value>
+ <parameters>
+ <parameter name="object" transfer-ownership="none">
+ <type name="GObject.Object" c:type="GObject"/>
+ </parameter>
+ </parameters>
+ </glib:signal>
+ </interface>
+ <record name="ChildProxyInterface"
+ c:type="GstChildProxyInterface"
+ glib:is-gtype-struct-for="ChildProxy"
+ doc="#GstChildProxy interface.">
+ <field name="parent">
+ <type name="GObject.TypeInterface" c:type="GTypeInterface"/>
+ </field>
+ <field name="get_child_by_index">
+ <callback name="get_child_by_index" c:type="get_child_by_index">
+ <return-value transfer-ownership="full">
+ <type name="Object" c:type="GstObject*"/>
+ </return-value>
+ <parameters>
+ <parameter name="parent" transfer-ownership="none">
+ <type name="ChildProxy" c:type="GstChildProxy*"/>
+ </parameter>
+ <parameter name="index" transfer-ownership="none">
+ <type name="uint" c:type="guint"/>
+ </parameter>
+ </parameters>
+ </callback>
+ </field>
+ <field name="get_children_count">
+ <callback name="get_children_count" c:type="get_children_count">
+ <return-value transfer-ownership="none">
+ <type name="uint" c:type="guint"/>
+ </return-value>
+ <parameters>
+ <parameter name="parent" transfer-ownership="none">
+ <type name="ChildProxy" c:type="GstChildProxy*"/>
+ </parameter>
+ </parameters>
+ </callback>
+ </field>
+ <field name="child_added">
+ <callback name="child_added" c:type="child_added">
+ <return-value transfer-ownership="none">
+ <type name="none" c:type="void"/>
+ </return-value>
+ <parameters>
+ <parameter name="parent" transfer-ownership="none">
+ <type name="ChildProxy" c:type="GstChildProxy*"/>
+ </parameter>
+ <parameter name="child" transfer-ownership="none">
+ <type name="Object" c:type="GstObject*"/>
+ </parameter>
+ </parameters>
+ </callback>
+ </field>
+ <field name="child_removed">
+ <callback name="child_removed" c:type="child_removed">
+ <return-value transfer-ownership="none">
+ <type name="none" c:type="void"/>
+ </return-value>
+ <parameters>
+ <parameter name="parent" transfer-ownership="none">
+ <type name="ChildProxy" c:type="GstChildProxy*"/>
+ </parameter>
+ <parameter name="child" transfer-ownership="none">
+ <type name="Object" c:type="GstObject*"/>
+ </parameter>
+ </parameters>
+ </callback>
+ </field>
+ <field name="_gst_reserved">
+ <array zero-terminated="0" c:type="gpointer" fixed-size="4">
+ <type name="any"/>
+ </array>
+ </field>
+ </record>
+ <class name="Clock"
+ c:type="GstClock"
+ doc="#GstClock base structure. The values of this structure are
+protected for subclasses, use the methods to use the #GstClock."
+ parent="Object"
+ glib:type-name="GstClock"
+ glib:get-type="gst_clock_get_type"
+ glib:type-struct="ClockClass">
+ <function name="id_ref"
+ c:identifier="gst_clock_id_ref"
+ doc="Increase the refcount of given @id.
+MT safe.">
+ <return-value transfer-ownership="full">
+ <type name="ClockID" c:type="GstClockID"/>
+ </return-value>
+ <parameters>
+ <parameter name="id" transfer-ownership="none">
+ <type name="ClockID" c:type="GstClockID"/>
+ </parameter>
+ </parameters>
+ </function>
+ <function name="id_unref"
+ c:identifier="gst_clock_id_unref"
+ doc="Unref given @id. When the refcount reaches 0 the
+#GstClockID will be freed.
+MT safe.">
+ <return-value transfer-ownership="none">
+ <type name="none" c:type="void"/>
+ </return-value>
+ <parameters>
+ <parameter name="id" transfer-ownership="none">
+ <type name="ClockID" c:type="GstClockID"/>
+ </parameter>
+ </parameters>
+ </function>
+ <function name="id_compare_func"
+ c:identifier="gst_clock_id_compare_func">
+ <return-value transfer-ownership="none">
+ <type name="int" c:type="gint"/>
+ </return-value>
+ <parameters>
+ <parameter name="id1" transfer-ownership="none">
+ <type name="any" c:type="gconstpointer"/>
+ </parameter>
+ <parameter name="id2" transfer-ownership="none">
+ <type name="any" c:type="gconstpointer"/>
+ </parameter>
+ </parameters>
+ </function>
+ <function name="id_get_time" c:identifier="gst_clock_id_get_time">
+ <return-value transfer-ownership="full">
+ <type name="ClockTime" c:type="GstClockTime"/>
+ </return-value>
+ <parameters>
+ <parameter name="id" transfer-ownership="none">
+ <type name="ClockID" c:type="GstClockID"/>
+ </parameter>
+ </parameters>
+ </function>
+ <function name="id_wait" c:identifier="gst_clock_id_wait">
+ <return-value transfer-ownership="full">
+ <type name="ClockReturn" c:type="GstClockReturn"/>
+ </return-value>
+ <parameters>
+ <parameter name="id" transfer-ownership="none">
+ <type name="ClockID" c:type="GstClockID"/>
+ </parameter>
+ <parameter name="jitter" transfer-ownership="none">
+ <type name="ClockTimeDiff" c:type="GstClockTimeDiff*"/>
+ </parameter>
+ </parameters>
+ </function>
+ <function name="id_wait_async"
+ c:identifier="gst_clock_id_wait_async"
+ doc="Register a callback on the given #GstClockID @id with the given
+function and user_data. When passing a #GstClockID with an invalid
+time to this function, the callback will be called immediately
+with a time set to GST_CLOCK_TIME_NONE. The callback will
+be called when the time of @id has been reached.
+The callback @func can be invoked from any thread, either provided by the
+core or from a streaming thread. The application should be prepared for this.
+MT safe.">
+ <return-value transfer-ownership="full">
+ <type name="ClockReturn" c:type="GstClockReturn"/>
+ </return-value>
+ <parameters>
+ <parameter name="id" transfer-ownership="none">
+ <type name="ClockID" c:type="GstClockID"/>
+ </parameter>
+ <parameter name="func"
+ transfer-ownership="none"
+ scope="call"
+ closure="2">
+ <type name="ClockCallback" c:type="GstClockCallback"/>
+ </parameter>
+ <parameter name="user_data" transfer-ownership="none">
+ <type name="any" c:type="gpointer"/>
+ </parameter>
+ </parameters>
+ </function>
+ <function name="id_unschedule"
+ c:identifier="gst_clock_id_unschedule"
+ doc="Cancel an outstanding request with @id. This can either
+be an outstanding async notification or a pending sync notification.
+After this call, @id cannot be used anymore to receive sync or
+async notifications, you need to create a new #GstClockID.
+MT safe.">
+ <return-value transfer-ownership="none">
+ <type name="none" c:type="void"/>
+ </return-value>
+ <parameters>
+ <parameter name="id" transfer-ownership="none">
+ <type name="ClockID" c:type="GstClockID"/>
+ </parameter>
+ </parameters>
+ </function>
+ <virtual-method name="change_resolution">
+ <return-value transfer-ownership="full">
+ <type name="ClockTime" c:type="GstClockTime"/>
+ </return-value>
+ <parameters>
+ <parameter name="old_resolution" transfer-ownership="none">
+ <type name="ClockTime" c:type="GstClockTime"/>
+ </parameter>
+ <parameter name="new_resolution" transfer-ownership="none">
+ <type name="ClockTime" c:type="GstClockTime"/>
+ </parameter>
+ </parameters>
+ </virtual-method>
+ <virtual-method name="get_resolution" invoker="get_resolution">
+ <return-value transfer-ownership="full">
+ <type name="ClockTime" c:type="GstClockTime"/>
+ </return-value>
+ </virtual-method>
+ <virtual-method name="get_internal_time" invoker="get_internal_time">
+ <return-value transfer-ownership="full">
+ <type name="ClockTime" c:type="GstClockTime"/>
+ </return-value>
+ </virtual-method>
+ <virtual-method name="wait">
+ <return-value transfer-ownership="full">
+ <type name="ClockReturn" c:type="GstClockReturn"/>
+ </return-value>
+ <parameters>
+ <parameter name="entry" transfer-ownership="none">
+ <type name="ClockEntry" c:type="GstClockEntry*"/>
+ </parameter>
+ </parameters>
+ </virtual-method>
+ <virtual-method name="wait_async">
+ <return-value transfer-ownership="full">
+ <type name="ClockReturn" c:type="GstClockReturn"/>
+ </return-value>
+ <parameters>
+ <parameter name="entry" transfer-ownership="none">
+ <type name="ClockEntry" c:type="GstClockEntry*"/>
+ </parameter>
+ </parameters>
+ </virtual-method>
+ <virtual-method name="unschedule">
+ <return-value transfer-ownership="none">
+ <type name="none" c:type="void"/>
+ </return-value>
+ <parameters>
+ <parameter name="entry" transfer-ownership="none">
+ <type name="ClockEntry" c:type="GstClockEntry*"/>
+ </parameter>
+ </parameters>
+ </virtual-method>
+ <virtual-method name="wait_jitter">
+ <return-value transfer-ownership="full">
+ <type name="ClockReturn" c:type="GstClockReturn"/>
+ </return-value>
+ <parameters>
+ <parameter name="entry" transfer-ownership="none">
+ <type name="ClockEntry" c:type="GstClockEntry*"/>
+ </parameter>
+ <parameter name="jitter" transfer-ownership="none">
+ <type name="ClockTimeDiff" c:type="GstClockTimeDiff*"/>
+ </parameter>
+ </parameters>
+ </virtual-method>
+ <method name="set_resolution" c:identifier="gst_clock_set_resolution">
+ <return-value transfer-ownership="full">
+ <type name="ClockTime" c:type="GstClockTime"/>
+ </return-value>
+ <parameters>
+ <parameter name="resolution" transfer-ownership="none">
+ <type name="ClockTime" c:type="GstClockTime"/>
+ </parameter>
+ </parameters>
+ </method>
+ <method name="get_resolution" c:identifier="gst_clock_get_resolution">
+ <return-value transfer-ownership="full">
+ <type name="ClockTime" c:type="GstClockTime"/>
+ </return-value>
+ </method>
+ <method name="get_time" c:identifier="gst_clock_get_time">
+ <return-value transfer-ownership="full">
+ <type name="ClockTime" c:type="GstClockTime"/>
+ </return-value>
+ </method>
+ <method name="set_calibration" c:identifier="gst_clock_set_calibration">
+ <return-value transfer-ownership="none">
+ <type name="none" c:type="void"/>
+ </return-value>
+ <parameters>
+ <parameter name="internal" transfer-ownership="none">
+ <type name="ClockTime" c:type="GstClockTime"/>
+ </parameter>
+ <parameter name="external" transfer-ownership="none">
+ <type name="ClockTime" c:type="GstClockTime"/>
+ </parameter>
+ <parameter name="rate_num" transfer-ownership="none">
+ <type name="ClockTime" c:type="GstClockTime"/>
+ </parameter>
+ <parameter name="rate_denom" transfer-ownership="none">
+ <type name="ClockTime" c:type="GstClockTime"/>
+ </parameter>
+ </parameters>
+ </method>
+ <method name="get_calibration" c:identifier="gst_clock_get_calibration">
+ <return-value transfer-ownership="none">
+ <type name="none" c:type="void"/>
+ </return-value>
+ <parameters>
+ <parameter name="internal" transfer-ownership="none">
+ <type name="ClockTime" c:type="GstClockTime*"/>
+ </parameter>
+ <parameter name="external" transfer-ownership="none">
+ <type name="ClockTime" c:type="GstClockTime*"/>
+ </parameter>
+ <parameter name="rate_num" transfer-ownership="none">
+ <type name="ClockTime" c:type="GstClockTime*"/>
+ </parameter>
+ <parameter name="rate_denom" transfer-ownership="none">
+ <type name="ClockTime" c:type="GstClockTime*"/>
+ </parameter>
+ </parameters>
+ </method>
+ <method name="set_master" c:identifier="gst_clock_set_master">
+ <return-value transfer-ownership="none">
+ <type name="boolean" c:type="gboolean"/>
+ </return-value>
+ <parameters>
+ <parameter name="master" transfer-ownership="none">
+ <type name="Clock" c:type="GstClock*"/>
+ </parameter>
+ </parameters>
+ </method>
+ <method name="get_master" c:identifier="gst_clock_get_master">
+ <return-value transfer-ownership="full">
+ <type name="Clock" c:type="GstClock*"/>
+ </return-value>
+ </method>
+ <method name="add_observation" c:identifier="gst_clock_add_observation">
+ <return-value transfer-ownership="none">
+ <type name="boolean" c:type="gboolean"/>
+ </return-value>
+ <parameters>
+ <parameter name="slave" transfer-ownership="none">
+ <type name="ClockTime" c:type="GstClockTime"/>
+ </parameter>
+ <parameter name="master" transfer-ownership="none">
+ <type name="ClockTime" c:type="GstClockTime"/>
+ </parameter>
+ <parameter name="r_squared"
+ direction="out"
+ transfer-ownership="full">
+ <type name="double" c:type="gdouble*"/>
+ </parameter>
+ </parameters>
+ </method>
+ <method name="get_internal_time"
+ c:identifier="gst_clock_get_internal_time">
+ <return-value transfer-ownership="full">
+ <type name="ClockTime" c:type="GstClockTime"/>
+ </return-value>
+ </method>
+ <method name="adjust_unlocked" c:identifier="gst_clock_adjust_unlocked">
+ <return-value transfer-ownership="full">
+ <type name="ClockTime" c:type="GstClockTime"/>
+ </return-value>
+ <parameters>
+ <parameter name="internal" transfer-ownership="none">
+ <type name="ClockTime" c:type="GstClockTime"/>
+ </parameter>
+ </parameters>
+ </method>
+ <method name="unadjust_unlocked"
+ c:identifier="gst_clock_unadjust_unlocked">
+ <return-value transfer-ownership="full">
+ <type name="ClockTime" c:type="GstClockTime"/>
+ </return-value>
+ <parameters>
+ <parameter name="external" transfer-ownership="none">
+ <type name="ClockTime" c:type="GstClockTime"/>
+ </parameter>
+ </parameters>
+ </method>
+ <method name="new_single_shot_id"
+ c:identifier="gst_clock_new_single_shot_id">
+ <return-value transfer-ownership="full">
+ <type name="ClockID" c:type="GstClockID"/>
+ </return-value>
+ <parameters>
+ <parameter name="time" transfer-ownership="none">
+ <type name="ClockTime" c:type="GstClockTime"/>
+ </parameter>
+ </parameters>
+ </method>
+ <method name="new_periodic_id" c:identifier="gst_clock_new_periodic_id">
+ <return-value transfer-ownership="full">
+ <type name="ClockID" c:type="GstClockID"/>
+ </return-value>
+ <parameters>
+ <parameter name="start_time" transfer-ownership="none">
+ <type name="ClockTime" c:type="GstClockTime"/>
+ </parameter>
+ <parameter name="interval" transfer-ownership="none">
+ <type name="ClockTime" c:type="GstClockTime"/>
+ </parameter>
+ </parameters>
+ </method>
+ <property name="stats" writable="1">
+ <type name="boolean" c:type="gboolean"/>
+ </property>
+ <property name="timeout" writable="1">
+ <type name="uint64" c:type="guint64"/>
+ </property>
+ <property name="window-size" writable="1">
+ <type name="int" c:type="gint"/>
+ </property>
+ <property name="window-threshold" writable="1">
+ <type name="int" c:type="gint"/>
+ </property>
+ <field name="object">
+ <type name="Object" c:type="GstObject"/>
+ </field>
+ <field name="slave_lock">
+ <type name="GLib.Mutex" c:type="GMutex*"/>
+ </field>
+ <field name="internal_calibration">
+ <type name="ClockTime" c:type="GstClockTime"/>
+ </field>
+ <field name="external_calibration">
+ <type name="ClockTime" c:type="GstClockTime"/>
+ </field>
+ <field name="rate_numerator">
+ <type name="ClockTime" c:type="GstClockTime"/>
+ </field>
+ <field name="rate_denominator">
+ <type name="ClockTime" c:type="GstClockTime"/>
+ </field>
+ <field name="last_time">
+ <type name="ClockTime" c:type="GstClockTime"/>
+ </field>
+ <field name="entries">
+ <type name="GLib.List" c:type="GList*"/>
+ </field>
+ <field name="entries_changed">
+ <type name="GLib.Cond" c:type="GCond*"/>
+ </field>
+ <field name="resolution">
+ <type name="ClockTime" c:type="GstClockTime"/>
+ </field>
+ <field name="stats">
+ <type name="boolean" c:type="gboolean"/>
+ </field>
+ <field name="master">
+ <type name="Clock" c:type="GstClock*"/>
+ </field>
+ <field name="filling">
+ <type name="boolean" c:type="gboolean"/>
+ </field>
+ <field name="window_size">
+ <type name="int" c:type="gint"/>
+ </field>
+ <field name="window_threshold">
+ <type name="int" c:type="gint"/>
+ </field>
+ <field name="time_index">
+ <type name="int" c:type="gint"/>
+ </field>
+ <field name="timeout">
+ <type name="ClockTime" c:type="GstClockTime"/>
+ </field>
+ <field name="times">
+ <type name="ClockTime" c:type="GstClockTime*"/>
+ </field>
+ <field name="clockid">
+ <type name="ClockID" c:type="GstClockID"/>
+ </field>
+ <union name="ABI" c:type="ABI">
+ <field name="priv" writable="1">
+ <type name="ClockPrivate" c:type="GstClockPrivate*"/>
+ </field>
+ <field name="_gst_reserved" writable="1">
+ <array zero-terminated="0" c:type="GstClockTime" fixed-size="4">
+ <type name="ClockTime"/>
+ </array>
+ </field>
+ </union>
+ </class>
+ <callback name="ClockCallback"
+ c:type="GstClockCallback"
+ doc="The function prototype of the callback.">
+ <return-value transfer-ownership="none">
+ <type name="boolean" c:type="gboolean"/>
+ </return-value>
+ <parameters>
+ <parameter name="clock" transfer-ownership="none">
+ <type name="Clock" c:type="GstClock*"/>
+ </parameter>
+ <parameter name="time" transfer-ownership="none">
+ <type name="ClockTime" c:type="GstClockTime"/>
+ </parameter>
+ <parameter name="id" transfer-ownership="none">
+ <type name="ClockID" c:type="GstClockID"/>
+ </parameter>
+ <parameter name="user_data"
+ transfer-ownership="none"
+ closure="3"
+ doc="function">
+ <type name="any" c:type="gpointer"/>
+ </parameter>
+ </parameters>
+ </callback>
+ <record name="ClockClass"
+ c:type="GstClockClass"
+ glib:is-gtype-struct-for="Clock"
+ doc="be acceptable. The new resolution should be returned.
+implement @wait_jitter instead.
+GStreamer clock class. Override the vmethods to implement the clock
+functionality.">
+ <field name="parent_class">
+ <type name="ObjectClass" c:type="GstObjectClass"/>
+ </field>
+ <field name="change_resolution">
+ <callback name="change_resolution" c:type="change_resolution">
+ <return-value transfer-ownership="full">
+ <type name="ClockTime" c:type="GstClockTime"/>
+ </return-value>
+ <parameters>
+ <parameter name="clock" transfer-ownership="none">
+ <type name="Clock" c:type="GstClock*"/>
+ </parameter>
+ <parameter name="old_resolution" transfer-ownership="none">
+ <type name="ClockTime" c:type="GstClockTime"/>
+ </parameter>
+ <parameter name="new_resolution" transfer-ownership="none">
+ <type name="ClockTime" c:type="GstClockTime"/>
+ </parameter>
+ </parameters>
+ </callback>
+ </field>
+ <field name="get_resolution">
+ <callback name="get_resolution" c:type="get_resolution">
+ <return-value transfer-ownership="full">
+ <type name="ClockTime" c:type="GstClockTime"/>
+ </return-value>
+ <parameters>
+ <parameter name="clock" transfer-ownership="none">
+ <type name="Clock" c:type="GstClock*"/>
+ </parameter>
+ </parameters>
+ </callback>
+ </field>
+ <field name="get_internal_time">
+ <callback name="get_internal_time" c:type="get_internal_time">
+ <return-value transfer-ownership="full">
+ <type name="ClockTime" c:type="GstClockTime"/>
+ </return-value>
+ <parameters>
+ <parameter name="clock" transfer-ownership="none">
+ <type name="Clock" c:type="GstClock*"/>
+ </parameter>
+ </parameters>
+ </callback>
+ </field>
+ <field name="wait">
+ <callback name="wait" c:type="wait">
+ <return-value transfer-ownership="full">
+ <type name="ClockReturn" c:type="GstClockReturn"/>
+ </return-value>
+ <parameters>
+ <parameter name="clock" transfer-ownership="none">
+ <type name="Clock" c:type="GstClock*"/>
+ </parameter>
+ <parameter name="entry" transfer-ownership="none">
+ <type name="ClockEntry" c:type="GstClockEntry*"/>
+ </parameter>
+ </parameters>
+ </callback>
+ </field>
+ <field name="wait_async">
+ <callback name="wait_async" c:type="wait_async">
+ <return-value transfer-ownership="full">
+ <type name="ClockReturn" c:type="GstClockReturn"/>
+ </return-value>
+ <parameters>
+ <parameter name="clock" transfer-ownership="none">
+ <type name="Clock" c:type="GstClock*"/>
+ </parameter>
+ <parameter name="entry" transfer-ownership="none">
+ <type name="ClockEntry" c:type="GstClockEntry*"/>
+ </parameter>
+ </parameters>
+ </callback>
+ </field>
+ <field name="unschedule">
+ <callback name="unschedule" c:type="unschedule">
+ <return-value transfer-ownership="none">
+ <type name="none" c:type="void"/>
+ </return-value>
+ <parameters>
+ <parameter name="clock" transfer-ownership="none">
+ <type name="Clock" c:type="GstClock*"/>
+ </parameter>
+ <parameter name="entry" transfer-ownership="none">
+ <type name="ClockEntry" c:type="GstClockEntry*"/>
+ </parameter>
+ </parameters>
+ </callback>
+ </field>
+ <field name="wait_jitter">
+ <callback name="wait_jitter" c:type="wait_jitter">
+ <return-value transfer-ownership="full">
+ <type name="ClockReturn" c:type="GstClockReturn"/>
+ </return-value>
+ <parameters>
+ <parameter name="clock" transfer-ownership="none">
+ <type name="Clock" c:type="GstClock*"/>
+ </parameter>
+ <parameter name="entry" transfer-ownership="none">
+ <type name="ClockEntry" c:type="GstClockEntry*"/>
+ </parameter>
+ <parameter name="jitter" transfer-ownership="none">
+ <type name="ClockTimeDiff" c:type="GstClockTimeDiff*"/>
+ </parameter>
+ </parameters>
+ </callback>
+ </field>
+ <field name="_gst_reserved">
+ <array zero-terminated="0" c:type="gpointer" fixed-size="3">
+ <type name="any"/>
+ </array>
+ </field>
+ </record>
+ <record name="ClockEntry"
+ c:type="GstClockEntry"
+ doc="All pending timeouts or periodic notifies are converted into
+an entry.">
+ <field name="refcount" writable="1">
+ <type name="int" c:type="gint"/>
+ </field>
+ <field name="clock" writable="1">
+ <type name="Clock" c:type="GstClock*"/>
+ </field>
+ <field name="type" writable="1">
+ <type name="ClockEntryType" c:type="GstClockEntryType"/>
+ </field>
+ <field name="time" writable="1">
+ <type name="ClockTime" c:type="GstClockTime"/>
+ </field>
+ <field name="interval" writable="1">
+ <type name="ClockTime" c:type="GstClockTime"/>
+ </field>
+ <field name="status" writable="1">
+ <type name="ClockReturn" c:type="GstClockReturn"/>
+ </field>
+ <field name="func" writable="1">
+ <type name="ClockCallback" c:type="GstClockCallback"/>
+ </field>
+ <field name="user_data" writable="1">
+ <type name="any" c:type="gpointer"/>
+ </field>
+ </record>
+ <enumeration name="ClockEntryType"
+ doc="The type of the clock entry"
+ c:type="GstClockEntryType">
+ <member name="single" value="0" c:identifier="GST_CLOCK_ENTRY_SINGLE"/>
+ <member name="periodic"
+ value="1"
+ c:identifier="GST_CLOCK_ENTRY_PERIODIC"/>
+ </enumeration>
+ <bitfield name="ClockFlags"
+ doc="The capabilities of this clock"
+ c:type="GstClockFlags">
+ <member name="can_do_single_sync"
+ value="16"
+ c:identifier="GST_CLOCK_FLAG_CAN_DO_SINGLE_SYNC"/>
+ <member name="can_do_single_async"
+ value="32"
+ c:identifier="GST_CLOCK_FLAG_CAN_DO_SINGLE_ASYNC"/>
+ <member name="can_do_periodic_sync"
+ value="64"
+ c:identifier="GST_CLOCK_FLAG_CAN_DO_PERIODIC_SYNC"/>
+ <member name="can_do_periodic_async"
+ value="128"
+ c:identifier="GST_CLOCK_FLAG_CAN_DO_PERIODIC_ASYNC"/>
+ <member name="can_set_resolution"
+ value="256"
+ c:identifier="GST_CLOCK_FLAG_CAN_SET_RESOLUTION"/>
+ <member name="can_set_master"
+ value="512"
+ c:identifier="GST_CLOCK_FLAG_CAN_SET_MASTER"/>
+ <member name="last" value="4096" c:identifier="GST_CLOCK_FLAG_LAST"/>
+ </bitfield>
+ <record name="ClockPrivate" c:type="GstClockPrivate">
+ </record>
+ <enumeration name="ClockReturn"
+ doc="The return value of a clock operation."
+ c:type="GstClockReturn">
+ <member name="ok" value="0" c:identifier="GST_CLOCK_OK"/>
+ <member name="early" value="1" c:identifier="GST_CLOCK_EARLY"/>
+ <member name="unscheduled"
+ value="2"
+ c:identifier="GST_CLOCK_UNSCHEDULED"/>
+ <member name="busy" value="3" c:identifier="GST_CLOCK_BUSY"/>
+ <member name="badtime" value="4" c:identifier="GST_CLOCK_BADTIME"/>
+ <member name="error" value="5" c:identifier="GST_CLOCK_ERROR"/>
+ <member name="unsupported"
+ value="6"
+ c:identifier="GST_CLOCK_UNSUPPORTED"/>
+ </enumeration>
+ <enumeration name="ClockType"
+ doc="point
+The different kind of clocks."
+ c:type="GstClockType">
+ <member name="realtime"
+ value="0"
+ c:identifier="GST_CLOCK_TYPE_REALTIME"/>
+ <member name="monotonic"
+ value="1"
+ c:identifier="GST_CLOCK_TYPE_MONOTONIC"/>
+ </enumeration>
+ <callback name="CopyFunction"
+ c:type="GstCopyFunction"
+ doc="A function to create a copy of some object or
+increase its reference count."
+ version="0.10.25">
+ <return-value transfer-ownership="none">
+ <type name="any" c:type="gpointer"/>
+ </return-value>
+ <parameters>
+ <parameter name="object" transfer-ownership="none">
+ <type name="any" c:type="gpointer"/>
+ </parameter>
+ </parameters>
+ </callback>
+ <enumeration name="CoreError"
+ doc="category. Make sure you add a custom message to the error call.
+deciding where to go while developing code.
+this functionality yet.
+Core errors are errors inside the core GStreamer library."
+ c:type="GstCoreError"
+ glib:error-quark="gst_core_error_quark">
+ <member name="failed" value="1" c:identifier="GST_CORE_ERROR_FAILED"/>
+ <member name="too_lazy"
+ value="2"
+ c:identifier="GST_CORE_ERROR_TOO_LAZY"/>
+ <member name="not_implemented"
+ value="3"
+ c:identifier="GST_CORE_ERROR_NOT_IMPLEMENTED"/>
+ <member name="state_change"
+ value="4"
+ c:identifier="GST_CORE_ERROR_STATE_CHANGE"/>
+ <member name="pad" value="5" c:identifier="GST_CORE_ERROR_PAD"/>
+ <member name="thread" value="6" c:identifier="GST_CORE_ERROR_THREAD"/>
+ <member name="negotiation"
+ value="7"
+ c:identifier="GST_CORE_ERROR_NEGOTIATION"/>
+ <member name="event" value="8" c:identifier="GST_CORE_ERROR_EVENT"/>
+ <member name="seek" value="9" c:identifier="GST_CORE_ERROR_SEEK"/>
+ <member name="caps" value="10" c:identifier="GST_CORE_ERROR_CAPS"/>
+ <member name="tag" value="11" c:identifier="GST_CORE_ERROR_TAG"/>
+ <member name="missing_plugin"
+ value="12"
+ c:identifier="GST_CORE_ERROR_MISSING_PLUGIN"/>
+ <member name="clock" value="13" c:identifier="GST_CORE_ERROR_CLOCK"/>
+ <member name="disabled"
+ value="14"
+ c:identifier="GST_CORE_ERROR_DISABLED"/>
+ <member name="num_errors"
+ value="15"
+ c:identifier="GST_CORE_ERROR_NUM_ERRORS"/>
+ </enumeration>
+ <constant name="DEBUG_BG_MASK" value="240">
+ <type name="int"/>
+ </constant>
+ <constant name="DEBUG_FG_MASK" value="15">
+ <type name="int"/>
+ </constant>
+ <constant name="DEBUG_FORMAT_MASK" value="65280">
+ <type name="int"/>
+ </constant>
+ <glib:boxed c:type="GstDate"
+ glib:name="Date"
+ glib:type-name="GstDate"
+ glib:get-type="gst_date_get_type">
+ </glib:boxed>
+ <record name="DebugCategory"
+ c:type="GstDebugCategory"
+ doc="This is the struct that describes the categories. Once initialized with
+#GST_DEBUG_CATEGORY_INIT, its values can't be changed anymore.">
+ <field name="threshold" writable="1">
+ <type name="int" c:type="gint"/>
+ </field>
+ <field name="color" writable="1">
+ <type name="uint" c:type="guint"/>
+ </field>
+ <field name="name" writable="1">
+ <type name="utf8" c:type="gchar*"/>
+ </field>
+ <field name="description" writable="1">
+ <type name="utf8" c:type="gchar*"/>
+ </field>
+ <method name="free"
+ c:identifier="gst_debug_category_free"
+ doc="Removes and frees the category and all associated resources.">
+ <return-value transfer-ownership="none">
+ <type name="none" c:type="void"/>
+ </return-value>
+ </method>
+ <method name="set_threshold"
+ c:identifier="gst_debug_category_set_threshold"
+ doc="Sets the threshold of the category to the given level. Debug information will
+only be output if the threshold is lower or equal to the level of the
+debugging message.
+<note><para>
+Do not use this function in production code, because other functions may
+change the threshold of categories as side effect. It is however a nice
+function to use when debugging (even from gdb).
+</para></note>">
+ <return-value transfer-ownership="none">
+ <type name="none" c:type="void"/>
+ </return-value>
+ <parameters>
+ <parameter name="level" transfer-ownership="none">
+ <type name="DebugLevel" c:type="GstDebugLevel"/>
+ </parameter>
+ </parameters>
+ </method>
+ <method name="reset_threshold"
+ c:identifier="gst_debug_category_reset_threshold"
+ doc="Resets the threshold of the category to the default level. Debug information
+will only be output if the threshold is lower or equal to the level of the
+debugging message.
+Use this function to set the threshold back to where it was after using
+gst_debug_category_set_threshold().">
+ <return-value transfer-ownership="none">
+ <type name="none" c:type="void"/>
+ </return-value>
+ </method>
+ <method name="get_threshold"
+ c:identifier="gst_debug_category_get_threshold"
+ doc="Returns the threshold of a #GstDebugCategory.">
+ <return-value transfer-ownership="full">
+ <type name="DebugLevel" c:type="GstDebugLevel"/>
+ </return-value>
+ </method>
+ <method name="get_name"
+ c:identifier="gst_debug_category_get_name"
+ doc="Returns the name of a debug category.">
+ <return-value transfer-ownership="none">
+ <type name="utf8" c:type="gchar*"/>
+ </return-value>
+ </method>
+ <method name="get_color"
+ c:identifier="gst_debug_category_get_color"
+ doc="Returns the color of a debug category used when printing output in this
+category.">
+ <return-value transfer-ownership="none">
+ <type name="uint" c:type="guint"/>
+ </return-value>
+ </method>
+ <method name="get_description"
+ c:identifier="gst_debug_category_get_description"
+ doc="Returns the description of a debug category.">
+ <return-value transfer-ownership="none">
+ <type name="utf8" c:type="gchar*"/>
+ </return-value>
+ </method>
+ </record>
+ <enumeration name="DebugColorFlags"
+ doc="These are some terminal style flags you can use when creating your
+debugging categories to make them stand out in debugging output."
+ c:type="GstDebugColorFlags">
+ <member name="fg_black" value="0" c:identifier="GST_DEBUG_FG_BLACK"/>
+ <member name="fg_red" value="1" c:identifier="GST_DEBUG_FG_RED"/>
+ <member name="fg_green" value="2" c:identifier="GST_DEBUG_FG_GREEN"/>
+ <member name="fg_yellow" value="3" c:identifier="GST_DEBUG_FG_YELLOW"/>
+ <member name="fg_blue" value="4" c:identifier="GST_DEBUG_FG_BLUE"/>
+ <member name="fg_magenta" value="5" c:identifier="GST_DEBUG_FG_MAGENTA"/>
+ <member name="fg_cyan" value="6" c:identifier="GST_DEBUG_FG_CYAN"/>
+ <member name="fg_white" value="7" c:identifier="GST_DEBUG_FG_WHITE"/>
+ <member name="bg_black" value="0" c:identifier="GST_DEBUG_BG_BLACK"/>
+ <member name="bg_red" value="16" c:identifier="GST_DEBUG_BG_RED"/>
+ <member name="bg_green" value="32" c:identifier="GST_DEBUG_BG_GREEN"/>
+ <member name="bg_yellow" value="48" c:identifier="GST_DEBUG_BG_YELLOW"/>
+ <member name="bg_blue" value="64" c:identifier="GST_DEBUG_BG_BLUE"/>
+ <member name="bg_magenta"
+ value="80"
+ c:identifier="GST_DEBUG_BG_MAGENTA"/>
+ <member name="bg_cyan" value="96" c:identifier="GST_DEBUG_BG_CYAN"/>
+ <member name="bg_white" value="112" c:identifier="GST_DEBUG_BG_WHITE"/>
+ <member name="bold" value="256" c:identifier="GST_DEBUG_BOLD"/>
+ <member name="underline" value="512" c:identifier="GST_DEBUG_UNDERLINE"/>
+ </enumeration>
+ <callback name="DebugFuncPtr" c:type="GstDebugFuncPtr">
+ <return-value transfer-ownership="none">
+ <type name="none" c:type="void"/>
+ </return-value>
+ </callback>
+ <bitfield name="DebugGraphDetails"
+ doc="Available details for pipeline graphs produced by GST_DEBUG_BIN_TO_DOT_FILE()
+and GST_DEBUG_BIN_TO_DOT_FILE_WITH_TS()."
+ version="0.10.15"
+ c:type="GstDebugGraphDetails">
+ <member name="media_type"
+ value="1"
+ c:identifier="GST_DEBUG_GRAPH_SHOW_MEDIA_TYPE"/>
+ <member name="caps_details"
+ value="2"
+ c:identifier="GST_DEBUG_GRAPH_SHOW_CAPS_DETAILS"/>
+ <member name="non_default_params"
+ value="4"
+ c:identifier="GST_DEBUG_GRAPH_SHOW_NON_DEFAULT_PARAMS"/>
+ <member name="states"
+ value="8"
+ c:identifier="GST_DEBUG_GRAPH_SHOW_STATES"/>
+ <member name="all" value="15" c:identifier="GST_DEBUG_GRAPH_SHOW_ALL"/>
+ </bitfield>
+ <enumeration name="DebugLevel"
+ doc="debugging output.
+that stops the application from keeping working correctly.
+An examples is gst_element_error, which outputs a message with this priority.
+It does not mean that the application is terminating as with g_errror.
+that could lead to problems or weird behaviour later on. An example of this
+would be clocking issues ("your computer is pretty slow") or broken input
+data ("Can't synchronize to stream.")
+updated about what is happening.
+Examples where this should be used are when a typefind function has
+successfully determined the type of the stream or when an mp3 plugin detects
+the format to be used. ("This file has mono sound.")
+happens that is not the expected default behavior.
+An example would be notifications about state changes or receiving/sending of
+events.
+useful to know. As a rule of thumb a pipeline that is iterating as expected
+should never output anzthing else but LOG messages.
+Examples for this are referencing/dereferencing of objects or cothread switches.
+in the executed code path is not fully implemented or handled yet. Note
+that this does not replace proper error handling in any way, the purpose
+of this message is to make it easier to spot incomplete/unfinished pieces
+data as memory dumps in the log. They will be displayed as hexdump with
+The level defines the importance of a debugging message. The more important a
+message is, the greater the probability that the debugging system outputs it."
+ c:type="GstDebugLevel">
+ <member name="none" value="0" c:identifier="GST_LEVEL_NONE"/>
+ <member name="error" value="1" c:identifier="GST_LEVEL_ERROR"/>
+ <member name="warning" value="2" c:identifier="GST_LEVEL_WARNING"/>
+ <member name="info" value="3" c:identifier="GST_LEVEL_INFO"/>
+ <member name="debug" value="4" c:identifier="GST_LEVEL_DEBUG"/>
+ <member name="log" value="5" c:identifier="GST_LEVEL_LOG"/>
+ <member name="fixme" value="6" c:identifier="GST_LEVEL_FIXME"/>
+ <member name="memdump" value="9" c:identifier="GST_LEVEL_MEMDUMP"/>
+ <member name="count" value="10" c:identifier="GST_LEVEL_COUNT"/>
+ </enumeration>
+ <record name="DebugMessage" c:type="GstDebugMessage">
+ <method name="get"
+ c:identifier="gst_debug_message_get"
+ doc="Gets the string representation of a #GstDebugMessage. This function is used
+in debug handlers to extract the message.">
+ <return-value transfer-ownership="none">
+ <type name="utf8" c:type="gchar*"/>
+ </return-value>
+ </method>
+ </record>
+ <constant name="ERROR_SYSTEM" value="system error: %s">
+ <type name="utf8"/>
+ </constant>
+ <constant name="EVENT_TRACE_NAME" value="GstEvent">
+ <type name="utf8"/>
+ </constant>
+ <constant name="EVENT_TYPE_BOTH" value="0">
+ <type name="int"/>
+ </constant>
+ <constant name="EVENT_TYPE_SHIFT" value="4">
+ <type name="int"/>
+ </constant>
+ <class name="Element"
+ c:type="GstElement"
+ doc="gst_element_set_state() and gst_element_get_state()
+the element is in the correct state.
+#GST_STATE_VOID_PENDING if the element is in the correct state
+parent element or the application. A #GstPipeline has a bus of its own.
+element by the toplevel #GstPipeline.
+PLAYING. Subtracting @base_time from the current clock time in the PLAYING
+state will yield the running_time against the clock.
+GStreamer element abstract base class."
+ parent="Object"
+ abstract="1"
+ glib:type-name="GstElement"
+ glib:get-type="gst_element_get_type"
+ glib:type-struct="ElementClass">
+ <function name="register"
+ c:identifier="gst_element_register"
+ doc="element (note that passing NULL only works in GStreamer 0.10.13 and later)
+Create a new elementfactory capable of instantiating objects of the">
+ <return-value transfer-ownership="none">
+ <type name="boolean" c:type="gboolean"/>
+ </return-value>
+ <parameters>
+ <parameter name="plugin" transfer-ownership="none">
+ <type name="Plugin" c:type="GstPlugin*"/>
+ </parameter>
+ <parameter name="name" transfer-ownership="none">
+ <type name="utf8" c:type="gchar*"/>
+ </parameter>
+ <parameter name="rank" transfer-ownership="none">
+ <type name="uint" c:type="guint"/>
+ </parameter>
+ <parameter name="type" transfer-ownership="none">
+ <type name="GType" c:type="GType"/>
+ </parameter>
+ </parameters>
+ </function>
+ <function name="make_from_uri"
+ c:identifier="gst_element_make_from_uri"
+ doc="Creates an element for handling the given URI.">
+ <return-value transfer-ownership="full">
+ <type name="Element" c:type="GstElement*"/>
+ </return-value>
+ <parameters>
+ <parameter name="type" transfer-ownership="none">
+ <type name="URIType" c:type="GstURIType"/>
+ </parameter>
+ <parameter name="uri" transfer-ownership="none">
+ <type name="utf8" c:type="gchar*"/>
+ </parameter>
+ <parameter name="elementname" transfer-ownership="none">
+ <type name="utf8" c:type="gchar*"/>
+ </parameter>
+ </parameters>
+ </function>
+ <function name="state_get_name"
+ c:identifier="gst_element_state_get_name"
+ doc="Gets a string representing the given state.">
+ <return-value transfer-ownership="none">
+ <type name="utf8" c:type="gchar*"/>
+ </return-value>
+ <parameters>
+ <parameter name="state" transfer-ownership="none">
+ <type name="State" c:type="GstState"/>
+ </parameter>
+ </parameters>
+ </function>
+ <function name="state_change_return_get_name"
+ c:identifier="gst_element_state_change_return_get_name"
+ doc="Gets a string representing the given state change result."
+ version="0.10.11">
+ <return-value transfer-ownership="none">
+ <type name="utf8" c:type="gchar*"/>
+ </return-value>
+ <parameters>
+ <parameter name="state_ret" transfer-ownership="none">
+ <type name="StateChangeReturn" c:type="GstStateChangeReturn"/>
+ </parameter>
+ </parameters>
+ </function>
+ <virtual-method name="request_new_pad">
+ <return-value transfer-ownership="full">
+ <type name="Pad" c:type="GstPad*"/>
+ </return-value>
+ <parameters>
+ <parameter name="templ" transfer-ownership="none">
+ <type name="PadTemplate" c:type="GstPadTemplate*"/>
+ </parameter>
+ <parameter name="name" transfer-ownership="none">
+ <type name="utf8" c:type="gchar*"/>
+ </parameter>
+ </parameters>
+ </virtual-method>
+ <virtual-method name="release_pad">
+ <return-value transfer-ownership="none">
+ <type name="none" c:type="void"/>
+ </return-value>
+ <parameters>
+ <parameter name="pad" transfer-ownership="none">
+ <type name="Pad" c:type="GstPad*"/>
+ </parameter>
+ </parameters>
+ </virtual-method>
+ <virtual-method name="get_state" invoker="get_state">
+ <return-value transfer-ownership="full">
+ <type name="StateChangeReturn" c:type="GstStateChangeReturn"/>
+ </return-value>
+ <parameters>
+ <parameter name="state" transfer-ownership="none">
+ <type name="State" c:type="GstState*"/>
+ </parameter>
+ <parameter name="pending" transfer-ownership="none">
+ <type name="State" c:type="GstState*"/>
+ </parameter>
+ <parameter name="timeout" transfer-ownership="none">
+ <type name="ClockTime" c:type="GstClockTime"/>
+ </parameter>
+ </parameters>
+ </virtual-method>
+ <virtual-method name="set_state" invoker="set_state">
+ <return-value transfer-ownership="full">
+ <type name="StateChangeReturn" c:type="GstStateChangeReturn"/>
+ </return-value>
+ <parameters>
+ <parameter name="state" transfer-ownership="none">
+ <type name="State" c:type="GstState"/>
+ </parameter>
+ </parameters>
+ </virtual-method>
+ <virtual-method name="change_state" invoker="change_state">
+ <return-value transfer-ownership="full">
+ <type name="StateChangeReturn" c:type="GstStateChangeReturn"/>
+ </return-value>
+ <parameters>
+ <parameter name="transition" transfer-ownership="none">
+ <type name="StateChange" c:type="GstStateChange"/>
+ </parameter>
+ </parameters>
+ </virtual-method>
+ <virtual-method name="set_bus" invoker="set_bus">
+ <return-value transfer-ownership="none">
+ <type name="none" c:type="void"/>
+ </return-value>
+ <parameters>
+ <parameter name="bus" transfer-ownership="none">
+ <type name="Bus" c:type="GstBus*"/>
+ </parameter>
+ </parameters>
+ </virtual-method>
+ <virtual-method name="provide_clock" invoker="provide_clock">
+ <return-value transfer-ownership="full">
+ <type name="Clock" c:type="GstClock*"/>
+ </return-value>
+ </virtual-method>
+ <virtual-method name="set_clock" invoker="set_clock">
+ <return-value transfer-ownership="none">
+ <type name="boolean" c:type="gboolean"/>
+ </return-value>
+ <parameters>
+ <parameter name="clock" transfer-ownership="none">
+ <type name="Clock" c:type="GstClock*"/>
+ </parameter>
+ </parameters>
+ </virtual-method>
+ <virtual-method name="get_index" invoker="get_index">
+ <return-value transfer-ownership="full">
+ <type name="Index" c:type="GstIndex*"/>
+ </return-value>
+ </virtual-method>
+ <virtual-method name="set_index" invoker="set_index">
+ <return-value transfer-ownership="none">
+ <type name="none" c:type="void"/>
+ </return-value>
+ <parameters>
+ <parameter name="index" transfer-ownership="none">
+ <type name="Index" c:type="GstIndex*"/>
+ </parameter>
+ </parameters>
+ </virtual-method>
+ <virtual-method name="send_event" invoker="send_event">
+ <return-value transfer-ownership="none">
+ <type name="boolean" c:type="gboolean"/>
+ </return-value>
+ <parameters>
+ <parameter name="event" transfer-ownership="none">
+ <type name="Event" c:type="GstEvent*"/>
+ </parameter>
+ </parameters>
+ </virtual-method>
+ <virtual-method name="get_query_types" invoker="get_query_types">
+ <return-value transfer-ownership="none">
+ <type name="QueryType" c:type="GstQueryType*"/>
+ </return-value>
+ </virtual-method>
+ <virtual-method name="query" invoker="query">
+ <return-value transfer-ownership="none">
+ <type name="boolean" c:type="gboolean"/>
+ </return-value>
+ <parameters>
+ <parameter name="query" transfer-ownership="none">
+ <type name="Query" c:type="GstQuery*"/>
+ </parameter>
+ </parameters>
+ </virtual-method>
+ <method name="requires_clock"
+ c:identifier="gst_element_requires_clock"
+ doc="Query if the element requires a clock.
+MT safe.">
+ <return-value transfer-ownership="none">
+ <type name="boolean" c:type="gboolean"/>
+ </return-value>
+ </method>
+ <method name="provides_clock"
+ c:identifier="gst_element_provides_clock"
+ doc="Query if the element provides a clock. A #GstClock provided by an
+element can be used as the global #GstClock for the pipeline.
+An element that can provide a clock is only required to do so in the PAUSED
+state, this means when it is fully negotiated and has allocated the resources
+to operate the clock.
+MT safe.">
+ <return-value transfer-ownership="none">
+ <type name="boolean" c:type="gboolean"/>
+ </return-value>
+ </method>
+ <method name="provide_clock"
+ c:identifier="gst_element_provide_clock"
+ doc="Get the clock provided by the given element.
+<note>An element is only required to provide a clock in the PAUSED
+state. Some elements can provide a clock in other states.</note>
+if no clock could be provided. Unref after usage.
+MT safe.">
+ <return-value transfer-ownership="full">
+ <type name="Clock" c:type="GstClock*"/>
+ </return-value>
+ </method>
+ <method name="get_clock"
+ c:identifier="gst_element_get_clock"
+ doc="Gets the currently configured clock of the element. This is the clock as was
+last set with gst_element_set_clock().
+MT safe.">
+ <return-value transfer-ownership="full">
+ <type name="Clock" c:type="GstClock*"/>
+ </return-value>
+ </method>
+ <method name="set_clock"
+ c:identifier="gst_element_set_clock"
+ doc="Sets the clock for the element. This function increases the
+refcount on the clock. Any previously set clock on the object
+is unreffed.
+clock when it, for example, is not able to slave its internal clock to the
+MT safe.">
+ <return-value transfer-ownership="none">
+ <type name="boolean" c:type="gboolean"/>
+ </return-value>
+ <parameters>
+ <parameter name="clock" transfer-ownership="none">
+ <type name="Clock" c:type="GstClock*"/>
+ </parameter>
+ </parameters>
+ </method>
+ <method name="set_base_time"
+ c:identifier="gst_element_set_base_time"
+ doc="Set the base time of an element. See gst_element_get_base_time().
+MT safe.">
+ <return-value transfer-ownership="none">
+ <type name="none" c:type="void"/>
+ </return-value>
+ <parameters>
+ <parameter name="time" transfer-ownership="none">
+ <type name="ClockTime" c:type="GstClockTime"/>
+ </parameter>
+ </parameters>
+ </method>
+ <method name="get_base_time"
+ c:identifier="gst_element_get_base_time"
+ doc="Returns the base time of the element. The base time is the
+absolute time of the clock when this element was last put to
+PLAYING. Subtracting the base time from the clock time gives
+the running time of the element.
+MT safe.">
+ <return-value transfer-ownership="full">
+ <type name="ClockTime" c:type="GstClockTime"/>
+ </return-value>
+ </method>
+ <method name="set_start_time"
+ c:identifier="gst_element_set_start_time"
+ doc="Set the start time of an element. The start time of the element is the
+running time of the element when it last went to the PAUSED state. In READY
+or after a flushing seek, it is set to 0.
+Toplevel elements like #GstPipeline will manage the start_time and
+base_time on its children. Setting the start_time to #GST_CLOCK_TIME_NONE
+on such a toplevel element will disable the distribution of the base_time to
+the children and can be useful if the application manages the base_time
+itself, for example if you want to synchronize capture from multiple
+pipelines, and you can also ensure that the pipelines have the same clock.
+MT safe."
+ version="0.10.24">
+ <return-value transfer-ownership="none">
+ <type name="none" c:type="void"/>
+ </return-value>
+ <parameters>
+ <parameter name="time" transfer-ownership="none">
+ <type name="ClockTime" c:type="GstClockTime"/>
+ </parameter>
+ </parameters>
+ </method>
+ <method name="get_start_time"
+ c:identifier="gst_element_get_start_time"
+ doc="Returns the start time of the element. The start time is the
+running time of the clock when this element was last put to PAUSED.
+Usually the start_time is managed by a toplevel element such as
+#GstPipeline.
+MT safe."
+ version="0.10.24">
+ <return-value transfer-ownership="full">
+ <type name="ClockTime" c:type="GstClockTime"/>
+ </return-value>
+ </method>
+ <method name="is_indexable"
+ c:identifier="gst_element_is_indexable"
+ doc="Queries if the element can be indexed.
+MT safe.">
+ <return-value transfer-ownership="none">
+ <type name="boolean" c:type="gboolean"/>
+ </return-value>
+ </method>
+ <method name="set_index"
+ c:identifier="gst_element_set_index"
+ doc="Set @index on the element. The refcount of the index
+will be increased, any previously set index is unreffed.
+MT safe.">
+ <return-value transfer-ownership="none">
+ <type name="none" c:type="void"/>
+ </return-value>
+ <parameters>
+ <parameter name="index" transfer-ownership="none">
+ <type name="Index" c:type="GstIndex*"/>
+ </parameter>
+ </parameters>
+ </method>
+ <method name="get_index"
+ c:identifier="gst_element_get_index"
+ doc="Gets the index from the element.
+element. unref after usage.
+MT safe.">
+ <return-value transfer-ownership="full">
+ <type name="Index" c:type="GstIndex*"/>
+ </return-value>
+ </method>
+ <method name="set_bus"
+ c:identifier="gst_element_set_bus"
+ doc="Sets the bus of the element. Increases the refcount on the bus.
+For internal use only, unless you're testing elements.
+MT safe.">
+ <return-value transfer-ownership="none">
+ <type name="none" c:type="void"/>
+ </return-value>
+ <parameters>
+ <parameter name="bus" transfer-ownership="none">
+ <type name="Bus" c:type="GstBus*"/>
+ </parameter>
+ </parameters>
+ </method>
+ <method name="get_bus"
+ c:identifier="gst_element_get_bus"
+ doc="Returns the bus of the element. Note that only a #GstPipeline will provide a
+bus for the application.
+MT safe.">
+ <return-value transfer-ownership="full">
+ <type name="Bus" c:type="GstBus*"/>
+ </return-value>
+ </method>
+ <method name="add_pad"
+ c:identifier="gst_element_add_pad"
+ doc="Adds a pad (link point) to @element. @pad's parent will be set to @element;
+see gst_object_set_parent() for refcounting information.
+Pads are not automatically activated so elements should perform the needed
+steps to activate the pad in case this pad is added in the PAUSED or PLAYING
+state. See gst_pad_set_active() for more information about activating pads.
+The pad and the element should be unlocked when calling this function.
+This function will emit the #GstElement::pad-added signal on the element.
+a pad with the same name already existed or the pad already had another
+parent.
+MT safe.">
+ <return-value transfer-ownership="none">
+ <type name="boolean" c:type="gboolean"/>
+ </return-value>
+ <parameters>
+ <parameter name="pad" transfer-ownership="none">
+ <type name="Pad" c:type="GstPad*"/>
+ </parameter>
+ </parameters>
+ </method>
+ <method name="remove_pad"
+ c:identifier="gst_element_remove_pad"
+ doc="Removes @pad from @element. @pad will be destroyed if it has not been
+referenced elsewhere using gst_object_unparent().
+This function is used by plugin developers and should not be used
+by applications. Pads that were dynamically requested from elements
+with gst_element_get_request_pad() should be released with the
+gst_element_release_request_pad() function instead.
+Pads are not automatically deactivated so elements should perform the needed
+steps to deactivate the pad in case this pad is removed in the PAUSED or
+PLAYING state. See gst_pad_set_active() for more information about
+deactivating pads.
+The pad and the element should be unlocked when calling this function.
+This function will emit the #GstElement::pad-removed signal on the element.
+pad does not belong to the provided element.
+MT safe.">
+ <return-value transfer-ownership="none">
+ <type name="boolean" c:type="gboolean"/>
+ </return-value>
+ <parameters>
+ <parameter name="pad" transfer-ownership="none">
+ <type name="Pad" c:type="GstPad*"/>
+ </parameter>
+ </parameters>
+ </method>
+ <method name="no_more_pads"
+ c:identifier="gst_element_no_more_pads"
+ doc="Use this function to signal that the element does not expect any more pads
+to show up in the current pipeline. This function should be called whenever
+pads have been added by the element itself. Elements with #GST_PAD_SOMETIMES
+pad templates use this in combination with autopluggers to figure out that
+the element is done initializing its pads.
+This function emits the #GstElement::no-more-pads signal.
+MT safe.">
+ <return-value transfer-ownership="none">
+ <type name="none" c:type="void"/>
+ </return-value>
+ </method>
+ <method name="get_pad"
+ c:identifier="gst_element_get_pad"
+ doc="Retrieves a pad from @element by name. Tries gst_element_get_static_pad()
+first, then gst_element_get_request_pad().
+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.
+Use gst_element_get_static_pad() or gst_element_get_request_pad() instead.
+depending on the type of the pad."
+ deprecated="This function is deprecated as it's unclear if the reference">
+ <return-value transfer-ownership="full">
+ <type name="Pad" c:type="GstPad*"/>
+ </return-value>
+ <parameters>
+ <parameter name="name" transfer-ownership="none">
+ <type name="utf8" c:type="gchar*"/>
+ </parameter>
+ </parameters>
+ </method>
+ <method name="get_static_pad"
+ c:identifier="gst_element_get_static_pad"
+ doc="Retrieves a pad from @element by name. This version only retrieves
+already-existing (i.e. 'static') pads.
+usage.
+MT safe.">
+ <return-value transfer-ownership="full">
+ <type name="Pad" c:type="GstPad*"/>
+ </return-value>
+ <parameters>
+ <parameter name="name" transfer-ownership="none">
+ <type name="utf8" c:type="gchar*"/>
+ </parameter>
+ </parameters>
+ </method>
+ <method name="get_request_pad"
+ c:identifier="gst_element_get_request_pad"
+ doc="Retrieves a pad from the element by name. This version only retrieves
+request pads. The pad should be released with
+gst_element_release_request_pad().">
+ <return-value transfer-ownership="full">
+ <type name="Pad" c:type="GstPad*"/>
+ </return-value>
+ <parameters>
+ <parameter name="name" transfer-ownership="none">
+ <type name="utf8" c:type="gchar*"/>
+ </parameter>
+ </parameters>
+ </method>
+ <method name="release_request_pad"
+ c:identifier="gst_element_release_request_pad"
+ doc="Makes the element free the previously requested pad as obtained
+with gst_element_get_request_pad().
+This does not unref the pad. If the pad was created by using
+gst_element_get_request_pad(), gst_element_release_request_pad() needs to be
+followed by gst_object_unref() to free the @pad.
+MT safe.">
+ <return-value transfer-ownership="none">
+ <type name="none" c:type="void"/>
+ </return-value>
+ <parameters>
+ <parameter name="pad" transfer-ownership="none">
+ <type name="Pad" c:type="GstPad*"/>
+ </parameter>
+ </parameters>
+ </method>
+ <method name="iterate_pads"
+ c:identifier="gst_element_iterate_pads"
+ doc="Retrieves an iterattor of @element's pads. The iterator should
+be freed after usage.
+MT safe.">
+ <return-value transfer-ownership="full">
+ <type name="Iterator" c:type="GstIterator*"/>
+ </return-value>
+ </method>
+ <method name="iterate_src_pads"
+ c:identifier="gst_element_iterate_src_pads"
+ doc="Retrieves an iterator of @element's source pads.
+MT safe.">
+ <return-value transfer-ownership="full">
+ <type name="Iterator" c:type="GstIterator*"/>
+ </return-value>
+ </method>
+ <method name="iterate_sink_pads"
+ c:identifier="gst_element_iterate_sink_pads"
+ doc="Retrieves an iterator of @element's sink pads.
+MT safe.">
+ <return-value transfer-ownership="full">
+ <type name="Iterator" c:type="GstIterator*"/>
+ </return-value>
+ </method>
+ <method name="send_event"
+ c:identifier="gst_element_send_event"
+ doc="Sends an event to an element. If the element doesn't implement an
+event handler, the event will be pushed on a random linked sink pad for
+upstream events or a random linked source pad for downstream events.
+This function takes owership of the provided event so you should
+gst_event_ref() it if you want to reuse the event after this call.
+MT safe.">
+ <return-value transfer-ownership="none">
+ <type name="boolean" c:type="gboolean"/>
+ </return-value>
+ <parameters>
+ <parameter name="event" transfer-ownership="none">
+ <type name="Event" c:type="GstEvent*"/>
+ </parameter>
+ </parameters>
+ </method>
+ <method name="seek"
+ c:identifier="gst_element_seek"
+ doc="Sends a seek event to an element. See gst_event_new_seek() for the details of
+the parameters. The seek event is sent to the element using
+gst_element_send_event().
+MT safe.">
+ <return-value transfer-ownership="none">
+ <type name="boolean" c:type="gboolean"/>
+ </return-value>
+ <parameters>
+ <parameter name="rate" transfer-ownership="none">
+ <type name="double" c:type="gdouble"/>
+ </parameter>
+ <parameter name="format" transfer-ownership="none">
+ <type name="Format" c:type="GstFormat"/>
+ </parameter>
+ <parameter name="flags" transfer-ownership="none">
+ <type name="SeekFlags" c:type="GstSeekFlags"/>
+ </parameter>
+ <parameter name="cur_type" transfer-ownership="none">
+ <type name="SeekType" c:type="GstSeekType"/>
+ </parameter>
+ <parameter name="cur" transfer-ownership="none">
+ <type name="int64" c:type="gint64"/>
+ </parameter>
+ <parameter name="stop_type" transfer-ownership="none">
+ <type name="SeekType" c:type="GstSeekType"/>
+ </parameter>
+ <parameter name="stop" transfer-ownership="none">
+ <type name="int64" c:type="gint64"/>
+ </parameter>
+ </parameters>
+ </method>
+ <method name="get_query_types"
+ c:identifier="gst_element_get_query_types"
+ doc="Get an array of query types from the element.
+If the element doesn't implement a query types function,
+the query will be forwarded to the peer of a random linked sink pad.
+be freed or modified.
+MT safe.">
+ <return-value transfer-ownership="none">
+ <type name="QueryType" c:type="GstQueryType*"/>
+ </return-value>
+ </method>
+ <method name="query"
+ c:identifier="gst_element_query"
+ doc="Performs a query on the given element.
+For elements that don't implement a query handler, this function
+forwards the query to a random srcpad or to the peer of a
+random linked sinkpad of this element.
+MT safe.">
+ <return-value transfer-ownership="none">
+ <type name="boolean" c:type="gboolean"/>
+ </return-value>
+ <parameters>
+ <parameter name="query" transfer-ownership="none">
+ <type name="Query" c:type="GstQuery*"/>
+ </parameter>
+ </parameters>
+ </method>
+ <method name="post_message"
+ c:identifier="gst_element_post_message"
+ doc="Post a message on the element's #GstBus. This function takes ownership of the
+message; if you want to access the message after this call, you should add an
+additional reference before calling.
+%FALSE if the element did not have a bus.
+MT safe.">
+ <return-value transfer-ownership="none">
+ <type name="boolean" c:type="gboolean"/>
+ </return-value>
+ <parameters>
+ <parameter name="message" transfer-ownership="none">
+ <type name="Message" c:type="GstMessage*"/>
+ </parameter>
+ </parameters>
+ </method>
+ <method name="message_full"
+ c:identifier="gst_element_message_full"
+ doc="default message connected to code, or %NULL
+default debugging information, or %NULL
+Post an error, warning or info message on the bus from inside an element.
+#GST_MESSAGE_INFO.
+MT safe.">
+ <return-value transfer-ownership="none">
+ <type name="none" c:type="void"/>
+ </return-value>
+ <parameters>
+ <parameter name="type" transfer-ownership="none">
+ <type name="MessageType" c:type="GstMessageType"/>
+ </parameter>
+ <parameter name="domain" transfer-ownership="none">
+ <type name="GLib.Quark" c:type="GQuark"/>
+ </parameter>
+ <parameter name="code" transfer-ownership="none">
+ <type name="int" c:type="gint"/>
+ </parameter>
+ <parameter name="text" transfer-ownership="full">
+ <type name="utf8" c:type="gchar*"/>
+ </parameter>
+ <parameter name="debug" transfer-ownership="full">
+ <type name="utf8" c:type="gchar*"/>
+ </parameter>
+ <parameter name="file" transfer-ownership="none">
+ <type name="utf8" c:type="gchar*"/>
+ </parameter>
+ <parameter name="function" transfer-ownership="none">
+ <type name="utf8" c:type="gchar*"/>
+ </parameter>
+ <parameter name="line" transfer-ownership="none">
+ <type name="int" c:type="gint"/>
+ </parameter>
+ </parameters>
+ </method>
+ <method name="is_locked_state"
+ c:identifier="gst_element_is_locked_state"
+ doc="Checks if the state of an element is locked.
+If the state of an element is locked, state changes of the parent don't
+affect the element.
+This way you can leave currently unused elements inside bins. Just lock their
+state before changing the state from #GST_STATE_NULL.
+MT safe.">
+ <return-value transfer-ownership="none">
+ <type name="boolean" c:type="gboolean"/>
+ </return-value>
+ </method>
+ <method name="set_locked_state"
+ c:identifier="gst_element_set_locked_state"
+ doc="Locks the state of an element, so state changes of the parent don't affect
+this element anymore.
+MT safe.
+or the elements state-locking needed no change.">
+ <return-value transfer-ownership="none">
+ <type name="boolean" c:type="gboolean"/>
+ </return-value>
+ <parameters>
+ <parameter name="locked_state" transfer-ownership="none">
+ <type name="boolean" c:type="gboolean"/>
+ </parameter>
+ </parameters>
+ </method>
+ <method name="sync_state_with_parent"
+ c:identifier="gst_element_sync_state_with_parent"
+ doc="Tries to change the state of the element to the same as its parent.
+If this function returns FALSE, the state of element is undefined.
+MT safe.">
+ <return-value transfer-ownership="none">
+ <type name="boolean" c:type="gboolean"/>
+ </return-value>
+ </method>
+ <method name="get_state"
+ c:identifier="gst_element_get_state"
+ doc="Can be %NULL.
+state change or %GST_CLOCK_TIME_NONE for infinite timeout.
+Gets the state of the element.
+For elements that performed an ASYNC state change, as reported by
+gst_element_set_state(), this function will block up to the
+specified timeout value for the state change to complete.
+If the element completes the state change or goes into
+an error, this function returns immediately with a return value of
+%GST_STATE_CHANGE_SUCCESS or %GST_STATE_CHANGE_FAILURE respectively.
+For elements that did not return %GST_STATE_CHANGE_ASYNC, this function
+returns the current and pending state immediately.
+This function returns %GST_STATE_CHANGE_NO_PREROLL if the element
+successfully changed its state but is not able to provide data yet.
+This mostly happens for live sources that only produce data in
+%GST_STATE_PLAYING. While the state change return is equivalent to
+%GST_STATE_CHANGE_SUCCESS, it is returned to the application to signal that
+some sink elements might not be able to complete their state change because
+an element is not producing data to complete the preroll. When setting the
+element to playing, the preroll will complete and playback will start.
+and the last state change succeeded, %GST_STATE_CHANGE_ASYNC if the
+element is still performing a state change or
+%GST_STATE_CHANGE_FAILURE if the last state change failed.
+MT safe.">
+ <return-value transfer-ownership="full">
+ <type name="StateChangeReturn" c:type="GstStateChangeReturn"/>
+ </return-value>
+ <parameters>
+ <parameter name="state"
+ direction="out"
+ transfer-ownership="full"
+ doc="a pointer to #GstState to hold the state. Can be %NULL.">
+ <type name="State" c:type="GstState*"/>
+ </parameter>
+ <parameter name="pending"
+ direction="out"
+ transfer-ownership="full"
+ doc="a pointer to #GstState to hold the pending state.">
+ <type name="State" c:type="GstState*"/>
+ </parameter>
+ <parameter name="timeout" transfer-ownership="none">
+ <type name="ClockTime" c:type="GstClockTime"/>
+ </parameter>
+ </parameters>
+ </method>
+ <method name="set_state"
+ c:identifier="gst_element_set_state"
+ doc="Sets the state of the element. This function will try to set the
+requested state by going through all the intermediary states and calling
+the class's state change function for each.
+This function can return #GST_STATE_CHANGE_ASYNC, in which case the
+element will perform the remainder of the state change asynchronously in
+another thread.
+An application can use gst_element_get_state() to wait for the completion
+of the state change or it can wait for a state change message on the bus.
+State changes to %GST_STATE_READY or %GST_STATE_NULL never return
+#GST_STATE_CHANGE_ASYNC.
+MT safe.">
+ <return-value transfer-ownership="full">
+ <type name="StateChangeReturn" c:type="GstStateChangeReturn"/>
+ </return-value>
+ <parameters>
+ <parameter name="state" transfer-ownership="none">
+ <type name="State" c:type="GstState"/>
+ </parameter>
+ </parameters>
+ </method>
+ <method name="abort_state"
+ c:identifier="gst_element_abort_state"
+ doc="Abort the state change of the element. This function is used
+by elements that do asynchronous state changes and find out
+something is wrong.
+This function should be called with the STATE_LOCK held.
+MT safe.">
+ <return-value transfer-ownership="none">
+ <type name="none" c:type="void"/>
+ </return-value>
+ </method>
+ <method name="change_state"
+ c:identifier="gst_element_change_state"
+ doc="Perform @transition on @element.
+This function must be called with STATE_LOCK held and is mainly used
+internally.">
+ <return-value transfer-ownership="full">
+ <type name="StateChangeReturn" c:type="GstStateChangeReturn"/>
+ </return-value>
+ <parameters>
+ <parameter name="transition" transfer-ownership="none">
+ <type name="StateChange" c:type="GstStateChange"/>
+ </parameter>
+ </parameters>
+ </method>
+ <method name="continue_state"
+ c:identifier="gst_element_continue_state"
+ doc="Commit the state change of the element and proceed to the next
+pending state if any. This function is used
+by elements that do asynchronous state changes.
+The core will normally call this method automatically when an
+element returned %GST_STATE_CHANGE_SUCCESS from the state change function.
+If after calling this method the element still has not reached
+the pending state, the next state change is performed.
+This method is used internally and should normally not be called by plugins
+or applications.
+MT safe.">
+ <return-value transfer-ownership="full">
+ <type name="StateChangeReturn" c:type="GstStateChangeReturn"/>
+ </return-value>
+ <parameters>
+ <parameter name="ret" transfer-ownership="none">
+ <type name="StateChangeReturn" c:type="GstStateChangeReturn"/>
+ </parameter>
+ </parameters>
+ </method>
+ <method name="lost_state"
+ c:identifier="gst_element_lost_state"
+ doc="Brings the element to the lost state. This function calls
+gst_element_lost_state_full() with the new_base_time set to %TRUE.
+This function is used internally and should normally not be called from
+plugins or applications.
+MT safe.">
+ <return-value transfer-ownership="none">
+ <type name="none" c:type="void"/>
+ </return-value>
+ </method>
+ <method name="lost_state_full"
+ c:identifier="gst_element_lost_state_full"
+ doc="Brings the element to the lost state. The current state of the
+element is copied to the pending state so that any call to
+gst_element_get_state() will return %GST_STATE_CHANGE_ASYNC.
+An ASYNC_START message is posted with indication to distribute a new
+base_time to the element when @new_base_time is %TRUE.
+If the element was PLAYING, it will go to PAUSED. The element
+will be restored to its PLAYING state by the parent pipeline when it
+prerolls again.
+This is mostly used for elements that lost their preroll buffer
+in the %GST_STATE_PAUSED or %GST_STATE_PLAYING state after a flush,
+they will go to their pending state again when a new preroll buffer is
+queued. This function can only be called when the element is currently
+not in error or an async state change.
+This function is used internally and should normally not be called from
+plugins or applications.
+MT safe."
+ version="0.10.24">
+ <return-value transfer-ownership="none">
+ <type name="none" c:type="void"/>
+ </return-value>
+ <parameters>
+ <parameter name="new_base_time" transfer-ownership="none">
+ <type name="boolean" c:type="gboolean"/>
+ </parameter>
+ </parameters>
+ </method>
+ <method name="get_factory"
+ c:identifier="gst_element_get_factory"
+ doc="Retrieves the factory that was used to create this element.
+no refcounting is needed.">
+ <return-value transfer-ownership="full">
+ <type name="ElementFactory" c:type="GstElementFactory*"/>
+ </return-value>
+ </method>
+ <method name="implements_interface"
+ c:identifier="gst_element_implements_interface"
+ doc="Test whether the given element implements a certain interface of type
+iface_type, and test whether it is supported for this specific instance.">
+ <return-value transfer-ownership="none">
+ <type name="boolean" c:type="gboolean"/>
+ </return-value>
+ <parameters>
+ <parameter name="iface_type"
+ transfer-ownership="none"
+ doc="type of the interface which we want to be implemented">
+ <type name="GType" c:type="GType"/>
+ </parameter>
+ </parameters>
+ </method>
+ <method name="create_all_pads"
+ c:identifier="gst_element_create_all_pads"
+ doc="Creates a pad for each pad template that is always available.
+This function is only useful during object intialization of
+subclasses of #GstElement.">
+ <return-value transfer-ownership="none">
+ <type name="none" c:type="void"/>
+ </return-value>
+ </method>
+ <method name="get_compatible_pad"
+ c:identifier="gst_element_get_compatible_pad"
+ doc="Looks for an unlinked pad to which the given pad can link. It is not
+guaranteed that linking the pads will work, though it should work in most
+cases.
+found. gst_object_unref() after usage.">
+ <return-value transfer-ownership="full">
+ <type name="Pad" c:type="GstPad*"/>
+ </return-value>
+ <parameters>
+ <parameter name="pad" transfer-ownership="none">
+ <type name="Pad" c:type="GstPad*"/>
+ </parameter>
+ <parameter name="caps" transfer-ownership="none">
+ <type name="Caps" c:type="GstCaps*"/>
+ </parameter>
+ </parameters>
+ </method>
+ <method name="get_compatible_pad_template"
+ c:identifier="gst_element_get_compatible_pad_template"
+ doc="Retrieves a pad template from @element that is compatible with @compattempl.
+Pads from compatible templates can be linked together.
+unreferencing is necessary.">
+ <return-value transfer-ownership="full">
+ <type name="PadTemplate" c:type="GstPadTemplate*"/>
+ </return-value>
+ <parameters>
+ <parameter name="compattempl" transfer-ownership="none">
+ <type name="PadTemplate" c:type="GstPadTemplate*"/>
+ </parameter>
+ </parameters>
+ </method>
+ <method name="link"
+ c:identifier="gst_element_link"
+ doc="Links @src to @dest. The link must be from source to
+destination; the other direction will not be tried. The function looks for
+existing pads that aren't linked yet. It will request new pads if necessary.
+Such pads need to be released manualy when unlinking.
+If multiple links are possible, only one is established.
+Make sure you have added your elements to a bin or pipeline with
+gst_bin_add() before trying to link them.">
+ <return-value transfer-ownership="none">
+ <type name="boolean" c:type="gboolean"/>
+ </return-value>
+ <parameters>
+ <parameter name="dest" transfer-ownership="none">
+ <type name="Element" c:type="GstElement*"/>
+ </parameter>
+ </parameters>
+ </method>
+ <method name="link_many"
+ c:identifier="gst_element_link_many"
+ doc="Chain together a series of elements. Uses gst_element_link().
+Make sure you have added your elements to a bin or pipeline with
+gst_bin_add() before trying to link them.">
+ <return-value transfer-ownership="none">
+ <type name="boolean" c:type="gboolean"/>
+ </return-value>
+ <parameters>
+ <parameter name="element_2" transfer-ownership="none">
+ <type name="Element" c:type="GstElement*"/>
+ </parameter>
+ <parameter transfer-ownership="none">
+ <varargs>
+ </varargs>
+ </parameter>
+ </parameters>
+ </method>
+ <method name="link_filtered"
+ c:identifier="gst_element_link_filtered"
+ doc="Links @src to @dest using the given caps as filtercaps.
+The link must be from source to
+destination; the other direction will not be tried. The function looks for
+existing pads that aren't linked yet. It will request new pads if necessary.
+If multiple links are possible, only one is established.
+Make sure you have added your elements to a bin or pipeline with
+gst_bin_add() before trying to link them.">
+ <return-value transfer-ownership="none">
+ <type name="boolean" c:type="gboolean"/>
+ </return-value>
+ <parameters>
+ <parameter name="dest" transfer-ownership="none">
+ <type name="Element" c:type="GstElement*"/>
+ </parameter>
+ <parameter name="filter" transfer-ownership="none">
+ <type name="Caps" c:type="GstCaps*"/>
+ </parameter>
+ </parameters>
+ </method>
+ <method name="unlink"
+ c:identifier="gst_element_unlink"
+ doc="Unlinks all source pads of the source element with all sink pads
+of the sink element to which they are linked.
+If the link has been made using gst_element_link(), it could have created an
+requestpad, which has to be released using gst_element_release_request_pad().">
+ <return-value transfer-ownership="none">
+ <type name="none" c:type="void"/>
+ </return-value>
+ <parameters>
+ <parameter name="dest" transfer-ownership="none">
+ <type name="Element" c:type="GstElement*"/>
+ </parameter>
+ </parameters>
+ </method>
+ <method name="unlink_many"
+ c:identifier="gst_element_unlink_many"
+ doc="Unlinks a series of elements. Uses gst_element_unlink().">
+ <return-value transfer-ownership="none">
+ <type name="none" c:type="void"/>
+ </return-value>
+ <parameters>
+ <parameter name="element_2" transfer-ownership="none">
+ <type name="Element" c:type="GstElement*"/>
+ </parameter>
+ <parameter transfer-ownership="none">
+ <varargs>
+ </varargs>
+ </parameter>
+ </parameters>
+ </method>
+ <method name="link_pads"
+ c:identifier="gst_element_link_pads"
+ doc="or NULL for any pad.
+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.">
+ <return-value transfer-ownership="none">
+ <type name="boolean" c:type="gboolean"/>
+ </return-value>
+ <parameters>
+ <parameter name="srcpadname" transfer-ownership="none">
+ <type name="utf8" c:type="gchar*"/>
+ </parameter>
+ <parameter name="dest" transfer-ownership="none">
+ <type name="Element" c:type="GstElement*"/>
+ </parameter>
+ <parameter name="destpadname" transfer-ownership="none">
+ <type name="utf8" c:type="gchar*"/>
+ </parameter>
+ </parameters>
+ </method>
+ <method name="unlink_pads"
+ c:identifier="gst_element_unlink_pads"
+ doc="Unlinks the two named pads of the source and destination elements.">
+ <return-value transfer-ownership="none">
+ <type name="none" c:type="void"/>
+ </return-value>
+ <parameters>
+ <parameter name="srcpadname" transfer-ownership="none">
+ <type name="utf8" c:type="gchar*"/>
+ </parameter>
+ <parameter name="dest" transfer-ownership="none">
+ <type name="Element" c:type="GstElement*"/>
+ </parameter>
+ <parameter name="destpadname" transfer-ownership="none">
+ <type name="utf8" c:type="gchar*"/>
+ </parameter>
+ </parameters>
+ </method>
+ <method name="link_pads_filtered"
+ c:identifier="gst_element_link_pads_filtered"
+ doc="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.">
+ <return-value transfer-ownership="none">
+ <type name="boolean" c:type="gboolean"/>
+ </return-value>
+ <parameters>
+ <parameter name="srcpadname" transfer-ownership="none">
+ <type name="utf8" c:type="gchar*"/>
+ </parameter>
+ <parameter name="dest" transfer-ownership="none">
+ <type name="Element" c:type="GstElement*"/>
+ </parameter>
+ <parameter name="destpadname" transfer-ownership="none">
+ <type name="utf8" c:type="gchar*"/>
+ </parameter>
+ <parameter name="filter" transfer-ownership="none">
+ <type name="Caps" c:type="GstCaps*"/>
+ </parameter>
+ </parameters>
+ </method>
+ <method name="seek_simple" c:identifier="gst_element_seek_simple">
+ <return-value transfer-ownership="none">
+ <type name="boolean" c:type="gboolean"/>
+ </return-value>
+ <parameters>
+ <parameter name="format" transfer-ownership="none">
+ <type name="Format" c:type="GstFormat"/>
+ </parameter>
+ <parameter name="seek_flags" transfer-ownership="none">
+ <type name="SeekFlags" c:type="GstSeekFlags"/>
+ </parameter>
+ <parameter name="seek_pos" transfer-ownership="none">
+ <type name="int64" c:type="gint64"/>
+ </parameter>
+ </parameters>
+ </method>
+ <method name="query_position"
+ c:identifier="gst_element_query_position"
+ doc="On return contains the #GstFormat used.
+Queries an element for the stream position.">
+ <return-value transfer-ownership="none">
+ <type name="boolean" c:type="gboolean"/>
+ </return-value>
+ <parameters>
+ <parameter name="format" transfer-ownership="none">
+ <type name="Format" c:type="GstFormat*"/>
+ </parameter>
+ <parameter name="cur" direction="out" transfer-ownership="full">
+ <type name="int64" c:type="gint64*"/>
+ </parameter>
+ </parameters>
+ </method>
+ <method name="query_duration"
+ c:identifier="gst_element_query_duration"
+ doc="On return contains the #GstFormat used.
+Queries an element for the total stream duration.">
+ <return-value transfer-ownership="none">
+ <type name="boolean" c:type="gboolean"/>
+ </return-value>
+ <parameters>
+ <parameter name="format"
+ direction="inout"
+ transfer-ownership="full"
+ doc="a pointer to the #GstFormat asked for.">
+ <type name="Format" c:type="GstFormat*"/>
+ </parameter>
+ <parameter name="duration"
+ direction="out"
+ transfer-ownership="full"
+ doc="A location in which to store the total duration, or NULL.">
+ <type name="int64" c:type="gint64*"/>
+ </parameter>
+ </parameters>
+ </method>
+ <method name="query_convert"
+ c:identifier="gst_element_query_convert"
+ doc="Queries an element to convert @src_val in @src_format to @dest_format.">
+ <return-value transfer-ownership="none">
+ <type name="boolean" c:type="gboolean"/>
+ </return-value>
+ <parameters>
+ <parameter name="src_format" transfer-ownership="none">
+ <type name="Format" c:type="GstFormat"/>
+ </parameter>
+ <parameter name="src_val" transfer-ownership="none">
+ <type name="int64" c:type="gint64"/>
+ </parameter>
+ <parameter name="dest_format" transfer-ownership="none">
+ <type name="Format" c:type="GstFormat*"/>
+ </parameter>
+ <parameter name="dest_val" direction="out" transfer-ownership="full">
+ <type name="int64" c:type="gint64*"/>
+ </parameter>
+ </parameters>
+ </method>
+ <method name="found_tags_for_pad"
+ c:identifier="gst_element_found_tags_for_pad"
+ doc="Posts a message to the bus that new tags were found and pushes the
+tags as event. Takes ownership of the @list.
+This is a utility method for elements. Applications should use the
+#GstTagSetter interface.">
+ <return-value transfer-ownership="none">
+ <type name="none" c:type="void"/>
+ </return-value>
+ <parameters>
+ <parameter name="pad" transfer-ownership="none">
+ <type name="Pad" c:type="GstPad*"/>
+ </parameter>
+ <parameter name="list" transfer-ownership="none">
+ <type name="TagList" c:type="GstTagList*"/>
+ </parameter>
+ </parameters>
+ </method>
+ <method name="found_tags"
+ c:identifier="gst_element_found_tags"
+ doc="Posts a message to the bus that new tags were found, and pushes an event
+to all sourcepads. Takes ownership of the @list.
+This is a utility method for elements. Applications should use the
+#GstTagSetter interface.">
+ <return-value transfer-ownership="none">
+ <type name="none" c:type="void"/>
+ </return-value>
+ <parameters>
+ <parameter name="list" transfer-ownership="none">
+ <type name="TagList" c:type="GstTagList*"/>
+ </parameter>
+ </parameters>
+ </method>
+ <field name="object">
+ <type name="Object" c:type="GstObject"/>
+ </field>
+ <field name="state_lock">
+ <type name="GLib.StaticRecMutex" c:type="GStaticRecMutex*"/>
+ </field>
+ <field name="state_cond">
+ <type name="GLib.Cond" c:type="GCond*"/>
+ </field>
+ <field name="state_cookie">
+ <type name="uint32" c:type="guint32"/>
+ </field>
+ <field name="current_state">
+ <type name="State" c:type="GstState"/>
+ </field>
+ <field name="next_state">
+ <type name="State" c:type="GstState"/>
+ </field>
+ <field name="pending_state">
+ <type name="State" c:type="GstState"/>
+ </field>
+ <field name="last_return">
+ <type name="StateChangeReturn" c:type="GstStateChangeReturn"/>
+ </field>
+ <field name="bus">
+ <type name="Bus" c:type="GstBus*"/>
+ </field>
+ <field name="clock">
+ <type name="Clock" c:type="GstClock*"/>
+ </field>
+ <field name="base_time">
+ <type name="ClockTimeDiff" c:type="GstClockTimeDiff"/>
+ </field>
+ <field name="numpads">
+ <type name="uint16" c:type="guint16"/>
+ </field>
+ <field name="pads">
+ <type name="GLib.List" c:type="GList*"/>
+ </field>
+ <field name="numsrcpads">
+ <type name="uint16" c:type="guint16"/>
+ </field>
+ <field name="srcpads">
+ <type name="GLib.List" c:type="GList*"/>
+ </field>
+ <field name="numsinkpads">
+ <type name="uint16" c:type="guint16"/>
+ </field>
+ <field name="sinkpads">
+ <type name="GLib.List" c:type="GList*"/>
+ </field>
+ <field name="pads_cookie">
+ <type name="uint32" c:type="guint32"/>
+ </field>
+ <union name="abidata" c:type="abidata">
+ <record name="ABI" c:type="ABI">
+ <field name="target_state" writable="1">
+ <type name="State" c:type="GstState"/>
+ </field>
+ <field name="start_time" writable="1">
+ <type name="ClockTime" c:type="GstClockTime"/>
+ </field>
+ </record>
+ <field name="_gst_reserved" writable="1">
+ <array zero-terminated="0" c:type="gpointer" fixed-size="4">
+ <type name="any"/>
+ </array>
+ </field>
+ </union>
+ <glib:signal name="no-more-pads"
+ doc="This signals that the element will not generate more dynamic pads.">
+ <return-value transfer-ownership="full">
+ <type name="none" c:type="void"/>
+ </return-value>
+ </glib:signal>
+ <glib:signal name="pad-added"
+ doc="a new #GstPad has been added to the element.">
+ <return-value transfer-ownership="full">
+ <type name="none" c:type="void"/>
+ </return-value>
+ <parameters>
+ <parameter name="new_pad" transfer-ownership="none">
+ <type name="Pad" c:type="GstPad"/>
+ </parameter>
+ </parameters>
+ </glib:signal>
+ <glib:signal name="pad-removed"
+ doc="a #GstPad has been removed from the element">
+ <return-value transfer-ownership="full">
+ <type name="none" c:type="void"/>
+ </return-value>
+ <parameters>
+ <parameter name="old_pad" transfer-ownership="none">
+ <type name="Pad" c:type="GstPad"/>
+ </parameter>
+ </parameters>
+ </glib:signal>
+ </class>
+ <record name="ElementClass"
+ c:type="GstElementClass"
+ glib:is-gtype-struct-for="Element"
+ doc="GStreamer element class. Override the vmethods to implement the element
+functionality.">
+ <field name="parent_class">
+ <type name="ObjectClass" c:type="GstObjectClass"/>
+ </field>
+ <field name="details">
+ <type name="ElementDetails" c:type="GstElementDetails"/>
+ </field>
+ <field name="elementfactory">
+ <type name="ElementFactory" c:type="GstElementFactory*"/>
+ </field>
+ <field name="padtemplates">
+ <type name="GLib.List" c:type="GList*"/>
+ </field>
+ <field name="numpadtemplates">
+ <type name="int" c:type="gint"/>
+ </field>
+ <field name="pad_templ_cookie">
+ <type name="uint32" c:type="guint32"/>
+ </field>
+ <field name="pad_added">
+ <callback name="pad_added" c:type="pad_added">
+ <return-value transfer-ownership="none">
+ <type name="none" c:type="void"/>
+ </return-value>
+ <parameters>
+ <parameter name="element" transfer-ownership="none">
+ <type name="Element" c:type="GstElement*"/>
+ </parameter>
+ <parameter name="pad" transfer-ownership="none">
+ <type name="Pad" c:type="GstPad*"/>
+ </parameter>
+ </parameters>
+ </callback>
+ </field>
+ <field name="pad_removed">
+ <callback name="pad_removed" c:type="pad_removed">
+ <return-value transfer-ownership="none">
+ <type name="none" c:type="void"/>
+ </return-value>
+ <parameters>
+ <parameter name="element" transfer-ownership="none">
+ <type name="Element" c:type="GstElement*"/>
+ </parameter>
+ <parameter name="pad" transfer-ownership="none">
+ <type name="Pad" c:type="GstPad*"/>
+ </parameter>
+ </parameters>
+ </callback>
+ </field>
+ <field name="no_more_pads">
+ <callback name="no_more_pads" c:type="no_more_pads">
+ <return-value transfer-ownership="none">
+ <type name="none" c:type="void"/>
+ </return-value>
+ <parameters>
+ <parameter name="element" transfer-ownership="none">
+ <type name="Element" c:type="GstElement*"/>
+ </parameter>
+ </parameters>
+ </callback>
+ </field>
+ <field name="request_new_pad">
+ <callback name="request_new_pad" c:type="request_new_pad">
+ <return-value transfer-ownership="full">
+ <type name="Pad" c:type="GstPad*"/>
+ </return-value>
+ <parameters>
+ <parameter name="element" transfer-ownership="none">
+ <type name="Element" c:type="GstElement*"/>
+ </parameter>
+ <parameter name="templ" transfer-ownership="none">
+ <type name="PadTemplate" c:type="GstPadTemplate*"/>
+ </parameter>
+ <parameter name="name" transfer-ownership="none">
+ <type name="utf8" c:type="gchar*"/>
+ </parameter>
+ </parameters>
+ </callback>
+ </field>
+ <field name="release_pad">
+ <callback name="release_pad" c:type="release_pad">
+ <return-value transfer-ownership="none">
+ <type name="none" c:type="void"/>
+ </return-value>
+ <parameters>
+ <parameter name="element" transfer-ownership="none">
+ <type name="Element" c:type="GstElement*"/>
+ </parameter>
+ <parameter name="pad" transfer-ownership="none">
+ <type name="Pad" c:type="GstPad*"/>
+ </parameter>
+ </parameters>
+ </callback>
+ </field>
+ <field name="get_state">
+ <callback name="get_state" c:type="get_state">
+ <return-value transfer-ownership="full">
+ <type name="StateChangeReturn" c:type="GstStateChangeReturn"/>
+ </return-value>
+ <parameters>
+ <parameter name="element" transfer-ownership="none">
+ <type name="Element" c:type="GstElement*"/>
+ </parameter>
+ <parameter name="state" transfer-ownership="none">
+ <type name="State" c:type="GstState*"/>
+ </parameter>
+ <parameter name="pending" transfer-ownership="none">
+ <type name="State" c:type="GstState*"/>
+ </parameter>
+ <parameter name="timeout" transfer-ownership="none">
+ <type name="ClockTime" c:type="GstClockTime"/>
+ </parameter>
+ </parameters>
+ </callback>
+ </field>
+ <field name="set_state">
+ <callback name="set_state" c:type="set_state">
+ <return-value transfer-ownership="full">
+ <type name="StateChangeReturn" c:type="GstStateChangeReturn"/>
+ </return-value>
+ <parameters>
+ <parameter name="element" transfer-ownership="none">
+ <type name="Element" c:type="GstElement*"/>
+ </parameter>
+ <parameter name="state" transfer-ownership="none">
+ <type name="State" c:type="GstState"/>
+ </parameter>
+ </parameters>
+ </callback>
+ </field>
+ <field name="change_state">
+ <callback name="change_state" c:type="change_state">
+ <return-value transfer-ownership="full">
+ <type name="StateChangeReturn" c:type="GstStateChangeReturn"/>
+ </return-value>
+ <parameters>
+ <parameter name="element" transfer-ownership="none">
+ <type name="Element" c:type="GstElement*"/>
+ </parameter>
+ <parameter name="transition" transfer-ownership="none">
+ <type name="StateChange" c:type="GstStateChange"/>
+ </parameter>
+ </parameters>
+ </callback>
+ </field>
+ <field name="set_bus">
+ <callback name="set_bus" c:type="set_bus">
+ <return-value transfer-ownership="none">
+ <type name="none" c:type="void"/>
+ </return-value>
+ <parameters>
+ <parameter name="element" transfer-ownership="none">
+ <type name="Element" c:type="GstElement*"/>
+ </parameter>
+ <parameter name="bus" transfer-ownership="none">
+ <type name="Bus" c:type="GstBus*"/>
+ </parameter>
+ </parameters>
+ </callback>
+ </field>
+ <field name="provide_clock">
+ <callback name="provide_clock" c:type="provide_clock">
+ <return-value transfer-ownership="full">
+ <type name="Clock" c:type="GstClock*"/>
+ </return-value>
+ <parameters>
+ <parameter name="element" transfer-ownership="none">
+ <type name="Element" c:type="GstElement*"/>
+ </parameter>
+ </parameters>
+ </callback>
+ </field>
+ <field name="set_clock">
+ <callback name="set_clock" c:type="set_clock">
+ <return-value transfer-ownership="none">
+ <type name="boolean" c:type="gboolean"/>
+ </return-value>
+ <parameters>
+ <parameter name="element" transfer-ownership="none">
+ <type name="Element" c:type="GstElement*"/>
+ </parameter>
+ <parameter name="clock" transfer-ownership="none">
+ <type name="Clock" c:type="GstClock*"/>
+ </parameter>
+ </parameters>
+ </callback>
+ </field>
+ <field name="get_index">
+ <callback name="get_index" c:type="get_index">
+ <return-value transfer-ownership="full">
+ <type name="Index" c:type="GstIndex*"/>
+ </return-value>
+ <parameters>
+ <parameter name="element" transfer-ownership="none">
+ <type name="Element" c:type="GstElement*"/>
+ </parameter>
+ </parameters>
+ </callback>
+ </field>
+ <field name="set_index">
+ <callback name="set_index" c:type="set_index">
+ <return-value transfer-ownership="none">
+ <type name="none" c:type="void"/>
+ </return-value>
+ <parameters>
+ <parameter name="element" transfer-ownership="none">
+ <type name="Element" c:type="GstElement*"/>
+ </parameter>
+ <parameter name="index" transfer-ownership="none">
+ <type name="Index" c:type="GstIndex*"/>
+ </parameter>
+ </parameters>
+ </callback>
+ </field>
+ <field name="send_event">
+ <callback name="send_event" c:type="send_event">
+ <return-value transfer-ownership="none">
+ <type name="boolean" c:type="gboolean"/>
+ </return-value>
+ <parameters>
+ <parameter name="element" transfer-ownership="none">
+ <type name="Element" c:type="GstElement*"/>
+ </parameter>
+ <parameter name="event" transfer-ownership="none">
+ <type name="Event" c:type="GstEvent*"/>
+ </parameter>
+ </parameters>
+ </callback>
+ </field>
+ <field name="get_query_types">
+ <callback name="get_query_types" c:type="get_query_types">
+ <return-value transfer-ownership="none">
+ <type name="QueryType" c:type="GstQueryType*"/>
+ </return-value>
+ <parameters>
+ <parameter name="element" transfer-ownership="none">
+ <type name="Element" c:type="GstElement*"/>
+ </parameter>
+ </parameters>
+ </callback>
+ </field>
+ <field name="query">
+ <callback name="query" c:type="query">
+ <return-value transfer-ownership="none">
+ <type name="boolean" c:type="gboolean"/>
+ </return-value>
+ <parameters>
+ <parameter name="element" transfer-ownership="none">
+ <type name="Element" c:type="GstElement*"/>
+ </parameter>
+ <parameter name="query" transfer-ownership="none">
+ <type name="Query" c:type="GstQuery*"/>
+ </parameter>
+ </parameters>
+ </callback>
+ </field>
+ <field name="_gst_reserved">
+ <array zero-terminated="0" c:type="gpointer" fixed-size="4">
+ <type name="any"/>
+ </array>
+ </field>
+ <method name="add_pad_template"
+ c:identifier="gst_element_class_add_pad_template"
+ doc="Adds a padtemplate to an element class. This is mainly used in the _base_init
+functions of classes.">
+ <return-value transfer-ownership="none">
+ <type name="none" c:type="void"/>
+ </return-value>
+ <parameters>
+ <parameter name="templ" transfer-ownership="none">
+ <type name="PadTemplate" c:type="GstPadTemplate*"/>
+ </parameter>
+ </parameters>
+ </method>
+ <method name="get_pad_template"
+ c:identifier="gst_element_class_get_pad_template"
+ doc="Retrieves a padtemplate from @element_class with the given name.
+<note>If you use this function in the #GInstanceInitFunc of an object class
+that has subclasses, make sure to pass the g_class parameter of the
+#GInstanceInitFunc here.</note>
+No unreferencing is necessary.">
+ <return-value transfer-ownership="full">
+ <type name="PadTemplate" c:type="GstPadTemplate*"/>
+ </return-value>
+ <parameters>
+ <parameter name="name" transfer-ownership="none">
+ <type name="utf8" c:type="gchar*"/>
+ </parameter>
+ </parameters>
+ </method>
+ <method name="get_pad_template_list"
+ c:identifier="gst_element_class_get_pad_template_list"
+ doc="Retrieves a list of the pad templates associated with @element_class. The
+list must not be modified by the calling code.
+<note>If you use this function in the #GInstanceInitFunc of an object class
+that has subclasses, make sure to pass the g_class parameter of the
+#GInstanceInitFunc here.</note>">
+ <return-value transfer-ownership="full">
+ <type name="GLib.List" c:type="GList*"/>
+ </return-value>
+ </method>
+ <method name="set_details"
+ c:identifier="gst_element_class_set_details"
+ doc="Sets the detailed information for a #GstElementClass.
+<note>This function is for use in _base_init functions only.</note>
+The @details are copied."
+ deprecated="Use gst_element_class_set_details_simple() instead.">
+ <return-value transfer-ownership="none">
+ <type name="none" c:type="void"/>
+ </return-value>
+ <parameters>
+ <parameter name="details" transfer-ownership="none">
+ <type name="ElementDetails" c:type="GstElementDetails*"/>
+ </parameter>
+ </parameters>
+ </method>
+ <method name="set_details_simple"
+ c:identifier="gst_element_class_set_details_simple"
+ doc="separated with slashes ('/'). See draft-klass.txt of the design docs
+Sets the detailed information for a #GstElementClass. Simpler version of
+gst_element_class_set_details() that generates less linker overhead.
+<note>This function is for use in _base_init functions only.</note>
+The detail parameter strings are copied into the #GstElementDetails for
+the element class."
+ version="0.10.14">
+ <return-value transfer-ownership="none">
+ <type name="none" c:type="void"/>
+ </return-value>
+ <parameters>
+ <parameter name="longname" transfer-ownership="none">
+ <type name="utf8" c:type="gchar*"/>
+ </parameter>
+ <parameter name="classification" transfer-ownership="none">
+ <type name="utf8" c:type="gchar*"/>
+ </parameter>
+ <parameter name="description" transfer-ownership="none">
+ <type name="utf8" c:type="gchar*"/>
+ </parameter>
+ <parameter name="author"
+ transfer-ownership="none"
+ doc="Use \n to separate">
+ <type name="utf8" c:type="gchar*"/>
+ </parameter>
+ </parameters>
+ </method>
+ <method name="install_std_props"
+ c:identifier="gst_element_class_install_std_props"
+ doc="in a NULL terminated
+further 'name', 'id', 'flags' triplets and terminated by NULL.
+Adds a list of standardized properties with types to the @klass.
+the id is for the property switch in your get_prop method, and
+the flags determine readability / writeability.">
+ <return-value transfer-ownership="none">
+ <type name="none" c:type="void"/>
+ </return-value>
+ <parameters>
+ <parameter name="first_name" transfer-ownership="none">
+ <type name="utf8" c:type="gchar*"/>
+ </parameter>
+ <parameter transfer-ownership="none">
+ <varargs>
+ </varargs>
+ </parameter>
+ </parameters>
+ </method>
+ </record>
+ <record name="ElementDetails"
+ c:type="GstElementDetails"
+ doc="separated with slashes ('/'). See draft-klass.txt of the design docs
+for more details and common types
+This struct defines the public information about a #GstElement. It contains
+meta-data about the element that is mostly for the benefit of editors.
+The @klass member can be used by applications to filter elements based
+on functionality.">
+ <field name="longname" writable="1">
+ <type name="utf8" c:type="gchar*"/>
+ </field>
+ <field name="klass" writable="1">
+ <type name="utf8" c:type="gchar*"/>
+ </field>
+ <field name="description" writable="1">
+ <type name="utf8" c:type="gchar*"/>
+ </field>
+ <field name="author" writable="1">
+ <type name="utf8" c:type="gchar*"/>
+ </field>
+ <field name="_gst_reserved" writable="1">
+ <array zero-terminated="0" c:type="gpointer" fixed-size="4">
+ <type name="any"/>
+ </array>
+ </field>
+ </record>
+ <class name="ElementFactory"
+ c:type="GstElementFactory"
+ doc="The opaque #GstElementFactory data structure."
+ parent="PluginFeature"
+ glib:type-name="GstElementFactory"
+ glib:get-type="gst_element_factory_get_type"
+ glib:type-struct="ElementFactoryClass">
+ <function name="find"
+ c:identifier="gst_element_factory_find"
+ doc="Search for an element factory of the given name. Refs the returned
+element factory; caller is responsible for unreffing.">
+ <return-value transfer-ownership="full">
+ <type name="ElementFactory" c:type="GstElementFactory*"/>
+ </return-value>
+ <parameters>
+ <parameter name="name" transfer-ownership="none">
+ <type name="utf8" c:type="gchar*"/>
+ </parameter>
+ </parameters>
+ </function>
+ <function name="make"
+ c:identifier="gst_element_factory_make"
+ doc="Create a new element of the type defined by the given element factory.
+If name is NULL, then the element will receive a guaranteed unique name,
+consisting of the element factory name and a number.
+If name is given, it will be given the name supplied.">
+ <return-value transfer-ownership="full">
+ <type name="Element" c:type="GstElement*"/>
+ </return-value>
+ <parameters>
+ <parameter name="factoryname" transfer-ownership="none">
+ <type name="utf8" c:type="gchar*"/>
+ </parameter>
+ <parameter name="name" transfer-ownership="none">
+ <type name="utf8" c:type="gchar*"/>
+ </parameter>
+ </parameters>
+ </function>
+ <method name="get_element_type"
+ c:identifier="gst_element_factory_get_element_type"
+ doc="Get the #GType for elements managed by this factory. The type can
+only be retrieved if the element factory is loaded, which can be
+assured with gst_plugin_feature_load().
+the factory is not loaded.">
+ <return-value transfer-ownership="none">
+ <type name="GType" c:type="GType"/>
+ </return-value>
+ </method>
+ <method name="get_longname"
+ c:identifier="gst_element_factory_get_longname"
+ doc="Gets the longname for this factory">
+ <return-value transfer-ownership="none">
+ <type name="utf8" c:type="gchar*"/>
+ </return-value>
+ </method>
+ <method name="get_klass"
+ c:identifier="gst_element_factory_get_klass"
+ doc="Gets the class for this factory.">
+ <return-value transfer-ownership="none">
+ <type name="utf8" c:type="gchar*"/>
+ </return-value>
+ </method>
+ <method name="get_description"
+ c:identifier="gst_element_factory_get_description"
+ doc="Gets the description for this factory.">
+ <return-value transfer-ownership="none">
+ <type name="utf8" c:type="gchar*"/>
+ </return-value>
+ </method>
+ <method name="get_author"
+ c:identifier="gst_element_factory_get_author"
+ doc="Gets the author for this factory.">
+ <return-value transfer-ownership="none">
+ <type name="utf8" c:type="gchar*"/>
+ </return-value>
+ </method>
+ <method name="get_num_pad_templates"
+ c:identifier="gst_element_factory_get_num_pad_templates"
+ doc="Gets the number of pad_templates in this factory.">
+ <return-value transfer-ownership="none">
+ <type name="uint" c:type="guint"/>
+ </return-value>
+ </method>
+ <method name="get_static_pad_templates"
+ c:identifier="gst_element_factory_get_static_pad_templates"
+ doc="Gets the #GList of #GstStaticPadTemplate for this factory.">
+ <return-value transfer-ownership="none">
+ <type name="GLib.List" c:type="GList*"/>
+ </return-value>
+ </method>
+ <method name="get_uri_type"
+ c:identifier="gst_element_factory_get_uri_type"
+ doc="Gets the type of URIs the element supports or #GST_URI_UNKNOWN if none.">
+ <return-value transfer-ownership="none">
+ <type name="int" c:type="gint"/>
+ </return-value>
+ </method>
+ <method name="get_uri_protocols"
+ c:identifier="gst_element_factory_get_uri_protocols"
+ doc="Gets a NULL-terminated array of protocols this element supports or NULL if
+no protocols are supported. You may not change the contents of the returned
+array, as it is still owned by the element factory. Use g_strdupv() to
+make a copy of the protocol string array if you need to.">
+ <return-value transfer-ownership="full">
+ <array c:type="gchar**">
+ <type name="utf8"/>
+ </array>
+ </return-value>
+ </method>
+ <method name="has_interface"
+ c:identifier="gst_element_factory_has_interface"
+ doc="Check if @factory implements the interface with name @interfacename."
+ version="0.10.14">
+ <return-value transfer-ownership="none">
+ <type name="boolean" c:type="gboolean"/>
+ </return-value>
+ <parameters>
+ <parameter name="interfacename" transfer-ownership="none">
+ <type name="utf8" c:type="gchar*"/>
+ </parameter>
+ </parameters>
+ </method>
+ <method name="create"
+ c:identifier="gst_element_factory_create"
+ doc="Create a new element of the type defined by the given elementfactory.
+It will be given the name supplied, since all elements require a name as
+their first argument.">
+ <return-value transfer-ownership="full">
+ <type name="Element" c:type="GstElement*"/>
+ </return-value>
+ <parameters>
+ <parameter name="name" transfer-ownership="none">
+ <type name="utf8" c:type="gchar*"/>
+ </parameter>
+ </parameters>
+ </method>
+ <method name="can_src_caps"
+ c:identifier="gst_element_factory_can_src_caps"
+ doc="Checks if the factory can source the given capability.">
+ <return-value transfer-ownership="none">
+ <type name="boolean" c:type="gboolean"/>
+ </return-value>
+ <parameters>
+ <parameter name="caps" transfer-ownership="none">
+ <type name="Caps" c:type="GstCaps*"/>
+ </parameter>
+ </parameters>
+ </method>
+ <method name="can_sink_caps"
+ c:identifier="gst_element_factory_can_sink_caps"
+ doc="Checks if the factory can sink the given capability.">
+ <return-value transfer-ownership="none">
+ <type name="boolean" c:type="gboolean"/>
+ </return-value>
+ <parameters>
+ <parameter name="caps" transfer-ownership="none">
+ <type name="Caps" c:type="GstCaps*"/>
+ </parameter>
+ </parameters>
+ </method>
+ <field name="parent">
+ <type name="PluginFeature" c:type="GstPluginFeature"/>
+ </field>
+ <field name="type">
+ <type name="GType" c:type="GType"/>
+ </field>
+ <field name="details">
+ <type name="ElementDetails" c:type="GstElementDetails"/>
+ </field>
+ <field name="staticpadtemplates">
+ <type name="GLib.List" c:type="GList*"/>
+ </field>
+ <field name="numpadtemplates">
+ <type name="uint" c:type="guint"/>
+ </field>
+ <field name="uri_type">
+ <type name="uint" c:type="guint"/>
+ </field>
+ <field name="uri_protocols">
+ <type name="utf8" c:type="gchar**"/>
+ </field>
+ <field name="interfaces">
+ <type name="GLib.List" c:type="GList*"/>
+ </field>
+ <field name="_gst_reserved">
+ <array zero-terminated="0" c:type="gpointer" fixed-size="4">
+ <type name="any"/>
+ </array>
+ </field>
+ </class>
+ <record name="ElementFactoryClass"
+ c:type="GstElementFactoryClass"
+ glib:is-gtype-struct-for="ElementFactory">
+ <field name="parent_class">
+ <type name="PluginFeatureClass" c:type="GstPluginFeatureClass"/>
+ </field>
+ <field name="_gst_reserved">
+ <array zero-terminated="0" c:type="gpointer" fixed-size="4">
+ <type name="any"/>
+ </array>
+ </field>
+ </record>
+ <bitfield name="ElementFlags"
+ doc="gst_bin_remove() on a child already being removed immediately returns FALSE
+The standard flags that an element may have."
+ c:type="GstElementFlags">
+ <member name="locked_state"
+ value="16"
+ c:identifier="GST_ELEMENT_LOCKED_STATE"/>
+ <member name="is_sink" value="32" c:identifier="GST_ELEMENT_IS_SINK"/>
+ <member name="unparenting"
+ value="64"
+ c:identifier="GST_ELEMENT_UNPARENTING"/>
+ <member name="flag_last"
+ value="1048576"
+ c:identifier="GST_ELEMENT_FLAG_LAST"/>
+ </bitfield>
+ <record name="Event" c:type="GstEvent" doc="A #GstEvent.">
+ <field name="mini_object" writable="1">
+ <type name="MiniObject" c:type="GstMiniObject"/>
+ </field>
+ <field name="type" writable="1">
+ <type name="EventType" c:type="GstEventType"/>
+ </field>
+ <field name="timestamp" writable="1">
+ <type name="uint64" c:type="guint64"/>
+ </field>
+ <field name="src" writable="1">
+ <type name="Object" c:type="GstObject*"/>
+ </field>
+ <field name="structure" writable="1">
+ <type name="Structure" c:type="GstStructure*"/>
+ </field>
+ <union name="abidata" c:type="abidata">
+ <field name="seqnum" writable="1">
+ <type name="uint32" c:type="guint32"/>
+ </field>
+ <field name="_gst_reserved" writable="1">
+ <type name="any" c:type="gpointer"/>
+ </field>
+ </union>
+ <constructor name="new_custom"
+ c:identifier="gst_event_new_custom"
+ doc="the structure.
+Create a new custom-typed event. This can be used for anything not
+handled by other event-specific functions to pass an event to another
+element.
+Make sure to allocate an event type with the #GST_EVENT_MAKE_TYPE macro,
+assigning a free number and filling in the correct direction and
+serialization flags.
+New custom events can also be created by subclassing the event type if
+needed.">
+ <return-value transfer-ownership="full">
+ <type name="Event" c:type="GstEvent*"/>
+ </return-value>
+ <parameters>
+ <parameter name="type" transfer-ownership="none">
+ <type name="EventType" c:type="GstEventType"/>
+ </parameter>
+ <parameter name="structure" transfer-ownership="none">
+ <type name="Structure" c:type="GstStructure*"/>
+ </parameter>
+ </parameters>
+ </constructor>
+ <constructor name="new_flush_start"
+ c:identifier="gst_event_new_flush_start"
+ doc="Allocate a new flush start event. The flush start event can be sent
+upstream and downstream and travels out-of-bounds with the dataflow.
+It marks pads as being flushing and will make them return
+#GST_FLOW_WRONG_STATE when used for data flow with gst_pad_push(),
+gst_pad_chain(), gst_pad_alloc_buffer(), gst_pad_get_range() and
+gst_pad_pull_range(). Any event (except a #GST_EVENT_FLUSH_STOP) received
+on a flushing pad will return %FALSE immediately.
+Elements should unlock any blocking functions and exit their streaming
+functions as fast as possible when this event is received.
+This event is typically generated after a seek to flush out all queued data
+in the pipeline so that the new media is played as soon as possible.">
+ <return-value transfer-ownership="full">
+ <type name="Event" c:type="GstEvent*"/>
+ </return-value>
+ </constructor>
+ <constructor name="new_flush_stop"
+ c:identifier="gst_event_new_flush_stop"
+ doc="Allocate a new flush stop event. The flush stop event can be sent
+upstream and downstream and travels serialized with the dataflow.
+It is typically sent after sending a FLUSH_START event to make the
+pads accept data again.
+Elements can process this event synchronized with the dataflow since
+the preceeding FLUSH_START event stopped the dataflow.
+This event is typically generated to complete a seek and to resume
+dataflow.">
+ <return-value transfer-ownership="full">
+ <type name="Event" c:type="GstEvent*"/>
+ </return-value>
+ </constructor>
+ <constructor name="new_eos"
+ c:identifier="gst_event_new_eos"
+ doc="Create a new EOS event. The eos event can only travel downstream
+synchronized with the buffer flow. Elements that receive the EOS
+event on a pad can return #GST_FLOW_UNEXPECTED as a #GstFlowReturn
+when data after the EOS event arrives.
+The EOS event will travel down to the sink elements in the pipeline
+which will then post the #GST_MESSAGE_EOS on the bus after they have
+finished playing any buffered data.
+When all sinks have posted an EOS message, an EOS message is
+forwarded to the application.
+The EOS event itself will not cause any state transitions of the pipeline.">
+ <return-value transfer-ownership="full">
+ <type name="Event" c:type="GstEvent*"/>
+ </return-value>
+ </constructor>
+ <constructor name="new_new_segment"
+ c:identifier="gst_event_new_new_segment"
+ doc="Allocate a new newsegment event with the given format/values tripplets
+This method calls gst_event_new_new_segment_full() passing a default
+value of 1.0 for applied_rate">
+ <return-value transfer-ownership="full">
+ <type name="Event" c:type="GstEvent*"/>
+ </return-value>
+ <parameters>
+ <parameter name="update" transfer-ownership="none">
+ <type name="boolean" c:type="gboolean"/>
+ </parameter>
+ <parameter name="rate" transfer-ownership="none">
+ <type name="double" c:type="gdouble"/>
+ </parameter>
+ <parameter name="format" transfer-ownership="none">
+ <type name="Format" c:type="GstFormat"/>
+ </parameter>
+ <parameter name="start" transfer-ownership="none">
+ <type name="int64" c:type="gint64"/>
+ </parameter>
+ <parameter name="stop" transfer-ownership="none">
+ <type name="int64" c:type="gint64"/>
+ </parameter>
+ <parameter name="position" transfer-ownership="none">
+ <type name="int64" c:type="gint64"/>
+ </parameter>
+ </parameters>
+ </constructor>
+ <constructor name="new_new_segment_full"
+ c:identifier="gst_event_new_new_segment_full"
+ doc="Allocate a new newsegment event with the given format/values triplets.
+The newsegment event marks the range of buffers to be processed. All
+data not within the segment range is not to be processed. This can be
+used intelligently by plugins to apply more efficient methods of skipping
+unneeded data. The valid range is expressed with the @start and @stop
+values.
+The position value of the segment is used in conjunction with the start
+value to convert the buffer timestamps into the stream time. This is
+usually done in sinks to report the current stream_time.
+is a valid @stop given, it must be greater or equal the @start, including
+when the indicated playback @rate is < 0.
+The @applied_rate value provides information about any rate adjustment that
+has already been made to the timestamps and content on the buffers of the
+stream. (@rate * @applied_rate) should always equal the rate that has been
+requested for playback. For example, if an element has an input segment
+with intended playback @rate of 2.0 and applied_rate of 1.0, it can adjust
+incoming timestamps and buffer content by half and output a newsegment event
+with @rate of 1.0 and @applied_rate of 2.0
+After a newsegment event, the buffer stream time is calculated with:
+position + (TIMESTAMP(buf) - start) * ABS (rate * applied_rate)"
+ version="0.10.6">
+ <return-value transfer-ownership="full">
+ <type name="Event" c:type="GstEvent*"/>
+ </return-value>
+ <parameters>
+ <parameter name="update" transfer-ownership="none">
+ <type name="boolean" c:type="gboolean"/>
+ </parameter>
+ <parameter name="rate" transfer-ownership="none">
+ <type name="double" c:type="gdouble"/>
+ </parameter>
+ <parameter name="applied_rate" transfer-ownership="none">
+ <type name="double" c:type="gdouble"/>
+ </parameter>
+ <parameter name="format" transfer-ownership="none">
+ <type name="Format" c:type="GstFormat"/>
+ </parameter>
+ <parameter name="start" transfer-ownership="none">
+ <type name="int64" c:type="gint64"/>
+ </parameter>
+ <parameter name="stop" transfer-ownership="none">
+ <type name="int64" c:type="gint64"/>
+ </parameter>
+ <parameter name="position" transfer-ownership="none">
+ <type name="int64" c:type="gint64"/>
+ </parameter>
+ </parameters>
+ </constructor>
+ <constructor name="new_tag"
+ c:identifier="gst_event_new_tag"
+ doc="Generates a metadata tag event from the given @taglist.">
+ <return-value transfer-ownership="full">
+ <type name="Event" c:type="GstEvent*"/>
+ </return-value>
+ <parameters>
+ <parameter name="taglist" transfer-ownership="none">
+ <type name="TagList" c:type="GstTagList*"/>
+ </parameter>
+ </parameters>
+ </constructor>
+ <constructor name="new_buffer_size"
+ c:identifier="gst_event_new_buffer_size"
+ doc="Create a new buffersize event. The event is sent downstream and notifies
+elements that they should provide a buffer of the specified dimensions.
+When the @async flag is set, a thread boundary is prefered.">
+ <return-value transfer-ownership="full">
+ <type name="Event" c:type="GstEvent*"/>
+ </return-value>
+ <parameters>
+ <parameter name="format" transfer-ownership="none">
+ <type name="Format" c:type="GstFormat"/>
+ </parameter>
+ <parameter name="minsize" transfer-ownership="none">
+ <type name="int64" c:type="gint64"/>
+ </parameter>
+ <parameter name="maxsize" transfer-ownership="none">
+ <type name="int64" c:type="gint64"/>
+ </parameter>
+ <parameter name="async" transfer-ownership="none">
+ <type name="boolean" c:type="gboolean"/>
+ </parameter>
+ </parameters>
+ </constructor>
+ <constructor name="new_qos"
+ c:identifier="gst_event_new_qos"
+ doc="Allocate a new qos event with the given values.
+The QOS event is generated in an element that wants an upstream
+element to either reduce or increase its rate because of
+high/low CPU load or other resource usage such as network performance.
+Typically sinks generate these events for each buffer they receive.
+element that generated the QoS event (usually the sink). The value is
+generally computed based on more long term statistics about the streams
+timestamps compared to the clock.
+A value < 1.0 indicates that the upstream element is producing data faster
+than real-time. A value > 1.0 indicates that the upstream element is not
+producing data fast enough. 1.0 is the ideal @proportion value. The
+proportion value can safely be used to lower or increase the quality of
+the element.
+buffer that caused the element to generate the QOS event. A negative value
+means that the buffer with @timestamp arrived in time. A positive value
+indicates how late the buffer with @timestamp was.
+to generate the QOS event. It is expressed in running time and thus an ever
+increasing value.
+The upstream element can use the @diff and @timestamp values to decide
+whether to process more buffers. For possitive @diff, all buffers with
+timestamp <= @timestamp + @diff will certainly arrive late in the sink
+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.">
+ <return-value transfer-ownership="full">
+ <type name="Event" c:type="GstEvent*"/>
+ </return-value>
+ <parameters>
+ <parameter name="proportion" transfer-ownership="none">
+ <type name="double" c:type="gdouble"/>
+ </parameter>
+ <parameter name="diff" transfer-ownership="none">
+ <type name="ClockTimeDiff" c:type="GstClockTimeDiff"/>
+ </parameter>
+ <parameter name="timestamp" transfer-ownership="none">
+ <type name="ClockTime" c:type="GstClockTime"/>
+ </parameter>
+ </parameters>
+ </constructor>
+ <constructor name="new_seek"
+ c:identifier="gst_event_new_seek"
+ doc="Allocate a new seek event with the given parameters.
+The seek event configures playback of the pipeline between @start to @stop
+at the speed given in @rate, also called a playback segment.
+The @start and @stop values are expressed in @format.
+A @rate of 1.0 means normal playback rate, 2.0 means double speed.
+Negatives values means backwards playback. A value of 0.0 for the
+rate is not allowed and should be accomplished instead by PAUSING the
+pipeline.
+A pipeline has a default playback segment configured with a start
+position of 0, a stop position of -1 and a rate of 1.0. The currently
+configured playback segment can be queried with #GST_QUERY_SEGMENT.
+start and stop fields in playback segment. Adjustments can be made relative
+or absolute to the last configured values. A type of #GST_SEEK_TYPE_NONE
+means that the position should not be updated.
+When the rate is positive and @start has been updated, playback will start
+from the newly configured start position.
+For negative rates, playback will start from the newly configured stop
+position (if any). If the stop position if updated, it must be different from
+-1 for negative rates.
+It is not possible to seek relative to the current playback position, to do
+this, PAUSE the pipeline, query the current playback position with
+#GST_QUERY_POSITION and update the playback segment current position with a
+#GST_SEEK_TYPE_SET to the desired position.">
+ <return-value transfer-ownership="full">
+ <type name="Event" c:type="GstEvent*"/>
+ </return-value>
+ <parameters>
+ <parameter name="rate" transfer-ownership="none">
+ <type name="double" c:type="gdouble"/>
+ </parameter>
+ <parameter name="format" transfer-ownership="none">
+ <type name="Format" c:type="GstFormat"/>
+ </parameter>
+ <parameter name="flags" transfer-ownership="none">
+ <type name="SeekFlags" c:type="GstSeekFlags"/>
+ </parameter>
+ <parameter name="start_type" transfer-ownership="none">
+ <type name="SeekType" c:type="GstSeekType"/>
+ </parameter>
+ <parameter name="start" transfer-ownership="none">
+ <type name="int64" c:type="gint64"/>
+ </parameter>
+ <parameter name="stop_type" transfer-ownership="none">
+ <type name="SeekType" c:type="GstSeekType"/>
+ </parameter>
+ <parameter name="stop" transfer-ownership="none">
+ <type name="int64" c:type="gint64"/>
+ </parameter>
+ </parameters>
+ </constructor>
+ <constructor name="new_navigation"
+ c:identifier="gst_event_new_navigation"
+ doc="structure.
+Create a new navigation event from the given description.">
+ <return-value transfer-ownership="full">
+ <type name="Event" c:type="GstEvent*"/>
+ </return-value>
+ <parameters>
+ <parameter name="structure" transfer-ownership="none">
+ <type name="Structure" c:type="GstStructure*"/>
+ </parameter>
+ </parameters>
+ </constructor>
+ <constructor name="new_latency"
+ c:identifier="gst_event_new_latency"
+ doc="Create a new latency event. The event is sent upstream from the sinks and
+notifies elements that they should add an additional @latency to the
+running time before synchronising against the clock.
+The latency is mostly used in live sinks and is always expressed in
+the time format."
+ version="0.10.12">
+ <return-value transfer-ownership="full">
+ <type name="Event" c:type="GstEvent*"/>
+ </return-value>
+ <parameters>
+ <parameter name="latency" transfer-ownership="none">
+ <type name="ClockTime" c:type="GstClockTime"/>
+ </parameter>
+ </parameters>
+ </constructor>
+ <constructor name="new_step"
+ c:identifier="gst_event_new_step"
+ doc="Create a new step event. The purpose of the step event is to instruct a sink
+to skip @amount (expressed in @format) of media. It can be used to implement
+stepping through the video frame by frame or for doing fast trick modes.
+A rate of <= 0.0 is not allowed, pause the pipeline or reverse the playback
+direction of the pipeline to get the same effect.
+The @flush flag will clear any pending data in the pipeline before starting
+the step operation.
+The @intermediate flag instructs the pipeline that this step operation is
+part of a larger step operation."
+ version="0.10.24">
+ <return-value transfer-ownership="full">
+ <type name="Event" c:type="GstEvent*"/>
+ </return-value>
+ <parameters>
+ <parameter name="format" transfer-ownership="none">
+ <type name="Format" c:type="GstFormat"/>
+ </parameter>
+ <parameter name="amount" transfer-ownership="none">
+ <type name="uint64" c:type="guint64"/>
+ </parameter>
+ <parameter name="rate" transfer-ownership="none">
+ <type name="double" c:type="gdouble"/>
+ </parameter>
+ <parameter name="flush" transfer-ownership="none">
+ <type name="boolean" c:type="gboolean"/>
+ </parameter>
+ <parameter name="intermediate" transfer-ownership="none">
+ <type name="boolean" c:type="gboolean"/>
+ </parameter>
+ </parameters>
+ </constructor>
+ <constructor name="new_sink_message"
+ c:identifier="gst_event_new_sink_message"
+ doc="Create a new sink-message event. The purpose of the sink-message event is
+to instruct a sink to post the message contained in the event synchronized
+with the stream."
+ version="0.10.26">
+ <return-value transfer-ownership="full">
+ <type name="Event" c:type="GstEvent*"/>
+ </return-value>
+ <parameters>
+ <parameter name="msg" transfer-ownership="none">
+ <type name="Message" c:type="GstMessage*"/>
+ </parameter>
+ </parameters>
+ </constructor>
+ <method name="get_structure"
+ c:identifier="gst_event_get_structure"
+ doc="Access the structure of the event.
+owned by the event, which means that you should not free it and
+that the pointer becomes invalid when you free the event.
+MT safe.">
+ <return-value transfer-ownership="none">
+ <type name="Structure" c:type="GstStructure*"/>
+ </return-value>
+ </method>
+ <method name="has_name"
+ c:identifier="gst_event_has_name"
+ doc="Checks if @event has the given @name. This function is usually used to
+check the name of a custom event."
+ version="0.10.20">
+ <return-value transfer-ownership="none">
+ <type name="boolean" c:type="gboolean"/>
+ </return-value>
+ <parameters>
+ <parameter name="name" transfer-ownership="none">
+ <type name="utf8" c:type="gchar*"/>
+ </parameter>
+ </parameters>
+ </method>
+ <method name="get_seqnum"
+ c:identifier="gst_event_get_seqnum"
+ doc="Retrieve the sequence number of a event.
+Events have ever-incrementing sequence numbers, which may also be set
+explicitly via gst_event_set_seqnum(). Sequence numbers are typically used to
+indicate that a event corresponds to some other set of events or messages,
+for example an EOS event corresponding to a SEEK event. It is considered good
+practice to make this correspondence when possible, though it is not
+required.
+Note that events and messages share the same sequence number incrementor;
+two events or messages will never not have the same sequence number unless
+that correspondence was made explicitly.
+MT safe."
+ version="0.10.22">
+ <return-value transfer-ownership="none">
+ <type name="uint32" c:type="guint32"/>
+ </return-value>
+ </method>
+ <method name="set_seqnum"
+ c:identifier="gst_event_set_seqnum"
+ doc="Set the sequence number of a event.
+This function might be called by the creator of a event to indicate that the
+event relates to other events or messages. See gst_event_get_seqnum() for
+more information.
+MT safe."
+ version="0.10.22">
+ <return-value transfer-ownership="none">
+ <type name="none" c:type="void"/>
+ </return-value>
+ <parameters>
+ <parameter name="seqnum" transfer-ownership="none">
+ <type name="uint32" c:type="guint32"/>
+ </parameter>
+ </parameters>
+ </method>
+ <method name="parse_new_segment"
+ c:identifier="gst_event_parse_new_segment"
+ doc="Get the update flag, rate, format, start, stop and position in the
+newsegment event. In general, gst_event_parse_new_segment_full() should
+be used instead of this, to also retrieve the applied_rate value of the
+segment. See gst_event_new_new_segment_full() for a full description
+of the newsegment event.">
+ <return-value transfer-ownership="none">
+ <type name="none" c:type="void"/>
+ </return-value>
+ <parameters>
+ <parameter name="update" direction="out" transfer-ownership="full">
+ <type name="boolean" c:type="gboolean*"/>
+ </parameter>
+ <parameter name="rate" direction="out" transfer-ownership="full">
+ <type name="double" c:type="gdouble*"/>
+ </parameter>
+ <parameter name="format" transfer-ownership="none">
+ <type name="Format" c:type="GstFormat*"/>
+ </parameter>
+ <parameter name="start" direction="out" transfer-ownership="full">
+ <type name="int64" c:type="gint64*"/>
+ </parameter>
+ <parameter name="stop" direction="out" transfer-ownership="full">
+ <type name="int64" c:type="gint64*"/>
+ </parameter>
+ <parameter name="position" direction="out" transfer-ownership="full">
+ <type name="int64" c:type="gint64*"/>
+ </parameter>
+ </parameters>
+ </method>
+ <method name="parse_new_segment_full"
+ c:identifier="gst_event_parse_new_segment_full"
+ doc="Get the update, rate, applied_rate, format, start, stop and
+position in the newsegment event. See gst_event_new_new_segment_full()
+for a full description of the newsegment event."
+ version="0.10.6">
+ <return-value transfer-ownership="none">
+ <type name="none" c:type="void"/>
+ </return-value>
+ <parameters>
+ <parameter name="update" direction="out" transfer-ownership="full">
+ <type name="boolean" c:type="gboolean*"/>
+ </parameter>
+ <parameter name="rate" direction="out" transfer-ownership="full">
+ <type name="double" c:type="gdouble*"/>
+ </parameter>
+ <parameter name="applied_rate"
+ direction="out"
+ transfer-ownership="full">
+ <type name="double" c:type="gdouble*"/>
+ </parameter>
+ <parameter name="format" transfer-ownership="none">
+ <type name="Format" c:type="GstFormat*"/>
+ </parameter>
+ <parameter name="start" direction="out" transfer-ownership="full">
+ <type name="int64" c:type="gint64*"/>
+ </parameter>
+ <parameter name="stop" direction="out" transfer-ownership="full">
+ <type name="int64" c:type="gint64*"/>
+ </parameter>
+ <parameter name="position" direction="out" transfer-ownership="full">
+ <type name="int64" c:type="gint64*"/>
+ </parameter>
+ </parameters>
+ </method>
+ <method name="parse_tag"
+ c:identifier="gst_event_parse_tag"
+ doc="Parses a tag @event and stores the results in the given @taglist location.">
+ <return-value transfer-ownership="none">
+ <type name="none" c:type="void"/>
+ </return-value>
+ <parameters>
+ <parameter name="taglist" transfer-ownership="none">
+ <type name="TagList" c:type="GstTagList**"/>
+ </parameter>
+ </parameters>
+ </method>
+ <method name="parse_buffer_size"
+ c:identifier="gst_event_parse_buffer_size"
+ doc="Get the format, minsize, maxsize and async-flag in the buffersize event.">
+ <return-value transfer-ownership="none">
+ <type name="none" c:type="void"/>
+ </return-value>
+ <parameters>
+ <parameter name="format" transfer-ownership="none">
+ <type name="Format" c:type="GstFormat*"/>
+ </parameter>
+ <parameter name="minsize" direction="out" transfer-ownership="full">
+ <type name="int64" c:type="gint64*"/>
+ </parameter>
+ <parameter name="maxsize" direction="out" transfer-ownership="full">
+ <type name="int64" c:type="gint64*"/>
+ </parameter>
+ <parameter name="async" direction="out" transfer-ownership="full">
+ <type name="boolean" c:type="gboolean*"/>
+ </parameter>
+ </parameters>
+ </method>
+ <method name="parse_qos"
+ c:identifier="gst_event_parse_qos"
+ doc="Get the proportion, diff and timestamp in the qos event. See
+gst_event_new_qos() for more information about the different QoS values.">
+ <return-value transfer-ownership="none">
+ <type name="none" c:type="void"/>
+ </return-value>
+ <parameters>
+ <parameter name="proportion"
+ direction="out"
+ transfer-ownership="full">
+ <type name="double" c:type="gdouble*"/>
+ </parameter>
+ <parameter name="diff" transfer-ownership="none">
+ <type name="ClockTimeDiff" c:type="GstClockTimeDiff*"/>
+ </parameter>
+ <parameter name="timestamp" transfer-ownership="none">
+ <type name="ClockTime" c:type="GstClockTime*"/>
+ </parameter>
+ </parameters>
+ </method>
+ <method name="parse_seek"
+ c:identifier="gst_event_parse_seek"
+ doc="Parses a seek @event and stores the results in the given result locations.">
+ <return-value transfer-ownership="none">
+ <type name="none" c:type="void"/>
+ </return-value>
+ <parameters>
+ <parameter name="rate" direction="out" transfer-ownership="full">
+ <type name="double" c:type="gdouble*"/>
+ </parameter>
+ <parameter name="format" transfer-ownership="none">
+ <type name="Format" c:type="GstFormat*"/>
+ </parameter>
+ <parameter name="flags" transfer-ownership="none">
+ <type name="SeekFlags" c:type="GstSeekFlags*"/>
+ </parameter>
+ <parameter name="start_type" transfer-ownership="none">
+ <type name="SeekType" c:type="GstSeekType*"/>
+ </parameter>
+ <parameter name="start" direction="out" transfer-ownership="full">
+ <type name="int64" c:type="gint64*"/>
+ </parameter>
+ <parameter name="stop_type" transfer-ownership="none">
+ <type name="SeekType" c:type="GstSeekType*"/>
+ </parameter>
+ <parameter name="stop" direction="out" transfer-ownership="full">
+ <type name="int64" c:type="gint64*"/>
+ </parameter>
+ </parameters>
+ </method>
+ <method name="parse_latency"
+ c:identifier="gst_event_parse_latency"
+ doc="Get the latency in the latency event."
+ version="0.10.12">
+ <return-value transfer-ownership="none">
+ <type name="none" c:type="void"/>
+ </return-value>
+ <parameters>
+ <parameter name="latency" transfer-ownership="none">
+ <type name="ClockTime" c:type="GstClockTime*"/>
+ </parameter>
+ </parameters>
+ </method>
+ <method name="parse_step"
+ c:identifier="gst_event_parse_step"
+ doc="Parse the step event."
+ version="0.10.24">
+ <return-value transfer-ownership="none">
+ <type name="none" c:type="void"/>
+ </return-value>
+ <parameters>
+ <parameter name="format" transfer-ownership="none">
+ <type name="Format" c:type="GstFormat*"/>
+ </parameter>
+ <parameter name="amount" direction="out" transfer-ownership="full">
+ <type name="uint64" c:type="guint64*"/>
+ </parameter>
+ <parameter name="rate" direction="out" transfer-ownership="full">
+ <type name="double" c:type="gdouble*"/>
+ </parameter>
+ <parameter name="flush" direction="out" transfer-ownership="full">
+ <type name="boolean" c:type="gboolean*"/>
+ </parameter>
+ <parameter name="intermediate"
+ direction="out"
+ transfer-ownership="full">
+ <type name="boolean" c:type="gboolean*"/>
+ </parameter>
+ </parameters>
+ </method>
+ <method name="parse_sink_message"
+ c:identifier="gst_event_parse_sink_message"
+ doc="Parse the sink-message event. Unref @msg after usage."
+ version="0.10.26">
+ <return-value transfer-ownership="none">
+ <type name="none" c:type="void"/>
+ </return-value>
+ <parameters>
+ <parameter name="msg" transfer-ownership="none">
+ <type name="Message" c:type="GstMessage**"/>
+ </parameter>
+ </parameters>
+ </method>
+ </record>
+ <record name="EventClass" c:type="GstEventClass">
+ <field name="mini_object_class" writable="1">
+ <type name="MiniObjectClass" c:type="GstMiniObjectClass"/>
+ </field>
+ <field name="_gst_reserved" writable="1">
+ <array zero-terminated="0" c:type="gpointer" fixed-size="4">
+ <type name="any"/>
+ </array>
+ </field>
+ </record>
+ <bitfield name="EventType"
+ doc="without a NEWSEGMENT event.
+send messages that should be emitted in sync with
+rendering.
+that the downstream elements are being starved of or
+flooded with data.
+user requests, such as mouse or keyboard movements,
+to upstream elements.
+data flow.
+In-band when travelling downstream.
+#GstEventType lists the standard event types that can be sent in a pipeline.
+The custom event types can be used for private messages between elements
+that can't be expressed using normal
+GStreamer buffer passing semantics. Custom events carry an arbitrary
+#GstStructure.
+Specific custom events are distinguished by the name of the structure."
+ c:type="GstEventType">
+ <member name="unknown" value="0" c:identifier="GST_EVENT_UNKNOWN"/>
+ <member name="flush_start"
+ value="19"
+ c:identifier="GST_EVENT_FLUSH_START"/>
+ <member name="flush_stop"
+ value="39"
+ c:identifier="GST_EVENT_FLUSH_STOP"/>
+ <member name="eos" value="86" c:identifier="GST_EVENT_EOS"/>
+ <member name="newsegment"
+ value="102"
+ c:identifier="GST_EVENT_NEWSEGMENT"/>
+ <member name="tag" value="118" c:identifier="GST_EVENT_TAG"/>
+ <member name="buffersize"
+ value="134"
+ c:identifier="GST_EVENT_BUFFERSIZE"/>
+ <member name="sink_message"
+ value="150"
+ c:identifier="GST_EVENT_SINK_MESSAGE"/>
+ <member name="qos" value="241" c:identifier="GST_EVENT_QOS"/>
+ <member name="seek" value="257" c:identifier="GST_EVENT_SEEK"/>
+ <member name="navigation"
+ value="273"
+ c:identifier="GST_EVENT_NAVIGATION"/>
+ <member name="latency" value="289" c:identifier="GST_EVENT_LATENCY"/>
+ <member name="step" value="305" c:identifier="GST_EVENT_STEP"/>
+ <member name="custom_upstream"
+ value="513"
+ c:identifier="GST_EVENT_CUSTOM_UPSTREAM"/>
+ <member name="custom_downstream"
+ value="518"
+ c:identifier="GST_EVENT_CUSTOM_DOWNSTREAM"/>
+ <member name="custom_downstream_oob"
+ value="514"
+ c:identifier="GST_EVENT_CUSTOM_DOWNSTREAM_OOB"/>
+ <member name="custom_both"
+ value="519"
+ c:identifier="GST_EVENT_CUSTOM_BOTH"/>
+ <member name="custom_both_oob"
+ value="515"
+ c:identifier="GST_EVENT_CUSTOM_BOTH_OOB"/>
+ </bitfield>
+ <bitfield name="EventTypeFlags"
+ doc="flow.
+#GstEventTypeFlags indicate the aspects of the different #GstEventType
+values. You can get the type flags of a #GstEventType with the
+gst_event_type_get_flags() function."
+ c:type="GstEventTypeFlags">
+ <member name="upstream"
+ value="1"
+ c:identifier="GST_EVENT_TYPE_UPSTREAM"/>
+ <member name="downstream"
+ value="2"
+ c:identifier="GST_EVENT_TYPE_DOWNSTREAM"/>
+ <member name="serialized"
+ value="4"
+ c:identifier="GST_EVENT_TYPE_SERIALIZED"/>
+ </bitfield>
+ <constant name="FOURCC_FORMAT" value="c%c%c%c">
+ <type name="utf8"/>
+ </constant>
+ <callback name="FilterFunc"
+ c:type="GstFilterFunc"
+ doc="Function prototype for a filter callback taht can be use in gst_filter_run().
+The function should apply its filtering to @obj. Additional data passed to
+gst_filter_run() are in @data.">
+ <return-value transfer-ownership="none">
+ <type name="boolean" c:type="gboolean"/>
+ </return-value>
+ <parameters>
+ <parameter name="obj" transfer-ownership="none">
+ <type name="any" c:type="gpointer"/>
+ </parameter>
+ <parameter name="user_data" transfer-ownership="none" closure="1">
+ <type name="any" c:type="gpointer"/>
+ </parameter>
+ </parameters>
+ </callback>
+ <enumeration name="FlowReturn"
+ doc="sent yet) (unused/unimplemented).
+this error should post an error message with more
+details.
+this (and higher) to define custom success
+codes. Since 0.10.7.
+custom success code to this to avoid compiler
+warnings). Since 0.10.29.
+this (and lower) to define custom error codes.
+Since 0.10.7.
+custom error code to this to avoid compiler
+warnings). Since 0.10.29.
+The result of passing data to a pad.
+Note that the custom return values should not be exposed outside of the
+element scope and are available since 0.10.7."
+ c:type="GstFlowReturn">
+ <member name="custom_success_2"
+ value="102"
+ c:identifier="GST_FLOW_CUSTOM_SUCCESS_2"/>
+ <member name="custom_success_1"
+ value="101"
+ c:identifier="GST_FLOW_CUSTOM_SUCCESS_1"/>
+ <member name="custom_success"
+ value="100"
+ c:identifier="GST_FLOW_CUSTOM_SUCCESS"/>
+ <member name="resend" value="1" c:identifier="GST_FLOW_RESEND"/>
+ <member name="ok" value="0" c:identifier="GST_FLOW_OK"/>
+ <member name="not_linked" value="-1" c:identifier="GST_FLOW_NOT_LINKED"/>
+ <member name="wrong_state"
+ value="-2"
+ c:identifier="GST_FLOW_WRONG_STATE"/>
+ <member name="unexpected" value="-3" c:identifier="GST_FLOW_UNEXPECTED"/>
+ <member name="not_negotiated"
+ value="-4"
+ c:identifier="GST_FLOW_NOT_NEGOTIATED"/>
+ <member name="error" value="-5" c:identifier="GST_FLOW_ERROR"/>
+ <member name="not_supported"
+ value="-6"
+ c:identifier="GST_FLOW_NOT_SUPPORTED"/>
+ <member name="custom_error"
+ value="-100"
+ c:identifier="GST_FLOW_CUSTOM_ERROR"/>
+ <member name="custom_error_1"
+ value="-101"
+ c:identifier="GST_FLOW_CUSTOM_ERROR_1"/>
+ <member name="custom_error_2"
+ value="-102"
+ c:identifier="GST_FLOW_CUSTOM_ERROR_2"/>
+ </enumeration>
+ <enumeration name="Format"
+ doc="samples for raw audio, frames/fields for raw video (some, but not all,
+elements support this; use @GST_FORMAT_TIME if you don't have a good
+reason to query for samples/frames)
+May 2009)
+this as of May 2009)
+Standard predefined formats"
+ c:type="GstFormat">
+ <member name="undefined" value="0" c:identifier="GST_FORMAT_UNDEFINED"/>
+ <member name="default" value="1" c:identifier="GST_FORMAT_DEFAULT"/>
+ <member name="bytes" value="2" c:identifier="GST_FORMAT_BYTES"/>
+ <member name="time" value="3" c:identifier="GST_FORMAT_TIME"/>
+ <member name="buffers" value="4" c:identifier="GST_FORMAT_BUFFERS"/>
+ <member name="percent" value="5" c:identifier="GST_FORMAT_PERCENT"/>
+ </enumeration>
+ <record name="FormatDefinition"
+ c:type="GstFormatDefinition"
+ doc="A format definition">
+ <field name="value" writable="1">
+ <type name="Format" c:type="GstFormat"/>
+ </field>
+ <field name="nick" writable="1">
+ <type name="utf8" c:type="gchar*"/>
+ </field>
+ <field name="description" writable="1">
+ <type name="utf8" c:type="gchar*"/>
+ </field>
+ <field name="quark" writable="1">
+ <type name="GLib.Quark" c:type="GQuark"/>
+ </field>
+ </record>
+ <glib:boxed c:type="GstGError"
+ glib:name="GError"
+ glib:type-name="GstGError"
+ glib:get-type="gst_g_error_get_type">
+ </glib:boxed>
+ <class name="GhostPad"
+ c:type="GstGhostPad"
+ doc="Opaque #GstGhostPad structure."
+ parent="ProxyPad"
+ glib:type-name="GstGhostPad"
+ glib:get-type="gst_ghost_pad_get_type"
+ glib:type-struct="GhostPadClass">
+ <constructor name="new"
+ c:identifier="gst_ghost_pad_new"
+ doc="Create a new ghostpad with @target as the target. The direction will be taken
+from the target pad. @target must be unlinked.
+Will ref the target.">
+ <return-value transfer-ownership="full">
+ <type name="GhostPad" c:type="GstPad*"/>
+ </return-value>
+ <parameters>
+ <parameter name="name" transfer-ownership="none">
+ <type name="utf8" c:type="gchar*"/>
+ </parameter>
+ <parameter name="target" transfer-ownership="none">
+ <type name="Pad" c:type="GstPad*"/>
+ </parameter>
+ </parameters>
+ </constructor>
+ <constructor name="new_no_target"
+ c:identifier="gst_ghost_pad_new_no_target"
+ doc="Create a new ghostpad without a target with the given direction.
+A target can be set on the ghostpad later with the
+gst_ghost_pad_set_target() function.
+The created ghostpad will not have a padtemplate.">
+ <return-value transfer-ownership="full">
+ <type name="GhostPad" c:type="GstPad*"/>
+ </return-value>
+ <parameters>
+ <parameter name="name" transfer-ownership="none">
+ <type name="utf8" c:type="gchar*"/>
+ </parameter>
+ <parameter name="dir" transfer-ownership="none">
+ <type name="PadDirection" c:type="GstPadDirection"/>
+ </parameter>
+ </parameters>
+ </constructor>
+ <constructor name="new_from_template"
+ c:identifier="gst_ghost_pad_new_from_template"
+ doc="Create a new ghostpad with @target as the target. The direction will be taken
+from the target pad. The template used on the ghostpad will be @template.
+Will ref the target."
+ version="0.10.10">
+ <return-value transfer-ownership="full">
+ <type name="GhostPad" c:type="GstPad*"/>
+ </return-value>
+ <parameters>
+ <parameter name="name" transfer-ownership="none">
+ <type name="utf8" c:type="gchar*"/>
+ </parameter>
+ <parameter name="target" transfer-ownership="none">
+ <type name="Pad" c:type="GstPad*"/>
+ </parameter>
+ <parameter name="templ" transfer-ownership="none">
+ <type name="PadTemplate" c:type="GstPadTemplate*"/>
+ </parameter>
+ </parameters>
+ </constructor>
+ <constructor name="new_no_target_from_template"
+ c:identifier="gst_ghost_pad_new_no_target_from_template"
+ doc="Create a new ghostpad based on @templ, without setting a target. The
+direction will be taken from the @templ."
+ version="0.10.10">
+ <return-value transfer-ownership="full">
+ <type name="GhostPad" c:type="GstPad*"/>
+ </return-value>
+ <parameters>
+ <parameter name="name" transfer-ownership="none">
+ <type name="utf8" c:type="gchar*"/>
+ </parameter>
+ <parameter name="templ" transfer-ownership="none">
+ <type name="PadTemplate" c:type="GstPadTemplate*"/>
+ </parameter>
+ </parameters>
+ </constructor>
+ <method name="get_target"
+ c:identifier="gst_ghost_pad_get_target"
+ doc="Get the target pad of @gpad. Unref target pad after usage.
+has no target set. Unref target pad after usage.">
+ <return-value transfer-ownership="full">
+ <type name="Pad" c:type="GstPad*"/>
+ </return-value>
+ </method>
+ <method name="set_target"
+ c:identifier="gst_ghost_pad_set_target"
+ doc="Set the new target of the ghostpad @gpad. Any existing target
+is unlinked and links to the new target are established. if @newtarget is
+NULL the target will be cleared.
+when the internal pads could not be linked.">
+ <return-value transfer-ownership="none">
+ <type name="boolean" c:type="gboolean"/>
+ </return-value>
+ <parameters>
+ <parameter name="newtarget" transfer-ownership="none">
+ <type name="Pad" c:type="GstPad*"/>
+ </parameter>
+ </parameters>
+ </method>
+ <method name="construct"
+ c:identifier="gst_ghost_pad_construct"
+ doc="Finish initialization of a newly allocated ghost pad.
+This function is most useful in language bindings and when subclassing
+#GstGhostPad; plugin and application developers normally will not call this
+function. Call this function directly after a call to g_object_new
+(GST_TYPE_GHOST_PAD, "direction", @dir, ..., NULL)."
+ version="0.10.22">
+ <return-value transfer-ownership="none">
+ <type name="boolean" c:type="gboolean"/>
+ </return-value>
+ </method>
+ <field name="pad">
+ <type name="ProxyPad" c:type="GstProxyPad"/>
+ </field>
+ <field name="priv">
+ <type name="GhostPadPrivate" c:type="GstGhostPadPrivate*"/>
+ </field>
+ </class>
+ <record name="GhostPadClass"
+ c:type="GstGhostPadClass"
+ glib:is-gtype-struct-for="GhostPad">
+ <field name="parent_class">
+ <type name="ProxyPadClass" c:type="GstProxyPadClass"/>
+ </field>
+ <field name="_gst_reserved">
+ <array zero-terminated="0" c:type="gpointer" fixed-size="4">
+ <type name="any"/>
+ </array>
+ </field>
+ </record>
+ <record name="GhostPadPrivate" c:type="GstGhostPadPrivate">
+ </record>
+ <constant name="INDEX_ID_INVALID" value="-1">
+ <type name="int"/>
+ </constant>
+ <interface name="ImplementsInterface"
+ c:type="GstImplementsInterface"
+ doc="Opaque #GstImplementsInterface structure."
+ glib:type-name="GstImplementsInterface"
+ glib:get-type="gst_implements_interface_get_type"
+ glib:type-struct="ImplementsInterfaceClass">
+ <prerequisite name="Element"/>
+ <virtual-method name="supported">
+ <return-value transfer-ownership="none">
+ <type name="boolean" c:type="gboolean"/>
+ </return-value>
+ <parameters>
+ <parameter name="iface_type" transfer-ownership="none">
+ <type name="GType" c:type="GType"/>
+ </parameter>
+ </parameters>
+ </virtual-method>
+ </interface>
+ <record name="ImplementsInterfaceClass"
+ c:type="GstImplementsInterfaceClass"
+ glib:is-gtype-struct-for="ImplementsInterface">
+ <field name="parent">
+ <type name="GObject.TypeInterface" c:type="GTypeInterface"/>
+ </field>
+ <field name="supported">
+ <callback name="supported" c:type="supported">
+ <return-value transfer-ownership="none">
+ <type name="boolean" c:type="gboolean"/>
+ </return-value>
+ <parameters>
+ <parameter name="iface" transfer-ownership="none">
+ <type name="ImplementsInterface"
+ c:type="GstImplementsInterface*"/>
+ </parameter>
+ <parameter name="iface_type" transfer-ownership="none">
+ <type name="GType" c:type="GType"/>
+ </parameter>
+ </parameters>
+ </callback>
+ </field>
+ <field name="_gst_reserved">
+ <array zero-terminated="0" c:type="gpointer" fixed-size="4">
+ <type name="any"/>
+ </array>
+ </field>
+ </record>
+ <class name="Index"
+ c:type="GstIndex"
+ doc="Opaque #GstIndex structure."
+ parent="Object"
+ glib:type-name="GstIndex"
+ glib:get-type="gst_index_get_type"
+ glib:type-struct="IndexClass">
+ <constructor name="new"
+ c:identifier="gst_index_new"
+ doc="Create a new tileindex object">
+ <return-value transfer-ownership="full">
+ <type name="Index" c:type="GstIndex*"/>
+ </return-value>
+ </constructor>
+ <virtual-method name="get_writer_id">
+ <return-value transfer-ownership="none">
+ <type name="boolean" c:type="gboolean"/>
+ </return-value>
+ <parameters>
+ <parameter name="writer_id"
+ direction="out"
+ transfer-ownership="full">
+ <type name="int" c:type="gint*"/>
+ </parameter>
+ <parameter name="writer_string" transfer-ownership="full">
+ <type name="utf8" c:type="gchar*"/>
+ </parameter>
+ </parameters>
+ </virtual-method>
+ <virtual-method name="commit" invoker="commit">
+ <return-value transfer-ownership="none">
+ <type name="none" c:type="void"/>
+ </return-value>
+ <parameters>
+ <parameter name="id" transfer-ownership="none">
+ <type name="int" c:type="gint"/>
+ </parameter>
+ </parameters>
+ </virtual-method>
+ <virtual-method name="add_entry">
+ <return-value transfer-ownership="none">
+ <type name="none" c:type="void"/>
+ </return-value>
+ <parameters>
+ <parameter name="entry" transfer-ownership="none">
+ <type name="IndexEntry" c:type="GstIndexEntry*"/>
+ </parameter>
+ </parameters>
+ </virtual-method>
+ <virtual-method name="get_assoc_entry">
+ <return-value transfer-ownership="full">
+ <type name="IndexEntry" c:type="GstIndexEntry*"/>
+ </return-value>
+ <parameters>
+ <parameter name="id" transfer-ownership="none">
+ <type name="int" c:type="gint"/>
+ </parameter>
+ <parameter name="method" transfer-ownership="none">
+ <type name="IndexLookupMethod" c:type="GstIndexLookupMethod"/>
+ </parameter>
+ <parameter name="flags" transfer-ownership="none">
+ <type name="AssocFlags" c:type="GstAssocFlags"/>
+ </parameter>
+ <parameter name="format" transfer-ownership="none">
+ <type name="Format" c:type="GstFormat"/>
+ </parameter>
+ <parameter name="value" transfer-ownership="none">
+ <type name="int64" c:type="gint64"/>
+ </parameter>
+ <parameter name="func" transfer-ownership="none">
+ <type name="GLib.CompareDataFunc" c:type="GCompareDataFunc"/>
+ </parameter>
+ <parameter name="user_data" transfer-ownership="none" closure="7">
+ <type name="any" c:type="gpointer"/>
+ </parameter>
+ </parameters>
+ </virtual-method>
+ <method name="commit"
+ c:identifier="gst_index_commit"
+ doc="Tell the index that the writer with the given id is done
+with this index and is not going to write any more entries
+to it.">
+ <return-value transfer-ownership="none">
+ <type name="none" c:type="void"/>
+ </return-value>
+ <parameters>
+ <parameter name="id" transfer-ownership="none">
+ <type name="int" c:type="gint"/>
+ </parameter>
+ </parameters>
+ </method>
+ <method name="get_group"
+ c:identifier="gst_index_get_group"
+ doc="Get the id of the current group.">
+ <return-value transfer-ownership="none">
+ <type name="int" c:type="gint"/>
+ </return-value>
+ </method>
+ <method name="new_group"
+ c:identifier="gst_index_new_group"
+ doc="Create a new group for the given index. It will be
+set as the current group.">
+ <return-value transfer-ownership="none">
+ <type name="int" c:type="gint"/>
+ </return-value>
+ </method>
+ <method name="set_group"
+ c:identifier="gst_index_set_group"
+ doc="Set the current groupnumber to the given argument.
+did not exist.">
+ <return-value transfer-ownership="none">
+ <type name="boolean" c:type="gboolean"/>
+ </return-value>
+ <parameters>
+ <parameter name="groupnum" transfer-ownership="none">
+ <type name="int" c:type="gint"/>
+ </parameter>
+ </parameters>
+ </method>
+ <method name="set_certainty"
+ c:identifier="gst_index_set_certainty"
+ doc="Set the certainty of the given index.">
+ <return-value transfer-ownership="none">
+ <type name="none" c:type="void"/>
+ </return-value>
+ <parameters>
+ <parameter name="certainty" transfer-ownership="none">
+ <type name="IndexCertainty" c:type="GstIndexCertainty"/>
+ </parameter>
+ </parameters>
+ </method>
+ <method name="get_certainty"
+ c:identifier="gst_index_get_certainty"
+ doc="Get the certainty of the given index.">
+ <return-value transfer-ownership="full">
+ <type name="IndexCertainty" c:type="GstIndexCertainty"/>
+ </return-value>
+ </method>
+ <method name="set_filter"
+ c:identifier="gst_index_set_filter"
+ doc="Lets the app register a custom filter function so that
+it can select what entries should be stored in the index.">
+ <return-value transfer-ownership="none">
+ <type name="none" c:type="void"/>
+ </return-value>
+ <parameters>
+ <parameter name="filter"
+ transfer-ownership="none"
+ scope="call"
+ closure="2">
+ <type name="IndexFilter" c:type="GstIndexFilter"/>
+ </parameter>
+ <parameter name="user_data" transfer-ownership="none">
+ <type name="any" c:type="gpointer"/>
+ </parameter>
+ </parameters>
+ </method>
+ <method name="set_filter_full"
+ c:identifier="gst_index_set_filter_full"
+ doc="Lets the app register a custom filter function so that
+it can select what entries should be stored in the index.">
+ <return-value transfer-ownership="none">
+ <type name="none" c:type="void"/>
+ </return-value>
+ <parameters>
+ <parameter name="filter"
+ transfer-ownership="none"
+ scope="notified"
+ closure="2"
+ destroy="3">
+ <type name="IndexFilter" c:type="GstIndexFilter"/>
+ </parameter>
+ <parameter name="user_data" transfer-ownership="none">
+ <type name="any" c:type="gpointer"/>
+ </parameter>
+ <parameter name="user_data_destroy"
+ transfer-ownership="none"
+ scope="call">
+ <type name="GLib.DestroyNotify" c:type="GDestroyNotify"/>
+ </parameter>
+ </parameters>
+ </method>
+ <method name="set_resolver"
+ c:identifier="gst_index_set_resolver"
+ doc="Lets the app register a custom function to map index
+ids to writer descriptions.">
+ <return-value transfer-ownership="none">
+ <type name="none" c:type="void"/>
+ </return-value>
+ <parameters>
+ <parameter name="resolver"
+ transfer-ownership="none"
+ scope="call"
+ closure="2">
+ <type name="IndexResolver" c:type="GstIndexResolver"/>
+ </parameter>
+ <parameter name="user_data" transfer-ownership="none">
+ <type name="any" c:type="gpointer"/>
+ </parameter>
+ </parameters>
+ </method>
+ <method name="set_resolver_full"
+ c:identifier="gst_index_set_resolver_full"
+ doc="Lets the app register a custom function to map index
+ids to writer descriptions."
+ version="0.10.18">
+ <return-value transfer-ownership="none">
+ <type name="none" c:type="void"/>
+ </return-value>
+ <parameters>
+ <parameter name="resolver"
+ transfer-ownership="none"
+ scope="notified"
+ closure="2"
+ destroy="3">
+ <type name="IndexResolver" c:type="GstIndexResolver"/>
+ </parameter>
+ <parameter name="user_data" transfer-ownership="none">
+ <type name="any" c:type="gpointer"/>
+ </parameter>
+ <parameter name="user_data_destroy"
+ transfer-ownership="none"
+ scope="call">
+ <type name="GLib.DestroyNotify" c:type="GDestroyNotify"/>
+ </parameter>
+ </parameters>
+ </method>
+ <method name="get_writer_id"
+ c:identifier="gst_index_get_writer_id"
+ doc="Before entries can be added to the index, a writer
+should obtain a unique id. The methods to add new entries
+to the index require this id as an argument.
+The application can implement a custom function to map the writer object
+to a string. That string will be used to register or look up an id
+in the index.">
+ <return-value transfer-ownership="none">
+ <type name="boolean" c:type="gboolean"/>
+ </return-value>
+ <parameters>
+ <parameter name="writer" transfer-ownership="none">
+ <type name="Object" c:type="GstObject*"/>
+ </parameter>
+ <parameter name="id" direction="out" transfer-ownership="full">
+ <type name="int" c:type="gint*"/>
+ </parameter>
+ </parameters>
+ </method>
+ <method name="add_format"
+ c:identifier="gst_index_add_format"
+ doc="Adds a format entry into the index. This function is
+used to map dynamic GstFormat ids to their original
+format key.">
+ <return-value transfer-ownership="full">
+ <type name="IndexEntry" c:type="GstIndexEntry*"/>
+ </return-value>
+ <parameters>
+ <parameter name="id" transfer-ownership="none">
+ <type name="int" c:type="gint"/>
+ </parameter>
+ <parameter name="format" transfer-ownership="none">
+ <type name="Format" c:type="GstFormat"/>
+ </parameter>
+ </parameters>
+ </method>
+ <method name="add_associationv"
+ c:identifier="gst_index_add_associationv"
+ doc="Associate given format/value pairs with each other.">
+ <return-value transfer-ownership="full">
+ <type name="IndexEntry" c:type="GstIndexEntry*"/>
+ </return-value>
+ <parameters>
+ <parameter name="id" transfer-ownership="none">
+ <type name="int" c:type="gint"/>
+ </parameter>
+ <parameter name="flags" transfer-ownership="none">
+ <type name="AssocFlags" c:type="GstAssocFlags"/>
+ </parameter>
+ <parameter name="n" transfer-ownership="none">
+ <type name="int" c:type="gint"/>
+ </parameter>
+ <parameter name="list" transfer-ownership="none">
+ <type name="IndexAssociation" c:type="GstIndexAssociation*"/>
+ </parameter>
+ </parameters>
+ </method>
+ <method name="add_association"
+ c:identifier="gst_index_add_association"
+ doc="Associate given format/value pairs with each other.
+Be sure to pass gint64 values to this functions varargs,
+you might want to use a gint64 cast to be sure.">
+ <return-value transfer-ownership="full">
+ <type name="IndexEntry" c:type="GstIndexEntry*"/>
+ </return-value>
+ <parameters>
+ <parameter name="id" transfer-ownership="none">
+ <type name="int" c:type="gint"/>
+ </parameter>
+ <parameter name="flags" transfer-ownership="none">
+ <type name="AssocFlags" c:type="GstAssocFlags"/>
+ </parameter>
+ <parameter name="format" transfer-ownership="none">
+ <type name="Format" c:type="GstFormat"/>
+ </parameter>
+ <parameter name="value" transfer-ownership="none">
+ <type name="int64" c:type="gint64"/>
+ </parameter>
+ <parameter transfer-ownership="none">
+ <varargs>
+ </varargs>
+ </parameter>
+ </parameters>
+ </method>
+ <method name="add_object"
+ c:identifier="gst_index_add_object"
+ doc="Add the given object to the index with the given key.
+This function is not yet implemented.">
+ <return-value transfer-ownership="full">
+ <type name="IndexEntry" c:type="GstIndexEntry*"/>
+ </return-value>
+ <parameters>
+ <parameter name="id" transfer-ownership="none">
+ <type name="int" c:type="gint"/>
+ </parameter>
+ <parameter name="key" transfer-ownership="full">
+ <type name="utf8" c:type="gchar*"/>
+ </parameter>
+ <parameter name="type" transfer-ownership="none">
+ <type name="GType" c:type="GType"/>
+ </parameter>
+ <parameter name="object" transfer-ownership="none">
+ <type name="any" c:type="gpointer"/>
+ </parameter>
+ </parameters>
+ </method>
+ <method name="add_id"
+ c:identifier="gst_index_add_id"
+ doc="Add an id entry into the index.">
+ <return-value transfer-ownership="full">
+ <type name="IndexEntry" c:type="GstIndexEntry*"/>
+ </return-value>
+ <parameters>
+ <parameter name="id" transfer-ownership="none">
+ <type name="int" c:type="gint"/>
+ </parameter>
+ <parameter name="description" transfer-ownership="full">
+ <type name="utf8" c:type="gchar*"/>
+ </parameter>
+ </parameters>
+ </method>
+ <method name="get_assoc_entry"
+ c:identifier="gst_index_get_assoc_entry"
+ doc="Finds the given format/value in the index
+value was not found.">
+ <return-value transfer-ownership="full">
+ <type name="IndexEntry" c:type="GstIndexEntry*"/>
+ </return-value>
+ <parameters>
+ <parameter name="id" transfer-ownership="none">
+ <type name="int" c:type="gint"/>
+ </parameter>
+ <parameter name="method" transfer-ownership="none">
+ <type name="IndexLookupMethod" c:type="GstIndexLookupMethod"/>
+ </parameter>
+ <parameter name="flags" transfer-ownership="none">
+ <type name="AssocFlags" c:type="GstAssocFlags"/>
+ </parameter>
+ <parameter name="format" transfer-ownership="none">
+ <type name="Format" c:type="GstFormat"/>
+ </parameter>
+ <parameter name="value" transfer-ownership="none">
+ <type name="int64" c:type="gint64"/>
+ </parameter>
+ </parameters>
+ </method>
+ <method name="get_assoc_entry_full"
+ c:identifier="gst_index_get_assoc_entry_full"
+ doc="Finds the given format/value in the index with the given
+compare function and user_data.
+value was not found.">
+ <return-value transfer-ownership="full">
+ <type name="IndexEntry" c:type="GstIndexEntry*"/>
+ </return-value>
+ <parameters>
+ <parameter name="id" transfer-ownership="none">
+ <type name="int" c:type="gint"/>
+ </parameter>
+ <parameter name="method" transfer-ownership="none">
+ <type name="IndexLookupMethod" c:type="GstIndexLookupMethod"/>
+ </parameter>
+ <parameter name="flags" transfer-ownership="none">
+ <type name="AssocFlags" c:type="GstAssocFlags"/>
+ </parameter>
+ <parameter name="format" transfer-ownership="none">
+ <type name="Format" c:type="GstFormat"/>
+ </parameter>
+ <parameter name="value" transfer-ownership="none">
+ <type name="int64" c:type="gint64"/>
+ </parameter>
+ <parameter name="func"
+ transfer-ownership="none"
+ scope="call"
+ closure="7">
+ <type name="GLib.CompareDataFunc" c:type="GCompareDataFunc"/>
+ </parameter>
+ <parameter name="user_data" transfer-ownership="none">
+ <type name="any" c:type="gpointer"/>
+ </parameter>
+ </parameters>
+ </method>
+ <property name="resolver" writable="1">
+ <type name="IndexResolver" c:type="GstIndexResolver"/>
+ </property>
+ <field name="object">
+ <type name="Object" c:type="GstObject"/>
+ </field>
+ <field name="groups">
+ <type name="GLib.List" c:type="GList*"/>
+ </field>
+ <field name="curgroup">
+ <type name="IndexGroup" c:type="GstIndexGroup*"/>
+ </field>
+ <field name="maxgroup">
+ <type name="int" c:type="gint"/>
+ </field>
+ <field name="method">
+ <type name="IndexResolverMethod" c:type="GstIndexResolverMethod"/>
+ </field>
+ <field name="resolver">
+ <type name="IndexResolver" c:type="GstIndexResolver"/>
+ </field>
+ <field name="resolver_user_data">
+ <type name="any" c:type="gpointer"/>
+ </field>
+ <field name="filter">
+ <type name="IndexFilter" c:type="GstIndexFilter"/>
+ </field>
+ <field name="filter_user_data">
+ <type name="any" c:type="gpointer"/>
+ </field>
+ <field name="filter_user_data_destroy">
+ <type name="GLib.DestroyNotify" c:type="GDestroyNotify"/>
+ </field>
+ <field name="writers">
+ <type name="GLib.HashTable" c:type="GHashTable*"/>
+ </field>
+ <field name="last_id">
+ <type name="int" c:type="gint"/>
+ </field>
+ <field name="resolver_user_data_destroy">
+ <type name="GLib.DestroyNotify" c:type="GDestroyNotify"/>
+ </field>
+ <field name="_gst_reserved">
+ <array zero-terminated="0" c:type="gpointer" fixed-size="3">
+ <type name="any"/>
+ </array>
+ </field>
+ <glib:signal name="entry-added">
+ <return-value transfer-ownership="full">
+ <type name="none" c:type="void"/>
+ </return-value>
+ <parameters>
+ <parameter name="object" transfer-ownership="none">
+ <type name="IndexEntry" c:type="GstIndexEntry"/>
+ </parameter>
+ </parameters>
+ </glib:signal>
+ </class>
+ <record name="IndexAssociation"
+ c:type="GstIndexAssociation"
+ doc="An association in an entry.">
+ <field name="format" writable="1">
+ <type name="Format" c:type="GstFormat"/>
+ </field>
+ <field name="value" writable="1">
+ <type name="int64" c:type="gint64"/>
+ </field>
+ </record>
+ <enumeration name="IndexCertainty"
+ doc="The certainty of a group in the index."
+ c:type="GstIndexCertainty">
+ <member name="unknown" value="0" c:identifier="GST_INDEX_UNKNOWN"/>
+ <member name="certain" value="1" c:identifier="GST_INDEX_CERTAIN"/>
+ <member name="fuzzy" value="2" c:identifier="GST_INDEX_FUZZY"/>
+ </enumeration>
+ <record name="IndexClass"
+ c:type="GstIndexClass"
+ glib:is-gtype-struct-for="Index">
+ <field name="parent_class">
+ <type name="ObjectClass" c:type="GstObjectClass"/>
+ </field>
+ <field name="get_writer_id">
+ <callback name="get_writer_id" c:type="get_writer_id">
+ <return-value transfer-ownership="none">
+ <type name="boolean" c:type="gboolean"/>
+ </return-value>
+ <parameters>
+ <parameter name="index" transfer-ownership="none">
+ <type name="Index" c:type="GstIndex*"/>
+ </parameter>
+ <parameter name="writer_id"
+ direction="out"
+ transfer-ownership="full">
+ <type name="int" c:type="gint*"/>
+ </parameter>
+ <parameter name="writer_string" transfer-ownership="full">
+ <type name="utf8" c:type="gchar*"/>
+ </parameter>
+ </parameters>
+ </callback>
+ </field>
+ <field name="commit">
+ <callback name="commit" c:type="commit">
+ <return-value transfer-ownership="none">
+ <type name="none" c:type="void"/>
+ </return-value>
+ <parameters>
+ <parameter name="index" transfer-ownership="none">
+ <type name="Index" c:type="GstIndex*"/>
+ </parameter>
+ <parameter name="id" transfer-ownership="none">
+ <type name="int" c:type="gint"/>
+ </parameter>
+ </parameters>
+ </callback>
+ </field>
+ <field name="add_entry">
+ <callback name="add_entry" c:type="add_entry">
+ <return-value transfer-ownership="none">
+ <type name="none" c:type="void"/>
+ </return-value>
+ <parameters>
+ <parameter name="index" transfer-ownership="none">
+ <type name="Index" c:type="GstIndex*"/>
+ </parameter>
+ <parameter name="entry" transfer-ownership="none">
+ <type name="IndexEntry" c:type="GstIndexEntry*"/>
+ </parameter>
+ </parameters>
+ </callback>
+ </field>
+ <field name="get_assoc_entry">
+ <callback name="get_assoc_entry" c:type="get_assoc_entry">
+ <return-value transfer-ownership="full">
+ <type name="IndexEntry" c:type="GstIndexEntry*"/>
+ </return-value>
+ <parameters>
+ <parameter name="index" transfer-ownership="none">
+ <type name="Index" c:type="GstIndex*"/>
+ </parameter>
+ <parameter name="id" transfer-ownership="none">
+ <type name="int" c:type="gint"/>
+ </parameter>
+ <parameter name="method" transfer-ownership="none">
+ <type name="IndexLookupMethod" c:type="GstIndexLookupMethod"/>
+ </parameter>
+ <parameter name="flags" transfer-ownership="none">
+ <type name="AssocFlags" c:type="GstAssocFlags"/>
+ </parameter>
+ <parameter name="format" transfer-ownership="none">
+ <type name="Format" c:type="GstFormat"/>
+ </parameter>
+ <parameter name="value" transfer-ownership="none">
+ <type name="int64" c:type="gint64"/>
+ </parameter>
+ <parameter name="func" transfer-ownership="none">
+ <type name="GLib.CompareDataFunc" c:type="GCompareDataFunc"/>
+ </parameter>
+ <parameter name="user_data" transfer-ownership="none" closure="7">
+ <type name="any" c:type="gpointer"/>
+ </parameter>
+ </parameters>
+ </callback>
+ </field>
+ <field name="entry_added">
+ <callback name="entry_added" c:type="entry_added">
+ <return-value transfer-ownership="none">
+ <type name="none" c:type="void"/>
+ </return-value>
+ <parameters>
+ <parameter name="index" transfer-ownership="none">
+ <type name="Index" c:type="GstIndex*"/>
+ </parameter>
+ <parameter name="entry" transfer-ownership="none">
+ <type name="IndexEntry" c:type="GstIndexEntry*"/>
+ </parameter>
+ </parameters>
+ </callback>
+ </field>
+ <field name="_gst_reserved">
+ <array zero-terminated="0" c:type="gpointer" fixed-size="4">
+ <type name="any"/>
+ </array>
+ </field>
+ </record>
+ <record name="IndexEntry"
+ c:type="GstIndexEntry"
+ doc="The basic element of an index."
+ glib:type-name="GstIndexEntry"
+ glib:get-type="gst_index_entry_get_type">
+ <field name="type" writable="1">
+ <type name="IndexEntryType" c:type="GstIndexEntryType"/>
+ </field>
+ <field name="id" writable="1">
+ <type name="int" c:type="gint"/>
+ </field>
+ <union name="data" c:type="data">
+ <record name="id" c:type="id">
+ <field name="description" writable="1">
+ <type name="utf8" c:type="gchar*"/>
+ </field>
+ </record>
+ <record name="assoc" c:type="assoc">
+ <field name="nassocs" writable="1">
+ <type name="int" c:type="gint"/>
+ </field>
+ <field name="assocs" writable="1">
+ <type name="IndexAssociation" c:type="GstIndexAssociation*"/>
+ </field>
+ <field name="flags" writable="1">
+ <type name="AssocFlags" c:type="GstAssocFlags"/>
+ </field>
+ </record>
+ <record name="object" c:type="object">
+ <field name="key" writable="1">
+ <type name="utf8" c:type="gchar*"/>
+ </field>
+ <field name="type" writable="1">
+ <type name="GType" c:type="GType"/>
+ </field>
+ <field name="object" writable="1">
+ <type name="any" c:type="gpointer"/>
+ </field>
+ </record>
+ <record name="format" c:type="format">
+ <field name="format" writable="1">
+ <type name="Format" c:type="GstFormat"/>
+ </field>
+ <field name="key" writable="1">
+ <type name="utf8" c:type="gchar*"/>
+ </field>
+ </record>
+ </union>
+ <method name="copy"
+ c:identifier="gst_index_entry_copy"
+ doc="Copies an entry and returns the result.">
+ <return-value transfer-ownership="full">
+ <type name="IndexEntry" c:type="GstIndexEntry*"/>
+ </return-value>
+ </method>
+ <method name="free"
+ c:identifier="gst_index_entry_free"
+ doc="Free the memory used by the given entry.">
+ <return-value transfer-ownership="none">
+ <type name="none" c:type="void"/>
+ </return-value>
+ </method>
+ <method name="assoc_map"
+ c:identifier="gst_index_entry_assoc_map"
+ doc="Gets alternative formats associated with the indexentry.
+format.">
+ <return-value transfer-ownership="none">
+ <type name="boolean" c:type="gboolean"/>
+ </return-value>
+ <parameters>
+ <parameter name="format" transfer-ownership="none">
+ <type name="Format" c:type="GstFormat"/>
+ </parameter>
+ <parameter name="value" direction="out" transfer-ownership="full">
+ <type name="int64" c:type="gint64*"/>
+ </parameter>
+ </parameters>
+ </method>
+ </record>
+ <enumeration name="IndexEntryType"
+ doc="The different types of entries in the index."
+ c:type="GstIndexEntryType">
+ <member name="id" value="0" c:identifier="GST_INDEX_ENTRY_ID"/>
+ <member name="association"
+ value="1"
+ c:identifier="GST_INDEX_ENTRY_ASSOCIATION"/>
+ <member name="object" value="2" c:identifier="GST_INDEX_ENTRY_OBJECT"/>
+ <member name="format" value="3" c:identifier="GST_INDEX_ENTRY_FORMAT"/>
+ </enumeration>
+ <class name="IndexFactory"
+ c:type="GstIndexFactory"
+ doc="The GstIndexFactory object"
+ parent="PluginFeature"
+ glib:type-name="GstIndexFactory"
+ glib:get-type="gst_index_factory_get_type"
+ glib:type-struct="IndexFactoryClass">
+ <constructor name="new"
+ c:identifier="gst_index_factory_new"
+ doc="Create a new indexfactory with the given parameters">
+ <return-value transfer-ownership="full">
+ <type name="IndexFactory" c:type="GstIndexFactory*"/>
+ </return-value>
+ <parameters>
+ <parameter name="name" transfer-ownership="none">
+ <type name="utf8" c:type="gchar*"/>
+ </parameter>
+ <parameter name="longdesc" transfer-ownership="none">
+ <type name="utf8" c:type="gchar*"/>
+ </parameter>
+ <parameter name="type" transfer-ownership="none">
+ <type name="GType" c:type="GType"/>
+ </parameter>
+ </parameters>
+ </constructor>
+ <function name="find"
+ c:identifier="gst_index_factory_find"
+ doc="Search for an indexfactory of the given name.">
+ <return-value transfer-ownership="full">
+ <type name="IndexFactory" c:type="GstIndexFactory*"/>
+ </return-value>
+ <parameters>
+ <parameter name="name" transfer-ownership="none">
+ <type name="utf8" c:type="gchar*"/>
+ </parameter>
+ </parameters>
+ </function>
+ <function name="make"
+ c:identifier="gst_index_factory_make"
+ doc="Create a new #GstIndex instance from the
+indexfactory with the given name.">
+ <return-value transfer-ownership="full">
+ <type name="Index" c:type="GstIndex*"/>
+ </return-value>
+ <parameters>
+ <parameter name="name" transfer-ownership="none">
+ <type name="utf8" c:type="gchar*"/>
+ </parameter>
+ </parameters>
+ </function>
+ <method name="destroy"
+ c:identifier="gst_index_factory_destroy"
+ doc="Removes the index from the global list.">
+ <return-value transfer-ownership="none">
+ <type name="none" c:type="void"/>
+ </return-value>
+ </method>
+ <method name="create"
+ c:identifier="gst_index_factory_create"
+ doc="Create a new #GstIndex instance from the
+given indexfactory.">
+ <return-value transfer-ownership="full">
+ <type name="Index" c:type="GstIndex*"/>
+ </return-value>
+ </method>
+ <field name="feature">
+ <type name="PluginFeature" c:type="GstPluginFeature"/>
+ </field>
+ <field name="longdesc">
+ <type name="utf8" c:type="gchar*"/>
+ </field>
+ <field name="type">
+ <type name="GType" c:type="GType"/>
+ </field>
+ <field name="_gst_reserved">
+ <array zero-terminated="0" c:type="gpointer" fixed-size="4">
+ <type name="any"/>
+ </array>
+ </field>
+ </class>
+ <record name="IndexFactoryClass"
+ c:type="GstIndexFactoryClass"
+ glib:is-gtype-struct-for="IndexFactory">
+ <field name="parent">
+ <type name="PluginFeatureClass" c:type="GstPluginFeatureClass"/>
+ </field>
+ <field name="_gst_reserved">
+ <array zero-terminated="0" c:type="gpointer" fixed-size="4">
+ <type name="any"/>
+ </array>
+ </field>
+ </record>
+ <callback name="IndexFilter"
+ c:type="GstIndexFilter"
+ doc="Function to filter out entries in the index.
+to the index, %FALSE otherwise.">
+ <return-value transfer-ownership="none">
+ <type name="boolean" c:type="gboolean"/>
+ </return-value>
+ <parameters>
+ <parameter name="index" transfer-ownership="none">
+ <type name="Index" c:type="GstIndex*"/>
+ </parameter>
+ <parameter name="entry" transfer-ownership="none">
+ <type name="IndexEntry" c:type="GstIndexEntry*"/>
+ </parameter>
+ <parameter name="user_data" transfer-ownership="none" closure="2">
+ <type name="any" c:type="gpointer"/>
+ </parameter>
+ </parameters>
+ </callback>
+ <bitfield name="IndexFlags"
+ doc="Flags for this index"
+ c:type="GstIndexFlags">
+ <member name="writable" value="16" c:identifier="GST_INDEX_WRITABLE"/>
+ <member name="readable" value="32" c:identifier="GST_INDEX_READABLE"/>
+ <member name="flag_last"
+ value="4096"
+ c:identifier="GST_INDEX_FLAG_LAST"/>
+ </bitfield>
+ <record name="IndexGroup"
+ c:type="GstIndexGroup"
+ doc="A group of related entries in an index.">
+ <field name="groupnum" writable="1">
+ <type name="int" c:type="gint"/>
+ </field>
+ <field name="entries" writable="1">
+ <type name="GLib.List" c:type="GList*"/>
+ </field>
+ <field name="certainty" writable="1">
+ <type name="IndexCertainty" c:type="GstIndexCertainty"/>
+ </field>
+ <field name="peergroup" writable="1">
+ <type name="int" c:type="gint"/>
+ </field>
+ </record>
+ <enumeration name="IndexLookupMethod"
+ doc="Specify the method to find an index entry in the index."
+ c:type="GstIndexLookupMethod">
+ <member name="exact" value="0" c:identifier="GST_INDEX_LOOKUP_EXACT"/>
+ <member name="before" value="1" c:identifier="GST_INDEX_LOOKUP_BEFORE"/>
+ <member name="after" value="2" c:identifier="GST_INDEX_LOOKUP_AFTER"/>
+ </enumeration>
+ <callback name="IndexResolver"
+ c:type="GstIndexResolver"
+ doc="Function to resolve ids to writer descriptions.">
+ <return-value transfer-ownership="none">
+ <type name="boolean" c:type="gboolean"/>
+ </return-value>
+ <parameters>
+ <parameter name="index" transfer-ownership="none">
+ <type name="Index" c:type="GstIndex*"/>
+ </parameter>
+ <parameter name="writer" transfer-ownership="none">
+ <type name="Object" c:type="GstObject*"/>
+ </parameter>
+ <parameter name="writer_string" transfer-ownership="none">
+ <array c:type="gchar**">
+ <type name="utf8"/>
+ </array>
+ </parameter>
+ <parameter name="user_data" transfer-ownership="none" closure="3">
+ <type name="any" c:type="gpointer"/>
+ </parameter>
+ </parameters>
+ </callback>
+ <enumeration name="IndexResolverMethod"
+ doc="The method used to resolve index writers"
+ c:type="GstIndexResolverMethod">
+ <member name="custom"
+ value="0"
+ c:identifier="GST_INDEX_RESOLVER_CUSTOM"/>
+ <member name="gtype" value="1" c:identifier="GST_INDEX_RESOLVER_GTYPE"/>
+ <member name="path" value="2" c:identifier="GST_INDEX_RESOLVER_PATH"/>
+ </enumeration>
+ <record name="Iterator"
+ c:type="GstIterator"
+ doc="created.
+#GstIterator base structure. The values of this structure are
+protected for subclasses, use the methods to use the #GstIterator.">
+ <field name="next" writable="1">
+ <type name="IteratorNextFunction" c:type="GstIteratorNextFunction"/>
+ </field>
+ <field name="item" writable="1">
+ <type name="IteratorItemFunction" c:type="GstIteratorItemFunction"/>
+ </field>
+ <field name="resync" writable="1">
+ <type name="IteratorResyncFunction"
+ c:type="GstIteratorResyncFunction"/>
+ </field>
+ <field name="free" writable="1">
+ <type name="IteratorFreeFunction" c:type="GstIteratorFreeFunction"/>
+ </field>
+ <field name="pushed" writable="1">
+ <type name="Iterator" c:type="GstIterator*"/>
+ </field>
+ <field name="type" writable="1">
+ <type name="GType" c:type="GType"/>
+ </field>
+ <field name="lock" writable="1">
+ <type name="GLib.Mutex" c:type="GMutex*"/>
+ </field>
+ <field name="cookie" writable="1">
+ <type name="uint32" c:type="guint32"/>
+ </field>
+ <field name="master_cookie" writable="1">
+ <type name="any" c:type="guint32*"/>
+ </field>
+ <field name="_gst_reserved" writable="1">
+ <array zero-terminated="0" c:type="gpointer" fixed-size="4">
+ <type name="any"/>
+ </array>
+ </field>
+ <constructor name="new"
+ c:identifier="gst_iterator_new"
+ doc="iterator changed.
+Create a new iterator. This function is mainly used for objects
+implementing the next/resync/free function to iterate a data structure.
+For each item retrieved, the @item function is called with the lock
+held. The @free function is called when the iterator is freed.
+MT safe.">
+ <return-value transfer-ownership="full">
+ <type name="Iterator" c:type="GstIterator*"/>
+ </return-value>
+ <parameters>
+ <parameter name="size" transfer-ownership="none">
+ <type name="uint" c:type="guint"/>
+ </parameter>
+ <parameter name="type" transfer-ownership="none">
+ <type name="GType" c:type="GType"/>
+ </parameter>
+ <parameter name="lock" transfer-ownership="none">
+ <type name="GLib.Mutex" c:type="GMutex*"/>
+ </parameter>
+ <parameter name="master_cookie"
+ direction="out"
+ transfer-ownership="full">
+ <type name="uint32" c:type="guint32*"/>
+ </parameter>
+ <parameter name="next" transfer-ownership="none" scope="call">
+ <type name="IteratorNextFunction"
+ c:type="GstIteratorNextFunction"/>
+ </parameter>
+ <parameter name="item" transfer-ownership="none" scope="call">
+ <type name="IteratorItemFunction"
+ c:type="GstIteratorItemFunction"/>
+ </parameter>
+ <parameter name="resync" transfer-ownership="none" scope="call">
+ <type name="IteratorResyncFunction"
+ c:type="GstIteratorResyncFunction"/>
+ </parameter>
+ <parameter name="free" transfer-ownership="none" scope="call">
+ <type name="IteratorFreeFunction"
+ c:type="GstIteratorFreeFunction"/>
+ </parameter>
+ </parameters>
+ </constructor>
+ <constructor name="new_list"
+ c:identifier="gst_iterator_new_list"
+ doc="is changed.
+Create a new iterator designed for iterating @list.
+The list you iterate is usually part of a data structure @owner and is
+protected with @lock.
+The iterator will use @lock to retrieve the next item of the list and it
+will then call the @item function before releasing @lock again.
+The @item function usualy makes sure that the item remains alive while
+responsible for freeing/unreffing the item after usage as explained in
+gst_iterator_next().
+When a concurrent update to the list is performed, usually by @owner while
+holding @lock, @master_cookie will be updated. The iterator implementation
+will notice the update of the cookie and will return %GST_ITERATOR_RESYNC to
+the user of the iterator in the next call to gst_iterator_next().
+MT safe.">
+ <return-value transfer-ownership="full">
+ <type name="Iterator" c:type="GstIterator*"/>
+ </return-value>
+ <parameters>
+ <parameter name="type" transfer-ownership="none">
+ <type name="GType" c:type="GType"/>
+ </parameter>
+ <parameter name="lock" transfer-ownership="none">
+ <type name="GLib.Mutex" c:type="GMutex*"/>
+ </parameter>
+ <parameter name="master_cookie"
+ direction="out"
+ transfer-ownership="full">
+ <type name="uint32" c:type="guint32*"/>
+ </parameter>
+ <parameter name="list" transfer-ownership="none">
+ <type name="GLib.List" c:type="GList**"/>
+ </parameter>
+ <parameter name="owner" transfer-ownership="none">
+ <type name="any" c:type="gpointer"/>
+ </parameter>
+ <parameter name="item" transfer-ownership="none" scope="call">
+ <type name="IteratorItemFunction"
+ c:type="GstIteratorItemFunction"/>
+ </parameter>
+ <parameter name="free" transfer-ownership="none" scope="call">
+ <type name="IteratorDisposeFunction"
+ c:type="GstIteratorDisposeFunction"/>
+ </parameter>
+ </parameters>
+ </constructor>
+ <constructor name="new_single"
+ c:identifier="gst_iterator_new_single"
+ doc="This #GstIterator is a convenient iterator for the common
+case where a #GstIterator needs to be returned but only
+a single object has to be considered. This happens often
+for the #GstPadIterIntLinkFunction."
+ version="0.10.25">
+ <return-value transfer-ownership="full">
+ <type name="Iterator" c:type="GstIterator*"/>
+ </return-value>
+ <parameters>
+ <parameter name="type" transfer-ownership="none">
+ <type name="GType" c:type="GType"/>
+ </parameter>
+ <parameter name="object" transfer-ownership="none">
+ <type name="any" c:type="gpointer"/>
+ </parameter>
+ <parameter name="copy" transfer-ownership="none" scope="call">
+ <type name="CopyFunction" c:type="GstCopyFunction"/>
+ </parameter>
+ <parameter name="free" transfer-ownership="none" scope="call">
+ <type name="GLib.FreeFunc" c:type="GFreeFunc"/>
+ </parameter>
+ </parameters>
+ </constructor>
+ <method name="next"
+ c:identifier="gst_iterator_next"
+ doc="Get the next item from the iterator in @elem.
+Only when this function returns %GST_ITERATOR_OK, @elem will contain a valid
+value. For iterators that return refcounted objects, the returned object
+will have its refcount increased and should therefore be unreffed after
+usage.
+When this function returns %GST_ITERATOR_DONE, no more elements can be
+retrieved from @it.
+A return value of %GST_ITERATOR_RESYNC indicates that the element list was
+concurrently updated. The user of @it should call gst_iterator_resync() to
+get the newly updated list.
+A return value of %GST_ITERATOR_ERROR indicates an unrecoverable fatal error.
+is a refcounted object.
+MT safe.">
+ <return-value transfer-ownership="full">
+ <type name="IteratorResult" c:type="GstIteratorResult"/>
+ </return-value>
+ <parameters>
+ <parameter name="elem" transfer-ownership="none">
+ <type name="any" c:type="gpointer*"/>
+ </parameter>
+ </parameters>
+ </method>
+ <method name="resync"
+ c:identifier="gst_iterator_resync"
+ doc="Resync the iterator. this function is mostly called
+after gst_iterator_next() returned %GST_ITERATOR_RESYNC.
+When an iterator was pushed on @it, it will automatically be popped again
+with this function.
+MT safe.">
+ <return-value transfer-ownership="none">
+ <type name="none" c:type="void"/>
+ </return-value>
+ </method>
+ <method name="free"
+ c:identifier="gst_iterator_free"
+ doc="Free the iterator.
+MT safe.">
+ <return-value transfer-ownership="none">
+ <type name="none" c:type="void"/>
+ </return-value>
+ </method>
+ <method name="push"
+ c:identifier="gst_iterator_push"
+ doc="Pushes @other iterator onto @it. All calls performed on @it are
+forwarded to @other. If @other returns %GST_ITERATOR_DONE, it is
+popped again and calls are handled by @it again.
+This function is mainly used by objects implementing the iterator
+next function to recurse into substructures.
+When gst_iterator_resync() is called on @it, @other will automatically be
+popped.
+MT safe.">
+ <return-value transfer-ownership="none">
+ <type name="none" c:type="void"/>
+ </return-value>
+ <parameters>
+ <parameter name="other" transfer-ownership="none">
+ <type name="Iterator" c:type="GstIterator*"/>
+ </parameter>
+ </parameters>
+ </method>
+ <method name="filter"
+ c:identifier="gst_iterator_filter"
+ doc="Create a new iterator from an existing iterator. The new iterator
+will only return those elements that match the given compare function @func.
+in the iterator.
+When this iterator is freed, @it will also be freed.
+MT safe.">
+ <return-value transfer-ownership="full">
+ <type name="Iterator" c:type="GstIterator*"/>
+ </return-value>
+ <parameters>
+ <parameter name="func"
+ transfer-ownership="none"
+ scope="call"
+ closure="2">
+ <type name="GLib.CompareFunc" c:type="GCompareFunc"/>
+ </parameter>
+ <parameter name="user_data" transfer-ownership="none">
+ <type name="any" c:type="gpointer"/>
+ </parameter>
+ </parameters>
+ </method>
+ <method name="fold"
+ c:identifier="gst_iterator_fold"
+ doc="Folds @func over the elements of @iter. That is to say, @func will be called
+as @func (object, @ret, @user_data) for each object in @it. The normal use
+of this procedure is to accumulate the results of operating on the objects in
+before @func is called, and it should be unrefed after use in @func.
+This procedure can be used (and is used internally) to implement the
+gst_iterator_foreach() and gst_iterator_find_custom() operations.
+The fold will proceed as long as @func returns TRUE. When the iterator has no
+more arguments, %GST_ITERATOR_DONE will be returned. If @func returns FALSE,
+the fold will stop, and %GST_ITERATOR_OK will be returned. Errors or resyncs
+will cause fold to return %GST_ITERATOR_ERROR or %GST_ITERATOR_RESYNC as
+appropriate.
+The iterator will not be freed.
+MT safe.">
+ <return-value transfer-ownership="full">
+ <type name="IteratorResult" c:type="GstIteratorResult"/>
+ </return-value>
+ <parameters>
+ <parameter name="func" transfer-ownership="none" scope="call">
+ <type name="IteratorFoldFunction"
+ c:type="GstIteratorFoldFunction"/>
+ </parameter>
+ <parameter name="ret" transfer-ownership="none">
+ <type name="GObject.Value" c:type="GValue*"/>
+ </parameter>
+ <parameter name="user_data" transfer-ownership="none">
+ <type name="any" c:type="gpointer"/>
+ </parameter>
+ </parameters>
+ </method>
+ <method name="foreach"
+ c:identifier="gst_iterator_foreach"
+ doc="Iterate over all element of @it and call the given function @func for
+each element. As in gst_iterator_fold(), the refcount of a refcounted
+object will be increased before @func is called, and should be unrefed
+after use.
+freed.
+MT safe.">
+ <return-value transfer-ownership="full" doc="The iterator will not be">
+ <type name="IteratorResult" c:type="GstIteratorResult"/>
+ </return-value>
+ <parameters>
+ <parameter name="func"
+ transfer-ownership="none"
+ scope="call"
+ closure="2">
+ <type name="GLib.Func" c:type="GFunc"/>
+ </parameter>
+ <parameter name="user_data" transfer-ownership="none">
+ <type name="any" c:type="gpointer"/>
+ </parameter>
+ </parameters>
+ </method>
+ <method name="find_custom"
+ c:identifier="gst_iterator_find_custom"
+ doc="Find the first element in @it that matches the compare function @func.
+the refcount of a refcounted object will be increased before @func is
+called, and should be unrefed after use.
+The iterator will not be freed.
+This function will return NULL if an error or resync happened to
+the iterator.
+function or NULL when no element matched.
+MT safe.">
+ <return-value transfer-ownership="none">
+ <type name="any" c:type="gpointer"/>
+ </return-value>
+ <parameters>
+ <parameter name="func"
+ transfer-ownership="none"
+ scope="call"
+ closure="2">
+ <type name="GLib.CompareFunc" c:type="GCompareFunc"/>
+ </parameter>
+ <parameter name="user_data" transfer-ownership="none">
+ <type name="any" c:type="gpointer"/>
+ </parameter>
+ </parameters>
+ </method>
+ </record>
+ <callback name="IteratorDisposeFunction"
+ c:type="GstIteratorDisposeFunction"
+ doc="The function that will be called when a #GList iterator is freed. The
+owner of the #GList iterator can then clean up its resources.">
+ <return-value transfer-ownership="none">
+ <type name="none" c:type="void"/>
+ </return-value>
+ <parameters>
+ <parameter name="owner" transfer-ownership="none">
+ <type name="any" c:type="gpointer"/>
+ </parameter>
+ </parameters>
+ </callback>
+ <callback name="IteratorFoldFunction"
+ c:type="GstIteratorFoldFunction"
+ doc="A function to be passed to gst_iterator_fold().">
+ <return-value transfer-ownership="none">
+ <type name="boolean" c:type="gboolean"/>
+ </return-value>
+ <parameters>
+ <parameter name="item" transfer-ownership="none">
+ <type name="any" c:type="gpointer"/>
+ </parameter>
+ <parameter name="ret" transfer-ownership="none">
+ <type name="GObject.Value" c:type="GValue*"/>
+ </parameter>
+ <parameter name="user_data" transfer-ownership="none" closure="2">
+ <type name="any" c:type="gpointer"/>
+ </parameter>
+ </parameters>
+ </callback>
+ <callback name="IteratorFreeFunction"
+ c:type="GstIteratorFreeFunction"
+ doc="This function will be called when the iterator is freed.
+Implementors of a #GstIterator should implement this
+function and pass it to the constructor of the custom iterator.
+The function will be called with the iterator lock held.">
+ <return-value transfer-ownership="none">
+ <type name="none" c:type="void"/>
+ </return-value>
+ <parameters>
+ <parameter name="it" transfer-ownership="none">
+ <type name="Iterator" c:type="GstIterator*"/>
+ </parameter>
+ </parameters>
+ </callback>
+ <enumeration name="IteratorItem"
+ doc="The result of a #GstIteratorItemFunction."
+ c:type="GstIteratorItem">
+ <member name="skip" value="0" c:identifier="GST_ITERATOR_ITEM_SKIP"/>
+ <member name="pass" value="1" c:identifier="GST_ITERATOR_ITEM_PASS"/>
+ <member name="end" value="2" c:identifier="GST_ITERATOR_ITEM_END"/>
+ </enumeration>
+ <callback name="IteratorItemFunction"
+ c:type="GstIteratorItemFunction"
+ doc="The function that will be called after the next item of the iterator
+has been retrieved. This function will typically increase the refcount
+of the item or make a copy.
+Implementors of a #GstIterator should implement this
+function and pass it to the constructor of the custom iterator.
+The function will be called with the iterator lock held.">
+ <return-value transfer-ownership="full">
+ <type name="IteratorItem" c:type="GstIteratorItem"/>
+ </return-value>
+ <parameters>
+ <parameter name="it" transfer-ownership="none">
+ <type name="Iterator" c:type="GstIterator*"/>
+ </parameter>
+ <parameter name="item" transfer-ownership="none">
+ <type name="any" c:type="gpointer"/>
+ </parameter>
+ </parameters>
+ </callback>
+ <callback name="IteratorNextFunction"
+ c:type="GstIteratorNextFunction"
+ doc="The function that will be called when the next element of the iterator
+should be retrieved.
+Implementors of a #GstIterator should implement this
+function and pass it to the constructor of the custom iterator.
+The function will be called with the iterator lock held.">
+ <return-value transfer-ownership="full">
+ <type name="IteratorResult" c:type="GstIteratorResult"/>
+ </return-value>
+ <parameters>
+ <parameter name="it" transfer-ownership="none">
+ <type name="Iterator" c:type="GstIterator*"/>
+ </parameter>
+ <parameter name="result" transfer-ownership="none">
+ <type name="any" c:type="gpointer*"/>
+ </parameter>
+ </parameters>
+ </callback>
+ <enumeration name="IteratorResult"
+ doc="The result of gst_iterator_next()."
+ c:type="GstIteratorResult">
+ <member name="done" value="0" c:identifier="GST_ITERATOR_DONE"/>
+ <member name="ok" value="1" c:identifier="GST_ITERATOR_OK"/>
+ <member name="resync" value="2" c:identifier="GST_ITERATOR_RESYNC"/>
+ <member name="error" value="3" c:identifier="GST_ITERATOR_ERROR"/>
+ </enumeration>
+ <callback name="IteratorResyncFunction"
+ c:type="GstIteratorResyncFunction"
+ doc="This function will be called whenever a concurrent update happened
+to the iterated datastructure. The implementor of the iterator should
+restart the iterator from the beginning and clean up any state it might
+have.
+Implementors of a #GstIterator should implement this
+function and pass it to the constructor of the custom iterator.
+The function will be called with the iterator lock held.">
+ <return-value transfer-ownership="none">
+ <type name="none" c:type="void"/>
+ </return-value>
+ <parameters>
+ <parameter name="it" transfer-ownership="none">
+ <type name="Iterator" c:type="GstIterator*"/>
+ </parameter>
+ </parameters>
+ </callback>
+ <constant name="LICENSE_UNKNOWN" value="unknown">
+ <type name="utf8"/>
+ </constant>
+ <enumeration name="LibraryError"
+ doc="category. Make sure you add a custom message to the error call.
+deciding where to go while developing code.
+Library errors are for errors from the library being used by elements
+(initializing, finalizing, settings, ...)"
+ c:type="GstLibraryError"
+ glib:error-quark="gst_library_error_quark">
+ <member name="failed" value="1" c:identifier="GST_LIBRARY_ERROR_FAILED"/>
+ <member name="too_lazy"
+ value="2"
+ c:identifier="GST_LIBRARY_ERROR_TOO_LAZY"/>
+ <member name="init" value="3" c:identifier="GST_LIBRARY_ERROR_INIT"/>
+ <member name="shutdown"
+ value="4"
+ c:identifier="GST_LIBRARY_ERROR_SHUTDOWN"/>
+ <member name="settings"
+ value="5"
+ c:identifier="GST_LIBRARY_ERROR_SETTINGS"/>
+ <member name="encode" value="6" c:identifier="GST_LIBRARY_ERROR_ENCODE"/>
+ <member name="num_errors"
+ value="7"
+ c:identifier="GST_LIBRARY_ERROR_NUM_ERRORS"/>
+ </enumeration>
+ <callback name="LogFunction"
+ c:type="GstLogFunction"
+ doc="Function prototype for a logging function that can be registered with
+gst_debug_add_log_function().
+Use G_GNUC_NO_INSTRUMENT on that function.">
+ <return-value transfer-ownership="none">
+ <type name="none" c:type="void"/>
+ </return-value>
+ <parameters>
+ <parameter name="category" transfer-ownership="none">
+ <type name="DebugCategory" c:type="GstDebugCategory*"/>
+ </parameter>
+ <parameter name="level" transfer-ownership="none">
+ <type name="DebugLevel" c:type="GstDebugLevel"/>
+ </parameter>
+ <parameter name="file" transfer-ownership="none">
+ <type name="utf8" c:type="gchar*"/>
+ </parameter>
+ <parameter name="function" transfer-ownership="none">
+ <type name="utf8" c:type="gchar*"/>
+ </parameter>
+ <parameter name="line" transfer-ownership="none">
+ <type name="int" c:type="gint"/>
+ </parameter>
+ <parameter name="object" transfer-ownership="none">
+ <type name="GObject.Object" c:type="GObject*"/>
+ </parameter>
+ <parameter name="message" transfer-ownership="none">
+ <type name="DebugMessage" c:type="GstDebugMessage*"/>
+ </parameter>
+ <parameter name="data" transfer-ownership="none">
+ <type name="any" c:type="gpointer"/>
+ </parameter>
+ </parameters>
+ </callback>
+ <constant name="MESSAGE_TRACE_NAME" value="GstMessage">
+ <type name="utf8"/>
+ </constant>
+ <constant name="MSECOND" value="0">
+ <type name="int"/>
+ </constant>
+ <constant name="M_PI" value="3.14159265359">
+ <type name="double"/>
+ </constant>
+ <record name="Message" c:type="GstMessage" doc="A #GstMessage.">
+ <field name="mini_object" writable="1">
+ <type name="MiniObject" c:type="GstMiniObject"/>
+ </field>
+ <field name="lock" writable="1">
+ <type name="GLib.Mutex" c:type="GMutex*"/>
+ </field>
+ <field name="cond" writable="1">
+ <type name="GLib.Cond" c:type="GCond*"/>
+ </field>
+ <field name="type" writable="1">
+ <type name="MessageType" c:type="GstMessageType"/>
+ </field>
+ <field name="timestamp" writable="1">
+ <type name="uint64" c:type="guint64"/>
+ </field>
+ <field name="src" writable="1">
+ <type name="Object" c:type="GstObject*"/>
+ </field>
+ <field name="structure" writable="1">
+ <type name="Structure" c:type="GstStructure*"/>
+ </field>
+ <union name="abidata" c:type="abidata">
+ <record name="ABI" c:type="ABI">
+ <field name="seqnum" writable="1">
+ <type name="uint32" c:type="guint32"/>
+ </field>
+ </record>
+ <field name="_gst_reserved" writable="1">
+ <array zero-terminated="0" c:type="gpointer" fixed-size="4">
+ <type name="any"/>
+ </array>
+ </field>
+ </union>
+ <constructor name="new_eos"
+ c:identifier="gst_message_new_eos"
+ doc="Create a new eos message. This message is generated and posted in
+the sink elements of a GstBin. The bin will only forward the EOS
+message to the application if all sinks have posted an EOS message.
+MT safe.">
+ <return-value transfer-ownership="full">
+ <type name="Message" c:type="GstMessage*"/>
+ </return-value>
+ <parameters>
+ <parameter name="src" transfer-ownership="none">
+ <type name="Object" c:type="GstObject*"/>
+ </parameter>
+ </parameters>
+ </constructor>
+ <constructor name="new_error"
+ c:identifier="gst_message_new_error"
+ doc="Create a new error message. The message will copy @error and
+occured. The pipeline will probably (partially) stop. The application
+receiving this message should stop the pipeline.
+MT safe.">
+ <return-value transfer-ownership="full">
+ <type name="Message" c:type="GstMessage*"/>
+ </return-value>
+ <parameters>
+ <parameter name="src" transfer-ownership="none">
+ <type name="Object" c:type="GstObject*"/>
+ </parameter>
+ <parameter name="error" transfer-ownership="none">
+ <type name="GLib.Error" c:type="GError*"/>
+ </parameter>
+ <parameter name="debug" transfer-ownership="none">
+ <type name="utf8" c:type="gchar*"/>
+ </parameter>
+ </parameters>
+ </constructor>
+ <constructor name="new_warning"
+ c:identifier="gst_message_new_warning"
+ doc="Create a new warning message. The message will make copies of @error and
+MT safe.">
+ <return-value transfer-ownership="full">
+ <type name="Message" c:type="GstMessage*"/>
+ </return-value>
+ <parameters>
+ <parameter name="src" transfer-ownership="none">
+ <type name="Object" c:type="GstObject*"/>
+ </parameter>
+ <parameter name="error" transfer-ownership="none">
+ <type name="GLib.Error" c:type="GError*"/>
+ </parameter>
+ <parameter name="debug" transfer-ownership="none">
+ <type name="utf8" c:type="gchar*"/>
+ </parameter>
+ </parameters>
+ </constructor>
+ <constructor name="new_info"
+ c:identifier="gst_message_new_info"
+ doc="Create a new info message. The message will make copies of @error and
+MT safe."
+ version="0.10.12">
+ <return-value transfer-ownership="full">
+ <type name="Message" c:type="GstMessage*"/>
+ </return-value>
+ <parameters>
+ <parameter name="src" transfer-ownership="none">
+ <type name="Object" c:type="GstObject*"/>
+ </parameter>
+ <parameter name="error" transfer-ownership="none">
+ <type name="GLib.Error" c:type="GError*"/>
+ </parameter>
+ <parameter name="debug" transfer-ownership="none">
+ <type name="utf8" c:type="gchar*"/>
+ </parameter>
+ </parameters>
+ </constructor>
+ <constructor name="new_tag"
+ c:identifier="gst_message_new_tag"
+ doc="Create a new tag message. The message will take ownership of the tag list.
+The message is posted by elements that discovered a new taglist.
+MT safe.">
+ <return-value transfer-ownership="full">
+ <type name="Message" c:type="GstMessage*"/>
+ </return-value>
+ <parameters>
+ <parameter name="src" transfer-ownership="none">
+ <type name="Object" c:type="GstObject*"/>
+ </parameter>
+ <parameter name="tag_list" transfer-ownership="none">
+ <type name="TagList" c:type="GstTagList*"/>
+ </parameter>
+ </parameters>
+ </constructor>
+ <constructor name="new_tag_full"
+ c:identifier="gst_message_new_tag_full"
+ doc="Create a new tag message. The message will take ownership of the tag list.
+The message is posted by elements that discovered a new taglist.
+MT safe."
+ version="0.10.24">
+ <return-value transfer-ownership="full">
+ <type name="Message" c:type="GstMessage*"/>
+ </return-value>
+ <parameters>
+ <parameter name="src" transfer-ownership="none">
+ <type name="Object" c:type="GstObject*"/>
+ </parameter>
+ <parameter name="pad" transfer-ownership="none">
+ <type name="Pad" c:type="GstPad*"/>
+ </parameter>
+ <parameter name="tag_list" transfer-ownership="none">
+ <type name="TagList" c:type="GstTagList*"/>
+ </parameter>
+ </parameters>
+ </constructor>
+ <constructor name="new_buffering"
+ c:identifier="gst_message_new_buffering"
+ doc="Create a new buffering message. This message can be posted by an element that
+needs to buffer data before it can continue processing. @percent should be a
+value between 0 and 100. A value of 100 means that the buffering completed.
+When @percent is < 100 the application should PAUSE a PLAYING pipeline. When
+The application must be prepared to receive BUFFERING messages in the
+PREROLLING state and may only set the pipeline to PLAYING after receiving a
+message with @percent set to 100, which can happen after the pipeline
+completed prerolling.
+MT safe."
+ version="0.10.11">
+ <return-value transfer-ownership="full">
+ <type name="Message" c:type="GstMessage*"/>
+ </return-value>
+ <parameters>
+ <parameter name="src" transfer-ownership="none">
+ <type name="Object" c:type="GstObject*"/>
+ </parameter>
+ <parameter name="percent" transfer-ownership="none">
+ <type name="int" c:type="gint"/>
+ </parameter>
+ </parameters>
+ </constructor>
+ <constructor name="new_state_changed"
+ c:identifier="gst_message_new_state_changed"
+ doc="Create a state change message. This message is posted whenever an element
+changed its state.
+MT safe.">
+ <return-value transfer-ownership="full">
+ <type name="Message" c:type="GstMessage*"/>
+ </return-value>
+ <parameters>
+ <parameter name="src" transfer-ownership="none">
+ <type name="Object" c:type="GstObject*"/>
+ </parameter>
+ <parameter name="oldstate" transfer-ownership="none">
+ <type name="State" c:type="GstState"/>
+ </parameter>
+ <parameter name="newstate" transfer-ownership="none" doc="state">
+ <type name="State" c:type="GstState"/>
+ </parameter>
+ <parameter name="pending" transfer-ownership="none" doc="state">
+ <type name="State" c:type="GstState"/>
+ </parameter>
+ </parameters>
+ </constructor>
+ <constructor name="new_state_dirty"
+ c:identifier="gst_message_new_state_dirty"
+ doc="Create a state dirty message. This message is posted whenever an element
+changed its state asynchronously and is used internally to update the
+states of container objects.
+MT safe.">
+ <return-value transfer-ownership="full">
+ <type name="Message" c:type="GstMessage*"/>
+ </return-value>
+ <parameters>
+ <parameter name="src" transfer-ownership="none">
+ <type name="Object" c:type="GstObject*"/>
+ </parameter>
+ </parameters>
+ </constructor>
+ <constructor name="new_step_done"
+ c:identifier="gst_message_new_step_done"
+ doc="This message is posted by elements when they complete a part, when @intermediate set
+to TRUE, or a complete step operation.
+MT safe."
+ version="0.10.24">
+ <return-value transfer-ownership="full">
+ <type name="Message" c:type="GstMessage*"/>
+ </return-value>
+ <parameters>
+ <parameter name="src" transfer-ownership="none">
+ <type name="Object" c:type="GstObject*"/>
+ </parameter>
+ <parameter name="format" transfer-ownership="none">
+ <type name="Format" c:type="GstFormat"/>
+ </parameter>
+ <parameter name="amount" transfer-ownership="none">
+ <type name="uint64" c:type="guint64"/>
+ </parameter>
+ <parameter name="rate" transfer-ownership="none">
+ <type name="double" c:type="gdouble"/>
+ </parameter>
+ <parameter name="flush" transfer-ownership="none">
+ <type name="boolean" c:type="gboolean"/>
+ </parameter>
+ <parameter name="intermediate" transfer-ownership="none">
+ <type name="boolean" c:type="gboolean"/>
+ </parameter>
+ <parameter name="duration" transfer-ownership="none">
+ <type name="uint64" c:type="guint64"/>
+ </parameter>
+ <parameter name="eos" transfer-ownership="none">
+ <type name="boolean" c:type="gboolean"/>
+ </parameter>
+ </parameters>
+ </constructor>
+ <constructor name="new_clock_provide"
+ c:identifier="gst_message_new_clock_provide"
+ doc="Create a clock provide message. This message is posted whenever an
+element is ready to provide a clock or lost its ability to provide
+a clock (maybe because it paused or became EOS).
+This message is mainly used internally to manage the clock
+selection.
+MT safe.">
+ <return-value transfer-ownership="full">
+ <type name="Message" c:type="GstMessage*"/>
+ </return-value>
+ <parameters>
+ <parameter name="src" transfer-ownership="none">
+ <type name="Object" c:type="GstObject*"/>
+ </parameter>
+ <parameter name="clock" transfer-ownership="none">
+ <type name="Clock" c:type="GstClock*"/>
+ </parameter>
+ <parameter name="ready" transfer-ownership="none">
+ <type name="boolean" c:type="gboolean"/>
+ </parameter>
+ </parameters>
+ </constructor>
+ <constructor name="new_clock_lost"
+ c:identifier="gst_message_new_clock_lost"
+ doc="Create a clock lost message. This message is posted whenever the
+clock is not valid anymore.
+If this message is posted by the pipeline, the pipeline will
+select a new clock again when it goes to PLAYING. It might therefore
+be needed to set the pipeline to PAUSED and PLAYING again.
+MT safe.">
+ <return-value transfer-ownership="full">
+ <type name="Message" c:type="GstMessage*"/>
+ </return-value>
+ <parameters>
+ <parameter name="src" transfer-ownership="none">
+ <type name="Object" c:type="GstObject*"/>
+ </parameter>
+ <parameter name="clock" transfer-ownership="none">
+ <type name="Clock" c:type="GstClock*"/>
+ </parameter>
+ </parameters>
+ </constructor>
+ <constructor name="new_new_clock"
+ c:identifier="gst_message_new_new_clock"
+ doc="Create a new clock message. This message is posted whenever the
+pipeline selectes a new clock for the pipeline.
+MT safe.">
+ <return-value transfer-ownership="full">
+ <type name="Message" c:type="GstMessage*"/>
+ </return-value>
+ <parameters>
+ <parameter name="src" transfer-ownership="none">
+ <type name="Object" c:type="GstObject*"/>
+ </parameter>
+ <parameter name="clock" transfer-ownership="none">
+ <type name="Clock" c:type="GstClock*"/>
+ </parameter>
+ </parameters>
+ </constructor>
+ <constructor name="new_application"
+ c:identifier="gst_message_new_application"
+ doc="the structure.
+Create a new application-typed message. GStreamer will never create these
+messages; they are a gift from us to you. Enjoy.
+MT safe.">
+ <return-value transfer-ownership="full">
+ <type name="Message" c:type="GstMessage*"/>
+ </return-value>
+ <parameters>
+ <parameter name="src" transfer-ownership="none">
+ <type name="Object" c:type="GstObject*"/>
+ </parameter>
+ <parameter name="structure" transfer-ownership="none">
+ <type name="Structure" c:type="GstStructure*"/>
+ </parameter>
+ </parameters>
+ </constructor>
+ <constructor name="new_element"
+ c:identifier="gst_message_new_element"
+ doc="the structure.
+Create a new element-specific message. This is meant as a generic way of
+allowing one-way communication from an element to an application, for example
+"the firewire cable was unplugged". The format of the message should be
+documented in the element's documentation. The structure field can be NULL.
+MT safe.">
+ <return-value transfer-ownership="full">
+ <type name="Message" c:type="GstMessage*"/>
+ </return-value>
+ <parameters>
+ <parameter name="src" transfer-ownership="none">
+ <type name="Object" c:type="GstObject*"/>
+ </parameter>
+ <parameter name="structure" transfer-ownership="none">
+ <type name="Structure" c:type="GstStructure*"/>
+ </parameter>
+ </parameters>
+ </constructor>
+ <constructor name="new_segment_start"
+ c:identifier="gst_message_new_segment_start"
+ doc="Create a new segment message. This message is posted by elements that
+start playback of a segment as a result of a segment seek. This message
+is not received by the application but is used for maintenance reasons in
+container elements.
+MT safe.">
+ <return-value transfer-ownership="full">
+ <type name="Message" c:type="GstMessage*"/>
+ </return-value>
+ <parameters>
+ <parameter name="src" transfer-ownership="none">
+ <type name="Object" c:type="GstObject*"/>
+ </parameter>
+ <parameter name="format" transfer-ownership="none">
+ <type name="Format" c:type="GstFormat"/>
+ </parameter>
+ <parameter name="position" transfer-ownership="none">
+ <type name="int64" c:type="gint64"/>
+ </parameter>
+ </parameters>
+ </constructor>
+ <constructor name="new_segment_done"
+ c:identifier="gst_message_new_segment_done"
+ doc="Create a new segment done message. This message is posted by elements that
+finish playback of a segment as a result of a segment seek. This message
+is received by the application after all elements that posted a segment_start
+have posted the segment_done.
+MT safe.">
+ <return-value transfer-ownership="full">
+ <type name="Message" c:type="GstMessage*"/>
+ </return-value>
+ <parameters>
+ <parameter name="src" transfer-ownership="none">
+ <type name="Object" c:type="GstObject*"/>
+ </parameter>
+ <parameter name="format" transfer-ownership="none">
+ <type name="Format" c:type="GstFormat"/>
+ </parameter>
+ <parameter name="position" transfer-ownership="none">
+ <type name="int64" c:type="gint64"/>
+ </parameter>
+ </parameters>
+ </constructor>
+ <constructor name="new_duration"
+ c:identifier="gst_message_new_duration"
+ doc="Create a new duration message. This message is posted by elements that
+know the duration of a stream in a specific format. This message
+is received by bins and is used to calculate the total duration of a
+pipeline. Elements may post a duration message with a duration of
+GST_CLOCK_TIME_NONE to indicate that the duration has changed and the
+cached duration should be discarded. The new duration can then be
+retrieved via a query.
+MT safe.">
+ <return-value transfer-ownership="full">
+ <type name="Message" c:type="GstMessage*"/>
+ </return-value>
+ <parameters>
+ <parameter name="src" transfer-ownership="none">
+ <type name="Object" c:type="GstObject*"/>
+ </parameter>
+ <parameter name="format" transfer-ownership="none">
+ <type name="Format" c:type="GstFormat"/>
+ </parameter>
+ <parameter name="duration" transfer-ownership="none">
+ <type name="int64" c:type="gint64"/>
+ </parameter>
+ </parameters>
+ </constructor>
+ <constructor name="new_latency"
+ c:identifier="gst_message_new_latency"
+ doc="This message can be posted by elements when their latency requirements have
+changed.
+MT safe."
+ version="0.10.12">
+ <return-value transfer-ownership="full">
+ <type name="Message" c:type="GstMessage*"/>
+ </return-value>
+ <parameters>
+ <parameter name="src" transfer-ownership="none">
+ <type name="Object" c:type="GstObject*"/>
+ </parameter>
+ </parameters>
+ </constructor>
+ <constructor name="new_async_start"
+ c:identifier="gst_message_new_async_start"
+ doc="This message is posted by elements when they start an ASYNC state change.
+PLAYING.
+MT safe."
+ version="0.10.13">
+ <return-value transfer-ownership="full">
+ <type name="Message" c:type="GstMessage*"/>
+ </return-value>
+ <parameters>
+ <parameter name="src" transfer-ownership="none">
+ <type name="Object" c:type="GstObject*"/>
+ </parameter>
+ <parameter name="new_base_time" transfer-ownership="none">
+ <type name="boolean" c:type="gboolean"/>
+ </parameter>
+ </parameters>
+ </constructor>
+ <constructor name="new_async_done"
+ c:identifier="gst_message_new_async_done"
+ doc="The message is posted when elements completed an ASYNC state change.
+MT safe."
+ version="0.10.13">
+ <return-value transfer-ownership="full">
+ <type name="Message" c:type="GstMessage*"/>
+ </return-value>
+ <parameters>
+ <parameter name="src" transfer-ownership="none">
+ <type name="Object" c:type="GstObject*"/>
+ </parameter>
+ </parameters>
+ </constructor>
+ <constructor name="new_structure_change"
+ c:identifier="gst_message_new_structure_change"
+ doc="Create a new structure change message. This message is posted when the
+structure of a pipeline is in the process of being changed, for example
+when pads are linked or unlinked.
+MT safe."
+ version="0.10.22.">
+ <return-value transfer-ownership="full">
+ <type name="Message" c:type="GstMessage*"/>
+ </return-value>
+ <parameters>
+ <parameter name="src" transfer-ownership="none">
+ <type name="Object" c:type="GstObject*"/>
+ </parameter>
+ <parameter name="type" transfer-ownership="none">
+ <type name="StructureChangeType" c:type="GstStructureChangeType"/>
+ </parameter>
+ <parameter name="owner" transfer-ownership="none">
+ <type name="Element" c:type="GstElement*"/>
+ </parameter>
+ <parameter name="busy" transfer-ownership="none">
+ <type name="boolean" c:type="gboolean"/>
+ </parameter>
+ </parameters>
+ </constructor>
+ <constructor name="new_stream_status"
+ c:identifier="gst_message_new_stream_status"
+ doc="Create a new stream status message. This message is posted when a streaming
+thread is created/destroyed or when the state changed.
+MT safe."
+ version="0.10.24.">
+ <return-value transfer-ownership="full">
+ <type name="Message" c:type="GstMessage*"/>
+ </return-value>
+ <parameters>
+ <parameter name="src" transfer-ownership="none">
+ <type name="Object" c:type="GstObject*"/>
+ </parameter>
+ <parameter name="type" transfer-ownership="none">
+ <type name="StreamStatusType" c:type="GstStreamStatusType"/>
+ </parameter>
+ <parameter name="owner" transfer-ownership="none">
+ <type name="Element" c:type="GstElement*"/>
+ </parameter>
+ </parameters>
+ </constructor>
+ <constructor name="new_request_state"
+ c:identifier="gst_message_new_request_state"
+ doc="This message can be posted by elements when they want to have their state
+changed. A typical use case would be an audio server that wants to pause the
+pipeline because a higher priority stream is being played.
+MT safe."
+ version="0.10.23">
+ <return-value transfer-ownership="full">
+ <type name="Message" c:type="GstMessage*"/>
+ </return-value>
+ <parameters>
+ <parameter name="src" transfer-ownership="none">
+ <type name="Object" c:type="GstObject*"/>
+ </parameter>
+ <parameter name="state" transfer-ownership="none">
+ <type name="State" c:type="GstState"/>
+ </parameter>
+ </parameters>
+ </constructor>
+ <constructor name="new_step_start"
+ c:identifier="gst_message_new_step_start"
+ doc="This message is posted by elements when they accept or activate a new step
+event for @amount in @format.
+queued it for execution in the streaming threads.
+is now ready to start executing the step in the streaming thread. After this
+message is emited, the application can queue a new step operation in the
+element.
+MT safe."
+ version="0.10.24">
+ <return-value transfer-ownership="full">
+ <type name="Message" c:type="GstMessage*"/>
+ </return-value>
+ <parameters>
+ <parameter name="src" transfer-ownership="none">
+ <type name="Object" c:type="GstObject*"/>
+ </parameter>
+ <parameter name="active" transfer-ownership="none">
+ <type name="boolean" c:type="gboolean"/>
+ </parameter>
+ <parameter name="format" transfer-ownership="none">
+ <type name="Format" c:type="GstFormat"/>
+ </parameter>
+ <parameter name="amount" transfer-ownership="none">
+ <type name="uint64" c:type="guint64"/>
+ </parameter>
+ <parameter name="rate" transfer-ownership="none">
+ <type name="double" c:type="gdouble"/>
+ </parameter>
+ <parameter name="flush" transfer-ownership="none">
+ <type name="boolean" c:type="gboolean"/>
+ </parameter>
+ <parameter name="intermediate" transfer-ownership="none">
+ <type name="boolean" c:type="gboolean"/>
+ </parameter>
+ </parameters>
+ </constructor>
+ <constructor name="new_qos"
+ c:identifier="gst_message_new_qos"
+ doc="A QOS message is posted on the bus whenever an element decides to drop a
+buffer because of QoS reasons or whenever it changes its processing strategy
+because of QoS reasons (quality adjustments such as processing at lower
+accuracy).
+This message can be posted by an element that performs synchronisation against the
+clock (live) or it could be dropped by an element that performs QoS because of QOS
+events received from a downstream element (!live).
+respective running-time, stream-time, timestamp and duration of the (dropped)
+buffer that generated the QoS event. Values can be left to
+GST_CLOCK_TIME_NONE when unknown.
+MT safe."
+ version="0.10.29">
+ <return-value transfer-ownership="full">
+ <type name="Message" c:type="GstMessage*"/>
+ </return-value>
+ <parameters>
+ <parameter name="src" transfer-ownership="none">
+ <type name="Object" c:type="GstObject*"/>
+ </parameter>
+ <parameter name="live" transfer-ownership="none">
+ <type name="boolean" c:type="gboolean"/>
+ </parameter>
+ <parameter name="running_time" transfer-ownership="none">
+ <type name="uint64" c:type="guint64"/>
+ </parameter>
+ <parameter name="stream_time" transfer-ownership="none">
+ <type name="uint64" c:type="guint64"/>
+ </parameter>
+ <parameter name="timestamp" transfer-ownership="none">
+ <type name="uint64" c:type="guint64"/>
+ </parameter>
+ <parameter name="duration" transfer-ownership="none">
+ <type name="uint64" c:type="guint64"/>
+ </parameter>
+ </parameters>
+ </constructor>
+ <constructor name="new_custom"
+ c:identifier="gst_message_new_custom"
+ doc="the structure.
+Create a new custom-typed message. This can be used for anything not
+handled by other message-specific functions to pass a message to the
+app. The structure field can be NULL.
+MT safe.">
+ <return-value transfer-ownership="full">
+ <type name="Message" c:type="GstMessage*"/>
+ </return-value>
+ <parameters>
+ <parameter name="type" transfer-ownership="none">
+ <type name="MessageType" c:type="GstMessageType"/>
+ </parameter>
+ <parameter name="src" transfer-ownership="none">
+ <type name="Object" c:type="GstObject*"/>
+ </parameter>
+ <parameter name="structure" transfer-ownership="none">
+ <type name="Structure" c:type="GstStructure*"/>
+ </parameter>
+ </parameters>
+ </constructor>
+ <method name="get_seqnum"
+ c:identifier="gst_message_get_seqnum"
+ doc="Retrieve the sequence number of a message.
+Messages have ever-incrementing sequence numbers, which may also be set
+explicitly via gst_message_set_seqnum(). Sequence numbers are typically used
+to indicate that a message corresponds to some other set of messages or
+events, for example a SEGMENT_DONE message corresponding to a SEEK event. It
+is considered good practice to make this correspondence when possible, though
+it is not required.
+Note that events and messages share the same sequence number incrementor;
+two events or messages will never not have the same sequence number unless
+that correspondence was made explicitly.
+MT safe."
+ version="0.10.22">
+ <return-value transfer-ownership="none">
+ <type name="uint32" c:type="guint32"/>
+ </return-value>
+ </method>
+ <method name="set_seqnum"
+ c:identifier="gst_message_set_seqnum"
+ doc="Set the sequence number of a message.
+This function might be called by the creator of a message to indicate that
+the message relates to other messages or events. See gst_message_get_seqnum()
+for more information.
+MT safe."
+ version="0.10.22">
+ <return-value transfer-ownership="none">
+ <type name="none" c:type="void"/>
+ </return-value>
+ <parameters>
+ <parameter name="seqnum" transfer-ownership="none">
+ <type name="uint32" c:type="guint32"/>
+ </parameter>
+ </parameters>
+ </method>
+ <method name="parse_error"
+ c:identifier="gst_message_parse_error"
+ doc="Extracts the GError and debug string from the GstMessage. The values returned
+in the output arguments are copies; the caller must free them when done.
+Typical usage of this function might be:
+|[
+...
+switch (GST_MESSAGE_TYPE (msg)) {
+GError *err = NULL;
+gchar *dbg_info = NULL;
+gst_message_parse_error (msg, &amp;err, &amp;dbg_info);
+GST_OBJECT_NAME (msg->src), err->message);
+g_error_free (err);
+g_free (dbg_info);
+break;
+}
+...
+}
+...
+]|
+MT safe.">
+ <return-value transfer-ownership="none">
+ <type name="none" c:type="void"/>
+ </return-value>
+ <parameters>
+ <parameter name="gerror" transfer-ownership="none">
+ <type name="GLib.Error" c:type="GError**"/>
+ </parameter>
+ <parameter name="debug" transfer-ownership="none">
+ <array c:type="gchar**">
+ <type name="utf8"/>
+ </array>
+ </parameter>
+ </parameters>
+ </method>
+ <method name="parse_warning"
+ c:identifier="gst_message_parse_warning"
+ doc="Extracts the GError and debug string from the GstMessage. The values returned
+in the output arguments are copies; the caller must free them when done.
+MT safe.">
+ <return-value transfer-ownership="none">
+ <type name="none" c:type="void"/>
+ </return-value>
+ <parameters>
+ <parameter name="gerror" transfer-ownership="none">
+ <type name="GLib.Error" c:type="GError**"/>
+ </parameter>
+ <parameter name="debug" transfer-ownership="none">
+ <array c:type="gchar**">
+ <type name="utf8"/>
+ </array>
+ </parameter>
+ </parameters>
+ </method>
+ <method name="parse_info"
+ c:identifier="gst_message_parse_info"
+ doc="Extracts the GError and debug string from the GstMessage. The values returned
+in the output arguments are copies; the caller must free them when done.
+MT safe."
+ version="0.10.12">
+ <return-value transfer-ownership="none">
+ <type name="none" c:type="void"/>
+ </return-value>
+ <parameters>
+ <parameter name="gerror" transfer-ownership="none">
+ <type name="GLib.Error" c:type="GError**"/>
+ </parameter>
+ <parameter name="debug" transfer-ownership="none">
+ <array c:type="gchar**">
+ <type name="utf8"/>
+ </array>
+ </parameter>
+ </parameters>
+ </method>
+ <method name="parse_tag"
+ c:identifier="gst_message_parse_tag"
+ doc="Extracts the tag list from the GstMessage. The tag list returned in the
+output argument is a copy; the caller must free it when done.
+Typical usage of this function might be:
+|[
+...
+switch (GST_MESSAGE_TYPE (msg)) {
+GstTagList *tags = NULL;
+gst_message_parse_tag (msg, &amp;tags);
+g_print ("Got tags from element %s\n", GST_OBJECT_NAME (msg->src));
+handle_tags (tags);
+gst_tag_list_free (tags);
+break;
+}
+...
+}
+...
+]|
+MT safe.">
+ <return-value transfer-ownership="none">
+ <type name="none" c:type="void"/>
+ </return-value>
+ <parameters>
+ <parameter name="tag_list" transfer-ownership="none">
+ <type name="TagList" c:type="GstTagList**"/>
+ </parameter>
+ </parameters>
+ </method>
+ <method name="parse_tag_full"
+ c:identifier="gst_message_parse_tag_full"
+ doc="Extracts the tag list from the GstMessage. The tag list returned in the
+output argument is a copy; the caller must free it when done.
+MT safe."
+ version="0.10.24">
+ <return-value transfer-ownership="none">
+ <type name="none" c:type="void"/>
+ </return-value>
+ <parameters>
+ <parameter name="pad" transfer-ownership="none">
+ <type name="Pad" c:type="GstPad**"/>
+ </parameter>
+ <parameter name="tag_list" transfer-ownership="none">
+ <type name="TagList" c:type="GstTagList**"/>
+ </parameter>
+ </parameters>
+ </method>
+ <method name="parse_buffering"
+ c:identifier="gst_message_parse_buffering"
+ doc="Extracts the buffering percent from the GstMessage. see also
+gst_message_new_buffering().
+MT safe."
+ version="0.10.11">
+ <return-value transfer-ownership="none">
+ <type name="none" c:type="void"/>
+ </return-value>
+ <parameters>
+ <parameter name="percent" direction="out" transfer-ownership="full">
+ <type name="int" c:type="gint*"/>
+ </parameter>
+ </parameters>
+ </method>
+ <method name="set_buffering_stats"
+ c:identifier="gst_message_set_buffering_stats"
+ doc="Configures the buffering stats values in @message."
+ version="0.10.20">
+ <return-value transfer-ownership="none">
+ <type name="none" c:type="void"/>
+ </return-value>
+ <parameters>
+ <parameter name="mode" transfer-ownership="none">
+ <type name="BufferingMode" c:type="GstBufferingMode"/>
+ </parameter>
+ <parameter name="avg_in" transfer-ownership="none">
+ <type name="int" c:type="gint"/>
+ </parameter>
+ <parameter name="avg_out" transfer-ownership="none">
+ <type name="int" c:type="gint"/>
+ </parameter>
+ <parameter name="buffering_left" transfer-ownership="none">
+ <type name="int64" c:type="gint64"/>
+ </parameter>
+ </parameters>
+ </method>
+ <method name="parse_buffering_stats"
+ c:identifier="gst_message_parse_buffering_stats"
+ doc="Extracts the buffering stats values from @message."
+ version="0.10.20">
+ <return-value transfer-ownership="none">
+ <type name="none" c:type="void"/>
+ </return-value>
+ <parameters>
+ <parameter name="mode" transfer-ownership="none">
+ <type name="BufferingMode" c:type="GstBufferingMode*"/>
+ </parameter>
+ <parameter name="avg_in" direction="out" transfer-ownership="full">
+ <type name="int" c:type="gint*"/>
+ </parameter>
+ <parameter name="avg_out" direction="out" transfer-ownership="full">
+ <type name="int" c:type="gint*"/>
+ </parameter>
+ <parameter name="buffering_left"
+ direction="out"
+ transfer-ownership="full">
+ <type name="int64" c:type="gint64*"/>
+ </parameter>
+ </parameters>
+ </method>
+ <method name="parse_state_changed"
+ c:identifier="gst_message_parse_state_changed"
+ doc="Extracts the old and new states from the GstMessage.
+Typical usage of this function might be:
+|[
+...
+switch (GST_MESSAGE_TYPE (msg)) {
+GstState old_state, new_state;
+gst_message_parse_state_changed (msg, &amp;old_state, &amp;new_state, NULL);
+g_print ("Element %s changed state from %s to %s.\n",
+GST_OBJECT_NAME (msg->src),
+gst_element_state_get_name (old_state),
+gst_element_state_get_name (new_state));
+break;
+}
+...
+}
+...
+]|
+MT safe.">
+ <return-value transfer-ownership="none">
+ <type name="none" c:type="void"/>
+ </return-value>
+ <parameters>
+ <parameter name="oldstate" transfer-ownership="none">
+ <type name="State" c:type="GstState*"/>
+ </parameter>
+ <parameter name="newstate"
+ transfer-ownership="none"
+ doc="state, or NULL">
+ <type name="State" c:type="GstState*"/>
+ </parameter>
+ <parameter name="pending"
+ transfer-ownership="none"
+ doc="state, or NULL">
+ <type name="State" c:type="GstState*"/>
+ </parameter>
+ </parameters>
+ </method>
+ <method name="parse_step_done"
+ c:identifier="gst_message_parse_step_done"
+ doc="Extract the values the step_done message.
+MT safe."
+ version="0.10.24">
+ <return-value transfer-ownership="none">
+ <type name="none" c:type="void"/>
+ </return-value>
+ <parameters>
+ <parameter name="format" transfer-ownership="none">
+ <type name="Format" c:type="GstFormat*"/>
+ </parameter>
+ <parameter name="amount" direction="out" transfer-ownership="full">
+ <type name="uint64" c:type="guint64*"/>
+ </parameter>
+ <parameter name="rate" direction="out" transfer-ownership="full">
+ <type name="double" c:type="gdouble*"/>
+ </parameter>
+ <parameter name="flush" direction="out" transfer-ownership="full">
+ <type name="boolean" c:type="gboolean*"/>
+ </parameter>
+ <parameter name="intermediate"
+ direction="out"
+ transfer-ownership="full">
+ <type name="boolean" c:type="gboolean*"/>
+ </parameter>
+ <parameter name="duration" direction="out" transfer-ownership="full">
+ <type name="uint64" c:type="guint64*"/>
+ </parameter>
+ <parameter name="eos" direction="out" transfer-ownership="full">
+ <type name="boolean" c:type="gboolean*"/>
+ </parameter>
+ </parameters>
+ </method>
+ <method name="parse_clock_provide"
+ c:identifier="gst_message_parse_clock_provide"
+ doc="Extracts the clock and ready flag from the GstMessage.
+The clock object returned remains valid until the message is freed.
+MT safe.">
+ <return-value transfer-ownership="none">
+ <type name="none" c:type="void"/>
+ </return-value>
+ <parameters>
+ <parameter name="clock" transfer-ownership="none">
+ <type name="Clock" c:type="GstClock**"/>
+ </parameter>
+ <parameter name="ready" direction="out" transfer-ownership="full">
+ <type name="boolean" c:type="gboolean*"/>
+ </parameter>
+ </parameters>
+ </method>
+ <method name="parse_clock_lost"
+ c:identifier="gst_message_parse_clock_lost"
+ doc="Extracts the lost clock from the GstMessage.
+The clock object returned remains valid until the message is freed.
+MT safe.">
+ <return-value transfer-ownership="none">
+ <type name="none" c:type="void"/>
+ </return-value>
+ <parameters>
+ <parameter name="clock" transfer-ownership="none">
+ <type name="Clock" c:type="GstClock**"/>
+ </parameter>
+ </parameters>
+ </method>
+ <method name="parse_new_clock"
+ c:identifier="gst_message_parse_new_clock"
+ doc="Extracts the new clock from the GstMessage.
+The clock object returned remains valid until the message is freed.
+MT safe.">
+ <return-value transfer-ownership="none">
+ <type name="none" c:type="void"/>
+ </return-value>
+ <parameters>
+ <parameter name="clock" transfer-ownership="none">
+ <type name="Clock" c:type="GstClock**"/>
+ </parameter>
+ </parameters>
+ </method>
+ <method name="parse_segment_start"
+ c:identifier="gst_message_parse_segment_start"
+ doc="Extracts the position and format from the segment start message.
+MT safe.">
+ <return-value transfer-ownership="none">
+ <type name="none" c:type="void"/>
+ </return-value>
+ <parameters>
+ <parameter name="format" transfer-ownership="none">
+ <type name="Format" c:type="GstFormat*"/>
+ </parameter>
+ <parameter name="position" direction="out" transfer-ownership="full">
+ <type name="int64" c:type="gint64*"/>
+ </parameter>
+ </parameters>
+ </method>
+ <method name="parse_segment_done"
+ c:identifier="gst_message_parse_segment_done"
+ doc="Extracts the position and format from the segment start message.
+MT safe.">
+ <return-value transfer-ownership="none">
+ <type name="none" c:type="void"/>
+ </return-value>
+ <parameters>
+ <parameter name="format" transfer-ownership="none">
+ <type name="Format" c:type="GstFormat*"/>
+ </parameter>
+ <parameter name="position" direction="out" transfer-ownership="full">
+ <type name="int64" c:type="gint64*"/>
+ </parameter>
+ </parameters>
+ </method>
+ <method name="parse_duration"
+ c:identifier="gst_message_parse_duration"
+ doc="Extracts the duration and format from the duration message. The duration
+might be GST_CLOCK_TIME_NONE, which indicates that the duration has
+changed. Applications should always use a query to retrieve the duration
+of a pipeline.
+MT safe.">
+ <return-value transfer-ownership="none">
+ <type name="none" c:type="void"/>
+ </return-value>
+ <parameters>
+ <parameter name="format" transfer-ownership="none">
+ <type name="Format" c:type="GstFormat*"/>
+ </parameter>
+ <parameter name="duration" direction="out" transfer-ownership="full">
+ <type name="int64" c:type="gint64*"/>
+ </parameter>
+ </parameters>
+ </method>
+ <method name="parse_async_start"
+ c:identifier="gst_message_parse_async_start"
+ doc="Extract the new_base_time from the async_start message.
+MT safe."
+ version="0.10.13">
+ <return-value transfer-ownership="none">
+ <type name="none" c:type="void"/>
+ </return-value>
+ <parameters>
+ <parameter name="new_base_time"
+ direction="out"
+ transfer-ownership="full">
+ <type name="boolean" c:type="gboolean*"/>
+ </parameter>
+ </parameters>
+ </method>
+ <method name="parse_structure_change"
+ c:identifier="gst_message_parse_structure_change"
+ doc="completed
+Extracts the change type and completion status from the GstMessage.
+MT safe."
+ version="0.10.22">
+ <return-value transfer-ownership="none">
+ <type name="none" c:type="void"/>
+ </return-value>
+ <parameters>
+ <parameter name="type" transfer-ownership="none">
+ <type name="StructureChangeType" c:type="GstStructureChangeType*"/>
+ </parameter>
+ <parameter name="owner" transfer-ownership="none">
+ <type name="Element" c:type="GstElement**"/>
+ </parameter>
+ <parameter name="busy" direction="out" transfer-ownership="full">
+ <type name="boolean" c:type="gboolean*"/>
+ </parameter>
+ </parameters>
+ </method>
+ <method name="parse_stream_status"
+ c:identifier="gst_message_parse_stream_status"
+ doc="Extracts the stream status type and owner the GstMessage. The returned
+owner remains valid for as long as the reference to @message is valid and
+should thus not be unreffed.
+MT safe."
+ version="0.10.24.">
+ <return-value transfer-ownership="none">
+ <type name="none" c:type="void"/>
+ </return-value>
+ <parameters>
+ <parameter name="type" transfer-ownership="none">
+ <type name="StreamStatusType" c:type="GstStreamStatusType*"/>
+ </parameter>
+ <parameter name="owner" transfer-ownership="none">
+ <type name="Element" c:type="GstElement**"/>
+ </parameter>
+ </parameters>
+ </method>
+ <method name="set_stream_status_object"
+ c:identifier="gst_message_set_stream_status_object"
+ doc="Configures the object handling the streaming thread. This is usually a
+GstTask object but other objects might be added in the future."
+ version="0.10.24">
+ <return-value transfer-ownership="none">
+ <type name="none" c:type="void"/>
+ </return-value>
+ <parameters>
+ <parameter name="object" transfer-ownership="none">
+ <type name="GObject.Value" c:type="GValue*"/>
+ </parameter>
+ </parameters>
+ </method>
+ <method name="get_stream_status_object"
+ c:identifier="gst_message_get_stream_status_object"
+ doc="Extracts the object managing the streaming thread from @message.
+This object is usually of type GstTask but other types can be added in the
+future. The object remains valid as long as @message is valid."
+ version="0.10.24">
+ <return-value transfer-ownership="none">
+ <type name="GObject.Value" c:type="GValue*"/>
+ </return-value>
+ </method>
+ <method name="parse_request_state"
+ c:identifier="gst_message_parse_request_state"
+ doc="Extract the requested state from the request_state message.
+MT safe."
+ version="0.10.23">
+ <return-value transfer-ownership="none">
+ <type name="none" c:type="void"/>
+ </return-value>
+ <parameters>
+ <parameter name="state" transfer-ownership="none">
+ <type name="State" c:type="GstState*"/>
+ </parameter>
+ </parameters>
+ </method>
+ <method name="parse_step_start"
+ c:identifier="gst_message_parse_step_start"
+ doc="Extract the values from step_start message.
+MT safe."
+ version="0.10.24">
+ <return-value transfer-ownership="none">
+ <type name="none" c:type="void"/>
+ </return-value>
+ <parameters>
+ <parameter name="active" direction="out" transfer-ownership="full">
+ <type name="boolean" c:type="gboolean*"/>
+ </parameter>
+ <parameter name="format" transfer-ownership="none">
+ <type name="Format" c:type="GstFormat*"/>
+ </parameter>
+ <parameter name="amount" direction="out" transfer-ownership="full">
+ <type name="uint64" c:type="guint64*"/>
+ </parameter>
+ <parameter name="rate" direction="out" transfer-ownership="full">
+ <type name="double" c:type="gdouble*"/>
+ </parameter>
+ <parameter name="flush" direction="out" transfer-ownership="full">
+ <type name="boolean" c:type="gboolean*"/>
+ </parameter>
+ <parameter name="intermediate"
+ direction="out"
+ transfer-ownership="full">
+ <type name="boolean" c:type="gboolean*"/>
+ </parameter>
+ </parameters>
+ </method>
+ <method name="set_qos_values"
+ c:identifier="gst_message_set_qos_values"
+ doc="to get optimal quality.
+quality level of the element. The default maximum quality is 1000000.
+Set the QoS values that have been calculated/analysed from the QoS data
+MT safe."
+ version="0.10.29">
+ <return-value transfer-ownership="none">
+ <type name="none" c:type="void"/>
+ </return-value>
+ <parameters>
+ <parameter name="jitter" transfer-ownership="none">
+ <type name="int64" c:type="gint64"/>
+ </parameter>
+ <parameter name="proportion" transfer-ownership="none">
+ <type name="double" c:type="gdouble"/>
+ </parameter>
+ <parameter name="quality" transfer-ownership="none">
+ <type name="int" c:type="gint"/>
+ </parameter>
+ </parameters>
+ </method>
+ <method name="set_qos_stats"
+ c:identifier="gst_message_set_qos_stats"
+ doc="filters will use GST_FORMAT_BUFFERS (frames). Audio sinks and audio filters
+will likely use GST_FORMAT_DEFAULT (samples).
+change to READY or a flushing operation.
+or a flushing operation.
+Set the QoS stats representing the history of the current continuous pipeline
+playback period.
+When @format is @GST_FORMAT_UNDEFINED both @dropped and @processed are
+invalid. Values of -1 for either @processed or @dropped mean unknown values.
+MT safe."
+ version="0.10.29">
+ <return-value transfer-ownership="none">
+ <type name="none" c:type="void"/>
+ </return-value>
+ <parameters>
+ <parameter name="format" transfer-ownership="none">
+ <type name="Format" c:type="GstFormat"/>
+ </parameter>
+ <parameter name="processed" transfer-ownership="none">
+ <type name="uint64" c:type="guint64"/>
+ </parameter>
+ <parameter name="dropped" transfer-ownership="none">
+ <type name="uint64" c:type="guint64"/>
+ </parameter>
+ </parameters>
+ </method>
+ <method name="parse_qos"
+ c:identifier="gst_message_parse_qos"
+ doc="Extract the timestamps and live status from the QoS message.
+The returned values give the running_time, stream_time, timestamp and
+duration of the dropped buffer. Values of GST_CLOCK_TIME_NONE mean unknown
+values.
+MT safe."
+ version="0.10.29">
+ <return-value transfer-ownership="none">
+ <type name="none" c:type="void"/>
+ </return-value>
+ <parameters>
+ <parameter name="live" direction="out" transfer-ownership="full">
+ <type name="boolean" c:type="gboolean*"/>
+ </parameter>
+ <parameter name="running_time"
+ direction="out"
+ transfer-ownership="full">
+ <type name="uint64" c:type="guint64*"/>
+ </parameter>
+ <parameter name="stream_time"
+ direction="out"
+ transfer-ownership="full">
+ <type name="uint64" c:type="guint64*"/>
+ </parameter>
+ <parameter name="timestamp"
+ direction="out"
+ transfer-ownership="full">
+ <type name="uint64" c:type="guint64*"/>
+ </parameter>
+ <parameter name="duration" direction="out" transfer-ownership="full">
+ <type name="uint64" c:type="guint64*"/>
+ </parameter>
+ </parameters>
+ </method>
+ <method name="parse_qos_values"
+ c:identifier="gst_message_parse_qos_values"
+ doc="to get optimal quality.
+quality level of the element. The default maximum quality is 1000000.
+Extract the QoS values that have been calculated/analysed from the QoS data
+MT safe."
+ version="0.10.29">
+ <return-value transfer-ownership="none">
+ <type name="none" c:type="void"/>
+ </return-value>
+ <parameters>
+ <parameter name="jitter" direction="out" transfer-ownership="full">
+ <type name="int64" c:type="gint64*"/>
+ </parameter>
+ <parameter name="proportion"
+ direction="out"
+ transfer-ownership="full">
+ <type name="double" c:type="gdouble*"/>
+ </parameter>
+ <parameter name="quality" direction="out" transfer-ownership="full">
+ <type name="int" c:type="gint*"/>
+ </parameter>
+ </parameters>
+ </method>
+ <method name="parse_qos_stats"
+ c:identifier="gst_message_parse_qos_stats"
+ doc="filters will use GST_FORMAT_BUFFERS (frames). Audio sinks and audio filters
+will likely use GST_FORMAT_DEFAULT (samples).
+change to READY or a flushing operation.
+or a flushing operation.
+Extract the QoS stats representing the history of the current continuous
+pipeline playback period.
+When @format is @GST_FORMAT_UNDEFINED both @dropped and @processed are
+invalid. Values of -1 for either @processed or @dropped mean unknown values.
+MT safe."
+ version="0.10.29">
+ <return-value transfer-ownership="none">
+ <type name="none" c:type="void"/>
+ </return-value>
+ <parameters>
+ <parameter name="format" transfer-ownership="none">
+ <type name="Format" c:type="GstFormat*"/>
+ </parameter>
+ <parameter name="processed"
+ direction="out"
+ transfer-ownership="full">
+ <type name="uint64" c:type="guint64*"/>
+ </parameter>
+ <parameter name="dropped" direction="out" transfer-ownership="full">
+ <type name="uint64" c:type="guint64*"/>
+ </parameter>
+ </parameters>
+ </method>
+ <method name="get_structure"
+ c:identifier="gst_message_get_structure"
+ doc="Access the structure of the message.
+owned by the message, which means that you should not free it and
+that the pointer becomes invalid when you free the message.
+MT safe.">
+ <return-value transfer-ownership="none">
+ <type name="Structure" c:type="GstStructure*"/>
+ </return-value>
+ </method>
+ </record>
+ <record name="MessageClass" c:type="GstMessageClass">
+ <field name="mini_object_class" writable="1">
+ <type name="MiniObjectClass" c:type="GstMiniObjectClass"/>
+ </field>
+ <field name="_gst_reserved" writable="1">
+ <array zero-terminated="0" c:type="gpointer" fixed-size="4">
+ <type name="any"/>
+ </array>
+ </field>
+ </record>
+ <bitfield name="MessageType"
+ doc="only receive this message in the PLAYING state and every time it sets a
+pipeline to PLAYING that is in the EOS state. The application can perform a
+flushing seek in the pipeline, which will undo the EOS state again.
+message it should stop playback of the pipeline and not assume that more
+data will be played.
+receives a buffering message in the PLAYING state for a non-live pipeline it
+must PAUSE the pipeline until the buffering completes, when the percentage
+field in the message is 100%. For live pipelines, no action must be
+performed and the buffering percentage can be used to inform the user about
+the progress.
+This message is deprecated.
+a clock. This message is used internally and
+never forwarded to the application.
+unusable. The pipeline will select a new clock on
+the next PLAYING state change. The application
+should set the pipeline to PAUSED and back to
+PLAYING when this message is received.
+message is used internally and never forwarded to the application.
+stops, errors, etc..
+via an application-specific element.
+documentation
+message is used internally and never forwarded to the application.
+message is forwarded to the application after all elements that posted
+can get the new duration with a duration query.
+change. This message is not forwarded to the application but is used
+change. The application will only receive this message from the toplevel
+change state. This message is a suggestion to the application which can
+The different message types that are available."
+ c:type="GstMessageType">
+ <member name="unknown" value="0" c:identifier="GST_MESSAGE_UNKNOWN"/>
+ <member name="eos" value="1" c:identifier="GST_MESSAGE_EOS"/>
+ <member name="error" value="2" c:identifier="GST_MESSAGE_ERROR"/>
+ <member name="warning" value="4" c:identifier="GST_MESSAGE_WARNING"/>
+ <member name="info" value="8" c:identifier="GST_MESSAGE_INFO"/>
+ <member name="tag" value="16" c:identifier="GST_MESSAGE_TAG"/>
+ <member name="buffering"
+ value="32"
+ c:identifier="GST_MESSAGE_BUFFERING"/>
+ <member name="state_changed"
+ value="64"
+ c:identifier="GST_MESSAGE_STATE_CHANGED"/>
+ <member name="state_dirty"
+ value="128"
+ c:identifier="GST_MESSAGE_STATE_DIRTY"/>
+ <member name="step_done"
+ value="256"
+ c:identifier="GST_MESSAGE_STEP_DONE"/>
+ <member name="clock_provide"
+ value="512"
+ c:identifier="GST_MESSAGE_CLOCK_PROVIDE"/>
+ <member name="clock_lost"
+ value="1024"
+ c:identifier="GST_MESSAGE_CLOCK_LOST"/>
+ <member name="new_clock"
+ value="2048"
+ c:identifier="GST_MESSAGE_NEW_CLOCK"/>
+ <member name="structure_change"
+ value="4096"
+ c:identifier="GST_MESSAGE_STRUCTURE_CHANGE"/>
+ <member name="stream_status"
+ value="8192"
+ c:identifier="GST_MESSAGE_STREAM_STATUS"/>
+ <member name="application"
+ value="16384"
+ c:identifier="GST_MESSAGE_APPLICATION"/>
+ <member name="element" value="32768" c:identifier="GST_MESSAGE_ELEMENT"/>
+ <member name="segment_start"
+ value="65536"
+ c:identifier="GST_MESSAGE_SEGMENT_START"/>
+ <member name="segment_done"
+ value="131072"
+ c:identifier="GST_MESSAGE_SEGMENT_DONE"/>
+ <member name="duration"
+ value="262144"
+ c:identifier="GST_MESSAGE_DURATION"/>
+ <member name="latency"
+ value="524288"
+ c:identifier="GST_MESSAGE_LATENCY"/>
+ <member name="async_start"
+ value="1048576"
+ c:identifier="GST_MESSAGE_ASYNC_START"/>
+ <member name="async_done"
+ value="2097152"
+ c:identifier="GST_MESSAGE_ASYNC_DONE"/>
+ <member name="request_state"
+ value="4194304"
+ c:identifier="GST_MESSAGE_REQUEST_STATE"/>
+ <member name="step_start"
+ value="8388608"
+ c:identifier="GST_MESSAGE_STEP_START"/>
+ <member name="qos" value="16777216" c:identifier="GST_MESSAGE_QOS"/>
+ <member name="any" value="-1" c:identifier="GST_MESSAGE_ANY"/>
+ </bitfield>
+ <record name="MiniObject"
+ c:type="GstMiniObject"
+ doc="Base class for refcounted lightweight objects.">
+ <field name="instance" writable="1">
+ <type name="GObject.TypeInstance" c:type="GTypeInstance"/>
+ </field>
+ <field name="refcount" writable="1">
+ <type name="int" c:type="gint"/>
+ </field>
+ <field name="flags" writable="1">
+ <type name="uint" c:type="guint"/>
+ </field>
+ <field name="_gst_reserved" writable="1">
+ <type name="any" c:type="gpointer"/>
+ </field>
+ <constructor name="new"
+ c:identifier="gst_mini_object_new"
+ doc="Creates a new mini-object of the desired type.
+MT safe">
+ <return-value transfer-ownership="full">
+ <type name="MiniObject" c:type="GstMiniObject*"/>
+ </return-value>
+ <parameters>
+ <parameter name="type" transfer-ownership="none">
+ <type name="GType" c:type="GType"/>
+ </parameter>
+ </parameters>
+ </constructor>
+ <method name="copy"
+ c:identifier="gst_mini_object_copy"
+ doc="Creates a copy of the mini-object.
+MT safe">
+ <return-value transfer-ownership="full">
+ <type name="MiniObject" c:type="GstMiniObject*"/>
+ </return-value>
+ </method>
+ <method name="is_writable"
+ c:identifier="gst_mini_object_is_writable"
+ doc="Checks if a mini-object is writable. A mini-object is writable
+if the reference count is one and the #GST_MINI_OBJECT_FLAG_READONLY
+flag is not set. Modification of a mini-object should only be
+done after verifying that it is writable.
+MT safe">
+ <return-value transfer-ownership="none">
+ <type name="boolean" c:type="gboolean"/>
+ </return-value>
+ </method>
+ <method name="make_writable"
+ c:identifier="gst_mini_object_make_writable"
+ doc="Checks if a mini-object is writable. If not, a writable copy is made and
+returned. This gives away the reference to the original mini object,
+and returns a reference to the new object.
+MT safe">
+ <return-value transfer-ownership="full" doc="that is writable.">
+ <type name="MiniObject" c:type="GstMiniObject*"/>
+ </return-value>
+ </method>
+ <method name="ref"
+ c:identifier="gst_mini_object_ref"
+ doc="Increase the reference count of the mini-object.
+Note that the refcount affects the writeability
+of @mini-object, see gst_mini_object_is_writable(). It is
+important to note that keeping additional references to
+GstMiniObject instances can potentially increase the number
+of memcpy operations in a pipeline, especially if the miniobject
+is a #GstBuffer.">
+ <return-value transfer-ownership="full">
+ <type name="MiniObject" c:type="GstMiniObject*"/>
+ </return-value>
+ </method>
+ <method name="unref"
+ c:identifier="gst_mini_object_unref"
+ doc="Decreases the reference count of the mini-object, possibly freeing
+the mini-object.">
+ <return-value transfer-ownership="none">
+ <type name="none" c:type="void"/>
+ </return-value>
+ </method>
+ <method name="replace"
+ c:identifier="gst_mini_object_replace"
+ doc="Modifies a pointer to point to a new mini-object. The modification
+is done atomically, and the reference counts are updated correctly.
+Either @newdata and the value pointed to by @olddata may be NULL.">
+ <return-value transfer-ownership="none">
+ <type name="none" c:type="void"/>
+ </return-value>
+ <parameters>
+ <parameter name="newdata" transfer-ownership="none">
+ <type name="MiniObject" c:type="GstMiniObject*"/>
+ </parameter>
+ </parameters>
+ </method>
+ </record>
+ <record name="MiniObjectClass" c:type="GstMiniObjectClass">
+ <field name="type_class" writable="1">
+ <type name="GObject.TypeClass" c:type="GTypeClass"/>
+ </field>
+ <field name="copy" writable="1">
+ <type name="MiniObjectCopyFunction"
+ c:type="GstMiniObjectCopyFunction"/>
+ </field>
+ <field name="finalize" writable="1">
+ <type name="MiniObjectFinalizeFunction"
+ c:type="GstMiniObjectFinalizeFunction"/>
+ </field>
+ <field name="_gst_reserved" writable="1">
+ <type name="any" c:type="gpointer"/>
+ </field>
+ </record>
+ <callback name="MiniObjectCopyFunction"
+ c:type="GstMiniObjectCopyFunction"
+ doc="Virtual function prototype for methods to create copies of instances.">
+ <return-value transfer-ownership="full">
+ <type name="MiniObject" c:type="GstMiniObject*"/>
+ </return-value>
+ <parameters>
+ <parameter name="obj" transfer-ownership="none">
+ <type name="MiniObject" c:type="GstMiniObject*"/>
+ </parameter>
+ </parameters>
+ </callback>
+ <callback name="MiniObjectFinalizeFunction"
+ c:type="GstMiniObjectFinalizeFunction"
+ doc="Virtual function prototype for methods to free ressources used by
+mini-objects. Subclasses of the mini object are allowed to revive the
+passed object by doing a gst_mini_object_ref(). If the object is not
+revived after the finalize function, the memory associated with the
+object is freed.">
+ <return-value transfer-ownership="none">
+ <type name="none" c:type="void"/>
+ </return-value>
+ <parameters>
+ <parameter name="obj" transfer-ownership="none">
+ <type name="MiniObject" c:type="GstMiniObject*"/>
+ </parameter>
+ </parameters>
+ </callback>
+ <bitfield name="MiniObjectFlags"
+ doc="Flags for the padtemplate"
+ c:type="GstMiniObjectFlags">
+ <member name="readonly"
+ value="1"
+ c:identifier="GST_MINI_OBJECT_FLAG_READONLY"/>
+ <member name="last" value="16" c:identifier="GST_MINI_OBJECT_FLAG_LAST"/>
+ </bitfield>
+ <constant name="NSECOND" value="0">
+ <type name="int"/>
+ </constant>
+ <class name="Object"
+ c:type="GstObject"
+ doc="GStreamer base object class."
+ parent="GObject.Object"
+ abstract="1"
+ glib:type-name="GstObject"
+ glib:get-type="gst_object_get_type"
+ glib:type-struct="ObjectClass">
+ <function name="default_deep_notify"
+ c:identifier="gst_object_default_deep_notify"
+ doc="NULL to show all changes.
+A default deep_notify signal callback for an object. The user data
+should contain a pointer to an array of strings that should be excluded
+from the notify. The default handler will print the new value of the property
+using g_print.
+MT safe. This function grabs and releases @object's LOCK for getting its
+path string.">
+ <return-value transfer-ownership="none">
+ <type name="none" c:type="void"/>
+ </return-value>
+ <parameters>
+ <parameter name="object" transfer-ownership="none">
+ <type name="GObject.Object" c:type="GObject*"/>
+ </parameter>
+ <parameter name="orig" transfer-ownership="none">
+ <type name="Object" c:type="GstObject*"/>
+ </parameter>
+ <parameter name="pspec" transfer-ownership="none">
+ <type name="GObject.ParamSpec" c:type="GParamSpec*"/>
+ </parameter>
+ <parameter name="excluded_props" transfer-ownership="none">
+ <array c:type="gchar**">
+ <type name="utf8"/>
+ </array>
+ </parameter>
+ </parameters>
+ </function>
+ <function name="ref"
+ c:identifier="gst_object_ref"
+ doc="Increments the reference count on @object. This function
+does not take the lock on @object because it relies on
+atomic refcounting.
+This object returns the input parameter to ease writing
+constructs like :
+result = gst_object_ref (object->parent);">
+ <return-value transfer-ownership="none">
+ <type name="any" c:type="gpointer"/>
+ </return-value>
+ <parameters>
+ <parameter name="object" transfer-ownership="none">
+ <type name="any" c:type="gpointer"/>
+ </parameter>
+ </parameters>
+ </function>
+ <function name="unref"
+ c:identifier="gst_object_unref"
+ doc="Decrements the reference count on @object. If reference count hits
+zero, destroy @object. This function does not take the lock
+on @object as it relies on atomic refcounting.
+The unref method should never be called with the LOCK held since
+this might deadlock the dispose function.">
+ <return-value transfer-ownership="none">
+ <type name="none" c:type="void"/>
+ </return-value>
+ <parameters>
+ <parameter name="object" transfer-ownership="none">
+ <type name="any" c:type="gpointer"/>
+ </parameter>
+ </parameters>
+ </function>
+ <function name="ref_sink"
+ c:identifier="gst_object_ref_sink"
+ doc="Increase the reference count of @object, and possibly remove the floating
+reference, if @object has a floating reference.
+In other words, if the object is floating, then this call "assumes ownership"
+of the floating reference, converting it to a normal reference by clearing
+the floating flag while leaving the reference count unchanged. If the object
+is not floating, then this call adds a new normal reference increasing the
+reference count by one.
+MT safe. This function grabs and releases @object lock."
+ version="0.10.24">
+ <return-value transfer-ownership="none">
+ <type name="none" c:type="void"/>
+ </return-value>
+ <parameters>
+ <parameter name="object" transfer-ownership="none">
+ <type name="any" c:type="gpointer"/>
+ </parameter>
+ </parameters>
+ </function>
+ <function name="sink"
+ c:identifier="gst_object_sink"
+ doc="If @object was floating, the #GST_OBJECT_FLOATING flag is removed
+and @object is unreffed. When @object was not floating,
+this function does nothing.
+Any newly created object has a refcount of 1 and is floating.
+This function should be used when creating a new object to
+symbolically 'take ownership' of @object. This done by first doing a
+gst_object_ref() to keep a reference to @object and then gst_object_sink()
+to remove and unref any floating references to @object.
+Use gst_object_set_parent() to have this done for you.
+MT safe. This function grabs and releases @object lock.">
+ <return-value transfer-ownership="none">
+ <type name="none" c:type="void"/>
+ </return-value>
+ <parameters>
+ <parameter name="object" transfer-ownership="none">
+ <type name="any" c:type="gpointer"/>
+ </parameter>
+ </parameters>
+ </function>
+ <function name="check_uniqueness"
+ c:identifier="gst_object_check_uniqueness"
+ doc="Checks to see if there is any object named @name in @list. This function
+does not do any locking of any kind. You might want to protect the
+provided list with the lock of the owner of the list. This function
+will lock each #GstObject in the list to compare the name, so be
+carefull when passing a list with a locked object.
+FALSE if it does.
+MT safe. Grabs and releases the LOCK of each object in the list.">
+ <return-value transfer-ownership="none">
+ <type name="boolean" c:type="gboolean"/>
+ </return-value>
+ <parameters>
+ <parameter name="list" transfer-ownership="none">
+ <type name="GLib.List" c:type="GList*"/>
+ </parameter>
+ <parameter name="name" transfer-ownership="none">
+ <type name="utf8" c:type="gchar*"/>
+ </parameter>
+ </parameters>
+ </function>
+ <virtual-method name="save_thyself" invoker="save_thyself">
+ <return-value transfer-ownership="full">
+ <type name="libxml2.NodePtr" c:type="xmlNodePtr"/>
+ </return-value>
+ <parameters>
+ <parameter name="parent" transfer-ownership="none">
+ <type name="libxml2.NodePtr" c:type="xmlNodePtr"/>
+ </parameter>
+ </parameters>
+ </virtual-method>
+ <virtual-method name="restore_thyself" invoker="restore_thyself">
+ <return-value transfer-ownership="none">
+ <type name="none" c:type="void"/>
+ </return-value>
+ <parameters>
+ <parameter name="self" transfer-ownership="none">
+ <type name="libxml2.NodePtr" c:type="xmlNodePtr"/>
+ </parameter>
+ </parameters>
+ </virtual-method>
+ <method name="set_name"
+ c:identifier="gst_object_set_name"
+ doc="Sets the name of @object, or gives @object a guaranteed unique
+name (if @name is NULL).
+This function makes a copy of the provided name, so the caller
+retains ownership of the name it sent.
+a parent cannot be renamed, this function returns FALSE in those
+cases.
+MT safe. This function grabs and releases @object's LOCK.">
+ <return-value transfer-ownership="none">
+ <type name="boolean" c:type="gboolean"/>
+ </return-value>
+ <parameters>
+ <parameter name="name" transfer-ownership="none">
+ <type name="utf8" c:type="gchar*"/>
+ </parameter>
+ </parameters>
+ </method>
+ <method name="get_name"
+ c:identifier="gst_object_get_name"
+ doc="Returns a copy of the name of @object.
+Caller should g_free() the return value after usage.
+For a nameless object, this returns NULL, which you can safely g_free()
+as well.
+MT safe. This function grabs and releases @object's LOCK.">
+ <return-value transfer-ownership="full" doc="after usage.">
+ <type name="utf8" c:type="gchar*"/>
+ </return-value>
+ </method>
+ <method name="set_name_prefix"
+ c:identifier="gst_object_set_name_prefix"
+ doc="Sets the name prefix of @object to @name_prefix.
+This function makes a copy of the provided name prefix, so the caller
+retains ownership of the name prefix it sent.
+MT safe. This function grabs and releases @object's LOCK.">
+ <return-value transfer-ownership="none">
+ <type name="none" c:type="void"/>
+ </return-value>
+ <parameters>
+ <parameter name="name_prefix" transfer-ownership="none">
+ <type name="utf8" c:type="gchar*"/>
+ </parameter>
+ </parameters>
+ </method>
+ <method name="get_name_prefix"
+ c:identifier="gst_object_get_name_prefix"
+ doc="Returns a copy of the name prefix of @object.
+Caller should g_free() the return value after usage.
+For a prefixless object, this returns NULL, which you can safely g_free()
+as well.
+MT safe. This function grabs and releases @object's LOCK.">
+ <return-value transfer-ownership="full" doc="after usage.">
+ <type name="utf8" c:type="gchar*"/>
+ </return-value>
+ </method>
+ <method name="set_parent"
+ c:identifier="gst_object_set_parent"
+ doc="Sets the parent of @object to @parent. The object's reference count will
+be incremented, and any floating reference will be removed (see gst_object_sink()).
+This function causes the parent-set signal to be emitted when the parent
+was successfully set.
+already had a parent or @object and @parent are the same.
+MT safe. Grabs and releases @object's LOCK.">
+ <return-value transfer-ownership="none">
+ <type name="boolean" c:type="gboolean"/>
+ </return-value>
+ <parameters>
+ <parameter name="parent" transfer-ownership="none">
+ <type name="Object" c:type="GstObject*"/>
+ </parameter>
+ </parameters>
+ </method>
+ <method name="get_parent"
+ c:identifier="gst_object_get_parent"
+ doc="Returns the parent of @object. This function increases the refcount
+of the parent object so you should gst_object_unref() it after usage.
+parent. unref after usage.
+MT safe. Grabs and releases @object's LOCK.">
+ <return-value transfer-ownership="full">
+ <type name="Object" c:type="GstObject*"/>
+ </return-value>
+ </method>
+ <method name="unparent"
+ c:identifier="gst_object_unparent"
+ doc="Clear the parent of @object, removing the associated reference.
+This function decreases the refcount of @object.
+MT safe. Grabs and releases @object's lock.">
+ <return-value transfer-ownership="none">
+ <type name="none" c:type="void"/>
+ </return-value>
+ </method>
+ <method name="has_ancestor"
+ c:identifier="gst_object_has_ancestor"
+ doc="Check if @object has an ancestor @ancestor somewhere up in
+the hierarchy.
+MT safe. Grabs and releases @object's locks.">
+ <return-value transfer-ownership="none">
+ <type name="boolean" c:type="gboolean"/>
+ </return-value>
+ <parameters>
+ <parameter name="ancestor" transfer-ownership="none">
+ <type name="Object" c:type="GstObject*"/>
+ </parameter>
+ </parameters>
+ </method>
+ <method name="replace"
+ c:identifier="gst_object_replace"
+ doc="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.">
+ <return-value transfer-ownership="none">
+ <type name="none" c:type="void"/>
+ </return-value>
+ <parameters>
+ <parameter name="newobj" transfer-ownership="none">
+ <type name="Object" c:type="GstObject*"/>
+ </parameter>
+ </parameters>
+ </method>
+ <method name="get_path_string"
+ c:identifier="gst_object_get_path_string"
+ doc="Generates a string describing the path of @object in
+the object hierarchy. Only useful (or used) for debugging.
+g_free() the string after usage.
+MT safe. Grabs and releases the #GstObject's LOCK for all objects
+in the hierarchy.">
+ <return-value transfer-ownership="full">
+ <type name="utf8" c:type="gchar*"/>
+ </return-value>
+ </method>
+ <method name="save_thyself"
+ c:identifier="gst_object_save_thyself"
+ doc="Saves @object into the parent XML node.">
+ <return-value transfer-ownership="full">
+ <type name="libxml2.NodePtr" c:type="xmlNodePtr"/>
+ </return-value>
+ <parameters>
+ <parameter name="parent" transfer-ownership="none">
+ <type name="libxml2.NodePtr" c:type="xmlNodePtr"/>
+ </parameter>
+ </parameters>
+ </method>
+ <method name="restore_thyself"
+ c:identifier="gst_object_restore_thyself"
+ doc="Restores @object with the data from the parent XML node.">
+ <return-value transfer-ownership="none">
+ <type name="none" c:type="void"/>
+ </return-value>
+ <parameters>
+ <parameter name="self" transfer-ownership="none">
+ <type name="libxml2.NodePtr" c:type="xmlNodePtr"/>
+ </parameter>
+ </parameters>
+ </method>
+ <method name="default_error"
+ c:identifier="gst_object_default_error"
+ doc="A default error function.
+The default handler will simply print the error string using g_print.">
+ <return-value transfer-ownership="none">
+ <type name="none" c:type="void"/>
+ </return-value>
+ <parameters>
+ <parameter name="error" transfer-ownership="none">
+ <type name="GLib.Error" c:type="GError*"/>
+ </parameter>
+ <parameter name="debug" transfer-ownership="full">
+ <type name="utf8" c:type="gchar*"/>
+ </parameter>
+ </parameters>
+ </method>
+ <property name="name" writable="1" construct="1">
+ <type name="utf8" c:type="gchararray"/>
+ </property>
+ <field name="object">
+ <type name="GObject.Object" c:type="GObject"/>
+ </field>
+ <field name="refcount">
+ <type name="int" c:type="gint"/>
+ </field>
+ <field name="lock">
+ <type name="GLib.Mutex" c:type="GMutex*"/>
+ </field>
+ <field name="name">
+ <type name="utf8" c:type="gchar*"/>
+ </field>
+ <field name="name_prefix">
+ <type name="utf8" c:type="gchar*"/>
+ </field>
+ <field name="parent">
+ <type name="Object" c:type="GstObject*"/>
+ </field>
+ <field name="flags">
+ <type name="uint32" c:type="guint32"/>
+ </field>
+ <field name="_gst_reserved">
+ <type name="any" c:type="gpointer"/>
+ </field>
+ <glib:signal name="deep-notify"
+ doc="The deep notify signal is used to be notified of property changes. It is
+typically attached to the toplevel bin to receive notifications from all
+the elements contained in that bin.">
+ <return-value transfer-ownership="full">
+ <type name="none" c:type="void"/>
+ </return-value>
+ <parameters>
+ <parameter name="prop_object" transfer-ownership="none">
+ <type name="Object" c:type="GstObject"/>
+ </parameter>
+ <parameter name="prop" transfer-ownership="none">
+ <type name="GObject.ParamSpec" c:type="GParam"/>
+ </parameter>
+ </parameters>
+ </glib:signal>
+ <glib:signal name="object-saved"
+ doc="Trigered whenever a new object is saved to XML. You can connect to this
+signal to insert custom XML tags into the core XML.">
+ <return-value transfer-ownership="full">
+ <type name="none" c:type="void"/>
+ </return-value>
+ <parameters>
+ <parameter name="xml_node" transfer-ownership="none">
+ <type name="any" c:type="gpointer"/>
+ </parameter>
+ </parameters>
+ </glib:signal>
+ <glib:signal name="parent-set"
+ doc="Emitted when the parent of an object is set.">
+ <return-value transfer-ownership="full">
+ <type name="none" c:type="void"/>
+ </return-value>
+ <parameters>
+ <parameter name="parent" transfer-ownership="none">
+ <type name="Object" c:type="GstObject"/>
+ </parameter>
+ </parameters>
+ </glib:signal>
+ <glib:signal name="parent-unset"
+ doc="Emitted when the parent of an object is unset.">
+ <return-value transfer-ownership="full">
+ <type name="none" c:type="void"/>
+ </return-value>
+ <parameters>
+ <parameter name="parent" transfer-ownership="none">
+ <type name="Object" c:type="GstObject"/>
+ </parameter>
+ </parameters>
+ </glib:signal>
+ </class>
+ <record name="ObjectClass"
+ c:type="GstObjectClass"
+ glib:is-gtype-struct-for="Object"
+ doc="GStreamer base object class.">
+ <field name="parent_class">
+ <type name="GObject.ObjectClass" c:type="GObjectClass"/>
+ </field>
+ <field name="path_string_separator">
+ <type name="utf8" c:type="gchar*"/>
+ </field>
+ <field name="signal_object">
+ <type name="GObject.Object" c:type="GObject*"/>
+ </field>
+ <field name="lock">
+ <type name="GLib.StaticRecMutex" c:type="GStaticRecMutex*"/>
+ </field>
+ <field name="parent_set">
+ <callback name="parent_set" c:type="parent_set">
+ <return-value transfer-ownership="none">
+ <type name="none" c:type="void"/>
+ </return-value>
+ <parameters>
+ <parameter name="object" transfer-ownership="none">
+ <type name="Object" c:type="GstObject*"/>
+ </parameter>
+ <parameter name="parent" transfer-ownership="none">
+ <type name="Object" c:type="GstObject*"/>
+ </parameter>
+ </parameters>
+ </callback>
+ </field>
+ <field name="parent_unset">
+ <callback name="parent_unset" c:type="parent_unset">
+ <return-value transfer-ownership="none">
+ <type name="none" c:type="void"/>
+ </return-value>
+ <parameters>
+ <parameter name="object" transfer-ownership="none">
+ <type name="Object" c:type="GstObject*"/>
+ </parameter>
+ <parameter name="parent" transfer-ownership="none">
+ <type name="Object" c:type="GstObject*"/>
+ </parameter>
+ </parameters>
+ </callback>
+ </field>
+ <field name="object_saved">
+ <callback name="object_saved" c:type="object_saved">
+ <return-value transfer-ownership="none">
+ <type name="none" c:type="void"/>
+ </return-value>
+ <parameters>
+ <parameter name="object" transfer-ownership="none">
+ <type name="Object" c:type="GstObject*"/>
+ </parameter>
+ <parameter name="parent" transfer-ownership="none">
+ <type name="libxml2.NodePtr" c:type="xmlNodePtr"/>
+ </parameter>
+ </parameters>
+ </callback>
+ </field>
+ <field name="deep_notify">
+ <callback name="deep_notify" c:type="deep_notify">
+ <return-value transfer-ownership="none">
+ <type name="none" c:type="void"/>
+ </return-value>
+ <parameters>
+ <parameter name="object" transfer-ownership="none">
+ <type name="Object" c:type="GstObject*"/>
+ </parameter>
+ <parameter name="orig" transfer-ownership="none">
+ <type name="Object" c:type="GstObject*"/>
+ </parameter>
+ <parameter name="pspec" transfer-ownership="none">
+ <type name="GObject.ParamSpec" c:type="GParamSpec*"/>
+ </parameter>
+ </parameters>
+ </callback>
+ </field>
+ <field name="save_thyself">
+ <callback name="save_thyself" c:type="save_thyself">
+ <return-value transfer-ownership="full">
+ <type name="libxml2.NodePtr" c:type="xmlNodePtr"/>
+ </return-value>
+ <parameters>
+ <parameter name="object" transfer-ownership="none">
+ <type name="Object" c:type="GstObject*"/>
+ </parameter>
+ <parameter name="parent" transfer-ownership="none">
+ <type name="libxml2.NodePtr" c:type="xmlNodePtr"/>
+ </parameter>
+ </parameters>
+ </callback>
+ </field>
+ <field name="restore_thyself">
+ <callback name="restore_thyself" c:type="restore_thyself">
+ <return-value transfer-ownership="none">
+ <type name="none" c:type="void"/>
+ </return-value>
+ <parameters>
+ <parameter name="object" transfer-ownership="none">
+ <type name="Object" c:type="GstObject*"/>
+ </parameter>
+ <parameter name="self" transfer-ownership="none">
+ <type name="libxml2.NodePtr" c:type="xmlNodePtr"/>
+ </parameter>
+ </parameters>
+ </callback>
+ </field>
+ <field name="_gst_reserved">
+ <array zero-terminated="0" c:type="gpointer" fixed-size="4">
+ <type name="any"/>
+ </array>
+ </field>
+ </record>
+ <bitfield name="ObjectFlags"
+ doc="not assigned to a bin)
+The standard flags that an gstobject may have."
+ c:type="GstObjectFlags">
+ <member name="disposing" value="1" c:identifier="GST_OBJECT_DISPOSING"/>
+ <member name="floating" value="2" c:identifier="GST_OBJECT_FLOATING"/>
+ <member name="flag_last" value="16" c:identifier="GST_OBJECT_FLAG_LAST"/>
+ </bitfield>
+ <constant name="PARAM_CONTROLLABLE" value="2">
+ <type name="int"/>
+ </constant>
+ <constant name="PARAM_MUTABLE_PAUSED" value="8">
+ <type name="int"/>
+ </constant>
+ <constant name="PARAM_MUTABLE_PLAYING" value="16">
+ <type name="int"/>
+ </constant>
+ <constant name="PARAM_MUTABLE_READY" value="4">
+ <type name="int"/>
+ </constant>
+ <constant name="PARAM_USER_SHIFT" value="256">
+ <type name="int"/>
+ </constant>
+ <class name="Pad"
+ c:type="GstPad"
+ doc="the pad.
+the data used in streaming.
+The #GstPad structure. Use the functions to update the variables."
+ parent="Object"
+ glib:type-name="GstPad"
+ glib:get-type="gst_pad_get_type"
+ glib:type-struct="PadClass">
+ <constructor name="new"
+ c:identifier="gst_pad_new"
+ doc="Creates a new pad with the given name in the given direction.
+If name is NULL, a guaranteed unique name (across all pads)
+will be assigned.
+This function makes a copy of the name so you can safely free the name.
+MT safe.">
+ <return-value transfer-ownership="full">
+ <type name="Pad" c:type="GstPad*"/>
+ </return-value>
+ <parameters>
+ <parameter name="name" transfer-ownership="none">
+ <type name="utf8" c:type="gchar*"/>
+ </parameter>
+ <parameter name="direction" transfer-ownership="none">
+ <type name="PadDirection" c:type="GstPadDirection"/>
+ </parameter>
+ </parameters>
+ </constructor>
+ <constructor name="new_from_template"
+ c:identifier="gst_pad_new_from_template"
+ doc="Creates a new pad with the given name from the given template.
+If name is NULL, a guaranteed unique name (across all pads)
+will be assigned.
+This function makes a copy of the name so you can safely free the name.">
+ <return-value transfer-ownership="full">
+ <type name="Pad" c:type="GstPad*"/>
+ </return-value>
+ <parameters>
+ <parameter name="templ" transfer-ownership="none">
+ <type name="PadTemplate" c:type="GstPadTemplate*"/>
+ </parameter>
+ <parameter name="name" transfer-ownership="none">
+ <type name="utf8" c:type="gchar*"/>
+ </parameter>
+ </parameters>
+ </constructor>
+ <constructor name="new_from_static_template"
+ c:identifier="gst_pad_new_from_static_template"
+ doc="Creates a new pad with the given name from the given static template.
+If name is NULL, a guaranteed unique name (across all pads)
+will be assigned.
+This function makes a copy of the name so you can safely free the name.">
+ <return-value transfer-ownership="full">
+ <type name="Pad" c:type="GstPad*"/>
+ </return-value>
+ <parameters>
+ <parameter name="templ" transfer-ownership="none">
+ <type name="StaticPadTemplate" c:type="GstStaticPadTemplate*"/>
+ </parameter>
+ <parameter name="name" transfer-ownership="none">
+ <type name="utf8" c:type="gchar*"/>
+ </parameter>
+ </parameters>
+ </constructor>
+ <function name="load_and_link"
+ c:identifier="gst_pad_load_and_link"
+ doc="Reads the pad definition from the XML node and links the given pad
+in the element to a pad of an element up in the hierarchy.">
+ <return-value transfer-ownership="none">
+ <type name="none" c:type="void"/>
+ </return-value>
+ <parameters>
+ <parameter name="self" transfer-ownership="none">
+ <type name="libxml2.NodePtr" c:type="xmlNodePtr"/>
+ </parameter>
+ <parameter name="parent" transfer-ownership="none">
+ <type name="Object" c:type="GstObject*"/>
+ </parameter>
+ </parameters>
+ </function>
+ <method name="get_direction"
+ c:identifier="gst_pad_get_direction"
+ doc="Gets the direction of the pad. The direction of the pad is
+decided at construction time so this function does not take
+the LOCK.
+MT safe.">
+ <return-value transfer-ownership="full">
+ <type name="PadDirection" c:type="GstPadDirection"/>
+ </return-value>
+ </method>
+ <method name="set_active"
+ c:identifier="gst_pad_set_active"
+ doc="Activates or deactivates the given pad.
+Normally called from within core state change functions.
+If @active, makes sure the pad is active. If it is already active, either in
+push or pull mode, just return. Otherwise dispatches to the pad's activate
+function to perform the actual activation.
+If not @active, checks the pad's current mode and calls
+gst_pad_activate_push() or gst_pad_activate_pull(), as appropriate, with a
+FALSE argument.
+MT safe.">
+ <return-value transfer-ownership="none">
+ <type name="boolean" c:type="gboolean"/>
+ </return-value>
+ <parameters>
+ <parameter name="active" transfer-ownership="none">
+ <type name="boolean" c:type="gboolean"/>
+ </parameter>
+ </parameters>
+ </method>
+ <method name="is_active"
+ c:identifier="gst_pad_is_active"
+ doc="Query if a pad is active
+MT safe.">
+ <return-value transfer-ownership="none">
+ <type name="boolean" c:type="gboolean"/>
+ </return-value>
+ </method>
+ <method name="activate_pull"
+ c:identifier="gst_pad_activate_pull"
+ doc="Activates or deactivates the given pad in pull mode via dispatching to the
+pad's activatepullfunc. For use from within pad activation functions only.
+When called on sink pads, will first proxy the call to the peer pad, which
+is expected to activate its internally linked pads from within its
+activate_pull function.
+If you don't know what this is, you probably don't want to call it.
+MT safe.">
+ <return-value transfer-ownership="none">
+ <type name="boolean" c:type="gboolean"/>
+ </return-value>
+ <parameters>
+ <parameter name="active" transfer-ownership="none">
+ <type name="boolean" c:type="gboolean"/>
+ </parameter>
+ </parameters>
+ </method>
+ <method name="activate_push"
+ c:identifier="gst_pad_activate_push"
+ doc="Activates or deactivates the given pad in push mode via dispatching to the
+pad's activatepushfunc. For use from within pad activation functions only.
+If you don't know what this is, you probably don't want to call it.
+MT safe.">
+ <return-value transfer-ownership="none">
+ <type name="boolean" c:type="gboolean"/>
+ </return-value>
+ <parameters>
+ <parameter name="active" transfer-ownership="none">
+ <type name="boolean" c:type="gboolean"/>
+ </parameter>
+ </parameters>
+ </method>
+ <method name="set_blocked"
+ c:identifier="gst_pad_set_blocked"
+ doc="Blocks or unblocks the dataflow on a pad. This function is
+a shortcut for gst_pad_set_blocked_async() with a NULL
+callback.
+wrong parameters were passed or the pad was already in the requested state.
+MT safe.">
+ <return-value transfer-ownership="none">
+ <type name="boolean" c:type="gboolean"/>
+ </return-value>
+ <parameters>
+ <parameter name="blocked" transfer-ownership="none">
+ <type name="boolean" c:type="gboolean"/>
+ </parameter>
+ </parameters>
+ </method>
+ <method name="set_blocked_async"
+ c:identifier="gst_pad_set_blocked_async"
+ doc="operation succeeds
+Blocks or unblocks the dataflow on a pad. The provided callback
+is called when the operation succeeds; this happens right before the next
+attempt at pushing a buffer on the pad.
+This can take a while as the pad can only become blocked when real dataflow
+is happening.
+When the pipeline is stalled, for example in PAUSED, this can
+take an indeterminate amount of time.
+You can pass NULL as the callback to make this call block. Be careful with
+this blocking call as it might not return for reasons stated above.
+wrong parameters were passed or the pad was already in the requested state.
+MT safe.">
+ <return-value transfer-ownership="none">
+ <type name="boolean" c:type="gboolean"/>
+ </return-value>
+ <parameters>
+ <parameter name="blocked" transfer-ownership="none">
+ <type name="boolean" c:type="gboolean"/>
+ </parameter>
+ <parameter name="callback"
+ transfer-ownership="none"
+ scope="call"
+ closure="3">
+ <type name="PadBlockCallback" c:type="GstPadBlockCallback"/>
+ </parameter>
+ <parameter name="user_data" transfer-ownership="none">
+ <type name="any" c:type="gpointer"/>
+ </parameter>
+ </parameters>
+ </method>
+ <method name="set_blocked_async_full"
+ c:identifier="gst_pad_set_blocked_async_full"
+ doc="operation succeeds
+Blocks or unblocks the dataflow on a pad. The provided callback
+is called when the operation succeeds; this happens right before the next
+attempt at pushing a buffer on the pad.
+This can take a while as the pad can only become blocked when real dataflow
+is happening.
+When the pipeline is stalled, for example in PAUSED, this can
+take an indeterminate amount of time.
+You can pass NULL as the callback to make this call block. Be careful with
+this blocking call as it might not return for reasons stated above.
+wrong parameters were passed or the pad was already in the requested state.
+MT safe."
+ version="0.10.23">
+ <return-value transfer-ownership="none">
+ <type name="boolean" c:type="gboolean"/>
+ </return-value>
+ <parameters>
+ <parameter name="blocked" transfer-ownership="none">
+ <type name="boolean" c:type="gboolean"/>
+ </parameter>
+ <parameter name="callback"
+ transfer-ownership="none"
+ scope="notified"
+ closure="3"
+ destroy="4">
+ <type name="PadBlockCallback" c:type="GstPadBlockCallback"/>
+ </parameter>
+ <parameter name="user_data" transfer-ownership="none">
+ <type name="any" c:type="gpointer"/>
+ </parameter>
+ <parameter name="destroy_data"
+ transfer-ownership="none"
+ scope="call">
+ <type name="GLib.DestroyNotify" c:type="GDestroyNotify"/>
+ </parameter>
+ </parameters>
+ </method>
+ <method name="is_blocked"
+ c:identifier="gst_pad_is_blocked"
+ doc="Checks if the pad is blocked or not. This function returns the
+last requested state of the pad. It is not certain that the pad
+is actually blocking at this point (see gst_pad_is_blocking()).
+MT safe.">
+ <return-value transfer-ownership="none">
+ <type name="boolean" c:type="gboolean"/>
+ </return-value>
+ </method>
+ <method name="is_blocking"
+ c:identifier="gst_pad_is_blocking"
+ doc="Checks if the pad is blocking or not. This is a guaranteed state
+of whether the pad is actually blocking on a #GstBuffer or a #GstEvent.
+MT safe."
+ version="0.10.11">
+ <return-value transfer-ownership="none">
+ <type name="boolean" c:type="gboolean"/>
+ </return-value>
+ </method>
+ <method name="set_element_private"
+ c:identifier="gst_pad_set_element_private"
+ doc="Set the given private data gpointer on the pad.
+This function can only be used by the element that owns the pad.
+No locking is performed in this function.">
+ <return-value transfer-ownership="none">
+ <type name="none" c:type="void"/>
+ </return-value>
+ <parameters>
+ <parameter name="priv" transfer-ownership="none">
+ <type name="any" c:type="gpointer"/>
+ </parameter>
+ </parameters>
+ </method>
+ <method name="get_element_private"
+ c:identifier="gst_pad_get_element_private"
+ doc="Gets the private data of a pad.
+No locking is performed in this function.">
+ <return-value transfer-ownership="none">
+ <type name="any" c:type="gpointer"/>
+ </return-value>
+ </method>
+ <method name="get_pad_template"
+ c:identifier="gst_pad_get_pad_template"
+ doc="Gets the template for @pad.
+if this pad has no template.">
+ <return-value transfer-ownership="full">
+ <type name="PadTemplate" c:type="GstPadTemplate*"/>
+ </return-value>
+ </method>
+ <method name="set_bufferalloc_function"
+ c:identifier="gst_pad_set_bufferalloc_function"
+ doc="Sets the given bufferalloc function for the pad. Note that the
+bufferalloc function can only be set on sinkpads.">
+ <return-value transfer-ownership="none">
+ <type name="none" c:type="void"/>
+ </return-value>
+ <parameters>
+ <parameter name="bufalloc" transfer-ownership="none" scope="call">
+ <type name="PadBufferAllocFunction"
+ c:type="GstPadBufferAllocFunction"/>
+ </parameter>
+ </parameters>
+ </method>
+ <method name="alloc_buffer"
+ c:identifier="gst_pad_alloc_buffer"
+ doc="Allocates a new, empty buffer optimized to push to pad @pad. This
+function only works if @pad is a source pad and has a peer.
+A new, empty #GstBuffer will be put in the @buf argument.
+You need to check the caps of the buffer after performing this
+function and renegotiate to the format if needed. If the caps changed, it is
+possible that the buffer returned in @buf is not of the right size for the
+new format, @buf needs to be unreffed and reallocated if this is the case.
+result code other than #GST_FLOW_OK is an error and @buf should
+not be used.
+An error can occur if the pad is not connected or when the downstream
+peer elements cannot provide an acceptable buffer.
+MT safe.">
+ <return-value transfer-ownership="full">
+ <type name="FlowReturn" c:type="GstFlowReturn"/>
+ </return-value>
+ <parameters>
+ <parameter name="offset" transfer-ownership="none">
+ <type name="uint64" c:type="guint64"/>
+ </parameter>
+ <parameter name="size" transfer-ownership="none">
+ <type name="int" c:type="gint"/>
+ </parameter>
+ <parameter name="caps" transfer-ownership="none">
+ <type name="Caps" c:type="GstCaps*"/>
+ </parameter>
+ <parameter name="buf" transfer-ownership="none">
+ <type name="Buffer" c:type="GstBuffer**"/>
+ </parameter>
+ </parameters>
+ </method>
+ <method name="alloc_buffer_and_set_caps"
+ c:identifier="gst_pad_alloc_buffer_and_set_caps"
+ doc="In addition to the function gst_pad_alloc_buffer(), this function
+automatically calls gst_pad_set_caps() when the caps of the
+newly allocated buffer are different from the @pad caps.
+After a renegotiation, the size of the new buffer returned in @buf could
+be of the wrong size for the new format and must be unreffed an reallocated
+in that case.
+result code other than #GST_FLOW_OK is an error and @buf should
+not be used.
+An error can occur if the pad is not connected or when the downstream
+peer elements cannot provide an acceptable buffer.
+MT safe.">
+ <return-value transfer-ownership="full">
+ <type name="FlowReturn" c:type="GstFlowReturn"/>
+ </return-value>
+ <parameters>
+ <parameter name="offset" transfer-ownership="none">
+ <type name="uint64" c:type="guint64"/>
+ </parameter>
+ <parameter name="size" transfer-ownership="none">
+ <type name="int" c:type="gint"/>
+ </parameter>
+ <parameter name="caps" transfer-ownership="none">
+ <type name="Caps" c:type="GstCaps*"/>
+ </parameter>
+ <parameter name="buf" transfer-ownership="none">
+ <type name="Buffer" c:type="GstBuffer**"/>
+ </parameter>
+ </parameters>
+ </method>
+ <method name="set_activate_function"
+ c:identifier="gst_pad_set_activate_function"
+ doc="Sets the given activate function for @pad. The activate function will
+dispatch to gst_pad_activate_push() or gst_pad_activate_pull() to perform
+the actual activation. Only makes sense to set on sink pads.
+Call this function if your sink pad can start a pull-based task.">
+ <return-value transfer-ownership="none">
+ <type name="none" c:type="void"/>
+ </return-value>
+ <parameters>
+ <parameter name="activate" transfer-ownership="none" scope="call">
+ <type name="PadActivateFunction" c:type="GstPadActivateFunction"/>
+ </parameter>
+ </parameters>
+ </method>
+ <method name="set_activatepull_function"
+ c:identifier="gst_pad_set_activatepull_function"
+ doc="Sets the given activate_pull function for the pad. An activate_pull function
+prepares the element and any upstream connections for pulling. See XXX
+part-activation.txt for details.">
+ <return-value transfer-ownership="none">
+ <type name="none" c:type="void"/>
+ </return-value>
+ <parameters>
+ <parameter name="activatepull"
+ transfer-ownership="none"
+ scope="call">
+ <type name="PadActivateModeFunction"
+ c:type="GstPadActivateModeFunction"/>
+ </parameter>
+ </parameters>
+ </method>
+ <method name="set_activatepush_function"
+ c:identifier="gst_pad_set_activatepush_function"
+ doc="Sets the given activate_push function for the pad. An activate_push function
+prepares the element for pushing. See XXX part-activation.txt for details.">
+ <return-value transfer-ownership="none">
+ <type name="none" c:type="void"/>
+ </return-value>
+ <parameters>
+ <parameter name="activatepush"
+ transfer-ownership="none"
+ scope="call">
+ <type name="PadActivateModeFunction"
+ c:type="GstPadActivateModeFunction"/>
+ </parameter>
+ </parameters>
+ </method>
+ <method name="set_chain_function"
+ c:identifier="gst_pad_set_chain_function"
+ doc="Sets the given chain function for the pad. The chain function is called to
+process a #GstBuffer input buffer. see #GstPadChainFunction for more details.">
+ <return-value transfer-ownership="none">
+ <type name="none" c:type="void"/>
+ </return-value>
+ <parameters>
+ <parameter name="chain" transfer-ownership="none" scope="call">
+ <type name="PadChainFunction" c:type="GstPadChainFunction"/>
+ </parameter>
+ </parameters>
+ </method>
+ <method name="set_chain_list_function"
+ c:identifier="gst_pad_set_chain_list_function"
+ doc="Sets the given chain list function for the pad. The chainlist function is
+called to process a #GstBufferList input buffer list. See
+#GstPadChainListFunction for more details."
+ version="0.10.24">
+ <return-value transfer-ownership="none">
+ <type name="none" c:type="void"/>
+ </return-value>
+ <parameters>
+ <parameter name="chainlist" transfer-ownership="none" scope="call">
+ <type name="PadChainListFunction"
+ c:type="GstPadChainListFunction"/>
+ </parameter>
+ </parameters>
+ </method>
+ <method name="set_getrange_function"
+ c:identifier="gst_pad_set_getrange_function"
+ doc="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.">
+ <return-value transfer-ownership="none">
+ <type name="none" c:type="void"/>
+ </return-value>
+ <parameters>
+ <parameter name="get" transfer-ownership="none" scope="call">
+ <type name="PadGetRangeFunction" c:type="GstPadGetRangeFunction"/>
+ </parameter>
+ </parameters>
+ </method>
+ <method name="set_checkgetrange_function"
+ c:identifier="gst_pad_set_checkgetrange_function"
+ doc="Sets the given checkgetrange function for the pad. Implement this function
+on a pad if you dynamically support getrange based scheduling on the pad.">
+ <return-value transfer-ownership="none">
+ <type name="none" c:type="void"/>
+ </return-value>
+ <parameters>
+ <parameter name="check" transfer-ownership="none" scope="call">
+ <type name="PadCheckGetRangeFunction"
+ c:type="GstPadCheckGetRangeFunction"/>
+ </parameter>
+ </parameters>
+ </method>
+ <method name="set_event_function"
+ c:identifier="gst_pad_set_event_function"
+ doc="Sets the given event handler for the pad.">
+ <return-value transfer-ownership="none">
+ <type name="none" c:type="void"/>
+ </return-value>
+ <parameters>
+ <parameter name="event" transfer-ownership="none" scope="call">
+ <type name="PadEventFunction" c:type="GstPadEventFunction"/>
+ </parameter>
+ </parameters>
+ </method>
+ <method name="set_link_function"
+ c:identifier="gst_pad_set_link_function"
+ doc="Sets the given link function for the pad. It will be called when
+the pad is linked with another pad.
+The return value #GST_PAD_LINK_OK should be used when the connection can be
+made.
+The return value #GST_PAD_LINK_REFUSED should be used when the connection
+cannot be made for some reason.
+If @link is installed on a source pad, it should call the #GstPadLinkFunction
+of the peer sink pad, if present.">
+ <return-value transfer-ownership="none">
+ <type name="none" c:type="void"/>
+ </return-value>
+ <parameters>
+ <parameter name="link" transfer-ownership="none" scope="call">
+ <type name="PadLinkFunction" c:type="GstPadLinkFunction"/>
+ </parameter>
+ </parameters>
+ </method>
+ <method name="set_unlink_function"
+ c:identifier="gst_pad_set_unlink_function"
+ doc="Sets the given unlink function for the pad. It will be called
+when the pad is unlinked.">
+ <return-value transfer-ownership="none">
+ <type name="none" c:type="void"/>
+ </return-value>
+ <parameters>
+ <parameter name="unlink" transfer-ownership="none" scope="call">
+ <type name="PadUnlinkFunction" c:type="GstPadUnlinkFunction"/>
+ </parameter>
+ </parameters>
+ </method>
+ <method name="can_link"
+ c:identifier="gst_pad_can_link"
+ doc="Checks if the source pad and the sink pad are compatible so they can be
+linked.">
+ <return-value transfer-ownership="none">
+ <type name="boolean" c:type="gboolean"/>
+ </return-value>
+ <parameters>
+ <parameter name="sinkpad" transfer-ownership="none">
+ <type name="Pad" c:type="GstPad*"/>
+ </parameter>
+ </parameters>
+ </method>
+ <method name="link"
+ c:identifier="gst_pad_link"
+ doc="Links the source pad and the sink pad.
+what went wrong.
+MT Safe.">
+ <return-value transfer-ownership="full">
+ <type name="PadLinkReturn" c:type="GstPadLinkReturn"/>
+ </return-value>
+ <parameters>
+ <parameter name="sinkpad" transfer-ownership="none">
+ <type name="Pad" c:type="GstPad*"/>
+ </parameter>
+ </parameters>
+ </method>
+ <method name="unlink"
+ c:identifier="gst_pad_unlink"
+ doc="Unlinks the source pad from the sink pad. Will emit the #GstPad::unlinked
+signal on both pads.
+the pads were not linked together.
+MT safe.">
+ <return-value transfer-ownership="none">
+ <type name="boolean" c:type="gboolean"/>
+ </return-value>
+ <parameters>
+ <parameter name="sinkpad" transfer-ownership="none">
+ <type name="Pad" c:type="GstPad*"/>
+ </parameter>
+ </parameters>
+ </method>
+ <method name="is_linked"
+ c:identifier="gst_pad_is_linked"
+ doc="Checks if a @pad is linked to another pad or not.
+MT safe.">
+ <return-value transfer-ownership="none">
+ <type name="boolean" c:type="gboolean"/>
+ </return-value>
+ </method>
+ <method name="get_peer"
+ c:identifier="gst_pad_get_peer"
+ doc="Gets the peer of @pad. This function refs the peer pad so
+you need to unref it after use.
+MT safe.">
+ <return-value transfer-ownership="full">
+ <type name="Pad" c:type="GstPad*"/>
+ </return-value>
+ </method>
+ <method name="set_getcaps_function"
+ c:identifier="gst_pad_set_getcaps_function"
+ doc="Sets the given getcaps function for the pad. @getcaps should return the
+allowable caps for a pad in the context of the element's state, its link to
+other elements, and the devices or files it has opened. These caps must be a
+subset of the pad template caps. In the NULL state with no links, @getcaps
+should ideally return the same caps as the pad template. In rare
+circumstances, an object property can affect the caps returned by @getcaps,
+but this is discouraged.
+You do not need to call this function if @pad's allowed caps are always the
+same as the pad template caps. This can only be true if the padtemplate
+has fixed simple caps.
+For most filters, the caps returned by @getcaps is directly affected by the
+allowed caps on other pads. For demuxers and decoders, the caps returned by
+the srcpad's getcaps function is directly related to the stream data. Again,
+helps with autoplugging.
+Note that the return value from @getcaps is owned by the caller, so the
+caller should unref the caps after usage.">
+ <return-value transfer-ownership="none">
+ <type name="none" c:type="void"/>
+ </return-value>
+ <parameters>
+ <parameter name="getcaps" transfer-ownership="none" scope="call">
+ <type name="PadGetCapsFunction" c:type="GstPadGetCapsFunction"/>
+ </parameter>
+ </parameters>
+ </method>
+ <method name="set_acceptcaps_function"
+ c:identifier="gst_pad_set_acceptcaps_function"
+ doc="Sets the given acceptcaps function for the pad. The acceptcaps function
+will be called to check if the pad can accept the given caps. Setting the
+acceptcaps function to NULL restores the default behaviour of allowing
+any caps that matches the caps from gst_pad_get_caps.">
+ <return-value transfer-ownership="none">
+ <type name="none" c:type="void"/>
+ </return-value>
+ <parameters>
+ <parameter name="acceptcaps" transfer-ownership="none" scope="call">
+ <type name="PadAcceptCapsFunction"
+ c:type="GstPadAcceptCapsFunction"/>
+ </parameter>
+ </parameters>
+ </method>
+ <method name="set_fixatecaps_function"
+ c:identifier="gst_pad_set_fixatecaps_function"
+ doc="Sets the given fixatecaps function for the pad. The fixatecaps function
+will be called whenever the default values for a GstCaps needs to be
+filled in.">
+ <return-value transfer-ownership="none">
+ <type name="none" c:type="void"/>
+ </return-value>
+ <parameters>
+ <parameter name="fixatecaps" transfer-ownership="none" scope="call">
+ <type name="PadFixateCapsFunction"
+ c:type="GstPadFixateCapsFunction"/>
+ </parameter>
+ </parameters>
+ </method>
+ <method name="set_setcaps_function"
+ c:identifier="gst_pad_set_setcaps_function"
+ doc="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.">
+ <return-value transfer-ownership="none">
+ <type name="none" c:type="void"/>
+ </return-value>
+ <parameters>
+ <parameter name="setcaps" transfer-ownership="none" scope="call">
+ <type name="PadSetCapsFunction" c:type="GstPadSetCapsFunction"/>
+ </parameter>
+ </parameters>
+ </method>
+ <method name="get_pad_template_caps"
+ c:identifier="gst_pad_get_pad_template_caps"
+ doc="Gets the capabilities for @pad's template.
+reference on the caps, make a copy (see gst_caps_copy ()).">
+ <return-value transfer-ownership="none">
+ <type name="Caps" c:type="GstCaps*"/>
+ </return-value>
+ </method>
+ <method name="get_caps_reffed"
+ c:identifier="gst_pad_get_caps_reffed"
+ doc="Gets the capabilities this pad can produce or consume. Preferred function if
+one only wants to read or intersect the caps."
+ version="0.10.26">
+ <return-value transfer-ownership="full">
+ <type name="Caps" c:type="GstCaps*"/>
+ </return-value>
+ </method>
+ <method name="get_caps"
+ c:identifier="gst_pad_get_caps"
+ doc="Gets the capabilities this pad can produce or consume.
+Note that this method doesn't necessarily return the caps set by
+gst_pad_set_caps() - use GST_PAD_CAPS() for that instead.
+gst_pad_get_caps returns all possible caps a pad can operate with, using
+the pad's get_caps function;
+this returns the pad template caps if not explicitly set.
+MT safe.">
+ <return-value transfer-ownership="full">
+ <type name="Caps" c:type="GstCaps*"/>
+ </return-value>
+ </method>
+ <method name="fixate_caps"
+ c:identifier="gst_pad_fixate_caps"
+ doc="Fixate a caps on the given pad. Modifies the caps in place, so you should
+make sure that the caps are actually writable (see gst_caps_make_writable()).">
+ <return-value transfer-ownership="none">
+ <type name="none" c:type="void"/>
+ </return-value>
+ <parameters>
+ <parameter name="caps" transfer-ownership="none">
+ <type name="Caps" c:type="GstCaps*"/>
+ </parameter>
+ </parameters>
+ </method>
+ <method name="accept_caps"
+ c:identifier="gst_pad_accept_caps"
+ doc="Check if the given pad accepts the caps.">
+ <return-value transfer-ownership="none">
+ <type name="boolean" c:type="gboolean"/>
+ </return-value>
+ <parameters>
+ <parameter name="caps" transfer-ownership="none">
+ <type name="Caps" c:type="GstCaps*"/>
+ </parameter>
+ </parameters>
+ </method>
+ <method name="set_caps"
+ c:identifier="gst_pad_set_caps"
+ doc="Sets the capabilities of this pad. The caps must be fixed. Any previous
+caps on the pad will be unreffed. This function refs the caps so you should
+unref if as soon as you don't need it anymore.
+It is possible to set NULL caps, which will make the pad unnegotiated
+again.
+or bad parameters were provided to this function.
+MT safe.">
+ <return-value transfer-ownership="none">
+ <type name="boolean" c:type="gboolean"/>
+ </return-value>
+ <parameters>
+ <parameter name="caps" transfer-ownership="none">
+ <type name="Caps" c:type="GstCaps*"/>
+ </parameter>
+ </parameters>
+ </method>
+ <method name="peer_get_caps_reffed"
+ c:identifier="gst_pad_peer_get_caps_reffed"
+ doc="Gets the capabilities of the peer connected to this pad. Preferred function
+if one only wants to read or intersect the caps."
+ version="0.10.26">
+ <return-value transfer-ownership="full">
+ <type name="Caps" c:type="GstCaps*"/>
+ </return-value>
+ </method>
+ <method name="peer_get_caps"
+ c:identifier="gst_pad_peer_get_caps"
+ doc="Gets the capabilities of the peer connected to this pad. Similar to
+gst_pad_get_caps().
+gst_caps_unref() to get rid of it. This function returns %NULL if there is
+no peer pad.">
+ <return-value transfer-ownership="full">
+ <type name="Caps" c:type="GstCaps*"/>
+ </return-value>
+ </method>
+ <method name="peer_accept_caps"
+ c:identifier="gst_pad_peer_accept_caps"
+ doc="Check if the peer of @pad accepts @caps. If @pad has no peer, this function
+returns TRUE.">
+ <return-value transfer-ownership="none">
+ <type name="boolean" c:type="gboolean"/>
+ </return-value>
+ <parameters>
+ <parameter name="caps" transfer-ownership="none">
+ <type name="Caps" c:type="GstCaps*"/>
+ </parameter>
+ </parameters>
+ </method>
+ <method name="get_allowed_caps"
+ c:identifier="gst_pad_get_allowed_caps"
+ doc="Gets the capabilities of the allowed media types that can flow through
+The allowed capabilities is calculated as the intersection of the results of
+calling gst_pad_get_caps() on @pad and its peer. The caller owns a reference
+on the resulting caps.
+longer need it. This function returns NULL when @pad has no peer.
+MT safe.">
+ <return-value transfer-ownership="full">
+ <type name="Caps" c:type="GstCaps*"/>
+ </return-value>
+ </method>
+ <method name="get_negotiated_caps"
+ c:identifier="gst_pad_get_negotiated_caps"
+ doc="Gets the capabilities of the media type that currently flows through @pad
+and its peer.
+This function can be used on both src and sinkpads. Note that srcpads are
+always negotiated before sinkpads so it is possible that the negotiated caps
+on the srcpad do not match the negotiated caps of the peer.
+you no longer need it. This function returns NULL when the @pad has no
+peer or is not negotiated yet.
+MT safe.">
+ <return-value transfer-ownership="full">
+ <type name="Caps" c:type="GstCaps*"/>
+ </return-value>
+ </method>
+ <method name="push"
+ c:identifier="gst_pad_push"
+ doc="Pushes a buffer to the peer of @pad.
+This function will call an installed pad block before triggering any
+installed pad probes.
+If the caps on @buffer are different from the currently configured caps on
+gst_pad_set_setcaps_function()). In case of failure to renegotiate the new
+format, this function returns #GST_FLOW_NOT_NEGOTIATED.
+The function proceeds calling gst_pad_chain() on the peer pad and returns
+the value from that function. If @pad has no peer, #GST_FLOW_NOT_LINKED will
+be returned.
+In all cases, success or failure, the caller loses its reference to @buffer
+after calling this function.
+MT safe.">
+ <return-value transfer-ownership="full">
+ <type name="FlowReturn" c:type="GstFlowReturn"/>
+ </return-value>
+ <parameters>
+ <parameter name="buffer" transfer-ownership="none">
+ <type name="Buffer" c:type="GstBuffer*"/>
+ </parameter>
+ </parameters>
+ </method>
+ <method name="push_list"
+ c:identifier="gst_pad_push_list"
+ doc="Pushes a buffer list to the peer of @pad.
+This function will call an installed pad block before triggering any
+installed pad probes.
+If the caps on the first buffer in the first group of @list are different
+from the currently configured caps on @pad, this function will call any
+installed setcaps function on @pad (see gst_pad_set_setcaps_function()). In
+case of failure to renegotiate the new format, this function returns
+#GST_FLOW_NOT_NEGOTIATED.
+If there are any probes installed on @pad every group of the buffer list
+will be merged into a normal #GstBuffer and pushed via gst_pad_push and the
+buffer list will be unreffed.
+The function proceeds calling the chain function on the peer pad and returns
+the value from that function. If @pad has no peer, #GST_FLOW_NOT_LINKED will
+be returned. If the peer pad does not have any installed chainlist function
+every group buffer of the list will be merged into a normal #GstBuffer and
+chained via gst_pad_chain().
+In all cases, success or failure, the caller loses its reference to @list
+after calling this function.
+MT safe."
+ version="0.10.24">
+ <return-value transfer-ownership="full">
+ <type name="FlowReturn" c:type="GstFlowReturn"/>
+ </return-value>
+ <parameters>
+ <parameter name="list" transfer-ownership="none">
+ <type name="BufferList" c:type="GstBufferList*"/>
+ </parameter>
+ </parameters>
+ </method>
+ <method name="check_pull_range"
+ c:identifier="gst_pad_check_pull_range"
+ doc="Checks if a gst_pad_pull_range() can be performed on the peer
+source pad. This function is used by plugins that want to check
+if they can use random access on the peer source pad.
+The peer sourcepad can implement a custom #GstPadCheckGetRangeFunction
+if it needs to perform some logic to determine if pull_range is
+possible.
+MT safe.">
+ <return-value transfer-ownership="none">
+ <type name="boolean" c:type="gboolean"/>
+ </return-value>
+ </method>
+ <method name="pull_range"
+ c:identifier="gst_pad_pull_range"
+ doc="Pulls a @buffer from the peer pad.
+This function will first trigger the pad block signal if it was
+installed.
+When @pad is not linked #GST_FLOW_NOT_LINKED is returned else this
+function returns the result of gst_pad_get_range() on the peer pad.
+See gst_pad_get_range() for a list of return values and for the
+semantics of the arguments of this function.
+configured on @pad. Renegotiation within a running pull-mode pipeline is not
+supported.
+When this function returns #GST_FLOW_OK, @buffer will contain a valid
+#GstBuffer that should be freed with gst_buffer_unref() after usage.
+#GST_FLOW_OK is returned.
+MT safe.">
+ <return-value transfer-ownership="full">
+ <type name="FlowReturn" c:type="GstFlowReturn"/>
+ </return-value>
+ <parameters>
+ <parameter name="offset" transfer-ownership="none">
+ <type name="uint64" c:type="guint64"/>
+ </parameter>
+ <parameter name="size" transfer-ownership="none">
+ <type name="uint" c:type="guint"/>
+ </parameter>
+ <parameter name="buffer" transfer-ownership="none">
+ <type name="Buffer" c:type="GstBuffer**"/>
+ </parameter>
+ </parameters>
+ </method>
+ <method name="push_event"
+ c:identifier="gst_pad_push_event"
+ doc="Sends the event to the peer of the given pad. This function is
+mainly used by elements to send events to their peer
+elements.
+This function takes owership of the provided event so you should
+gst_event_ref() it if you want to reuse the event after this call.
+MT safe.">
+ <return-value transfer-ownership="none">
+ <type name="boolean" c:type="gboolean"/>
+ </return-value>
+ <parameters>
+ <parameter name="event" transfer-ownership="none">
+ <type name="Event" c:type="GstEvent*"/>
+ </parameter>
+ </parameters>
+ </method>
+ <method name="event_default"
+ c:identifier="gst_pad_event_default"
+ doc="Invokes the default event handler for the given pad. End-of-stream and
+discontinuity events are handled specially, and then the event is sent to all
+pads internally linked to @pad. Note that if there are many possible sink
+pads that are internally linked to @pad, only one will be sent an event.
+Multi-sinkpad elements should implement custom event handlers.">
+ <return-value transfer-ownership="none">
+ <type name="boolean" c:type="gboolean"/>
+ </return-value>
+ <parameters>
+ <parameter name="event" transfer-ownership="none">
+ <type name="Event" c:type="GstEvent*"/>
+ </parameter>
+ </parameters>
+ </method>
+ <method name="chain"
+ c:identifier="gst_pad_chain"
+ doc="Chain a buffer to @pad.
+The function returns #GST_FLOW_WRONG_STATE if the pad was flushing.
+If the caps on @buffer are different from the current caps on @pad, this
+function will call any setcaps function (see gst_pad_set_setcaps_function())
+installed on @pad. If the new caps are not acceptable for @pad, this
+function returns #GST_FLOW_NOT_NEGOTIATED.
+The function proceeds calling the chain function installed on @pad (see
+gst_pad_set_chain_function()) and the return value of that function is
+returned to the caller. #GST_FLOW_NOT_SUPPORTED is returned if @pad has no
+chain function.
+In all cases, success or failure, the caller loses its reference to @buffer
+after calling this function.
+MT safe.">
+ <return-value transfer-ownership="full">
+ <type name="FlowReturn" c:type="GstFlowReturn"/>
+ </return-value>
+ <parameters>
+ <parameter name="buffer" transfer-ownership="none">
+ <type name="Buffer" c:type="GstBuffer*"/>
+ </parameter>
+ </parameters>
+ </method>
+ <method name="chain_list"
+ c:identifier="gst_pad_chain_list"
+ doc="Chain a bufferlist to @pad.
+The function returns #GST_FLOW_WRONG_STATE if the pad was flushing.
+If the caps on the first buffer of @list are different from the current
+caps on @pad, this function will call any setcaps function
+(see gst_pad_set_setcaps_function()) installed on @pad. If the new caps
+are not acceptable for @pad, this function returns #GST_FLOW_NOT_NEGOTIATED.
+The function proceeds calling the chainlist function installed on @pad (see
+gst_pad_set_chain_list_function()) and the return value of that function is
+returned to the caller. #GST_FLOW_NOT_SUPPORTED is returned if @pad has no
+chainlist function.
+In all cases, success or failure, the caller loses its reference to @list
+after calling this function.
+MT safe."
+ version="0.10.24">
+ <return-value transfer-ownership="full">
+ <type name="FlowReturn" c:type="GstFlowReturn"/>
+ </return-value>
+ <parameters>
+ <parameter name="list" transfer-ownership="none">
+ <type name="BufferList" c:type="GstBufferList*"/>
+ </parameter>
+ </parameters>
+ </method>
+ <method name="get_range"
+ c:identifier="gst_pad_get_range"
+ doc="When @pad is flushing this function returns #GST_FLOW_WRONG_STATE
+immediatly.
+Calls the getrange function of @pad, see #GstPadGetRangeFunction for a
+description of a getrange function. If @pad has no getrange function
+installed (see gst_pad_set_getrange_function()) this function returns
+#GST_FLOW_NOT_SUPPORTED.
+This is a lowlevel function. Usualy gst_pad_pull_range() is used.
+MT safe.">
+ <return-value transfer-ownership="full">
+ <type name="FlowReturn" c:type="GstFlowReturn"/>
+ </return-value>
+ <parameters>
+ <parameter name="offset" transfer-ownership="none">
+ <type name="uint64" c:type="guint64"/>
+ </parameter>
+ <parameter name="size" transfer-ownership="none">
+ <type name="uint" c:type="guint"/>
+ </parameter>
+ <parameter name="buffer" transfer-ownership="none">
+ <type name="Buffer" c:type="GstBuffer**"/>
+ </parameter>
+ </parameters>
+ </method>
+ <method name="send_event"
+ c:identifier="gst_pad_send_event"
+ doc="Sends the event to the pad. This function can be used
+by applications to send events in the pipeline.
+If @pad is a source pad, @event should be an upstream event. If @pad is a
+sink pad, @event should be a downstream event. For example, you would not
+send a #GST_EVENT_EOS on a src pad; EOS events only propagate downstream.
+Furthermore, some downstream events have to be serialized with data flow,
+like EOS, while some can travel out-of-band, like #GST_EVENT_FLUSH_START. If
+the event needs to be serialized with data flow, this function will take the
+pad's stream lock while calling its event function.
+To find out whether an event type is upstream, downstream, or downstream and
+serialized, see #GstEventTypeFlags, gst_event_type_get_flags(),
+#GST_EVENT_IS_UPSTREAM, #GST_EVENT_IS_DOWNSTREAM, and
+#GST_EVENT_IS_SERIALIZED. Note that in practice that an application or
+plugin doesn't need to bother itself with this information; the core handles
+all necessary locks and checks.
+This function takes owership of the provided event so you should
+gst_event_ref() it if you want to reuse the event after this call.">
+ <return-value transfer-ownership="none">
+ <type name="boolean" c:type="gboolean"/>
+ </return-value>
+ <parameters>
+ <parameter name="event" transfer-ownership="none">
+ <type name="Event" c:type="GstEvent*"/>
+ </parameter>
+ </parameters>
+ </method>
+ <method name="start_task"
+ c:identifier="gst_pad_start_task"
+ doc="Starts a task that repeatedly calls @func with @data. This function
+is mostly used in pad activation functions to start the dataflow.
+The #GST_PAD_STREAM_LOCK of @pad will automatically be acquired
+before @func is called.">
+ <return-value transfer-ownership="none">
+ <type name="boolean" c:type="gboolean"/>
+ </return-value>
+ <parameters>
+ <parameter name="func"
+ transfer-ownership="none"
+ scope="call"
+ closure="2">
+ <type name="TaskFunction" c:type="GstTaskFunction"/>
+ </parameter>
+ <parameter name="data" transfer-ownership="none">
+ <type name="any" c:type="gpointer"/>
+ </parameter>
+ </parameters>
+ </method>
+ <method name="pause_task"
+ c:identifier="gst_pad_pause_task"
+ doc="Pause the task of @pad. This function will also wait until the
+function executed by the task is finished if this function is not
+called from the task function.
+has no task.">
+ <return-value transfer-ownership="none">
+ <type name="boolean" c:type="gboolean"/>
+ </return-value>
+ </method>
+ <method name="stop_task"
+ c:identifier="gst_pad_stop_task"
+ doc="Stop the task of @pad. This function will also make sure that the
+function executed by the task will effectively stop if not called
+from the GstTaskFunction.
+This function will deadlock if called from the GstTaskFunction of
+the task. Use gst_task_pause() instead.
+Regardless of whether the pad has a task, the stream lock is acquired and
+released so as to ensure that streaming through this pad has finished.">
+ <return-value transfer-ownership="none">
+ <type name="boolean" c:type="gboolean"/>
+ </return-value>
+ </method>
+ <method name="set_internal_link_function"
+ c:identifier="gst_pad_set_internal_link_function"
+ doc="Sets the given internal link function for the pad."
+ deprecated="Use the thread-safe gst_pad_set_iterate_internal_links_function()">
+ <return-value transfer-ownership="none">
+ <type name="none" c:type="void"/>
+ </return-value>
+ <parameters>
+ <parameter name="intlink" transfer-ownership="none" scope="call">
+ <type name="PadIntLinkFunction" c:type="GstPadIntLinkFunction"/>
+ </parameter>
+ </parameters>
+ </method>
+ <method name="get_internal_links"
+ c:identifier="gst_pad_get_internal_links"
+ doc="Gets a list of pads to which the given pad is linked to
+inside of the parent element.
+The caller must free this list after use.
+Not MT safe.
+could become invalid by the time the application accesses them. It's also
+possible that the list changes while handling the pads, which the caller of
+this function is unable to know. Use the thread-safe
+gst_pad_iterate_internal_links() instead."
+ deprecated="This function does not ref the pads in the list so that they">
+ <return-value transfer-ownership="full">
+ <type name="GLib.List" c:type="GList*"/>
+ </return-value>
+ </method>
+ <method name="get_internal_links_default"
+ c:identifier="gst_pad_get_internal_links_default"
+ doc="Gets a list of pads to which the given pad is linked to
+inside of the parent element.
+This is the default handler, and thus returns a list of all of the
+pads inside the parent element with opposite direction.
+The caller must free this list after use with g_list_free().
+Not MT safe.
+could become invalid by the time the application accesses them. It's also
+possible that the list changes while handling the pads, which the caller of
+this function is unable to know. Use the thread-safe
+gst_pad_iterate_internal_links_default() instead."
+ deprecated="This function does not ref the pads in the list so that they">
+ <return-value transfer-ownership="full">
+ <type name="GLib.List" c:type="GList*"/>
+ </return-value>
+ </method>
+ <method name="set_iterate_internal_links_function"
+ c:identifier="gst_pad_set_iterate_internal_links_function"
+ doc="Sets the given internal link iterator function for the pad."
+ version="0.10.21">
+ <return-value transfer-ownership="none">
+ <type name="none" c:type="void"/>
+ </return-value>
+ <parameters>
+ <parameter name="iterintlink" transfer-ownership="none" scope="call">
+ <type name="PadIterIntLinkFunction"
+ c:type="GstPadIterIntLinkFunction"/>
+ </parameter>
+ </parameters>
+ </method>
+ <method name="iterate_internal_links"
+ c:identifier="gst_pad_iterate_internal_links"
+ doc="Gets an iterator for the pads to which the given pad is linked to inside
+of the parent element.
+Each #GstPad element yielded by the iterator will have its refcount increased,
+so unref after use.
+iterator function configured. Use gst_iterator_free() after usage."
+ version="0.10.21">
+ <return-value transfer-ownership="full">
+ <type name="Iterator" c:type="GstIterator*"/>
+ </return-value>
+ </method>
+ <method name="iterate_internal_links_default"
+ c:identifier="gst_pad_iterate_internal_links_default"
+ doc="Iterate the list of pads to which the given pad is linked to inside of
+the parent element.
+This is the default handler, and thus returns an iterator of all of the
+pads inside the parent element with opposite direction.
+The caller must free this iterator after use with gst_iterator_free().
+returned pad with gst_object_unref()."
+ version="0.10.21">
+ <return-value transfer-ownership="full">
+ <type name="Iterator" c:type="GstIterator*"/>
+ </return-value>
+ </method>
+ <method name="set_query_type_function"
+ c:identifier="gst_pad_set_query_type_function"
+ doc="Set the given query type function for the pad.">
+ <return-value transfer-ownership="none">
+ <type name="none" c:type="void"/>
+ </return-value>
+ <parameters>
+ <parameter name="type_func" transfer-ownership="none" scope="call">
+ <type name="PadQueryTypeFunction"
+ c:type="GstPadQueryTypeFunction"/>
+ </parameter>
+ </parameters>
+ </method>
+ <method name="get_query_types"
+ c:identifier="gst_pad_get_query_types"
+ doc="Get an array of supported queries that can be performed
+on this pad.">
+ <return-value transfer-ownership="none">
+ <type name="QueryType" c:type="GstQueryType*"/>
+ </return-value>
+ </method>
+ <method name="get_query_types_default"
+ c:identifier="gst_pad_get_query_types_default"
+ doc="Invoke the default dispatcher for the query types on
+the pad.
+internally-linked pads has a query types function.">
+ <return-value transfer-ownership="none">
+ <type name="QueryType" c:type="GstQueryType*"/>
+ </return-value>
+ </method>
+ <method name="query"
+ c:identifier="gst_pad_query"
+ doc="Dispatches a query to a pad. The query should have been allocated by the
+caller via one of the type-specific allocation functions in gstquery.h. The
+element is responsible for filling the query with an appropriate response,
+which should then be parsed with a type-specific query parsing function.
+Again, the caller is responsible for both the allocation and deallocation of
+the query structure.">
+ <return-value transfer-ownership="none">
+ <type name="boolean" c:type="gboolean"/>
+ </return-value>
+ <parameters>
+ <parameter name="query" transfer-ownership="none">
+ <type name="Query" c:type="GstQuery*"/>
+ </parameter>
+ </parameters>
+ </method>
+ <method name="peer_query"
+ c:identifier="gst_pad_peer_query"
+ doc="Performs gst_pad_query() on the peer of @pad.
+The caller is responsible for both the allocation and deallocation of
+the query structure.
+if @pad has no peer."
+ version="0.10.15">
+ <return-value transfer-ownership="none">
+ <type name="boolean" c:type="gboolean"/>
+ </return-value>
+ <parameters>
+ <parameter name="query" transfer-ownership="none">
+ <type name="Query" c:type="GstQuery*"/>
+ </parameter>
+ </parameters>
+ </method>
+ <method name="set_query_function"
+ c:identifier="gst_pad_set_query_function"
+ doc="Set the given query function for the pad.">
+ <return-value transfer-ownership="none">
+ <type name="none" c:type="void"/>
+ </return-value>
+ <parameters>
+ <parameter name="query" transfer-ownership="none" scope="call">
+ <type name="PadQueryFunction" c:type="GstPadQueryFunction"/>
+ </parameter>
+ </parameters>
+ </method>
+ <method name="query_default"
+ c:identifier="gst_pad_query_default"
+ doc="Invokes the default query handler for the given pad.
+The query is sent to all pads internally linked to @pad. Note that
+if there are many possible sink pads that are internally linked to
+Multi-sinkpad elements should implement custom query handlers.">
+ <return-value transfer-ownership="none">
+ <type name="boolean" c:type="gboolean"/>
+ </return-value>
+ <parameters>
+ <parameter name="query" transfer-ownership="none">
+ <type name="Query" c:type="GstQuery*"/>
+ </parameter>
+ </parameters>
+ </method>
+ <method name="dispatcher"
+ c:identifier="gst_pad_dispatcher"
+ doc="Invokes the given dispatcher function on each respective peer of
+all pads that are internally linked to the given pad.
+The GstPadDispatcherFunction should return TRUE when no further pads
+need to be processed.">
+ <return-value transfer-ownership="none">
+ <type name="boolean" c:type="gboolean"/>
+ </return-value>
+ <parameters>
+ <parameter name="dispatch"
+ transfer-ownership="none"
+ scope="call"
+ closure="2">
+ <type name="PadDispatcherFunction"
+ c:type="GstPadDispatcherFunction"/>
+ </parameter>
+ <parameter name="data" transfer-ownership="none">
+ <type name="any" c:type="gpointer"/>
+ </parameter>
+ </parameters>
+ </method>
+ <method name="use_fixed_caps"
+ c:identifier="gst_pad_use_fixed_caps"
+ doc="A helper function you can use that sets the
+pad. This way the function will always return the negotiated caps
+or in case the pad is not negotiated, the padtemplate caps.
+Use this function on a pad that, once gst_pad_set_caps() has been called
+on it, cannot be renegotiated to something else.">
+ <return-value transfer-ownership="none">
+ <type name="none" c:type="void"/>
+ </return-value>
+ </method>
+ <method name="get_fixed_caps_func"
+ c:identifier="gst_pad_get_fixed_caps_func"
+ doc="A helper function you can use as a GetCaps function that
+will return the currently negotiated caps or the padtemplate
+when NULL.">
+ <return-value transfer-ownership="full">
+ <type name="Caps" c:type="GstCaps*"/>
+ </return-value>
+ </method>
+ <method name="proxy_getcaps"
+ c:identifier="gst_pad_proxy_getcaps"
+ doc="Calls gst_pad_get_allowed_caps() for every other pad belonging to the
+same element as @pad, and returns the intersection of the results.
+This function is useful as a default getcaps function for an element
+that can handle any stream format, but requires all its pads to have
+the same caps. Two such elements are tee and adder.">
+ <return-value transfer-ownership="full">
+ <type name="Caps" c:type="GstCaps*"/>
+ </return-value>
+ </method>
+ <method name="proxy_setcaps" c:identifier="gst_pad_proxy_setcaps">
+ <return-value transfer-ownership="none">
+ <type name="boolean" c:type="gboolean"/>
+ </return-value>
+ <parameters>
+ <parameter name="caps" transfer-ownership="none">
+ <type name="Caps" c:type="GstCaps*"/>
+ </parameter>
+ </parameters>
+ </method>
+ <method name="get_parent_element"
+ c:identifier="gst_pad_get_parent_element"
+ doc="Gets the parent of @pad, cast to a #GstElement. If a @pad has no parent or
+its parent is not an element, return NULL.
+unref when you're finished with it.
+MT safe.">
+ <return-value transfer-ownership="full">
+ <type name="Element" c:type="GstElement*"/>
+ </return-value>
+ </method>
+ <method name="query_position"
+ c:identifier="gst_pad_query_position"
+ doc="On return contains the #GstFormat used.
+Queries a pad for the stream position.">
+ <return-value transfer-ownership="none">
+ <type name="boolean" c:type="gboolean"/>
+ </return-value>
+ <parameters>
+ <parameter name="format"
+ direction="inout"
+ transfer-ownership="full"
+ doc="a pointer to the #GstFormat asked for.">
+ <type name="Format" c:type="GstFormat*"/>
+ </parameter>
+ <parameter name="cur"
+ direction="out"
+ transfer-ownership="full"
+ doc="A location in which to store the current position, or NULL.">
+ <type name="int64" c:type="gint64*"/>
+ </parameter>
+ </parameters>
+ </method>
+ <method name="query_duration"
+ c:identifier="gst_pad_query_duration"
+ doc="On return contains the #GstFormat used.
+Queries a pad for the total stream duration.">
+ <return-value transfer-ownership="none">
+ <type name="boolean" c:type="gboolean"/>
+ </return-value>
+ <parameters>
+ <parameter name="format" transfer-ownership="none">
+ <type name="Format" c:type="GstFormat*"/>
+ </parameter>
+ <parameter name="duration" direction="out" transfer-ownership="full">
+ <type name="int64" c:type="gint64*"/>
+ </parameter>
+ </parameters>
+ </method>
+ <method name="query_convert"
+ c:identifier="gst_pad_query_convert"
+ doc="Queries a pad to convert @src_val in @src_format to @dest_format.">
+ <return-value transfer-ownership="none">
+ <type name="boolean" c:type="gboolean"/>
+ </return-value>
+ <parameters>
+ <parameter name="src_format" transfer-ownership="none">
+ <type name="Format" c:type="GstFormat"/>
+ </parameter>
+ <parameter name="src_val" transfer-ownership="none">
+ <type name="int64" c:type="gint64"/>
+ </parameter>
+ <parameter name="dest_format" transfer-ownership="none">
+ <type name="Format" c:type="GstFormat*"/>
+ </parameter>
+ <parameter name="dest_val" direction="out" transfer-ownership="full">
+ <type name="int64" c:type="gint64*"/>
+ </parameter>
+ </parameters>
+ </method>
+ <method name="query_peer_position"
+ c:identifier="gst_pad_query_peer_position"
+ doc="Must be a sink pad.
+On return contains the #GstFormat used.
+Queries the peer of a given sink pad for the stream position.">
+ <return-value transfer-ownership="none">
+ <type name="boolean" c:type="gboolean"/>
+ </return-value>
+ <parameters>
+ <parameter name="format" transfer-ownership="none">
+ <type name="Format" c:type="GstFormat*"/>
+ </parameter>
+ <parameter name="cur" direction="out" transfer-ownership="full">
+ <type name="int64" c:type="gint64*"/>
+ </parameter>
+ </parameters>
+ </method>
+ <method name="query_peer_duration"
+ c:identifier="gst_pad_query_peer_duration"
+ doc="Must be a sink pad.
+On return contains the #GstFormat used.
+Queries the peer pad of a given sink pad for the total stream duration.">
+ <return-value transfer-ownership="none">
+ <type name="boolean" c:type="gboolean"/>
+ </return-value>
+ <parameters>
+ <parameter name="format" transfer-ownership="none">
+ <type name="Format" c:type="GstFormat*"/>
+ </parameter>
+ <parameter name="duration" direction="out" transfer-ownership="full">
+ <type name="int64" c:type="gint64*"/>
+ </parameter>
+ </parameters>
+ </method>
+ <method name="query_peer_convert"
+ c:identifier="gst_pad_query_peer_convert"
+ doc="Must be a sink pad.
+Queries the peer pad of a given sink pad to convert @src_val in @src_format
+to @dest_format.">
+ <return-value transfer-ownership="none">
+ <type name="boolean" c:type="gboolean"/>
+ </return-value>
+ <parameters>
+ <parameter name="src_format" transfer-ownership="none">
+ <type name="Format" c:type="GstFormat"/>
+ </parameter>
+ <parameter name="src_val" transfer-ownership="none">
+ <type name="int64" c:type="gint64"/>
+ </parameter>
+ <parameter name="dest_format" transfer-ownership="none">
+ <type name="Format" c:type="GstFormat*"/>
+ </parameter>
+ <parameter name="dest_val" direction="out" transfer-ownership="full">
+ <type name="int64" c:type="gint64*"/>
+ </parameter>
+ </parameters>
+ </method>
+ <method name="add_data_probe"
+ c:identifier="gst_pad_add_data_probe"
+ doc="Adds a "data probe" to a pad. This function will be called whenever data
+passes through a pad. In this case data means both events and buffers. The
+probe will be called with the data as an argument, meaning @handler should
+have the same callback signature as the #GstPad::have-data signal.
+Note that the data will have a reference count greater than 1, so it will
+be immutable -- you must not change it.
+For source pads, the probe will be called after the blocking function, if any
+(see gst_pad_set_blocked_async()), but before looking up the peer to chain
+to. For sink pads, the probe function will be called before configuring the
+sink with new caps, if any, and before calling the pad's chain function.
+Your data probe should return TRUE to let the data continue to flow, or FALSE
+to drop it. Dropping data is rarely useful, but occasionally comes in handy
+with events.
+Although probes are implemented internally by connecting @handler to the
+have-data signal on the pad, if you want to remove a probe it is insufficient
+to only call g_signal_handler_disconnect on the returned handler id. To
+remove a probe, use the appropriate function, such as
+gst_pad_remove_data_probe().">
+ <return-value transfer-ownership="none">
+ <type name="ulong" c:type="gulong"/>
+ </return-value>
+ <parameters>
+ <parameter name="handler"
+ transfer-ownership="none"
+ scope="call"
+ closure="2">
+ <type name="GObject.Callback" c:type="GCallback"/>
+ </parameter>
+ <parameter name="data" transfer-ownership="none">
+ <type name="any" c:type="gpointer"/>
+ </parameter>
+ </parameters>
+ </method>
+ <method name="add_data_probe_full"
+ c:identifier="gst_pad_add_data_probe_full"
+ doc="Adds a "data probe" to a pad. This function will be called whenever data
+passes through a pad. In this case data means both events and buffers. The
+probe will be called with the data as an argument, meaning @handler should
+have the same callback signature as the #GstPad::have-data signal.
+Note that the data will have a reference count greater than 1, so it will
+be immutable -- you must not change it.
+For source pads, the probe will be called after the blocking function, if any
+(see gst_pad_set_blocked_async()), but before looking up the peer to chain
+to. For sink pads, the probe function will be called before configuring the
+sink with new caps, if any, and before calling the pad's chain function.
+Your data probe should return TRUE to let the data continue to flow, or FALSE
+to drop it. Dropping data is rarely useful, but occasionally comes in handy
+with events.
+Although probes are implemented internally by connecting @handler to the
+have-data signal on the pad, if you want to remove a probe it is insufficient
+to only call g_signal_handler_disconnect on the returned handler id. To
+remove a probe, use the appropriate function, such as
+gst_pad_remove_data_probe().
+The @notify function is called when the probe is disconnected and usually
+used to free @data."
+ version="0.10.20">
+ <return-value transfer-ownership="none">
+ <type name="ulong" c:type="gulong"/>
+ </return-value>
+ <parameters>
+ <parameter name="handler"
+ transfer-ownership="none"
+ scope="notified"
+ closure="2"
+ destroy="3">
+ <type name="GObject.Callback" c:type="GCallback"/>
+ </parameter>
+ <parameter name="data" transfer-ownership="none">
+ <type name="any" c:type="gpointer"/>
+ </parameter>
+ <parameter name="notify" transfer-ownership="none" scope="call">
+ <type name="GLib.DestroyNotify" c:type="GDestroyNotify"/>
+ </parameter>
+ </parameters>
+ </method>
+ <method name="remove_data_probe"
+ c:identifier="gst_pad_remove_data_probe"
+ doc="Removes a data probe from @pad.">
+ <return-value transfer-ownership="none">
+ <type name="none" c:type="void"/>
+ </return-value>
+ <parameters>
+ <parameter name="handler_id" transfer-ownership="none">
+ <type name="uint" c:type="guint"/>
+ </parameter>
+ </parameters>
+ </method>
+ <method name="add_event_probe"
+ c:identifier="gst_pad_add_event_probe"
+ doc="Adds a probe that will be called for all events passing through a pad. See
+gst_pad_add_data_probe() for more information.">
+ <return-value transfer-ownership="none">
+ <type name="ulong" c:type="gulong"/>
+ </return-value>
+ <parameters>
+ <parameter name="handler"
+ transfer-ownership="none"
+ scope="call"
+ closure="2">
+ <type name="GObject.Callback" c:type="GCallback"/>
+ </parameter>
+ <parameter name="data" transfer-ownership="none">
+ <type name="any" c:type="gpointer"/>
+ </parameter>
+ </parameters>
+ </method>
+ <method name="add_event_probe_full"
+ c:identifier="gst_pad_add_event_probe_full"
+ doc="Adds a probe that will be called for all events passing through a pad. See
+gst_pad_add_data_probe() for more information.
+The @notify function is called when the probe is disconnected and usually
+used to free @data."
+ version="0.10.20">
+ <return-value transfer-ownership="none">
+ <type name="ulong" c:type="gulong"/>
+ </return-value>
+ <parameters>
+ <parameter name="handler"
+ transfer-ownership="none"
+ scope="notified"
+ closure="2"
+ destroy="3">
+ <type name="GObject.Callback" c:type="GCallback"/>
+ </parameter>
+ <parameter name="data" transfer-ownership="none">
+ <type name="any" c:type="gpointer"/>
+ </parameter>
+ <parameter name="notify" transfer-ownership="none" scope="call">
+ <type name="GLib.DestroyNotify" c:type="GDestroyNotify"/>
+ </parameter>
+ </parameters>
+ </method>
+ <method name="remove_event_probe"
+ c:identifier="gst_pad_remove_event_probe"
+ doc="Removes an event probe from @pad.">
+ <return-value transfer-ownership="none">
+ <type name="none" c:type="void"/>
+ </return-value>
+ <parameters>
+ <parameter name="handler_id" transfer-ownership="none">
+ <type name="uint" c:type="guint"/>
+ </parameter>
+ </parameters>
+ </method>
+ <method name="add_buffer_probe"
+ c:identifier="gst_pad_add_buffer_probe"
+ doc="Adds a probe that will be called for all buffers passing through a pad. See
+gst_pad_add_data_probe() for more information.">
+ <return-value transfer-ownership="none">
+ <type name="ulong" c:type="gulong"/>
+ </return-value>
+ <parameters>
+ <parameter name="handler"
+ transfer-ownership="none"
+ scope="call"
+ closure="2">
+ <type name="GObject.Callback" c:type="GCallback"/>
+ </parameter>
+ <parameter name="data" transfer-ownership="none">
+ <type name="any" c:type="gpointer"/>
+ </parameter>
+ </parameters>
+ </method>
+ <method name="add_buffer_probe_full"
+ c:identifier="gst_pad_add_buffer_probe_full"
+ doc="Adds a probe that will be called for all buffers passing through a pad. See
+gst_pad_add_data_probe() for more information.
+The @notify function is called when the probe is disconnected and usually
+used to free @data."
+ version="0.10.20">
+ <return-value transfer-ownership="none">
+ <type name="ulong" c:type="gulong"/>
+ </return-value>
+ <parameters>
+ <parameter name="handler"
+ transfer-ownership="none"
+ scope="notified"
+ closure="2"
+ destroy="3">
+ <type name="GObject.Callback" c:type="GCallback"/>
+ </parameter>
+ <parameter name="data" transfer-ownership="none">
+ <type name="any" c:type="gpointer"/>
+ </parameter>
+ <parameter name="notify" transfer-ownership="none" scope="call">
+ <type name="GLib.DestroyNotify" c:type="GDestroyNotify"/>
+ </parameter>
+ </parameters>
+ </method>
+ <method name="remove_buffer_probe"
+ c:identifier="gst_pad_remove_buffer_probe"
+ doc="Removes a buffer probe from @pad.">
+ <return-value transfer-ownership="none">
+ <type name="none" c:type="void"/>
+ </return-value>
+ <parameters>
+ <parameter name="handler_id" transfer-ownership="none">
+ <type name="uint" c:type="guint"/>
+ </parameter>
+ </parameters>
+ </method>
+ <property name="caps">
+ <type name="Caps" c:type="GstCaps"/>
+ </property>
+ <property name="direction" writable="1" construct-only="1">
+ <type name="PadDirection" c:type="GstPadDirection"/>
+ </property>
+ <property name="template" writable="1">
+ <type name="PadTemplate" c:type="GstPadTemplate"/>
+ </property>
+ <field name="object">
+ <type name="Object" c:type="GstObject"/>
+ </field>
+ <field name="element_private">
+ <type name="any" c:type="gpointer"/>
+ </field>
+ <field name="padtemplate">
+ <type name="PadTemplate" c:type="GstPadTemplate*"/>
+ </field>
+ <field name="direction">
+ <type name="PadDirection" c:type="GstPadDirection"/>
+ </field>
+ <field name="stream_rec_lock">
+ <type name="GLib.StaticRecMutex" c:type="GStaticRecMutex*"/>
+ </field>
+ <field name="task">
+ <type name="Task" c:type="GstTask*"/>
+ </field>
+ <field name="preroll_lock">
+ <type name="GLib.Mutex" c:type="GMutex*"/>
+ </field>
+ <field name="preroll_cond">
+ <type name="GLib.Cond" c:type="GCond*"/>
+ </field>
+ <field name="block_cond">
+ <type name="GLib.Cond" c:type="GCond*"/>
+ </field>
+ <field name="block_callback">
+ <type name="PadBlockCallback" c:type="GstPadBlockCallback"/>
+ </field>
+ <field name="block_data">
+ <type name="any" c:type="gpointer"/>
+ </field>
+ <field name="caps">
+ <type name="Caps" c:type="GstCaps*"/>
+ </field>
+ <field name="getcapsfunc">
+ <type name="PadGetCapsFunction" c:type="GstPadGetCapsFunction"/>
+ </field>
+ <field name="setcapsfunc">
+ <type name="PadSetCapsFunction" c:type="GstPadSetCapsFunction"/>
+ </field>
+ <field name="acceptcapsfunc">
+ <type name="PadAcceptCapsFunction" c:type="GstPadAcceptCapsFunction"/>
+ </field>
+ <field name="fixatecapsfunc">
+ <type name="PadFixateCapsFunction" c:type="GstPadFixateCapsFunction"/>
+ </field>
+ <field name="activatefunc">
+ <type name="PadActivateFunction" c:type="GstPadActivateFunction"/>
+ </field>
+ <field name="activatepushfunc">
+ <type name="PadActivateModeFunction"
+ c:type="GstPadActivateModeFunction"/>
+ </field>
+ <field name="activatepullfunc">
+ <type name="PadActivateModeFunction"
+ c:type="GstPadActivateModeFunction"/>
+ </field>
+ <field name="linkfunc">
+ <type name="PadLinkFunction" c:type="GstPadLinkFunction"/>
+ </field>
+ <field name="unlinkfunc">
+ <type name="PadUnlinkFunction" c:type="GstPadUnlinkFunction"/>
+ </field>
+ <field name="peer">
+ <type name="Pad" c:type="GstPad*"/>
+ </field>
+ <field name="sched_private">
+ <type name="any" c:type="gpointer"/>
+ </field>
+ <field name="chainfunc">
+ <type name="PadChainFunction" c:type="GstPadChainFunction"/>
+ </field>
+ <field name="checkgetrangefunc">
+ <type name="PadCheckGetRangeFunction"
+ c:type="GstPadCheckGetRangeFunction"/>
+ </field>
+ <field name="getrangefunc">
+ <type name="PadGetRangeFunction" c:type="GstPadGetRangeFunction"/>
+ </field>
+ <field name="eventfunc">
+ <type name="PadEventFunction" c:type="GstPadEventFunction"/>
+ </field>
+ <field name="mode">
+ <type name="ActivateMode" c:type="GstActivateMode"/>
+ </field>
+ <field name="querytypefunc">
+ <type name="PadQueryTypeFunction" c:type="GstPadQueryTypeFunction"/>
+ </field>
+ <field name="queryfunc">
+ <type name="PadQueryFunction" c:type="GstPadQueryFunction"/>
+ </field>
+ <field name="intlinkfunc">
+ <type name="PadIntLinkFunction" c:type="GstPadIntLinkFunction"/>
+ </field>
+ <field name="bufferallocfunc">
+ <type name="PadBufferAllocFunction"
+ c:type="GstPadBufferAllocFunction"/>
+ </field>
+ <field name="do_buffer_signals">
+ <type name="int" c:type="gint"/>
+ </field>
+ <field name="do_event_signals">
+ <type name="int" c:type="gint"/>
+ </field>
+ <field name="iterintlinkfunc">
+ <type name="PadIterIntLinkFunction"
+ c:type="GstPadIterIntLinkFunction"/>
+ </field>
+ <field name="block_destroy_data">
+ <type name="GLib.DestroyNotify" c:type="GDestroyNotify"/>
+ </field>
+ <union name="abidata" c:type="abidata">
+ <record name="ABI" c:type="ABI">
+ <field name="block_callback_called" writable="1">
+ <type name="boolean" c:type="gboolean"/>
+ </field>
+ <field name="priv" writable="1">
+ <type name="PadPrivate" c:type="GstPadPrivate*"/>
+ </field>
+ </record>
+ <field name="_gst_reserved" writable="1">
+ <array zero-terminated="0" c:type="gpointer" fixed-size="2">
+ <type name="any"/>
+ </array>
+ </field>
+ </union>
+ <glib:signal name="have-data"
+ doc="Signals that new data is available on the pad. This signal is used
+internally for implementing pad probes.
+See gst_pad_add_*_probe functions.">
+ <return-value transfer-ownership="full">
+ <type name="boolean" c:type="gboolean"/>
+ </return-value>
+ <parameters>
+ <parameter name="mini_obj" transfer-ownership="none">
+ <type name="MiniObject" c:type="GstMiniObject"/>
+ </parameter>
+ </parameters>
+ </glib:signal>
+ <glib:signal name="linked"
+ doc="Signals that a pad has been linked to the peer pad.">
+ <return-value transfer-ownership="full">
+ <type name="none" c:type="void"/>
+ </return-value>
+ <parameters>
+ <parameter name="peer" transfer-ownership="none">
+ <type name="Pad" c:type="GstPad"/>
+ </parameter>
+ </parameters>
+ </glib:signal>
+ <glib:signal name="request-link"
+ doc="Signals that a pad connection has been requested.">
+ <return-value transfer-ownership="full">
+ <type name="none" c:type="void"/>
+ </return-value>
+ </glib:signal>
+ <glib:signal name="unlinked"
+ doc="Signals that a pad has been unlinked from the peer pad.">
+ <return-value transfer-ownership="full">
+ <type name="none" c:type="void"/>
+ </return-value>
+ <parameters>
+ <parameter name="peer" transfer-ownership="none">
+ <type name="Pad" c:type="GstPad"/>
+ </parameter>
+ </parameters>
+ </glib:signal>
+ </class>
+ <callback name="PadAcceptCapsFunction"
+ c:type="GstPadAcceptCapsFunction"
+ doc="Check if @pad can accept @caps. By default this function will see if @caps
+intersect with the result from gst_pad_get_caps() by can be overridden to
+perform extra checks.">
+ <return-value transfer-ownership="none">
+ <type name="boolean" c:type="gboolean"/>
+ </return-value>
+ <parameters>
+ <parameter name="pad" transfer-ownership="none">
+ <type name="Pad" c:type="GstPad*"/>
+ </parameter>
+ <parameter name="caps" transfer-ownership="none">
+ <type name="Caps" c:type="GstCaps*"/>
+ </parameter>
+ </parameters>
+ </callback>
+ <callback name="PadActivateFunction"
+ c:type="GstPadActivateFunction"
+ doc="This function is called when the pad is activated during the element
+READY to PAUSED state change. By default this function will call the
+activate function that puts the pad in push mode but elements can
+override this function to activate the pad in pull mode if they wish.">
+ <return-value transfer-ownership="none">
+ <type name="boolean" c:type="gboolean"/>
+ </return-value>
+ <parameters>
+ <parameter name="pad" transfer-ownership="none">
+ <type name="Pad" c:type="GstPad*"/>
+ </parameter>
+ </parameters>
+ </callback>
+ <callback name="PadActivateModeFunction"
+ c:type="GstPadActivateModeFunction"
+ doc="The prototype of the push and pull activate functions.">
+ <return-value transfer-ownership="none">
+ <type name="boolean" c:type="gboolean"/>
+ </return-value>
+ <parameters>
+ <parameter name="pad" transfer-ownership="none">
+ <type name="Pad" c:type="GstPad*"/>
+ </parameter>
+ <parameter name="active" transfer-ownership="none">
+ <type name="boolean" c:type="gboolean"/>
+ </parameter>
+ </parameters>
+ </callback>
+ <callback name="PadBlockCallback"
+ c:type="GstPadBlockCallback"
+ doc="Callback used by gst_pad_set_blocked_async(). Gets called when the blocking
+operation succeeds.">
+ <return-value transfer-ownership="none">
+ <type name="none" c:type="void"/>
+ </return-value>
+ <parameters>
+ <parameter name="pad" transfer-ownership="none">
+ <type name="Pad" c:type="GstPad*"/>
+ </parameter>
+ <parameter name="blocked" transfer-ownership="none">
+ <type name="boolean" c:type="gboolean"/>
+ </parameter>
+ <parameter name="user_data" transfer-ownership="none" closure="2">
+ <type name="any" c:type="gpointer"/>
+ </parameter>
+ </parameters>
+ </callback>
+ <callback name="PadBufferAllocFunction"
+ c:type="GstPadBufferAllocFunction"
+ doc="Ask the sinkpad @pad to allocate a buffer with @offset, @size and @caps.
+The result will be stored in @buf.
+The purpose of this function is to allocate a buffer that is optimal to
+be processed by @pad. The function is mostly overridden by elements that can
+provide a hardware buffer in order to avoid additional memcpy operations.
+The function can return a buffer that has caps different from the requested
+new caps.
+If a format change was requested, the returned buffer will be one to hold
+the data of said new caps, so its size might be different from the requested
+When this function returns anything else than #GST_FLOW_OK, the buffer allocation
+failed and @buf does not contain valid data. If the function returns #GST_FLOW_OK and
+the @buf is NULL, a #GstBuffer will be created with @caps, @offset and @size.
+By default this function returns a new buffer of @size and with @caps containing
+purely malloced data. The buffer should be freed with gst_buffer_unref()
+after usage.
+value means @buf does not hold a valid buffer.">
+ <return-value transfer-ownership="full">
+ <type name="FlowReturn" c:type="GstFlowReturn"/>
+ </return-value>
+ <parameters>
+ <parameter name="pad" transfer-ownership="none">
+ <type name="Pad" c:type="GstPad*"/>
+ </parameter>
+ <parameter name="offset" transfer-ownership="none">
+ <type name="uint64" c:type="guint64"/>
+ </parameter>
+ <parameter name="size" transfer-ownership="none">
+ <type name="uint" c:type="guint"/>
+ </parameter>
+ <parameter name="caps" transfer-ownership="none">
+ <type name="Caps" c:type="GstCaps*"/>
+ </parameter>
+ <parameter name="buf" transfer-ownership="none">
+ <type name="Buffer" c:type="GstBuffer**"/>
+ </parameter>
+ </parameters>
+ </callback>
+ <callback name="PadChainFunction"
+ c:type="GstPadChainFunction"
+ doc="A function that will be called on sinkpads when chaining buffers.
+The function typically processes the data contained in the buffer and
+either consumes the data or passes it on to the internally linked pad(s).
+The implementer of this function receives a refcount to @buffer and should
+gst_buffer_unref() when the buffer is no longer needed.
+When a chain function detects an error in the data stream, it must post an
+error on the bus and return an appropriate #GstFlowReturn value.">
+ <return-value transfer-ownership="full">
+ <type name="FlowReturn" c:type="GstFlowReturn"/>
+ </return-value>
+ <parameters>
+ <parameter name="pad" transfer-ownership="none">
+ <type name="Pad" c:type="GstPad*"/>
+ </parameter>
+ <parameter name="buffer" transfer-ownership="none">
+ <type name="Buffer" c:type="GstBuffer*"/>
+ </parameter>
+ </parameters>
+ </callback>
+ <callback name="PadChainListFunction"
+ c:type="GstPadChainListFunction"
+ doc="A function that will be called on sinkpads when chaining buffer lists.
+The function typically processes the data contained in the buffer list and
+either consumes the data or passes it on to the internally linked pad(s).
+The implementer of this function receives a refcount to @list and
+should gst_buffer_list_unref() when the list is no longer needed.
+When a chainlist function detects an error in the data stream, it must
+post an error on the bus and return an appropriate #GstFlowReturn value.">
+ <return-value transfer-ownership="full">
+ <type name="FlowReturn" c:type="GstFlowReturn"/>
+ </return-value>
+ <parameters>
+ <parameter name="pad" transfer-ownership="none">
+ <type name="Pad" c:type="GstPad*"/>
+ </parameter>
+ <parameter name="list" transfer-ownership="none">
+ <type name="BufferList" c:type="GstBufferList*"/>
+ </parameter>
+ </parameters>
+ </callback>
+ <callback name="PadCheckGetRangeFunction"
+ c:type="GstPadCheckGetRangeFunction"
+ doc="Check if @pad can be activated in pull mode.
+This function will be deprecated after 0.10; use the seeking query to check
+if a pad can support random access.">
+ <return-value transfer-ownership="none">
+ <type name="boolean" c:type="gboolean"/>
+ </return-value>
+ <parameters>
+ <parameter name="pad" transfer-ownership="none">
+ <type name="Pad" c:type="GstPad*"/>
+ </parameter>
+ </parameters>
+ </callback>
+ <record name="PadClass"
+ c:type="GstPadClass"
+ glib:is-gtype-struct-for="Pad">
+ <field name="parent_class">
+ <type name="ObjectClass" c:type="GstObjectClass"/>
+ </field>
+ <field name="linked">
+ <callback name="linked" c:type="linked">
+ <return-value transfer-ownership="none">
+ <type name="none" c:type="void"/>
+ </return-value>
+ <parameters>
+ <parameter name="pad" transfer-ownership="none">
+ <type name="Pad" c:type="GstPad*"/>
+ </parameter>
+ <parameter name="peer" transfer-ownership="none">
+ <type name="Pad" c:type="GstPad*"/>
+ </parameter>
+ </parameters>
+ </callback>
+ </field>
+ <field name="unlinked">
+ <callback name="unlinked" c:type="unlinked">
+ <return-value transfer-ownership="none">
+ <type name="none" c:type="void"/>
+ </return-value>
+ <parameters>
+ <parameter name="pad" transfer-ownership="none">
+ <type name="Pad" c:type="GstPad*"/>
+ </parameter>
+ <parameter name="peer" transfer-ownership="none">
+ <type name="Pad" c:type="GstPad*"/>
+ </parameter>
+ </parameters>
+ </callback>
+ </field>
+ <field name="request_link">
+ <callback name="request_link" c:type="request_link">
+ <return-value transfer-ownership="none">
+ <type name="none" c:type="void"/>
+ </return-value>
+ <parameters>
+ <parameter name="pad" transfer-ownership="none">
+ <type name="Pad" c:type="GstPad*"/>
+ </parameter>
+ </parameters>
+ </callback>
+ </field>
+ <field name="have_data">
+ <callback name="have_data" c:type="have_data">
+ <return-value transfer-ownership="none">
+ <type name="boolean" c:type="gboolean"/>
+ </return-value>
+ <parameters>
+ <parameter name="pad" transfer-ownership="none">
+ <type name="Pad" c:type="GstPad*"/>
+ </parameter>
+ <parameter name="data" transfer-ownership="none">
+ <type name="MiniObject" c:type="GstMiniObject*"/>
+ </parameter>
+ </parameters>
+ </callback>
+ </field>
+ <field name="_gst_reserved">
+ <array zero-terminated="0" c:type="gpointer" fixed-size="4">
+ <type name="any"/>
+ </array>
+ </field>
+ </record>
+ <enumeration name="PadDirection"
+ doc="The direction of a pad."
+ c:type="GstPadDirection">
+ <member name="unknown" value="0" c:identifier="GST_PAD_UNKNOWN"/>
+ <member name="src" value="1" c:identifier="GST_PAD_SRC"/>
+ <member name="sink" value="2" c:identifier="GST_PAD_SINK"/>
+ </enumeration>
+ <callback name="PadDispatcherFunction"
+ c:type="GstPadDispatcherFunction"
+ doc="A dispatcher function is called for all internally linked pads, see
+gst_pad_dispatcher().">
+ <return-value transfer-ownership="none">
+ <type name="boolean" c:type="gboolean"/>
+ </return-value>
+ <parameters>
+ <parameter name="pad" transfer-ownership="none">
+ <type name="Pad" c:type="GstPad*"/>
+ </parameter>
+ <parameter name="data" transfer-ownership="none">
+ <type name="any" c:type="gpointer"/>
+ </parameter>
+ </parameters>
+ </callback>
+ <callback name="PadEventFunction"
+ c:type="GstPadEventFunction"
+ doc="Function signature to handle an event for the pad.">
+ <return-value transfer-ownership="none">
+ <type name="boolean" c:type="gboolean"/>
+ </return-value>
+ <parameters>
+ <parameter name="pad" transfer-ownership="none">
+ <type name="Pad" c:type="GstPad*"/>
+ </parameter>
+ <parameter name="event" transfer-ownership="none">
+ <type name="Event" c:type="GstEvent*"/>
+ </parameter>
+ </parameters>
+ </callback>
+ <callback name="PadFixateCapsFunction"
+ c:type="GstPadFixateCapsFunction"
+ doc="Given possibly unfixed caps @caps, let @pad use its default prefered
+format to make a fixed caps. @caps should be writable. By default this
+function will pick the first value of any ranges or lists in the caps but
+elements can override this function to perform other behaviour.">
+ <return-value transfer-ownership="none">
+ <type name="none" c:type="void"/>
+ </return-value>
+ <parameters>
+ <parameter name="pad" transfer-ownership="none">
+ <type name="Pad" c:type="GstPad*"/>
+ </parameter>
+ <parameter name="caps" transfer-ownership="none">
+ <type name="Caps" c:type="GstCaps*"/>
+ </parameter>
+ </parameters>
+ </callback>
+ <bitfield name="PadFlags" doc="Pad state flags" c:type="GstPadFlags">
+ <member name="blocked" value="16" c:identifier="GST_PAD_BLOCKED"/>
+ <member name="flushing" value="32" c:identifier="GST_PAD_FLUSHING"/>
+ <member name="in_getcaps" value="64" c:identifier="GST_PAD_IN_GETCAPS"/>
+ <member name="in_setcaps" value="128" c:identifier="GST_PAD_IN_SETCAPS"/>
+ <member name="blocking" value="256" c:identifier="GST_PAD_BLOCKING"/>
+ <member name="flag_last" value="4096" c:identifier="GST_PAD_FLAG_LAST"/>
+ </bitfield>
+ <callback name="PadGetCapsFunction"
+ c:type="GstPadGetCapsFunction"
+ doc="Returns a copy of the capabilities of the specified pad. By default this
+function will return the pad template capabilities, but can optionally
+be overridden by elements.">
+ <return-value transfer-ownership="full">
+ <type name="Caps" c:type="GstCaps*"/>
+ </return-value>
+ <parameters>
+ <parameter name="pad" transfer-ownership="none">
+ <type name="Pad" c:type="GstPad*"/>
+ </parameter>
+ </parameters>
+ </callback>
+ <callback name="PadGetRangeFunction"
+ c:type="GstPadGetRangeFunction"
+ doc="This function will be called on source pads when a peer element
+request a buffer at the specified @offset and @length. If this function
+returns #GST_FLOW_OK, the result buffer will be stored in @buffer. The
+contents of @buffer is invalid for any other return value.
+This function is installed on a source pad with
+gst_pad_set_getrange_function() and can only be called on source pads after
+they are successfully activated with gst_pad_activate_pull().
+between 0 and the length in bytes of the data available on @pad. The
+length (duration in bytes) can be retrieved with a #GST_QUERY_DURATION or with a
+#GST_QUERY_SEEKING.
+Any @offset larger or equal than the length will make the function return
+#GST_FLOW_UNEXPECTED, which corresponds to EOS. In this case @buffer does not
+contain a valid buffer.
+The buffer size of @buffer might be smaller than @length when @offset is near
+the end of the stream.
+It is allowed to call this function with a 0 @length and valid @offset, in
+which case @buffer will contain a 0-sized buffer and the function returns
+#GST_FLOW_OK.
+When this function is called with a -1 @offset, the sequentially next buffer
+of length @length in the stream is returned.
+When this function is called with a -1 @length, a buffer with a default
+optimal length is returned in @buffer. The length might depend on the value
+of @offset.">
+ <return-value transfer-ownership="full">
+ <type name="FlowReturn" c:type="GstFlowReturn"/>
+ </return-value>
+ <parameters>
+ <parameter name="pad" transfer-ownership="none">
+ <type name="Pad" c:type="GstPad*"/>
+ </parameter>
+ <parameter name="offset" transfer-ownership="none">
+ <type name="uint64" c:type="guint64"/>
+ </parameter>
+ <parameter name="length" transfer-ownership="none">
+ <type name="uint" c:type="guint"/>
+ </parameter>
+ <parameter name="buffer" transfer-ownership="none">
+ <type name="Buffer" c:type="GstBuffer**"/>
+ </parameter>
+ </parameters>
+ </callback>
+ <callback name="PadIntLinkFunction"
+ c:type="GstPadIntLinkFunction"
+ doc="The signature of the internal pad link function.
+the inside of the parent element.
+The caller must call g_list_free() on it after use."
+ deprecated="use the threadsafe #GstPadIterIntLinkFunction instead.">
+ <return-value transfer-ownership="full">
+ <type name="GLib.List" c:type="GList*"/>
+ </return-value>
+ <parameters>
+ <parameter name="pad" transfer-ownership="none">
+ <type name="Pad" c:type="GstPad*"/>
+ </parameter>
+ </parameters>
+ </callback>
+ <callback name="PadIterIntLinkFunction"
+ c:type="GstPadIterIntLinkFunction"
+ doc="The signature of the internal pad link iterator function.
+linked to the given pad on the inside of the parent element.
+the caller must call gst_iterator_free() after usage.
+Since 0.10.21">
+ <return-value transfer-ownership="full">
+ <type name="Iterator" c:type="GstIterator*"/>
+ </return-value>
+ <parameters>
+ <parameter name="pad" transfer-ownership="none">
+ <type name="Pad" c:type="GstPad*"/>
+ </parameter>
+ </parameters>
+ </callback>
+ <callback name="PadLinkFunction" c:type="GstPadLinkFunction">
+ <return-value transfer-ownership="full">
+ <type name="PadLinkReturn" c:type="GstPadLinkReturn"/>
+ </return-value>
+ <parameters>
+ <parameter name="pad" transfer-ownership="none">
+ <type name="Pad" c:type="GstPad*"/>
+ </parameter>
+ <parameter name="peer" transfer-ownership="none">
+ <type name="Pad" c:type="GstPad*"/>
+ </parameter>
+ </parameters>
+ </callback>
+ <enumeration name="PadLinkReturn"
+ doc="Result values from gst_pad_link and friends."
+ c:type="GstPadLinkReturn">
+ <member name="ok" value="0" c:identifier="GST_PAD_LINK_OK"/>
+ <member name="wrong_hierarchy"
+ value="-1"
+ c:identifier="GST_PAD_LINK_WRONG_HIERARCHY"/>
+ <member name="was_linked"
+ value="-2"
+ c:identifier="GST_PAD_LINK_WAS_LINKED"/>
+ <member name="wrong_direction"
+ value="-3"
+ c:identifier="GST_PAD_LINK_WRONG_DIRECTION"/>
+ <member name="noformat" value="-4" c:identifier="GST_PAD_LINK_NOFORMAT"/>
+ <member name="nosched" value="-5" c:identifier="GST_PAD_LINK_NOSCHED"/>
+ <member name="refused" value="-6" c:identifier="GST_PAD_LINK_REFUSED"/>
+ </enumeration>
+ <enumeration name="PadPresence"
+ doc="gst_element_get_request_pad().
+Indicates when this pad will become available."
+ c:type="GstPadPresence">
+ <member name="always" value="0" c:identifier="GST_PAD_ALWAYS"/>
+ <member name="sometimes" value="1" c:identifier="GST_PAD_SOMETIMES"/>
+ <member name="request" value="2" c:identifier="GST_PAD_REQUEST"/>
+ </enumeration>
+ <record name="PadPrivate" c:type="GstPadPrivate">
+ </record>
+ <callback name="PadQueryFunction"
+ c:type="GstPadQueryFunction"
+ doc="The signature of the query function.">
+ <return-value transfer-ownership="none">
+ <type name="boolean" c:type="gboolean"/>
+ </return-value>
+ <parameters>
+ <parameter name="pad" transfer-ownership="none">
+ <type name="Pad" c:type="GstPad*"/>
+ </parameter>
+ <parameter name="query" transfer-ownership="none">
+ <type name="Query" c:type="GstQuery*"/>
+ </parameter>
+ </parameters>
+ </callback>
+ <callback name="PadQueryTypeFunction"
+ c:type="GstPadQueryTypeFunction"
+ doc="The signature of the query types function.">
+ <return-value transfer-ownership="none">
+ <type name="QueryType" c:type="GstQueryType*"/>
+ </return-value>
+ <parameters>
+ <parameter name="pad" transfer-ownership="none">
+ <type name="Pad" c:type="GstPad*"/>
+ </parameter>
+ </parameters>
+ </callback>
+ <callback name="PadSetCapsFunction"
+ c:type="GstPadSetCapsFunction"
+ doc="Set @caps on @pad. By default this function updates the caps of the
+pad but the function can be overriden by elements to perform extra
+actions or verifications.">
+ <return-value transfer-ownership="none">
+ <type name="boolean" c:type="gboolean"/>
+ </return-value>
+ <parameters>
+ <parameter name="pad" transfer-ownership="none">
+ <type name="Pad" c:type="GstPad*"/>
+ </parameter>
+ <parameter name="caps" transfer-ownership="none">
+ <type name="Caps" c:type="GstCaps*"/>
+ </parameter>
+ </parameters>
+ </callback>
+ <class name="PadTemplate"
+ c:type="GstPadTemplate"
+ doc="The padtemplate object."
+ parent="Object"
+ glib:type-name="GstPadTemplate"
+ glib:get-type="gst_pad_template_get_type"
+ glib:type-struct="PadTemplateClass">
+ <constructor name="new"
+ c:identifier="gst_pad_template_new"
+ doc="Creates a new pad template with a name according to the given template
+and with the given arguments. This functions takes ownership of the provided
+caps, so be sure to not use them afterwards.">
+ <return-value transfer-ownership="full">
+ <type name="PadTemplate" c:type="GstPadTemplate*"/>
+ </return-value>
+ <parameters>
+ <parameter name="name_template" transfer-ownership="none">
+ <type name="utf8" c:type="gchar*"/>
+ </parameter>
+ <parameter name="direction" transfer-ownership="none">
+ <type name="PadDirection" c:type="GstPadDirection"/>
+ </parameter>
+ <parameter name="presence" transfer-ownership="none">
+ <type name="PadPresence" c:type="GstPadPresence"/>
+ </parameter>
+ <parameter name="caps" transfer-ownership="none">
+ <type name="Caps" c:type="GstCaps*"/>
+ </parameter>
+ </parameters>
+ </constructor>
+ <method name="get_caps"
+ c:identifier="gst_pad_template_get_caps"
+ doc="Gets the capabilities of the pad template.
+the caps, take a ref (see gst_caps_ref ()).">
+ <return-value transfer-ownership="full">
+ <type name="Caps" c:type="GstCaps*"/>
+ </return-value>
+ </method>
+ <method name="pad_created"
+ c:identifier="gst_pad_template_pad_created"
+ doc="Emit the pad-created signal for this template when created by this pad.">
+ <return-value transfer-ownership="none">
+ <type name="none" c:type="void"/>
+ </return-value>
+ <parameters>
+ <parameter name="pad" transfer-ownership="none">
+ <type name="Pad" c:type="GstPad*"/>
+ </parameter>
+ </parameters>
+ </method>
+ <property name="caps" writable="1" construct-only="1">
+ <type name="Caps" c:type="GstCaps"/>
+ </property>
+ <property name="direction" writable="1" construct-only="1">
+ <type name="PadDirection" c:type="GstPadDirection"/>
+ </property>
+ <property name="name-template" writable="1" construct-only="1">
+ <type name="utf8" c:type="gchararray"/>
+ </property>
+ <property name="presence" writable="1" construct-only="1">
+ <type name="PadPresence" c:type="GstPadPresence"/>
+ </property>
+ <field name="object">
+ <type name="Object" c:type="GstObject"/>
+ </field>
+ <field name="name_template">
+ <type name="utf8" c:type="gchar*"/>
+ </field>
+ <field name="direction">
+ <type name="PadDirection" c:type="GstPadDirection"/>
+ </field>
+ <field name="presence">
+ <type name="PadPresence" c:type="GstPadPresence"/>
+ </field>
+ <field name="caps">
+ <type name="Caps" c:type="GstCaps*"/>
+ </field>
+ <field name="_gst_reserved">
+ <array zero-terminated="0" c:type="gpointer" fixed-size="4">
+ <type name="any"/>
+ </array>
+ </field>
+ <glib:signal name="pad-created"
+ doc="This signal is fired when an element creates a pad from this template.">
+ <return-value transfer-ownership="full">
+ <type name="none" c:type="void"/>
+ </return-value>
+ <parameters>
+ <parameter name="pad" transfer-ownership="none">
+ <type name="Pad" c:type="GstPad"/>
+ </parameter>
+ </parameters>
+ </glib:signal>
+ </class>
+ <record name="PadTemplateClass"
+ c:type="GstPadTemplateClass"
+ glib:is-gtype-struct-for="PadTemplate">
+ <field name="parent_class">
+ <type name="ObjectClass" c:type="GstObjectClass"/>
+ </field>
+ <field name="pad_created">
+ <callback name="pad_created" c:type="pad_created">
+ <return-value transfer-ownership="none">
+ <type name="none" c:type="void"/>
+ </return-value>
+ <parameters>
+ <parameter name="templ" transfer-ownership="none">
+ <type name="PadTemplate" c:type="GstPadTemplate*"/>
+ </parameter>
+ <parameter name="pad" transfer-ownership="none">
+ <type name="Pad" c:type="GstPad*"/>
+ </parameter>
+ </parameters>
+ </callback>
+ </field>
+ <field name="_gst_reserved">
+ <array zero-terminated="0" c:type="gpointer" fixed-size="4">
+ <type name="any"/>
+ </array>
+ </field>
+ </record>
+ <bitfield name="PadTemplateFlags"
+ doc="Flags for the padtemplate"
+ c:type="GstPadTemplateFlags">
+ <member name="fixed" value="16" c:identifier="GST_PAD_TEMPLATE_FIXED"/>
+ <member name="flag_last"
+ value="256"
+ c:identifier="GST_PAD_TEMPLATE_FLAG_LAST"/>
+ </bitfield>
+ <callback name="PadUnlinkFunction" c:type="GstPadUnlinkFunction">
+ <return-value transfer-ownership="none">
+ <type name="none" c:type="void"/>
+ </return-value>
+ <parameters>
+ <parameter name="pad" transfer-ownership="none">
+ <type name="Pad" c:type="GstPad*"/>
+ </parameter>
+ </parameters>
+ </callback>
+ <record name="ParamSpecFraction"
+ c:type="GstParamSpecFraction"
+ doc="A GParamSpec derived structure that contains the meta data for fractional
+properties.">
+ <field name="parent_instance" writable="1">
+ <type name="GObject.ParamSpec" c:type="GParamSpec"/>
+ </field>
+ <field name="min_num" writable="1">
+ <type name="int" c:type="gint"/>
+ </field>
+ <field name="min_den" writable="1">
+ <type name="int" c:type="gint"/>
+ </field>
+ <field name="max_num" writable="1">
+ <type name="int" c:type="gint"/>
+ </field>
+ <field name="max_den" writable="1">
+ <type name="int" c:type="gint"/>
+ </field>
+ <field name="def_num" writable="1">
+ <type name="int" c:type="gint"/>
+ </field>
+ <field name="def_den" writable="1">
+ <type name="int" c:type="gint"/>
+ </field>
+ </record>
+ <record name="ParamSpecMiniObject"
+ c:type="GstParamSpecMiniObject"
+ doc="A %GParamSpec derived structure that contains the meta data
+for %GstMiniObject properties.">
+ <field name="parent_instance" writable="1">
+ <type name="GObject.ParamSpec" c:type="GParamSpec"/>
+ </field>
+ </record>
+ <record name="ParseContext"
+ c:type="GstParseContext"
+ doc="Opaque structure."
+ version="0.10.20">
+ <constructor name="new"
+ c:identifier="gst_parse_context_new"
+ doc="Allocates a parse context for use with gst_parse_launch_full() or
+gst_parse_launchv_full().
+when no longer needed."
+ version="0.10.20">
+ <return-value transfer-ownership="full">
+ <type name="ParseContext" c:type="GstParseContext*"/>
+ </return-value>
+ </constructor>
+ <method name="get_missing_elements"
+ c:identifier="gst_parse_context_get_missing_elements"
+ doc="Retrieve missing elements from a previous run of gst_parse_launch_full()
+or gst_parse_launchv_full(). Will only return results if an error code
+of %GST_PARSE_ERROR_NO_SUCH_ELEMENT was returned.
+missing elements. Free with g_strfreev() when no longer needed."
+ version="0.10.20">
+ <return-value transfer-ownership="full">
+ <array c:type="gchar**">
+ <type name="utf8"/>
+ </array>
+ </return-value>
+ </method>
+ <method name="free"
+ c:identifier="gst_parse_context_free"
+ doc="Frees a parse context previously allocated with gst_parse_context_new()."
+ version="0.10.20">
+ <return-value transfer-ownership="none">
+ <type name="none" c:type="void"/>
+ </return-value>
+ </method>
+ </record>
+ <enumeration name="ParseError"
+ doc="The different parsing errors that can occur."
+ c:type="GstParseError"
+ glib:error-quark="gst_parse_error_quark">
+ <member name="syntax" value="0" c:identifier="GST_PARSE_ERROR_SYNTAX"/>
+ <member name="no_such_element"
+ value="1"
+ c:identifier="GST_PARSE_ERROR_NO_SUCH_ELEMENT"/>
+ <member name="no_such_property"
+ value="2"
+ c:identifier="GST_PARSE_ERROR_NO_SUCH_PROPERTY"/>
+ <member name="link" value="3" c:identifier="GST_PARSE_ERROR_LINK"/>
+ <member name="could_not_set_property"
+ value="4"
+ c:identifier="GST_PARSE_ERROR_COULD_NOT_SET_PROPERTY"/>
+ <member name="empty_bin"
+ value="5"
+ c:identifier="GST_PARSE_ERROR_EMPTY_BIN"/>
+ <member name="empty" value="6" c:identifier="GST_PARSE_ERROR_EMPTY"/>
+ </enumeration>
+ <bitfield name="ParseFlags"
+ doc="(default behaviour is to return partially constructed bins or elements
+in some cases)
+Parsing options."
+ version="0.10.20"
+ c:type="GstParseFlags">
+ <member name="none" value="0" c:identifier="GST_PARSE_FLAG_NONE"/>
+ <member name="fatal_errors"
+ value="1"
+ c:identifier="GST_PARSE_FLAG_FATAL_ERRORS"/>
+ </bitfield>
+ <class name="Pipeline"
+ c:type="GstPipeline"
+ doc="GST_PIPELINE_FLAG_FIXED_CLOCK is set.
+property would be the running_time, the total time spent in the
+PLAYING state without being flushed. (deprecated, use the start_time
+on GstElement).
+when setting elements to PLAYING.
+The #GstPipeline structure."
+ parent="Bin"
+ glib:type-name="GstPipeline"
+ glib:get-type="gst_pipeline_get_type"
+ glib:type-struct="PipelineClass">
+ <implements name="ChildProxy"/>
+ <constructor name="new"
+ c:identifier="gst_pipeline_new"
+ doc="Create a new pipeline with the given name.
+MT safe.">
+ <return-value transfer-ownership="full">
+ <type name="Pipeline" c:type="GstElement*"/>
+ </return-value>
+ <parameters>
+ <parameter name="name" transfer-ownership="none">
+ <type name="utf8" c:type="gchar*"/>
+ </parameter>
+ </parameters>
+ </constructor>
+ <method name="get_bus"
+ c:identifier="gst_pipeline_get_bus"
+ doc="Gets the #GstBus of @pipeline. The bus allows applications to receive
+#GstMessage packets.
+MT safe.">
+ <return-value transfer-ownership="full">
+ <type name="Bus" c:type="GstBus*"/>
+ </return-value>
+ </method>
+ <method name="set_new_stream_time"
+ c:identifier="gst_pipeline_set_new_stream_time"
+ doc="Set the new start time of @pipeline to @time. The start time is used to
+set the base time on the elements (see gst_element_set_base_time())
+in the PAUSED->PLAYING state transition.
+Setting @time to #GST_CLOCK_TIME_NONE will disable the pipeline's management
+of element base time. The application will then be responsible for
+performing base time distribution. This is sometimes useful if you want to
+synchronize capture from multiple pipelines, and you can also ensure that the
+pipelines have the same clock.
+MT safe.
+gst_element_set_start_time()."
+ deprecated="This function has the wrong name and is equivalent to">
+ <return-value transfer-ownership="none">
+ <type name="none" c:type="void"/>
+ </return-value>
+ <parameters>
+ <parameter name="time" transfer-ownership="none">
+ <type name="ClockTime" c:type="GstClockTime"/>
+ </parameter>
+ </parameters>
+ </method>
+ <method name="get_last_stream_time"
+ c:identifier="gst_pipeline_get_last_stream_time"
+ doc="Gets the last running time of @pipeline. If the pipeline is PLAYING,
+the returned time is the running time used to configure the element's
+base time in the PAUSED->PLAYING state. If the pipeline is PAUSED, the
+returned time is the running time when the pipeline was paused.
+This function returns #GST_CLOCK_TIME_NONE if the pipeline was
+configured to not handle the management of the element's base time
+(see gst_pipeline_set_new_stream_time()).
+MT safe.
+gst_element_get_start_time()."
+ deprecated="This function has the wrong name and is equivalent to">
+ <return-value transfer-ownership="full">
+ <type name="ClockTime" c:type="GstClockTime"/>
+ </return-value>
+ </method>
+ <method name="use_clock"
+ c:identifier="gst_pipeline_use_clock"
+ doc="Force @pipeline to use the given @clock. The pipeline will
+always use the given clock even if new clock providers are added
+to this pipeline.
+If @clock is NULL all clocking will be disabled which will make
+the pipeline run as fast as possible.
+MT safe.">
+ <return-value transfer-ownership="none">
+ <type name="none" c:type="void"/>
+ </return-value>
+ <parameters>
+ <parameter name="clock" transfer-ownership="none">
+ <type name="Clock" c:type="GstClock*"/>
+ </parameter>
+ </parameters>
+ </method>
+ <method name="set_clock"
+ c:identifier="gst_pipeline_set_clock"
+ doc="Set the clock for @pipeline. The clock will be distributed
+to all the elements managed by the pipeline.
+some element did not accept the clock.
+MT safe.">
+ <return-value transfer-ownership="none">
+ <type name="boolean" c:type="gboolean"/>
+ </return-value>
+ <parameters>
+ <parameter name="clock" transfer-ownership="none">
+ <type name="Clock" c:type="GstClock*"/>
+ </parameter>
+ </parameters>
+ </method>
+ <method name="get_clock"
+ c:identifier="gst_pipeline_get_clock"
+ doc="Gets the current clock used by @pipeline.">
+ <return-value transfer-ownership="full">
+ <type name="Clock" c:type="GstClock*"/>
+ </return-value>
+ </method>
+ <method name="auto_clock"
+ c:identifier="gst_pipeline_auto_clock"
+ doc="Let @pipeline select a clock automatically. This is the default
+behaviour.
+Use this function if you previous forced a fixed clock with
+gst_pipeline_use_clock() and want to restore the default
+pipeline clock selection algorithm.
+MT safe.">
+ <return-value transfer-ownership="none">
+ <type name="none" c:type="void"/>
+ </return-value>
+ </method>
+ <method name="set_delay"
+ c:identifier="gst_pipeline_set_delay"
+ doc="Set the expected delay needed for all elements to perform the
+PAUSED to PLAYING state change. @delay will be added to the
+base time of the elements so that they wait an additional @delay
+amount of time before starting to process buffers and cannot be
+#GST_CLOCK_TIME_NONE.
+This option is used for tuning purposes and should normally not be
+used.
+MT safe."
+ version="0.10.5">
+ <return-value transfer-ownership="none">
+ <type name="none" c:type="void"/>
+ </return-value>
+ <parameters>
+ <parameter name="delay" transfer-ownership="none">
+ <type name="ClockTime" c:type="GstClockTime"/>
+ </parameter>
+ </parameters>
+ </method>
+ <method name="get_delay"
+ c:identifier="gst_pipeline_get_delay"
+ doc="Get the configured delay (see gst_pipeline_set_delay()).
+MT safe."
+ version="0.10.5">
+ <return-value transfer-ownership="full">
+ <type name="ClockTime" c:type="GstClockTime"/>
+ </return-value>
+ </method>
+ <method name="set_auto_flush_bus"
+ c:identifier="gst_pipeline_set_auto_flush_bus"
+ doc="the pipeline goes from READY to NULL state
+Usually, when a pipeline goes from READY to NULL state, it automatically
+flushes all pending messages on the bus, which is done for refcounting
+purposes, to break circular references.
+This means that applications that update state using (async) bus messages
+(e.g. do certain things when a pipeline goes from PAUSED to READY) might
+not get to see messages when the pipeline is shut down, because they might
+be flushed before they can be dispatched in the main thread. This behaviour
+can be disabled using this function.
+It is important that all messages on the bus are handled when the
+automatic flushing is disabled else memory leaks will be introduced.
+MT safe."
+ version="0.10.4">
+ <return-value transfer-ownership="none">
+ <type name="none" c:type="void"/>
+ </return-value>
+ <parameters>
+ <parameter name="auto_flush" transfer-ownership="none">
+ <type name="boolean" c:type="gboolean"/>
+ </parameter>
+ </parameters>
+ </method>
+ <method name="get_auto_flush_bus"
+ c:identifier="gst_pipeline_get_auto_flush_bus"
+ doc="Check if @pipeline will automatically flush messages when going to
+the NULL state.
+going from READY to NULL state or not.
+MT safe."
+ version="0.10.4">
+ <return-value transfer-ownership="none">
+ <type name="boolean" c:type="gboolean"/>
+ </return-value>
+ </method>
+ <property name="auto-flush-bus"
+ version="0.10.4"
+ writable="1"
+ doc="Whether or not to automatically flush all messages on the
+pipeline's bus when going from READY to NULL state. Please see
+gst_pipeline_set_auto_flush_bus() for more information on this option.">
+ <type name="boolean" c:type="gboolean"/>
+ </property>
+ <property name="delay" writable="1">
+ <type name="uint64" c:type="guint64"/>
+ </property>
+ <field name="bin">
+ <type name="Bin" c:type="GstBin"/>
+ </field>
+ <field name="fixed_clock">
+ <type name="Clock" c:type="GstClock*"/>
+ </field>
+ <field name="stream_time">
+ <type name="ClockTime" c:type="GstClockTime"/>
+ </field>
+ <field name="delay">
+ <type name="ClockTime" c:type="GstClockTime"/>
+ </field>
+ <field name="priv">
+ <type name="PipelinePrivate" c:type="GstPipelinePrivate*"/>
+ </field>
+ <field name="_gst_reserved">
+ <array zero-terminated="0" c:type="gpointer" fixed-size="3">
+ <type name="any"/>
+ </array>
+ </field>
+ </class>
+ <record name="PipelineClass"
+ c:type="GstPipelineClass"
+ glib:is-gtype-struct-for="Pipeline">
+ <field name="parent_class">
+ <type name="BinClass" c:type="GstBinClass"/>
+ </field>
+ <field name="_gst_reserved">
+ <array zero-terminated="0" c:type="gpointer" fixed-size="4">
+ <type name="any"/>
+ </array>
+ </field>
+ </record>
+ <bitfield name="PipelineFlags"
+ doc="Pipeline flags"
+ c:type="GstPipelineFlags">
+ <member name="fixed_clock"
+ value="33554432"
+ c:identifier="GST_PIPELINE_FLAG_FIXED_CLOCK"/>
+ <member name="last"
+ value="536870912"
+ c:identifier="GST_PIPELINE_FLAG_LAST"/>
+ </bitfield>
+ <record name="PipelinePrivate" c:type="GstPipelinePrivate">
+ </record>
+ <class name="Plugin"
+ c:type="GstPlugin"
+ doc="The plugin object"
+ parent="Object"
+ glib:type-name="GstPlugin"
+ glib:get-type="gst_plugin_get_type"
+ glib:type-struct="PluginClass">
+ <function name="register_static"
+ c:identifier="gst_plugin_register_static"
+ doc="plugin was compiled for, you can just use GST_VERSION_MAJOR here
+plugin was compiled for, you can just use GST_VERSION_MINOR here
+library-specific namespace prefix in order to avoid name conflicts in
+case a similar plugin with the same name ever gets added to GStreamer)
+(see #GstPluginDesc above) or the plugin will not be registered.
+Registers a static plugin, ie. a plugin which is private to an application
+or library and contained within the application or library (as opposed to
+being shipped as a separate module file).
+You must make sure that GStreamer has been initialised (with gst_init() or
+via gst_init_get_option_group()) before calling this function."
+ version="0.10.16">
+ <return-value transfer-ownership="none">
+ <type name="boolean" c:type="gboolean"/>
+ </return-value>
+ <parameters>
+ <parameter name="major_version" transfer-ownership="none">
+ <type name="int" c:type="gint"/>
+ </parameter>
+ <parameter name="minor_version" transfer-ownership="none">
+ <type name="int" c:type="gint"/>
+ </parameter>
+ <parameter name="name" transfer-ownership="none">
+ <type name="utf8" c:type="gchar*"/>
+ </parameter>
+ <parameter name="description" transfer-ownership="none">
+ <type name="utf8" c:type="gchar*"/>
+ </parameter>
+ <parameter name="init_func" transfer-ownership="none" scope="call">
+ <type name="PluginInitFunc" c:type="GstPluginInitFunc"/>
+ </parameter>
+ <parameter name="version" transfer-ownership="none">
+ <type name="utf8" c:type="gchar*"/>
+ </parameter>
+ <parameter name="license" transfer-ownership="none">
+ <type name="utf8" c:type="gchar*"/>
+ </parameter>
+ <parameter name="source" transfer-ownership="none">
+ <type name="utf8" c:type="gchar*"/>
+ </parameter>
+ <parameter name="package" transfer-ownership="none">
+ <type name="utf8" c:type="gchar*"/>
+ </parameter>
+ <parameter name="origin" transfer-ownership="none">
+ <type name="utf8" c:type="gchar*"/>
+ </parameter>
+ </parameters>
+ </function>
+ <function name="register_static_full"
+ c:identifier="gst_plugin_register_static_full"
+ doc="plugin was compiled for, you can just use GST_VERSION_MAJOR here
+plugin was compiled for, you can just use GST_VERSION_MINOR here
+library-specific namespace prefix in order to avoid name conflicts in
+case a similar plugin with the same name ever gets added to GStreamer)
+(see #GstPluginDesc above) or the plugin will not be registered.
+Registers a static plugin, ie. a plugin which is private to an application
+or library and contained within the application or library (as opposed to
+being shipped as a separate module file) with a #GstPluginInitFullFunc
+which allows user data to be passed to the callback function (useful
+for bindings).
+You must make sure that GStreamer has been initialised (with gst_init() or
+via gst_init_get_option_group()) before calling this function."
+ version="0.10.24">
+ <return-value transfer-ownership="none">
+ <type name="boolean" c:type="gboolean"/>
+ </return-value>
+ <parameters>
+ <parameter name="major_version" transfer-ownership="none">
+ <type name="int" c:type="gint"/>
+ </parameter>
+ <parameter name="minor_version" transfer-ownership="none">
+ <type name="int" c:type="gint"/>
+ </parameter>
+ <parameter name="name" transfer-ownership="none">
+ <type name="utf8" c:type="gchar*"/>
+ </parameter>
+ <parameter name="description" transfer-ownership="none">
+ <type name="utf8" c:type="gchar*"/>
+ </parameter>
+ <parameter name="init_full_func"
+ transfer-ownership="none"
+ scope="call">
+ <type name="PluginInitFullFunc" c:type="GstPluginInitFullFunc"/>
+ </parameter>
+ <parameter name="version" transfer-ownership="none">
+ <type name="utf8" c:type="gchar*"/>
+ </parameter>
+ <parameter name="license" transfer-ownership="none">
+ <type name="utf8" c:type="gchar*"/>
+ </parameter>
+ <parameter name="source" transfer-ownership="none">
+ <type name="utf8" c:type="gchar*"/>
+ </parameter>
+ <parameter name="package" transfer-ownership="none">
+ <type name="utf8" c:type="gchar*"/>
+ </parameter>
+ <parameter name="origin" transfer-ownership="none">
+ <type name="utf8" c:type="gchar*"/>
+ </parameter>
+ <parameter name="user_data" transfer-ownership="none">
+ <type name="any" c:type="gpointer"/>
+ </parameter>
+ </parameters>
+ </function>
+ <function name="load_file"
+ c:identifier="gst_plugin_load_file"
+ doc="Loads the given plugin and refs it. Caller needs to unref after use.
+newly-loaded GstPlugin, or NULL if an error occurred."
+ throws="1">
+ <return-value transfer-ownership="full">
+ <type name="Plugin" c:type="GstPlugin*"/>
+ </return-value>
+ <parameters>
+ <parameter name="filename" transfer-ownership="none">
+ <type name="utf8" c:type="gchar*"/>
+ </parameter>
+ </parameters>
+ </function>
+ <function name="load_by_name"
+ c:identifier="gst_plugin_load_by_name"
+ doc="Load the named plugin. Refs the plugin.">
+ <return-value transfer-ownership="full">
+ <type name="Plugin" c:type="GstPlugin*"/>
+ </return-value>
+ <parameters>
+ <parameter name="name" transfer-ownership="none">
+ <type name="utf8" c:type="gchar*"/>
+ </parameter>
+ </parameters>
+ </function>
+ <function name="list_free"
+ c:identifier="gst_plugin_list_free"
+ doc="Unrefs each member of @list, then frees the list.">
+ <return-value transfer-ownership="none">
+ <type name="none" c:type="void"/>
+ </return-value>
+ <parameters>
+ <parameter name="list" transfer-ownership="none">
+ <type name="GLib.List" c:type="GList*"/>
+ </parameter>
+ </parameters>
+ </function>
+ <method name="get_name"
+ c:identifier="gst_plugin_get_name"
+ doc="Get the short name of the plugin">
+ <return-value transfer-ownership="none">
+ <type name="utf8" c:type="gchar*"/>
+ </return-value>
+ </method>
+ <method name="get_description"
+ c:identifier="gst_plugin_get_description"
+ doc="Get the long descriptive name of the plugin">
+ <return-value transfer-ownership="none">
+ <type name="utf8" c:type="gchar*"/>
+ </return-value>
+ </method>
+ <method name="get_filename"
+ c:identifier="gst_plugin_get_filename"
+ doc="get the filename of the plugin">
+ <return-value transfer-ownership="none">
+ <type name="utf8" c:type="gchar*"/>
+ </return-value>
+ </method>
+ <method name="get_version"
+ c:identifier="gst_plugin_get_version"
+ doc="get the version of the plugin">
+ <return-value transfer-ownership="none">
+ <type name="utf8" c:type="gchar*"/>
+ </return-value>
+ </method>
+ <method name="get_license"
+ c:identifier="gst_plugin_get_license"
+ doc="get the license of the plugin">
+ <return-value transfer-ownership="none">
+ <type name="utf8" c:type="gchar*"/>
+ </return-value>
+ </method>
+ <method name="get_source"
+ c:identifier="gst_plugin_get_source"
+ doc="get the source module the plugin belongs to.">
+ <return-value transfer-ownership="none">
+ <type name="utf8" c:type="gchar*"/>
+ </return-value>
+ </method>
+ <method name="get_package"
+ c:identifier="gst_plugin_get_package"
+ doc="get the package the plugin belongs to.">
+ <return-value transfer-ownership="none">
+ <type name="utf8" c:type="gchar*"/>
+ </return-value>
+ </method>
+ <method name="get_origin"
+ c:identifier="gst_plugin_get_origin"
+ doc="get the URL where the plugin comes from">
+ <return-value transfer-ownership="none">
+ <type name="utf8" c:type="gchar*"/>
+ </return-value>
+ </method>
+ <method name="get_cache_data"
+ c:identifier="gst_plugin_get_cache_data"
+ doc="Gets the plugin specific data cache. If it is %NULL there is no cached data
+stored. This is the case when the registry is getting rebuilt."
+ version="0.10.24">
+ <return-value transfer-ownership="none">
+ <type name="Structure" c:type="GstStructure*"/>
+ </return-value>
+ </method>
+ <method name="set_cache_data"
+ c:identifier="gst_plugin_set_cache_data"
+ doc="Adds plugin specific data to cache. Passes the ownership of the structure to
+the @plugin.
+The cache is flushed every time the registry is rebuilt."
+ version="0.10.24">
+ <return-value transfer-ownership="none">
+ <type name="none" c:type="void"/>
+ </return-value>
+ <parameters>
+ <parameter name="cache_data" transfer-ownership="none">
+ <type name="Structure" c:type="GstStructure*"/>
+ </parameter>
+ </parameters>
+ </method>
+ <method name="get_module"
+ c:identifier="gst_plugin_get_module"
+ doc="Gets the #GModule of the plugin. If the plugin isn't loaded yet, NULL is
+returned.
+loaded yet.">
+ <return-value transfer-ownership="full">
+ <type name="GModule.Module" c:type="GModule*"/>
+ </return-value>
+ </method>
+ <method name="is_loaded"
+ c:identifier="gst_plugin_is_loaded"
+ doc="queries if the plugin is loaded into memory">
+ <return-value transfer-ownership="none">
+ <type name="boolean" c:type="gboolean"/>
+ </return-value>
+ </method>
+ <method name="name_filter"
+ c:identifier="gst_plugin_name_filter"
+ doc="A standard filter that returns TRUE when the plugin is of the
+given name.">
+ <return-value transfer-ownership="none">
+ <type name="boolean" c:type="gboolean"/>
+ </return-value>
+ <parameters>
+ <parameter name="name" transfer-ownership="none">
+ <type name="utf8" c:type="gchar*"/>
+ </parameter>
+ </parameters>
+ </method>
+ <method name="load"
+ c:identifier="gst_plugin_load"
+ doc="Loads @plugin. Note that the *return value* is the loaded plugin; @plugin is
+untouched. The normal use pattern of this function goes like this:
+<programlisting>
+GstPlugin *loaded_plugin;
+loaded_plugin = gst_plugin_load (plugin);
+// presumably, we're no longer interested in the potentially-unloaded plugin
+gst_object_unref (plugin);
+plugin = loaded_plugin;
+</programlisting>">
+ <return-value transfer-ownership="full">
+ <type name="Plugin" c:type="GstPlugin*"/>
+ </return-value>
+ </method>
+ <method name="add_dependency"
+ c:identifier="gst_plugin_add_dependency"
+ doc="feature set of the plugin (e.g. an environment variable containing
+paths where to look for additional modules/plugins of a library),
+or NULL. Environment variable names may be followed by a path component
+which will be added to the content of the environment variable, e.g.
+"HOME/.mystuff/plugins".
+may be.
+depending on @flags) to be used in combination with the paths from
+Make GStreamer aware of external dependencies which affect the feature
+set of this plugin (ie. the elements or typefinders associated with it).
+GStreamer will re-inspect plugins with external dependencies whenever any
+of the external dependencies change. This is useful for plugins which wrap
+other plugin systems, e.g. a plugin which wraps a plugin-based visualisation
+library and makes visualisations available as GStreamer elements, or a
+codec loader which exposes elements and/or caps dependent on what external
+codec libraries are currently installed."
+ version="0.10.22">
+ <return-value transfer-ownership="none">
+ <type name="none" c:type="void"/>
+ </return-value>
+ <parameters>
+ <parameter name="env_vars" transfer-ownership="none">
+ <array c:type="gchar**">
+ <type name="utf8"/>
+ </array>
+ </parameter>
+ <parameter name="paths" transfer-ownership="none">
+ <array c:type="gchar**">
+ <type name="utf8"/>
+ </array>
+ </parameter>
+ <parameter name="names" transfer-ownership="none">
+ <array c:type="gchar**">
+ <type name="utf8"/>
+ </array>
+ </parameter>
+ <parameter name="flags" transfer-ownership="none">
+ <type name="PluginDependencyFlags"
+ c:type="GstPluginDependencyFlags"/>
+ </parameter>
+ </parameters>
+ </method>
+ <method name="add_dependency_simple"
+ c:identifier="gst_plugin_add_dependency_simple"
+ doc="or NULL. Environment variable names may be followed by a path component
+which will be added to the content of the environment variable, e.g.
+"HOME/.mystuff/plugins:MYSTUFF_PLUGINS_PATH"
+or NULL
+Make GStreamer aware of external dependencies which affect the feature
+set of this plugin (ie. the elements or typefinders associated with it).
+GStreamer will re-inspect plugins with external dependencies whenever any
+of the external dependencies change. This is useful for plugins which wrap
+other plugin systems, e.g. a plugin which wraps a plugin-based visualisation
+library and makes visualisations available as GStreamer elements, or a
+codec loader which exposes elements and/or caps dependent on what external
+codec libraries are currently installed.
+Convenience wrapper function for gst_plugin_add_dependency() which
+takes simple strings as arguments instead of string arrays, with multiple
+arguments separated by predefined delimiters (see above)."
+ version="0.10.22">
+ <return-value transfer-ownership="none">
+ <type name="none" c:type="void"/>
+ </return-value>
+ <parameters>
+ <parameter name="env_vars" transfer-ownership="none">
+ <type name="utf8" c:type="gchar*"/>
+ </parameter>
+ <parameter name="paths" transfer-ownership="none">
+ <type name="utf8" c:type="gchar*"/>
+ </parameter>
+ <parameter name="names" transfer-ownership="none">
+ <type name="utf8" c:type="gchar*"/>
+ </parameter>
+ <parameter name="flags" transfer-ownership="none">
+ <type name="PluginDependencyFlags"
+ c:type="GstPluginDependencyFlags"/>
+ </parameter>
+ </parameters>
+ </method>
+ <field name="object">
+ <type name="Object" c:type="GstObject"/>
+ </field>
+ <field name="desc">
+ <type name="PluginDesc" c:type="GstPluginDesc"/>
+ </field>
+ <field name="orig_desc">
+ <type name="PluginDesc" c:type="GstPluginDesc*"/>
+ </field>
+ <field name="flags">
+ <type name="uint" c:type="unsigned"/>
+ </field>
+ <field name="filename">
+ <type name="utf8" c:type="gchar*"/>
+ </field>
+ <field name="basename">
+ <type name="utf8" c:type="gchar*"/>
+ </field>
+ <field name="module">
+ <type name="GModule.Module" c:type="GModule*"/>
+ </field>
+ <field name="file_size">
+ <type name="size_t" c:type="off_t"/>
+ </field>
+ <field name="file_mtime">
+ <type name="time_t" c:type="time_t"/>
+ </field>
+ <field name="registered">
+ <type name="boolean" c:type="gboolean"/>
+ </field>
+ <field name="priv">
+ <type name="PluginPrivate" c:type="GstPluginPrivate*"/>
+ </field>
+ <field name="_gst_reserved">
+ <array zero-terminated="0" c:type="gpointer" fixed-size="3">
+ <type name="any"/>
+ </array>
+ </field>
+ </class>
+ <record name="PluginClass"
+ c:type="GstPluginClass"
+ glib:is-gtype-struct-for="Plugin">
+ <field name="object_class">
+ <type name="ObjectClass" c:type="GstObjectClass"/>
+ </field>
+ <field name="_gst_reserved">
+ <array zero-terminated="0" c:type="gpointer" fixed-size="4">
+ <type name="any"/>
+ </array>
+ </field>
+ </record>
+ <bitfield name="PluginDependencyFlags"
+ doc="argument only if none of the environment variables is set
+filename argument as filter suffix and check all matching files in
+the directory
+Flags used in connection with gst_plugin_add_dependency()."
+ version="0.10.22"
+ c:type="GstPluginDependencyFlags">
+ <member name="none"
+ value="0"
+ c:identifier="GST_PLUGIN_DEPENDENCY_FLAG_NONE"/>
+ <member name="recurse"
+ value="1"
+ c:identifier="GST_PLUGIN_DEPENDENCY_FLAG_RECURSE"/>
+ <member name="paths_are_default_only"
+ value="2"
+ c:identifier="GST_PLUGIN_DEPENDENCY_FLAG_PATHS_ARE_DEFAULT_ONLY"/>
+ <member name="file_name_is_suffix"
+ value="4"
+ c:identifier="GST_PLUGIN_DEPENDENCY_FLAG_FILE_NAME_IS_SUFFIX"/>
+ </bitfield>
+ <record name="PluginDesc"
+ c:type="GstPluginDesc"
+ doc="A plugin should export a variable of this type called plugin_desc. The plugin
+loader will use the data provided there to initialize the plugin.
+BSD, MIT/X11, Proprietary, unknown.">
+ <field name="major_version" writable="1">
+ <type name="int" c:type="gint"/>
+ </field>
+ <field name="minor_version" writable="1">
+ <type name="int" c:type="gint"/>
+ </field>
+ <field name="name" writable="1">
+ <type name="utf8" c:type="gchar*"/>
+ </field>
+ <field name="description" writable="1">
+ <type name="utf8" c:type="gchar*"/>
+ </field>
+ <field name="plugin_init" writable="1">
+ <type name="PluginInitFunc" c:type="GstPluginInitFunc"/>
+ </field>
+ <field name="version" writable="1">
+ <type name="utf8" c:type="gchar*"/>
+ </field>
+ <field name="license" writable="1">
+ <type name="utf8" c:type="gchar*"/>
+ </field>
+ <field name="source" writable="1">
+ <type name="utf8" c:type="gchar*"/>
+ </field>
+ <field name="package" writable="1">
+ <type name="utf8" c:type="gchar*"/>
+ </field>
+ <field name="origin" writable="1">
+ <type name="utf8" c:type="gchar*"/>
+ </field>
+ <field name="_gst_reserved" writable="1">
+ <array zero-terminated="0" c:type="gpointer" fixed-size="4">
+ <type name="any"/>
+ </array>
+ </field>
+ </record>
+ <enumeration name="PluginError"
+ doc="The plugin loading errors"
+ c:type="GstPluginError"
+ glib:error-quark="gst_plugin_error_quark">
+ <member name="module" value="0" c:identifier="GST_PLUGIN_ERROR_MODULE"/>
+ <member name="dependencies"
+ value="1"
+ c:identifier="GST_PLUGIN_ERROR_DEPENDENCIES"/>
+ <member name="name_mismatch"
+ value="2"
+ c:identifier="GST_PLUGIN_ERROR_NAME_MISMATCH"/>
+ </enumeration>
+ <class name="PluginFeature"
+ c:type="GstPluginFeature"
+ doc="Opaque #GstPluginFeature structure."
+ parent="Object"
+ abstract="1"
+ glib:type-name="GstPluginFeature"
+ glib:get-type="gst_plugin_feature_get_type"
+ glib:type-struct="PluginFeatureClass">
+ <function name="list_free"
+ c:identifier="gst_plugin_feature_list_free"
+ doc="Unrefs each member of @list, then frees the list.">
+ <return-value transfer-ownership="none">
+ <type name="none" c:type="void"/>
+ </return-value>
+ <parameters>
+ <parameter name="list" transfer-ownership="none">
+ <type name="GLib.List" c:type="GList*"/>
+ </parameter>
+ </parameters>
+ </function>
+ <function name="list_copy"
+ c:identifier="gst_plugin_feature_list_copy"
+ doc="Copies the list of features. Caller should call @gst_plugin_feature_list_free
+when done with the list."
+ version="0.10.26">
+ <return-value transfer-ownership="full">
+ <type name="GLib.List" c:type="GList*"/>
+ </return-value>
+ <parameters>
+ <parameter name="list" transfer-ownership="none">
+ <type name="GLib.List" c:type="GList*"/>
+ </parameter>
+ </parameters>
+ </function>
+ <method name="load"
+ c:identifier="gst_plugin_feature_load"
+ doc="Loads the plugin containing @feature if it's not already loaded. @feature is
+unaffected; use the return value instead.
+Normally this function is used like this:
+|[
+GstPluginFeature *loaded_feature;
+loaded_feature = gst_plugin_feature_load (feature);
+// presumably, we're no longer interested in the potentially-unloaded feature
+gst_object_unref (feature);
+feature = loaded_feature;
+]|">
+ <return-value transfer-ownership="full">
+ <type name="PluginFeature" c:type="GstPluginFeature*"/>
+ </return-value>
+ </method>
+ <method name="type_name_filter"
+ c:identifier="gst_plugin_feature_type_name_filter"
+ doc="Compares type and name of plugin feature. Can be used with gst_filter_run().">
+ <return-value transfer-ownership="none">
+ <type name="boolean" c:type="gboolean"/>
+ </return-value>
+ <parameters>
+ <parameter name="data" transfer-ownership="none">
+ <type name="TypeNameData" c:type="GstTypeNameData*"/>
+ </parameter>
+ </parameters>
+ </method>
+ <method name="set_rank"
+ c:identifier="gst_plugin_feature_set_rank"
+ doc="Specifies a rank for a plugin feature, so that autoplugging uses
+the most appropriate feature.">
+ <return-value transfer-ownership="none">
+ <type name="none" c:type="void"/>
+ </return-value>
+ <parameters>
+ <parameter name="rank" transfer-ownership="none">
+ <type name="uint" c:type="guint"/>
+ </parameter>
+ </parameters>
+ </method>
+ <method name="set_name"
+ c:identifier="gst_plugin_feature_set_name"
+ doc="Sets the name of a plugin feature. The name uniquely identifies a feature
+within all features of the same type. Renaming a plugin feature is not
+allowed. A copy is made of the name so you should free the supplied @name
+after calling this function.">
+ <return-value transfer-ownership="none">
+ <type name="none" c:type="void"/>
+ </return-value>
+ <parameters>
+ <parameter name="name" transfer-ownership="none">
+ <type name="utf8" c:type="gchar*"/>
+ </parameter>
+ </parameters>
+ </method>
+ <method name="get_rank"
+ c:identifier="gst_plugin_feature_get_rank"
+ doc="Gets the rank of a plugin feature.">
+ <return-value transfer-ownership="none">
+ <type name="uint" c:type="guint"/>
+ </return-value>
+ </method>
+ <method name="get_name"
+ c:identifier="gst_plugin_feature_get_name"
+ doc="Gets the name of a plugin feature.">
+ <return-value transfer-ownership="none">
+ <type name="utf8" c:type="gchar*"/>
+ </return-value>
+ </method>
+ <method name="check_version"
+ c:identifier="gst_plugin_feature_check_version"
+ doc="Checks whether the given plugin feature is at least
+the required version
+the required version, otherwise #FALSE.">
+ <return-value transfer-ownership="none">
+ <type name="boolean" c:type="gboolean"/>
+ </return-value>
+ <parameters>
+ <parameter name="min_major" transfer-ownership="none">
+ <type name="uint" c:type="guint"/>
+ </parameter>
+ <parameter name="min_minor" transfer-ownership="none">
+ <type name="uint" c:type="guint"/>
+ </parameter>
+ <parameter name="min_micro" transfer-ownership="none">
+ <type name="uint" c:type="guint"/>
+ </parameter>
+ </parameters>
+ </method>
+ <field name="object">
+ <type name="Object" c:type="GstObject"/>
+ </field>
+ <field name="loaded">
+ <type name="boolean" c:type="gboolean"/>
+ </field>
+ <field name="name">
+ <type name="utf8" c:type="gchar*"/>
+ </field>
+ <field name="rank">
+ <type name="uint" c:type="guint"/>
+ </field>
+ <field name="plugin_name">
+ <type name="utf8" c:type="gchar*"/>
+ </field>
+ <field name="_gst_reserved">
+ <array zero-terminated="0" c:type="gpointer" fixed-size="4">
+ <type name="any"/>
+ </array>
+ </field>
+ </class>
+ <record name="PluginFeatureClass"
+ c:type="GstPluginFeatureClass"
+ glib:is-gtype-struct-for="PluginFeature">
+ <field name="parent_class">
+ <type name="ObjectClass" c:type="GstObjectClass"/>
+ </field>
+ <field name="_gst_reserved">
+ <array zero-terminated="0" c:type="gpointer" fixed-size="4">
+ <type name="any"/>
+ </array>
+ </field>
+ </record>
+ <callback name="PluginFeatureFilter"
+ c:type="GstPluginFeatureFilter"
+ doc="gst_registry_feature_filter()
+A function that can be used with e.g. gst_registry_feature_filter()
+to get a list of pluginfeature that match certain criteria.">
+ <return-value transfer-ownership="none">
+ <type name="boolean" c:type="gboolean"/>
+ </return-value>
+ <parameters>
+ <parameter name="feature" transfer-ownership="none">
+ <type name="PluginFeature" c:type="GstPluginFeature*"/>
+ </parameter>
+ <parameter name="user_data" transfer-ownership="none" closure="1">
+ <type name="any" c:type="gpointer"/>
+ </parameter>
+ </parameters>
+ </callback>
+ <callback name="PluginFilter"
+ c:type="GstPluginFilter"
+ doc="A function that can be used with e.g. gst_registry_plugin_filter()
+to get a list of plugins that match certain criteria.">
+ <return-value transfer-ownership="none">
+ <type name="boolean" c:type="gboolean"/>
+ </return-value>
+ <parameters>
+ <parameter name="plugin" transfer-ownership="none">
+ <type name="Plugin" c:type="GstPlugin*"/>
+ </parameter>
+ <parameter name="user_data" transfer-ownership="none" closure="1">
+ <type name="any" c:type="gpointer"/>
+ </parameter>
+ </parameters>
+ </callback>
+ <bitfield name="PluginFlags"
+ doc="The plugin loading state"
+ c:type="GstPluginFlags">
+ <member name="cached" value="1" c:identifier="GST_PLUGIN_FLAG_CACHED"/>
+ <member name="blacklisted"
+ value="2"
+ c:identifier="GST_PLUGIN_FLAG_BLACKLISTED"/>
+ </bitfield>
+ <callback name="PluginInitFullFunc"
+ c:type="GstPluginInitFullFunc"
+ doc="A plugin should provide a pointer to a function of either #GstPluginInitFunc
+or this type in the plugin_desc struct.
+The function will be called by the loader at startup. One would then
+register each #GstPluginFeature. This version allows
+user data to be passed to init function (useful for bindings)."
+ version="0.10.24">
+ <return-value transfer-ownership="none">
+ <type name="boolean" c:type="gboolean"/>
+ </return-value>
+ <parameters>
+ <parameter name="plugin" transfer-ownership="none">
+ <type name="Plugin" c:type="GstPlugin*"/>
+ </parameter>
+ <parameter name="user_data" transfer-ownership="none" closure="1">
+ <type name="any" c:type="gpointer"/>
+ </parameter>
+ </parameters>
+ </callback>
+ <callback name="PluginInitFunc"
+ c:type="GstPluginInitFunc"
+ doc="A plugin should provide a pointer to a function of this type in the
+plugin_desc struct.
+This function will be called by the loader at startup. One would then
+register each #GstPluginFeature.">
+ <return-value transfer-ownership="none">
+ <type name="boolean" c:type="gboolean"/>
+ </return-value>
+ <parameters>
+ <parameter name="plugin" transfer-ownership="none">
+ <type name="Plugin" c:type="GstPlugin*"/>
+ </parameter>
+ </parameters>
+ </callback>
+ <record name="PluginPrivate" c:type="GstPluginPrivate">
+ </record>
+ <record name="Poll"
+ c:type="GstPoll"
+ doc="A set of file/network descriptors.">
+ <constructor name="new"
+ c:identifier="gst_poll_new"
+ doc="Create a new file descriptor set. If @controllable, it
+is possible to restart or flush a call to gst_poll_wait() with
+gst_poll_restart() and gst_poll_set_flushing() respectively.
+gst_poll_free()."
+ version="0.10.18">
+ <return-value transfer-ownership="full">
+ <type name="Poll" c:type="GstPoll*"/>
+ </return-value>
+ <parameters>
+ <parameter name="controllable" transfer-ownership="none">
+ <type name="boolean" c:type="gboolean"/>
+ </parameter>
+ </parameters>
+ </constructor>
+ <constructor name="new_timer"
+ c:identifier="gst_poll_new_timer"
+ doc="Create a new poll object that can be used for scheduling cancellable
+timeouts.
+A timeout is performed with gst_poll_wait(). Multiple timeouts can be
+performed from different threads.
+gst_poll_free()."
+ version="0.10.23">
+ <return-value transfer-ownership="full">
+ <type name="Poll" c:type="GstPoll*"/>
+ </return-value>
+ </constructor>
+ <method name="free"
+ c:identifier="gst_poll_free"
+ doc="Free a file descriptor set."
+ version="0.10.18">
+ <return-value transfer-ownership="none">
+ <type name="none" c:type="void"/>
+ </return-value>
+ </method>
+ <method name="add_fd"
+ c:identifier="gst_poll_add_fd"
+ doc="Add a file descriptor to the file descriptor set."
+ version="0.10.18">
+ <return-value transfer-ownership="none">
+ <type name="boolean" c:type="gboolean"/>
+ </return-value>
+ <parameters>
+ <parameter name="fd" transfer-ownership="none">
+ <type name="PollFD" c:type="GstPollFD*"/>
+ </parameter>
+ </parameters>
+ </method>
+ <method name="remove_fd"
+ c:identifier="gst_poll_remove_fd"
+ doc="Remove a file descriptor from the file descriptor set."
+ version="0.10.18">
+ <return-value transfer-ownership="none">
+ <type name="boolean" c:type="gboolean"/>
+ </return-value>
+ <parameters>
+ <parameter name="fd" transfer-ownership="none">
+ <type name="PollFD" c:type="GstPollFD*"/>
+ </parameter>
+ </parameters>
+ </method>
+ <method name="fd_ctl_write"
+ c:identifier="gst_poll_fd_ctl_write"
+ doc="Control whether the descriptor @fd in @set will be monitored for
+writability."
+ version="0.10.18">
+ <return-value transfer-ownership="none">
+ <type name="boolean" c:type="gboolean"/>
+ </return-value>
+ <parameters>
+ <parameter name="fd" transfer-ownership="none">
+ <type name="PollFD" c:type="GstPollFD*"/>
+ </parameter>
+ <parameter name="active" transfer-ownership="none">
+ <type name="boolean" c:type="gboolean"/>
+ </parameter>
+ </parameters>
+ </method>
+ <method name="fd_ctl_read"
+ c:identifier="gst_poll_fd_ctl_read"
+ doc="Control whether the descriptor @fd in @set will be monitored for
+readability."
+ version="0.10.18">
+ <return-value transfer-ownership="none">
+ <type name="boolean" c:type="gboolean"/>
+ </return-value>
+ <parameters>
+ <parameter name="fd" transfer-ownership="none">
+ <type name="PollFD" c:type="GstPollFD*"/>
+ </parameter>
+ <parameter name="active" transfer-ownership="none">
+ <type name="boolean" c:type="gboolean"/>
+ </parameter>
+ </parameters>
+ </method>
+ <method name="fd_ignored"
+ c:identifier="gst_poll_fd_ignored"
+ doc="Mark @fd as ignored so that the next call to gst_poll_wait() will yield
+the same result for @fd as last time. This function must be called if no
+operation (read/write/recv/send/etc.) will be performed on @fd before
+the next call to gst_poll_wait().
+The reason why this is needed is because the underlying implementation
+might not allow querying the fd more than once between calls to one of
+the re-enabling operations."
+ version="0.10.18">
+ <return-value transfer-ownership="none">
+ <type name="none" c:type="void"/>
+ </return-value>
+ <parameters>
+ <parameter name="fd" transfer-ownership="none">
+ <type name="PollFD" c:type="GstPollFD*"/>
+ </parameter>
+ </parameters>
+ </method>
+ <method name="fd_has_closed"
+ c:identifier="gst_poll_fd_has_closed"
+ doc="Check if @fd in @set has closed the connection."
+ version="0.10.18">
+ <return-value transfer-ownership="none">
+ <type name="boolean" c:type="gboolean"/>
+ </return-value>
+ <parameters>
+ <parameter name="fd" transfer-ownership="none">
+ <type name="PollFD" c:type="GstPollFD*"/>
+ </parameter>
+ </parameters>
+ </method>
+ <method name="fd_has_error"
+ c:identifier="gst_poll_fd_has_error"
+ doc="Check if @fd in @set has an error."
+ version="0.10.18">
+ <return-value transfer-ownership="none">
+ <type name="boolean" c:type="gboolean"/>
+ </return-value>
+ <parameters>
+ <parameter name="fd" transfer-ownership="none">
+ <type name="PollFD" c:type="GstPollFD*"/>
+ </parameter>
+ </parameters>
+ </method>
+ <method name="fd_can_read"
+ c:identifier="gst_poll_fd_can_read"
+ doc="Check if @fd in @set has data to be read."
+ version="0.10.18">
+ <return-value transfer-ownership="none">
+ <type name="boolean" c:type="gboolean"/>
+ </return-value>
+ <parameters>
+ <parameter name="fd" transfer-ownership="none">
+ <type name="PollFD" c:type="GstPollFD*"/>
+ </parameter>
+ </parameters>
+ </method>
+ <method name="fd_can_write"
+ c:identifier="gst_poll_fd_can_write"
+ doc="Check if @fd in @set can be used for writing."
+ version="0.10.18">
+ <return-value transfer-ownership="none">
+ <type name="boolean" c:type="gboolean"/>
+ </return-value>
+ <parameters>
+ <parameter name="fd" transfer-ownership="none">
+ <type name="PollFD" c:type="GstPollFD*"/>
+ </parameter>
+ </parameters>
+ </method>
+ <method name="wait"
+ c:identifier="gst_poll_wait"
+ doc="Wait for activity on the file descriptors in @set. This function waits up to
+the specified @timeout. A timeout of #GST_CLOCK_TIME_NONE waits forever.
+For #GstPoll objects created with gst_poll_new(), this function can only be
+called from a single thread at a time. If called from multiple threads,
+-1 will be returned with errno set to EPERM.
+This is not true for timer #GstPoll objects created with
+gst_poll_new_timer(), where it is allowed to have multiple threads waiting
+simultaneously.
+activity was detected after @timeout. If an error occurs, -1 is returned
+and errno is set."
+ version="0.10.18">
+ <return-value transfer-ownership="none">
+ <type name="int" c:type="gint"/>
+ </return-value>
+ <parameters>
+ <parameter name="timeout" transfer-ownership="none">
+ <type name="ClockTime" c:type="GstClockTime"/>
+ </parameter>
+ </parameters>
+ </method>
+ <method name="set_controllable"
+ c:identifier="gst_poll_set_controllable"
+ doc="When @controllable is %TRUE, this function ensures that future calls to
+gst_poll_wait() will be affected by gst_poll_restart() and
+gst_poll_set_flushing()."
+ version="0.10.18">
+ <return-value transfer-ownership="none">
+ <type name="boolean" c:type="gboolean"/>
+ </return-value>
+ <parameters>
+ <parameter name="controllable" transfer-ownership="none">
+ <type name="boolean" c:type="gboolean"/>
+ </parameter>
+ </parameters>
+ </method>
+ <method name="restart"
+ c:identifier="gst_poll_restart"
+ doc="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."
+ version="0.10.18">
+ <return-value transfer-ownership="none">
+ <type name="none" c:type="void"/>
+ </return-value>
+ </method>
+ <method name="set_flushing"
+ c:identifier="gst_poll_set_flushing"
+ doc="When @flushing is %TRUE, this function ensures that current and future calls
+to gst_poll_wait() will return -1, with errno set to EBUSY.
+Unsetting the flushing state will restore normal operation of @set."
+ version="0.10.18">
+ <return-value transfer-ownership="none">
+ <type name="none" c:type="void"/>
+ </return-value>
+ <parameters>
+ <parameter name="flushing" transfer-ownership="none">
+ <type name="boolean" c:type="gboolean"/>
+ </parameter>
+ </parameters>
+ </method>
+ <method name="write_control"
+ c:identifier="gst_poll_write_control"
+ doc="Write a byte to the control socket of the controllable @set.
+This function is mostly useful for timer #GstPoll objects created with
+gst_poll_new_timer().
+It will make any current and future gst_poll_wait() function return with
+1, meaning the control socket is set. After an equal amount of calls to
+gst_poll_read_control() have been performed, calls to gst_poll_wait() will
+block again until their timeout expired.
+byte could not be written."
+ version="0.10.23">
+ <return-value transfer-ownership="none">
+ <type name="boolean" c:type="gboolean"/>
+ </return-value>
+ </method>
+ <method name="read_control"
+ c:identifier="gst_poll_read_control"
+ doc="Read a byte from the control socket of the controllable @set.
+This function is mostly useful for timer #GstPoll objects created with
+gst_poll_new_timer().
+was no byte to read."
+ version="0.10.23">
+ <return-value transfer-ownership="none">
+ <type name="boolean" c:type="gboolean"/>
+ </return-value>
+ </method>
+ </record>
+ <record name="PollFD" c:type="GstPollFD" doc="A file descriptor object.">
+ <field name="fd" writable="1">
+ <type name="int" c:type="int"/>
+ </field>
+ <field name="idx" writable="1">
+ <type name="int" c:type="gint"/>
+ </field>
+ <method name="init"
+ c:identifier="gst_poll_fd_init"
+ doc="Initializes @fd. Alternatively you can initialize it with
+#GST_POLL_FD_INIT."
+ version="0.10.18">
+ <return-value transfer-ownership="none">
+ <type name="none" c:type="void"/>
+ </return-value>
+ </method>
+ </record>
+ <interface name="Preset"
+ c:type="GstPreset"
+ doc="Opaque #GstPreset data structure."
+ glib:type-name="GstPreset"
+ glib:get-type="gst_preset_get_type"
+ glib:type-struct="PresetInterface">
+ <virtual-method name="get_preset_names" invoker="get_preset_names">
+ <return-value transfer-ownership="full">
+ <array c:type="gchar**">
+ <type name="utf8"/>
+ </array>
+ </return-value>
+ </virtual-method>
+ <virtual-method name="get_property_names" invoker="get_property_names">
+ <return-value transfer-ownership="full">
+ <array c:type="gchar**">
+ <type name="utf8"/>
+ </array>
+ </return-value>
+ </virtual-method>
+ <virtual-method name="load_preset" invoker="load_preset">
+ <return-value transfer-ownership="none">
+ <type name="boolean" c:type="gboolean"/>
+ </return-value>
+ <parameters>
+ <parameter name="name" transfer-ownership="none">
+ <type name="utf8" c:type="gchar*"/>
+ </parameter>
+ </parameters>
+ </virtual-method>
+ <virtual-method name="save_preset" invoker="save_preset">
+ <return-value transfer-ownership="none">
+ <type name="boolean" c:type="gboolean"/>
+ </return-value>
+ <parameters>
+ <parameter name="name" transfer-ownership="none">
+ <type name="utf8" c:type="gchar*"/>
+ </parameter>
+ </parameters>
+ </virtual-method>
+ <virtual-method name="rename_preset" invoker="rename_preset">
+ <return-value transfer-ownership="none">
+ <type name="boolean" c:type="gboolean"/>
+ </return-value>
+ <parameters>
+ <parameter name="old_name" transfer-ownership="none">
+ <type name="utf8" c:type="gchar*"/>
+ </parameter>
+ <parameter name="new_name" transfer-ownership="none">
+ <type name="utf8" c:type="gchar*"/>
+ </parameter>
+ </parameters>
+ </virtual-method>
+ <virtual-method name="delete_preset" invoker="delete_preset">
+ <return-value transfer-ownership="none">
+ <type name="boolean" c:type="gboolean"/>
+ </return-value>
+ <parameters>
+ <parameter name="name" transfer-ownership="none">
+ <type name="utf8" c:type="gchar*"/>
+ </parameter>
+ </parameters>
+ </virtual-method>
+ <virtual-method name="set_meta" invoker="set_meta">
+ <return-value transfer-ownership="none">
+ <type name="boolean" c:type="gboolean"/>
+ </return-value>
+ <parameters>
+ <parameter name="name" transfer-ownership="none">
+ <type name="utf8" c:type="gchar*"/>
+ </parameter>
+ <parameter name="tag" transfer-ownership="none">
+ <type name="utf8" c:type="gchar*"/>
+ </parameter>
+ <parameter name="value" transfer-ownership="none">
+ <type name="utf8" c:type="gchar*"/>
+ </parameter>
+ </parameters>
+ </virtual-method>
+ <virtual-method name="get_meta" invoker="get_meta">
+ <return-value transfer-ownership="none">
+ <type name="boolean" c:type="gboolean"/>
+ </return-value>
+ <parameters>
+ <parameter name="name" transfer-ownership="none">
+ <type name="utf8" c:type="gchar*"/>
+ </parameter>
+ <parameter name="tag" transfer-ownership="none">
+ <type name="utf8" c:type="gchar*"/>
+ </parameter>
+ <parameter name="value" transfer-ownership="none">
+ <array c:type="gchar**">
+ <type name="utf8"/>
+ </array>
+ </parameter>
+ </parameters>
+ </virtual-method>
+ <method name="get_preset_names"
+ c:identifier="gst_preset_get_preset_names"
+ doc="Get a copy of preset names as a NULL terminated string array."
+ version="0.10.20">
+ <return-value transfer-ownership="full" doc="after usage.">
+ <array c:type="gchar**">
+ <type name="utf8"/>
+ </array>
+ </return-value>
+ </method>
+ <method name="get_property_names"
+ c:identifier="gst_preset_get_property_names"
+ doc="Get a the names of the GObject properties that can be used for presets."
+ version="0.10.20">
+ <return-value transfer-ownership="full" doc="after use.">
+ <array c:type="gchar**">
+ <type name="utf8"/>
+ </array>
+ </return-value>
+ </method>
+ <method name="load_preset"
+ c:identifier="gst_preset_load_preset"
+ doc="Load the given preset."
+ version="0.10.20">
+ <return-value transfer-ownership="none">
+ <type name="boolean" c:type="gboolean"/>
+ </return-value>
+ <parameters>
+ <parameter name="name" transfer-ownership="none">
+ <type name="utf8" c:type="gchar*"/>
+ </parameter>
+ </parameters>
+ </method>
+ <method name="save_preset"
+ c:identifier="gst_preset_save_preset"
+ doc="Save the current object settings as a preset under the given name. If there
+is already a preset by this @name it will be overwritten."
+ version="0.10.20">
+ <return-value transfer-ownership="none">
+ <type name="boolean" c:type="gboolean"/>
+ </return-value>
+ <parameters>
+ <parameter name="name" transfer-ownership="none">
+ <type name="utf8" c:type="gchar*"/>
+ </parameter>
+ </parameters>
+ </method>
+ <method name="rename_preset"
+ c:identifier="gst_preset_rename_preset"
+ doc="Renames a preset. If there is already a preset by the @new_name it will be
+overwritten."
+ version="0.10.20">
+ <return-value transfer-ownership="none">
+ <type name="boolean" c:type="gboolean"/>
+ </return-value>
+ <parameters>
+ <parameter name="old_name" transfer-ownership="none">
+ <type name="utf8" c:type="gchar*"/>
+ </parameter>
+ <parameter name="new_name" transfer-ownership="none">
+ <type name="utf8" c:type="gchar*"/>
+ </parameter>
+ </parameters>
+ </method>
+ <method name="delete_preset"
+ c:identifier="gst_preset_delete_preset"
+ doc="Delete the given preset."
+ version="0.10.20">
+ <return-value transfer-ownership="none">
+ <type name="boolean" c:type="gboolean"/>
+ </return-value>
+ <parameters>
+ <parameter name="name" transfer-ownership="none">
+ <type name="utf8" c:type="gchar*"/>
+ </parameter>
+ </parameters>
+ </method>
+ <method name="set_meta"
+ c:identifier="gst_preset_set_meta"
+ doc="Sets a new @value for an existing meta data item or adds a new item. Meta
+data @tag names can be something like e.g. "comment". Supplying %NULL for the"
+ version="0.10.20">
+ <return-value transfer-ownership="none">
+ <type name="boolean" c:type="gboolean"/>
+ </return-value>
+ <parameters>
+ <parameter name="name" transfer-ownership="none">
+ <type name="utf8" c:type="gchar*"/>
+ </parameter>
+ <parameter name="tag" transfer-ownership="none">
+ <type name="utf8" c:type="gchar*"/>
+ </parameter>
+ <parameter name="value" transfer-ownership="none">
+ <type name="utf8" c:type="gchar*"/>
+ </parameter>
+ </parameters>
+ </method>
+ <method name="get_meta"
+ c:identifier="gst_preset_get_meta"
+ doc="Gets the @value for an existing meta data @tag. Meta data @tag names can be
+something like e.g. "comment". Returned values need to be released when done.
+or no value for the given @tag"
+ version="0.10.20">
+ <return-value transfer-ownership="none">
+ <type name="boolean" c:type="gboolean"/>
+ </return-value>
+ <parameters>
+ <parameter name="name" transfer-ownership="none">
+ <type name="utf8" c:type="gchar*"/>
+ </parameter>
+ <parameter name="tag" transfer-ownership="none">
+ <type name="utf8" c:type="gchar*"/>
+ </parameter>
+ <parameter name="value" transfer-ownership="none">
+ <array c:type="gchar**">
+ <type name="utf8"/>
+ </array>
+ </parameter>
+ </parameters>
+ </method>
+ </interface>
+ <record name="PresetInterface"
+ c:type="GstPresetInterface"
+ glib:is-gtype-struct-for="Preset"
+ doc="#GstPreset interface.">
+ <field name="parent">
+ <type name="GObject.TypeInterface" c:type="GTypeInterface"/>
+ </field>
+ <field name="get_preset_names">
+ <callback name="get_preset_names" c:type="get_preset_names">
+ <return-value transfer-ownership="full">
+ <array c:type="gchar**">
+ <type name="utf8"/>
+ </array>
+ </return-value>
+ <parameters>
+ <parameter name="preset" transfer-ownership="none">
+ <type name="Preset" c:type="GstPreset*"/>
+ </parameter>
+ </parameters>
+ </callback>
+ </field>
+ <field name="get_property_names">
+ <callback name="get_property_names" c:type="get_property_names">
+ <return-value transfer-ownership="full">
+ <array c:type="gchar**">
+ <type name="utf8"/>
+ </array>
+ </return-value>
+ <parameters>
+ <parameter name="preset" transfer-ownership="none">
+ <type name="Preset" c:type="GstPreset*"/>
+ </parameter>
+ </parameters>
+ </callback>
+ </field>
+ <field name="load_preset">
+ <callback name="load_preset" c:type="load_preset">
+ <return-value transfer-ownership="none">
+ <type name="boolean" c:type="gboolean"/>
+ </return-value>
+ <parameters>
+ <parameter name="preset" transfer-ownership="none">
+ <type name="Preset" c:type="GstPreset*"/>
+ </parameter>
+ <parameter name="name" transfer-ownership="none">
+ <type name="utf8" c:type="gchar*"/>
+ </parameter>
+ </parameters>
+ </callback>
+ </field>
+ <field name="save_preset">
+ <callback name="save_preset" c:type="save_preset">
+ <return-value transfer-ownership="none">
+ <type name="boolean" c:type="gboolean"/>
+ </return-value>
+ <parameters>
+ <parameter name="preset" transfer-ownership="none">
+ <type name="Preset" c:type="GstPreset*"/>
+ </parameter>
+ <parameter name="name" transfer-ownership="none">
+ <type name="utf8" c:type="gchar*"/>
+ </parameter>
+ </parameters>
+ </callback>
+ </field>
+ <field name="rename_preset">
+ <callback name="rename_preset" c:type="rename_preset">
+ <return-value transfer-ownership="none">
+ <type name="boolean" c:type="gboolean"/>
+ </return-value>
+ <parameters>
+ <parameter name="preset" transfer-ownership="none">
+ <type name="Preset" c:type="GstPreset*"/>
+ </parameter>
+ <parameter name="old_name" transfer-ownership="none">
+ <type name="utf8" c:type="gchar*"/>
+ </parameter>
+ <parameter name="new_name" transfer-ownership="none">
+ <type name="utf8" c:type="gchar*"/>
+ </parameter>
+ </parameters>
+ </callback>
+ </field>
+ <field name="delete_preset">
+ <callback name="delete_preset" c:type="delete_preset">
+ <return-value transfer-ownership="none">
+ <type name="boolean" c:type="gboolean"/>
+ </return-value>
+ <parameters>
+ <parameter name="preset" transfer-ownership="none">
+ <type name="Preset" c:type="GstPreset*"/>
+ </parameter>
+ <parameter name="name" transfer-ownership="none">
+ <type name="utf8" c:type="gchar*"/>
+ </parameter>
+ </parameters>
+ </callback>
+ </field>
+ <field name="set_meta">
+ <callback name="set_meta" c:type="set_meta">
+ <return-value transfer-ownership="none">
+ <type name="boolean" c:type="gboolean"/>
+ </return-value>
+ <parameters>
+ <parameter name="preset" transfer-ownership="none">
+ <type name="Preset" c:type="GstPreset*"/>
+ </parameter>
+ <parameter name="name" transfer-ownership="none">
+ <type name="utf8" c:type="gchar*"/>
+ </parameter>
+ <parameter name="tag" transfer-ownership="none">
+ <type name="utf8" c:type="gchar*"/>
+ </parameter>
+ <parameter name="value" transfer-ownership="none">
+ <type name="utf8" c:type="gchar*"/>
+ </parameter>
+ </parameters>
+ </callback>
+ </field>
+ <field name="get_meta">
+ <callback name="get_meta" c:type="get_meta">
+ <return-value transfer-ownership="none">
+ <type name="boolean" c:type="gboolean"/>
+ </return-value>
+ <parameters>
+ <parameter name="preset" transfer-ownership="none">
+ <type name="Preset" c:type="GstPreset*"/>
+ </parameter>
+ <parameter name="name" transfer-ownership="none">
+ <type name="utf8" c:type="gchar*"/>
+ </parameter>
+ <parameter name="tag" transfer-ownership="none">
+ <type name="utf8" c:type="gchar*"/>
+ </parameter>
+ <parameter name="value" transfer-ownership="none">
+ <array c:type="gchar**">
+ <type name="utf8"/>
+ </array>
+ </parameter>
+ </parameters>
+ </callback>
+ </field>
+ <field name="_gst_reserved">
+ <array zero-terminated="0" c:type="gpointer" fixed-size="4">
+ <type name="any"/>
+ </array>
+ </field>
+ </record>
+ <class name="ProxyPad"
+ c:type="GstProxyPad"
+ parent="Pad"
+ glib:type-name="GstProxyPad"
+ glib:get-type="gst_proxy_pad_get_type"
+ glib:type-struct="ProxyPadClass">
+ <field name="pad">
+ <type name="Pad" c:type="GstPad"/>
+ </field>
+ <field name="priv">
+ <type name="ProxyPadPrivate" c:type="GstProxyPadPrivate*"/>
+ </field>
+ </class>
+ <record name="ProxyPadClass"
+ c:type="GstProxyPadClass"
+ glib:is-gtype-struct-for="ProxyPad">
+ <field name="parent_class">
+ <type name="PadClass" c:type="GstPadClass"/>
+ </field>
+ <field name="_gst_reserved">
+ <array zero-terminated="0" c:type="gpointer" fixed-size="1">
+ <type name="any"/>
+ </array>
+ </field>
+ </record>
+ <record name="ProxyPadPrivate" c:type="GstProxyPadPrivate">
+ </record>
+ <record name="Query" c:type="GstQuery" doc="The #GstQuery structure.">
+ <field name="mini_object" writable="1">
+ <type name="MiniObject" c:type="GstMiniObject"/>
+ </field>
+ <field name="type" writable="1">
+ <type name="QueryType" c:type="GstQueryType"/>
+ </field>
+ <field name="structure" writable="1">
+ <type name="Structure" c:type="GstStructure*"/>
+ </field>
+ <field name="_gst_reserved" writable="1">
+ <type name="any" c:type="gpointer"/>
+ </field>
+ <constructor name="new_position"
+ c:identifier="gst_query_new_position"
+ doc="Constructs a new query stream position query object. Use gst_query_unref()
+when done with it. A position query is used to query the current position
+of playback in the streams, in some format.">
+ <return-value transfer-ownership="full">
+ <type name="Query" c:type="GstQuery*"/>
+ </return-value>
+ <parameters>
+ <parameter name="format" transfer-ownership="none">
+ <type name="Format" c:type="GstFormat"/>
+ </parameter>
+ </parameters>
+ </constructor>
+ <constructor name="new_duration"
+ c:identifier="gst_query_new_duration"
+ doc="Constructs a new stream duration query object to query in the given format.
+Use gst_query_unref() when done with it. A duration query will give the
+total length of the stream.">
+ <return-value transfer-ownership="full">
+ <type name="Query" c:type="GstQuery*"/>
+ </return-value>
+ <parameters>
+ <parameter name="format" transfer-ownership="none">
+ <type name="Format" c:type="GstFormat"/>
+ </parameter>
+ </parameters>
+ </constructor>
+ <constructor name="new_latency"
+ c:identifier="gst_query_new_latency"
+ doc="Constructs a new latency query object.
+Use gst_query_unref() when done with it. A latency query is usually performed
+by sinks to compensate for additional latency introduced by elements in the
+pipeline."
+ version="0.10.12">
+ <return-value transfer-ownership="full">
+ <type name="Query" c:type="GstQuery*"/>
+ </return-value>
+ </constructor>
+ <constructor name="new_convert"
+ c:identifier="gst_query_new_convert"
+ doc="Constructs a new convert query object. Use gst_query_unref()
+when done with it. A convert query is used to ask for a conversion between
+one format and another.">
+ <return-value transfer-ownership="full">
+ <type name="Query" c:type="GstQuery*"/>
+ </return-value>
+ <parameters>
+ <parameter name="src_format" transfer-ownership="none">
+ <type name="Format" c:type="GstFormat"/>
+ </parameter>
+ <parameter name="value" transfer-ownership="none">
+ <type name="int64" c:type="gint64"/>
+ </parameter>
+ <parameter name="dest_format" transfer-ownership="none">
+ <type name="Format" c:type="GstFormat"/>
+ </parameter>
+ </parameters>
+ </constructor>
+ <constructor name="new_segment"
+ c:identifier="gst_query_new_segment"
+ doc="Constructs a new segment query object. Use gst_query_unref()
+when done with it. A segment query is used to discover information about the
+currently configured segment for playback.">
+ <return-value transfer-ownership="full">
+ <type name="Query" c:type="GstQuery*"/>
+ </return-value>
+ <parameters>
+ <parameter name="format" transfer-ownership="none">
+ <type name="Format" c:type="GstFormat"/>
+ </parameter>
+ </parameters>
+ </constructor>
+ <constructor name="new_application"
+ c:identifier="gst_query_new_application"
+ doc="Constructs a new custom application query object. Use gst_query_unref()
+when done with it.">
+ <return-value transfer-ownership="full">
+ <type name="Query" c:type="GstQuery*"/>
+ </return-value>
+ <parameters>
+ <parameter name="type" transfer-ownership="none">
+ <type name="QueryType" c:type="GstQueryType"/>
+ </parameter>
+ <parameter name="structure" transfer-ownership="none">
+ <type name="Structure" c:type="GstStructure*"/>
+ </parameter>
+ </parameters>
+ </constructor>
+ <constructor name="new_seeking"
+ c:identifier="gst_query_new_seeking"
+ doc="Constructs a new query object for querying seeking properties of
+the stream.">
+ <return-value transfer-ownership="full">
+ <type name="Query" c:type="GstQuery*"/>
+ </return-value>
+ <parameters>
+ <parameter name="format" transfer-ownership="none">
+ <type name="Format" c:type="GstFormat"/>
+ </parameter>
+ </parameters>
+ </constructor>
+ <constructor name="new_formats"
+ c:identifier="gst_query_new_formats"
+ doc="Constructs a new query object for querying formats of
+the stream."
+ version="0.10.4">
+ <return-value transfer-ownership="full">
+ <type name="Query" c:type="GstQuery*"/>
+ </return-value>
+ </constructor>
+ <constructor name="new_buffering" c:identifier="gst_query_new_buffering">
+ <return-value transfer-ownership="full">
+ <type name="Query" c:type="GstQuery*"/>
+ </return-value>
+ <parameters>
+ <parameter name="format" transfer-ownership="none">
+ <type name="Format" c:type="GstFormat"/>
+ </parameter>
+ </parameters>
+ </constructor>
+ <constructor name="new_uri"
+ c:identifier="gst_query_new_uri"
+ doc="Constructs a new query URI query object. Use gst_query_unref()
+when done with it. An URI query is used to query the current URI
+that is used by the source or sink."
+ version="0.10.22">
+ <return-value transfer-ownership="full">
+ <type name="Query" c:type="GstQuery*"/>
+ </return-value>
+ </constructor>
+ <method name="set_position"
+ c:identifier="gst_query_set_position"
+ doc="Answer a position query by setting the requested value in the given format.">
+ <return-value transfer-ownership="none">
+ <type name="none" c:type="void"/>
+ </return-value>
+ <parameters>
+ <parameter name="format" transfer-ownership="none">
+ <type name="Format" c:type="GstFormat"/>
+ </parameter>
+ <parameter name="cur" transfer-ownership="none">
+ <type name="int64" c:type="gint64"/>
+ </parameter>
+ </parameters>
+ </method>
+ <method name="parse_position"
+ c:identifier="gst_query_parse_position"
+ doc="Parse a position query, writing the format into @format, and the position
+into @cur, if the respective parameters are non-NULL.">
+ <return-value transfer-ownership="none">
+ <type name="none" c:type="void"/>
+ </return-value>
+ <parameters>
+ <parameter name="format" transfer-ownership="none">
+ <type name="Format" c:type="GstFormat*"/>
+ </parameter>
+ <parameter name="cur" direction="out" transfer-ownership="full">
+ <type name="int64" c:type="gint64*"/>
+ </parameter>
+ </parameters>
+ </method>
+ <method name="set_duration"
+ c:identifier="gst_query_set_duration"
+ doc="Answer a duration query by setting the requested value in the given format.">
+ <return-value transfer-ownership="none">
+ <type name="none" c:type="void"/>
+ </return-value>
+ <parameters>
+ <parameter name="format" transfer-ownership="none">
+ <type name="Format" c:type="GstFormat"/>
+ </parameter>
+ <parameter name="duration" transfer-ownership="none">
+ <type name="int64" c:type="gint64"/>
+ </parameter>
+ </parameters>
+ </method>
+ <method name="parse_duration"
+ c:identifier="gst_query_parse_duration"
+ doc="Parse a duration query answer. Write the format of the duration into @format,
+and the value into @duration, if the respective variables are non-NULL.">
+ <return-value transfer-ownership="none">
+ <type name="none" c:type="void"/>
+ </return-value>
+ <parameters>
+ <parameter name="format" transfer-ownership="none">
+ <type name="Format" c:type="GstFormat*"/>
+ </parameter>
+ <parameter name="duration" direction="out" transfer-ownership="full">
+ <type name="int64" c:type="gint64*"/>
+ </parameter>
+ </parameters>
+ </method>
+ <method name="set_latency"
+ c:identifier="gst_query_set_latency"
+ doc="Answer a latency query by setting the requested values in the given format."
+ version="0.10.12">
+ <return-value transfer-ownership="none">
+ <type name="none" c:type="void"/>
+ </return-value>
+ <parameters>
+ <parameter name="live" transfer-ownership="none">
+ <type name="boolean" c:type="gboolean"/>
+ </parameter>
+ <parameter name="min_latency" transfer-ownership="none">
+ <type name="ClockTime" c:type="GstClockTime"/>
+ </parameter>
+ <parameter name="max_latency" transfer-ownership="none">
+ <type name="ClockTime" c:type="GstClockTime"/>
+ </parameter>
+ </parameters>
+ </method>
+ <method name="parse_latency"
+ c:identifier="gst_query_parse_latency"
+ doc="Parse a latency query answer."
+ version="0.10.12">
+ <return-value transfer-ownership="none">
+ <type name="none" c:type="void"/>
+ </return-value>
+ <parameters>
+ <parameter name="live" direction="out" transfer-ownership="full">
+ <type name="boolean" c:type="gboolean*"/>
+ </parameter>
+ <parameter name="min_latency" transfer-ownership="none">
+ <type name="ClockTime" c:type="GstClockTime*"/>
+ </parameter>
+ <parameter name="max_latency" transfer-ownership="none">
+ <type name="ClockTime" c:type="GstClockTime*"/>
+ </parameter>
+ </parameters>
+ </method>
+ <method name="set_convert"
+ c:identifier="gst_query_set_convert"
+ doc="Answer a convert query by setting the requested values.">
+ <return-value transfer-ownership="none">
+ <type name="none" c:type="void"/>
+ </return-value>
+ <parameters>
+ <parameter name="src_format" transfer-ownership="none">
+ <type name="Format" c:type="GstFormat"/>
+ </parameter>
+ <parameter name="src_value" transfer-ownership="none">
+ <type name="int64" c:type="gint64"/>
+ </parameter>
+ <parameter name="dest_format" transfer-ownership="none">
+ <type name="Format" c:type="GstFormat"/>
+ </parameter>
+ <parameter name="dest_value" transfer-ownership="none">
+ <type name="int64" c:type="gint64"/>
+ </parameter>
+ </parameters>
+ </method>
+ <method name="parse_convert"
+ c:identifier="gst_query_parse_convert"
+ doc="Parse a convert query answer. Any of @src_format, @src_value, @dest_format,
+and @dest_value may be NULL, in which case that value is omitted.">
+ <return-value transfer-ownership="none">
+ <type name="none" c:type="void"/>
+ </return-value>
+ <parameters>
+ <parameter name="src_format" transfer-ownership="none">
+ <type name="Format" c:type="GstFormat*"/>
+ </parameter>
+ <parameter name="src_value"
+ direction="out"
+ transfer-ownership="full">
+ <type name="int64" c:type="gint64*"/>
+ </parameter>
+ <parameter name="dest_format" transfer-ownership="none">
+ <type name="Format" c:type="GstFormat*"/>
+ </parameter>
+ <parameter name="dest_value"
+ direction="out"
+ transfer-ownership="full">
+ <type name="int64" c:type="gint64*"/>
+ </parameter>
+ </parameters>
+ </method>
+ <method name="set_segment"
+ c:identifier="gst_query_set_segment"
+ doc="Answer a segment query by setting the requested values. The normal
+playback segment of a pipeline is 0 to duration at the default rate of
+1.0. If a seek was performed on the pipeline to play a different
+segment, this query will return the range specified in the last seek.
+playback range start and stop values expressed in @format.
+The values are always between 0 and the duration of the media and
+negative rates, playback will actually happen from @stop_value to">
+ <return-value transfer-ownership="none">
+ <type name="none" c:type="void"/>
+ </return-value>
+ <parameters>
+ <parameter name="rate" transfer-ownership="none">
+ <type name="double" c:type="gdouble"/>
+ </parameter>
+ <parameter name="format" transfer-ownership="none">
+ <type name="Format" c:type="GstFormat"/>
+ </parameter>
+ <parameter name="start_value" transfer-ownership="none">
+ <type name="int64" c:type="gint64"/>
+ </parameter>
+ <parameter name="stop_value" transfer-ownership="none">
+ <type name="int64" c:type="gint64"/>
+ </parameter>
+ </parameters>
+ </method>
+ <method name="parse_segment"
+ c:identifier="gst_query_parse_segment"
+ doc="Parse a segment query answer. Any of @rate, @format, @start_value, and
+See gst_query_set_segment() for an explanation of the function arguments.">
+ <return-value transfer-ownership="none">
+ <type name="none" c:type="void"/>
+ </return-value>
+ <parameters>
+ <parameter name="rate" direction="out" transfer-ownership="full">
+ <type name="double" c:type="gdouble*"/>
+ </parameter>
+ <parameter name="format" transfer-ownership="none">
+ <type name="Format" c:type="GstFormat*"/>
+ </parameter>
+ <parameter name="start_value"
+ direction="out"
+ transfer-ownership="full">
+ <type name="int64" c:type="gint64*"/>
+ </parameter>
+ <parameter name="stop_value"
+ direction="out"
+ transfer-ownership="full">
+ <type name="int64" c:type="gint64*"/>
+ </parameter>
+ </parameters>
+ </method>
+ <method name="get_structure"
+ c:identifier="gst_query_get_structure"
+ doc="Get the structure of a query.
+by the query and will therefore be freed when the query is unreffed.">
+ <return-value transfer-ownership="full">
+ <type name="Structure" c:type="GstStructure*"/>
+ </return-value>
+ </method>
+ <method name="set_seeking"
+ c:identifier="gst_query_set_seeking"
+ doc="Set the seeking query result fields in @query.">
+ <return-value transfer-ownership="none">
+ <type name="none" c:type="void"/>
+ </return-value>
+ <parameters>
+ <parameter name="format" transfer-ownership="none">
+ <type name="Format" c:type="GstFormat"/>
+ </parameter>
+ <parameter name="seekable" transfer-ownership="none">
+ <type name="boolean" c:type="gboolean"/>
+ </parameter>
+ <parameter name="segment_start" transfer-ownership="none">
+ <type name="int64" c:type="gint64"/>
+ </parameter>
+ <parameter name="segment_end" transfer-ownership="none">
+ <type name="int64" c:type="gint64"/>
+ </parameter>
+ </parameters>
+ </method>
+ <method name="parse_seeking"
+ c:identifier="gst_query_parse_seeking"
+ doc="Parse a seeking query, writing the format into @format, and
+other results into the passed parameters, if the respective parameters
+are non-NULL">
+ <return-value transfer-ownership="none">
+ <type name="none" c:type="void"/>
+ </return-value>
+ <parameters>
+ <parameter name="format" transfer-ownership="none">
+ <type name="Format" c:type="GstFormat*"/>
+ </parameter>
+ <parameter name="seekable" direction="out" transfer-ownership="full">
+ <type name="boolean" c:type="gboolean*"/>
+ </parameter>
+ <parameter name="segment_start"
+ direction="out"
+ transfer-ownership="full">
+ <type name="int64" c:type="gint64*"/>
+ </parameter>
+ <parameter name="segment_end"
+ direction="out"
+ transfer-ownership="full">
+ <type name="int64" c:type="gint64*"/>
+ </parameter>
+ </parameters>
+ </method>
+ <method name="set_formats"
+ c:identifier="gst_query_set_formats"
+ doc="Set the formats query result fields in @query. The number of formats passed
+must be equal to @n_formats.">
+ <return-value transfer-ownership="none">
+ <type name="none" c:type="void"/>
+ </return-value>
+ <parameters>
+ <parameter name="n_formats" transfer-ownership="none">
+ <type name="int" c:type="gint"/>
+ </parameter>
+ <parameter transfer-ownership="none">
+ <varargs>
+ </varargs>
+ </parameter>
+ </parameters>
+ </method>
+ <method name="set_formatsv"
+ c:identifier="gst_query_set_formatsv"
+ doc="Set the formats query result fields in @query. The number of formats passed
+in the @formats array must be equal to @n_formats."
+ version="0.10.4">
+ <return-value transfer-ownership="none">
+ <type name="none" c:type="void"/>
+ </return-value>
+ <parameters>
+ <parameter name="n_formats" transfer-ownership="none">
+ <type name="int" c:type="gint"/>
+ </parameter>
+ <parameter name="formats" transfer-ownership="none">
+ <type name="Format" c:type="GstFormat*"/>
+ </parameter>
+ </parameters>
+ </method>
+ <method name="parse_formats_length"
+ c:identifier="gst_query_parse_formats_length"
+ doc="Parse the number of formats in the formats @query."
+ version="0.10.4">
+ <return-value transfer-ownership="none">
+ <type name="none" c:type="void"/>
+ </return-value>
+ <parameters>
+ <parameter name="n_formats"
+ direction="out"
+ transfer-ownership="full">
+ <type name="uint" c:type="guint*"/>
+ </parameter>
+ </parameters>
+ </method>
+ <method name="parse_formats_nth"
+ c:identifier="gst_query_parse_formats_nth"
+ doc="Parse the format query and retrieve the @nth format from it into
+set to GST_FORMAT_UNDEFINED."
+ version="0.10.4">
+ <return-value transfer-ownership="none">
+ <type name="none" c:type="void"/>
+ </return-value>
+ <parameters>
+ <parameter name="nth" transfer-ownership="none">
+ <type name="uint" c:type="guint"/>
+ </parameter>
+ <parameter name="format" transfer-ownership="none">
+ <type name="Format" c:type="GstFormat*"/>
+ </parameter>
+ </parameters>
+ </method>
+ <method name="set_buffering_percent"
+ c:identifier="gst_query_set_buffering_percent">
+ <return-value transfer-ownership="none">
+ <type name="none" c:type="void"/>
+ </return-value>
+ <parameters>
+ <parameter name="busy" transfer-ownership="none">
+ <type name="boolean" c:type="gboolean"/>
+ </parameter>
+ <parameter name="percent" transfer-ownership="none">
+ <type name="int" c:type="gint"/>
+ </parameter>
+ </parameters>
+ </method>
+ <method name="parse_buffering_percent"
+ c:identifier="gst_query_parse_buffering_percent">
+ <return-value transfer-ownership="none">
+ <type name="none" c:type="void"/>
+ </return-value>
+ <parameters>
+ <parameter name="busy" direction="out" transfer-ownership="full">
+ <type name="boolean" c:type="gboolean*"/>
+ </parameter>
+ <parameter name="percent" direction="out" transfer-ownership="full">
+ <type name="int" c:type="gint*"/>
+ </parameter>
+ </parameters>
+ </method>
+ <method name="set_buffering_stats"
+ c:identifier="gst_query_set_buffering_stats"
+ doc="Configures the buffering stats values in @query."
+ version="0.10.20">
+ <return-value transfer-ownership="none">
+ <type name="none" c:type="void"/>
+ </return-value>
+ <parameters>
+ <parameter name="mode" transfer-ownership="none">
+ <type name="BufferingMode" c:type="GstBufferingMode"/>
+ </parameter>
+ <parameter name="avg_in" transfer-ownership="none">
+ <type name="int" c:type="gint"/>
+ </parameter>
+ <parameter name="avg_out" transfer-ownership="none">
+ <type name="int" c:type="gint"/>
+ </parameter>
+ <parameter name="buffering_left" transfer-ownership="none">
+ <type name="int64" c:type="gint64"/>
+ </parameter>
+ </parameters>
+ </method>
+ <method name="parse_buffering_stats"
+ c:identifier="gst_query_parse_buffering_stats"
+ doc="Extracts the buffering stats values from @query."
+ version="0.10.20">
+ <return-value transfer-ownership="none">
+ <type name="none" c:type="void"/>
+ </return-value>
+ <parameters>
+ <parameter name="mode" transfer-ownership="none">
+ <type name="BufferingMode" c:type="GstBufferingMode*"/>
+ </parameter>
+ <parameter name="avg_in" direction="out" transfer-ownership="full">
+ <type name="int" c:type="gint*"/>
+ </parameter>
+ <parameter name="avg_out" direction="out" transfer-ownership="full">
+ <type name="int" c:type="gint*"/>
+ </parameter>
+ <parameter name="buffering_left"
+ direction="out"
+ transfer-ownership="full">
+ <type name="int64" c:type="gint64*"/>
+ </parameter>
+ </parameters>
+ </method>
+ <method name="set_buffering_range"
+ c:identifier="gst_query_set_buffering_range"
+ doc="Set the available query result fields in @query."
+ version="0.10.20">
+ <return-value transfer-ownership="none">
+ <type name="none" c:type="void"/>
+ </return-value>
+ <parameters>
+ <parameter name="format" transfer-ownership="none">
+ <type name="Format" c:type="GstFormat"/>
+ </parameter>
+ <parameter name="start" transfer-ownership="none">
+ <type name="int64" c:type="gint64"/>
+ </parameter>
+ <parameter name="stop" transfer-ownership="none">
+ <type name="int64" c:type="gint64"/>
+ </parameter>
+ <parameter name="estimated_total" transfer-ownership="none">
+ <type name="int64" c:type="gint64"/>
+ </parameter>
+ </parameters>
+ </method>
+ <method name="parse_buffering_range"
+ c:identifier="gst_query_parse_buffering_range"
+ doc="Parse an available query, writing the format into @format, and
+other results into the passed parameters, if the respective parameters
+are non-NULL"
+ version="0.10.20">
+ <return-value transfer-ownership="none">
+ <type name="none" c:type="void"/>
+ </return-value>
+ <parameters>
+ <parameter name="format" transfer-ownership="none">
+ <type name="Format" c:type="GstFormat*"/>
+ </parameter>
+ <parameter name="start" direction="out" transfer-ownership="full">
+ <type name="int64" c:type="gint64*"/>
+ </parameter>
+ <parameter name="stop" direction="out" transfer-ownership="full">
+ <type name="int64" c:type="gint64*"/>
+ </parameter>
+ <parameter name="estimated_total"
+ direction="out"
+ transfer-ownership="full">
+ <type name="int64" c:type="gint64*"/>
+ </parameter>
+ </parameters>
+ </method>
+ <method name="parse_uri"
+ c:identifier="gst_query_parse_uri"
+ doc="Parse an URI query, writing the URI into @uri as a newly
+allocated string, if the respective parameters are non-NULL.
+Free the string with g_free() after usage."
+ version="0.10.22">
+ <return-value transfer-ownership="none">
+ <type name="none" c:type="void"/>
+ </return-value>
+ <parameters>
+ <parameter name="uri" transfer-ownership="none">
+ <array c:type="gchar**">
+ <type name="utf8"/>
+ </array>
+ </parameter>
+ </parameters>
+ </method>
+ <method name="set_uri"
+ c:identifier="gst_query_set_uri"
+ doc="Answer a URI query by setting the requested URI."
+ version="0.10.22">
+ <return-value transfer-ownership="none">
+ <type name="none" c:type="void"/>
+ </return-value>
+ <parameters>
+ <parameter name="uri" transfer-ownership="none">
+ <type name="utf8" c:type="gchar*"/>
+ </parameter>
+ </parameters>
+ </method>
+ </record>
+ <record name="QueryClass" c:type="GstQueryClass">
+ <field name="mini_object_class" writable="1">
+ <type name="MiniObjectClass" c:type="GstMiniObjectClass"/>
+ </field>
+ <field name="_gst_reserved" writable="1">
+ <array zero-terminated="0" c:type="gpointer" fixed-size="4">
+ <type name="any"/>
+ </array>
+ </field>
+ </record>
+ <enumeration name="QueryType"
+ doc="0.10.20.
+0.10.22.
+Standard predefined Query types"
+ c:type="GstQueryType">
+ <member name="none" value="0" c:identifier="GST_QUERY_NONE"/>
+ <member name="position" value="1" c:identifier="GST_QUERY_POSITION"/>
+ <member name="duration" value="2" c:identifier="GST_QUERY_DURATION"/>
+ <member name="latency" value="3" c:identifier="GST_QUERY_LATENCY"/>
+ <member name="jitter" value="4" c:identifier="GST_QUERY_JITTER"/>
+ <member name="rate" value="5" c:identifier="GST_QUERY_RATE"/>
+ <member name="seeking" value="6" c:identifier="GST_QUERY_SEEKING"/>
+ <member name="segment" value="7" c:identifier="GST_QUERY_SEGMENT"/>
+ <member name="convert" value="8" c:identifier="GST_QUERY_CONVERT"/>
+ <member name="formats" value="9" c:identifier="GST_QUERY_FORMATS"/>
+ <member name="buffering" value="10" c:identifier="GST_QUERY_BUFFERING"/>
+ <member name="custom" value="11" c:identifier="GST_QUERY_CUSTOM"/>
+ <member name="uri" value="12" c:identifier="GST_QUERY_URI"/>
+ </enumeration>
+ <record name="QueryTypeDefinition"
+ c:type="GstQueryTypeDefinition"
+ doc="A Query Type definition">
+ <field name="value" writable="1">
+ <type name="QueryType" c:type="GstQueryType"/>
+ </field>
+ <field name="nick" writable="1">
+ <type name="utf8" c:type="gchar*"/>
+ </field>
+ <field name="description" writable="1">
+ <type name="utf8" c:type="gchar*"/>
+ </field>
+ <field name="quark" writable="1">
+ <type name="GLib.Quark" c:type="GQuark"/>
+ </field>
+ </record>
+ <enumeration name="Rank"
+ doc="Element priority ranks. Defines the order in which the autoplugger (or
+similar rank-picking mechanisms, such as e.g. gst_element_make_from_uri())
+will choose this element over an alternative one with the same function.
+These constants serve as a rough guidance for defining the rank of a
+#GstPluginFeature. Any value is valid, including values bigger than"
+ c:type="GstRank">
+ <member name="none" value="0" c:identifier="GST_RANK_NONE"/>
+ <member name="marginal" value="64" c:identifier="GST_RANK_MARGINAL"/>
+ <member name="secondary" value="128" c:identifier="GST_RANK_SECONDARY"/>
+ <member name="primary" value="256" c:identifier="GST_RANK_PRIMARY"/>
+ </enumeration>
+ <class name="Registry"
+ c:type="GstRegistry"
+ doc="Opaque #GstRegistry structure."
+ parent="Object"
+ glib:type-name="GstRegistry"
+ glib:get-type="gst_registry_get_type"
+ glib:type-struct="RegistryClass">
+ <function name="get_default"
+ c:identifier="gst_registry_get_default"
+ doc="Retrieves the default registry. The caller does not own a reference on the
+registry, as it is alive as long as GStreamer is initialized.">
+ <return-value transfer-ownership="full">
+ <type name="Registry" c:type="GstRegistry*"/>
+ </return-value>
+ </function>
+ <function name="fork_is_enabled"
+ c:identifier="gst_registry_fork_is_enabled"
+ doc="By default GStreamer will perform scanning and rebuilding of the
+registry file using a helper child process.
+Applications might want to disable this behaviour with the
+gst_registry_fork_set_enabled() function, in which case new plugins
+are scanned (and loaded) into the application process.
+rebuilding the registry."
+ version="0.10.10">
+ <return-value transfer-ownership="none">
+ <type name="boolean" c:type="gboolean"/>
+ </return-value>
+ </function>
+ <function name="fork_set_enabled"
+ c:identifier="gst_registry_fork_set_enabled"
+ doc="Applications might want to disable/enable spawning of a child helper process
+when rebuilding the registry. See gst_registry_fork_is_enabled() for more
+information."
+ version="0.10.10">
+ <return-value transfer-ownership="none">
+ <type name="none" c:type="void"/>
+ </return-value>
+ <parameters>
+ <parameter name="enabled" transfer-ownership="none">
+ <type name="boolean" c:type="gboolean"/>
+ </parameter>
+ </parameters>
+ </function>
+ <method name="scan_path"
+ c:identifier="gst_registry_scan_path"
+ doc="Scan the given path for plugins to add to the registry. The syntax of the
+path is specific to the registry.">
+ <return-value transfer-ownership="none">
+ <type name="boolean" c:type="gboolean"/>
+ </return-value>
+ <parameters>
+ <parameter name="path" transfer-ownership="none">
+ <type name="utf8" c:type="gchar*"/>
+ </parameter>
+ </parameters>
+ </method>
+ <method name="add_path"
+ c:identifier="gst_registry_add_path"
+ doc="Add the given path to the registry. The syntax of the
+path is specific to the registry. If the path has already been
+added, do nothing.">
+ <return-value transfer-ownership="none">
+ <type name="none" c:type="void"/>
+ </return-value>
+ <parameters>
+ <parameter name="path" transfer-ownership="none">
+ <type name="utf8" c:type="gchar*"/>
+ </parameter>
+ </parameters>
+ </method>
+ <method name="get_path_list"
+ c:identifier="gst_registry_get_path_list"
+ doc="Get the list of paths for the given registry.
+MT safe.">
+ <return-value transfer-ownership="full">
+ <type name="GLib.List" c:type="GList*"/>
+ </return-value>
+ </method>
+ <method name="add_plugin"
+ c:identifier="gst_registry_add_plugin"
+ doc="Add the plugin to the registry. The plugin-added signal will be emitted.
+This function will sink @plugin.
+MT safe.">
+ <return-value transfer-ownership="none">
+ <type name="boolean" c:type="gboolean"/>
+ </return-value>
+ <parameters>
+ <parameter name="plugin" transfer-ownership="none">
+ <type name="Plugin" c:type="GstPlugin*"/>
+ </parameter>
+ </parameters>
+ </method>
+ <method name="remove_plugin"
+ c:identifier="gst_registry_remove_plugin"
+ doc="Remove the plugin from the registry.
+MT safe.">
+ <return-value transfer-ownership="none">
+ <type name="none" c:type="void"/>
+ </return-value>
+ <parameters>
+ <parameter name="plugin" transfer-ownership="none">
+ <type name="Plugin" c:type="GstPlugin*"/>
+ </parameter>
+ </parameters>
+ </method>
+ <method name="add_feature"
+ c:identifier="gst_registry_add_feature"
+ doc="Add the feature to the registry. The feature-added signal will be emitted.
+This function sinks @feature.
+MT safe.">
+ <return-value transfer-ownership="none">
+ <type name="boolean" c:type="gboolean"/>
+ </return-value>
+ <parameters>
+ <parameter name="feature" transfer-ownership="none">
+ <type name="PluginFeature" c:type="GstPluginFeature*"/>
+ </parameter>
+ </parameters>
+ </method>
+ <method name="remove_feature"
+ c:identifier="gst_registry_remove_feature"
+ doc="Remove the feature from the registry.
+MT safe.">
+ <return-value transfer-ownership="none">
+ <type name="none" c:type="void"/>
+ </return-value>
+ <parameters>
+ <parameter name="feature" transfer-ownership="none">
+ <type name="PluginFeature" c:type="GstPluginFeature*"/>
+ </parameter>
+ </parameters>
+ </method>
+ <method name="get_plugin_list"
+ c:identifier="gst_registry_get_plugin_list"
+ doc="Get a copy of all plugins registered in the given registry. The refcount
+of each element in the list in incremented.
+MT safe.">
+ <return-value transfer-ownership="full" doc="after usage.">
+ <type name="GLib.List" c:type="GList*"/>
+ </return-value>
+ </method>
+ <method name="plugin_filter"
+ c:identifier="gst_registry_plugin_filter"
+ doc="Runs a filter against all plugins in the registry and returns a #GList with
+the results. If the first flag is set, only the first match is
+returned (as a list with a single object).
+Every plugin is reffed; use gst_plugin_list_free() after use, which
+will unref again.
+MT safe.">
+ <return-value transfer-ownership="full" doc="after usage.">
+ <type name="GLib.List" c:type="GList*"/>
+ </return-value>
+ <parameters>
+ <parameter name="filter" transfer-ownership="none" scope="call">
+ <type name="PluginFilter" c:type="GstPluginFilter"/>
+ </parameter>
+ <parameter name="first" transfer-ownership="none">
+ <type name="boolean" c:type="gboolean"/>
+ </parameter>
+ <parameter name="user_data" transfer-ownership="none">
+ <type name="any" c:type="gpointer"/>
+ </parameter>
+ </parameters>
+ </method>
+ <method name="feature_filter"
+ c:identifier="gst_registry_feature_filter"
+ doc="Runs a filter against all features of the plugins in the registry
+and returns a GList with the results.
+If the first flag is set, only the first match is
+returned (as a list with a single object).
+after usage.
+MT safe.">
+ <return-value transfer-ownership="full">
+ <type name="GLib.List" c:type="GList*"/>
+ </return-value>
+ <parameters>
+ <parameter name="filter" transfer-ownership="none" scope="call">
+ <type name="PluginFeatureFilter" c:type="GstPluginFeatureFilter"/>
+ </parameter>
+ <parameter name="first" transfer-ownership="none">
+ <type name="boolean" c:type="gboolean"/>
+ </parameter>
+ <parameter name="user_data" transfer-ownership="none">
+ <type name="any" c:type="gpointer"/>
+ </parameter>
+ </parameters>
+ </method>
+ <method name="get_feature_list"
+ c:identifier="gst_registry_get_feature_list"
+ doc="Retrieves a #GList of #GstPluginFeature of @type.
+gst_plugin_feature_list_free() after usage.
+MT safe.">
+ <return-value transfer-ownership="full">
+ <type name="GLib.List" c:type="GList*"/>
+ </return-value>
+ <parameters>
+ <parameter name="type" transfer-ownership="none">
+ <type name="GType" c:type="GType"/>
+ </parameter>
+ </parameters>
+ </method>
+ <method name="get_feature_list_by_plugin"
+ c:identifier="gst_registry_get_feature_list_by_plugin"
+ doc="Retrieves a #GList of features of the plugin with name @name.
+after usage.">
+ <return-value transfer-ownership="full">
+ <type name="GLib.List" c:type="GList*"/>
+ </return-value>
+ <parameters>
+ <parameter name="name" transfer-ownership="none">
+ <type name="utf8" c:type="gchar*"/>
+ </parameter>
+ </parameters>
+ </method>
+ <method name="get_feature_list_cookie"
+ c:identifier="gst_registry_get_feature_list_cookie"
+ doc="Returns the registrys feature list cookie. This changes
+every time a feature is added or removed from the registry."
+ version="0.10.26">
+ <return-value transfer-ownership="none">
+ <type name="uint32" c:type="guint32"/>
+ </return-value>
+ </method>
+ <method name="find_plugin"
+ c:identifier="gst_registry_find_plugin"
+ doc="Find the plugin with the given name in the registry.
+The plugin will be reffed; caller is responsible for unreffing.
+gst_object_unref() after usage.
+MT safe.">
+ <return-value transfer-ownership="full">
+ <type name="Plugin" c:type="GstPlugin*"/>
+ </return-value>
+ <parameters>
+ <parameter name="name" transfer-ownership="none">
+ <type name="utf8" c:type="gchar*"/>
+ </parameter>
+ </parameters>
+ </method>
+ <method name="find_feature"
+ c:identifier="gst_registry_find_feature"
+ doc="Find the pluginfeature with the given name and type in the registry.
+if the plugin was not found. gst_object_unref() after usage.
+MT safe.">
+ <return-value transfer-ownership="full">
+ <type name="PluginFeature" c:type="GstPluginFeature*"/>
+ </return-value>
+ <parameters>
+ <parameter name="name" transfer-ownership="none">
+ <type name="utf8" c:type="gchar*"/>
+ </parameter>
+ <parameter name="type" transfer-ownership="none">
+ <type name="GType" c:type="GType"/>
+ </parameter>
+ </parameters>
+ </method>
+ <method name="lookup"
+ c:identifier="gst_registry_lookup"
+ doc="Look up a plugin in the given registry with the given filename.
+If found, plugin is reffed.
+after usage.">
+ <return-value transfer-ownership="full">
+ <type name="Plugin" c:type="GstPlugin*"/>
+ </return-value>
+ <parameters>
+ <parameter name="filename" transfer-ownership="none">
+ <type name="utf8" c:type="char*"/>
+ </parameter>
+ </parameters>
+ </method>
+ <method name="lookup_feature"
+ c:identifier="gst_registry_lookup_feature"
+ doc="Find a #GstPluginFeature with @name in @registry.
+gst_object_unref() after usage.
+MT safe.">
+ <return-value transfer-ownership="full">
+ <type name="PluginFeature" c:type="GstPluginFeature*"/>
+ </return-value>
+ <parameters>
+ <parameter name="name" transfer-ownership="none">
+ <type name="utf8" c:type="char*"/>
+ </parameter>
+ </parameters>
+ </method>
+ <method name="xml_read_cache" c:identifier="gst_registry_xml_read_cache">
+ <return-value transfer-ownership="none">
+ <type name="boolean" c:type="gboolean"/>
+ </return-value>
+ <parameters>
+ <parameter name="location" transfer-ownership="none">
+ <type name="utf8" c:type="char*"/>
+ </parameter>
+ </parameters>
+ </method>
+ <method name="xml_write_cache"
+ c:identifier="gst_registry_xml_write_cache">
+ <return-value transfer-ownership="none">
+ <type name="boolean" c:type="gboolean"/>
+ </return-value>
+ <parameters>
+ <parameter name="location" transfer-ownership="none">
+ <type name="utf8" c:type="char*"/>
+ </parameter>
+ </parameters>
+ </method>
+ <field name="object">
+ <type name="Object" c:type="GstObject"/>
+ </field>
+ <field name="plugins">
+ <type name="GLib.List" c:type="GList*"/>
+ </field>
+ <field name="features">
+ <type name="GLib.List" c:type="GList*"/>
+ </field>
+ <field name="paths">
+ <type name="GLib.List" c:type="GList*"/>
+ </field>
+ <field name="cache_file">
+ <type name="int" c:type="int"/>
+ </field>
+ <field name="feature_hash">
+ <type name="GLib.HashTable" c:type="GHashTable*"/>
+ </field>
+ <field name="basename_hash">
+ <type name="GLib.HashTable" c:type="GHashTable*"/>
+ </field>
+ <field name="priv">
+ <type name="RegistryPrivate" c:type="GstRegistryPrivate*"/>
+ </field>
+ <field name="_gst_reserved">
+ <array zero-terminated="0" c:type="gpointer" fixed-size="1">
+ <type name="any"/>
+ </array>
+ </field>
+ <glib:signal name="feature-added"
+ doc="Signals that a feature has been added to the registry (possibly
+replacing a previously-added one by the same name)">
+ <return-value transfer-ownership="full">
+ <type name="none" c:type="void"/>
+ </return-value>
+ <parameters>
+ <parameter name="feature" transfer-ownership="none">
+ <type name="any" c:type="gpointer"/>
+ </parameter>
+ </parameters>
+ </glib:signal>
+ <glib:signal name="plugin-added"
+ doc="Signals that a plugin has been added to the registry (possibly
+replacing a previously-added one by the same name)">
+ <return-value transfer-ownership="full">
+ <type name="none" c:type="void"/>
+ </return-value>
+ <parameters>
+ <parameter name="plugin" transfer-ownership="none">
+ <type name="any" c:type="gpointer"/>
+ </parameter>
+ </parameters>
+ </glib:signal>
+ </class>
+ <record name="RegistryClass"
+ c:type="GstRegistryClass"
+ glib:is-gtype-struct-for="Registry">
+ <field name="parent_class">
+ <type name="ObjectClass" c:type="GstObjectClass"/>
+ </field>
+ <field name="plugin_added">
+ <callback name="plugin_added" c:type="plugin_added">
+ <return-value transfer-ownership="none">
+ <type name="none" c:type="void"/>
+ </return-value>
+ <parameters>
+ <parameter name="registry" transfer-ownership="none">
+ <type name="Registry" c:type="GstRegistry*"/>
+ </parameter>
+ <parameter name="plugin" transfer-ownership="none">
+ <type name="Plugin" c:type="GstPlugin*"/>
+ </parameter>
+ </parameters>
+ </callback>
+ </field>
+ <field name="feature_added">
+ <callback name="feature_added" c:type="feature_added">
+ <return-value transfer-ownership="none">
+ <type name="none" c:type="void"/>
+ </return-value>
+ <parameters>
+ <parameter name="registry" transfer-ownership="none">
+ <type name="Registry" c:type="GstRegistry*"/>
+ </parameter>
+ <parameter name="feature" transfer-ownership="none">
+ <type name="PluginFeature" c:type="GstPluginFeature*"/>
+ </parameter>
+ </parameters>
+ </callback>
+ </field>
+ <field name="_gst_reserved">
+ <array zero-terminated="0" c:type="gpointer" fixed-size="4">
+ <type name="any"/>
+ </array>
+ </field>
+ </record>
+ <record name="RegistryPrivate" c:type="GstRegistryPrivate">
+ </record>
+ <enumeration name="ResourceError"
+ doc="category. Make sure you add a custom message to the error call.
+deciding where to go while developing code.
+both reading and writing, or either (but unspecified which).
+Resource errors are for any resource used by an element:
+memory, files, network connections, process space, ...
+They're typically used by source and sink elements."
+ c:type="GstResourceError"
+ glib:error-quark="gst_resource_error_quark">
+ <member name="failed"
+ value="1"
+ c:identifier="GST_RESOURCE_ERROR_FAILED"/>
+ <member name="too_lazy"
+ value="2"
+ c:identifier="GST_RESOURCE_ERROR_TOO_LAZY"/>
+ <member name="not_found"
+ value="3"
+ c:identifier="GST_RESOURCE_ERROR_NOT_FOUND"/>
+ <member name="busy" value="4" c:identifier="GST_RESOURCE_ERROR_BUSY"/>
+ <member name="open_read"
+ value="5"
+ c:identifier="GST_RESOURCE_ERROR_OPEN_READ"/>
+ <member name="open_write"
+ value="6"
+ c:identifier="GST_RESOURCE_ERROR_OPEN_WRITE"/>
+ <member name="open_read_write"
+ value="7"
+ c:identifier="GST_RESOURCE_ERROR_OPEN_READ_WRITE"/>
+ <member name="close" value="8" c:identifier="GST_RESOURCE_ERROR_CLOSE"/>
+ <member name="read" value="9" c:identifier="GST_RESOURCE_ERROR_READ"/>
+ <member name="write" value="10" c:identifier="GST_RESOURCE_ERROR_WRITE"/>
+ <member name="seek" value="11" c:identifier="GST_RESOURCE_ERROR_SEEK"/>
+ <member name="sync" value="12" c:identifier="GST_RESOURCE_ERROR_SYNC"/>
+ <member name="settings"
+ value="13"
+ c:identifier="GST_RESOURCE_ERROR_SETTINGS"/>
+ <member name="no_space_left"
+ value="14"
+ c:identifier="GST_RESOURCE_ERROR_NO_SPACE_LEFT"/>
+ <member name="num_errors"
+ value="15"
+ c:identifier="GST_RESOURCE_ERROR_NUM_ERRORS"/>
+ </enumeration>
+ <constant name="SECOND" value="0">
+ <type name="int"/>
+ </constant>
+ <enumeration name="SearchMode"
+ doc="The different search modes."
+ version="0.10.23"
+ c:type="GstSearchMode">
+ <member name="exact" value="0" c:identifier="GST_SEARCH_MODE_EXACT"/>
+ <member name="before" value="1" c:identifier="GST_SEARCH_MODE_BEFORE"/>
+ <member name="after" value="2" c:identifier="GST_SEARCH_MODE_AFTER"/>
+ </enumeration>
+ <bitfield name="SeekFlags"
+ doc="be considerably slower for some formats.
+faster but less accurate.
+elements to skip frames instead of generating all
+frames. Since 0.10.22.
+Flags to be used with gst_element_seek() or gst_event_new_seek(). All flags
+can be used together.
+A non flushing seek might take some time to perform as the currently
+playing data in the pipeline will not be cleared.
+An accurate seek might be slower for formats that don't have any indexes
+or timestamp markers in the stream. Specifying this flag might require a
+complete scan of the file in those cases.
+no EOS will be emmited by the element that performed the seek, but a
+#GST_MESSAGE_SEGMENT_DONE message will be posted on the bus by the element.
+When this message is posted, it is possible to send a new seek event to
+continue playback. With this seek method it is possible to perform seemless
+looping or simple linear editing.
+When doing fast forward (rate > 1.0) or fast reverse (rate < -1.0) trickmode
+playback, the @GST_SEEK_FLAG_SKIP flag can be used to instruct decoders
+and demuxers to adjust the playback rate by skipping frames. This can improve
+performance and decrease CPU usage because not all frames need to be decoded."
+ c:type="GstSeekFlags">
+ <member name="none" value="0" c:identifier="GST_SEEK_FLAG_NONE"/>
+ <member name="flush" value="1" c:identifier="GST_SEEK_FLAG_FLUSH"/>
+ <member name="accurate" value="2" c:identifier="GST_SEEK_FLAG_ACCURATE"/>
+ <member name="key_unit" value="4" c:identifier="GST_SEEK_FLAG_KEY_UNIT"/>
+ <member name="segment" value="8" c:identifier="GST_SEEK_FLAG_SEGMENT"/>
+ <member name="skip" value="16" c:identifier="GST_SEEK_FLAG_SKIP"/>
+ </bitfield>
+ <enumeration name="SeekType"
+ doc="can't be used to seek relative to the current playback position - do a
+position query, calculate the desired position and then do an absolute
+position seek instead if that's what you want to do.
+The different types of seek events. When constructing a seek event with
+gst_event_new_seek(), a format, a seek method and optional flags are to
+be provided. The seek event is then inserted into the graph with
+gst_pad_send_event() or gst_element_send_event()."
+ c:type="GstSeekType">
+ <member name="none" value="0" c:identifier="GST_SEEK_TYPE_NONE"/>
+ <member name="cur" value="1" c:identifier="GST_SEEK_TYPE_CUR"/>
+ <member name="set" value="2" c:identifier="GST_SEEK_TYPE_SET"/>
+ <member name="end" value="3" c:identifier="GST_SEEK_TYPE_END"/>
+ </enumeration>
+ <record name="Segment"
+ c:type="GstSegment"
+ doc="A helper structure that holds the configured region of
+interest in a media file."
+ glib:type-name="GstSegment"
+ glib:get-type="gst_segment_get_type">
+ <field name="rate" writable="1">
+ <type name="double" c:type="gdouble"/>
+ </field>
+ <field name="abs_rate" writable="1">
+ <type name="double" c:type="gdouble"/>
+ </field>
+ <field name="format" writable="1">
+ <type name="Format" c:type="GstFormat"/>
+ </field>
+ <field name="flags" writable="1">
+ <type name="SeekFlags" c:type="GstSeekFlags"/>
+ </field>
+ <field name="start" writable="1">
+ <type name="int64" c:type="gint64"/>
+ </field>
+ <field name="stop" writable="1">
+ <type name="int64" c:type="gint64"/>
+ </field>
+ <field name="time" writable="1">
+ <type name="int64" c:type="gint64"/>
+ </field>
+ <field name="accum" writable="1">
+ <type name="int64" c:type="gint64"/>
+ </field>
+ <field name="last_stop" writable="1">
+ <type name="int64" c:type="gint64"/>
+ </field>
+ <field name="duration" writable="1">
+ <type name="int64" c:type="gint64"/>
+ </field>
+ <field name="applied_rate" writable="1">
+ <type name="double" c:type="gdouble"/>
+ </field>
+ <field name="_gst_reserved" writable="1">
+ <array zero-terminated="0" c:type="guint8" fixed-size="0">
+ <type name="uint8"/>
+ </array>
+ </field>
+ <constructor name="new"
+ c:identifier="gst_segment_new"
+ doc="Allocate a new #GstSegment structure and initialize it using
+gst_segment_init().">
+ <return-value transfer-ownership="full">
+ <type name="Segment" c:type="GstSegment*"/>
+ </return-value>
+ </constructor>
+ <method name="copy"
+ c:identifier="gst_segment_copy"
+ doc="Create a copy of given @segment."
+ version="0.10.20">
+ <return-value transfer-ownership="full">
+ <type name="Segment" c:type="GstSegment*"/>
+ </return-value>
+ </method>
+ <method name="free"
+ c:identifier="gst_segment_free"
+ doc="Free the allocated segment @segment.">
+ <return-value transfer-ownership="none">
+ <type name="none" c:type="void"/>
+ </return-value>
+ </method>
+ <method name="init"
+ c:identifier="gst_segment_init"
+ doc="The start/last_stop positions are set to 0 and the stop/duration
+fields are set to -1 (unknown). The default rate of 1.0 and no
+flags are set.
+Initialize @segment to its default values.">
+ <return-value transfer-ownership="none">
+ <type name="none" c:type="void"/>
+ </return-value>
+ <parameters>
+ <parameter name="format" transfer-ownership="none">
+ <type name="Format" c:type="GstFormat"/>
+ </parameter>
+ </parameters>
+ </method>
+ <method name="set_duration"
+ c:identifier="gst_segment_set_duration"
+ doc="Set the duration of the segment to @duration. This function is mainly
+used by elements that perform seeking and know the total duration of the
+segment.
+This field should be set to allow seeking requests relative to the
+duration.">
+ <return-value transfer-ownership="none">
+ <type name="none" c:type="void"/>
+ </return-value>
+ <parameters>
+ <parameter name="format" transfer-ownership="none">
+ <type name="Format" c:type="GstFormat"/>
+ </parameter>
+ <parameter name="duration" transfer-ownership="none">
+ <type name="int64" c:type="gint64"/>
+ </parameter>
+ </parameters>
+ </method>
+ <method name="set_last_stop"
+ c:identifier="gst_segment_set_last_stop"
+ doc="Set the last observed stop position in the segment to @position.
+This field should be set to allow seeking requests relative to the
+current playing position.">
+ <return-value transfer-ownership="none">
+ <type name="none" c:type="void"/>
+ </return-value>
+ <parameters>
+ <parameter name="format" transfer-ownership="none">
+ <type name="Format" c:type="GstFormat"/>
+ </parameter>
+ <parameter name="position" transfer-ownership="none">
+ <type name="int64" c:type="gint64"/>
+ </parameter>
+ </parameters>
+ </method>
+ <method name="set_seek"
+ c:identifier="gst_segment_set_seek"
+ doc="Update the segment structure with the field values of a seek event (see
+gst_event_new_seek()).
+After calling this method, the segment field last_stop and time will
+contain the requested new position in the segment. The new requested
+position in the segment depends on @rate and @start_type and @stop_type.
+For positive @rate, the new position in the segment is the new @segment
+start field when it was updated with a @start_type different from
+#GST_SEEK_TYPE_NONE. If no update was performed on @segment start position
+(#GST_SEEK_TYPE_NONE), @start is ignored and @segment last_stop is
+unmodified.
+For negative @rate, the new position in the segment is the new @segment
+stop field when it was updated with a @stop_type different from
+#GST_SEEK_TYPE_NONE. If no stop was previously configured in the segment, the
+duration of the segment will be used to update the stop position.
+If no update was performed on @segment stop position (#GST_SEEK_TYPE_NONE),
+The applied rate of the segment will be set to 1.0 by default.
+If the caller can apply a rate change, it should update @segment
+rate and applied_rate after calling this function.
+last_stop field. This field can be FALSE if, for example, only the @rate
+has been changed but not the playback position.">
+ <return-value transfer-ownership="none">
+ <type name="none" c:type="void"/>
+ </return-value>
+ <parameters>
+ <parameter name="rate" transfer-ownership="none">
+ <type name="double" c:type="gdouble"/>
+ </parameter>
+ <parameter name="format" transfer-ownership="none">
+ <type name="Format" c:type="GstFormat"/>
+ </parameter>
+ <parameter name="flags" transfer-ownership="none">
+ <type name="SeekFlags" c:type="GstSeekFlags"/>
+ </parameter>
+ <parameter name="start_type" transfer-ownership="none">
+ <type name="SeekType" c:type="GstSeekType"/>
+ </parameter>
+ <parameter name="start" transfer-ownership="none">
+ <type name="int64" c:type="gint64"/>
+ </parameter>
+ <parameter name="stop_type" transfer-ownership="none">
+ <type name="SeekType" c:type="GstSeekType"/>
+ </parameter>
+ <parameter name="stop" transfer-ownership="none">
+ <type name="int64" c:type="gint64"/>
+ </parameter>
+ <parameter name="update" direction="out" transfer-ownership="full">
+ <type name="boolean" c:type="gboolean*"/>
+ </parameter>
+ </parameters>
+ </method>
+ <method name="set_newsegment"
+ c:identifier="gst_segment_set_newsegment"
+ doc="Update the segment structure with the field values of a new segment event and
+with a default applied_rate of 1.0."
+ version="0.10.6">
+ <return-value transfer-ownership="none">
+ <type name="none" c:type="void"/>
+ </return-value>
+ <parameters>
+ <parameter name="update" transfer-ownership="none">
+ <type name="boolean" c:type="gboolean"/>
+ </parameter>
+ <parameter name="rate" transfer-ownership="none">
+ <type name="double" c:type="gdouble"/>
+ </parameter>
+ <parameter name="format" transfer-ownership="none">
+ <type name="Format" c:type="GstFormat"/>
+ </parameter>
+ <parameter name="start" transfer-ownership="none">
+ <type name="int64" c:type="gint64"/>
+ </parameter>
+ <parameter name="stop" transfer-ownership="none">
+ <type name="int64" c:type="gint64"/>
+ </parameter>
+ <parameter name="time" transfer-ownership="none">
+ <type name="int64" c:type="gint64"/>
+ </parameter>
+ </parameters>
+ </method>
+ <method name="set_newsegment_full"
+ c:identifier="gst_segment_set_newsegment_full"
+ doc="Update the segment structure with the field values of a new segment event.">
+ <return-value transfer-ownership="none">
+ <type name="none" c:type="void"/>
+ </return-value>
+ <parameters>
+ <parameter name="update" transfer-ownership="none">
+ <type name="boolean" c:type="gboolean"/>
+ </parameter>
+ <parameter name="rate" transfer-ownership="none">
+ <type name="double" c:type="gdouble"/>
+ </parameter>
+ <parameter name="applied_rate" transfer-ownership="none">
+ <type name="double" c:type="gdouble"/>
+ </parameter>
+ <parameter name="format" transfer-ownership="none">
+ <type name="Format" c:type="GstFormat"/>
+ </parameter>
+ <parameter name="start" transfer-ownership="none">
+ <type name="int64" c:type="gint64"/>
+ </parameter>
+ <parameter name="stop" transfer-ownership="none">
+ <type name="int64" c:type="gint64"/>
+ </parameter>
+ <parameter name="time" transfer-ownership="none">
+ <type name="int64" c:type="gint64"/>
+ </parameter>
+ </parameters>
+ </method>
+ <method name="to_stream_time"
+ c:identifier="gst_segment_to_stream_time"
+ doc="Translate @position to stream time using the currently configured
+segment. The @position value must be between @segment start and
+stop value.
+This function is typically used by elements that need to operate on
+the stream time of the buffers it receives, such as effect plugins.
+In those use cases, @position is typically the buffer timestamp or
+clock time that one wants to convert to the stream time.
+The stream time is always between 0 and the total duration of the
+media stream.
+was given.">
+ <return-value transfer-ownership="none">
+ <type name="int64" c:type="gint64"/>
+ </return-value>
+ <parameters>
+ <parameter name="format" transfer-ownership="none">
+ <type name="Format" c:type="GstFormat"/>
+ </parameter>
+ <parameter name="position" transfer-ownership="none">
+ <type name="int64" c:type="gint64"/>
+ </parameter>
+ </parameters>
+ </method>
+ <method name="to_running_time"
+ c:identifier="gst_segment_to_running_time"
+ doc="Translate @position to the total running time using the currently configured
+and previously accumulated segments. Position is a value between @segment
+start and stop time.
+This function is typically used by elements that need to synchronize to the
+global clock in a pipeline. The runnning time is a constantly increasing value
+starting from 0. When gst_segment_init() is called, this value will reset to
+0.
+This function returns -1 if the position is outside of @segment start and stop.
+was given.">
+ <return-value transfer-ownership="none">
+ <type name="int64" c:type="gint64"/>
+ </return-value>
+ <parameters>
+ <parameter name="format" transfer-ownership="none">
+ <type name="Format" c:type="GstFormat"/>
+ </parameter>
+ <parameter name="position" transfer-ownership="none">
+ <type name="int64" c:type="gint64"/>
+ </parameter>
+ </parameters>
+ </method>
+ <method name="to_position"
+ c:identifier="gst_segment_to_position"
+ doc="Convert @running_time into a position in the segment so that
+gst_segment_to_running_time() with that position returns @running_time.
+-1 when @running_time is -1 or when it is not inside @segment."
+ version="0.10.24">
+ <return-value transfer-ownership="none">
+ <type name="int64" c:type="gint64"/>
+ </return-value>
+ <parameters>
+ <parameter name="format" transfer-ownership="none">
+ <type name="Format" c:type="GstFormat"/>
+ </parameter>
+ <parameter name="running_time" transfer-ownership="none">
+ <type name="int64" c:type="gint64"/>
+ </parameter>
+ </parameters>
+ </method>
+ <method name="clip"
+ c:identifier="gst_segment_clip"
+ doc="Clip the given @start and @stop values to the segment boundaries given
+in @segment. @start and @stop are compared and clipped to @segment
+start and stop values.
+If the function returns FALSE, @start and @stop are known to fall
+outside of @segment and @clip_start and @clip_stop are not updated.
+When the function returns TRUE, @clip_start and @clip_stop will be
+updated. If @clip_start or @clip_stop are different from @start or @stop
+respectively, the region fell partially in the segment.
+Note that when @stop is -1, @clip_stop will be set to the end of the
+segment. Depending on the use case, this may or may not be what you want.
+completely in @segment, FALSE if the values are completely outside
+of the segment.">
+ <return-value transfer-ownership="none">
+ <type name="boolean" c:type="gboolean"/>
+ </return-value>
+ <parameters>
+ <parameter name="format" transfer-ownership="none">
+ <type name="Format" c:type="GstFormat"/>
+ </parameter>
+ <parameter name="start" transfer-ownership="none">
+ <type name="int64" c:type="gint64"/>
+ </parameter>
+ <parameter name="stop" transfer-ownership="none">
+ <type name="int64" c:type="gint64"/>
+ </parameter>
+ <parameter name="clip_start"
+ direction="out"
+ transfer-ownership="full">
+ <type name="int64" c:type="gint64*"/>
+ </parameter>
+ <parameter name="clip_stop"
+ direction="out"
+ transfer-ownership="full">
+ <type name="int64" c:type="gint64*"/>
+ </parameter>
+ </parameters>
+ </method>
+ <method name="set_running_time"
+ c:identifier="gst_segment_set_running_time"
+ doc="Adjust the start/stop and accum values of @segment such that the next valid
+buffer will be one with @running_time.
+returned, @running_time is -1 or not in @segment."
+ version="0.10.24">
+ <return-value transfer-ownership="none">
+ <type name="boolean" c:type="gboolean"/>
+ </return-value>
+ <parameters>
+ <parameter name="format" transfer-ownership="none">
+ <type name="Format" c:type="GstFormat"/>
+ </parameter>
+ <parameter name="running_time" transfer-ownership="none">
+ <type name="int64" c:type="gint64"/>
+ </parameter>
+ </parameters>
+ </method>
+ </record>
+ <enumeration name="State"
+ doc="process data. Sink elements however only accept one
+buffer and then block.
+the data is flowing.
+The possible states an element can be in. States can be changed using
+gst_element_set_state() and checked using gst_element_get_state()."
+ c:type="GstState">
+ <member name="void_pending"
+ value="0"
+ c:identifier="GST_STATE_VOID_PENDING"/>
+ <member name="null" value="1" c:identifier="GST_STATE_NULL"/>
+ <member name="ready" value="2" c:identifier="GST_STATE_READY"/>
+ <member name="paused" value="3" c:identifier="GST_STATE_PAUSED"/>
+ <member name="playing" value="4" c:identifier="GST_STATE_PLAYING"/>
+ </enumeration>
+ <bitfield name="StateChange"
+ doc="<itemizedlist>
+<listitem><para>
+The element must check if the resources it needs are available. Device
+sinks and -sources typically try to probe the device to constrain their
+caps.
+</para></listitem>
+<listitem><para>
+The element opens the device (in case feature need to be probed).
+</para></listitem>
+</itemizedlist>
+<itemizedlist>
+<listitem><para>
+The element pads are activated in order to receive data in PAUSED.
+Streaming threads are started.
+</para></listitem>
+<listitem><para>
+Some elements might need to return ASYNC and complete the state change
+when they have enough information. It is a requirement for sinks to
+return ASYNC and complete the state change when they receive the first
+buffer or EOS event (preroll). Sinks also block the dataflow when in
+PAUSED.
+</para></listitem>
+<listitem><para>
+A pipeline resets the running_time to 0.
+</para></listitem>
+<listitem><para>
+Live sources return NO_PREROLL and don't generate data.
+</para></listitem>
+</itemizedlist>
+<itemizedlist>
+<listitem><para>
+Most elements ignore this state change.
+</para></listitem>
+<listitem><para>
+The pipeline selects a clock and distributes this to all the children
+before setting them to PLAYING. This means that it is only alowed to
+synchronize on the clock in the PLAYING state.
+</para></listitem>
+<listitem><para>
+The pipeline uses the clock and the running_time to calculate the
+base_time. The base_time is distributed to all children when performing
+the state change.
+</para></listitem>
+<listitem><para>
+Sink elements stop blocking on the preroll buffer or event and start
+rendering the data.
+</para></listitem>
+<listitem><para>
+Sinks can post the EOS message in the PLAYING state. It is not allowed to
+post EOS when not in the PLAYING state.
+</para></listitem>
+<listitem><para>
+While streaming in PAUSED or PLAYING elements can create and remove
+sometimes pads.
+</para></listitem>
+<listitem><para>
+Live sources start generating data and return SUCCESS.
+</para></listitem>
+</itemizedlist>
+<itemizedlist>
+<listitem><para>
+Most elements ignore this state change.
+</para></listitem>
+<listitem><para>
+The pipeline calculates the running_time based on the last selected clock
+and the base_time. It stores this information to continue playback when
+going back to the PLAYING state.
+</para></listitem>
+<listitem><para>
+Sinks unblock any clock wait calls.
+</para></listitem>
+<listitem><para>
+When a sink does not have a pending buffer to play, it returns ASYNC from
+this state change and completes the state change when it receives a new
+buffer or an EOS event.
+</para></listitem>
+<listitem><para>
+Any queued EOS messages are removed since they will be reposted when going
+back to the PLAYING state. The EOS messages are queued in GstBins.
+</para></listitem>
+<listitem><para>
+Live sources stop generating data and return NO_PREROLL.
+</para></listitem>
+</itemizedlist>
+<itemizedlist>
+<listitem><para>
+Sinks unblock any waits in the preroll.
+</para></listitem>
+<listitem><para>
+Elements unblock any waits on devices
+</para></listitem>
+<listitem><para>
+Chain or get_range functions return WRONG_STATE.
+</para></listitem>
+<listitem><para>
+The element pads are deactivated so that streaming becomes impossible and
+all streaming threads are stopped.
+</para></listitem>
+<listitem><para>
+The sink forgets all negotiated formats
+</para></listitem>
+<listitem><para>
+Elements remove all sometimes pads
+</para></listitem>
+</itemizedlist>
+<itemizedlist>
+<listitem><para>
+Elements close devices
+</para></listitem>
+<listitem><para>
+Elements reset any internal state.
+</para></listitem>
+</itemizedlist>
+These are the different state changes an element goes through.
+%GST_STATE_NULL &rArr; %GST_STATE_PLAYING is called an upwards state change
+and %GST_STATE_PLAYING &rArr; %GST_STATE_NULL a downwards state change."
+ c:type="GstStateChange">
+ <member name="null_to_ready"
+ value="10"
+ c:identifier="GST_STATE_CHANGE_NULL_TO_READY"/>
+ <member name="ready_to_paused"
+ value="19"
+ c:identifier="GST_STATE_CHANGE_READY_TO_PAUSED"/>
+ <member name="paused_to_playing"
+ value="28"
+ c:identifier="GST_STATE_CHANGE_PAUSED_TO_PLAYING"/>
+ <member name="playing_to_paused"
+ value="35"
+ c:identifier="GST_STATE_CHANGE_PLAYING_TO_PAUSED"/>
+ <member name="paused_to_ready"
+ value="26"
+ c:identifier="GST_STATE_CHANGE_PAUSED_TO_READY"/>
+ <member name="ready_to_null"
+ value="17"
+ c:identifier="GST_STATE_CHANGE_READY_TO_NULL"/>
+ </bitfield>
+ <enumeration name="StateChangeReturn"
+ doc="cannot produce data in %GST_STATE_PAUSED.
+This typically happens with live sources.
+The possible return values from a state change function. Only"
+ c:type="GstStateChangeReturn">
+ <member name="failure"
+ value="0"
+ c:identifier="GST_STATE_CHANGE_FAILURE"/>
+ <member name="success"
+ value="1"
+ c:identifier="GST_STATE_CHANGE_SUCCESS"/>
+ <member name="async" value="2" c:identifier="GST_STATE_CHANGE_ASYNC"/>
+ <member name="no_preroll"
+ value="3"
+ c:identifier="GST_STATE_CHANGE_NO_PREROLL"/>
+ </enumeration>
+ <record name="StaticCaps"
+ c:type="GstStaticCaps"
+ doc="Datastructure to initialize #GstCaps from a string description usually
+used in conjunction with GST_STATIC_CAPS() and gst_static_caps_get() to
+instantiate a #GstCaps.">
+ <field name="caps" writable="1">
+ <type name="Caps" c:type="GstCaps"/>
+ </field>
+ <field name="string" writable="1">
+ <type name="utf8" c:type="char*"/>
+ </field>
+ <field name="_gst_reserved" writable="1">
+ <array zero-terminated="0" c:type="gpointer" fixed-size="4">
+ <type name="any"/>
+ </array>
+ </field>
+ <method name="get"
+ c:identifier="gst_static_caps_get"
+ doc="Converts a #GstStaticCaps to a #GstCaps.
+core holds an additional ref to the returned caps,
+use gst_caps_make_writable() on the returned caps to modify it.">
+ <return-value transfer-ownership="full">
+ <type name="Caps" c:type="GstCaps*"/>
+ </return-value>
+ </method>
+ </record>
+ <record name="StaticPadTemplate" c:type="GstStaticPadTemplate">
+ <field name="name_template" writable="1">
+ <type name="utf8" c:type="gchar*"/>
+ </field>
+ <field name="direction" writable="1">
+ <type name="PadDirection" c:type="GstPadDirection"/>
+ </field>
+ <field name="presence" writable="1">
+ <type name="PadPresence" c:type="GstPadPresence"/>
+ </field>
+ <field name="static_caps" writable="1">
+ <type name="StaticCaps" c:type="GstStaticCaps"/>
+ </field>
+ <method name="get"
+ c:identifier="gst_static_pad_template_get"
+ doc="Converts a #GstStaticPadTemplate into a #GstPadTemplate.">
+ <return-value transfer-ownership="full">
+ <type name="PadTemplate" c:type="GstPadTemplate*"/>
+ </return-value>
+ </method>
+ <method name="get_caps"
+ c:identifier="gst_static_pad_template_get_caps"
+ doc="Gets the capabilities of the static pad template.
+Unref after usage. Since the core holds an additional
+ref to the returned caps, use gst_caps_make_writable()
+on the returned caps to modify it.">
+ <return-value transfer-ownership="full">
+ <type name="Caps" c:type="GstCaps*"/>
+ </return-value>
+ </method>
+ </record>
+ <enumeration name="StreamError"
+ doc="category. Make sure you add a custom message to the error call.
+deciding where to go while developing code.
+this functionality yet.
+stream's type.
+of stream.
+stream's type.
+(for example, wrong caps).
+Stream errors are for anything related to the stream being processed:
+format errors, media type errors, ...
+They're typically used by decoders, demuxers, converters, ..."
+ c:type="GstStreamError"
+ glib:error-quark="gst_stream_error_quark">
+ <member name="failed" value="1" c:identifier="GST_STREAM_ERROR_FAILED"/>
+ <member name="too_lazy"
+ value="2"
+ c:identifier="GST_STREAM_ERROR_TOO_LAZY"/>
+ <member name="not_implemented"
+ value="3"
+ c:identifier="GST_STREAM_ERROR_NOT_IMPLEMENTED"/>
+ <member name="type_not_found"
+ value="4"
+ c:identifier="GST_STREAM_ERROR_TYPE_NOT_FOUND"/>
+ <member name="wrong_type"
+ value="5"
+ c:identifier="GST_STREAM_ERROR_WRONG_TYPE"/>
+ <member name="codec_not_found"
+ value="6"
+ c:identifier="GST_STREAM_ERROR_CODEC_NOT_FOUND"/>
+ <member name="decode" value="7" c:identifier="GST_STREAM_ERROR_DECODE"/>
+ <member name="encode" value="8" c:identifier="GST_STREAM_ERROR_ENCODE"/>
+ <member name="demux" value="9" c:identifier="GST_STREAM_ERROR_DEMUX"/>
+ <member name="mux" value="10" c:identifier="GST_STREAM_ERROR_MUX"/>
+ <member name="format" value="11" c:identifier="GST_STREAM_ERROR_FORMAT"/>
+ <member name="decrypt"
+ value="12"
+ c:identifier="GST_STREAM_ERROR_DECRYPT"/>
+ <member name="decrypt_nokey"
+ value="13"
+ c:identifier="GST_STREAM_ERROR_DECRYPT_NOKEY"/>
+ <member name="num_errors"
+ value="14"
+ c:identifier="GST_STREAM_ERROR_NUM_ERRORS"/>
+ </enumeration>
+ <enumeration name="StreamStatusType"
+ doc="The type of a %GST_MESSAGE_STREAM_STATUS. The stream status messages inform the
+application of new streaming threads and their status."
+ version="0.10.24"
+ c:type="GstStreamStatusType">
+ <member name="create"
+ value="0"
+ c:identifier="GST_STREAM_STATUS_TYPE_CREATE"/>
+ <member name="enter"
+ value="1"
+ c:identifier="GST_STREAM_STATUS_TYPE_ENTER"/>
+ <member name="leave"
+ value="2"
+ c:identifier="GST_STREAM_STATUS_TYPE_LEAVE"/>
+ <member name="destroy"
+ value="3"
+ c:identifier="GST_STREAM_STATUS_TYPE_DESTROY"/>
+ <member name="start"
+ value="8"
+ c:identifier="GST_STREAM_STATUS_TYPE_START"/>
+ <member name="pause"
+ value="9"
+ c:identifier="GST_STREAM_STATUS_TYPE_PAUSE"/>
+ <member name="stop"
+ value="10"
+ c:identifier="GST_STREAM_STATUS_TYPE_STOP"/>
+ </enumeration>
+ <record name="Structure"
+ c:type="GstStructure"
+ doc="The GstStructure object. Most fields are private."
+ glib:type-name="GstStructure"
+ glib:get-type="gst_structure_get_type">
+ <field name="type" writable="1">
+ <type name="GType" c:type="GType"/>
+ </field>
+ <field name="name" writable="1">
+ <type name="GLib.Quark" c:type="GQuark"/>
+ </field>
+ <field name="parent_refcount" writable="1">
+ <type name="any" c:type="gint*"/>
+ </field>
+ <field name="fields" writable="1">
+ <type name="GLib.Array" c:type="GArray*"/>
+ </field>
+ <field name="_gst_reserved" writable="1">
+ <type name="any" c:type="gpointer"/>
+ </field>
+ <constructor name="new"
+ c:identifier="gst_structure_new"
+ doc="Creates a new #GstStructure with the given name. Parses the
+list of variable arguments and sets fields to the values listed.
+Variable arguments should be passed as field name, field type,
+and value. Last variable argument should be NULL.">
+ <return-value transfer-ownership="full">
+ <type name="Structure" c:type="GstStructure*"/>
+ </return-value>
+ <parameters>
+ <parameter name="name" transfer-ownership="none">
+ <type name="utf8" c:type="gchar*"/>
+ </parameter>
+ <parameter name="firstfield" transfer-ownership="none">
+ <type name="utf8" c:type="gchar*"/>
+ </parameter>
+ <parameter transfer-ownership="none">
+ <varargs>
+ </varargs>
+ </parameter>
+ </parameters>
+ </constructor>
+ <method name="copy"
+ c:identifier="gst_structure_copy"
+ doc="Duplicates a #GstStructure and all its fields and values.">
+ <return-value transfer-ownership="full">
+ <type name="Structure" c:type="GstStructure*"/>
+ </return-value>
+ </method>
+ <method name="set_parent_refcount"
+ c:identifier="gst_structure_set_parent_refcount"
+ doc="Sets the parent_refcount field of #GstStructure. This field is used to
+determine whether a structure is mutable or not. This function should only be
+called by code implementing parent objects of #GstStructure, as described in
+the MT Refcounting section of the design documents.">
+ <return-value transfer-ownership="none">
+ <type name="none" c:type="void"/>
+ </return-value>
+ <parameters>
+ <parameter name="refcount" direction="out" transfer-ownership="full">
+ <type name="int" c:type="gint*"/>
+ </parameter>
+ </parameters>
+ </method>
+ <method name="free"
+ c:identifier="gst_structure_free"
+ doc="Frees a #GstStructure and all its fields and values. The structure must not
+have a parent when this function is called.">
+ <return-value transfer-ownership="none">
+ <type name="none" c:type="void"/>
+ </return-value>
+ </method>
+ <method name="get_name"
+ c:identifier="gst_structure_get_name"
+ doc="Get the name of @structure as a string.">
+ <return-value transfer-ownership="none">
+ <type name="utf8" c:type="gchar*"/>
+ </return-value>
+ </method>
+ <method name="get_name_id"
+ c:identifier="gst_structure_get_name_id"
+ doc="Get the name of @structure as a GQuark.">
+ <return-value transfer-ownership="full">
+ <type name="GLib.Quark" c:type="GQuark"/>
+ </return-value>
+ </method>
+ <method name="has_name"
+ c:identifier="gst_structure_has_name"
+ doc="Checks if the structure has the given name">
+ <return-value transfer-ownership="none">
+ <type name="boolean" c:type="gboolean"/>
+ </return-value>
+ <parameters>
+ <parameter name="name" transfer-ownership="none">
+ <type name="utf8" c:type="gchar*"/>
+ </parameter>
+ </parameters>
+ </method>
+ <method name="set_name"
+ c:identifier="gst_structure_set_name"
+ doc="Sets the name of the structure to the given @name. The string
+provided is copied before being used. It must not be empty, start with a
+letter and can be followed by letters, numbers and any of "/-_.:".">
+ <return-value transfer-ownership="none">
+ <type name="none" c:type="void"/>
+ </return-value>
+ <parameters>
+ <parameter name="name" transfer-ownership="none">
+ <type name="utf8" c:type="gchar*"/>
+ </parameter>
+ </parameters>
+ </method>
+ <method name="id_set_value"
+ c:identifier="gst_structure_id_set_value"
+ doc="Sets the field with the given GQuark @field to @value. If the field
+does not exist, it is created. If the field exists, the previous
+value is replaced and freed.">
+ <return-value transfer-ownership="none">
+ <type name="none" c:type="void"/>
+ </return-value>
+ <parameters>
+ <parameter name="field" transfer-ownership="none">
+ <type name="GLib.Quark" c:type="GQuark"/>
+ </parameter>
+ <parameter name="value" transfer-ownership="none">
+ <type name="GObject.Value" c:type="GValue*"/>
+ </parameter>
+ </parameters>
+ </method>
+ <method name="set_value"
+ c:identifier="gst_structure_set_value"
+ doc="Sets the field with the given name @field to @value. If the field
+does not exist, it is created. If the field exists, the previous
+value is replaced and freed.">
+ <return-value transfer-ownership="none">
+ <type name="none" c:type="void"/>
+ </return-value>
+ <parameters>
+ <parameter name="fieldname" transfer-ownership="none">
+ <type name="utf8" c:type="gchar*"/>
+ </parameter>
+ <parameter name="value" transfer-ownership="none">
+ <type name="GObject.Value" c:type="GValue*"/>
+ </parameter>
+ </parameters>
+ </method>
+ <method name="set"
+ c:identifier="gst_structure_set"
+ doc="Parses the variable arguments and sets fields accordingly.
+Variable arguments should be in the form field name, field type
+(as a GType), value(s). The last variable argument should be NULL.">
+ <return-value transfer-ownership="none">
+ <type name="none" c:type="void"/>
+ </return-value>
+ <parameters>
+ <parameter name="fieldname" transfer-ownership="none">
+ <type name="utf8" c:type="gchar*"/>
+ </parameter>
+ <parameter transfer-ownership="none">
+ <varargs>
+ </varargs>
+ </parameter>
+ </parameters>
+ </method>
+ <method name="id_set"
+ c:identifier="gst_structure_id_set"
+ doc="Identical to gst_structure_set, except that field names are
+passed using the GQuark for the field name. This allows more efficient
+setting of the structure if the caller already knows the associated
+quark values.
+The last variable argument must be NULL."
+ version="0.10.10">
+ <return-value transfer-ownership="none">
+ <type name="none" c:type="void"/>
+ </return-value>
+ <parameters>
+ <parameter name="fieldname" transfer-ownership="none">
+ <type name="GLib.Quark" c:type="GQuark"/>
+ </parameter>
+ <parameter transfer-ownership="none">
+ <varargs>
+ </varargs>
+ </parameter>
+ </parameters>
+ </method>
+ <method name="get"
+ c:identifier="gst_structure_get"
+ doc="Parses the variable arguments and reads fields from @structure accordingly.
+Variable arguments should be in the form field name, field type
+(as a GType), pointer(s) to a variable(s) to hold the return value(s).
+The last variable argument should be NULL.
+For refcounted (mini)objects you will acquire your own reference which
+you must release with a suitable _unref() when no longer needed. For
+strings and boxed types you will acquire a copy which you will need to
+release with either g_free() or the suiteable function for the boxed type.
+because the field requested did not exist, or was of a type other
+than the type specified), otherwise TRUE."
+ version="0.10.24">
+ <return-value transfer-ownership="none">
+ <type name="boolean" c:type="gboolean"/>
+ </return-value>
+ <parameters>
+ <parameter name="first_fieldname" transfer-ownership="none">
+ <type name="utf8" c:type="char*"/>
+ </parameter>
+ <parameter transfer-ownership="none">
+ <varargs>
+ </varargs>
+ </parameter>
+ </parameters>
+ </method>
+ <method name="id_get"
+ c:identifier="gst_structure_id_get"
+ doc="Parses the variable arguments and reads fields from @structure accordingly.
+Variable arguments should be in the form field id quark, field type
+(as a GType), pointer(s) to a variable(s) to hold the return value(s).
+The last variable argument should be NULL (technically it should be a
+0 quark, but we require NULL so compilers that support it can check for
+the NULL terminator and warn if it's not there).
+This function is just like gst_structure_get() only that it is slightly
+more efficient since it saves the string-to-quark lookup in the global
+quark hashtable.
+For refcounted (mini)objects you will acquire your own reference which
+you must release with a suitable _unref() when no longer needed. For
+strings and boxed types you will acquire a copy which you will need to
+release with either g_free() or the suiteable function for the boxed type.
+because the field requested did not exist, or was of a type other
+than the type specified), otherwise TRUE."
+ version="0.10.24">
+ <return-value transfer-ownership="none">
+ <type name="boolean" c:type="gboolean"/>
+ </return-value>
+ <parameters>
+ <parameter name="first_field_id" transfer-ownership="none">
+ <type name="GLib.Quark" c:type="GQuark"/>
+ </parameter>
+ <parameter transfer-ownership="none">
+ <varargs>
+ </varargs>
+ </parameter>
+ </parameters>
+ </method>
+ <method name="id_get_value"
+ c:identifier="gst_structure_id_get_value"
+ doc="Get the value of the field with GQuark @field.
+identifier.">
+ <return-value transfer-ownership="none">
+ <type name="GObject.Value" c:type="GValue*"/>
+ </return-value>
+ <parameters>
+ <parameter name="field" transfer-ownership="none">
+ <type name="GLib.Quark" c:type="GQuark"/>
+ </parameter>
+ </parameters>
+ </method>
+ <method name="get_value"
+ c:identifier="gst_structure_get_value"
+ doc="Get the value of the field with name @fieldname.">
+ <return-value transfer-ownership="none">
+ <type name="GObject.Value" c:type="GValue*"/>
+ </return-value>
+ <parameters>
+ <parameter name="fieldname" transfer-ownership="none">
+ <type name="utf8" c:type="gchar*"/>
+ </parameter>
+ </parameters>
+ </method>
+ <method name="remove_field"
+ c:identifier="gst_structure_remove_field"
+ doc="Removes the field with the given name. If the field with the given
+name does not exist, the structure is unchanged.">
+ <return-value transfer-ownership="none">
+ <type name="none" c:type="void"/>
+ </return-value>
+ <parameters>
+ <parameter name="fieldname" transfer-ownership="none">
+ <type name="utf8" c:type="gchar*"/>
+ </parameter>
+ </parameters>
+ </method>
+ <method name="remove_fields"
+ c:identifier="gst_structure_remove_fields"
+ doc="Removes the fields with the given names. If a field does not exist, the
+argument is ignored.">
+ <return-value transfer-ownership="none">
+ <type name="none" c:type="void"/>
+ </return-value>
+ <parameters>
+ <parameter name="fieldname" transfer-ownership="none">
+ <type name="utf8" c:type="gchar*"/>
+ </parameter>
+ <parameter transfer-ownership="none">
+ <varargs>
+ </varargs>
+ </parameter>
+ </parameters>
+ </method>
+ <method name="remove_all_fields"
+ c:identifier="gst_structure_remove_all_fields"
+ doc="Removes all fields in a GstStructure.">
+ <return-value transfer-ownership="none">
+ <type name="none" c:type="void"/>
+ </return-value>
+ </method>
+ <method name="get_field_type"
+ c:identifier="gst_structure_get_field_type"
+ doc="Finds the field with the given name, and returns the type of the
+value it contains. If the field is not found, G_TYPE_INVALID is
+returned.">
+ <return-value transfer-ownership="none">
+ <type name="GType" c:type="GType"/>
+ </return-value>
+ <parameters>
+ <parameter name="fieldname" transfer-ownership="none">
+ <type name="utf8" c:type="gchar*"/>
+ </parameter>
+ </parameters>
+ </method>
+ <method name="foreach"
+ c:identifier="gst_structure_foreach"
+ doc="Calls the provided function once for each field in the #GstStructure. The
+function must not modify the fields. Also see gst_structure_map_in_place().
+FALSE otherwise.">
+ <return-value transfer-ownership="none">
+ <type name="boolean" c:type="gboolean"/>
+ </return-value>
+ <parameters>
+ <parameter name="func"
+ transfer-ownership="none"
+ scope="call"
+ closure="2">
+ <type name="StructureForeachFunc"
+ c:type="GstStructureForeachFunc"/>
+ </parameter>
+ <parameter name="user_data" transfer-ownership="none">
+ <type name="any" c:type="gpointer"/>
+ </parameter>
+ </parameters>
+ </method>
+ <method name="map_in_place"
+ c:identifier="gst_structure_map_in_place"
+ doc="Calls the provided function once for each field in the #GstStructure. In
+contrast to gst_structure_foreach(), the function may modify but not delete the
+fields. The structure must be mutable.
+FALSE otherwise.">
+ <return-value transfer-ownership="none">
+ <type name="boolean" c:type="gboolean"/>
+ </return-value>
+ <parameters>
+ <parameter name="func"
+ transfer-ownership="none"
+ scope="call"
+ closure="2">
+ <type name="StructureMapFunc" c:type="GstStructureMapFunc"/>
+ </parameter>
+ <parameter name="user_data" transfer-ownership="none">
+ <type name="any" c:type="gpointer"/>
+ </parameter>
+ </parameters>
+ </method>
+ <method name="n_fields"
+ c:identifier="gst_structure_n_fields"
+ doc="Get the number of fields in the structure.">
+ <return-value transfer-ownership="none">
+ <type name="int" c:type="gint"/>
+ </return-value>
+ </method>
+ <method name="nth_field_name"
+ c:identifier="gst_structure_nth_field_name"
+ doc="Get the name of the given field number, counting from 0 onwards.">
+ <return-value transfer-ownership="none">
+ <type name="utf8" c:type="gchar*"/>
+ </return-value>
+ <parameters>
+ <parameter name="index" transfer-ownership="none">
+ <type name="uint" c:type="guint"/>
+ </parameter>
+ </parameters>
+ </method>
+ <method name="id_has_field"
+ c:identifier="gst_structure_id_has_field"
+ doc="Check if @structure contains a field named @field."
+ version="0.10.26">
+ <return-value transfer-ownership="none">
+ <type name="boolean" c:type="gboolean"/>
+ </return-value>
+ <parameters>
+ <parameter name="field" transfer-ownership="none">
+ <type name="GLib.Quark" c:type="GQuark"/>
+ </parameter>
+ </parameters>
+ </method>
+ <method name="id_has_field_typed"
+ c:identifier="gst_structure_id_has_field_typed"
+ doc="Check if @structure contains a field named @field and with GType @type."
+ version="0.10.26">
+ <return-value transfer-ownership="none">
+ <type name="boolean" c:type="gboolean"/>
+ </return-value>
+ <parameters>
+ <parameter name="field" transfer-ownership="none">
+ <type name="GLib.Quark" c:type="GQuark"/>
+ </parameter>
+ <parameter name="type" transfer-ownership="none">
+ <type name="GType" c:type="GType"/>
+ </parameter>
+ </parameters>
+ </method>
+ <method name="has_field"
+ c:identifier="gst_structure_has_field"
+ doc="Check if @structure contains a field named @fieldname.">
+ <return-value transfer-ownership="none">
+ <type name="boolean" c:type="gboolean"/>
+ </return-value>
+ <parameters>
+ <parameter name="fieldname" transfer-ownership="none">
+ <type name="utf8" c:type="gchar*"/>
+ </parameter>
+ </parameters>
+ </method>
+ <method name="has_field_typed"
+ c:identifier="gst_structure_has_field_typed"
+ doc="Check if @structure contains a field named @fieldname and with GType @type.">
+ <return-value transfer-ownership="none">
+ <type name="boolean" c:type="gboolean"/>
+ </return-value>
+ <parameters>
+ <parameter name="fieldname" transfer-ownership="none">
+ <type name="utf8" c:type="gchar*"/>
+ </parameter>
+ <parameter name="type" transfer-ownership="none">
+ <type name="GType" c:type="GType"/>
+ </parameter>
+ </parameters>
+ </method>
+ <method name="get_boolean"
+ c:identifier="gst_structure_get_boolean"
+ doc="Sets the boolean pointed to by @value corresponding to the value of the
+given field. Caller is responsible for making sure the field exists
+and has the correct type.
+with @fieldname or the existing field did not contain a boolean, this
+function returns FALSE.">
+ <return-value transfer-ownership="none">
+ <type name="boolean" c:type="gboolean"/>
+ </return-value>
+ <parameters>
+ <parameter name="fieldname" transfer-ownership="none">
+ <type name="utf8" c:type="gchar*"/>
+ </parameter>
+ <parameter name="value" direction="out" transfer-ownership="full">
+ <type name="boolean" c:type="gboolean*"/>
+ </parameter>
+ </parameters>
+ </method>
+ <method name="get_int"
+ c:identifier="gst_structure_get_int"
+ doc="Sets the int pointed to by @value corresponding to the value of the
+given field. Caller is responsible for making sure the field exists
+and has the correct type.
+with @fieldname or the existing field did not contain an int, this function
+returns %FALSE.">
+ <return-value transfer-ownership="none">
+ <type name="boolean" c:type="gboolean"/>
+ </return-value>
+ <parameters>
+ <parameter name="fieldname" transfer-ownership="none">
+ <type name="utf8" c:type="gchar*"/>
+ </parameter>
+ <parameter name="value" direction="out" transfer-ownership="full">
+ <type name="int" c:type="gint*"/>
+ </parameter>
+ </parameters>
+ </method>
+ <method name="get_uint"
+ c:identifier="gst_structure_get_uint"
+ doc="Sets the uint pointed to by @value corresponding to the value of the
+given field. Caller is responsible for making sure the field exists
+and has the correct type.
+with @fieldname or the existing field did not contain a uint, this function
+returns %FALSE."
+ version="0.10.15">
+ <return-value transfer-ownership="none">
+ <type name="boolean" c:type="gboolean"/>
+ </return-value>
+ <parameters>
+ <parameter name="fieldname" transfer-ownership="none">
+ <type name="utf8" c:type="gchar*"/>
+ </parameter>
+ <parameter name="value" direction="out" transfer-ownership="full">
+ <type name="uint" c:type="guint*"/>
+ </parameter>
+ </parameters>
+ </method>
+ <method name="get_fourcc"
+ c:identifier="gst_structure_get_fourcc"
+ doc="Sets the Fourcc pointed to by @value corresponding to the value of the
+given field. Caller is responsible for making sure the field exists
+and has the correct type.
+with @fieldname or the existing field did not contain a fourcc, this function
+returns FALSE.">
+ <return-value transfer-ownership="none">
+ <type name="boolean" c:type="gboolean"/>
+ </return-value>
+ <parameters>
+ <parameter name="fieldname" transfer-ownership="none">
+ <type name="utf8" c:type="gchar*"/>
+ </parameter>
+ <parameter name="value" direction="out" transfer-ownership="full">
+ <type name="uint32" c:type="guint32*"/>
+ </parameter>
+ </parameters>
+ </method>
+ <method name="get_double"
+ c:identifier="gst_structure_get_double"
+ doc="Sets the double pointed to by @value corresponding to the value of the
+given field. Caller is responsible for making sure the field exists
+and has the correct type.
+with @fieldname or the existing field did not contain a double, this
+function returns FALSE.">
+ <return-value transfer-ownership="none">
+ <type name="boolean" c:type="gboolean"/>
+ </return-value>
+ <parameters>
+ <parameter name="fieldname" transfer-ownership="none">
+ <type name="utf8" c:type="gchar*"/>
+ </parameter>
+ <parameter name="value" direction="out" transfer-ownership="full">
+ <type name="double" c:type="gdouble*"/>
+ </parameter>
+ </parameters>
+ </method>
+ <method name="get_date"
+ c:identifier="gst_structure_get_date"
+ doc="Sets the date pointed to by @value corresponding to the date of the
+given field. Caller is responsible for making sure the field exists
+and has the correct type.
+On success @value will point to a newly-allocated copy of the date which
+inconsistent with e.g. gst_structure_get_string() which doesn't return a
+copy of the string).
+with @fieldname or the existing field did not contain a data, this function
+returns FALSE.">
+ <return-value transfer-ownership="none">
+ <type name="boolean" c:type="gboolean"/>
+ </return-value>
+ <parameters>
+ <parameter name="fieldname" transfer-ownership="none">
+ <type name="utf8" c:type="gchar*"/>
+ </parameter>
+ <parameter name="value" transfer-ownership="none">
+ <type name="GLib.Date" c:type="GDate**"/>
+ </parameter>
+ </parameters>
+ </method>
+ <method name="get_clock_time"
+ c:identifier="gst_structure_get_clock_time"
+ doc="Sets the clock time pointed to by @value corresponding to the clock time
+of the given field. Caller is responsible for making sure the field exists
+and has the correct type.
+with @fieldname or the existing field did not contain a #GstClockTime, this
+function returns FALSE.">
+ <return-value transfer-ownership="none">
+ <type name="boolean" c:type="gboolean"/>
+ </return-value>
+ <parameters>
+ <parameter name="fieldname" transfer-ownership="none">
+ <type name="utf8" c:type="gchar*"/>
+ </parameter>
+ <parameter name="value" transfer-ownership="none">
+ <type name="ClockTime" c:type="GstClockTime*"/>
+ </parameter>
+ </parameters>
+ </method>
+ <method name="get_string"
+ c:identifier="gst_structure_get_string"
+ doc="Finds the field corresponding to @fieldname, and returns the string
+contained in the field's value. Caller is responsible for making
+sure the field exists and has the correct type.
+The string should not be modified, and remains valid until the next
+call to a gst_structure_*() function with the given structure.
+or did not contain a string.">
+ <return-value transfer-ownership="none">
+ <type name="utf8" c:type="gchar*"/>
+ </return-value>
+ <parameters>
+ <parameter name="fieldname" transfer-ownership="none">
+ <type name="utf8" c:type="gchar*"/>
+ </parameter>
+ </parameters>
+ </method>
+ <method name="get_enum"
+ c:identifier="gst_structure_get_enum"
+ doc="Sets the int pointed to by @value corresponding to the value of the
+given field. Caller is responsible for making sure the field exists,
+has the correct type and that the enumtype is correct.
+with @fieldname or the existing field did not contain an enum of the given
+type, this function returns FALSE.">
+ <return-value transfer-ownership="none">
+ <type name="boolean" c:type="gboolean"/>
+ </return-value>
+ <parameters>
+ <parameter name="fieldname" transfer-ownership="none">
+ <type name="utf8" c:type="gchar*"/>
+ </parameter>
+ <parameter name="enumtype" transfer-ownership="none">
+ <type name="GType" c:type="GType"/>
+ </parameter>
+ <parameter name="value" direction="out" transfer-ownership="full">
+ <type name="int" c:type="gint*"/>
+ </parameter>
+ </parameters>
+ </method>
+ <method name="get_fraction"
+ c:identifier="gst_structure_get_fraction"
+ doc="Sets the integers pointed to by @value_numerator and @value_denominator
+corresponding to the value of the given field. Caller is responsible
+for making sure the field exists and has the correct type.
+with @fieldname or the existing field did not contain a GstFraction, this
+function returns FALSE.">
+ <return-value transfer-ownership="none">
+ <type name="boolean" c:type="gboolean"/>
+ </return-value>
+ <parameters>
+ <parameter name="fieldname" transfer-ownership="none">
+ <type name="utf8" c:type="gchar*"/>
+ </parameter>
+ <parameter name="value_numerator"
+ direction="out"
+ transfer-ownership="full">
+ <type name="int" c:type="gint*"/>
+ </parameter>
+ <parameter name="value_denominator"
+ direction="out"
+ transfer-ownership="full">
+ <type name="int" c:type="gint*"/>
+ </parameter>
+ </parameters>
+ </method>
+ <method name="to_string"
+ c:identifier="gst_structure_to_string"
+ doc="Converts @structure to a human-readable string representation.
+For debugging purposes its easier to do something like this:
+|[
+GST_LOG ("structure is %" GST_PTR_FORMAT, structure);
+]|
+This prints the structure in human readble form.
+usage.">
+ <return-value transfer-ownership="full" doc="after">
+ <type name="utf8" c:type="gchar*"/>
+ </return-value>
+ </method>
+ <method name="fixate_field_nearest_int"
+ c:identifier="gst_structure_fixate_field_nearest_int"
+ doc="Fixates a #GstStructure by changing the given field to the nearest
+integer to @target that is a subset of the existing field.">
+ <return-value transfer-ownership="none">
+ <type name="boolean" c:type="gboolean"/>
+ </return-value>
+ <parameters>
+ <parameter name="field_name" transfer-ownership="none">
+ <type name="utf8" c:type="char*"/>
+ </parameter>
+ <parameter name="target" transfer-ownership="none">
+ <type name="int" c:type="int"/>
+ </parameter>
+ </parameters>
+ </method>
+ <method name="fixate_field_nearest_double"
+ c:identifier="gst_structure_fixate_field_nearest_double"
+ doc="Fixates a #GstStructure by changing the given field to the nearest
+double to @target that is a subset of the existing field.">
+ <return-value transfer-ownership="none">
+ <type name="boolean" c:type="gboolean"/>
+ </return-value>
+ <parameters>
+ <parameter name="field_name" transfer-ownership="none">
+ <type name="utf8" c:type="char*"/>
+ </parameter>
+ <parameter name="target" transfer-ownership="none">
+ <type name="double" c:type="double"/>
+ </parameter>
+ </parameters>
+ </method>
+ <method name="fixate_field_boolean"
+ c:identifier="gst_structure_fixate_field_boolean"
+ doc="Fixates a #GstStructure by changing the given @field_name field to the given">
+ <return-value transfer-ownership="none">
+ <type name="boolean" c:type="gboolean"/>
+ </return-value>
+ <parameters>
+ <parameter name="field_name" transfer-ownership="none">
+ <type name="utf8" c:type="char*"/>
+ </parameter>
+ <parameter name="target" transfer-ownership="none">
+ <type name="boolean" c:type="gboolean"/>
+ </parameter>
+ </parameters>
+ </method>
+ <method name="fixate_field_nearest_fraction"
+ c:identifier="gst_structure_fixate_field_nearest_fraction"
+ doc="Fixates a #GstStructure by changing the given field to the nearest
+fraction to @target_numerator/@target_denominator that is a subset
+of the existing field.">
+ <return-value transfer-ownership="none">
+ <type name="boolean" c:type="gboolean"/>
+ </return-value>
+ <parameters>
+ <parameter name="field_name" transfer-ownership="none">
+ <type name="utf8" c:type="char*"/>
+ </parameter>
+ <parameter name="target_numerator" transfer-ownership="none">
+ <type name="int" c:type="gint"/>
+ </parameter>
+ <parameter name="target_denominator" transfer-ownership="none">
+ <type name="int" c:type="gint"/>
+ </parameter>
+ </parameters>
+ </method>
+ </record>
+ <enumeration name="StructureChangeType"
+ doc="The type of a %GST_MESSAGE_STRUCTURE_CHANGE."
+ version="0.10.22"
+ c:type="GstStructureChangeType">
+ <member name="link"
+ value="0"
+ c:identifier="GST_STRUCTURE_CHANGE_TYPE_PAD_LINK"/>
+ <member name="unlink"
+ value="1"
+ c:identifier="GST_STRUCTURE_CHANGE_TYPE_PAD_UNLINK"/>
+ </enumeration>
+ <callback name="StructureForeachFunc"
+ c:type="GstStructureForeachFunc"
+ doc="A function that will be called in gst_structure_foreach(). The function may
+not modify @value.
+the foreach operation should stop with FALSE.">
+ <return-value transfer-ownership="none">
+ <type name="boolean" c:type="gboolean"/>
+ </return-value>
+ <parameters>
+ <parameter name="field_id" transfer-ownership="none">
+ <type name="GLib.Quark" c:type="GQuark"/>
+ </parameter>
+ <parameter name="value" transfer-ownership="none">
+ <type name="GObject.Value" c:type="GValue*"/>
+ </parameter>
+ <parameter name="user_data" transfer-ownership="none" closure="2">
+ <type name="any" c:type="gpointer"/>
+ </parameter>
+ </parameters>
+ </callback>
+ <callback name="StructureMapFunc"
+ c:type="GstStructureMapFunc"
+ doc="A function that will be called in gst_structure_map_in_place(). The function
+may modify @value.
+the map operation should stop with FALSE.">
+ <return-value transfer-ownership="none">
+ <type name="boolean" c:type="gboolean"/>
+ </return-value>
+ <parameters>
+ <parameter name="field_id" transfer-ownership="none">
+ <type name="GLib.Quark" c:type="GQuark"/>
+ </parameter>
+ <parameter name="value" transfer-ownership="none">
+ <type name="GObject.Value" c:type="GValue*"/>
+ </parameter>
+ <parameter name="user_data" transfer-ownership="none" closure="2">
+ <type name="any" c:type="gpointer"/>
+ </parameter>
+ </parameters>
+ </callback>
+ <class name="SystemClock"
+ c:type="GstSystemClock"
+ doc="The default implementation of a #GstClock that uses the system time."
+ parent="Clock"
+ glib:type-name="GstSystemClock"
+ glib:get-type="gst_system_clock_get_type"
+ glib:type-struct="SystemClockClass">
+ <function name="obtain"
+ c:identifier="gst_system_clock_obtain"
+ doc="Get a handle to the default system clock. The refcount of the
+clock will be increased so you need to unref the clock after
+usage.
+MT safe.">
+ <return-value transfer-ownership="full">
+ <type name="Clock" c:type="GstClock*"/>
+ </return-value>
+ </function>
+ <property name="clock-type" writable="1">
+ <type name="ClockType" c:type="GstClockType"/>
+ </property>
+ <field name="clock">
+ <type name="Clock" c:type="GstClock"/>
+ </field>
+ <field name="thread">
+ <type name="GLib.Thread" c:type="GThread*"/>
+ </field>
+ <field name="stopping">
+ <type name="boolean" c:type="gboolean"/>
+ </field>
+ <field name="priv">
+ <type name="SystemClockPrivate" c:type="GstSystemClockPrivate*"/>
+ </field>
+ <field name="_gst_reserved">
+ <array zero-terminated="0" c:type="gpointer" fixed-size="3">
+ <type name="any"/>
+ </array>
+ </field>
+ </class>
+ <record name="SystemClockClass"
+ c:type="GstSystemClockClass"
+ glib:is-gtype-struct-for="SystemClock">
+ <field name="parent_class">
+ <type name="ClockClass" c:type="GstClockClass"/>
+ </field>
+ <field name="_gst_reserved">
+ <array zero-terminated="0" c:type="gpointer" fixed-size="4">
+ <type name="any"/>
+ </array>
+ </field>
+ </record>
+ <record name="SystemClockPrivate" c:type="GstSystemClockPrivate">
+ </record>
+ <constant name="TAG_ALBUM" value="album">
+ <type name="utf8"/>
+ </constant>
+ <constant name="TAG_ALBUM_ARTIST" value="album-artist">
+ <type name="utf8"/>
+ </constant>
+ <constant name="TAG_ALBUM_ARTIST_SORTNAME" value="album-artist-sortname">
+ <type name="utf8"/>
+ </constant>
+ <constant name="TAG_ALBUM_GAIN" value="replaygain-album-gain">
+ <type name="utf8"/>
+ </constant>
+ <constant name="TAG_ALBUM_PEAK" value="replaygain-album-peak">
+ <type name="utf8"/>
+ </constant>
+ <constant name="TAG_ALBUM_SORTNAME" value="album-sortname">
+ <type name="utf8"/>
+ </constant>
+ <constant name="TAG_ALBUM_VOLUME_COUNT" value="album-disc-count">
+ <type name="utf8"/>
+ </constant>
+ <constant name="TAG_ALBUM_VOLUME_NUMBER" value="album-disc-number">
+ <type name="utf8"/>
+ </constant>
+ <constant name="TAG_ARTIST" value="artist">
+ <type name="utf8"/>
+ </constant>
+ <constant name="TAG_ARTIST_SORTNAME" value="musicbrainz-sortname">
+ <type name="utf8"/>
+ </constant>
+ <constant name="TAG_ATTACHMENT" value="attachment">
+ <type name="utf8"/>
+ </constant>
+ <constant name="TAG_AUDIO_CODEC" value="audio-codec">
+ <type name="utf8"/>
+ </constant>
+ <constant name="TAG_BEATS_PER_MINUTE" value="beats-per-minute">
+ <type name="utf8"/>
+ </constant>
+ <constant name="TAG_BITRATE" value="bitrate">
+ <type name="utf8"/>
+ </constant>
+ <constant name="TAG_CODEC" value="codec">
+ <type name="utf8"/>
+ </constant>
+ <constant name="TAG_COMMENT" value="comment">
+ <type name="utf8"/>
+ </constant>
+ <constant name="TAG_COMPOSER" value="composer">
+ <type name="utf8"/>
+ </constant>
+ <constant name="TAG_COMPOSER_SORTNAME" value="composer-sortname">
+ <type name="utf8"/>
+ </constant>
+ <constant name="TAG_CONTACT" value="contact">
+ <type name="utf8"/>
+ </constant>
+ <constant name="TAG_CONTAINER_FORMAT" value="container-format">
+ <type name="utf8"/>
+ </constant>
+ <constant name="TAG_COPYRIGHT" value="copyright">
+ <type name="utf8"/>
+ </constant>
+ <constant name="TAG_COPYRIGHT_URI" value="copyright-uri">
+ <type name="utf8"/>
+ </constant>
+ <constant name="TAG_DATE" value="date">
+ <type name="utf8"/>
+ </constant>
+ <constant name="TAG_DESCRIPTION" value="description">
+ <type name="utf8"/>
+ </constant>
+ <constant name="TAG_DURATION" value="duration">
+ <type name="utf8"/>
+ </constant>
+ <constant name="TAG_ENCODER" value="encoder">
+ <type name="utf8"/>
+ </constant>
+ <constant name="TAG_ENCODER_VERSION" value="encoder-version">
+ <type name="utf8"/>
+ </constant>
+ <constant name="TAG_EXTENDED_COMMENT" value="extended-comment">
+ <type name="utf8"/>
+ </constant>
+ <constant name="TAG_GENRE" value="genre">
+ <type name="utf8"/>
+ </constant>
+ <constant name="TAG_GEO_LOCATION_CITY" value="geo-location-city">
+ <type name="utf8"/>
+ </constant>
+ <constant name="TAG_GEO_LOCATION_COUNTRY" value="geo-location-country">
+ <type name="utf8"/>
+ </constant>
+ <constant name="TAG_GEO_LOCATION_ELEVATION" value="geo-location-elevation">
+ <type name="utf8"/>
+ </constant>
+ <constant name="TAG_GEO_LOCATION_LATITUDE" value="geo-location-latitude">
+ <type name="utf8"/>
+ </constant>
+ <constant name="TAG_GEO_LOCATION_LONGITUDE" value="geo-location-longitude">
+ <type name="utf8"/>
+ </constant>
+ <constant name="TAG_GEO_LOCATION_NAME" value="geo-location-name">
+ <type name="utf8"/>
+ </constant>
+ <constant name="TAG_GEO_LOCATION_SUBLOCATION"
+ value="geo-location-sublocation">
+ <type name="utf8"/>
+ </constant>
+ <constant name="TAG_GROUPING" value="grouping">
+ <type name="utf8"/>
+ </constant>
+ <constant name="TAG_HOMEPAGE" value="homepage">
+ <type name="utf8"/>
+ </constant>
+ <constant name="TAG_IMAGE" value="image">
+ <type name="utf8"/>
+ </constant>
+ <constant name="TAG_ISRC" value="isrc">
+ <type name="utf8"/>
+ </constant>
+ <constant name="TAG_KEYWORDS" value="keywords">
+ <type name="utf8"/>
+ </constant>
+ <constant name="TAG_LANGUAGE_CODE" value="language-code">
+ <type name="utf8"/>
+ </constant>
+ <constant name="TAG_LICENSE" value="license">
+ <type name="utf8"/>
+ </constant>
+ <constant name="TAG_LICENSE_URI" value="license-uri">
+ <type name="utf8"/>
+ </constant>
+ <constant name="TAG_LOCATION" value="location">
+ <type name="utf8"/>
+ </constant>
+ <constant name="TAG_LYRICS" value="lyrics">
+ <type name="utf8"/>
+ </constant>
+ <constant name="TAG_MAXIMUM_BITRATE" value="maximum-bitrate">
+ <type name="utf8"/>
+ </constant>
+ <constant name="TAG_MINIMUM_BITRATE" value="minimum-bitrate">
+ <type name="utf8"/>
+ </constant>
+ <constant name="TAG_NOMINAL_BITRATE" value="nominal-bitrate">
+ <type name="utf8"/>
+ </constant>
+ <constant name="TAG_ORGANIZATION" value="organization">
+ <type name="utf8"/>
+ </constant>
+ <constant name="TAG_PERFORMER" value="performer">
+ <type name="utf8"/>
+ </constant>
+ <constant name="TAG_PREVIEW_IMAGE" value="preview-image">
+ <type name="utf8"/>
+ </constant>
+ <constant name="TAG_REFERENCE_LEVEL" value="replaygain-reference-level">
+ <type name="utf8"/>
+ </constant>
+ <constant name="TAG_SERIAL" value="serial">
+ <type name="utf8"/>
+ </constant>
+ <constant name="TAG_SHOW_EPISODE_NUMBER" value="show-episode-number">
+ <type name="utf8"/>
+ </constant>
+ <constant name="TAG_SHOW_NAME" value="show-name">
+ <type name="utf8"/>
+ </constant>
+ <constant name="TAG_SHOW_SEASON_NUMBER" value="show-season-number">
+ <type name="utf8"/>
+ </constant>
+ <constant name="TAG_SHOW_SORTNAME" value="show-sortname">
+ <type name="utf8"/>
+ </constant>
+ <constant name="TAG_SUBTITLE_CODEC" value="subtitle-codec">
+ <type name="utf8"/>
+ </constant>
+ <constant name="TAG_TITLE" value="title">
+ <type name="utf8"/>
+ </constant>
+ <constant name="TAG_TITLE_SORTNAME" value="title-sortname">
+ <type name="utf8"/>
+ </constant>
+ <constant name="TAG_TRACK_COUNT" value="track-count">
+ <type name="utf8"/>
+ </constant>
+ <constant name="TAG_TRACK_GAIN" value="replaygain-track-gain">
+ <type name="utf8"/>
+ </constant>
+ <constant name="TAG_TRACK_NUMBER" value="track-number">
+ <type name="utf8"/>
+ </constant>
+ <constant name="TAG_TRACK_PEAK" value="replaygain-track-peak">
+ <type name="utf8"/>
+ </constant>
+ <constant name="TAG_USER_RATING" value="user-rating">
+ <type name="utf8"/>
+ </constant>
+ <constant name="TAG_VERSION" value="version">
+ <type name="utf8"/>
+ </constant>
+ <constant name="TAG_VIDEO_CODEC" value="video-codec">
+ <type name="utf8"/>
+ </constant>
+ <constant name="TIME_FORMAT" value="u:%02u:%02u.%09u">
+ <type name="utf8"/>
+ </constant>
+ <enumeration name="TagFlag"
+ doc="Extra tag flags used when registering tags."
+ c:type="GstTagFlag">
+ <member name="undefined"
+ value="0"
+ c:identifier="GST_TAG_FLAG_UNDEFINED"/>
+ <member name="meta" value="1" c:identifier="GST_TAG_FLAG_META"/>
+ <member name="encoded" value="2" c:identifier="GST_TAG_FLAG_ENCODED"/>
+ <member name="decoded" value="3" c:identifier="GST_TAG_FLAG_DECODED"/>
+ <member name="count" value="4" c:identifier="GST_TAG_FLAG_COUNT"/>
+ </enumeration>
+ <callback name="TagForeachFunc"
+ c:type="GstTagForeachFunc"
+ doc="A function that will be called in gst_tag_list_foreach(). The function may
+not modify the tag list.">
+ <return-value transfer-ownership="none">
+ <type name="none" c:type="void"/>
+ </return-value>
+ <parameters>
+ <parameter name="list" transfer-ownership="none">
+ <type name="TagList" c:type="GstTagList*"/>
+ </parameter>
+ <parameter name="tag" transfer-ownership="none">
+ <type name="utf8" c:type="gchar*"/>
+ </parameter>
+ <parameter name="user_data" transfer-ownership="none" closure="2">
+ <type name="any" c:type="gpointer"/>
+ </parameter>
+ </parameters>
+ </callback>
+ <record name="TagList"
+ c:type="GstTagList"
+ doc="Opaque #GstTagList data structure."
+ glib:type-name="GstTagList"
+ glib:get-type="gst_tag_list_get_type">
+ <constructor name="new"
+ c:identifier="gst_tag_list_new"
+ doc="Creates a new empty GstTagList.">
+ <return-value transfer-ownership="full">
+ <type name="TagList" c:type="GstTagList*"/>
+ </return-value>
+ </constructor>
+ <constructor name="new_full"
+ c:identifier="gst_tag_list_new_full"
+ doc="Creates a new taglist and appends the values for the given tags. It expects
+tag-value pairs like gst_tag_list_add(), and a NULL terminator after the
+last pair. The type of the values is implicit and is documented in the API
+reference, but can also be queried at runtime with gst_tag_get_type(). It
+is an error to pass a value of a type not matching the tag type into this
+function. The tag list will make copies of any arguments passed
+(e.g. strings, buffers).
+needed."
+ version="0.10.24">
+ <return-value transfer-ownership="full" doc="when no longer">
+ <type name="TagList" c:type="GstTagList*"/>
+ </return-value>
+ <parameters>
+ <parameter name="tag" transfer-ownership="none">
+ <type name="utf8" c:type="gchar*"/>
+ </parameter>
+ <parameter transfer-ownership="none">
+ <varargs>
+ </varargs>
+ </parameter>
+ </parameters>
+ </constructor>
+ <method name="copy"
+ c:identifier="gst_tag_list_copy"
+ doc="Copies a given #GstTagList.">
+ <return-value transfer-ownership="full">
+ <type name="TagList" c:type="GstTagList*"/>
+ </return-value>
+ </method>
+ <method name="is_empty"
+ c:identifier="gst_tag_list_is_empty"
+ doc="Checks if the given taglist is empty."
+ version="0.10.11">
+ <return-value transfer-ownership="none">
+ <type name="boolean" c:type="gboolean"/>
+ </return-value>
+ </method>
+ <method name="insert"
+ c:identifier="gst_tag_list_insert"
+ doc="Inserts the tags of the @from list into the first list using the given mode.">
+ <return-value transfer-ownership="none">
+ <type name="none" c:type="void"/>
+ </return-value>
+ <parameters>
+ <parameter name="from" transfer-ownership="none">
+ <type name="TagList" c:type="GstTagList*"/>
+ </parameter>
+ <parameter name="mode" transfer-ownership="none">
+ <type name="TagMergeMode" c:type="GstTagMergeMode"/>
+ </parameter>
+ </parameters>
+ </method>
+ <method name="merge"
+ c:identifier="gst_tag_list_merge"
+ doc="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.">
+ <return-value transfer-ownership="full">
+ <type name="TagList" c:type="GstTagList*"/>
+ </return-value>
+ <parameters>
+ <parameter name="list2" transfer-ownership="none">
+ <type name="TagList" c:type="GstTagList*"/>
+ </parameter>
+ <parameter name="mode" transfer-ownership="none">
+ <type name="TagMergeMode" c:type="GstTagMergeMode"/>
+ </parameter>
+ </parameters>
+ </method>
+ <method name="free"
+ c:identifier="gst_tag_list_free"
+ doc="Frees the given list and all associated values.">
+ <return-value transfer-ownership="none">
+ <type name="none" c:type="void"/>
+ </return-value>
+ </method>
+ <method name="get_tag_size"
+ c:identifier="gst_tag_list_get_tag_size"
+ doc="Checks how many value are stored in this tag list for the given tag.">
+ <return-value transfer-ownership="none">
+ <type name="uint" c:type="guint"/>
+ </return-value>
+ <parameters>
+ <parameter name="tag" transfer-ownership="none">
+ <type name="utf8" c:type="gchar*"/>
+ </parameter>
+ </parameters>
+ </method>
+ <method name="add"
+ c:identifier="gst_tag_list_add"
+ doc="Sets the values for the given tags using the specified mode.">
+ <return-value transfer-ownership="none">
+ <type name="none" c:type="void"/>
+ </return-value>
+ <parameters>
+ <parameter name="mode" transfer-ownership="none">
+ <type name="TagMergeMode" c:type="GstTagMergeMode"/>
+ </parameter>
+ <parameter name="tag" transfer-ownership="none">
+ <type name="utf8" c:type="gchar*"/>
+ </parameter>
+ <parameter transfer-ownership="none">
+ <varargs>
+ </varargs>
+ </parameter>
+ </parameters>
+ </method>
+ <method name="add_values"
+ c:identifier="gst_tag_list_add_values"
+ doc="Sets the GValues for the given tags using the specified mode.">
+ <return-value transfer-ownership="none">
+ <type name="none" c:type="void"/>
+ </return-value>
+ <parameters>
+ <parameter name="mode" transfer-ownership="none">
+ <type name="TagMergeMode" c:type="GstTagMergeMode"/>
+ </parameter>
+ <parameter name="tag" transfer-ownership="none">
+ <type name="utf8" c:type="gchar*"/>
+ </parameter>
+ <parameter transfer-ownership="none">
+ <varargs>
+ </varargs>
+ </parameter>
+ </parameters>
+ </method>
+ <method name="add_value"
+ c:identifier="gst_tag_list_add_value"
+ doc="Sets the GValue for a given tag using the specified mode."
+ version="0.10.24">
+ <return-value transfer-ownership="none">
+ <type name="none" c:type="void"/>
+ </return-value>
+ <parameters>
+ <parameter name="mode" transfer-ownership="none">
+ <type name="TagMergeMode" c:type="GstTagMergeMode"/>
+ </parameter>
+ <parameter name="tag" transfer-ownership="none">
+ <type name="utf8" c:type="gchar*"/>
+ </parameter>
+ <parameter name="value" transfer-ownership="none">
+ <type name="GObject.Value" c:type="GValue*"/>
+ </parameter>
+ </parameters>
+ </method>
+ <method name="remove_tag"
+ c:identifier="gst_tag_list_remove_tag"
+ doc="Removes the given tag from the taglist.">
+ <return-value transfer-ownership="none">
+ <type name="none" c:type="void"/>
+ </return-value>
+ <parameters>
+ <parameter name="tag" transfer-ownership="none">
+ <type name="utf8" c:type="gchar*"/>
+ </parameter>
+ </parameters>
+ </method>
+ <method name="foreach"
+ c:identifier="gst_tag_list_foreach"
+ doc="Calls the given function for each tag inside the tag list. Note that if there
+is no tag, the function won't be called at all.">
+ <return-value transfer-ownership="none">
+ <type name="none" c:type="void"/>
+ </return-value>
+ <parameters>
+ <parameter name="func"
+ transfer-ownership="none"
+ scope="call"
+ closure="2">
+ <type name="TagForeachFunc" c:type="GstTagForeachFunc"/>
+ </parameter>
+ <parameter name="user_data" transfer-ownership="none">
+ <type name="any" c:type="gpointer"/>
+ </parameter>
+ </parameters>
+ </method>
+ <method name="get_value_index"
+ c:identifier="gst_tag_list_get_value_index"
+ doc="Gets the value that is at the given index for the given tag in the given
+list.
+available or the tag doesn't have as many entries">
+ <return-value transfer-ownership="none">
+ <type name="GObject.Value" c:type="GValue*"/>
+ </return-value>
+ <parameters>
+ <parameter name="tag" transfer-ownership="none">
+ <type name="utf8" c:type="gchar*"/>
+ </parameter>
+ <parameter name="index" transfer-ownership="none">
+ <type name="uint" c:type="guint"/>
+ </parameter>
+ </parameters>
+ </method>
+ <method name="get_char"
+ c:identifier="gst_tag_list_get_char"
+ doc="Copies the contents for the given tag into the value, merging multiple values
+into one if multiple values are associated with the tag.
+given list.">
+ <return-value transfer-ownership="none">
+ <type name="boolean" c:type="gboolean"/>
+ </return-value>
+ <parameters>
+ <parameter name="tag" transfer-ownership="none">
+ <type name="utf8" c:type="gchar*"/>
+ </parameter>
+ <parameter name="value" transfer-ownership="full">
+ <type name="utf8" c:type="gchar*"/>
+ </parameter>
+ </parameters>
+ </method>
+ <method name="get_char_index"
+ c:identifier="gst_tag_list_get_char_index"
+ doc="Gets the value that is at the given index for the given tag in the given
+list.
+given list.">
+ <return-value transfer-ownership="none">
+ <type name="boolean" c:type="gboolean"/>
+ </return-value>
+ <parameters>
+ <parameter name="tag" transfer-ownership="none">
+ <type name="utf8" c:type="gchar*"/>
+ </parameter>
+ <parameter name="index" transfer-ownership="none">
+ <type name="uint" c:type="guint"/>
+ </parameter>
+ <parameter name="value" transfer-ownership="full">
+ <type name="utf8" c:type="gchar*"/>
+ </parameter>
+ </parameters>
+ </method>
+ <method name="get_uchar"
+ c:identifier="gst_tag_list_get_uchar"
+ doc="Copies the contents for the given tag into the value, merging multiple values
+into one if multiple values are associated with the tag.
+given list.">
+ <return-value transfer-ownership="none">
+ <type name="boolean" c:type="gboolean"/>
+ </return-value>
+ <parameters>
+ <parameter name="tag" transfer-ownership="none">
+ <type name="utf8" c:type="gchar*"/>
+ </parameter>
+ <parameter name="value" transfer-ownership="none">
+ <array c:type="guchar*">
+ <type name="uint8"/>
+ </array>
+ </parameter>
+ </parameters>
+ </method>
+ <method name="get_uchar_index"
+ c:identifier="gst_tag_list_get_uchar_index"
+ doc="Gets the value that is at the given index for the given tag in the given
+list.
+given list.">
+ <return-value transfer-ownership="none">
+ <type name="boolean" c:type="gboolean"/>
+ </return-value>
+ <parameters>
+ <parameter name="tag" transfer-ownership="none">
+ <type name="utf8" c:type="gchar*"/>
+ </parameter>
+ <parameter name="index" transfer-ownership="none">
+ <type name="uint" c:type="guint"/>
+ </parameter>
+ <parameter name="value" transfer-ownership="none">
+ <array c:type="guchar*">
+ <type name="uint8"/>
+ </array>
+ </parameter>
+ </parameters>
+ </method>
+ <method name="get_boolean"
+ c:identifier="gst_tag_list_get_boolean"
+ doc="Copies the contents for the given tag into the value, merging multiple values
+into one if multiple values are associated with the tag.
+given list.">
+ <return-value transfer-ownership="none">
+ <type name="boolean" c:type="gboolean"/>
+ </return-value>
+ <parameters>
+ <parameter name="tag" transfer-ownership="none">
+ <type name="utf8" c:type="gchar*"/>
+ </parameter>
+ <parameter name="value" direction="out" transfer-ownership="full">
+ <type name="boolean" c:type="gboolean*"/>
+ </parameter>
+ </parameters>
+ </method>
+ <method name="get_boolean_index"
+ c:identifier="gst_tag_list_get_boolean_index"
+ doc="Gets the value that is at the given index for the given tag in the given
+list.
+given list.">
+ <return-value transfer-ownership="none">
+ <type name="boolean" c:type="gboolean"/>
+ </return-value>
+ <parameters>
+ <parameter name="tag" transfer-ownership="none">
+ <type name="utf8" c:type="gchar*"/>
+ </parameter>
+ <parameter name="index" transfer-ownership="none">
+ <type name="uint" c:type="guint"/>
+ </parameter>
+ <parameter name="value" direction="out" transfer-ownership="full">
+ <type name="boolean" c:type="gboolean*"/>
+ </parameter>
+ </parameters>
+ </method>
+ <method name="get_int"
+ c:identifier="gst_tag_list_get_int"
+ doc="Copies the contents for the given tag into the value, merging multiple values
+into one if multiple values are associated with the tag.
+given list.">
+ <return-value transfer-ownership="none">
+ <type name="boolean" c:type="gboolean"/>
+ </return-value>
+ <parameters>
+ <parameter name="tag" transfer-ownership="none">
+ <type name="utf8" c:type="gchar*"/>
+ </parameter>
+ <parameter name="value" direction="out" transfer-ownership="full">
+ <type name="int" c:type="gint*"/>
+ </parameter>
+ </parameters>
+ </method>
+ <method name="get_int_index"
+ c:identifier="gst_tag_list_get_int_index"
+ doc="Gets the value that is at the given index for the given tag in the given
+list.
+given list.">
+ <return-value transfer-ownership="none">
+ <type name="boolean" c:type="gboolean"/>
+ </return-value>
+ <parameters>
+ <parameter name="tag" transfer-ownership="none">
+ <type name="utf8" c:type="gchar*"/>
+ </parameter>
+ <parameter name="index" transfer-ownership="none">
+ <type name="uint" c:type="guint"/>
+ </parameter>
+ <parameter name="value" direction="out" transfer-ownership="full">
+ <type name="int" c:type="gint*"/>
+ </parameter>
+ </parameters>
+ </method>
+ <method name="get_uint"
+ c:identifier="gst_tag_list_get_uint"
+ doc="Copies the contents for the given tag into the value, merging multiple values
+into one if multiple values are associated with the tag.
+given list.">
+ <return-value transfer-ownership="none">
+ <type name="boolean" c:type="gboolean"/>
+ </return-value>
+ <parameters>
+ <parameter name="tag" transfer-ownership="none">
+ <type name="utf8" c:type="gchar*"/>
+ </parameter>
+ <parameter name="value" direction="out" transfer-ownership="full">
+ <type name="uint" c:type="guint*"/>
+ </parameter>
+ </parameters>
+ </method>
+ <method name="get_uint_index"
+ c:identifier="gst_tag_list_get_uint_index"
+ doc="Gets the value that is at the given index for the given tag in the given
+list.
+given list.">
+ <return-value transfer-ownership="none">
+ <type name="boolean" c:type="gboolean"/>
+ </return-value>
+ <parameters>
+ <parameter name="tag" transfer-ownership="none">
+ <type name="utf8" c:type="gchar*"/>
+ </parameter>
+ <parameter name="index" transfer-ownership="none">
+ <type name="uint" c:type="guint"/>
+ </parameter>
+ <parameter name="value" direction="out" transfer-ownership="full">
+ <type name="uint" c:type="guint*"/>
+ </parameter>
+ </parameters>
+ </method>
+ <method name="get_long"
+ c:identifier="gst_tag_list_get_long"
+ doc="Copies the contents for the given tag into the value, merging multiple values
+into one if multiple values are associated with the tag.
+given list.">
+ <return-value transfer-ownership="none">
+ <type name="boolean" c:type="gboolean"/>
+ </return-value>
+ <parameters>
+ <parameter name="tag" transfer-ownership="none">
+ <type name="utf8" c:type="gchar*"/>
+ </parameter>
+ <parameter name="value" direction="out" transfer-ownership="full">
+ <type name="long" c:type="glong*"/>
+ </parameter>
+ </parameters>
+ </method>
+ <method name="get_long_index"
+ c:identifier="gst_tag_list_get_long_index"
+ doc="Gets the value that is at the given index for the given tag in the given
+list.
+given list.">
+ <return-value transfer-ownership="none">
+ <type name="boolean" c:type="gboolean"/>
+ </return-value>
+ <parameters>
+ <parameter name="tag" transfer-ownership="none">
+ <type name="utf8" c:type="gchar*"/>
+ </parameter>
+ <parameter name="index" transfer-ownership="none">
+ <type name="uint" c:type="guint"/>
+ </parameter>
+ <parameter name="value" direction="out" transfer-ownership="full">
+ <type name="long" c:type="glong*"/>
+ </parameter>
+ </parameters>
+ </method>
+ <method name="get_ulong"
+ c:identifier="gst_tag_list_get_ulong"
+ doc="Copies the contents for the given tag into the value, merging multiple values
+into one if multiple values are associated with the tag.
+given list.">
+ <return-value transfer-ownership="none">
+ <type name="boolean" c:type="gboolean"/>
+ </return-value>
+ <parameters>
+ <parameter name="tag" transfer-ownership="none">
+ <type name="utf8" c:type="gchar*"/>
+ </parameter>
+ <parameter name="value" direction="out" transfer-ownership="full">
+ <type name="ulong" c:type="gulong*"/>
+ </parameter>
+ </parameters>
+ </method>
+ <method name="get_ulong_index"
+ c:identifier="gst_tag_list_get_ulong_index"
+ doc="Gets the value that is at the given index for the given tag in the given
+list.
+given list.">
+ <return-value transfer-ownership="none">
+ <type name="boolean" c:type="gboolean"/>
+ </return-value>
+ <parameters>
+ <parameter name="tag" transfer-ownership="none">
+ <type name="utf8" c:type="gchar*"/>
+ </parameter>
+ <parameter name="index" transfer-ownership="none">
+ <type name="uint" c:type="guint"/>
+ </parameter>
+ <parameter name="value" direction="out" transfer-ownership="full">
+ <type name="ulong" c:type="gulong*"/>
+ </parameter>
+ </parameters>
+ </method>
+ <method name="get_int64"
+ c:identifier="gst_tag_list_get_int64"
+ doc="Copies the contents for the given tag into the value, merging multiple values
+into one if multiple values are associated with the tag.
+given list.">
+ <return-value transfer-ownership="none">
+ <type name="boolean" c:type="gboolean"/>
+ </return-value>
+ <parameters>
+ <parameter name="tag" transfer-ownership="none">
+ <type name="utf8" c:type="gchar*"/>
+ </parameter>
+ <parameter name="value" direction="out" transfer-ownership="full">
+ <type name="int64" c:type="gint64*"/>
+ </parameter>
+ </parameters>
+ </method>
+ <method name="get_int64_index"
+ c:identifier="gst_tag_list_get_int64_index"
+ doc="Gets the value that is at the given index for the given tag in the given
+list.
+given list.">
+ <return-value transfer-ownership="none">
+ <type name="boolean" c:type="gboolean"/>
+ </return-value>
+ <parameters>
+ <parameter name="tag" transfer-ownership="none">
+ <type name="utf8" c:type="gchar*"/>
+ </parameter>
+ <parameter name="index" transfer-ownership="none">
+ <type name="uint" c:type="guint"/>
+ </parameter>
+ <parameter name="value" direction="out" transfer-ownership="full">
+ <type name="int64" c:type="gint64*"/>
+ </parameter>
+ </parameters>
+ </method>
+ <method name="get_uint64"
+ c:identifier="gst_tag_list_get_uint64"
+ doc="Copies the contents for the given tag into the value, merging multiple values
+into one if multiple values are associated with the tag.
+given list.">
+ <return-value transfer-ownership="none">
+ <type name="boolean" c:type="gboolean"/>
+ </return-value>
+ <parameters>
+ <parameter name="tag" transfer-ownership="none">
+ <type name="utf8" c:type="gchar*"/>
+ </parameter>
+ <parameter name="value" direction="out" transfer-ownership="full">
+ <type name="uint64" c:type="guint64*"/>
+ </parameter>
+ </parameters>
+ </method>
+ <method name="get_uint64_index"
+ c:identifier="gst_tag_list_get_uint64_index"
+ doc="Gets the value that is at the given index for the given tag in the given
+list.
+given list.">
+ <return-value transfer-ownership="none">
+ <type name="boolean" c:type="gboolean"/>
+ </return-value>
+ <parameters>
+ <parameter name="tag" transfer-ownership="none">
+ <type name="utf8" c:type="gchar*"/>
+ </parameter>
+ <parameter name="index" transfer-ownership="none">
+ <type name="uint" c:type="guint"/>
+ </parameter>
+ <parameter name="value" direction="out" transfer-ownership="full">
+ <type name="uint64" c:type="guint64*"/>
+ </parameter>
+ </parameters>
+ </method>
+ <method name="get_float"
+ c:identifier="gst_tag_list_get_float"
+ doc="Copies the contents for the given tag into the value, merging multiple values
+into one if multiple values are associated with the tag.
+given list.">
+ <return-value transfer-ownership="none">
+ <type name="boolean" c:type="gboolean"/>
+ </return-value>
+ <parameters>
+ <parameter name="tag" transfer-ownership="none">
+ <type name="utf8" c:type="gchar*"/>
+ </parameter>
+ <parameter name="value" direction="out" transfer-ownership="full">
+ <type name="float" c:type="gfloat*"/>
+ </parameter>
+ </parameters>
+ </method>
+ <method name="get_float_index"
+ c:identifier="gst_tag_list_get_float_index"
+ doc="Gets the value that is at the given index for the given tag in the given
+list.
+given list.">
+ <return-value transfer-ownership="none">
+ <type name="boolean" c:type="gboolean"/>
+ </return-value>
+ <parameters>
+ <parameter name="tag" transfer-ownership="none">
+ <type name="utf8" c:type="gchar*"/>
+ </parameter>
+ <parameter name="index" transfer-ownership="none">
+ <type name="uint" c:type="guint"/>
+ </parameter>
+ <parameter name="value" direction="out" transfer-ownership="full">
+ <type name="float" c:type="gfloat*"/>
+ </parameter>
+ </parameters>
+ </method>
+ <method name="get_double"
+ c:identifier="gst_tag_list_get_double"
+ doc="Copies the contents for the given tag into the value, merging multiple values
+into one if multiple values are associated with the tag.
+given list.">
+ <return-value transfer-ownership="none">
+ <type name="boolean" c:type="gboolean"/>
+ </return-value>
+ <parameters>
+ <parameter name="tag" transfer-ownership="none">
+ <type name="utf8" c:type="gchar*"/>
+ </parameter>
+ <parameter name="value" direction="out" transfer-ownership="full">
+ <type name="double" c:type="gdouble*"/>
+ </parameter>
+ </parameters>
+ </method>
+ <method name="get_double_index"
+ c:identifier="gst_tag_list_get_double_index"
+ doc="Gets the value that is at the given index for the given tag in the given
+list.
+given list.">
+ <return-value transfer-ownership="none">
+ <type name="boolean" c:type="gboolean"/>
+ </return-value>
+ <parameters>
+ <parameter name="tag" transfer-ownership="none">
+ <type name="utf8" c:type="gchar*"/>
+ </parameter>
+ <parameter name="index" transfer-ownership="none">
+ <type name="uint" c:type="guint"/>
+ </parameter>
+ <parameter name="value" direction="out" transfer-ownership="full">
+ <type name="double" c:type="gdouble*"/>
+ </parameter>
+ </parameters>
+ </method>
+ <method name="get_string"
+ c:identifier="gst_tag_list_get_string"
+ doc="Copies the contents for the given tag into the value, possibly merging
+multiple values into one if multiple values are associated with the tag.
+Use gst_tag_list_get_string_index (list, tag, 0, value) if you want
+to retrieve the first string associated with this tag unmodified.
+The resulting string in @value will be in UTF-8 encoding and should be
+freed by the caller using g_free when no longer needed. Since 0.10.24 the
+returned string is also guaranteed to be non-NULL and non-empty.
+given list.">
+ <return-value transfer-ownership="none">
+ <type name="boolean" c:type="gboolean"/>
+ </return-value>
+ <parameters>
+ <parameter name="tag" transfer-ownership="none">
+ <type name="utf8" c:type="gchar*"/>
+ </parameter>
+ <parameter name="value" transfer-ownership="none">
+ <array c:type="gchar**">
+ <type name="utf8"/>
+ </array>
+ </parameter>
+ </parameters>
+ </method>
+ <method name="get_string_index"
+ c:identifier="gst_tag_list_get_string_index"
+ doc="Gets the value that is at the given index for the given tag in the given
+list.
+The resulting string in @value will be in UTF-8 encoding and should be
+freed by the caller using g_free when no longer needed. Since 0.10.24 the
+returned string is also guaranteed to be non-NULL and non-empty.
+given list.">
+ <return-value transfer-ownership="none">
+ <type name="boolean" c:type="gboolean"/>
+ </return-value>
+ <parameters>
+ <parameter name="tag" transfer-ownership="none">
+ <type name="utf8" c:type="gchar*"/>
+ </parameter>
+ <parameter name="index" transfer-ownership="none">
+ <type name="uint" c:type="guint"/>
+ </parameter>
+ <parameter name="value" transfer-ownership="none">
+ <array c:type="gchar**">
+ <type name="utf8"/>
+ </array>
+ </parameter>
+ </parameters>
+ </method>
+ <method name="get_pointer"
+ c:identifier="gst_tag_list_get_pointer"
+ doc="Copies the contents for the given tag into the value, merging multiple values
+into one if multiple values are associated with the tag.
+given list.">
+ <return-value transfer-ownership="none">
+ <type name="boolean" c:type="gboolean"/>
+ </return-value>
+ <parameters>
+ <parameter name="tag" transfer-ownership="none">
+ <type name="utf8" c:type="gchar*"/>
+ </parameter>
+ <parameter name="value" transfer-ownership="none">
+ <type name="any" c:type="gpointer*"/>
+ </parameter>
+ </parameters>
+ </method>
+ <method name="get_pointer_index"
+ c:identifier="gst_tag_list_get_pointer_index"
+ doc="Gets the value that is at the given index for the given tag in the given
+list.
+given list.">
+ <return-value transfer-ownership="none">
+ <type name="boolean" c:type="gboolean"/>
+ </return-value>
+ <parameters>
+ <parameter name="tag" transfer-ownership="none">
+ <type name="utf8" c:type="gchar*"/>
+ </parameter>
+ <parameter name="index" transfer-ownership="none">
+ <type name="uint" c:type="guint"/>
+ </parameter>
+ <parameter name="value" transfer-ownership="none">
+ <type name="any" c:type="gpointer*"/>
+ </parameter>
+ </parameters>
+ </method>
+ <method name="get_date"
+ c:identifier="gst_tag_list_get_date"
+ doc="Copies the first date for the given tag in the taglist into the variable
+pointed to by @value. Free the date with g_date_free() when it is no longer
+needed.
+given list or if it was #NULL.">
+ <return-value transfer-ownership="none">
+ <type name="boolean" c:type="gboolean"/>
+ </return-value>
+ <parameters>
+ <parameter name="tag" transfer-ownership="none">
+ <type name="utf8" c:type="gchar*"/>
+ </parameter>
+ <parameter name="value" transfer-ownership="none">
+ <type name="GLib.Date" c:type="GDate**"/>
+ </parameter>
+ </parameters>
+ </method>
+ <method name="get_date_index"
+ c:identifier="gst_tag_list_get_date_index"
+ doc="Gets the date that is at the given index for the given tag in the given
+list and copies it into the variable pointed to by @value. Free the date
+with g_date_free() when it is no longer needed.
+given list or if it was #NULL.">
+ <return-value transfer-ownership="none">
+ <type name="boolean" c:type="gboolean"/>
+ </return-value>
+ <parameters>
+ <parameter name="tag" transfer-ownership="none">
+ <type name="utf8" c:type="gchar*"/>
+ </parameter>
+ <parameter name="index" transfer-ownership="none">
+ <type name="uint" c:type="guint"/>
+ </parameter>
+ <parameter name="value" transfer-ownership="none">
+ <type name="GLib.Date" c:type="GDate**"/>
+ </parameter>
+ </parameters>
+ </method>
+ <method name="get_buffer"
+ c:identifier="gst_tag_list_get_buffer"
+ doc="Copies the first buffer for the given tag in the taglist into the variable
+pointed to by @value. Free the buffer with gst_buffer_unref() when it is
+no longer needed.
+given list or if it was #NULL."
+ version="0.10.23">
+ <return-value transfer-ownership="none">
+ <type name="boolean" c:type="gboolean"/>
+ </return-value>
+ <parameters>
+ <parameter name="tag" transfer-ownership="none">
+ <type name="utf8" c:type="gchar*"/>
+ </parameter>
+ <parameter name="value" transfer-ownership="none">
+ <type name="Buffer" c:type="GstBuffer**"/>
+ </parameter>
+ </parameters>
+ </method>
+ <method name="get_buffer_index"
+ c:identifier="gst_tag_list_get_buffer_index"
+ doc="Gets the buffer that is at the given index for the given tag in the given
+list and copies it into the variable pointed to by @value. Free the buffer
+with gst_buffer_unref() when it is no longer needed.
+given list or if it was #NULL."
+ version="0.10.23">
+ <return-value transfer-ownership="none">
+ <type name="boolean" c:type="gboolean"/>
+ </return-value>
+ <parameters>
+ <parameter name="tag" transfer-ownership="none">
+ <type name="utf8" c:type="gchar*"/>
+ </parameter>
+ <parameter name="index" transfer-ownership="none">
+ <type name="uint" c:type="guint"/>
+ </parameter>
+ <parameter name="value" transfer-ownership="none">
+ <type name="Buffer" c:type="GstBuffer**"/>
+ </parameter>
+ </parameters>
+ </method>
+ </record>
+ <callback name="TagMergeFunc"
+ c:type="GstTagMergeFunc"
+ doc="A function for merging multiple values of a tag used when registering
+tags.">
+ <return-value transfer-ownership="none">
+ <type name="none" c:type="void"/>
+ </return-value>
+ <parameters>
+ <parameter name="dest" transfer-ownership="none">
+ <type name="GObject.Value" c:type="GValue*"/>
+ </parameter>
+ <parameter name="src" transfer-ownership="none">
+ <type name="GObject.Value" c:type="GValue*"/>
+ </parameter>
+ </parameters>
+ </callback>
+ <enumeration name="TagMergeMode"
+ doc="The different tag merging modes are basically replace, overwrite and append,
+already in the element and (B) the ones that are supplied to the element (
+e.g. via gst_tag_setter_merge_tags() / gst_tag_setter_add_tags() or a
+%GST_EVENT_TAG), how are these tags merged?
+In the table below this is shown for the cases that a tag exists in the list
+(A) or does not exists (!A) and combinations thereof.
+<table frame="all" colsep="1" rowsep="1">
+<title>merge mode</title>
+<tgroup cols='5' align='left'>
+<thead>
+<row>
+<entry>merge mode</entry>
+<entry>A + B</entry>
+<entry>A + !B</entry>
+<entry>!A + B</entry>
+<entry>!A + !B</entry>
+</row>
+</thead>
+<tbody>
+<row>
+<entry>REPLACE_ALL</entry>
+<entry>B</entry>
+<entry>-</entry>
+<entry>B</entry>
+<entry>-</entry>
+</row>
+<row>
+<entry>REPLACE</entry>
+<entry>B</entry>
+<entry>A</entry>
+<entry>B</entry>
+<entry>-</entry>
+</row>
+<row>
+<entry>APPEND</entry>
+<entry>A, B</entry>
+<entry>A</entry>
+<entry>B</entry>
+<entry>-</entry>
+</row>
+<row>
+<entry>PREPEND</entry>
+<entry>B, A</entry>
+<entry>A</entry>
+<entry>B</entry>
+<entry>-</entry>
+</row>
+<row>
+<entry>KEEP</entry>
+<entry>A</entry>
+<entry>A</entry>
+<entry>B</entry>
+<entry>-</entry>
+</row>
+<row>
+<entry>KEEP_ALL</entry>
+<entry>A</entry>
+<entry>A</entry>
+<entry>-</entry>
+<entry>-</entry>
+</row>
+</tbody>
+</tgroup>
+</table>"
+ c:type="GstTagMergeMode">
+ <member name="undefined"
+ value="0"
+ c:identifier="GST_TAG_MERGE_UNDEFINED"/>
+ <member name="replace_all"
+ value="1"
+ c:identifier="GST_TAG_MERGE_REPLACE_ALL"/>
+ <member name="replace" value="2" c:identifier="GST_TAG_MERGE_REPLACE"/>
+ <member name="append" value="3" c:identifier="GST_TAG_MERGE_APPEND"/>
+ <member name="prepend" value="4" c:identifier="GST_TAG_MERGE_PREPEND"/>
+ <member name="keep" value="5" c:identifier="GST_TAG_MERGE_KEEP"/>
+ <member name="keep_all" value="6" c:identifier="GST_TAG_MERGE_KEEP_ALL"/>
+ <member name="count" value="7" c:identifier="GST_TAG_MERGE_COUNT"/>
+ </enumeration>
+ <interface name="TagSetter"
+ c:type="GstTagSetter"
+ doc="Opaque #GstTagSetter data structure."
+ glib:type-name="GstTagSetter"
+ glib:get-type="gst_tag_setter_get_type">
+ <prerequisite name="Element"/>
+ <method name="reset_tags"
+ c:identifier="gst_tag_setter_reset_tags"
+ doc="Reset the internal taglist. Elements should call this from within the
+state-change handler."
+ version="0.10.22">
+ <return-value transfer-ownership="none">
+ <type name="none" c:type="void"/>
+ </return-value>
+ </method>
+ <method name="merge_tags"
+ c:identifier="gst_tag_setter_merge_tags"
+ doc="Merges the given list into the setter's list using the given mode.">
+ <return-value transfer-ownership="none">
+ <type name="none" c:type="void"/>
+ </return-value>
+ <parameters>
+ <parameter name="list" transfer-ownership="none">
+ <type name="TagList" c:type="GstTagList*"/>
+ </parameter>
+ <parameter name="mode" transfer-ownership="none">
+ <type name="TagMergeMode" c:type="GstTagMergeMode"/>
+ </parameter>
+ </parameters>
+ </method>
+ <method name="add_tags"
+ c:identifier="gst_tag_setter_add_tags"
+ doc="Adds the given tag / value pairs on the setter using the given merge mode.
+The list must be terminated with NULL.">
+ <return-value transfer-ownership="none">
+ <type name="none" c:type="void"/>
+ </return-value>
+ <parameters>
+ <parameter name="mode" transfer-ownership="none">
+ <type name="TagMergeMode" c:type="GstTagMergeMode"/>
+ </parameter>
+ <parameter name="tag" transfer-ownership="none">
+ <type name="utf8" c:type="gchar*"/>
+ </parameter>
+ <parameter transfer-ownership="none">
+ <varargs>
+ </varargs>
+ </parameter>
+ </parameters>
+ </method>
+ <method name="add_tag_values"
+ c:identifier="gst_tag_setter_add_tag_values"
+ doc="Adds the given tag / GValue pairs on the setter using the given merge mode.
+The list must be terminated with NULL.">
+ <return-value transfer-ownership="none">
+ <type name="none" c:type="void"/>
+ </return-value>
+ <parameters>
+ <parameter name="mode" transfer-ownership="none">
+ <type name="TagMergeMode" c:type="GstTagMergeMode"/>
+ </parameter>
+ <parameter name="tag" transfer-ownership="none">
+ <type name="utf8" c:type="gchar*"/>
+ </parameter>
+ <parameter transfer-ownership="none">
+ <varargs>
+ </varargs>
+ </parameter>
+ </parameters>
+ </method>
+ <method name="add_tag_value"
+ c:identifier="gst_tag_setter_add_tag_value"
+ doc="Adds the given tag / GValue pair on the setter using the given merge mode."
+ version="0.10.24">
+ <return-value transfer-ownership="none">
+ <type name="none" c:type="void"/>
+ </return-value>
+ <parameters>
+ <parameter name="mode" transfer-ownership="none">
+ <type name="TagMergeMode" c:type="GstTagMergeMode"/>
+ </parameter>
+ <parameter name="tag" transfer-ownership="none">
+ <type name="utf8" c:type="gchar*"/>
+ </parameter>
+ <parameter name="value" transfer-ownership="none">
+ <type name="GObject.Value" c:type="GValue*"/>
+ </parameter>
+ </parameters>
+ </method>
+ <method name="get_tag_list"
+ c:identifier="gst_tag_setter_get_tag_list"
+ doc="Returns the current list of tags the setter uses. The list should not be
+modified or freed.
+or NULL if none is used.">
+ <return-value transfer-ownership="none">
+ <type name="TagList" c:type="GstTagList*"/>
+ </return-value>
+ </method>
+ <method name="set_tag_merge_mode"
+ c:identifier="gst_tag_setter_set_tag_merge_mode"
+ doc="Sets the given merge mode that is used for adding tags from events to tags
+specified by this interface. The default is #GST_TAG_MERGE_KEEP, which keeps
+the tags set with this interface and discards tags from events.">
+ <return-value transfer-ownership="none">
+ <type name="none" c:type="void"/>
+ </return-value>
+ <parameters>
+ <parameter name="mode" transfer-ownership="none">
+ <type name="TagMergeMode" c:type="GstTagMergeMode"/>
+ </parameter>
+ </parameters>
+ </method>
+ <method name="get_tag_merge_mode"
+ c:identifier="gst_tag_setter_get_tag_merge_mode"
+ doc="Queries the mode by which tags inside the setter are overwritten by tags
+from events">
+ <return-value transfer-ownership="full">
+ <type name="TagMergeMode" c:type="GstTagMergeMode"/>
+ </return-value>
+ </method>
+ </interface>
+ <record name="TagSetterIFace"
+ c:type="GstTagSetterIFace"
+ doc="#GstTagSetterIFace interface.">
+ <field name="g_iface" writable="1">
+ <type name="GObject.TypeInterface" c:type="GTypeInterface"/>
+ </field>
+ </record>
+ <class name="Task"
+ c:type="GstTask"
+ doc="The #GstTask object."
+ parent="Object"
+ glib:type-name="GstTask"
+ glib:get-type="gst_task_get_type"
+ glib:type-struct="TaskClass">
+ <function name="cleanup_all"
+ c:identifier="gst_task_cleanup_all"
+ doc="Wait for all tasks to be stopped. This is mainly used internally
+to ensure proper cleanup of internal data structures in test suites.
+MT safe.">
+ <return-value transfer-ownership="none">
+ <type name="none" c:type="void"/>
+ </return-value>
+ </function>
+ <function name="create"
+ c:identifier="gst_task_create"
+ doc="Create a new Task that will repeatedly call the provided @func
+with @data as a parameter. Typically the task will run in
+a new thread.
+The function cannot be changed after the task has been created. You
+must create a new #GstTask to change the function.
+This function will not yet create and start a thread. Use gst_task_start() or
+gst_task_pause() to create and start the GThread.
+Before the task can be used, a #GStaticRecMutex must be configured using the
+gst_task_set_lock() function. This lock will always be acquired while
+MT safe.">
+ <return-value transfer-ownership="full">
+ <type name="Task" c:type="GstTask*"/>
+ </return-value>
+ <parameters>
+ <parameter name="func"
+ transfer-ownership="none"
+ scope="call"
+ closure="1">
+ <type name="TaskFunction" c:type="GstTaskFunction"/>
+ </parameter>
+ <parameter name="data" transfer-ownership="none">
+ <type name="any" c:type="gpointer"/>
+ </parameter>
+ </parameters>
+ </function>
+ <method name="set_lock"
+ c:identifier="gst_task_set_lock"
+ doc="Set the mutex used by the task. The mutex will be acquired before
+calling the #GstTaskFunction.
+This function has to be called before calling gst_task_pause() or
+gst_task_start().
+MT safe.">
+ <return-value transfer-ownership="none">
+ <type name="none" c:type="void"/>
+ </return-value>
+ <parameters>
+ <parameter name="mutex" transfer-ownership="none">
+ <type name="GLib.StaticRecMutex" c:type="GStaticRecMutex*"/>
+ </parameter>
+ </parameters>
+ </method>
+ <method name="set_priority"
+ c:identifier="gst_task_set_priority"
+ doc="Changes the priority of @task to @priority.
+MT safe."
+ version="0.10.24">
+ <return-value transfer-ownership="none">
+ <type name="none" c:type="void"/>
+ </return-value>
+ <parameters>
+ <parameter name="priority" transfer-ownership="none">
+ <type name="GLib.ThreadPriority" c:type="GThreadPriority"/>
+ </parameter>
+ </parameters>
+ </method>
+ <method name="get_pool"
+ c:identifier="gst_task_get_pool"
+ doc="Get the #GstTaskPool that this task will use for its streaming
+threads.
+MT safe.
+after usage."
+ version="0.10.24">
+ <return-value transfer-ownership="full">
+ <type name="TaskPool" c:type="GstTaskPool*"/>
+ </return-value>
+ </method>
+ <method name="set_pool"
+ c:identifier="gst_task_set_pool"
+ doc="Set @pool as the new GstTaskPool for @task. Any new streaming threads that
+will be created by @task will now use @pool.
+MT safe."
+ version="0.10.24">
+ <return-value transfer-ownership="none">
+ <type name="none" c:type="void"/>
+ </return-value>
+ <parameters>
+ <parameter name="pool" transfer-ownership="none">
+ <type name="TaskPool" c:type="GstTaskPool*"/>
+ </parameter>
+ </parameters>
+ </method>
+ <method name="set_thread_callbacks"
+ c:identifier="gst_task_set_thread_callbacks"
+ doc="Set callbacks which will be executed when a new thread is needed, the thread
+function is entered and left and when the thread is joined.
+By default a thread for @task will be created from a default thread pool.
+Objects can use custom GThreads or can perform additional configuration of
+the threads (such as changing the thread priority) by installing callbacks.
+MT safe."
+ version="0.10.24">
+ <return-value transfer-ownership="none">
+ <type name="none" c:type="void"/>
+ </return-value>
+ <parameters>
+ <parameter name="callbacks" transfer-ownership="none">
+ <type name="TaskThreadCallbacks" c:type="GstTaskThreadCallbacks*"/>
+ </parameter>
+ <parameter name="user_data" transfer-ownership="none">
+ <type name="any" c:type="gpointer"/>
+ </parameter>
+ <parameter name="notify" transfer-ownership="none" scope="call">
+ <type name="GLib.DestroyNotify" c:type="GDestroyNotify"/>
+ </parameter>
+ </parameters>
+ </method>
+ <method name="get_state"
+ c:identifier="gst_task_get_state"
+ doc="Get the current state of the task.
+MT safe.">
+ <return-value transfer-ownership="full">
+ <type name="TaskState" c:type="GstTaskState"/>
+ </return-value>
+ </method>
+ <method name="set_state"
+ c:identifier="gst_task_set_state"
+ doc="Sets the state of @task to @state.
+The @task must have a lock associated with it using
+gst_task_set_lock() when going to GST_TASK_STARTED or GST_TASK_PAUSED or
+this function will return %FALSE.
+MT safe."
+ version="0.10.24">
+ <return-value transfer-ownership="none">
+ <type name="boolean" c:type="gboolean"/>
+ </return-value>
+ <parameters>
+ <parameter name="state" transfer-ownership="none">
+ <type name="TaskState" c:type="GstTaskState"/>
+ </parameter>
+ </parameters>
+ </method>
+ <method name="start"
+ c:identifier="gst_task_start"
+ doc="Starts @task. The @task must have a lock associated with it using
+gst_task_set_lock() or this function will return %FALSE.
+MT safe.">
+ <return-value transfer-ownership="none">
+ <type name="boolean" c:type="gboolean"/>
+ </return-value>
+ </method>
+ <method name="stop"
+ c:identifier="gst_task_stop"
+ doc="Stops @task. This method merely schedules the task to stop and
+will not wait for the task to have completely stopped. Use
+gst_task_join() to stop and wait for completion.
+MT safe.">
+ <return-value transfer-ownership="none">
+ <type name="boolean" c:type="gboolean"/>
+ </return-value>
+ </method>
+ <method name="pause"
+ c:identifier="gst_task_pause"
+ doc="Pauses @task. This method can also be called on a task in the
+stopped state, in which case a thread will be started and will remain
+in the paused state. This function does not wait for the task to complete
+the paused state.
+MT safe.">
+ <return-value transfer-ownership="none">
+ <type name="boolean" c:type="gboolean"/>
+ </return-value>
+ </method>
+ <method name="join"
+ c:identifier="gst_task_join"
+ doc="Joins @task. After this call, it is safe to unref the task
+and clean up the lock set with gst_task_set_lock().
+The task will automatically be stopped with this call.
+This function cannot be called from within a task function as this
+would cause a deadlock. The function will detect this and print a
+g_warning.
+MT safe.">
+ <return-value transfer-ownership="none">
+ <type name="boolean" c:type="gboolean"/>
+ </return-value>
+ </method>
+ <field name="object">
+ <type name="Object" c:type="GstObject"/>
+ </field>
+ <field name="state">
+ <type name="TaskState" c:type="GstTaskState"/>
+ </field>
+ <field name="cond">
+ <type name="GLib.Cond" c:type="GCond*"/>
+ </field>
+ <field name="lock">
+ <type name="GLib.StaticRecMutex" c:type="GStaticRecMutex*"/>
+ </field>
+ <field name="func">
+ <type name="TaskFunction" c:type="GstTaskFunction"/>
+ </field>
+ <field name="data">
+ <type name="any" c:type="gpointer"/>
+ </field>
+ <field name="running">
+ <type name="boolean" c:type="gboolean"/>
+ </field>
+ <union name="abidata" c:type="abidata">
+ <record name="ABI" c:type="ABI">
+ <field name="thread" writable="1">
+ <type name="GLib.Thread" c:type="GThread*"/>
+ </field>
+ </record>
+ <field name="_gst_reserved" writable="1">
+ <array zero-terminated="0" c:type="gpointer" fixed-size="3">
+ <type name="any"/>
+ </array>
+ </field>
+ </union>
+ <field name="priv">
+ <type name="TaskPrivate" c:type="GstTaskPrivate*"/>
+ </field>
+ </class>
+ <record name="TaskClass"
+ c:type="GstTaskClass"
+ glib:is-gtype-struct-for="Task">
+ <field name="parent_class">
+ <type name="ObjectClass" c:type="GstObjectClass"/>
+ </field>
+ <field name="pool">
+ <type name="TaskPool" c:type="GstTaskPool*"/>
+ </field>
+ <field name="_gst_reserved">
+ <array zero-terminated="0" c:type="gpointer" fixed-size="4">
+ <type name="any"/>
+ </array>
+ </field>
+ </record>
+ <callback name="TaskFunction"
+ c:type="GstTaskFunction"
+ doc="A function that will repeatedly be called in the thread created by
+a #GstTask.">
+ <return-value transfer-ownership="none">
+ <type name="none" c:type="void"/>
+ </return-value>
+ <parameters>
+ <parameter name="data" transfer-ownership="none">
+ <type name="any" c:type="void*"/>
+ </parameter>
+ </parameters>
+ </callback>
+ <class name="TaskPool"
+ c:type="GstTaskPool"
+ doc="The #GstTaskPool object."
+ parent="Object"
+ glib:type-name="GstTaskPool"
+ glib:get-type="gst_task_pool_get_type"
+ glib:type-struct="TaskPoolClass">
+ <constructor name="new"
+ c:identifier="gst_task_pool_new"
+ doc="Create a new default task pool. The default task pool will use a regular
+GThreadPool for threads."
+ version="0.10.24">
+ <return-value transfer-ownership="full" doc="after usage.">
+ <type name="TaskPool" c:type="GstTaskPool*"/>
+ </return-value>
+ </constructor>
+ <virtual-method name="prepare" invoker="prepare" throws="1">
+ <return-value transfer-ownership="none">
+ <type name="none" c:type="void"/>
+ </return-value>
+ </virtual-method>
+ <virtual-method name="cleanup" invoker="cleanup">
+ <return-value transfer-ownership="none">
+ <type name="none" c:type="void"/>
+ </return-value>
+ </virtual-method>
+ <virtual-method name="push" invoker="push" throws="1">
+ <return-value transfer-ownership="none">
+ <type name="any" c:type="gpointer"/>
+ </return-value>
+ <parameters>
+ <parameter name="func" transfer-ownership="none">
+ <type name="TaskPoolFunction" c:type="GstTaskPoolFunction"/>
+ </parameter>
+ <parameter name="user_data" transfer-ownership="none" closure="2">
+ <type name="any" c:type="gpointer"/>
+ </parameter>
+ </parameters>
+ </virtual-method>
+ <virtual-method name="join" invoker="join">
+ <return-value transfer-ownership="none">
+ <type name="none" c:type="void"/>
+ </return-value>
+ <parameters>
+ <parameter name="id" transfer-ownership="none">
+ <type name="any" c:type="gpointer"/>
+ </parameter>
+ </parameters>
+ </virtual-method>
+ <method name="prepare"
+ c:identifier="gst_task_pool_prepare"
+ doc="Prepare the taskpool for accepting gst_task_pool_push() operations.
+MT safe."
+ version="0.10.24"
+ throws="1">
+ <return-value transfer-ownership="none">
+ <type name="none" c:type="void"/>
+ </return-value>
+ </method>
+ <method name="push"
+ c:identifier="gst_task_pool_push"
+ doc="Start the execution of a new thread from @pool.
+function. This pointer can be NULL, you must check @error to detect
+errors."
+ version="0.10.24"
+ throws="1">
+ <return-value transfer-ownership="none">
+ <type name="any" c:type="gpointer"/>
+ </return-value>
+ <parameters>
+ <parameter name="func"
+ transfer-ownership="none"
+ scope="call"
+ closure="2">
+ <type name="TaskPoolFunction" c:type="GstTaskPoolFunction"/>
+ </parameter>
+ <parameter name="user_data" transfer-ownership="none">
+ <type name="any" c:type="gpointer"/>
+ </parameter>
+ </parameters>
+ </method>
+ <method name="join"
+ c:identifier="gst_task_pool_join"
+ doc="Join a task and/or return it to the pool. @id is the id obtained from
+gst_task_pool_push()."
+ version="0.10.24">
+ <return-value transfer-ownership="none">
+ <type name="none" c:type="void"/>
+ </return-value>
+ <parameters>
+ <parameter name="id" transfer-ownership="none">
+ <type name="any" c:type="gpointer"/>
+ </parameter>
+ </parameters>
+ </method>
+ <method name="cleanup"
+ c:identifier="gst_task_pool_cleanup"
+ doc="Wait for all tasks to be stopped. This is mainly used internally
+to ensure proper cleanup of internal data structures in test suites.
+MT safe."
+ version="0.10.24">
+ <return-value transfer-ownership="none">
+ <type name="none" c:type="void"/>
+ </return-value>
+ </method>
+ <field name="object">
+ <type name="Object" c:type="GstObject"/>
+ </field>
+ <field name="pool">
+ <type name="GLib.ThreadPool" c:type="GThreadPool*"/>
+ </field>
+ <field name="_gst_reserved">
+ <array zero-terminated="0" c:type="gpointer" fixed-size="4">
+ <type name="any"/>
+ </array>
+ </field>
+ </class>
+ <record name="TaskPoolClass"
+ c:type="GstTaskPoolClass"
+ glib:is-gtype-struct-for="TaskPool"
+ doc="The #GstTaskPoolClass object.">
+ <field name="parent_class">
+ <type name="ObjectClass" c:type="GstObjectClass"/>
+ </field>
+ <field name="prepare">
+ <callback name="prepare" c:type="prepare" throws="1">
+ <return-value transfer-ownership="none">
+ <type name="none" c:type="void"/>
+ </return-value>
+ <parameters>
+ <parameter name="pool" transfer-ownership="none">
+ <type name="TaskPool" c:type="GstTaskPool*"/>
+ </parameter>
+ </parameters>
+ </callback>
+ </field>
+ <field name="cleanup">
+ <callback name="cleanup" c:type="cleanup">
+ <return-value transfer-ownership="none">
+ <type name="none" c:type="void"/>
+ </return-value>
+ <parameters>
+ <parameter name="pool" transfer-ownership="none">
+ <type name="TaskPool" c:type="GstTaskPool*"/>
+ </parameter>
+ </parameters>
+ </callback>
+ </field>
+ <field name="push">
+ <callback name="push" c:type="push" throws="1">
+ <return-value transfer-ownership="none">
+ <type name="any" c:type="gpointer"/>
+ </return-value>
+ <parameters>
+ <parameter name="pool" transfer-ownership="none">
+ <type name="TaskPool" c:type="GstTaskPool*"/>
+ </parameter>
+ <parameter name="func" transfer-ownership="none">
+ <type name="TaskPoolFunction" c:type="GstTaskPoolFunction"/>
+ </parameter>
+ <parameter name="user_data" transfer-ownership="none" closure="2">
+ <type name="any" c:type="gpointer"/>
+ </parameter>
+ </parameters>
+ </callback>
+ </field>
+ <field name="join">
+ <callback name="join" c:type="join">
+ <return-value transfer-ownership="none">
+ <type name="none" c:type="void"/>
+ </return-value>
+ <parameters>
+ <parameter name="pool" transfer-ownership="none">
+ <type name="TaskPool" c:type="GstTaskPool*"/>
+ </parameter>
+ <parameter name="id" transfer-ownership="none">
+ <type name="any" c:type="gpointer"/>
+ </parameter>
+ </parameters>
+ </callback>
+ </field>
+ <field name="_gst_reserved">
+ <array zero-terminated="0" c:type="gpointer" fixed-size="4">
+ <type name="any"/>
+ </array>
+ </field>
+ </record>
+ <callback name="TaskPoolFunction"
+ c:type="GstTaskPoolFunction"
+ doc="Task function, see gst_task_pool_push()."
+ version="0.10.24">
+ <return-value transfer-ownership="none">
+ <type name="none" c:type="void"/>
+ </return-value>
+ <parameters>
+ <parameter name="data" transfer-ownership="none">
+ <type name="any" c:type="void*"/>
+ </parameter>
+ </parameters>
+ </callback>
+ <record name="TaskPrivate" c:type="GstTaskPrivate">
+ </record>
+ <enumeration name="TaskState"
+ doc="The different states a task can be in"
+ c:type="GstTaskState">
+ <member name="started" value="0" c:identifier="GST_TASK_STARTED"/>
+ <member name="stopped" value="1" c:identifier="GST_TASK_STOPPED"/>
+ <member name="paused" value="2" c:identifier="GST_TASK_PAUSED"/>
+ </enumeration>
+ <record name="TaskThreadCallbacks"
+ c:type="GstTaskThreadCallbacks"
+ doc="thread enters its function.
+to leave its function
+Custom GstTask thread callback functions that can be installed."
+ version="0.10.24">
+ <field name="enter_thread">
+ <type name="any" c:type="pointer"/>
+ </field>
+ <field name="leave_thread">
+ <type name="any" c:type="pointer"/>
+ </field>
+ <field name="_gst_reserved" writable="1">
+ <array zero-terminated="0" c:type="gpointer" fixed-size="4">
+ <type name="any"/>
+ </array>
+ </field>
+ </record>
+ <record name="Trace" c:type="GstTrace" doc="Opaque #GstTrace structure.">
+ <field name="filename" writable="1">
+ <type name="utf8" c:type="gchar*"/>
+ </field>
+ <field name="fd" writable="1">
+ <type name="int" c:type="int"/>
+ </field>
+ <field name="buf" writable="1">
+ <type name="TraceEntry" c:type="GstTraceEntry*"/>
+ </field>
+ <field name="bufsize" writable="1">
+ <type name="int" c:type="gint"/>
+ </field>
+ <field name="bufoffset" writable="1">
+ <type name="int" c:type="gint"/>
+ </field>
+ <constructor name="new"
+ c:identifier="gst_trace_new"
+ doc="Create a ringbuffer of @size in the file with @filename to
+store trace results in.">
+ <return-value transfer-ownership="full">
+ <type name="Trace" c:type="GstTrace*"/>
+ </return-value>
+ <parameters>
+ <parameter name="filename" transfer-ownership="none">
+ <type name="utf8" c:type="gchar*"/>
+ </parameter>
+ <parameter name="size" transfer-ownership="none">
+ <type name="int" c:type="gint"/>
+ </parameter>
+ </parameters>
+ </constructor>
+ <method name="destroy"
+ c:identifier="gst_trace_destroy"
+ doc="Flush an close the previously allocated @trace.">
+ <return-value transfer-ownership="none">
+ <type name="none" c:type="void"/>
+ </return-value>
+ </method>
+ <method name="flush"
+ c:identifier="gst_trace_flush"
+ doc="Flush any pending trace entries in @trace to the trace file.
+flushed.">
+ <return-value transfer-ownership="none">
+ <type name="none" c:type="void"/>
+ </return-value>
+ </method>
+ <method name="text_flush"
+ c:identifier="gst_trace_text_flush"
+ doc="Flush any pending trace entries in @trace to the trace file,
+formatted as a text line with timestamp and sequence numbers.
+flushed.">
+ <return-value transfer-ownership="none">
+ <type name="none" c:type="void"/>
+ </return-value>
+ </method>
+ <method name="set_default"
+ c:identifier="gst_trace_set_default"
+ doc="Set the default #GstTrace to @trace.">
+ <return-value transfer-ownership="none">
+ <type name="none" c:type="void"/>
+ </return-value>
+ </method>
+ </record>
+ <record name="TraceEntry" c:type="GstTraceEntry">
+ <field name="timestamp" writable="1">
+ <type name="int64" c:type="gint64"/>
+ </field>
+ <field name="sequence" writable="1">
+ <type name="uint32" c:type="guint32"/>
+ </field>
+ <field name="data" writable="1">
+ <type name="uint32" c:type="guint32"/>
+ </field>
+ <field name="message" writable="1">
+ <array zero-terminated="0" c:type="gchar" fixed-size="112">
+ <type name="int8"/>
+ </array>
+ </field>
+ </record>
+ <record name="TypeFind"
+ c:type="GstTypeFind"
+ doc="Object that stores typefind callbacks. To use with #GstTypeFindFactory.">
+ <field name="peek">
+ <type name="any" c:type="pointer"/>
+ </field>
+ <field name="suggest">
+ <type name="any" c:type="pointer"/>
+ </field>
+ <field name="data" writable="1">
+ <type name="any" c:type="gpointer"/>
+ </field>
+ <field name="get_length">
+ <type name="any" c:type="pointer"/>
+ </field>
+ <field name="_gst_reserved" writable="1">
+ <array zero-terminated="0" c:type="gpointer" fixed-size="4">
+ <type name="any"/>
+ </array>
+ </field>
+ <method name="peek"
+ c:identifier="gst_type_find_peek"
+ doc="Returns the @size bytes of the stream to identify beginning at offset. If
+offset is a positive number, the offset is relative to the beginning of the
+stream, if offset is a negative number the offset is relative to the end of
+the stream. The returned memory is valid until the typefinding function
+returns and must not be freed.">
+ <return-value transfer-ownership="full">
+ <array c:type="guint8*">
+ <type name="uint8"/>
+ </array>
+ </return-value>
+ <parameters>
+ <parameter name="offset" transfer-ownership="none">
+ <type name="int64" c:type="gint64"/>
+ </parameter>
+ <parameter name="size" transfer-ownership="none">
+ <type name="uint" c:type="guint"/>
+ </parameter>
+ </parameters>
+ </method>
+ <method name="suggest"
+ c:identifier="gst_type_find_suggest"
+ doc="If a #GstTypeFindFunction calls this function it suggests the caps with the
+given probability. A #GstTypeFindFunction may supply different suggestions
+in one call.
+It is up to the caller of the #GstTypeFindFunction to interpret these values.">
+ <return-value transfer-ownership="none">
+ <type name="none" c:type="void"/>
+ </return-value>
+ <parameters>
+ <parameter name="probability" transfer-ownership="none">
+ <type name="uint" c:type="guint"/>
+ </parameter>
+ <parameter name="caps" transfer-ownership="none">
+ <type name="Caps" c:type="GstCaps*"/>
+ </parameter>
+ </parameters>
+ </method>
+ <method name="suggest_simple"
+ c:identifier="gst_type_find_suggest_simple"
+ doc="arguments passed to gst_structure_new() (ie. triplets of field name,
+field GType and field value)
+If a #GstTypeFindFunction calls this function it suggests the caps with the
+given probability. A #GstTypeFindFunction may supply different suggestions
+in one call. It is up to the caller of the #GstTypeFindFunction to interpret
+these values.
+This function is similar to gst_type_find_suggest(), only that instead of
+passing a #GstCaps argument you can create the caps on the fly in the same
+way as you can with gst_caps_new_simple().
+Make sure you terminate the list of arguments with a NULL argument and that
+the values passed have the correct type (in terms of width in bytes when
+passed to the vararg function - this applies particularly to gdouble and
+guint64 arguments)."
+ version="0.10.20">
+ <return-value transfer-ownership="none">
+ <type name="none" c:type="void"/>
+ </return-value>
+ <parameters>
+ <parameter name="probability" transfer-ownership="none">
+ <type name="uint" c:type="guint"/>
+ </parameter>
+ <parameter name="media_type" transfer-ownership="none">
+ <type name="utf8" c:type="char*"/>
+ </parameter>
+ <parameter name="fieldname" transfer-ownership="none">
+ <type name="utf8" c:type="char*"/>
+ </parameter>
+ <parameter transfer-ownership="none">
+ <varargs>
+ </varargs>
+ </parameter>
+ </parameters>
+ </method>
+ <method name="get_length"
+ c:identifier="gst_type_find_get_length"
+ doc="Get the length of the data stream.">
+ <return-value transfer-ownership="none">
+ <type name="uint64" c:type="guint64"/>
+ </return-value>
+ </method>
+ </record>
+ <class name="TypeFindFactory"
+ c:type="GstTypeFindFactory"
+ doc="Object that stores information about a typefind function."
+ parent="PluginFeature"
+ glib:type-name="GstTypeFindFactory"
+ glib:get-type="gst_type_find_factory_get_type"
+ glib:type-struct="TypeFindFactoryClass">
+ <function name="get_list"
+ c:identifier="gst_type_find_factory_get_list"
+ doc="Gets the list of all registered typefind factories. You must free the
+list using gst_plugin_feature_list_free.
+The returned factories are sorted by highest rank first, and then by
+factory name. (behaviour change since 0.10.26)">
+ <return-value transfer-ownership="full">
+ <type name="GLib.List" c:type="GList*"/>
+ </return-value>
+ </function>
+ <method name="get_extensions"
+ c:identifier="gst_type_find_factory_get_extensions"
+ doc="Gets the extensions associated with a #GstTypeFindFactory. The returned
+array should not be changed. If you need to change stuff in it, you should
+copy it using g_strdupv(). This function may return NULL to indicate
+a 0-length list.">
+ <return-value transfer-ownership="full">
+ <array c:type="gchar**">
+ <type name="utf8"/>
+ </array>
+ </return-value>
+ </method>
+ <method name="get_caps"
+ c:identifier="gst_type_find_factory_get_caps"
+ doc="Gets the #GstCaps associated with a typefind factory.">
+ <return-value transfer-ownership="full">
+ <type name="Caps" c:type="GstCaps*"/>
+ </return-value>
+ </method>
+ <method name="call_function"
+ c:identifier="gst_type_find_factory_call_function"
+ doc="members must be set.
+Calls the #GstTypeFindFunction associated with this factory.">
+ <return-value transfer-ownership="none">
+ <type name="none" c:type="void"/>
+ </return-value>
+ <parameters>
+ <parameter name="find" transfer-ownership="none">
+ <type name="TypeFind" c:type="GstTypeFind*"/>
+ </parameter>
+ </parameters>
+ </method>
+ <field name="feature">
+ <type name="PluginFeature" c:type="GstPluginFeature"/>
+ </field>
+ <field name="function">
+ <type name="TypeFindFunction" c:type="GstTypeFindFunction"/>
+ </field>
+ <field name="extensions">
+ <type name="utf8" c:type="gchar**"/>
+ </field>
+ <field name="caps">
+ <type name="Caps" c:type="GstCaps*"/>
+ </field>
+ <field name="user_data">
+ <type name="any" c:type="gpointer"/>
+ </field>
+ <field name="user_data_notify">
+ <type name="GLib.DestroyNotify" c:type="GDestroyNotify"/>
+ </field>
+ <field name="_gst_reserved">
+ <array zero-terminated="0" c:type="gpointer" fixed-size="4">
+ <type name="any"/>
+ </array>
+ </field>
+ </class>
+ <record name="TypeFindFactoryClass"
+ c:type="GstTypeFindFactoryClass"
+ glib:is-gtype-struct-for="TypeFindFactory">
+ <field name="parent">
+ <type name="PluginFeatureClass" c:type="GstPluginFeatureClass"/>
+ </field>
+ <field name="_gst_reserved">
+ <array zero-terminated="0" c:type="gpointer" fixed-size="4">
+ <type name="any"/>
+ </array>
+ </field>
+ </record>
+ <callback name="TypeFindFunction"
+ c:type="GstTypeFindFunction"
+ doc="A function that will be called by typefinding.">
+ <return-value transfer-ownership="none">
+ <type name="none" c:type="void"/>
+ </return-value>
+ <parameters>
+ <parameter name="find" transfer-ownership="none">
+ <type name="TypeFind" c:type="GstTypeFind*"/>
+ </parameter>
+ <parameter name="data" transfer-ownership="none">
+ <type name="any" c:type="gpointer"/>
+ </parameter>
+ </parameters>
+ </callback>
+ <enumeration name="TypeFindProbability"
+ doc="The probability of the typefind function. Higher values have more certainty
+in doing a reliable typefind."
+ c:type="GstTypeFindProbability">
+ <member name="minimum" value="1" c:identifier="GST_TYPE_FIND_MINIMUM"/>
+ <member name="possible"
+ value="50"
+ c:identifier="GST_TYPE_FIND_POSSIBLE"/>
+ <member name="likely" value="80" c:identifier="GST_TYPE_FIND_LIKELY"/>
+ <member name="nearly_certain"
+ value="99"
+ c:identifier="GST_TYPE_FIND_NEARLY_CERTAIN"/>
+ <member name="maximum" value="100" c:identifier="GST_TYPE_FIND_MAXIMUM"/>
+ </enumeration>
+ <record name="TypeNameData"
+ c:type="GstTypeNameData"
+ doc="Structure used for filtering based on @name and @type.">
+ <field name="name" writable="1">
+ <type name="utf8" c:type="gchar*"/>
+ </field>
+ <field name="type" writable="1">
+ <type name="GType" c:type="GType"/>
+ </field>
+ </record>
+ <interface name="URIHandler"
+ c:type="GstURIHandler"
+ doc="Opaque #GstURIHandler structure."
+ glib:type-name="GstURIHandler"
+ glib:get-type="gst_uri_handler_get_type"
+ glib:type-struct="URIHandlerInterface">
+ <virtual-method name="get_uri" invoker="get_uri">
+ <return-value transfer-ownership="none">
+ <type name="utf8" c:type="gchar*"/>
+ </return-value>
+ </virtual-method>
+ <virtual-method name="set_uri" invoker="set_uri">
+ <return-value transfer-ownership="none">
+ <type name="boolean" c:type="gboolean"/>
+ </return-value>
+ <parameters>
+ <parameter name="uri" transfer-ownership="none">
+ <type name="utf8" c:type="gchar*"/>
+ </parameter>
+ </parameters>
+ </virtual-method>
+ <method name="get_uri_type"
+ c:identifier="gst_uri_handler_get_uri_type"
+ doc="Gets the type of the given URI handler
+Returns #GST_URI_UNKNOWN if the @handler isn't implemented correctly.">
+ <return-value transfer-ownership="none">
+ <type name="uint" c:type="guint"/>
+ </return-value>
+ </method>
+ <method name="get_protocols"
+ c:identifier="gst_uri_handler_get_protocols"
+ doc="Gets the list of protocols supported by @handler. This list may not be
+modified.
+Returns NULL if the @handler isn't implemented properly, or the @handler
+doesn't support any protocols.">
+ <return-value transfer-ownership="full">
+ <array c:type="gchar**">
+ <type name="utf8"/>
+ </array>
+ </return-value>
+ </method>
+ <method name="get_uri"
+ c:identifier="gst_uri_handler_get_uri"
+ doc="Gets the currently handled URI.
+Returns NULL if there are no URI currently handled. The returned
+string must not be modified or freed.">
+ <return-value transfer-ownership="none">
+ <type name="utf8" c:type="gchar*"/>
+ </return-value>
+ </method>
+ <method name="set_uri"
+ c:identifier="gst_uri_handler_set_uri"
+ doc="Tries to set the URI of the given handler.">
+ <return-value transfer-ownership="none">
+ <type name="boolean" c:type="gboolean"/>
+ </return-value>
+ <parameters>
+ <parameter name="uri" transfer-ownership="none">
+ <type name="utf8" c:type="gchar*"/>
+ </parameter>
+ </parameters>
+ </method>
+ <method name="new_uri"
+ c:identifier="gst_uri_handler_new_uri"
+ doc="Emits the new-uri signal for a given handler, when that handler has a new URI.
+This function should only be called by URI handlers themselves.">
+ <return-value transfer-ownership="none">
+ <type name="none" c:type="void"/>
+ </return-value>
+ <parameters>
+ <parameter name="uri" transfer-ownership="none">
+ <type name="utf8" c:type="gchar*"/>
+ </parameter>
+ </parameters>
+ </method>
+ <glib:signal name="new-uri"
+ doc="The URI of the given @handler has changed.">
+ <return-value transfer-ownership="full">
+ <type name="none" c:type="void"/>
+ </return-value>
+ <parameters>
+ <parameter name="uri" transfer-ownership="none">
+ <type name="utf8" c:type="gchararray"/>
+ </parameter>
+ </parameters>
+ </glib:signal>
+ </interface>
+ <record name="URIHandlerInterface"
+ c:type="GstURIHandlerInterface"
+ glib:is-gtype-struct-for="URIHandler"
+ doc="This is for use by bindings that need to pass context when creating a URI
+Handler. If implemented, get_protocols will be used in preference to
+Any #GstElement using this interface should implement these methods.">
+ <field name="parent">
+ <type name="GObject.TypeInterface" c:type="GTypeInterface"/>
+ </field>
+ <field name="new_uri">
+ <callback name="new_uri" c:type="new_uri">
+ <return-value transfer-ownership="none">
+ <type name="none" c:type="void"/>
+ </return-value>
+ <parameters>
+ <parameter name="handler" transfer-ownership="none">
+ <type name="URIHandler" c:type="GstURIHandler*"/>
+ </parameter>
+ <parameter name="uri" transfer-ownership="none">
+ <type name="utf8" c:type="gchar*"/>
+ </parameter>
+ </parameters>
+ </callback>
+ </field>
+ <field name="get_type">
+ <callback name="get_type" c:type="get_type">
+ <return-value transfer-ownership="full">
+ <type name="URIType" c:type="GstURIType"/>
+ </return-value>
+ </callback>
+ </field>
+ <field name="get_protocols">
+ <callback name="get_protocols" c:type="get_protocols">
+ <return-value transfer-ownership="full">
+ <array c:type="gchar**">
+ <type name="utf8"/>
+ </array>
+ </return-value>
+ </callback>
+ </field>
+ <field name="get_uri">
+ <callback name="get_uri" c:type="get_uri">
+ <return-value transfer-ownership="none">
+ <type name="utf8" c:type="gchar*"/>
+ </return-value>
+ <parameters>
+ <parameter name="handler" transfer-ownership="none">
+ <type name="URIHandler" c:type="GstURIHandler*"/>
+ </parameter>
+ </parameters>
+ </callback>
+ </field>
+ <field name="set_uri">
+ <callback name="set_uri" c:type="set_uri">
+ <return-value transfer-ownership="none">
+ <type name="boolean" c:type="gboolean"/>
+ </return-value>
+ <parameters>
+ <parameter name="handler" transfer-ownership="none">
+ <type name="URIHandler" c:type="GstURIHandler*"/>
+ </parameter>
+ <parameter name="uri" transfer-ownership="none">
+ <type name="utf8" c:type="gchar*"/>
+ </parameter>
+ </parameters>
+ </callback>
+ </field>
+ <field name="get_type_full">
+ <callback name="get_type_full" c:type="get_type_full">
+ <return-value transfer-ownership="full">
+ <type name="URIType" c:type="GstURIType"/>
+ </return-value>
+ <parameters>
+ <parameter name="type" transfer-ownership="none">
+ <type name="GType" c:type="GType"/>
+ </parameter>
+ </parameters>
+ </callback>
+ </field>
+ <field name="get_protocols_full">
+ <callback name="get_protocols_full" c:type="get_protocols_full">
+ <return-value transfer-ownership="full">
+ <array c:type="gchar**">
+ <type name="utf8"/>
+ </array>
+ </return-value>
+ <parameters>
+ <parameter name="type" transfer-ownership="none">
+ <type name="GType" c:type="GType"/>
+ </parameter>
+ </parameters>
+ </callback>
+ </field>
+ <field name="_gst_reserved">
+ <array zero-terminated="0" c:type="gpointer" fixed-size="2">
+ <type name="any"/>
+ </array>
+ </field>
+ </record>
+ <enumeration name="URIType"
+ doc="The different types of URI direction."
+ c:type="GstURIType">
+ <member name="unknown" value="0" c:identifier="GST_URI_UNKNOWN"/>
+ <member name="sink" value="1" c:identifier="GST_URI_SINK"/>
+ <member name="src" value="2" c:identifier="GST_URI_SRC"/>
+ </enumeration>
+ <constant name="USECOND" value="0">
+ <type name="int"/>
+ </constant>
+ <constant name="VALUE_EQUAL" value="0">
+ <type name="int"/>
+ </constant>
+ <constant name="VALUE_GREATER_THAN" value="1">
+ <type name="int"/>
+ </constant>
+ <constant name="VALUE_LESS_THAN" value="-1">
+ <type name="int"/>
+ </constant>
+ <constant name="VALUE_UNORDERED" value="2">
+ <type name="int"/>
+ </constant>
+ <callback name="ValueCompareFunc"
+ c:type="GstValueCompareFunc"
+ doc="Used together with gst_value_compare() to compare #GValue items.
+or GST_VALUE_UNORDERED">
+ <return-value transfer-ownership="none">
+ <type name="int" c:type="gint"/>
+ </return-value>
+ <parameters>
+ <parameter name="value1" transfer-ownership="none">
+ <type name="GObject.Value" c:type="GValue*"/>
+ </parameter>
+ <parameter name="value2" transfer-ownership="none">
+ <type name="GObject.Value" c:type="GValue*"/>
+ </parameter>
+ </parameters>
+ </callback>
+ <callback name="ValueDeserializeFunc"
+ c:type="GstValueDeserializeFunc"
+ doc="Used by gst_value_deserialize() to parse a non-binary form into the #GValue.">
+ <return-value transfer-ownership="none">
+ <type name="boolean" c:type="gboolean"/>
+ </return-value>
+ <parameters>
+ <parameter name="dest" transfer-ownership="none">
+ <type name="GObject.Value" c:type="GValue*"/>
+ </parameter>
+ <parameter name="s" transfer-ownership="none">
+ <type name="utf8" c:type="gchar*"/>
+ </parameter>
+ </parameters>
+ </callback>
+ <callback name="ValueIntersectFunc"
+ c:type="GstValueIntersectFunc"
+ doc="Used by gst_value_intersect() to perform intersection for a specific #GValue
+type. If the intersection is non-empty, the result is
+placed in @dest and TRUE is returned. If the intersection is
+empty, @dest is unmodified and FALSE is returned.
+Register a new implementation with gst_value_register_intersect_func().">
+ <return-value transfer-ownership="none">
+ <type name="boolean" c:type="gboolean"/>
+ </return-value>
+ <parameters>
+ <parameter name="dest" transfer-ownership="none">
+ <type name="GObject.Value" c:type="GValue*"/>
+ </parameter>
+ <parameter name="value1" transfer-ownership="none">
+ <type name="GObject.Value" c:type="GValue*"/>
+ </parameter>
+ <parameter name="value2" transfer-ownership="none">
+ <type name="GObject.Value" c:type="GValue*"/>
+ </parameter>
+ </parameters>
+ </callback>
+ <callback name="ValueSerializeFunc"
+ c:type="GstValueSerializeFunc"
+ doc="Used by gst_value_serialize() to obtain a non-binary form of the #GValue.">
+ <return-value transfer-ownership="full">
+ <type name="utf8" c:type="gchar*"/>
+ </return-value>
+ <parameters>
+ <parameter name="value1" transfer-ownership="none">
+ <type name="GObject.Value" c:type="GValue*"/>
+ </parameter>
+ </parameters>
+ </callback>
+ <callback name="ValueSubtractFunc"
+ c:type="GstValueSubtractFunc"
+ doc="Used by gst_value_subtract() to perform subtraction for a specific #GValue
+type. Register a new implementation with gst_value_register_subtract_func().">
+ <return-value transfer-ownership="none">
+ <type name="boolean" c:type="gboolean"/>
+ </return-value>
+ <parameters>
+ <parameter name="dest" transfer-ownership="none">
+ <type name="GObject.Value" c:type="GValue*"/>
+ </parameter>
+ <parameter name="minuend" transfer-ownership="none">
+ <type name="GObject.Value" c:type="GValue*"/>
+ </parameter>
+ <parameter name="subtrahend" transfer-ownership="none">
+ <type name="GObject.Value" c:type="GValue*"/>
+ </parameter>
+ </parameters>
+ </callback>
+ <record name="ValueTable"
+ c:type="GstValueTable"
+ doc="VTable for the #GValue @type.">
+ <field name="type" writable="1">
+ <type name="GType" c:type="GType"/>
+ </field>
+ <field name="compare" writable="1">
+ <type name="ValueCompareFunc" c:type="GstValueCompareFunc"/>
+ </field>
+ <field name="serialize" writable="1">
+ <type name="ValueSerializeFunc" c:type="GstValueSerializeFunc"/>
+ </field>
+ <field name="deserialize" writable="1">
+ <type name="ValueDeserializeFunc" c:type="GstValueDeserializeFunc"/>
+ </field>
+ <field name="_gst_reserved" writable="1">
+ <array zero-terminated="0" c:type="void*" fixed-size="4">
+ <type name="any"/>
+ </array>
+ </field>
+ </record>
+ <callback name="ValueUnionFunc"
+ c:type="GstValueUnionFunc"
+ doc="Used by gst_value_union() to perform unification for a specific #GValue
+type. Register a new implementation with gst_value_register_union_func().">
+ <return-value transfer-ownership="none">
+ <type name="boolean" c:type="gboolean"/>
+ </return-value>
+ <parameters>
+ <parameter name="dest" transfer-ownership="none">
+ <type name="GObject.Value" c:type="GValue*"/>
+ </parameter>
+ <parameter name="value1" transfer-ownership="none">
+ <type name="GObject.Value" c:type="GValue*"/>
+ </parameter>
+ <parameter name="value2" transfer-ownership="none">
+ <type name="GObject.Value" c:type="GValue*"/>
+ </parameter>
+ </parameters>
+ </callback>
+ <class name="XML"
+ c:type="GstXML"
+ doc="XML parser object"
+ parent="Object"
+ glib:type-name="GstXML"
+ glib:get-type="gst_xml_get_type"
+ glib:type-struct="XMLClass">
+ <constructor name="new"
+ c:identifier="gst_xml_new"
+ doc="Create a new GstXML parser object.">
+ <return-value transfer-ownership="full">
+ <type name="XML" c:type="GstXML*"/>
+ </return-value>
+ </constructor>
+ <function name="write"
+ c:identifier="gst_xml_write"
+ doc="Converts the given element into an XML presentation.">
+ <return-value transfer-ownership="full">
+ <type name="libxml2.DocPtr" c:type="xmlDocPtr"/>
+ </return-value>
+ <parameters>
+ <parameter name="element" transfer-ownership="none">
+ <type name="Element" c:type="GstElement*"/>
+ </parameter>
+ </parameters>
+ </function>
+ <function name="make_element"
+ c:identifier="gst_xml_make_element"
+ doc="Load the element from the XML description">
+ <return-value transfer-ownership="full">
+ <type name="Element" c:type="GstElement*"/>
+ </return-value>
+ <parameters>
+ <parameter name="cur" transfer-ownership="none">
+ <type name="libxml2.NodePtr" c:type="xmlNodePtr"/>
+ </parameter>
+ <parameter name="parent" transfer-ownership="none">
+ <type name="Object" c:type="GstObject*"/>
+ </parameter>
+ </parameters>
+ </function>
+ <virtual-method name="object_saved">
+ <return-value transfer-ownership="none">
+ <type name="none" c:type="void"/>
+ </return-value>
+ <parameters>
+ <parameter name="object" transfer-ownership="none">
+ <type name="Object" c:type="GstObject*"/>
+ </parameter>
+ <parameter name="self" transfer-ownership="none">
+ <type name="libxml2.NodePtr" c:type="xmlNodePtr"/>
+ </parameter>
+ </parameters>
+ </virtual-method>
+ <method name="parse_doc"
+ c:identifier="gst_xml_parse_doc"
+ doc="Fills the GstXML object with the elements from the
+xmlDocPtr.">
+ <return-value transfer-ownership="none">
+ <type name="boolean" c:type="gboolean"/>
+ </return-value>
+ <parameters>
+ <parameter name="doc" transfer-ownership="none">
+ <type name="libxml2.DocPtr" c:type="xmlDocPtr"/>
+ </parameter>
+ <parameter name="root" transfer-ownership="none">
+ <array c:type="guchar*">
+ <type name="uint8"/>
+ </array>
+ </parameter>
+ </parameters>
+ </method>
+ <method name="parse_file"
+ c:identifier="gst_xml_parse_file"
+ doc="Fills the GstXML object with the corresponding elements from
+the XML file fname. Optionally it will only build the element from
+the element node root (if it is not NULL). This feature is useful
+if you only want to build a specific element from an XML file
+but not the pipeline it is embedded in.
+Pass "-" as fname to read from stdin. You can also pass a URI
+of any format that libxml supports, including http.">
+ <return-value transfer-ownership="none">
+ <type name="boolean" c:type="gboolean"/>
+ </return-value>
+ <parameters>
+ <parameter name="fname" transfer-ownership="none">
+ <array c:type="guchar*">
+ <type name="uint8"/>
+ </array>
+ </parameter>
+ <parameter name="root" transfer-ownership="none">
+ <array c:type="guchar*">
+ <type name="uint8"/>
+ </array>
+ </parameter>
+ </parameters>
+ </method>
+ <method name="parse_memory"
+ c:identifier="gst_xml_parse_memory"
+ doc="Fills the GstXML object with the corresponding elements from
+an in memory XML buffer.">
+ <return-value transfer-ownership="none">
+ <type name="boolean" c:type="gboolean"/>
+ </return-value>
+ <parameters>
+ <parameter name="buffer" transfer-ownership="none">
+ <array c:type="guchar*">
+ <type name="uint8"/>
+ </array>
+ </parameter>
+ <parameter name="size" transfer-ownership="none">
+ <type name="uint" c:type="guint"/>
+ </parameter>
+ <parameter name="root" transfer-ownership="none">
+ <type name="utf8" c:type="gchar*"/>
+ </parameter>
+ </parameters>
+ </method>
+ <method name="get_element"
+ c:identifier="gst_xml_get_element"
+ doc="This function is used to get a pointer to the GstElement corresponding
+to name in the pipeline description. You would use this if you have
+to do anything to the element after loading.">
+ <return-value transfer-ownership="full">
+ <type name="Element" c:type="GstElement*"/>
+ </return-value>
+ <parameters>
+ <parameter name="name" transfer-ownership="none">
+ <array c:type="guchar*">
+ <type name="uint8"/>
+ </array>
+ </parameter>
+ </parameters>
+ </method>
+ <method name="get_topelements"
+ c:identifier="gst_xml_get_topelements"
+ doc="Retrieve a list of toplevel elements.
+of the list and must not free or modify the list. The caller also does not
+own a reference to any of the elements in the list and should obtain its own
+reference using gst_object_ref() if necessary.">
+ <return-value transfer-ownership="full">
+ <type name="GLib.List" c:type="GList*"/>
+ </return-value>
+ </method>
+ <field name="object">
+ <type name="Object" c:type="GstObject"/>
+ </field>
+ <field name="topelements">
+ <type name="GLib.List" c:type="GList*"/>
+ </field>
+ <field name="ns">
+ <type name="libxml2.NsPtr" c:type="xmlNsPtr"/>
+ </field>
+ <field name="_gst_reserved">
+ <array zero-terminated="0" c:type="gpointer" fixed-size="4">
+ <type name="any"/>
+ </array>
+ </field>
+ <glib:signal name="object-loaded"
+ doc="Signals that a new object has been deserialized.">
+ <return-value transfer-ownership="full">
+ <type name="none" c:type="void"/>
+ </return-value>
+ <parameters>
+ <parameter name="object" transfer-ownership="none">
+ <type name="Object" c:type="GstObject"/>
+ </parameter>
+ <parameter name="xml_node" transfer-ownership="none">
+ <type name="any" c:type="gpointer"/>
+ </parameter>
+ </parameters>
+ </glib:signal>
+ </class>
+ <record name="XMLClass"
+ c:type="GstXMLClass"
+ glib:is-gtype-struct-for="XML">
+ <field name="parent_class">
+ <type name="ObjectClass" c:type="GstObjectClass"/>
+ </field>
+ <field name="object_loaded">
+ <callback name="object_loaded" c:type="object_loaded">
+ <return-value transfer-ownership="none">
+ <type name="none" c:type="void"/>
+ </return-value>
+ <parameters>
+ <parameter name="xml" transfer-ownership="none">
+ <type name="XML" c:type="GstXML*"/>
+ </parameter>
+ <parameter name="object" transfer-ownership="none">
+ <type name="Object" c:type="GstObject*"/>
+ </parameter>
+ <parameter name="self" transfer-ownership="none">
+ <type name="libxml2.NodePtr" c:type="xmlNodePtr"/>
+ </parameter>
+ </parameters>
+ </callback>
+ </field>
+ <field name="object_saved">
+ <callback name="object_saved" c:type="object_saved">
+ <return-value transfer-ownership="none">
+ <type name="none" c:type="void"/>
+ </return-value>
+ <parameters>
+ <parameter name="xml" transfer-ownership="none">
+ <type name="XML" c:type="GstXML*"/>
+ </parameter>
+ <parameter name="object" transfer-ownership="none">
+ <type name="Object" c:type="GstObject*"/>
+ </parameter>
+ <parameter name="self" transfer-ownership="none">
+ <type name="libxml2.NodePtr" c:type="xmlNodePtr"/>
+ </parameter>
+ </parameters>
+ </callback>
+ </field>
+ <field name="_gst_reserved">
+ <array zero-terminated="0" c:type="gpointer" fixed-size="4">
+ <type name="any"/>
+ </array>
+ </field>
+ </record>
+ <function name="alloc_trace_available"
+ c:identifier="gst_alloc_trace_available"
+ doc="Check if alloc tracing was compiled into the core
+tracing enabled.">
+ <return-value transfer-ownership="none">
+ <type name="boolean" c:type="gboolean"/>
+ </return-value>
+ </function>
+ <function name="alloc_trace_get"
+ c:identifier="gst_alloc_trace_get"
+ doc="Get the named alloc trace object.
+no alloc tracer was registered with that name.">
+ <return-value transfer-ownership="full">
+ <type name="AllocTrace" c:type="GstAllocTrace*"/>
+ </return-value>
+ <parameters>
+ <parameter name="name" transfer-ownership="none">
+ <type name="utf8" c:type="gchar*"/>
+ </parameter>
+ </parameters>
+ </function>
+ <function name="alloc_trace_list"
+ c:identifier="gst_alloc_trace_list"
+ doc="Get a list of all registered alloc trace objects.">
+ <return-value transfer-ownership="none">
+ <type name="GLib.List" c:type="GList*"/>
+ </return-value>
+ </function>
+ <function name="alloc_trace_live_all"
+ c:identifier="gst_alloc_trace_live_all"
+ doc="Get the total number of live registered alloc trace objects.">
+ <return-value transfer-ownership="none">
+ <type name="int" c:type="int"/>
+ </return-value>
+ </function>
+ <function name="alloc_trace_print_all"
+ c:identifier="gst_alloc_trace_print_all"
+ doc="Print the status of all registered alloc trace objects.">
+ <return-value transfer-ownership="none">
+ <type name="none" c:type="void"/>
+ </return-value>
+ </function>
+ <function name="alloc_trace_print_live"
+ c:identifier="gst_alloc_trace_print_live"
+ doc="Print the status of all registered alloc trace objects, ignoring those
+without live objects.">
+ <return-value transfer-ownership="none">
+ <type name="none" c:type="void"/>
+ </return-value>
+ </function>
+ <function name="alloc_trace_set_flags_all"
+ c:identifier="gst_alloc_trace_set_flags_all"
+ doc="Enable the specified options on all registered alloc trace
+objects.">
+ <return-value transfer-ownership="none">
+ <type name="none" c:type="void"/>
+ </return-value>
+ <parameters>
+ <parameter name="flags" transfer-ownership="none">
+ <type name="AllocTraceFlags" c:type="GstAllocTraceFlags"/>
+ </parameter>
+ </parameters>
+ </function>
+ <function name="atomic_int_set"
+ c:identifier="gst_atomic_int_set"
+ doc="Unconditionally sets the atomic integer to @value."
+ deprecated="Use g_atomic_int_set().">
+ <return-value transfer-ownership="none">
+ <type name="none" c:type="void"/>
+ </return-value>
+ <parameters>
+ <parameter name="atomic_int" direction="out" transfer-ownership="full">
+ <type name="int" c:type="gint*"/>
+ </parameter>
+ <parameter name="value" transfer-ownership="none">
+ <type name="int" c:type="gint"/>
+ </parameter>
+ </parameters>
+ </function>
+ <function name="buffer_try_new_and_alloc"
+ c:identifier="gst_buffer_try_new_and_alloc"
+ doc="Tries to create a newly allocated buffer with data of the given size. If
+the requested amount of memory can't be allocated, NULL will be returned.
+The buffer memory is not cleared.
+Note that when @size == 0, the buffer data pointer will be NULL.
+MT safe."
+ version="0.10.13">
+ <return-value transfer-ownership="full">
+ <type name="Buffer" c:type="GstBuffer*"/>
+ </return-value>
+ <parameters>
+ <parameter name="size" transfer-ownership="none">
+ <type name="uint" c:type="guint"/>
+ </parameter>
+ </parameters>
+ </function>
+ <function name="caps_from_string"
+ c:identifier="gst_caps_from_string"
+ doc="Converts @caps from a string representation.">
+ <return-value transfer-ownership="full">
+ <type name="Caps" c:type="GstCaps*"/>
+ </return-value>
+ <parameters>
+ <parameter name="string" transfer-ownership="none">
+ <type name="utf8" c:type="gchar*"/>
+ </parameter>
+ </parameters>
+ </function>
+ <function name="caps_load_thyself"
+ c:identifier="gst_caps_load_thyself"
+ doc="Creates a #GstCaps from its XML serialization.">
+ <return-value transfer-ownership="full">
+ <type name="Caps" c:type="GstCaps*"/>
+ </return-value>
+ <parameters>
+ <parameter name="parent" transfer-ownership="none">
+ <type name="libxml2.NodePtr" c:type="xmlNodePtr"/>
+ </parameter>
+ </parameters>
+ </function>
+ <function name="child_proxy_child_added"
+ c:identifier="gst_child_proxy_child_added"
+ doc="Emits the "child-added" signal.">
+ <return-value transfer-ownership="none">
+ <type name="none" c:type="void"/>
+ </return-value>
+ <parameters>
+ <parameter name="object" transfer-ownership="none">
+ <type name="Object" c:type="GstObject*"/>
+ </parameter>
+ <parameter name="child" transfer-ownership="none">
+ <type name="Object" c:type="GstObject*"/>
+ </parameter>
+ </parameters>
+ </function>
+ <function name="child_proxy_child_removed"
+ c:identifier="gst_child_proxy_child_removed"
+ doc="Emits the "child-removed" signal.">
+ <return-value transfer-ownership="none">
+ <type name="none" c:type="void"/>
+ </return-value>
+ <parameters>
+ <parameter name="object" transfer-ownership="none">
+ <type name="Object" c:type="GstObject*"/>
+ </parameter>
+ <parameter name="child" transfer-ownership="none">
+ <type name="Object" c:type="GstObject*"/>
+ </parameter>
+ </parameters>
+ </function>
+ <function name="child_proxy_get"
+ c:identifier="gst_child_proxy_get"
+ doc="Gets properties of the parent object and its children.">
+ <return-value transfer-ownership="none">
+ <type name="none" c:type="void"/>
+ </return-value>
+ <parameters>
+ <parameter name="object" transfer-ownership="none">
+ <type name="Object" c:type="GstObject*"/>
+ </parameter>
+ <parameter name="first_property_name" transfer-ownership="none">
+ <type name="utf8" c:type="gchar*"/>
+ </parameter>
+ <parameter transfer-ownership="none">
+ <varargs>
+ </varargs>
+ </parameter>
+ </parameters>
+ </function>
+ <function name="child_proxy_get_property"
+ c:identifier="gst_child_proxy_get_property"
+ doc="Gets a single property using the GstChildProxy mechanism.
+You are responsible for for freeing it by calling g_value_unset()">
+ <return-value transfer-ownership="none">
+ <type name="none" c:type="void"/>
+ </return-value>
+ <parameters>
+ <parameter name="object" transfer-ownership="none">
+ <type name="Object" c:type="GstObject*"/>
+ </parameter>
+ <parameter name="name" transfer-ownership="none">
+ <type name="utf8" c:type="gchar*"/>
+ </parameter>
+ <parameter name="value" transfer-ownership="none">
+ <type name="GObject.Value" c:type="GValue*"/>
+ </parameter>
+ </parameters>
+ </function>
+ <function name="child_proxy_lookup"
+ c:identifier="gst_child_proxy_lookup"
+ doc="Looks up which object and #GParamSpec would be effected by the given @name.
+case the values for @pspec and @target are not modified. Unref @target after
+usage.
+MT safe.">
+ <return-value transfer-ownership="none">
+ <type name="boolean" c:type="gboolean"/>
+ </return-value>
+ <parameters>
+ <parameter name="object" transfer-ownership="none">
+ <type name="Object" c:type="GstObject*"/>
+ </parameter>
+ <parameter name="name" transfer-ownership="none">
+ <type name="utf8" c:type="gchar*"/>
+ </parameter>
+ <parameter name="target" transfer-ownership="none">
+ <type name="Object" c:type="GstObject**"/>
+ </parameter>
+ <parameter name="pspec" transfer-ownership="none">
+ <type name="GObject.ParamSpec" c:type="GParamSpec**"/>
+ </parameter>
+ </parameters>
+ </function>
+ <function name="child_proxy_set"
+ c:identifier="gst_child_proxy_set"
+ doc="Sets properties of the parent object and its children.">
+ <return-value transfer-ownership="none">
+ <type name="none" c:type="void"/>
+ </return-value>
+ <parameters>
+ <parameter name="object" transfer-ownership="none">
+ <type name="Object" c:type="GstObject*"/>
+ </parameter>
+ <parameter name="first_property_name" transfer-ownership="none">
+ <type name="utf8" c:type="gchar*"/>
+ </parameter>
+ <parameter transfer-ownership="none">
+ <varargs>
+ </varargs>
+ </parameter>
+ </parameters>
+ </function>
+ <function name="child_proxy_set_property"
+ c:identifier="gst_child_proxy_set_property"
+ doc="Sets a single property using the GstChildProxy mechanism.">
+ <return-value transfer-ownership="none">
+ <type name="none" c:type="void"/>
+ </return-value>
+ <parameters>
+ <parameter name="object" transfer-ownership="none">
+ <type name="Object" c:type="GstObject*"/>
+ </parameter>
+ <parameter name="name" transfer-ownership="none">
+ <type name="utf8" c:type="gchar*"/>
+ </parameter>
+ <parameter name="value" transfer-ownership="none">
+ <type name="GObject.Value" c:type="GValue*"/>
+ </parameter>
+ </parameters>
+ </function>
+ <function name="class_signal_connect"
+ c:identifier="gst_class_signal_connect">
+ <return-value transfer-ownership="none">
+ <type name="uint" c:type="guint"/>
+ </return-value>
+ <parameters>
+ <parameter name="klass" transfer-ownership="none">
+ <type name="ObjectClass" c:type="GstObjectClass*"/>
+ </parameter>
+ <parameter name="name" transfer-ownership="none">
+ <type name="utf8" c:type="gchar*"/>
+ </parameter>
+ <parameter name="func" transfer-ownership="none">
+ <type name="any" c:type="gpointer"/>
+ </parameter>
+ <parameter name="func_data" transfer-ownership="none">
+ <type name="any" c:type="gpointer"/>
+ </parameter>
+ </parameters>
+ </function>
+ <function name="class_signal_emit_by_name"
+ c:identifier="gst_class_signal_emit_by_name"
+ doc="emits the named class signal.">
+ <return-value transfer-ownership="none">
+ <type name="none" c:type="void"/>
+ </return-value>
+ <parameters>
+ <parameter name="object" transfer-ownership="none">
+ <type name="Object" c:type="GstObject*"/>
+ </parameter>
+ <parameter name="name" transfer-ownership="none">
+ <type name="utf8" c:type="gchar*"/>
+ </parameter>
+ <parameter name="self" transfer-ownership="none">
+ <type name="libxml2.NodePtr" c:type="xmlNodePtr"/>
+ </parameter>
+ </parameters>
+ </function>
+ <function name="debug_add_log_function"
+ c:identifier="gst_debug_add_log_function"
+ doc="Adds the logging function to the list of logging functions.
+Be sure to use G_GNUC_NO_INSTRUMENT on that function, it is needed.">
+ <return-value transfer-ownership="none">
+ <type name="none" c:type="void"/>
+ </return-value>
+ <parameters>
+ <parameter name="func"
+ transfer-ownership="none"
+ scope="call"
+ closure="1">
+ <type name="LogFunction" c:type="GstLogFunction"/>
+ </parameter>
+ <parameter name="data" transfer-ownership="none">
+ <type name="any" c:type="gpointer"/>
+ </parameter>
+ </parameters>
+ </function>
+ <function name="debug_construct_term_color"
+ c:identifier="gst_debug_construct_term_color"
+ doc="Constructs a string that can be used for getting the desired color in color
+terminals.
+You need to free the string after use.">
+ <return-value transfer-ownership="full">
+ <type name="utf8" c:type="gchar*"/>
+ </return-value>
+ <parameters>
+ <parameter name="colorinfo" transfer-ownership="none">
+ <type name="uint" c:type="guint"/>
+ </parameter>
+ </parameters>
+ </function>
+ <function name="debug_construct_win_color"
+ c:identifier="gst_debug_construct_win_color"
+ doc="Constructs an integer that can be used for getting the desired color in
+windows' terminals (cmd.exe). As there is no mean to underline, we simply
+ignore this attribute.
+This function returns 0 on non-windows machines."
+ version="0.10.23">
+ <return-value transfer-ownership="none">
+ <type name="int" c:type="gint"/>
+ </return-value>
+ <parameters>
+ <parameter name="colorinfo" transfer-ownership="none">
+ <type name="uint" c:type="guint"/>
+ </parameter>
+ </parameters>
+ </function>
+ <function name="debug_get_all_categories"
+ c:identifier="gst_debug_get_all_categories"
+ doc="Returns a snapshot of a all categories that are currently in use . This list
+may change anytime.
+The caller has to free the list after use.">
+ <return-value transfer-ownership="full">
+ <type name="GLib.SList" c:type="GSList*"/>
+ </return-value>
+ </function>
+ <function name="debug_get_default_threshold"
+ c:identifier="gst_debug_get_default_threshold"
+ doc="Returns the default threshold that is used for new categories.">
+ <return-value transfer-ownership="full">
+ <type name="DebugLevel" c:type="GstDebugLevel"/>
+ </return-value>
+ </function>
+ <function name="debug_is_active"
+ c:identifier="gst_debug_is_active"
+ doc="Checks if debugging output is activated.">
+ <return-value transfer-ownership="none">
+ <type name="boolean" c:type="gboolean"/>
+ </return-value>
+ </function>
+ <function name="debug_is_colored"
+ c:identifier="gst_debug_is_colored"
+ doc="Checks if the debugging output should be colored.">
+ <return-value transfer-ownership="none">
+ <type name="boolean" c:type="gboolean"/>
+ </return-value>
+ </function>
+ <function name="debug_level_get_name"
+ c:identifier="gst_debug_level_get_name"
+ doc="Get the string representation of a debugging level">
+ <return-value transfer-ownership="none">
+ <type name="utf8" c:type="gchar*"/>
+ </return-value>
+ <parameters>
+ <parameter name="level" transfer-ownership="none">
+ <type name="DebugLevel" c:type="GstDebugLevel"/>
+ </parameter>
+ </parameters>
+ </function>
+ <function name="debug_log"
+ c:identifier="gst_debug_log"
+ doc="Logs the given message using the currently registered debugging handlers.">
+ <return-value transfer-ownership="none">
+ <type name="none" c:type="void"/>
+ </return-value>
+ <parameters>
+ <parameter name="category" transfer-ownership="none">
+ <type name="DebugCategory" c:type="GstDebugCategory*"/>
+ </parameter>
+ <parameter name="level" transfer-ownership="none">
+ <type name="DebugLevel" c:type="GstDebugLevel"/>
+ </parameter>
+ <parameter name="file" transfer-ownership="none">
+ <type name="utf8" c:type="gchar*"/>
+ </parameter>
+ <parameter name="function" transfer-ownership="none">
+ <type name="utf8" c:type="gchar*"/>
+ </parameter>
+ <parameter name="line" transfer-ownership="none">
+ <type name="int" c:type="gint"/>
+ </parameter>
+ <parameter name="object" transfer-ownership="none">
+ <type name="GObject.Object" c:type="GObject*"/>
+ </parameter>
+ <parameter name="format" transfer-ownership="none">
+ <type name="utf8" c:type="gchar*"/>
+ </parameter>
+ <parameter transfer-ownership="none">
+ <varargs>
+ </varargs>
+ </parameter>
+ </parameters>
+ </function>
+ <function name="debug_log_default"
+ c:identifier="gst_debug_log_default"
+ doc="The default logging handler used by GStreamer. Logging functions get called
+whenever a macro like GST_DEBUG or similar is used. This function outputs the
+message and additional info using the glib error handler.
+You can add other handlers by using gst_debug_add_log_function().
+And you can remove this handler by calling
+gst_debug_remove_log_function(gst_debug_log_default);">
+ <return-value transfer-ownership="none">
+ <type name="none" c:type="void"/>
+ </return-value>
+ <parameters>
+ <parameter name="category" transfer-ownership="none">
+ <type name="DebugCategory" c:type="GstDebugCategory*"/>
+ </parameter>
+ <parameter name="level" transfer-ownership="none">
+ <type name="DebugLevel" c:type="GstDebugLevel"/>
+ </parameter>
+ <parameter name="file" transfer-ownership="none">
+ <type name="utf8" c:type="gchar*"/>
+ </parameter>
+ <parameter name="function" transfer-ownership="none">
+ <type name="utf8" c:type="gchar*"/>
+ </parameter>
+ <parameter name="line" transfer-ownership="none">
+ <type name="int" c:type="gint"/>
+ </parameter>
+ <parameter name="object" transfer-ownership="none">
+ <type name="GObject.Object" c:type="GObject*"/>
+ </parameter>
+ <parameter name="message" transfer-ownership="none">
+ <type name="DebugMessage" c:type="GstDebugMessage*"/>
+ </parameter>
+ <parameter name="unused" transfer-ownership="none">
+ <type name="any" c:type="gpointer"/>
+ </parameter>
+ </parameters>
+ </function>
+ <function name="debug_print_stack_trace"
+ c:identifier="gst_debug_print_stack_trace"
+ doc="If GST_ENABLE_FUNC_INSTRUMENTATION is defined a stacktrace is available for
+gstreamer code, which can be printed with this function.">
+ <return-value transfer-ownership="none">
+ <type name="none" c:type="void"/>
+ </return-value>
+ </function>
+ <function name="debug_remove_log_function"
+ c:identifier="gst_debug_remove_log_function"
+ doc="Removes all registered instances of the given logging functions.">
+ <return-value transfer-ownership="none">
+ <type name="uint" c:type="guint"/>
+ </return-value>
+ <parameters>
+ <parameter name="func" transfer-ownership="none" scope="call">
+ <type name="LogFunction" c:type="GstLogFunction"/>
+ </parameter>
+ </parameters>
+ </function>
+ <function name="debug_remove_log_function_by_data"
+ c:identifier="gst_debug_remove_log_function_by_data"
+ doc="Removes all registered instances of log functions with the given user data.">
+ <return-value transfer-ownership="none">
+ <type name="uint" c:type="guint"/>
+ </return-value>
+ <parameters>
+ <parameter name="data" transfer-ownership="none">
+ <type name="any" c:type="gpointer"/>
+ </parameter>
+ </parameters>
+ </function>
+ <function name="debug_set_active"
+ c:identifier="gst_debug_set_active"
+ doc="If activated, debugging messages are sent to the debugging
+handlers.
+It makes sense to deactivate it for speed issues.
+<note><para>This function is not threadsafe. It makes sense to only call it
+during initialization.</para></note>">
+ <return-value transfer-ownership="none">
+ <type name="none" c:type="void"/>
+ </return-value>
+ <parameters>
+ <parameter name="active" transfer-ownership="none">
+ <type name="boolean" c:type="gboolean"/>
+ </parameter>
+ </parameters>
+ </function>
+ <function name="debug_set_colored"
+ c:identifier="gst_debug_set_colored"
+ doc="Sets or unsets the use of coloured debugging output.">
+ <return-value transfer-ownership="none">
+ <type name="none" c:type="void"/>
+ </return-value>
+ <parameters>
+ <parameter name="colored" transfer-ownership="none">
+ <type name="boolean" c:type="gboolean"/>
+ </parameter>
+ </parameters>
+ </function>
+ <function name="debug_set_default_threshold"
+ c:identifier="gst_debug_set_default_threshold"
+ doc="Sets the default threshold to the given level and updates all categories to
+use this threshold.">
+ <return-value transfer-ownership="none">
+ <type name="none" c:type="void"/>
+ </return-value>
+ <parameters>
+ <parameter name="level" transfer-ownership="none">
+ <type name="DebugLevel" c:type="GstDebugLevel"/>
+ </parameter>
+ </parameters>
+ </function>
+ <function name="debug_set_threshold_for_name"
+ c:identifier="gst_debug_set_threshold_for_name"
+ doc="Sets all categories which match the given glob style pattern to the given
+level.">
+ <return-value transfer-ownership="none">
+ <type name="none" c:type="void"/>
+ </return-value>
+ <parameters>
+ <parameter name="name" transfer-ownership="none">
+ <type name="utf8" c:type="gchar*"/>
+ </parameter>
+ <parameter name="level" transfer-ownership="none">
+ <type name="DebugLevel" c:type="GstDebugLevel"/>
+ </parameter>
+ </parameters>
+ </function>
+ <function name="debug_unset_threshold_for_name"
+ c:identifier="gst_debug_unset_threshold_for_name"
+ doc="Resets all categories with the given name back to the default level.">
+ <return-value transfer-ownership="none">
+ <type name="none" c:type="void"/>
+ </return-value>
+ <parameters>
+ <parameter name="name" transfer-ownership="none">
+ <type name="utf8" c:type="gchar*"/>
+ </parameter>
+ </parameters>
+ </function>
+ <function name="default_registry_check_feature_version"
+ c:identifier="gst_default_registry_check_feature_version"
+ doc="Checks whether a plugin feature by the given name exists in the
+default registry and whether its version is at least the
+version required.
+the same as the required version or newer, and #FALSE otherwise.">
+ <return-value transfer-ownership="none">
+ <type name="boolean" c:type="gboolean"/>
+ </return-value>
+ <parameters>
+ <parameter name="feature_name" transfer-ownership="none">
+ <type name="utf8" c:type="gchar*"/>
+ </parameter>
+ <parameter name="min_major" transfer-ownership="none">
+ <type name="uint" c:type="guint"/>
+ </parameter>
+ <parameter name="min_minor" transfer-ownership="none">
+ <type name="uint" c:type="guint"/>
+ </parameter>
+ <parameter name="min_micro" transfer-ownership="none">
+ <type name="uint" c:type="guint"/>
+ </parameter>
+ </parameters>
+ </function>
+ <function name="deinit"
+ c:identifier="gst_deinit"
+ doc="Clean up any resources created by GStreamer in gst_init().
+It is normally not needed to call this function in a normal application
+as the resources will automatically be freed when the program terminates.
+This function is therefore mostly used by testsuites and other memory
+profiling tools.
+After this call GStreamer (including this method) should not be used anymore.">
+ <return-value transfer-ownership="none">
+ <type name="none" c:type="void"/>
+ </return-value>
+ </function>
+ <function name="error_get_message"
+ c:identifier="gst_error_get_message"
+ doc="Get a string describing the error message in the current locale.
+current locale.">
+ <return-value transfer-ownership="full">
+ <type name="utf8" c:type="gchar*"/>
+ </return-value>
+ <parameters>
+ <parameter name="domain" transfer-ownership="none">
+ <type name="GLib.Quark" c:type="GQuark"/>
+ </parameter>
+ <parameter name="code" transfer-ownership="none">
+ <type name="int" c:type="gint"/>
+ </parameter>
+ </parameters>
+ </function>
+ <function name="event_type_get_flags"
+ c:identifier="gst_event_type_get_flags"
+ doc="Gets the #GstEventTypeFlags associated with @type.">
+ <return-value transfer-ownership="full">
+ <type name="EventTypeFlags" c:type="GstEventTypeFlags"/>
+ </return-value>
+ <parameters>
+ <parameter name="type" transfer-ownership="none">
+ <type name="EventType" c:type="GstEventType"/>
+ </parameter>
+ </parameters>
+ </function>
+ <function name="event_type_get_name"
+ c:identifier="gst_event_type_get_name"
+ doc="Get a printable name for the given event type. Do not modify or free.">
+ <return-value transfer-ownership="none">
+ <type name="utf8" c:type="gchar*"/>
+ </return-value>
+ <parameters>
+ <parameter name="type" transfer-ownership="none">
+ <type name="EventType" c:type="GstEventType"/>
+ </parameter>
+ </parameters>
+ </function>
+ <function name="event_type_to_quark"
+ c:identifier="gst_event_type_to_quark"
+ doc="Get the unique quark for the given event type.">
+ <return-value transfer-ownership="full">
+ <type name="GLib.Quark" c:type="GQuark"/>
+ </return-value>
+ <parameters>
+ <parameter name="type" transfer-ownership="none">
+ <type name="EventType" c:type="GstEventType"/>
+ </parameter>
+ </parameters>
+ </function>
+ <function name="filter_run"
+ c:identifier="gst_filter_run"
+ doc="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
+results.
+(the data contained in the list is a flat copy and does need to be
+unreferenced or freed).">
+ <return-value transfer-ownership="full" doc="when no longer needed">
+ <type name="GLib.List" c:type="GList*"/>
+ </return-value>
+ <parameters>
+ <parameter name="list" transfer-ownership="none">
+ <type name="GLib.List" c:type="GList*"/>
+ </parameter>
+ <parameter name="func" transfer-ownership="none" scope="call">
+ <type name="FilterFunc" c:type="GstFilterFunc"/>
+ </parameter>
+ <parameter name="first" transfer-ownership="none">
+ <type name="boolean" c:type="gboolean"/>
+ </parameter>
+ <parameter name="user_data" transfer-ownership="none">
+ <type name="any" c:type="gpointer"/>
+ </parameter>
+ </parameters>
+ </function>
+ <function name="flow_get_name"
+ c:identifier="gst_flow_get_name"
+ doc="Gets a string representing the given flow return.">
+ <return-value transfer-ownership="none">
+ <type name="utf8" c:type="gchar*"/>
+ </return-value>
+ <parameters>
+ <parameter name="ret" transfer-ownership="none">
+ <type name="FlowReturn" c:type="GstFlowReturn"/>
+ </parameter>
+ </parameters>
+ </function>
+ <function name="flow_to_quark"
+ c:identifier="gst_flow_to_quark"
+ doc="Get the unique quark for the given GstFlowReturn.
+invalid return was specified.">
+ <return-value transfer-ownership="full">
+ <type name="GLib.Quark" c:type="GQuark"/>
+ </return-value>
+ <parameters>
+ <parameter name="ret" transfer-ownership="none">
+ <type name="FlowReturn" c:type="GstFlowReturn"/>
+ </parameter>
+ </parameters>
+ </function>
+ <function name="format_get_by_nick"
+ c:identifier="gst_format_get_by_nick"
+ doc="Return the format registered with the given nick.
+if the format was not registered.">
+ <return-value transfer-ownership="full">
+ <type name="Format" c:type="GstFormat"/>
+ </return-value>
+ <parameters>
+ <parameter name="nick" transfer-ownership="none">
+ <type name="utf8" c:type="gchar*"/>
+ </parameter>
+ </parameters>
+ </function>
+ <function name="format_get_details"
+ c:identifier="gst_format_get_details"
+ doc="Get details about the given format.
+MT safe.">
+ <return-value transfer-ownership="none">
+ <type name="FormatDefinition" c:type="GstFormatDefinition*"/>
+ </return-value>
+ <parameters>
+ <parameter name="format" transfer-ownership="none">
+ <type name="Format" c:type="GstFormat"/>
+ </parameter>
+ </parameters>
+ </function>
+ <function name="format_get_name"
+ c:identifier="gst_format_get_name"
+ doc="Get a printable name for the given format. Do not modify or free.
+the format is unknown.">
+ <return-value transfer-ownership="none">
+ <type name="utf8" c:type="gchar*"/>
+ </return-value>
+ <parameters>
+ <parameter name="format" transfer-ownership="none">
+ <type name="Format" c:type="GstFormat"/>
+ </parameter>
+ </parameters>
+ </function>
+ <function name="format_iterate_definitions"
+ c:identifier="gst_format_iterate_definitions"
+ doc="Iterate all the registered formats. The format definition is read
+only.">
+ <return-value transfer-ownership="full">
+ <type name="Iterator" c:type="GstIterator*"/>
+ </return-value>
+ </function>
+ <function name="format_register"
+ c:identifier="gst_format_register"
+ doc="Create a new GstFormat based on the nick or return an
+already registered format with that nick.
+with the same nick.
+MT safe.">
+ <return-value transfer-ownership="full">
+ <type name="Format" c:type="GstFormat"/>
+ </return-value>
+ <parameters>
+ <parameter name="nick" transfer-ownership="none">
+ <type name="utf8" c:type="gchar*"/>
+ </parameter>
+ <parameter name="description" transfer-ownership="none">
+ <type name="utf8" c:type="gchar*"/>
+ </parameter>
+ </parameters>
+ </function>
+ <function name="format_to_quark"
+ c:identifier="gst_format_to_quark"
+ doc="Get the unique quark for the given format.
+is unknown.">
+ <return-value transfer-ownership="full">
+ <type name="GLib.Quark" c:type="GQuark"/>
+ </return-value>
+ <parameters>
+ <parameter name="format" transfer-ownership="none">
+ <type name="Format" c:type="GstFormat"/>
+ </parameter>
+ </parameters>
+ </function>
+ <function name="formats_contains"
+ c:identifier="gst_formats_contains"
+ doc="See if the given format is inside the format array.">
+ <return-value transfer-ownership="none">
+ <type name="boolean" c:type="gboolean"/>
+ </return-value>
+ <parameters>
+ <parameter name="formats" transfer-ownership="none">
+ <type name="Format" c:type="GstFormat*"/>
+ </parameter>
+ <parameter name="format" transfer-ownership="none">
+ <type name="Format" c:type="GstFormat"/>
+ </parameter>
+ </parameters>
+ </function>
+ <function name="implements_interface_cast"
+ c:identifier="gst_implements_interface_cast"
+ doc="cast a given object to an interface type, and check whether this
+interface is supported for this specific instance.">
+ <return-value transfer-ownership="none">
+ <type name="any" c:type="gpointer"/>
+ </return-value>
+ <parameters>
+ <parameter name="from"
+ transfer-ownership="none"
+ doc="from which to cast to the interface">
+ <type name="any" c:type="gpointer"/>
+ </parameter>
+ <parameter name="type" transfer-ownership="none">
+ <type name="GType" c:type="GType"/>
+ </parameter>
+ </parameters>
+ </function>
+ <function name="implements_interface_check"
+ c:identifier="gst_implements_interface_check"
+ doc="check a given object for an interface implementation, and check
+whether this interface is supported for this specific instance.">
+ <return-value transfer-ownership="none">
+ <type name="boolean" c:type="gboolean"/>
+ </return-value>
+ <parameters>
+ <parameter name="from"
+ transfer-ownership="none"
+ doc="from which to check from for the interface">
+ <type name="any" c:type="gpointer"/>
+ </parameter>
+ <parameter name="type" transfer-ownership="none">
+ <type name="GType" c:type="GType"/>
+ </parameter>
+ </parameters>
+ </function>
+ <function name="init"
+ c:identifier="gst_init"
+ doc="Initializes the GStreamer library, setting up internal path lists,
+registering built-in elements, and loading standard plugins.
+Unless the plugin registry is disabled at compile time, the registry will be
+loaded. By default this will also check if the registry cache needs to be
+updated and rescan all plugins if needed. See gst_update_registry() for
+details and section
+<link linkend="gst-running">Running GStreamer Applications</link>
+for how to disable automatic registry updates.
+This function should be called before calling any other GLib functions. If
+this is not an option, your program must initialise the GLib thread system
+using g_thread_init() before any other GLib functions are called.
+<note><para>
+This function will terminate your program if it was unable to initialize
+GStreamer for some reason. If you want your program to fall back,
+use gst_init_check() instead.
+</para></note>
+functions in other glib-style libraries, such as gtk_init(). In
+particular, unknown command line options cause this function to
+abort program execution.">
+ <return-value transfer-ownership="none">
+ <type name="none" c:type="void"/>
+ </return-value>
+ <parameters>
+ <parameter name="argc"
+ direction="inout"
+ transfer-ownership="full"
+ doc="pointer to application's argc">
+ <type name="int" c:type="int*"/>
+ </parameter>
+ <parameter name="argv"
+ direction="inout"
+ transfer-ownership="full"
+ allow-none="1"
+ doc="pointer to application's argv">
+ <array length="0" c:type="char**">
+ <type name="utf8"/>
+ </array>
+ </parameter>
+ </parameters>
+ </function>
+ <function name="init_check"
+ c:identifier="gst_init_check"
+ doc="Initializes the GStreamer library, setting up internal path lists,
+registering built-in elements, and loading standard plugins.
+This function will return %FALSE if GStreamer could not be initialized
+for some reason. If you want your program to fail fatally,
+use gst_init() instead.
+This function should be called before calling any other GLib functions. If
+this is not an option, your program must initialise the GLib thread system
+using g_thread_init() before any other GLib functions are called."
+ throws="1">
+ <return-value transfer-ownership="none">
+ <type name="boolean" c:type="gboolean"/>
+ </return-value>
+ <parameters>
+ <parameter name="argc"
+ direction="inout"
+ transfer-ownership="full"
+ doc="pointer to application's argc">
+ <type name="int" c:type="int*"/>
+ </parameter>
+ <parameter name="argv"
+ direction="inout"
+ transfer-ownership="full"
+ allow-none="1"
+ doc="pointer to application's argv">
+ <array length="0" c:type="char**">
+ <type name="utf8"/>
+ </array>
+ </parameter>
+ </parameters>
+ </function>
+ <function name="init_get_option_group"
+ c:identifier="gst_init_get_option_group"
+ doc="Returns a #GOptionGroup with GStreamer's argument specifications. The
+group is set up to use standard GOption callbacks, so when using this
+group in combination with GOption parsing methods, all argument parsing
+and initialization is automated.
+This function is useful if you want to integrate GStreamer with other
+libraries that use GOption (see g_option_context_add_group() ).
+If you use this function, you should make sure you initialise the GLib
+threading system as one of the very first things in your program
+(see the example at the beginning of this section).">
+ <return-value transfer-ownership="full">
+ <type name="GLib.OptionGroup" c:type="GOptionGroup*"/>
+ </return-value>
+ </function>
+ <function name="is_tag_list"
+ c:identifier="gst_is_tag_list"
+ doc="Checks if the given pointer is a taglist.">
+ <return-value transfer-ownership="none">
+ <type name="boolean" c:type="gboolean"/>
+ </return-value>
+ <parameters>
+ <parameter name="p" transfer-ownership="none">
+ <type name="any" c:type="gconstpointer"/>
+ </parameter>
+ </parameters>
+ </function>
+ <function name="message_type_get_name"
+ c:identifier="gst_message_type_get_name"
+ doc="Get a printable name for the given message type. Do not modify or free.">
+ <return-value transfer-ownership="none">
+ <type name="utf8" c:type="gchar*"/>
+ </return-value>
+ <parameters>
+ <parameter name="type" transfer-ownership="none">
+ <type name="MessageType" c:type="GstMessageType"/>
+ </parameter>
+ </parameters>
+ </function>
+ <function name="message_type_to_quark"
+ c:identifier="gst_message_type_to_quark"
+ doc="Get the unique quark for the given message type.">
+ <return-value transfer-ownership="full">
+ <type name="GLib.Quark" c:type="GQuark"/>
+ </return-value>
+ <parameters>
+ <parameter name="type" transfer-ownership="none">
+ <type name="MessageType" c:type="GstMessageType"/>
+ </parameter>
+ </parameters>
+ </function>
+ <function name="param_spec_fraction"
+ c:identifier="gst_param_spec_fraction"
+ doc="This function creates a fraction GParamSpec for use by objects/elements
+that want to expose properties of fraction type. This function is typically
+used in connection with g_object_class_install_property() in a GObjects's
+instance_init function."
+ version="0.10.14">
+ <return-value transfer-ownership="full">
+ <type name="GObject.ParamSpec" c:type="GParamSpec*"/>
+ </return-value>
+ <parameters>
+ <parameter name="name" transfer-ownership="none">
+ <type name="utf8" c:type="gchar*"/>
+ </parameter>
+ <parameter name="nick" transfer-ownership="none">
+ <type name="utf8" c:type="gchar*"/>
+ </parameter>
+ <parameter name="blurb" transfer-ownership="none">
+ <type name="utf8" c:type="gchar*"/>
+ </parameter>
+ <parameter name="min_num" transfer-ownership="none">
+ <type name="int" c:type="gint"/>
+ </parameter>
+ <parameter name="min_denom" transfer-ownership="none">
+ <type name="int" c:type="gint"/>
+ </parameter>
+ <parameter name="max_num" transfer-ownership="none">
+ <type name="int" c:type="gint"/>
+ </parameter>
+ <parameter name="max_denom" transfer-ownership="none">
+ <type name="int" c:type="gint"/>
+ </parameter>
+ <parameter name="default_num" transfer-ownership="none">
+ <type name="int" c:type="gint"/>
+ </parameter>
+ <parameter name="default_denom" transfer-ownership="none">
+ <type name="int" c:type="gint"/>
+ </parameter>
+ <parameter name="flags" transfer-ownership="none">
+ <type name="GObject.ParamFlags" c:type="GParamFlags"/>
+ </parameter>
+ </parameters>
+ </function>
+ <function name="param_spec_mini_object"
+ c:identifier="gst_param_spec_mini_object"
+ doc="Creates a new #GParamSpec instance that hold #GstMiniObject references.">
+ <return-value transfer-ownership="full">
+ <type name="GObject.ParamSpec" c:type="GParamSpec*"/>
+ </return-value>
+ <parameters>
+ <parameter name="name" transfer-ownership="none">
+ <type name="utf8" c:type="char*"/>
+ </parameter>
+ <parameter name="nick" transfer-ownership="none">
+ <type name="utf8" c:type="char*"/>
+ </parameter>
+ <parameter name="blurb" transfer-ownership="none">
+ <type name="utf8" c:type="char*"/>
+ </parameter>
+ <parameter name="object_type" transfer-ownership="none">
+ <type name="GType" c:type="GType"/>
+ </parameter>
+ <parameter name="flags" transfer-ownership="none">
+ <type name="GObject.ParamFlags" c:type="GParamFlags"/>
+ </parameter>
+ </parameters>
+ </function>
+ <function name="parse_bin_from_description"
+ c:identifier="gst_parse_bin_from_description"
+ doc="for unlinked source or sink pads within the bin
+This is a convenience wrapper around gst_parse_launch() to create a
+#GstBin from a gst-launch-style pipeline description. See
+gst_parse_launch() and the gst-launch man page for details about the
+syntax. Ghost pads on the bin for unlinked source or sink pads
+within the bin can automatically be created (but only a maximum of
+one ghost pad for each direction will be created; if you expect
+multiple unlinked source pads or multiple unlinked sink pads
+and want them all ghosted, you will have to create the ghost pads
+yourself)."
+ version="0.10.3"
+ throws="1">
+ <return-value transfer-ownership="full">
+ <type name="Element" c:type="GstElement*"/>
+ </return-value>
+ <parameters>
+ <parameter name="bin_description" transfer-ownership="none">
+ <type name="utf8" c:type="gchar*"/>
+ </parameter>
+ <parameter name="ghost_unlinked_pads" transfer-ownership="none">
+ <type name="boolean" c:type="gboolean"/>
+ </parameter>
+ </parameters>
+ </function>
+ <function name="parse_bin_from_description_full"
+ c:identifier="gst_parse_bin_from_description_full"
+ doc="for unlinked source or sink pads within the bin
+This is a convenience wrapper around gst_parse_launch() to create a
+#GstBin from a gst-launch-style pipeline description. See
+gst_parse_launch() and the gst-launch man page for details about the
+syntax. Ghost pads on the bin for unlinked source or sink pads
+within the bin can automatically be created (but only a maximum of
+one ghost pad for each direction will be created; if you expect
+multiple unlinked source pads or multiple unlinked sink pads
+and want them all ghosted, you will have to create the ghost pads
+yourself)."
+ version="0.10.20"
+ throws="1">
+ <return-value transfer-ownership="full">
+ <type name="Element" c:type="GstElement*"/>
+ </return-value>
+ <parameters>
+ <parameter name="bin_description" transfer-ownership="none">
+ <type name="utf8" c:type="gchar*"/>
+ </parameter>
+ <parameter name="ghost_unlinked_pads" transfer-ownership="none">
+ <type name="boolean" c:type="gboolean"/>
+ </parameter>
+ <parameter name="context" transfer-ownership="none" doc="or %NULL">
+ <type name="ParseContext" c:type="GstParseContext*"/>
+ </parameter>
+ <parameter name="flags" transfer-ownership="none">
+ <type name="ParseFlags" c:type="GstParseFlags"/>
+ </parameter>
+ </parameters>
+ </function>
+ <function name="parse_launch"
+ c:identifier="gst_parse_launch"
+ doc="Create a new pipeline based on command line syntax.
+Please note that you might get a return value that is not %NULL even though
+the @error is set. In this case there was a recoverable parsing error and you
+can try to play the pipeline.
+element is specified by the @pipeline_description, all elements are put into
+a #GstPipeline, which than is returned."
+ throws="1">
+ <return-value transfer-ownership="full">
+ <type name="Element" c:type="GstElement*"/>
+ </return-value>
+ <parameters>
+ <parameter name="pipeline_description" transfer-ownership="none">
+ <type name="utf8" c:type="gchar*"/>
+ </parameter>
+ </parameters>
+ </function>
+ <function name="parse_launch_full"
+ c:identifier="gst_parse_launch_full"
+ doc="Create a new pipeline based on command line syntax.
+Please note that you might get a return value that is not %NULL even though
+the @error is set. In this case there was a recoverable parsing error and you
+can try to play the pipeline.
+element is specified by the @pipeline_description, all elements are put into
+a #GstPipeline, which then is returned."
+ version="0.10.20"
+ throws="1">
+ <return-value transfer-ownership="full">
+ <type name="Element" c:type="GstElement*"/>
+ </return-value>
+ <parameters>
+ <parameter name="pipeline_description" transfer-ownership="none">
+ <type name="utf8" c:type="gchar*"/>
+ </parameter>
+ <parameter name="context" transfer-ownership="none" doc="or %NULL">
+ <type name="ParseContext" c:type="GstParseContext*"/>
+ </parameter>
+ <parameter name="flags" transfer-ownership="none">
+ <type name="ParseFlags" c:type="GstParseFlags"/>
+ </parameter>
+ </parameters>
+ </function>
+ <function name="parse_launchv"
+ c:identifier="gst_parse_launchv"
+ doc="Create a new element based on command line syntax.
+An error does not mean that the pipeline could not be constructed."
+ throws="1">
+ <return-value transfer-ownership="full">
+ <type name="Element" c:type="GstElement*"/>
+ </return-value>
+ <parameters>
+ <parameter name="argv" transfer-ownership="none">
+ <array c:type="gchar**">
+ <type name="utf8"/>
+ </array>
+ </parameter>
+ </parameters>
+ </function>
+ <function name="parse_launchv_full"
+ c:identifier="gst_parse_launchv_full"
+ doc="Create a new element based on command line syntax.
+An error does not mean that the pipeline could not be constructed.
+partially-constructed bin or element will be returned and @error will be set
+(unless you passed #GST_PARSE_FLAG_FATAL_ERRORS in @flags, then %NULL will
+always be returned on failure)"
+ version="0.10.20"
+ throws="1">
+ <return-value transfer-ownership="full">
+ <type name="Element" c:type="GstElement*"/>
+ </return-value>
+ <parameters>
+ <parameter name="argv" transfer-ownership="none">
+ <array c:type="gchar**">
+ <type name="utf8"/>
+ </array>
+ </parameter>
+ <parameter name="context" transfer-ownership="none" doc="or %NULL">
+ <type name="ParseContext" c:type="GstParseContext*"/>
+ </parameter>
+ <parameter name="flags" transfer-ownership="none">
+ <type name="ParseFlags" c:type="GstParseFlags"/>
+ </parameter>
+ </parameters>
+ </function>
+ <function name="print_element_args"
+ c:identifier="gst_print_element_args"
+ doc="Print the element argument in a human readable format in the given
+GString.">
+ <return-value transfer-ownership="none">
+ <type name="none" c:type="void"/>
+ </return-value>
+ <parameters>
+ <parameter name="buf" transfer-ownership="none">
+ <type name="GLib.String" c:type="GString*"/>
+ </parameter>
+ <parameter name="indent" transfer-ownership="none">
+ <type name="int" c:type="gint"/>
+ </parameter>
+ <parameter name="element" transfer-ownership="none">
+ <type name="Element" c:type="GstElement*"/>
+ </parameter>
+ </parameters>
+ </function>
+ <function name="print_pad_caps"
+ c:identifier="gst_print_pad_caps"
+ doc="Write the pad capabilities in a human readable format into
+the given GString.">
+ <return-value transfer-ownership="none">
+ <type name="none" c:type="void"/>
+ </return-value>
+ <parameters>
+ <parameter name="buf" transfer-ownership="none">
+ <type name="GLib.String" c:type="GString*"/>
+ </parameter>
+ <parameter name="indent" transfer-ownership="none">
+ <type name="int" c:type="gint"/>
+ </parameter>
+ <parameter name="pad" transfer-ownership="none">
+ <type name="Pad" c:type="GstPad*"/>
+ </parameter>
+ </parameters>
+ </function>
+ <function name="query_type_get_by_nick"
+ c:identifier="gst_query_type_get_by_nick"
+ doc="Get the query type registered with @nick.
+if the query was not registered.">
+ <return-value transfer-ownership="full">
+ <type name="QueryType" c:type="GstQueryType"/>
+ </return-value>
+ <parameters>
+ <parameter name="nick" transfer-ownership="none">
+ <type name="utf8" c:type="gchar*"/>
+ </parameter>
+ </parameters>
+ </function>
+ <function name="query_type_get_details"
+ c:identifier="gst_query_type_get_details"
+ doc="Get details about the given #GstQueryType.">
+ <return-value transfer-ownership="none">
+ <type name="QueryTypeDefinition" c:type="GstQueryTypeDefinition*"/>
+ </return-value>
+ <parameters>
+ <parameter name="type" transfer-ownership="none">
+ <type name="QueryType" c:type="GstQueryType"/>
+ </parameter>
+ </parameters>
+ </function>
+ <function name="query_type_get_name"
+ c:identifier="gst_query_type_get_name"
+ doc="Get a printable name for the given query type. Do not modify or free.">
+ <return-value transfer-ownership="none">
+ <type name="utf8" c:type="gchar*"/>
+ </return-value>
+ <parameters>
+ <parameter name="query" transfer-ownership="none">
+ <type name="QueryType" c:type="GstQueryType"/>
+ </parameter>
+ </parameters>
+ </function>
+ <function name="query_type_iterate_definitions"
+ c:identifier="gst_query_type_iterate_definitions"
+ doc="Get a #GstIterator of all the registered query types. The definitions
+iterated over are read only.">
+ <return-value transfer-ownership="full">
+ <type name="Iterator" c:type="GstIterator*"/>
+ </return-value>
+ </function>
+ <function name="query_type_register"
+ c:identifier="gst_query_type_register"
+ doc="Create a new GstQueryType based on the nick or return an
+already registered query with that nick
+with the same nick.">
+ <return-value transfer-ownership="full">
+ <type name="QueryType" c:type="GstQueryType"/>
+ </return-value>
+ <parameters>
+ <parameter name="nick" transfer-ownership="none">
+ <type name="utf8" c:type="gchar*"/>
+ </parameter>
+ <parameter name="description" transfer-ownership="none">
+ <type name="utf8" c:type="gchar*"/>
+ </parameter>
+ </parameters>
+ </function>
+ <function name="query_type_to_quark"
+ c:identifier="gst_query_type_to_quark"
+ doc="Get the unique quark for the given query type.">
+ <return-value transfer-ownership="full">
+ <type name="GLib.Quark" c:type="GQuark"/>
+ </return-value>
+ <parameters>
+ <parameter name="query" transfer-ownership="none">
+ <type name="QueryType" c:type="GstQueryType"/>
+ </parameter>
+ </parameters>
+ </function>
+ <function name="query_types_contains"
+ c:identifier="gst_query_types_contains"
+ doc="See if the given #GstQueryType is inside the @types query types array.">
+ <return-value transfer-ownership="none">
+ <type name="boolean" c:type="gboolean"/>
+ </return-value>
+ <parameters>
+ <parameter name="types" transfer-ownership="none">
+ <type name="QueryType" c:type="GstQueryType*"/>
+ </parameter>
+ <parameter name="type" transfer-ownership="none">
+ <type name="QueryType" c:type="GstQueryType"/>
+ </parameter>
+ </parameters>
+ </function>
+ <function name="segtrap_is_enabled"
+ c:identifier="gst_segtrap_is_enabled"
+ doc="Some functions in the GStreamer core might install a custom SIGSEGV handler
+to better catch and report errors to the application. Currently this feature
+is enabled by default when loading plugins.
+Applications might want to disable this behaviour with the
+gst_segtrap_set_enabled() function. This is typically done if the application
+wants to install its own handler without GStreamer interfering."
+ version="0.10.10">
+ <return-value transfer-ownership="none">
+ <type name="boolean" c:type="gboolean"/>
+ </return-value>
+ </function>
+ <function name="segtrap_set_enabled"
+ c:identifier="gst_segtrap_set_enabled"
+ doc="Applications might want to disable/enable the SIGSEGV handling of
+the GStreamer core. See gst_segtrap_is_enabled() for more information."
+ version="0.10.10">
+ <return-value transfer-ownership="none">
+ <type name="none" c:type="void"/>
+ </return-value>
+ <parameters>
+ <parameter name="enabled" transfer-ownership="none">
+ <type name="boolean" c:type="gboolean"/>
+ </parameter>
+ </parameters>
+ </function>
+ <function name="structure_empty_new"
+ c:identifier="gst_structure_empty_new"
+ doc="Creates a new, empty #GstStructure with the given @name.
+See gst_structure_set_name() for constraints on the @name parameter.">
+ <return-value transfer-ownership="full">
+ <type name="Structure" c:type="GstStructure*"/>
+ </return-value>
+ <parameters>
+ <parameter name="name" transfer-ownership="none">
+ <type name="utf8" c:type="gchar*"/>
+ </parameter>
+ </parameters>
+ </function>
+ <function name="structure_from_string"
+ c:identifier="gst_structure_from_string"
+ doc="Creates a #GstStructure from a string representation.
+If end is not NULL, a pointer to the place inside the given string
+where parsing ended will be returned.
+be parsed. Free with gst_structure_free() after use.">
+ <return-value transfer-ownership="full">
+ <type name="Structure" c:type="GstStructure*"/>
+ </return-value>
+ <parameters>
+ <parameter name="string" transfer-ownership="none">
+ <type name="utf8" c:type="gchar*"/>
+ </parameter>
+ <parameter name="end" transfer-ownership="none">
+ <array c:type="gchar**">
+ <type name="utf8"/>
+ </array>
+ </parameter>
+ </parameters>
+ </function>
+ <function name="structure_id_empty_new"
+ c:identifier="gst_structure_id_empty_new"
+ doc="Creates a new, empty #GstStructure with the given name as a GQuark.">
+ <return-value transfer-ownership="full">
+ <type name="Structure" c:type="GstStructure*"/>
+ </return-value>
+ <parameters>
+ <parameter name="quark" transfer-ownership="none">
+ <type name="GLib.Quark" c:type="GQuark"/>
+ </parameter>
+ </parameters>
+ </function>
+ <function name="structure_id_new"
+ c:identifier="gst_structure_id_new"
+ doc="Creates a new #GstStructure with the given name as a GQuark, followed by
+fieldname quark, GType, argument(s) "triplets" in the same format as
+gst_structure_id_set(). Basically a convenience wrapper around
+gst_structure_id_empty_new() and gst_structure_id_set().
+The last variable argument must be NULL (or 0)."
+ version="0.10.24">
+ <return-value transfer-ownership="full">
+ <type name="Structure" c:type="GstStructure*"/>
+ </return-value>
+ <parameters>
+ <parameter name="name_quark" transfer-ownership="none">
+ <type name="GLib.Quark" c:type="GQuark"/>
+ </parameter>
+ <parameter name="field_quark" transfer-ownership="none">
+ <type name="GLib.Quark" c:type="GQuark"/>
+ </parameter>
+ <parameter transfer-ownership="none">
+ <varargs>
+ </varargs>
+ </parameter>
+ </parameters>
+ </function>
+ <function name="tag_exists"
+ c:identifier="gst_tag_exists"
+ doc="Checks if the given type is already registered.">
+ <return-value transfer-ownership="none">
+ <type name="boolean" c:type="gboolean"/>
+ </return-value>
+ <parameters>
+ <parameter name="tag" transfer-ownership="none">
+ <type name="utf8" c:type="gchar*"/>
+ </parameter>
+ </parameters>
+ </function>
+ <function name="tag_get_description"
+ c:identifier="gst_tag_get_description"
+ doc="Returns the human-readable description of this tag, You must not change or
+free this string.">
+ <return-value transfer-ownership="none">
+ <type name="utf8" c:type="gchar*"/>
+ </return-value>
+ <parameters>
+ <parameter name="tag" transfer-ownership="none">
+ <type name="utf8" c:type="gchar*"/>
+ </parameter>
+ </parameters>
+ </function>
+ <function name="tag_get_flag"
+ c:identifier="gst_tag_get_flag"
+ doc="Gets the flag of @tag.">
+ <return-value transfer-ownership="full">
+ <type name="TagFlag" c:type="GstTagFlag"/>
+ </return-value>
+ <parameters>
+ <parameter name="tag" transfer-ownership="none">
+ <type name="utf8" c:type="gchar*"/>
+ </parameter>
+ </parameters>
+ </function>
+ <function name="tag_get_nick" c:identifier="gst_tag_get_nick">
+ <return-value transfer-ownership="none">
+ <type name="utf8" c:type="gchar*"/>
+ </return-value>
+ <parameters>
+ <parameter name="tag" transfer-ownership="none">
+ <type name="utf8" c:type="gchar*"/>
+ </parameter>
+ </parameters>
+ </function>
+ <function name="tag_get_type"
+ c:identifier="gst_tag_get_type"
+ doc="Gets the #GType used for this tag.">
+ <return-value transfer-ownership="none">
+ <type name="GType" c:type="GType"/>
+ </return-value>
+ <parameters>
+ <parameter name="tag" transfer-ownership="none">
+ <type name="utf8" c:type="gchar*"/>
+ </parameter>
+ </parameters>
+ </function>
+ <function name="tag_is_fixed"
+ c:identifier="gst_tag_is_fixed"
+ doc="Checks if the given tag is fixed. A fixed tag can only contain one value.
+Unfixed tags can contain lists of values.">
+ <return-value transfer-ownership="none">
+ <type name="boolean" c:type="gboolean"/>
+ </return-value>
+ <parameters>
+ <parameter name="tag" transfer-ownership="none">
+ <type name="utf8" c:type="gchar*"/>
+ </parameter>
+ </parameters>
+ </function>
+ <function name="tag_list_copy_value"
+ c:identifier="gst_tag_list_copy_value"
+ doc="Copies the contents for the given tag into the value,
+merging multiple values into one if multiple values are associated
+with the tag.
+You must g_value_unset() the value after use.
+given list.">
+ <return-value transfer-ownership="none">
+ <type name="boolean" c:type="gboolean"/>
+ </return-value>
+ <parameters>
+ <parameter name="dest" transfer-ownership="none">
+ <type name="GObject.Value" c:type="GValue*"/>
+ </parameter>
+ <parameter name="list" transfer-ownership="none">
+ <type name="TagList" c:type="GstTagList*"/>
+ </parameter>
+ <parameter name="tag" transfer-ownership="none">
+ <type name="utf8" c:type="gchar*"/>
+ </parameter>
+ </parameters>
+ </function>
+ <function name="tag_merge_strings_with_comma"
+ c:identifier="gst_tag_merge_strings_with_comma"
+ doc="This is a convenience function for the func argument of gst_tag_register().
+It concatenates all given strings using a comma. The tag must be registered
+as a G_TYPE_STRING or this function will fail.">
+ <return-value transfer-ownership="none">
+ <type name="none" c:type="void"/>
+ </return-value>
+ <parameters>
+ <parameter name="dest" transfer-ownership="none">
+ <type name="GObject.Value" c:type="GValue*"/>
+ </parameter>
+ <parameter name="src" transfer-ownership="none">
+ <type name="GObject.Value" c:type="GValue*"/>
+ </parameter>
+ </parameters>
+ </function>
+ <function name="tag_merge_use_first"
+ c:identifier="gst_tag_merge_use_first"
+ doc="This is a convenience function for the func argument of gst_tag_register().
+It creates a copy of the first value from the list.">
+ <return-value transfer-ownership="none">
+ <type name="none" c:type="void"/>
+ </return-value>
+ <parameters>
+ <parameter name="dest" transfer-ownership="none">
+ <type name="GObject.Value" c:type="GValue*"/>
+ </parameter>
+ <parameter name="src" transfer-ownership="none">
+ <type name="GObject.Value" c:type="GValue*"/>
+ </parameter>
+ </parameters>
+ </function>
+ <function name="tag_register"
+ c:identifier="gst_tag_register"
+ doc="Registers a new tag type for the use with GStreamer's type system. If a type
+with that name is already registered, that one is used.
+The old registration may have used a different type however. So don't rely
+on your supplied values.
+that there can only be one single value for this tag in a tag list and
+any additional values will silenty be discarded when being added (unless
+#GST_TAG_MERGE_REPLACE, #GST_TAG_MERGE_REPLACE_ALL, or
+#GST_TAG_MERGE_PREPEND is used as merge mode, in which case the new
+value will replace the old one in the list).
+The merge function will be called from gst_tag_list_copy_value() when
+it is required that one or more values for a tag be condensed into
+one single value. This may happen from gst_tag_list_get_string(),
+gst_tag_list_get_int(), gst_tag_list_get_double() etc. What will happen
+exactly in that case depends on how the tag was registered and if a
+merge function was supplied and if so which one.
+gst_tag_merge_strings_with_comma().">
+ <return-value transfer-ownership="none">
+ <type name="none" c:type="void"/>
+ </return-value>
+ <parameters>
+ <parameter name="name" transfer-ownership="none">
+ <type name="utf8" c:type="gchar*"/>
+ </parameter>
+ <parameter name="flag" transfer-ownership="none">
+ <type name="TagFlag" c:type="GstTagFlag"/>
+ </parameter>
+ <parameter name="type" transfer-ownership="none">
+ <type name="GType" c:type="GType"/>
+ </parameter>
+ <parameter name="nick" transfer-ownership="none">
+ <type name="utf8" c:type="gchar*"/>
+ </parameter>
+ <parameter name="blurb" transfer-ownership="none">
+ <type name="utf8" c:type="gchar*"/>
+ </parameter>
+ <parameter name="func" transfer-ownership="none" scope="call">
+ <type name="TagMergeFunc" c:type="GstTagMergeFunc"/>
+ </parameter>
+ </parameters>
+ </function>
+ <function name="trace_read_tsc"
+ c:identifier="gst_trace_read_tsc"
+ doc="Read a platform independent timer value that can be used in
+benchmarks.">
+ <return-value transfer-ownership="none">
+ <type name="none" c:type="void"/>
+ </return-value>
+ <parameters>
+ <parameter name="dst" direction="out" transfer-ownership="full">
+ <type name="int64" c:type="gint64*"/>
+ </parameter>
+ </parameters>
+ </function>
+ <function name="type_find_register"
+ c:identifier="gst_type_find_register"
+ doc="passing NULL only works in GStreamer 0.10.16 and later)
+succeeds
+is unloaded.
+is unloaded.
+Registers a new typefind function to be used for typefinding. After
+registering this function will be available for typefinding.
+This function is typically called during an element's plugin initialization.">
+ <return-value transfer-ownership="none">
+ <type name="boolean" c:type="gboolean"/>
+ </return-value>
+ <parameters>
+ <parameter name="plugin" transfer-ownership="none">
+ <type name="Plugin" c:type="GstPlugin*"/>
+ </parameter>
+ <parameter name="name" transfer-ownership="none">
+ <type name="utf8" c:type="gchar*"/>
+ </parameter>
+ <parameter name="rank"
+ transfer-ownership="none"
+ doc="of this typefind function">
+ <type name="uint" c:type="guint"/>
+ </parameter>
+ <parameter name="func" transfer-ownership="none" scope="call">
+ <type name="TypeFindFunction" c:type="GstTypeFindFunction"/>
+ </parameter>
+ <parameter name="extensions" transfer-ownership="none">
+ <array c:type="gchar**">
+ <type name="utf8"/>
+ </array>
+ </parameter>
+ <parameter name="possible_caps" transfer-ownership="none">
+ <type name="Caps" c:type="GstCaps*"/>
+ </parameter>
+ <parameter name="data" transfer-ownership="none">
+ <type name="any" c:type="gpointer"/>
+ </parameter>
+ <parameter name="data_notify" transfer-ownership="none" scope="call">
+ <type name="GLib.DestroyNotify" c:type="GDestroyNotify"/>
+ </parameter>
+ </parameters>
+ </function>
+ <function name="type_register_static_full"
+ c:identifier="gst_type_register_static_full"
+ doc="derive from
+Location of the default vtable inititalization function for interface
+types. (optional)
+Location of the default vtable finalization function for interface types.
+(optional)
+instantiatable types only).
+memory for (0 indicates no caching). Ignored on recent GLib's.
+for instantiatable types only).
+GValues of this type (usually only useful for fundamental types).
+Helper function which constructs a #GTypeInfo structure and registers a
+GType, but which generates less linker overhead than a static const
+#GTypeInfo structure. For further details of the parameters, please see
+#GTypeInfo in the GLib documentation.
+Registers type_name as the name of a new static type derived from
+parent_type. The value of flags determines the nature (e.g. abstract or
+not) of the type. It works by filling a GTypeInfo struct and calling
+g_type_register_static()."
+ version="0.10.14">
+ <return-value transfer-ownership="none">
+ <type name="GType" c:type="GType"/>
+ </return-value>
+ <parameters>
+ <parameter name="parent_type" transfer-ownership="none">
+ <type name="GType" c:type="GType"/>
+ </parameter>
+ <parameter name="type_name" transfer-ownership="none">
+ <type name="utf8" c:type="gchar*"/>
+ </parameter>
+ <parameter name="class_size" transfer-ownership="none">
+ <type name="uint" c:type="guint"/>
+ </parameter>
+ <parameter name="base_init" transfer-ownership="none" scope="call">
+ <type name="GObject.BaseInitFunc" c:type="GBaseInitFunc"/>
+ </parameter>
+ <parameter name="base_finalize" transfer-ownership="none" scope="call">
+ <type name="GObject.BaseFinalizeFunc" c:type="GBaseFinalizeFunc"/>
+ </parameter>
+ <parameter name="class_init" transfer-ownership="none" scope="call">
+ <type name="GObject.ClassInitFunc" c:type="GClassInitFunc"/>
+ </parameter>
+ <parameter name="class_finalize"
+ transfer-ownership="none"
+ scope="call"
+ closure="7">
+ <type name="GObject.ClassFinalizeFunc" c:type="GClassFinalizeFunc"/>
+ </parameter>
+ <parameter name="class_data" transfer-ownership="none">
+ <type name="any" c:type="gconstpointer"/>
+ </parameter>
+ <parameter name="instance_size"
+ transfer-ownership="none"
+ doc="structure (required for">
+ <type name="uint" c:type="guint"/>
+ </parameter>
+ <parameter name="n_preallocs"
+ transfer-ownership="none"
+ doc="instances to reserve">
+ <type name="uint16" c:type="guint16"/>
+ </parameter>
+ <parameter name="instance_init" transfer-ownership="none" scope="call">
+ <type name="GObject.InstanceInitFunc" c:type="GInstanceInitFunc"/>
+ </parameter>
+ <parameter name="value_table" transfer-ownership="none">
+ <type name="GObject.TypeValueTable" c:type="GTypeValueTable*"/>
+ </parameter>
+ <parameter name="flags" transfer-ownership="none">
+ <type name="GObject.TypeFlags" c:type="GTypeFlags"/>
+ </parameter>
+ </parameters>
+ </function>
+ <function name="update_registry"
+ c:identifier="gst_update_registry"
+ doc="Forces GStreamer to re-scan its plugin paths and update the default
+plugin registry.
+Applications will almost never need to call this function, it is only
+useful if the application knows new plugins have been installed (or old
+ones removed) since the start of the application (or, to be precise, the
+first call to gst_init()) and the application wants to make use of any
+newly-installed plugins without restarting the application.
+Applications should assume that the registry update is neither atomic nor
+thread-safe and should therefore not have any dynamic pipelines running
+(including the playbin and decodebin elements) and should also not create
+any elements or access the GStreamer registry while the update is in
+progress.
+Note that this function may block for a significant amount of time.
+imply that there were changes), otherwise %FALSE."
+ version="0.10.12">
+ <return-value transfer-ownership="none">
+ <type name="boolean" c:type="gboolean"/>
+ </return-value>
+ </function>
+ <function name="uri_construct"
+ c:identifier="gst_uri_construct"
+ doc="Constructs a URI for a given valid protocol and location.
+is not valid, or the given location is NULL.">
+ <return-value transfer-ownership="full">
+ <type name="utf8" c:type="gchar*"/>
+ </return-value>
+ <parameters>
+ <parameter name="protocol" transfer-ownership="none">
+ <type name="utf8" c:type="gchar*"/>
+ </parameter>
+ <parameter name="location" transfer-ownership="none">
+ <type name="utf8" c:type="gchar*"/>
+ </parameter>
+ </parameters>
+ </function>
+ <function name="uri_get_location"
+ c:identifier="gst_uri_get_location"
+ doc="Extracts the location out of a given valid URI, ie. the protocol and "://"
+are stripped from the URI, which means that the location returned includes
+the hostname if one is specified. The returned string must be freed using
+g_free().
+the URI does not contain a location, an empty string is returned.">
+ <return-value transfer-ownership="full">
+ <type name="utf8" c:type="gchar*"/>
+ </return-value>
+ <parameters>
+ <parameter name="uri" transfer-ownership="none">
+ <type name="utf8" c:type="gchar*"/>
+ </parameter>
+ </parameters>
+ </function>
+ <function name="uri_get_protocol"
+ c:identifier="gst_uri_get_protocol"
+ doc="Extracts the protocol out of a given valid URI. The returned string must be
+freed using g_free().">
+ <return-value transfer-ownership="full">
+ <type name="utf8" c:type="gchar*"/>
+ </return-value>
+ <parameters>
+ <parameter name="uri" transfer-ownership="none">
+ <type name="utf8" c:type="gchar*"/>
+ </parameter>
+ </parameters>
+ </function>
+ <function name="uri_has_protocol"
+ c:identifier="gst_uri_has_protocol"
+ doc="Checks if the protocol of a given valid URI matches @protocol."
+ version="0.10.4">
+ <return-value transfer-ownership="none">
+ <type name="boolean" c:type="gboolean"/>
+ </return-value>
+ <parameters>
+ <parameter name="uri" transfer-ownership="none">
+ <type name="utf8" c:type="gchar*"/>
+ </parameter>
+ <parameter name="protocol" transfer-ownership="none">
+ <type name="utf8" c:type="gchar*"/>
+ </parameter>
+ </parameters>
+ </function>
+ <function name="uri_is_valid"
+ c:identifier="gst_uri_is_valid"
+ doc="Tests if the given string is a valid URI identifier. URIs start with a valid
+scheme followed by ":" and maybe a string identifying the location.">
+ <return-value transfer-ownership="none">
+ <type name="boolean" c:type="gboolean"/>
+ </return-value>
+ <parameters>
+ <parameter name="uri" transfer-ownership="none">
+ <type name="utf8" c:type="gchar*"/>
+ </parameter>
+ </parameters>
+ </function>
+ <function name="uri_protocol_is_supported"
+ c:identifier="gst_uri_protocol_is_supported"
+ doc="Checks if an element exists that supports the given URI protocol. Note
+that a positive return value does not imply that a subsequent call to
+gst_element_make_from_uri() is guaranteed to work."
+ version="0.10.13">
+ <return-value transfer-ownership="none">
+ <type name="boolean" c:type="gboolean"/>
+ </return-value>
+ <parameters>
+ <parameter name="type" transfer-ownership="none">
+ <type name="URIType" c:type="GstURIType"/>
+ </parameter>
+ <parameter name="protocol" transfer-ownership="none">
+ <type name="utf8" c:type="gchar*"/>
+ </parameter>
+ </parameters>
+ </function>
+ <function name="uri_protocol_is_valid"
+ c:identifier="gst_uri_protocol_is_valid"
+ doc="Tests if the given string is a valid protocol identifier. Protocols
+must consist of alphanumeric characters, '+', '-' and '.' and must
+start with a alphabetic character. See RFC 3986 Section 3.1.">
+ <return-value transfer-ownership="none">
+ <type name="boolean" c:type="gboolean"/>
+ </return-value>
+ <parameters>
+ <parameter name="protocol" transfer-ownership="none">
+ <type name="utf8" c:type="gchar*"/>
+ </parameter>
+ </parameters>
+ </function>
+ <function name="util_array_binary_search"
+ c:identifier="gst_util_array_binary_search"
+ doc="Searches inside @array for @search_data by using the comparison function
+As @search_data is always passed as second argument to @search_func it's
+not required that @search_data has the same type as the array elements.
+The complexity of this search function is O(log (num_elements))."
+ version="0.10.23">
+ <return-value transfer-ownership="none">
+ <type name="any" c:type="gpointer"/>
+ </return-value>
+ <parameters>
+ <parameter name="array" transfer-ownership="none">
+ <type name="any" c:type="gpointer"/>
+ </parameter>
+ <parameter name="num_elements" transfer-ownership="none">
+ <type name="uint" c:type="guint"/>
+ </parameter>
+ <parameter name="element_size" transfer-ownership="none">
+ <type name="size_t" c:type="gsize"/>
+ </parameter>
+ <parameter name="search_func" transfer-ownership="none" scope="call">
+ <type name="GLib.CompareDataFunc" c:type="GCompareDataFunc"/>
+ </parameter>
+ <parameter name="mode" transfer-ownership="none">
+ <type name="SearchMode" c:type="GstSearchMode"/>
+ </parameter>
+ <parameter name="search_data" transfer-ownership="none">
+ <type name="any" c:type="gconstpointer"/>
+ </parameter>
+ <parameter name="user_data" transfer-ownership="none">
+ <type name="any" c:type="gpointer"/>
+ </parameter>
+ </parameters>
+ </function>
+ <function name="util_double_to_fraction"
+ c:identifier="gst_util_double_to_fraction"
+ doc="Transforms a #gdouble to a fraction and simplifies
+the result."
+ version="0.10.26">
+ <return-value transfer-ownership="none">
+ <type name="none" c:type="void"/>
+ </return-value>
+ <parameters>
+ <parameter name="src" transfer-ownership="none">
+ <type name="double" c:type="gdouble"/>
+ </parameter>
+ <parameter name="dest_n" direction="out" transfer-ownership="full">
+ <type name="int" c:type="gint*"/>
+ </parameter>
+ <parameter name="dest_d" direction="out" transfer-ownership="full">
+ <type name="int" c:type="gint*"/>
+ </parameter>
+ </parameters>
+ </function>
+ <function name="util_dump_mem"
+ c:identifier="gst_util_dump_mem"
+ doc="Dumps the memory block into a hex representation. Useful for debugging.">
+ <return-value transfer-ownership="none">
+ <type name="none" c:type="void"/>
+ </return-value>
+ <parameters>
+ <parameter name="mem" transfer-ownership="none">
+ <array c:type="guchar*">
+ <type name="uint8"/>
+ </array>
+ </parameter>
+ <parameter name="size" transfer-ownership="none">
+ <type name="uint" c:type="guint"/>
+ </parameter>
+ </parameters>
+ </function>
+ <function name="util_fraction_add"
+ c:identifier="gst_util_fraction_add"
+ doc="Adds the fractions @a_n/@a_d and @b_n/@b_d and stores
+the result in @res_n and @res_d."
+ version="0.10.26">
+ <return-value transfer-ownership="none">
+ <type name="boolean" c:type="gboolean"/>
+ </return-value>
+ <parameters>
+ <parameter name="a_n" transfer-ownership="none">
+ <type name="int" c:type="gint"/>
+ </parameter>
+ <parameter name="a_d" transfer-ownership="none">
+ <type name="int" c:type="gint"/>
+ </parameter>
+ <parameter name="b_n" transfer-ownership="none">
+ <type name="int" c:type="gint"/>
+ </parameter>
+ <parameter name="b_d" transfer-ownership="none">
+ <type name="int" c:type="gint"/>
+ </parameter>
+ <parameter name="res_n" direction="out" transfer-ownership="full">
+ <type name="int" c:type="gint*"/>
+ </parameter>
+ <parameter name="res_d" direction="out" transfer-ownership="full">
+ <type name="int" c:type="gint*"/>
+ </parameter>
+ </parameters>
+ </function>
+ <function name="util_fraction_multiply"
+ c:identifier="gst_util_fraction_multiply"
+ doc="Multiplies the fractions @a_n/@a_d and @b_n/@b_d and stores
+the result in @res_n and @res_d."
+ version="0.10.26">
+ <return-value transfer-ownership="none">
+ <type name="boolean" c:type="gboolean"/>
+ </return-value>
+ <parameters>
+ <parameter name="a_n" transfer-ownership="none">
+ <type name="int" c:type="gint"/>
+ </parameter>
+ <parameter name="a_d" transfer-ownership="none">
+ <type name="int" c:type="gint"/>
+ </parameter>
+ <parameter name="b_n" transfer-ownership="none">
+ <type name="int" c:type="gint"/>
+ </parameter>
+ <parameter name="b_d" transfer-ownership="none">
+ <type name="int" c:type="gint"/>
+ </parameter>
+ <parameter name="res_n" direction="out" transfer-ownership="full">
+ <type name="int" c:type="gint*"/>
+ </parameter>
+ <parameter name="res_d" direction="out" transfer-ownership="full">
+ <type name="int" c:type="gint*"/>
+ </parameter>
+ </parameters>
+ </function>
+ <function name="util_fraction_to_double"
+ c:identifier="gst_util_fraction_to_double"
+ doc="Transforms a #gdouble to a fraction and simplifies the result."
+ version="0.10.26">
+ <return-value transfer-ownership="none">
+ <type name="none" c:type="void"/>
+ </return-value>
+ <parameters>
+ <parameter name="src_n" transfer-ownership="none">
+ <type name="int" c:type="gint"/>
+ </parameter>
+ <parameter name="src_d" transfer-ownership="none">
+ <type name="int" c:type="gint"/>
+ </parameter>
+ <parameter name="dest" direction="out" transfer-ownership="full">
+ <type name="double" c:type="gdouble*"/>
+ </parameter>
+ </parameters>
+ </function>
+ <function name="util_gdouble_to_guint64"
+ c:identifier="gst_util_gdouble_to_guint64">
+ <return-value transfer-ownership="none">
+ <type name="uint64" c:type="guint64"/>
+ </return-value>
+ <parameters>
+ <parameter name="value" transfer-ownership="none">
+ <type name="double" c:type="gdouble"/>
+ </parameter>
+ </parameters>
+ </function>
+ <function name="util_get_timestamp"
+ c:identifier="gst_util_get_timestamp"
+ doc="Get a timestamp as GstClockTime to be used for interval meassurements.
+The timestamp should not be interpreted in any other way."
+ version="0.10.16">
+ <return-value transfer-ownership="full">
+ <type name="ClockTime" c:type="GstClockTime"/>
+ </return-value>
+ </function>
+ <function name="util_greatest_common_divisor"
+ c:identifier="gst_util_greatest_common_divisor"
+ doc="Calculates the greatest common divisor of @a
+and @b."
+ version="0.10.26">
+ <return-value transfer-ownership="none">
+ <type name="int" c:type="gint"/>
+ </return-value>
+ <parameters>
+ <parameter name="a" transfer-ownership="none">
+ <type name="int" c:type="gint"/>
+ </parameter>
+ <parameter name="b" transfer-ownership="none">
+ <type name="int" c:type="gint"/>
+ </parameter>
+ </parameters>
+ </function>
+ <function name="util_guint64_to_gdouble"
+ c:identifier="gst_util_guint64_to_gdouble">
+ <return-value transfer-ownership="none">
+ <type name="double" c:type="gdouble"/>
+ </return-value>
+ <parameters>
+ <parameter name="value" transfer-ownership="none">
+ <type name="uint64" c:type="guint64"/>
+ </parameter>
+ </parameters>
+ </function>
+ <function name="util_seqnum_compare"
+ c:identifier="gst_util_seqnum_compare"
+ doc="Compare two sequence numbers, handling wraparound.
+The current implementation just returns (gint32)(@s1 - @s2).
+positive number if @s1 is after @s2."
+ version="0.10.22">
+ <return-value transfer-ownership="none">
+ <type name="int32" c:type="gint32"/>
+ </return-value>
+ <parameters>
+ <parameter name="s1" transfer-ownership="none">
+ <type name="uint32" c:type="guint32"/>
+ </parameter>
+ <parameter name="s2" transfer-ownership="none">
+ <type name="uint32" c:type="guint32"/>
+ </parameter>
+ </parameters>
+ </function>
+ <function name="util_seqnum_next"
+ c:identifier="gst_util_seqnum_next"
+ doc="Return a constantly incrementing sequence number.
+This function is used internally to GStreamer to be able to determine which
+events and messages are "the same". For example, elements may set the seqnum
+on a segment-done message to be the same as that of the last seek event, to
+indicate that event and the message correspond to the same segment.
+overflow back to 0 at some point. Use gst_util_seqnum_compare() to make sure
+you handle wraparound correctly."
+ version="0.10.22">
+ <return-value transfer-ownership="none">
+ <type name="uint32" c:type="guint32"/>
+ </return-value>
+ </function>
+ <function name="util_set_object_arg"
+ c:identifier="gst_util_set_object_arg"
+ doc="Convertes the string value to the type of the objects argument and
+sets the argument with it.
+Note that this function silently returns if @object has no property named">
+ <return-value transfer-ownership="none">
+ <type name="none" c:type="void"/>
+ </return-value>
+ <parameters>
+ <parameter name="object" transfer-ownership="none">
+ <type name="GObject.Object" c:type="GObject*"/>
+ </parameter>
+ <parameter name="name" transfer-ownership="none">
+ <type name="utf8" c:type="gchar*"/>
+ </parameter>
+ <parameter name="value" transfer-ownership="none">
+ <type name="utf8" c:type="gchar*"/>
+ </parameter>
+ </parameters>
+ </function>
+ <function name="util_set_value_from_string"
+ c:identifier="gst_util_set_value_from_string"
+ doc="Converts the string to the type of the value and
+sets the value with it.
+Note that this function is dangerous as it does not return any indication
+if the conversion worked or not.">
+ <return-value transfer-ownership="none">
+ <type name="none" c:type="void"/>
+ </return-value>
+ <parameters>
+ <parameter name="value" transfer-ownership="none">
+ <type name="GObject.Value" c:type="GValue*"/>
+ </parameter>
+ <parameter name="value_str" transfer-ownership="none">
+ <type name="utf8" c:type="gchar*"/>
+ </parameter>
+ </parameters>
+ </function>
+ <function name="util_uint64_scale"
+ c:identifier="gst_util_uint64_scale"
+ doc="Scale @val by the rational number @num / @denom, avoiding overflows and
+underflows and without loss of precision.
+This function can potentially be very slow if val and num are both
+greater than G_MAXUINT32.
+function returns G_MAXUINT64. If the result is not exactly
+representable as an integer it is truncated. See also
+gst_util_uint64_scale_round(), gst_util_uint64_scale_ceil(),
+gst_util_uint64_scale_int(), gst_util_uint64_scale_int_round(),
+gst_util_uint64_scale_int_ceil().">
+ <return-value transfer-ownership="none">
+ <type name="uint64" c:type="guint64"/>
+ </return-value>
+ <parameters>
+ <parameter name="val" transfer-ownership="none">
+ <type name="uint64" c:type="guint64"/>
+ </parameter>
+ <parameter name="num" transfer-ownership="none">
+ <type name="uint64" c:type="guint64"/>
+ </parameter>
+ <parameter name="denom" transfer-ownership="none">
+ <type name="uint64" c:type="guint64"/>
+ </parameter>
+ </parameters>
+ </function>
+ <function name="util_uint64_scale_ceil"
+ c:identifier="gst_util_uint64_scale_ceil"
+ doc="Scale @val by the rational number @num / @denom, avoiding overflows and
+underflows and without loss of precision.
+This function can potentially be very slow if val and num are both
+greater than G_MAXUINT32.
+function returns G_MAXUINT64. If the result is not exactly
+representable as an integer, it is rounded up. See also
+gst_util_uint64_scale(), gst_util_uint64_scale_round(),
+gst_util_uint64_scale_int(), gst_util_uint64_scale_int_round(),
+gst_util_uint64_scale_int_ceil().">
+ <return-value transfer-ownership="none">
+ <type name="uint64" c:type="guint64"/>
+ </return-value>
+ <parameters>
+ <parameter name="val" transfer-ownership="none">
+ <type name="uint64" c:type="guint64"/>
+ </parameter>
+ <parameter name="num" transfer-ownership="none">
+ <type name="uint64" c:type="guint64"/>
+ </parameter>
+ <parameter name="denom" transfer-ownership="none">
+ <type name="uint64" c:type="guint64"/>
+ </parameter>
+ </parameters>
+ </function>
+ <function name="util_uint64_scale_int"
+ c:identifier="gst_util_uint64_scale_int"
+ doc="Scale @val by the rational number @num / @denom, avoiding overflows and
+underflows and without loss of precision. @num must be non-negative and
+function returns G_MAXUINT64. If the result is not exactly
+representable as an integer, it is truncated. See also
+gst_util_uint64_scale_int_round(), gst_util_uint64_scale_int_ceil(),
+gst_util_uint64_scale(), gst_util_uint64_scale_round(),
+gst_util_uint64_scale_ceil().">
+ <return-value transfer-ownership="none">
+ <type name="uint64" c:type="guint64"/>
+ </return-value>
+ <parameters>
+ <parameter name="val" transfer-ownership="none" doc="to scale.">
+ <type name="uint64" c:type="guint64"/>
+ </parameter>
+ <parameter name="num" transfer-ownership="none">
+ <type name="int" c:type="gint"/>
+ </parameter>
+ <parameter name="denom" transfer-ownership="none">
+ <type name="int" c:type="gint"/>
+ </parameter>
+ </parameters>
+ </function>
+ <function name="util_uint64_scale_int_ceil"
+ c:identifier="gst_util_uint64_scale_int_ceil"
+ doc="Scale @val by the rational number @num / @denom, avoiding overflows and
+underflows and without loss of precision. @num must be non-negative and
+function returns G_MAXUINT64. If the result is not exactly
+representable as an integer, it is rounded up. See also
+gst_util_uint64_scale_int(), gst_util_uint64_scale_int_round(),
+gst_util_uint64_scale(), gst_util_uint64_scale_round(),
+gst_util_uint64_scale_ceil().">
+ <return-value transfer-ownership="none">
+ <type name="uint64" c:type="guint64"/>
+ </return-value>
+ <parameters>
+ <parameter name="val" transfer-ownership="none" doc="to scale.">
+ <type name="uint64" c:type="guint64"/>
+ </parameter>
+ <parameter name="num" transfer-ownership="none">
+ <type name="int" c:type="gint"/>
+ </parameter>
+ <parameter name="denom" transfer-ownership="none">
+ <type name="int" c:type="gint"/>
+ </parameter>
+ </parameters>
+ </function>
+ <function name="util_uint64_scale_int_round"
+ c:identifier="gst_util_uint64_scale_int_round"
+ doc="Scale @val by the rational number @num / @denom, avoiding overflows and
+underflows and without loss of precision. @num must be non-negative and
+function returns G_MAXUINT64. If the result is not exactly
+representable as an integer, it is rounded to the nearest integer
+(half-way cases are rounded up). See also gst_util_uint64_scale_int(),
+gst_util_uint64_scale_int_ceil(), gst_util_uint64_scale(),
+gst_util_uint64_scale_round(), gst_util_uint64_scale_ceil().">
+ <return-value transfer-ownership="none">
+ <type name="uint64" c:type="guint64"/>
+ </return-value>
+ <parameters>
+ <parameter name="val" transfer-ownership="none" doc="to scale.">
+ <type name="uint64" c:type="guint64"/>
+ </parameter>
+ <parameter name="num" transfer-ownership="none">
+ <type name="int" c:type="gint"/>
+ </parameter>
+ <parameter name="denom" transfer-ownership="none">
+ <type name="int" c:type="gint"/>
+ </parameter>
+ </parameters>
+ </function>
+ <function name="util_uint64_scale_round"
+ c:identifier="gst_util_uint64_scale_round"
+ doc="Scale @val by the rational number @num / @denom, avoiding overflows and
+underflows and without loss of precision.
+This function can potentially be very slow if val and num are both
+greater than G_MAXUINT32.
+function returns G_MAXUINT64. If the result is not exactly
+representable as an integer, it is rounded to the nearest integer
+(half-way cases are rounded up). See also gst_util_uint64_scale(),
+gst_util_uint64_scale_ceil(), gst_util_uint64_scale_int(),
+gst_util_uint64_scale_int_round(), gst_util_uint64_scale_int_ceil().">
+ <return-value transfer-ownership="none">
+ <type name="uint64" c:type="guint64"/>
+ </return-value>
+ <parameters>
+ <parameter name="val" transfer-ownership="none">
+ <type name="uint64" c:type="guint64"/>
+ </parameter>
+ <parameter name="num" transfer-ownership="none">
+ <type name="uint64" c:type="guint64"/>
+ </parameter>
+ <parameter name="denom" transfer-ownership="none">
+ <type name="uint64" c:type="guint64"/>
+ </parameter>
+ </parameters>
+ </function>
+ <function name="value_array_append_value"
+ c:identifier="gst_value_array_append_value"
+ doc="Appends @append_value to the GstValueArray in @value.">
+ <return-value transfer-ownership="none">
+ <type name="none" c:type="void"/>
+ </return-value>
+ <parameters>
+ <parameter name="value" transfer-ownership="none">
+ <type name="GObject.Value" c:type="GValue*"/>
+ </parameter>
+ <parameter name="append_value" transfer-ownership="none">
+ <type name="GObject.Value" c:type="GValue*"/>
+ </parameter>
+ </parameters>
+ </function>
+ <function name="value_array_get_size"
+ c:identifier="gst_value_array_get_size"
+ doc="Gets the number of values contained in @value.">
+ <return-value transfer-ownership="none">
+ <type name="uint" c:type="guint"/>
+ </return-value>
+ <parameters>
+ <parameter name="value" transfer-ownership="none">
+ <type name="GObject.Value" c:type="GValue*"/>
+ </parameter>
+ </parameters>
+ </function>
+ <function name="value_array_get_value"
+ c:identifier="gst_value_array_get_value"
+ doc="Gets the value that is a member of the array contained in @value and
+has the index @index.">
+ <return-value transfer-ownership="none">
+ <type name="GObject.Value" c:type="GValue*"/>
+ </return-value>
+ <parameters>
+ <parameter name="value" transfer-ownership="none">
+ <type name="GObject.Value" c:type="GValue*"/>
+ </parameter>
+ <parameter name="index" transfer-ownership="none">
+ <type name="uint" c:type="guint"/>
+ </parameter>
+ </parameters>
+ </function>
+ <function name="value_array_prepend_value"
+ c:identifier="gst_value_array_prepend_value"
+ doc="Prepends @prepend_value to the GstValueArray in @value.">
+ <return-value transfer-ownership="none">
+ <type name="none" c:type="void"/>
+ </return-value>
+ <parameters>
+ <parameter name="value" transfer-ownership="none">
+ <type name="GObject.Value" c:type="GValue*"/>
+ </parameter>
+ <parameter name="prepend_value" transfer-ownership="none">
+ <type name="GObject.Value" c:type="GValue*"/>
+ </parameter>
+ </parameters>
+ </function>
+ <function name="value_can_compare"
+ c:identifier="gst_value_can_compare"
+ doc="Determines if @value1 and @value2 can be compared.">
+ <return-value transfer-ownership="none">
+ <type name="boolean" c:type="gboolean"/>
+ </return-value>
+ <parameters>
+ <parameter name="value1" transfer-ownership="none">
+ <type name="GObject.Value" c:type="GValue*"/>
+ </parameter>
+ <parameter name="value2" transfer-ownership="none">
+ <type name="GObject.Value" c:type="GValue*"/>
+ </parameter>
+ </parameters>
+ </function>
+ <function name="value_can_intersect"
+ c:identifier="gst_value_can_intersect"
+ doc="Determines if intersecting two values will produce a valid result.
+Two values will produce a valid intersection if they have the same
+type, or if there is a method (registered by
+gst_value_register_intersect_func()) to calculate the intersection.">
+ <return-value transfer-ownership="none">
+ <type name="boolean" c:type="gboolean"/>
+ </return-value>
+ <parameters>
+ <parameter name="value1" transfer-ownership="none">
+ <type name="GObject.Value" c:type="GValue*"/>
+ </parameter>
+ <parameter name="value2" transfer-ownership="none">
+ <type name="GObject.Value" c:type="GValue*"/>
+ </parameter>
+ </parameters>
+ </function>
+ <function name="value_can_subtract"
+ c:identifier="gst_value_can_subtract"
+ doc="Checks if it's possible to subtract @subtrahend from @minuend.">
+ <return-value transfer-ownership="none">
+ <type name="boolean" c:type="gboolean"/>
+ </return-value>
+ <parameters>
+ <parameter name="minuend" transfer-ownership="none">
+ <type name="GObject.Value" c:type="GValue*"/>
+ </parameter>
+ <parameter name="subtrahend" transfer-ownership="none">
+ <type name="GObject.Value" c:type="GValue*"/>
+ </parameter>
+ </parameters>
+ </function>
+ <function name="value_can_union"
+ c:identifier="gst_value_can_union"
+ doc="Determines if @value1 and @value2 can be non-trivially unioned.
+Any two values can be trivially unioned by adding both of them
+to a GstValueList. However, certain types have the possibility
+to be unioned in a simpler way. For example, an integer range
+and an integer can be unioned if the integer is a subset of the
+integer range. If there is the possibility that two values can
+be unioned, this function returns TRUE.
+be unioned.">
+ <return-value transfer-ownership="none">
+ <type name="boolean" c:type="gboolean"/>
+ </return-value>
+ <parameters>
+ <parameter name="value1" transfer-ownership="none">
+ <type name="GObject.Value" c:type="GValue*"/>
+ </parameter>
+ <parameter name="value2" transfer-ownership="none">
+ <type name="GObject.Value" c:type="GValue*"/>
+ </parameter>
+ </parameters>
+ </function>
+ <function name="value_compare"
+ c:identifier="gst_value_compare"
+ doc="Compares @value1 and @value2. If @value1 and @value2 cannot be
+compared, the function returns GST_VALUE_UNORDERED. Otherwise,
+if @value1 is greater than @value2, GST_VALUE_GREATER_THAN is returned.
+If @value1 is less than @value2, GST_VALUE_LESS_THAN is returned.
+If the values are equal, GST_VALUE_EQUAL is returned.">
+ <return-value transfer-ownership="none">
+ <type name="int" c:type="gint"/>
+ </return-value>
+ <parameters>
+ <parameter name="value1" transfer-ownership="none">
+ <type name="GObject.Value" c:type="GValue*"/>
+ </parameter>
+ <parameter name="value2" transfer-ownership="none">
+ <type name="GObject.Value" c:type="GValue*"/>
+ </parameter>
+ </parameters>
+ </function>
+ <function name="value_deserialize"
+ c:identifier="gst_value_deserialize"
+ doc="Tries to deserialize a string into the type specified by the given GValue.
+If the operation succeeds, TRUE is returned, FALSE otherwise.">
+ <return-value transfer-ownership="none">
+ <type name="boolean" c:type="gboolean"/>
+ </return-value>
+ <parameters>
+ <parameter name="dest" transfer-ownership="none">
+ <type name="GObject.Value" c:type="GValue*"/>
+ </parameter>
+ <parameter name="src" transfer-ownership="none">
+ <type name="utf8" c:type="gchar*"/>
+ </parameter>
+ </parameters>
+ </function>
+ <function name="value_dup_mini_object"
+ c:identifier="gst_value_dup_mini_object"
+ doc="Get the contents of a %GST_TYPE_MINI_OBJECT derived #GValue,
+increasing its reference count."
+ version="0.10.20">
+ <return-value transfer-ownership="full">
+ <type name="MiniObject" c:type="GstMiniObject*"/>
+ </return-value>
+ <parameters>
+ <parameter name="value" transfer-ownership="none">
+ <type name="GObject.Value" c:type="GValue*"/>
+ </parameter>
+ </parameters>
+ </function>
+ <function name="value_fraction_multiply"
+ c:identifier="gst_value_fraction_multiply"
+ doc="Multiplies the two #GValue items containing a #GST_TYPE_FRACTION and sets">
+ <return-value transfer-ownership="none" doc="TRUE otherwise.">
+ <type name="boolean" c:type="gboolean"/>
+ </return-value>
+ <parameters>
+ <parameter name="product" transfer-ownership="none">
+ <type name="GObject.Value" c:type="GValue*"/>
+ </parameter>
+ <parameter name="factor1" transfer-ownership="none">
+ <type name="GObject.Value" c:type="GValue*"/>
+ </parameter>
+ <parameter name="factor2" transfer-ownership="none">
+ <type name="GObject.Value" c:type="GValue*"/>
+ </parameter>
+ </parameters>
+ </function>
+ <function name="value_fraction_subtract"
+ c:identifier="gst_value_fraction_subtract"
+ doc="Subtracts the @subtrahend from the @minuend and sets @dest to the result.">
+ <return-value transfer-ownership="none" doc="TRUE otherwise.">
+ <type name="boolean" c:type="gboolean"/>
+ </return-value>
+ <parameters>
+ <parameter name="dest" transfer-ownership="none">
+ <type name="GObject.Value" c:type="GValue*"/>
+ </parameter>
+ <parameter name="minuend" transfer-ownership="none">
+ <type name="GObject.Value" c:type="GValue*"/>
+ </parameter>
+ <parameter name="subtrahend" transfer-ownership="none">
+ <type name="GObject.Value" c:type="GValue*"/>
+ </parameter>
+ </parameters>
+ </function>
+ <function name="value_get_caps"
+ c:identifier="gst_value_get_caps"
+ doc="Gets the contents of @value.">
+ <return-value transfer-ownership="none">
+ <type name="Caps" c:type="GstCaps*"/>
+ </return-value>
+ <parameters>
+ <parameter name="value" transfer-ownership="none">
+ <type name="GObject.Value" c:type="GValue*"/>
+ </parameter>
+ </parameters>
+ </function>
+ <function name="value_get_date"
+ c:identifier="gst_value_get_date"
+ doc="Gets the contents of @value.">
+ <return-value transfer-ownership="none">
+ <type name="GLib.Date" c:type="GDate*"/>
+ </return-value>
+ <parameters>
+ <parameter name="value" transfer-ownership="none">
+ <type name="GObject.Value" c:type="GValue*"/>
+ </parameter>
+ </parameters>
+ </function>
+ <function name="value_get_double_range_max"
+ c:identifier="gst_value_get_double_range_max"
+ doc="Gets the maximum of the range specified by @value.">
+ <return-value transfer-ownership="none">
+ <type name="double" c:type="gdouble"/>
+ </return-value>
+ <parameters>
+ <parameter name="value" transfer-ownership="none">
+ <type name="GObject.Value" c:type="GValue*"/>
+ </parameter>
+ </parameters>
+ </function>
+ <function name="value_get_double_range_min"
+ c:identifier="gst_value_get_double_range_min"
+ doc="Gets the minimum of the range specified by @value.">
+ <return-value transfer-ownership="none">
+ <type name="double" c:type="gdouble"/>
+ </return-value>
+ <parameters>
+ <parameter name="value" transfer-ownership="none">
+ <type name="GObject.Value" c:type="GValue*"/>
+ </parameter>
+ </parameters>
+ </function>
+ <function name="value_get_fourcc"
+ c:identifier="gst_value_get_fourcc"
+ doc="Gets the #guint32 fourcc contained in @value.">
+ <return-value transfer-ownership="none">
+ <type name="uint32" c:type="guint32"/>
+ </return-value>
+ <parameters>
+ <parameter name="value" transfer-ownership="none">
+ <type name="GObject.Value" c:type="GValue*"/>
+ </parameter>
+ </parameters>
+ </function>
+ <function name="value_get_fraction_denominator"
+ c:identifier="gst_value_get_fraction_denominator"
+ doc="Gets the denominator of the fraction specified by @value.">
+ <return-value transfer-ownership="none">
+ <type name="int" c:type="gint"/>
+ </return-value>
+ <parameters>
+ <parameter name="value" transfer-ownership="none">
+ <type name="GObject.Value" c:type="GValue*"/>
+ </parameter>
+ </parameters>
+ </function>
+ <function name="value_get_fraction_numerator"
+ c:identifier="gst_value_get_fraction_numerator"
+ doc="Gets the numerator of the fraction specified by @value.">
+ <return-value transfer-ownership="none">
+ <type name="int" c:type="gint"/>
+ </return-value>
+ <parameters>
+ <parameter name="value" transfer-ownership="none">
+ <type name="GObject.Value" c:type="GValue*"/>
+ </parameter>
+ </parameters>
+ </function>
+ <function name="value_get_fraction_range_max"
+ c:identifier="gst_value_get_fraction_range_max"
+ doc="Gets the maximum of the range specified by @value.">
+ <return-value transfer-ownership="none">
+ <type name="GObject.Value" c:type="GValue*"/>
+ </return-value>
+ <parameters>
+ <parameter name="value" transfer-ownership="none">
+ <type name="GObject.Value" c:type="GValue*"/>
+ </parameter>
+ </parameters>
+ </function>
+ <function name="value_get_fraction_range_min"
+ c:identifier="gst_value_get_fraction_range_min"
+ doc="Gets the minimum of the range specified by @value.">
+ <return-value transfer-ownership="none">
+ <type name="GObject.Value" c:type="GValue*"/>
+ </return-value>
+ <parameters>
+ <parameter name="value" transfer-ownership="none">
+ <type name="GObject.Value" c:type="GValue*"/>
+ </parameter>
+ </parameters>
+ </function>
+ <function name="value_get_int_range_max"
+ c:identifier="gst_value_get_int_range_max"
+ doc="Gets the maximum of the range specified by @value.">
+ <return-value transfer-ownership="none">
+ <type name="int" c:type="gint"/>
+ </return-value>
+ <parameters>
+ <parameter name="value" transfer-ownership="none">
+ <type name="GObject.Value" c:type="GValue*"/>
+ </parameter>
+ </parameters>
+ </function>
+ <function name="value_get_int_range_min"
+ c:identifier="gst_value_get_int_range_min"
+ doc="Gets the minimum of the range specified by @value.">
+ <return-value transfer-ownership="none">
+ <type name="int" c:type="gint"/>
+ </return-value>
+ <parameters>
+ <parameter name="value" transfer-ownership="none">
+ <type name="GObject.Value" c:type="GValue*"/>
+ </parameter>
+ </parameters>
+ </function>
+ <function name="value_get_mini_object"
+ c:identifier="gst_value_get_mini_object"
+ doc="Get the contents of a %GST_TYPE_MINI_OBJECT derived #GValue.
+Does not increase the refcount of the returned object.">
+ <return-value transfer-ownership="full">
+ <type name="MiniObject" c:type="GstMiniObject*"/>
+ </return-value>
+ <parameters>
+ <parameter name="value" transfer-ownership="none">
+ <type name="GObject.Value" c:type="GValue*"/>
+ </parameter>
+ </parameters>
+ </function>
+ <function name="value_get_structure"
+ c:identifier="gst_value_get_structure"
+ doc="Gets the contents of @value."
+ version="0.10.15">
+ <return-value transfer-ownership="none">
+ <type name="Structure" c:type="GstStructure*"/>
+ </return-value>
+ <parameters>
+ <parameter name="value" transfer-ownership="none">
+ <type name="GObject.Value" c:type="GValue*"/>
+ </parameter>
+ </parameters>
+ </function>
+ <function name="value_init_and_copy"
+ c:identifier="gst_value_init_and_copy"
+ doc="Initialises the target value to be of the same type as source and then copies
+the contents from source to target.">
+ <return-value transfer-ownership="none">
+ <type name="none" c:type="void"/>
+ </return-value>
+ <parameters>
+ <parameter name="dest" transfer-ownership="none">
+ <type name="GObject.Value" c:type="GValue*"/>
+ </parameter>
+ <parameter name="src" transfer-ownership="none">
+ <type name="GObject.Value" c:type="GValue*"/>
+ </parameter>
+ </parameters>
+ </function>
+ <function name="value_intersect"
+ c:identifier="gst_value_intersect"
+ doc="intersection value
+Calculates the intersection of two values. If the values have
+a non-empty intersection, the value representing the intersection
+is placed in @dest. If the intersection is non-empty, @dest is
+not modified.">
+ <return-value transfer-ownership="none">
+ <type name="boolean" c:type="gboolean"/>
+ </return-value>
+ <parameters>
+ <parameter name="dest" transfer-ownership="none">
+ <type name="GObject.Value" c:type="GValue*"/>
+ </parameter>
+ <parameter name="value1" transfer-ownership="none">
+ <type name="GObject.Value" c:type="GValue*"/>
+ </parameter>
+ <parameter name="value2" transfer-ownership="none">
+ <type name="GObject.Value" c:type="GValue*"/>
+ </parameter>
+ </parameters>
+ </function>
+ <function name="value_is_fixed"
+ c:identifier="gst_value_is_fixed"
+ doc="Tests if the given GValue, if available in a GstStructure (or any other
+ranges) value.">
+ <return-value transfer-ownership="none">
+ <type name="boolean" c:type="gboolean"/>
+ </return-value>
+ <parameters>
+ <parameter name="value" transfer-ownership="none">
+ <type name="GObject.Value" c:type="GValue*"/>
+ </parameter>
+ </parameters>
+ </function>
+ <function name="value_list_append_value"
+ c:identifier="gst_value_list_append_value"
+ doc="Appends @append_value to the GstValueList in @value.">
+ <return-value transfer-ownership="none">
+ <type name="none" c:type="void"/>
+ </return-value>
+ <parameters>
+ <parameter name="value" transfer-ownership="none">
+ <type name="GObject.Value" c:type="GValue*"/>
+ </parameter>
+ <parameter name="append_value" transfer-ownership="none">
+ <type name="GObject.Value" c:type="GValue*"/>
+ </parameter>
+ </parameters>
+ </function>
+ <function name="value_list_concat"
+ c:identifier="gst_value_list_concat"
+ doc="Concatenates copies of @value1 and @value2 into a list. Values that are not
+of type #GST_TYPE_LIST are treated as if they were lists of length 1.">
+ <return-value transfer-ownership="none">
+ <type name="none" c:type="void"/>
+ </return-value>
+ <parameters>
+ <parameter name="dest" transfer-ownership="none">
+ <type name="GObject.Value" c:type="GValue*"/>
+ </parameter>
+ <parameter name="value1" transfer-ownership="none">
+ <type name="GObject.Value" c:type="GValue*"/>
+ </parameter>
+ <parameter name="value2" transfer-ownership="none">
+ <type name="GObject.Value" c:type="GValue*"/>
+ </parameter>
+ </parameters>
+ </function>
+ <function name="value_list_get_size"
+ c:identifier="gst_value_list_get_size"
+ doc="Gets the number of values contained in @value.">
+ <return-value transfer-ownership="none">
+ <type name="uint" c:type="guint"/>
+ </return-value>
+ <parameters>
+ <parameter name="value" transfer-ownership="none">
+ <type name="GObject.Value" c:type="GValue*"/>
+ </parameter>
+ </parameters>
+ </function>
+ <function name="value_list_get_value"
+ c:identifier="gst_value_list_get_value"
+ doc="Gets the value that is a member of the list contained in @value and
+has the index @index.">
+ <return-value transfer-ownership="none">
+ <type name="GObject.Value" c:type="GValue*"/>
+ </return-value>
+ <parameters>
+ <parameter name="value" transfer-ownership="none">
+ <type name="GObject.Value" c:type="GValue*"/>
+ </parameter>
+ <parameter name="index" transfer-ownership="none">
+ <type name="uint" c:type="guint"/>
+ </parameter>
+ </parameters>
+ </function>
+ <function name="value_list_prepend_value"
+ c:identifier="gst_value_list_prepend_value"
+ doc="Prepends @prepend_value to the GstValueList in @value.">
+ <return-value transfer-ownership="none">
+ <type name="none" c:type="void"/>
+ </return-value>
+ <parameters>
+ <parameter name="value" transfer-ownership="none">
+ <type name="GObject.Value" c:type="GValue*"/>
+ </parameter>
+ <parameter name="prepend_value" transfer-ownership="none">
+ <type name="GObject.Value" c:type="GValue*"/>
+ </parameter>
+ </parameters>
+ </function>
+ <function name="value_register"
+ c:identifier="gst_value_register"
+ doc="Registers functions to perform calculations on #GValue items of a given
+type. Each type can only be added once.">
+ <return-value transfer-ownership="none">
+ <type name="none" c:type="void"/>
+ </return-value>
+ <parameters>
+ <parameter name="table" transfer-ownership="none">
+ <type name="ValueTable" c:type="GstValueTable*"/>
+ </parameter>
+ </parameters>
+ </function>
+ <function name="value_register_intersect_func"
+ c:identifier="gst_value_register_intersect_func"
+ doc="Registers a function that is called to calculate the intersection
+of the values having the types @type1 and @type2.
+Intersect functions should be registered at startup before any pipelines are
+started, as gst_value_register_intersect_func() is not thread-safe and
+cannot be used at the same time as gst_value_intersect() or
+gst_value_can_intersect().">
+ <return-value transfer-ownership="none">
+ <type name="none" c:type="void"/>
+ </return-value>
+ <parameters>
+ <parameter name="type1" transfer-ownership="none">
+ <type name="GType" c:type="GType"/>
+ </parameter>
+ <parameter name="type2" transfer-ownership="none">
+ <type name="GType" c:type="GType"/>
+ </parameter>
+ <parameter name="func" transfer-ownership="none" scope="call">
+ <type name="ValueIntersectFunc" c:type="GstValueIntersectFunc"/>
+ </parameter>
+ </parameters>
+ </function>
+ <function name="value_register_subtract_func"
+ c:identifier="gst_value_register_subtract_func"
+ doc="Registers @func as a function capable of subtracting the values of
+Subtract functions should be registered at startup before any pipelines are
+started, as gst_value_register_subtract_func() is not thread-safe and
+cannot be used at the same time as gst_value_subtract().">
+ <return-value transfer-ownership="none">
+ <type name="none" c:type="void"/>
+ </return-value>
+ <parameters>
+ <parameter name="minuend_type" transfer-ownership="none">
+ <type name="GType" c:type="GType"/>
+ </parameter>
+ <parameter name="subtrahend_type" transfer-ownership="none">
+ <type name="GType" c:type="GType"/>
+ </parameter>
+ <parameter name="func" transfer-ownership="none" scope="call">
+ <type name="ValueSubtractFunc" c:type="GstValueSubtractFunc"/>
+ </parameter>
+ </parameters>
+ </function>
+ <function name="value_register_union_func"
+ c:identifier="gst_value_register_union_func"
+ doc="Registers a union function that can create a union between #GValue items
+of the type @type1 and @type2.
+Union functions should be registered at startup before any pipelines are
+started, as gst_value_register_union_func() is not thread-safe and cannot
+be used at the same time as gst_value_union() or gst_value_can_union().">
+ <return-value transfer-ownership="none">
+ <type name="none" c:type="void"/>
+ </return-value>
+ <parameters>
+ <parameter name="type1" transfer-ownership="none">
+ <type name="GType" c:type="GType"/>
+ </parameter>
+ <parameter name="type2" transfer-ownership="none">
+ <type name="GType" c:type="GType"/>
+ </parameter>
+ <parameter name="func" transfer-ownership="none" scope="call">
+ <type name="ValueUnionFunc" c:type="GstValueUnionFunc"/>
+ </parameter>
+ </parameters>
+ </function>
+ <function name="value_serialize"
+ c:identifier="gst_value_serialize"
+ doc="tries to transform the given @value into a string representation that allows
+getting back this string later on using gst_value_deserialize().">
+ <return-value transfer-ownership="full">
+ <type name="utf8" c:type="gchar*"/>
+ </return-value>
+ <parameters>
+ <parameter name="value" transfer-ownership="none">
+ <type name="GObject.Value" c:type="GValue*"/>
+ </parameter>
+ </parameters>
+ </function>
+ <function name="value_set_caps"
+ c:identifier="gst_value_set_caps"
+ doc="Sets the contents of @value to @caps. The actual
+#GstCaps structure is copied before it is used.">
+ <return-value transfer-ownership="none">
+ <type name="none" c:type="void"/>
+ </return-value>
+ <parameters>
+ <parameter name="value" transfer-ownership="none">
+ <type name="GObject.Value" c:type="GValue*"/>
+ </parameter>
+ <parameter name="caps" transfer-ownership="none">
+ <type name="Caps" c:type="GstCaps*"/>
+ </parameter>
+ </parameters>
+ </function>
+ <function name="value_set_date"
+ c:identifier="gst_value_set_date"
+ doc="Sets the contents of @value to coorespond to @date. The actual
+#GDate structure is copied before it is used.">
+ <return-value transfer-ownership="none">
+ <type name="none" c:type="void"/>
+ </return-value>
+ <parameters>
+ <parameter name="value" transfer-ownership="none">
+ <type name="GObject.Value" c:type="GValue*"/>
+ </parameter>
+ <parameter name="date" transfer-ownership="none">
+ <type name="GLib.Date" c:type="GDate*"/>
+ </parameter>
+ </parameters>
+ </function>
+ <function name="value_set_double_range"
+ c:identifier="gst_value_set_double_range"
+ doc="Sets @value to the range specified by @start and @end.">
+ <return-value transfer-ownership="none">
+ <type name="none" c:type="void"/>
+ </return-value>
+ <parameters>
+ <parameter name="value" transfer-ownership="none">
+ <type name="GObject.Value" c:type="GValue*"/>
+ </parameter>
+ <parameter name="start" transfer-ownership="none">
+ <type name="double" c:type="gdouble"/>
+ </parameter>
+ <parameter name="end" transfer-ownership="none">
+ <type name="double" c:type="gdouble"/>
+ </parameter>
+ </parameters>
+ </function>
+ <function name="value_set_fourcc"
+ c:identifier="gst_value_set_fourcc"
+ doc="Sets @value to @fourcc.">
+ <return-value transfer-ownership="none">
+ <type name="none" c:type="void"/>
+ </return-value>
+ <parameters>
+ <parameter name="value" transfer-ownership="none">
+ <type name="GObject.Value" c:type="GValue*"/>
+ </parameter>
+ <parameter name="fourcc" transfer-ownership="none">
+ <type name="uint32" c:type="guint32"/>
+ </parameter>
+ </parameters>
+ </function>
+ <function name="value_set_fraction"
+ c:identifier="gst_value_set_fraction"
+ doc="Sets @value to the fraction specified by @numerator over @denominator.
+The fraction gets reduced to the smallest numerator and denominator,
+and if necessary the sign is moved to the numerator.">
+ <return-value transfer-ownership="none">
+ <type name="none" c:type="void"/>
+ </return-value>
+ <parameters>
+ <parameter name="value" transfer-ownership="none">
+ <type name="GObject.Value" c:type="GValue*"/>
+ </parameter>
+ <parameter name="numerator" transfer-ownership="none">
+ <type name="int" c:type="gint"/>
+ </parameter>
+ <parameter name="denominator" transfer-ownership="none">
+ <type name="int" c:type="gint"/>
+ </parameter>
+ </parameters>
+ </function>
+ <function name="value_set_fraction_range"
+ c:identifier="gst_value_set_fraction_range"
+ doc="Sets @value to the range specified by @start and @end.">
+ <return-value transfer-ownership="none">
+ <type name="none" c:type="void"/>
+ </return-value>
+ <parameters>
+ <parameter name="value" transfer-ownership="none">
+ <type name="GObject.Value" c:type="GValue*"/>
+ </parameter>
+ <parameter name="start" transfer-ownership="none">
+ <type name="GObject.Value" c:type="GValue*"/>
+ </parameter>
+ <parameter name="end" transfer-ownership="none">
+ <type name="GObject.Value" c:type="GValue*"/>
+ </parameter>
+ </parameters>
+ </function>
+ <function name="value_set_fraction_range_full"
+ c:identifier="gst_value_set_fraction_range_full"
+ doc="Sets @value to the range specified by @numerator_start/@denominator_start
+and @numerator_end/@denominator_end.">
+ <return-value transfer-ownership="none">
+ <type name="none" c:type="void"/>
+ </return-value>
+ <parameters>
+ <parameter name="value" transfer-ownership="none">
+ <type name="GObject.Value" c:type="GValue*"/>
+ </parameter>
+ <parameter name="numerator_start" transfer-ownership="none">
+ <type name="int" c:type="gint"/>
+ </parameter>
+ <parameter name="denominator_start" transfer-ownership="none">
+ <type name="int" c:type="gint"/>
+ </parameter>
+ <parameter name="numerator_end" transfer-ownership="none">
+ <type name="int" c:type="gint"/>
+ </parameter>
+ <parameter name="denominator_end" transfer-ownership="none">
+ <type name="int" c:type="gint"/>
+ </parameter>
+ </parameters>
+ </function>
+ <function name="value_set_int_range"
+ c:identifier="gst_value_set_int_range"
+ doc="Sets @value to the range specified by @start and @end.">
+ <return-value transfer-ownership="none">
+ <type name="none" c:type="void"/>
+ </return-value>
+ <parameters>
+ <parameter name="value" transfer-ownership="none">
+ <type name="GObject.Value" c:type="GValue*"/>
+ </parameter>
+ <parameter name="start" transfer-ownership="none">
+ <type name="int" c:type="gint"/>
+ </parameter>
+ <parameter name="end" transfer-ownership="none">
+ <type name="int" c:type="gint"/>
+ </parameter>
+ </parameters>
+ </function>
+ <function name="value_set_mini_object"
+ c:identifier="gst_value_set_mini_object"
+ doc="Set the contents of a %GST_TYPE_MINI_OBJECT derived #GValue to
+The caller retains ownership of the reference.">
+ <return-value transfer-ownership="none">
+ <type name="none" c:type="void"/>
+ </return-value>
+ <parameters>
+ <parameter name="value" transfer-ownership="none">
+ <type name="GObject.Value" c:type="GValue*"/>
+ </parameter>
+ <parameter name="mini_object" transfer-ownership="none">
+ <type name="MiniObject" c:type="GstMiniObject*"/>
+ </parameter>
+ </parameters>
+ </function>
+ <function name="value_set_structure"
+ c:identifier="gst_value_set_structure"
+ doc="Sets the contents of @value to @structure. The actual"
+ version="0.10.15">
+ <return-value transfer-ownership="none">
+ <type name="none" c:type="void"/>
+ </return-value>
+ <parameters>
+ <parameter name="value" transfer-ownership="none">
+ <type name="GObject.Value" c:type="GValue*"/>
+ </parameter>
+ <parameter name="structure" transfer-ownership="none">
+ <type name="Structure" c:type="GstStructure*"/>
+ </parameter>
+ </parameters>
+ </function>
+ <function name="value_subtract"
+ c:identifier="gst_value_subtract"
+ doc="Subtracts @subtrahend from @minuend and stores the result in @dest.
+Note that this means subtraction as in sets, not as in mathematics.">
+ <return-value transfer-ownership="none">
+ <type name="boolean" c:type="gboolean"/>
+ </return-value>
+ <parameters>
+ <parameter name="dest" transfer-ownership="none">
+ <type name="GObject.Value" c:type="GValue*"/>
+ </parameter>
+ <parameter name="minuend" transfer-ownership="none">
+ <type name="GObject.Value" c:type="GValue*"/>
+ </parameter>
+ <parameter name="subtrahend" transfer-ownership="none">
+ <type name="GObject.Value" c:type="GValue*"/>
+ </parameter>
+ </parameters>
+ </function>
+ <function name="value_take_mini_object"
+ c:identifier="gst_value_take_mini_object"
+ doc="Set the contents of a %GST_TYPE_MINI_OBJECT derived #GValue to
+Takes over the ownership of the caller's reference to @mini_object;
+the caller doesn't have to unref it any more.">
+ <return-value transfer-ownership="none">
+ <type name="none" c:type="void"/>
+ </return-value>
+ <parameters>
+ <parameter name="value" transfer-ownership="none">
+ <type name="GObject.Value" c:type="GValue*"/>
+ </parameter>
+ <parameter name="mini_object" transfer-ownership="none">
+ <type name="MiniObject" c:type="GstMiniObject*"/>
+ </parameter>
+ </parameters>
+ </function>
+ <function name="value_union"
+ c:identifier="gst_value_union"
+ doc="Creates a GValue corresponding to the union of @value1 and @value2.">
+ <return-value transfer-ownership="none">
+ <type name="boolean" c:type="gboolean"/>
+ </return-value>
+ <parameters>
+ <parameter name="dest" transfer-ownership="none">
+ <type name="GObject.Value" c:type="GValue*"/>
+ </parameter>
+ <parameter name="value1" transfer-ownership="none">
+ <type name="GObject.Value" c:type="GValue*"/>
+ </parameter>
+ <parameter name="value2" transfer-ownership="none">
+ <type name="GObject.Value" c:type="GValue*"/>
+ </parameter>
+ </parameters>
+ </function>
+ <function name="version"
+ c:identifier="gst_version"
+ doc="Gets the version number of the GStreamer library.">
+ <return-value transfer-ownership="none">
+ <type name="none" c:type="void"/>
+ </return-value>
+ <parameters>
+ <parameter name="major" direction="out" transfer-ownership="full">
+ <type name="uint" c:type="guint*"/>
+ </parameter>
+ <parameter name="minor" direction="out" transfer-ownership="full">
+ <type name="uint" c:type="guint*"/>
+ </parameter>
+ <parameter name="micro" direction="out" transfer-ownership="full">
+ <type name="uint" c:type="guint*"/>
+ </parameter>
+ <parameter name="nano" direction="out" transfer-ownership="full">
+ <type name="uint" c:type="guint*"/>
+ </parameter>
+ </parameters>
+ </function>
+ <function name="version_string"
+ c:identifier="gst_version_string"
+ doc="This function returns a string that is useful for describing this version">
+ <return-value transfer-ownership="full">
+ <type name="utf8" c:type="gchar*"/>
+ </return-value>
+ </function>
+ </namespace>
+</repository>
--- /dev/null
+Anton Gorenko
\ No newline at end of file
--- /dev/null
+! Copyright (C) 2010 Anton Gorenko.
+! See http://factorcode.org/license.txt for BSD license.
+USING: alien alien.syntax alien.libraries combinators kernel
+system
+gobject-introspection glib.ffi gmodule.ffi gobject.ffi ;
+EXCLUDE: alien.c-types => pointer ;
+IN: gstreamer.ffi
+
+<<
+"gstreamer" {
+ { [ os winnt? ] [ drop ] }
+ { [ os macosx? ] [ drop ] }
+ { [ os unix? ] [ "libgstreamer-0.10.so" cdecl add-library ] }
+} cond
+>>
+
+TYPEDEF: gpointer GstClockID
+TYPEDEF: guint64 GstClockTime
+TYPEDEF: gint64 GstClockTimeDiff
+
+! types from libxml2
+TYPEDEF: void* xmlNodePtr
+TYPEDEF: void* xmlDocPtr
+TYPEDEF: void* xmlNsPtr
+
+GIR: vocab:gstreamer/Gst-0.10.gir
+
--- /dev/null
+! Copyright (C) 2010 Anton Gorenko.
+! See http://factorcode.org/license.txt for BSD license.
+USING: gstreamer.ffi ;
+IN: gstreamer
+
--- /dev/null
+GStreamer binding
! See http://factorcode.org/license.txt for BSD license.
USING: alien.c-types alien.strings fry byte-arrays classes.struct
io.encodings.utf8 kernel locals math prettyprint
-gst.ffi glib.ffi gobject.ffi gtk.ffi ;
+gstreamer.ffi glib.ffi gobject.ffi gtk.ffi ;
IN: gir.samples.lowlevel.gstreamer
! CONSTANT: uri "http://www.xiph.org/vorbis/listen/compilation-ogg-q4.ogg"